.revision-timeline{--revision-accent: #f87171;position:relative;color:var(--ink-3)}.revision-timeline__toolbar{height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-inline:24px}.revision-timeline__toolbar button{width:44px;height:44px;flex:none;padding:0;display:grid;place-items:center;border:1px solid #ffffff14;border-radius:10px;background:transparent;color:var(--ink-2);cursor:pointer}.revision-timeline__toolbar button:hover:not(:disabled){background:#ffffff08;color:var(--ink-1)}.revision-timeline__toolbar button:disabled{opacity:.25;cursor:default}.revision-timeline__toolbar svg{width:16px;height:16px;stroke-width:1.5}.revision-timeline__label{min-width:0;text-align:center;font:500 12px/18px var(--font-mono);letter-spacing:.1em;color:var(--ink-2)}.revision-timeline__label>span{display:flex;align-items:baseline;justify-content:center;gap:8px}.revision-timeline__software{font:12px/18px var(--font-body);letter-spacing:0;color:var(--ink-3)}.revision-timeline__viewport{position:relative;height:80px;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 15%,#000 85%,transparent);mask-image:linear-gradient(to right,transparent,#000 15%,#000 85%,transparent)}.revision-timeline__track{position:absolute;left:0;bottom:0;display:flex;gap:3px}.revision-timeline__slot{position:relative;width:10px;height:80px;flex:none;display:flex;align-items:end;justify-content:center}.revision-timeline__dash{display:block;width:4px;height:64px;border-radius:999px 999px 0 0;background:#34363b;transform-origin:center bottom;pointer-events:none}.revision-timeline__dash.is-year{background:#666970}.revision-timeline__dash.is-active{background:var(--revision-accent)}.revision-timeline__dash.is-future{background:repeating-linear-gradient(to bottom,#34363b 0 3px,transparent 3px 8px);border-radius:0}.revision-timeline__target{position:absolute;bottom:0;left:-17px;width:44px;height:80px;border:0;padding:0;background:transparent;cursor:pointer;touch-action:manipulation}.revision-timeline__target:focus-visible{outline-offset:-3px;border-radius:6px}.revision-timeline__target:hover{background:#ffffff03}.revision-timeline__slot{pointer-events:none}.revision-timeline__target{pointer-events:auto}.revision-timeline__detail{position:absolute;left:84px;top:50%;width:180px;transform:translateY(-50%);padding:16px;border:1px solid #ffffff0d;border-radius:14px;background:#111215;box-shadow:0 12px 28px #0003;pointer-events:none}.revision-timeline__detail-year{font:11px/18px var(--font-mono);color:var(--ink-3)}.revision-timeline__detail strong{display:block;margin-top:6px;font-size:14px;line-height:22px;font-weight:500;color:var(--ink-1)}.revision-timeline__detail p{margin:8px 0 0;color:var(--ink-3);font-size:12px;line-height:20px;overflow-wrap:break-word}.revision-timeline[data-orientation=horizontal]{width:min(420px,100%);margin-inline:auto}.revision-timeline[data-orientation=horizontal] .revision-timeline__toolbar{padding-inline:12px}.revision-timeline[data-orientation=horizontal] .revision-timeline__viewport,.revision-timeline[data-orientation=horizontal] .revision-timeline__slot,.revision-timeline[data-orientation=horizontal] .revision-timeline__target{height:52px}.revision-timeline[data-orientation=horizontal] .revision-timeline__dash{height:44px;width:3px}.revision-timeline[data-orientation=vertical]{width:264px;padding-block:52px}.revision-timeline[data-orientation=vertical] .revision-timeline__toolbar{display:contents}.revision-timeline[data-orientation=vertical] .revision-timeline__toolbar button{position:absolute;left:12px}.revision-timeline[data-orientation=vertical] .revision-timeline__toolbar svg{transform:rotate(90deg)}.revision-timeline[data-orientation=vertical] .revision-timeline__previous{top:0}.revision-timeline[data-orientation=vertical] .revision-timeline__next{bottom:0}.revision-timeline[data-orientation=vertical] .revision-timeline__label{display:none}.revision-timeline[data-orientation=vertical] .revision-timeline__viewport{height:min(360px,calc(100svh - 240px));width:72px;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 85%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 15%,#000 85%,transparent)}.revision-timeline[data-orientation=vertical] .revision-timeline__track{top:0;bottom:auto;flex-direction:column}.revision-timeline[data-orientation=vertical] .revision-timeline__slot{width:72px;height:10px;align-items:center;justify-content:start}.revision-timeline[data-orientation=vertical] .revision-timeline__dash{width:64px;height:4px;transform-origin:left center;border-radius:999px}.revision-timeline[data-orientation=vertical] .revision-timeline__dash.is-future{background:repeating-linear-gradient(to right,#34363b 0 3px,transparent 3px 8px)}.revision-timeline[data-orientation=vertical] .revision-timeline__target{width:72px;height:44px;left:0;top:-17px;bottom:auto}.annual-software-page{container:annual-software / inline-size}html:has(.annual-software-page){scroll-padding-top:0}.annual-reading{--year-scroll-offset: 132px;position:relative;width:min(624px,calc(100% - 2 * var(--article-gutter)));margin:32px auto 0}.blog-post-page .annual-reading>.blog-content{width:100%;margin:0}.annual-reading .blog-content>h2{scroll-margin-top:calc(var(--year-scroll-offset) + env(safe-area-inset-top,0px));margin-top:64px;font-size:24px;font-weight:400;line-height:34px;text-align:center}.annual-reading .blog-content>h2:first-child{margin-top:0}.annual-reading .blog-content>p{margin-bottom:28px}.annual-software-heading{display:flex;justify-content:center;align-items:center;gap:16px}.annual-software-heading__icons{display:inline-flex;align-items:center;gap:12px}.annual-reading .blog-content .annual-software-heading__icons img{width:43.5px;height:46.5px;object-fit:contain;margin:0;border:0;border-radius:0;background:transparent;transform:none}.year-timeline{position:sticky;z-index:50;top:0;width:100%;margin:0 auto 24px;padding:calc(8px + env(safe-area-inset-top,0px)) 0 12px;background:var(--graphite-0);box-shadow:0 12px 18px var(--graphite-0)}.year-timeline>.revision-timeline{position:relative;top:auto}@media(max-width:680px){.year-timeline{width:calc(100% + 2 * var(--article-gutter));margin-inline:calc(-1 * var(--article-gutter))}.year-timeline .revision-timeline[data-orientation=horizontal]{width:100%;max-width:100%}}@media(min-width:681px){.year-timeline{width:100%;max-width:624px}}
