:root{--load-title:0ms;--load-thesis:180ms;--load-rule:360ms;--load-axis:620ms;--load-lane:720ms;--load-lane-step:110ms;--dur-settle:900ms;--ease-settle:cubic-bezier(0.16,1,0.3,1);--ease-breathe:cubic-bezier(0.45,0,0.55,1)}@keyframes ink-settle{0%{opacity:0;transform:translateY(14px);filter:blur(6px)}60%{filter:blur(0)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes rule-draw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes lane-settle{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}.hero .hero-name{animation:ink-settle var(--dur-settle) var(--ease-settle) var(--load-title) both}.hero .hero-thesis{animation:ink-settle var(--dur-settle) var(--ease-settle) var(--load-thesis) both}.hero .hero-head:after{transform-origin:left center;animation:rule-draw .7s var(--ease-settle) var(--load-rule) both}@keyframes plate-develop{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.atlas-plate{animation:plate-develop 1.1s var(--ease-settle) var(--load-axis) both}.benchmark[open] .benchmark-body{animation:plate-develop .6s var(--ease-settle) both}.benchmark[open] .race-axis{animation:lane-settle var(--dur-settle) var(--ease-settle) var(--load-axis) both}.benchmark[open] .lane[data-lane="0"]{animation:lane-settle var(--dur-settle) var(--ease-settle) var(--load-lane) both}.benchmark[open] .lane[data-lane="1"]{animation:lane-settle var(--dur-settle) var(--ease-settle) calc(var(--load-lane) + var(--load-lane-step)) both}.benchmark[open] .lane[data-lane="2"]{animation:lane-settle var(--dur-settle) var(--ease-settle) calc(var(--load-lane) + var(--load-lane-step) * 2) both}.benchmark[open] .lane[data-lane="3"]{animation:lane-settle var(--dur-settle) var(--ease-settle) calc(var(--load-lane) + var(--load-lane-step) * 3) both}.work-head .work-home{animation:ink-settle var(--dur-settle) var(--ease-settle) var(--load-title) both}.work-head .work-title{animation:ink-settle var(--dur-settle) var(--ease-settle) var(--load-thesis) both}.work-head .work-lede{animation:ink-settle var(--dur-settle) var(--ease-settle) var(--load-rule) both}.benchmark[open] .race .race-caption{animation-delay:3.8s}@keyframes needle-breathe{0%,to{box-shadow:0 0 6px var(--glow-strong),0 0 14px var(--glow)}50%{box-shadow:0 0 10px var(--glow-strong),0 0 26px var(--glow)}}.race .lane-mine .lane-head:not([data-finished]){animation:needle-breathe 1.6s var(--ease-breathe) infinite}@keyframes stamp-breathe{0%,to{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 10px var(--glow)}}.race .lane-mine .lane-time[data-finished]{animation:stamp-breathe 3.2s var(--ease-breathe) infinite}.race .race-caption:after{content:"";display:inline-block;width:.55em;height:1em;margin-left:.25em;vertical-align:-.15em;background:var(--ink-faint);opacity:0}@keyframes cursor-blink{0%,49%{opacity:.7}50%,to{opacity:0}}.race .race-caption[data-done]:after{animation:cursor-blink 1.1s steps(1) infinite}@keyframes ring-drift{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ring-wrap .ring{transform-origin:50% 50%;animation:ring-drift 90s linear infinite}.ring-wrap:focus-within .ring,.ring-wrap:hover .ring{animation-play-state:paused}@keyframes portrait-drift{0%,to{transform:translate(0) rotate(0deg)}50%{transform:translateY(-3px) rotate(-.4deg)}}.portrait img{animation:portrait-drift 7s var(--ease-breathe) infinite}@keyframes bands-pulse{0%,to{opacity:var(--band-active)}50%{opacity:calc(var(--band-active) + .12)}}.treemap .tile[data-active]:not(:hover) .tile-bands{animation:bands-pulse 2.8s var(--ease-breathe) infinite}.section{transition:opacity .9s var(--ease-settle),transform .9s var(--ease-settle),filter .9s var(--ease-settle)}html.reveal-ready .section:not(.in-view){opacity:0;transform:translateY(28px);filter:blur(4px)}.section .about-body,.section .about-head,.section .lang-split,.section .readout,.section .section-head,.section .section-lede,.section .treemap-frame{transition:opacity .8s var(--ease-settle),transform .8s var(--ease-settle)}html.reveal-ready .section:not(.in-view) .about-body,html.reveal-ready .section:not(.in-view) .about-head,html.reveal-ready .section:not(.in-view) .lang-split,html.reveal-ready .section:not(.in-view) .readout,html.reveal-ready .section:not(.in-view) .section-head,html.reveal-ready .section:not(.in-view) .section-lede,html.reveal-ready .section:not(.in-view) .treemap-frame{opacity:0;transform:translateY(16px)}.section.in-view .about-body,.section.in-view .section-lede{transition-delay:.12s}.section.in-view .lang-split,.section.in-view .treemap-frame{transition-delay:.24s}.section.in-view .readout{transition-delay:.36s}.lang-list .lang-row{transition:opacity .6s var(--ease-settle),transform .6s var(--ease-settle),background var(--dur-flip) var(--ease-snap)}html.reveal-ready .section:not(.in-view) .lang-row{opacity:0;transform:translateY(8px)}.section.in-view .lang-row:first-child{transition-delay:.3s}.section.in-view .lang-row:nth-child(2){transition-delay:.34s}.section.in-view .lang-row:nth-child(3){transition-delay:.38s}.section.in-view .lang-row:nth-child(4){transition-delay:.42s}.section.in-view .lang-row:nth-child(5){transition-delay:.46s}.section.in-view .lang-row:nth-child(6){transition-delay:.5s}.section.in-view .lang-row:nth-child(7){transition-delay:.54s}.section.in-view .lang-row:nth-child(8){transition-delay:.58s}.section.in-view .lang-row:nth-child(n+9){transition-delay:.62s}.section.in-view .lang-bar-run{transition-delay:.5s}.treemap .tile{transition:box-shadow var(--dur-move) var(--ease-snap),transform var(--dur-move) var(--ease-snap),opacity .7s var(--ease-settle)}html.reveal-ready .section:not(.in-view) .treemap .tile{opacity:0}.section.in-view .tile:first-child{transition-delay:.32s}.section.in-view .tile:nth-child(2){transition-delay:.38s}.section.in-view .tile:nth-child(3){transition-delay:.44s}.section.in-view .tile:nth-child(4){transition-delay:.5s}.section.in-view .tile:nth-child(5){transition-delay:.54s}.section.in-view .tile:nth-child(n+6){transition-delay:.6s}.treemap .tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-high),0 0 0 1px var(--accent-soft)}.about-links a,.notfound-link,.readout-name a{position:relative;border-bottom:0;padding-bottom:2px;background-image:linear-gradient(var(--rule),var(--rule));background-size:100% 1px;background-position:0 100%;background-repeat:no-repeat}.about-links a:after,.notfound-link:after,.readout-name a:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left center;transition:transform var(--dur-move) var(--ease-settle)}.about-links a:hover:after,.notfound-link:hover:after,.readout-name a:hover:after{transform:scaleX(1)}.footer-links a{transition:color var(--dur-move) var(--ease-settle),opacity var(--dur-move) var(--ease-settle)}.footer-links:hover a:not(:hover){opacity:.5}.theme-toggle-knob{transition:transform .42s cubic-bezier(.34,1.4,.64,1)}.theme-toggle-track{transition:border-color var(--dur-move) var(--ease-settle),background var(--dur-move) var(--ease-settle)}.theme-toggle:hover .theme-toggle-track{border-color:var(--ink-soft)}.ring-seg{transition:opacity .38s var(--ease-settle),stroke-width .38s var(--ease-settle)}.ring-centre>*{animation:ink-settle .32s var(--ease-settle) both}.readout-key,.readout-main,.readout-meta{animation:ink-settle .36s var(--ease-settle) both}@keyframes stamp-in{0%{transform:translateY(4px);opacity:.4}to{transform:none;opacity:1}}.lane-time[data-finished]{animation:stamp-in .32s var(--ease-settle) both}html.theme-flipping,html.theme-flipping *{transition:background-color .48s var(--ease-settle),color .48s var(--ease-settle),border-color .48s var(--ease-settle),box-shadow .48s var(--ease-settle),fill .48s var(--ease-settle),stroke .48s var(--ease-settle)!important}@media (prefers-reduced-motion:reduce){.atlas-plate,.benchmark[open] .benchmark-body,.benchmark[open] .lane,.benchmark[open] .race-axis,.hero .hero-head:after,.hero .hero-name,.hero .hero-thesis,.lane-time,.portrait img,.race .lane-mine .lane-head,.race .lane-mine .lane-time,.race .race-caption:after,.readout-key,.readout-main,.readout-meta,.ring-centre>*,.ring-wrap .ring,.treemap .tile .tile-bands,.work-head .work-home,.work-head .work-lede,.work-head .work-title{animation:none!important}.race .race-caption:after{display:none}html.reveal-ready .section:not(.in-view),html.reveal-ready .section:not(.in-view) *,html.reveal-ready .section:not(.in-view) .treemap .tile{opacity:1!important;transform:none!important;filter:none!important}.treemap .tile:hover{transform:none}.about-links a:after,.notfound-link:after,.readout-name a:after{transition:none}}