:root{color-scheme:light dark;--paper:light-dark(#faf9f6,#0e0e10);--surface:light-dark(#fff,#16161a);--ink:light-dark(#151517,#ecebe8);--muted:light-dark(#5e5e66,#a3a3ac);--rule:light-dark(#e6e3dd,#2a2a30);--accent:light-dark(#c2412d,#ff7a5c);--seal:light-dark(#c2412d,#d4513b);--plate:light-dark(#fff,#f2f0eb);--shadow:light-dark(#1515170f,#0006);--step--1:clamp(.8rem, .78rem + .1vw, .86rem);--step-0:clamp(1rem, .96rem + .2vw, 1.125rem);--step-1:clamp(1.18rem, 1.1rem + .4vw, 1.4rem);--step-2:clamp(1.45rem, 1.25rem + 1vw, 2rem);--step-3:clamp(1.9rem, 1.5rem + 2vw, 3rem);--step-4:clamp(2.5rem, 1.8rem + 3.6vw, 4.6rem);--step-5:clamp(3.4rem, 2rem + 7vw, 8rem);--space-2xs:.25rem;--space-xs:.5rem;--space-s:1rem;--space-m:1.5rem;--space-l:2.5rem;--space-xl:4rem;--space-section:clamp(4rem, 2.5rem + 6vw, 8rem);--measure:66ch;--wrap:74rem;--radius:4px;--ease:cubic-bezier(.2, .7, .2, 1)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:none;text-size-adjust:none;scroll-padding-top:5rem}body{background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);font-feature-settings:"cv05", "ss03";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.6}img,picture,video,svg{max-width:100%;height:auto;display:block}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,li,dd,figcaption{overflow-wrap:break-word}h1,h2,h3,h4{text-wrap:balance}p,li,dd{text-wrap:pretty}ul[role=list],ol[role=list]{padding:0;list-style:none}[hidden]{display:none!important}:root{interpolate-size:allow-keywords}::selection{background:var(--accent);color:var(--paper)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}h1,h2,h3,.display{font-family:var(--font-display);letter-spacing:-.01em;font-weight:400;line-height:1.05}h3{font-size:var(--step-2);line-height:1.15}em,i{font-style:italic}strong,b{font-weight:600}small{font-size:var(--step--1)}a{color:inherit;text-decoration-line:underline;text-decoration-thickness:1px;text-decoration-color:color-mix(in oklab, currentColor 35%, transparent);text-underline-offset:.22em;transition:color .2s,text-decoration-color .2s}a:hover{text-decoration-color:var(--accent);color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.label,.meta{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.04em;color:var(--muted)}.label{text-transform:uppercase;letter-spacing:.1em}.prose{max-width:var(--measure)}.prose>*+*{margin-top:1em}.prose h2{font-size:var(--step-3);margin-top:2.2em}.prose h3{margin-top:1.8em}.prose h2+*,.prose h3+*{margin-top:.6em}.prose ul,.prose ol{padding-left:1.2em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--muted)}.prose blockquote{font-family:var(--font-display);font-size:var(--step-2);padding-left:var(--space-m);border-left:2px solid var(--accent);line-height:1.3}.prose blockquote p+p{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted)}.prose code,.prose pre,.prose samp,kbd{font-family:var(--font-mono);font-size:.86em}.prose :not(pre)>code{background:color-mix(in oklab, var(--ink) 7%, transparent);border-radius:3px;padding:.1em .35em}.prose pre{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--space-s) var(--space-m);line-height:1.5;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:var(--step--1);font-variant-numeric:tabular-nums}.prose caption{caption-side:bottom;text-align:left;padding-top:var(--space-xs);color:var(--muted)}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--rule);padding:.5em .8em .5em 0}.prose thead th{font-family:var(--font-mono);color:var(--muted);font-weight:500}.prose td:nth-child(n+3),.prose th:nth-child(n+3){text-align:right}.table-wrap{overflow-x:auto}math{font-family:STIX Two Math,Cambria Math,Latin Modern Math,math;font-size:1.1em}.math-display{padding-block:var(--space-xs);overflow-x:auto}.wrap{width:min(100% - 2rem, var(--wrap));margin-inline:auto}.skip{z-index:100;background:var(--ink);color:var(--paper);border-radius:var(--radius);padding:.5rem 1rem;position:absolute;top:-4rem;left:1rem}.skip:focus{top:1rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.site-header{z-index:50;background:color-mix(in oklab, var(--paper) 82%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(12px);border-bottom:1px solid var(--rule);position:sticky;top:0}.site-header__inner{align-items:center;gap:var(--space-m);min-height:3.75rem;display:flex}.brand{font-family:var(--font-display);font-size:var(--step-1);align-items:center;gap:.6rem;margin-right:auto;line-height:1;text-decoration:none;display:inline-flex}.brand .seal{height:1.9rem}.brand:hover{color:inherit}.nav{align-items:center;gap:clamp(.75rem,2vw,1.75rem);display:flex}.nav a{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);padding-block:.5rem;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--ink)}.theme-toggle{border:1px solid var(--rule);width:2.25rem;height:2.25rem;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;place-items:center;transition:color .2s,border-color .2s;display:grid}.theme-toggle:hover{color:var(--ink);border-color:var(--muted)}.theme-toggle svg{width:1rem;height:1rem}.theme-toggle .icon-sun{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle .icon-sun{display:block}:root:not([data-theme=light]) .theme-toggle .icon-moon{display:none}}:root[data-theme=dark] .theme-toggle .icon-sun{display:block}:root[data-theme=dark] .theme-toggle .icon-moon{display:none}@media (width<=40rem){.brand__name{display:none}.site-header__inner{gap:var(--space-s)}}@media (width<=26rem){.nav a[data-optional]{display:none}}.seal{flex:none;width:auto}.seal rect{fill:var(--seal)}.seal path{fill:#faf9f6}.hero{gap:var(--space-xl);padding-block:clamp(3rem, 2rem + 6vw, 7rem) var(--space-section);display:grid}.hero__name{font-size:var(--step-5);letter-spacing:-.025em;align-items:flex-start;gap:.18em;line-height:.88;display:flex}.hero__name .seal{height:.92em;margin-top:.02em;transform:rotate(-3deg)}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .hero__name .seal{mix-blend-mode:multiply}}:root[data-theme=light] .hero__name .seal{mix-blend-mode:multiply}.hero__lead{margin-top:var(--space-l);text-wrap:wrap;max-width:none;font-family:var(--font-display);font-size:clamp(1.15rem,1.05rem + .45vw,1.45rem);line-height:1.35}.hero__lead em{color:var(--accent)}.hero__bio{margin-top:var(--space-m);max-width:58ch;color:var(--muted)}.hero__bio a{color:var(--ink)}.hero__actions{align-items:center;gap:var(--space-s) var(--space-m);margin-top:var(--space-l);flex-wrap:wrap;display:flex}@media (width>=56rem){.hero{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:end}}.button{border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:var(--step--1);font-family:var(--font-mono);border-radius:999px;align-items:center;gap:.5em;padding:.7em 1.15em;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.button:hover{background:var(--accent);border-color:var(--accent);color:var(--paper)}.text-link{font-family:var(--font-mono);font-size:var(--step--1);border-bottom:1px solid var(--rule);padding-bottom:.15em;text-decoration:none}.text-link:hover{border-color:var(--accent)}.arrow{transition:transform .25s var(--ease);display:inline-block}a:hover .arrow{transform:translate(.15em,-.15em)}.portrait{justify-self:end;width:100%;max-width:26rem}.portrait__frame{aspect-ratio:4/5;border-radius:var(--radius);background:var(--surface);box-shadow:0 1px 0 var(--rule), 0 24px 48px -24px var(--shadow);position:relative;overflow:hidden}.portrait__frame img{object-fit:cover;width:100%;height:100%;transition:opacity .7s var(--ease), transform .9s var(--ease), filter .7s;position:absolute;inset:0}.portrait__toon{opacity:0;transform:scale(1.06)}.portrait[data-toon=true] .portrait__toon{opacity:1;transform:scale(1)}.portrait[data-toon=true] .portrait__photo{filter:saturate(.6);transform:scale(1.04)}@media (hover:hover){.portrait__frame:hover .portrait__toon{opacity:1;transform:scale(1)}.portrait__frame:hover .portrait__photo{filter:saturate(.6);transform:scale(1.04)}}.portrait__toggle{color:#faf9f6;font-family:var(--font-mono);letter-spacing:.06em;cursor:pointer;backdrop-filter:blur(6px);background:oklab(19.6601% .0010955 -.00381313/.55);border:0;border-radius:999px;padding:.35em .8em;font-size:.72rem;position:absolute;bottom:.75rem;right:.75rem}.portrait__toggle[aria-pressed=true]{background:var(--seal)}.portrait figcaption{margin-top:var(--space-xs)}@media (width<=55.99rem){.portrait{justify-self:start;max-width:20rem}}.figure3d{justify-self:end;width:100%;max-width:26rem}.figure3d__stage{aspect-ratio:4/5;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;position:relative}.figure3d__stage:active{cursor:grabbing}.figure3d__poster,.figure3d__canvas{width:100%;height:100%;transition:opacity .7s var(--ease);position:absolute;inset:0}.figure3d__poster{object-fit:contain}.figure3d__canvas{opacity:0;display:block}.figure3d--ready .figure3d__poster{opacity:0}.figure3d--ready .figure3d__canvas{opacity:1}.figure3d__veil{z-index:1;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.figure3d[data-mode=loading] .figure3d__stage{cursor:progress}.figure3d figcaption{margin-top:var(--space-xs)}.figure3d__toggle{margin-top:var(--space-2xs);border:0;border-bottom:1px solid var(--rule);color:var(--muted);font-family:var(--font-mono);font-size:var(--step--1);cursor:pointer;background:0 0;padding:0}.figure3d__toggle:hover{color:var(--ink);border-color:var(--accent)}.figure3d__toggle:not(:focus-visible){clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.figure3d__toggle-label--running,.figure3d[data-mode=running] .figure3d__toggle-label--photo{display:none}.figure3d[data-mode=running] .figure3d__toggle-label--running{display:inline}.figure3d:not(.figure3d--ready) .figure3d__toggle,.figure3d[data-run=unsupported] .figure3d__toggle,.figure3d.figure3d--ready[data-run=unsupported] .figure3d__progress{display:none}.figure3d__debug{z-index:2;color:#fff;max-width:100%;font:10px/1.4 var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;pointer-events:none;background:#000000b8;margin:0;padding:.4rem .5rem;position:absolute;top:0;left:0}.figure3d__progress{background:var(--rule);height:2px;transition:opacity .6s var(--ease) .3s;display:none;position:relative;overflow:hidden}.figure3d--ready[data-run] .figure3d__progress{display:block}.figure3d[data-run=ready] .figure3d__progress,.figure3d[data-run=failed] .figure3d__progress{opacity:0}.figure3d__progress-fill{background:var(--accent);transform-origin:0;transform:scaleX(var(--progress,0));transition:transform .25s linear;position:absolute;inset:0}.figure3d__progress--indeterminate .figure3d__progress-fill{animation:figure3d-progress 1.2s var(--ease) infinite;transform:scaleX(.3)}@keyframes figure3d-progress{0%{translate:-100%}to{translate:340%}}@media (prefers-reduced-motion:reduce){.figure3d__progress--indeterminate .figure3d__progress-fill{opacity:.4;animation:none;transform:scaleX(1)}}@media (width<=55.99rem){.figure3d{justify-self:start;max-width:20rem}}.section{gap:var(--space-l);padding-block:var(--space-section);border-top:1px solid var(--rule);display:grid}.section__head{align-self:start}.section__title{font-size:var(--step-4);align-items:baseline;gap:.75rem;display:flex}.section__num{font-family:var(--font-mono);font-size:var(--step--1);color:var(--accent);letter-spacing:.06em;transform:translateY(-.4em)}.section__intro{margin-top:var(--space-s);color:var(--muted);max-width:32ch}@media (width>=56rem){.section{gap:var(--space-xl);grid-template-columns:minmax(12rem,1fr) minmax(0,2.6fr)}.section__head{position:sticky;top:6rem}}.section--stacked .section__head{justify-content:space-between;align-items:baseline;gap:var(--space-s) var(--space-l);flex-wrap:wrap;display:flex}@media (width>=56rem){.section--stacked{gap:var(--space-l);grid-template-columns:minmax(0,1fr)}.section--stacked .section__head{position:static}}.timeline{margin-top:0}.timeline__item{grid-template-columns:7rem 4.75rem minmax(0,1fr);align-items:start;display:grid}.timeline__period{padding:.15rem var(--space-s) 0 0;text-align:right;font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);white-space:nowrap}.timeline__mark{border-left:1px solid var(--rule);align-self:stretch;padding:0 0 3rem .9rem;position:relative}.timeline__mark:before{content:"";background:var(--rule);width:9px;height:9px;box-shadow:0 0 0 3px var(--paper);border-radius:50%;position:absolute;top:.45rem;left:-5px}.timeline__item:first-child .timeline__mark:before{background:var(--accent)}.timeline__item:last-child .timeline__mark{border-left-color:#0000}.timeline__logo{object-fit:contain;background:var(--plate);border:1px solid var(--rule);border-radius:10px;width:3.5rem;height:3.5rem;padding:.4rem}.timeline__desc{padding:0 0 var(--space-l) var(--space-xs);max-width:60ch;line-height:1.6}.timeline__desc a{text-decoration-color:color-mix(in oklab, var(--accent) 45%, transparent)}@media (width<=30rem){.timeline__item{grid-template-columns:4rem minmax(0,1fr);grid-template-areas:"mark period""mark desc"}.timeline__period{text-align:left;padding:.1rem 0 .35rem var(--space-xs);grid-area:period}.timeline__mark{grid-area:mark;margin-left:5px;padding-left:.75rem}.timeline__desc{grid-area:desc}.timeline__logo{width:2.75rem;height:2.75rem;padding:.3rem}}.timeline-wrap{position:relative}.timeline-dog{--dog-w:4.5rem;z-index:2;width:var(--dog-w);aspect-ratio:var(--dog-aspect);pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.timeline-dog:not([data-arrived]){visibility:hidden}.timeline-dog__body{transform-origin:calc(var(--dog-paw) * 100%) calc(var(--dog-ground) * 100%);filter:drop-shadow(0 0 1px light-dark(#0000,#ffffff47));position:absolute;inset:0;overflow:hidden}.timeline-dog__frames{background:0 0/100% 100% no-repeat;height:100%;position:absolute;top:0;left:0}.timeline-dog__frames--run{width:calc(var(--dog-run-frames) * 100%)}.timeline-dog__frames--idle{width:calc(var(--dog-idle-frames) * 100%);visibility:hidden}.timeline-dog[data-ready] .timeline-dog__frames--run{background-image:var(--dog-run)}.timeline-dog[data-ready] .timeline-dog__frames--idle{background-image:var(--dog-idle)}.timeline-dog[data-state=idle] .timeline-dog__frames--run,.timeline-dog[data-state=still] .timeline-dog__frames--run{visibility:hidden}.timeline-dog[data-state=idle] .timeline-dog__frames--idle,.timeline-dog[data-state=still] .timeline-dog__frames--idle{visibility:visible}.timeline-dog[data-state=run] .timeline-dog__frames--run{animation:timeline-dog-strip var(--dog-run-time) steps(var(--dog-run-frames)) infinite}.timeline-dog[data-state=idle] .timeline-dog__frames--idle{animation:timeline-dog-strip .5s steps(var(--dog-idle-frames)) infinite}.timeline-dog[data-state=air] .timeline-dog__frames--run{transform:translateX(calc(-100% * var(--dog-hold) / var(--dog-run-frames)))}.timeline-dog[data-paused] .timeline-dog__frames{animation-play-state:paused}@keyframes timeline-dog-strip{to{transform:translate(-100%)}}.timeline-dog__shadow{top:calc(var(--dog-ground) * 100% - .2rem);left:calc(var(--dog-paw) * 100% - 34%);background:radial-gradient(closest-side,#00000038,#0000);border-radius:50%;width:68%;height:.4rem;transition:opacity .12s;position:absolute}.timeline-dog[data-state=air] .timeline-dog__shadow{opacity:0}@media (width<=30rem){.timeline-dog{--dog-w:3.5rem}}.works{gap:var(--space-l);display:grid}.works__figure{margin:0}.works__frame{position:relative}.works__screen{aspect-ratio:16/10;border:1px solid var(--rule);background:var(--surface);border-radius:4px;position:relative;overflow:hidden}.works__media{opacity:0;transition:opacity .6s var(--ease), transform .9s var(--ease);position:absolute;inset:0;transform:scale(1.04)}.works__media[data-active=true]{opacity:1;transform:none}.works__media img,.works__media video{object-fit:cover;width:100%;height:100%}.works__media--contain{background:var(--plate)}.works__media--video-contain{background:#151517}.works__media--video-contain video{object-fit:contain}.works__media--contain img{object-fit:contain;padding:var(--space-s)}.works__media--backdrop{background:#151517}.works__media--backdrop:before{content:"";background:var(--backdrop) center / cover;filter:blur(22px)saturate(1.2);opacity:.8;position:absolute;inset:-12%}.works__media--backdrop img{filter:drop-shadow(0 14px 28px #0006);padding:.75rem 0;position:relative}.works__marks{--c:var(--accent);--l:14px;--w:2px;pointer-events:none;background:linear-gradient(var(--c) 0 0) left top / var(--l) var(--w), linear-gradient(var(--c) 0 0) left top / var(--w) var(--l), linear-gradient(var(--c) 0 0) right top / var(--l) var(--w), linear-gradient(var(--c) 0 0) right top / var(--w) var(--l), linear-gradient(var(--c) 0 0) left bottom / var(--l) var(--w), linear-gradient(var(--c) 0 0) left bottom / var(--w) var(--l), linear-gradient(var(--c) 0 0) right bottom / var(--l) var(--w), linear-gradient(var(--c) 0 0) right bottom / var(--w) var(--l);background-repeat:no-repeat;position:absolute;inset:-7px}.works__toggle{z-index:2;color:#faf9f6;font-family:var(--font-mono);letter-spacing:.06em;cursor:pointer;backdrop-filter:blur(6px);background:oklab(19.6601% .0010955 -.00381313/.6);border:0;border-radius:999px;padding:.3em .85em;font-size:.72rem;position:absolute;bottom:.6rem;right:.6rem}.works__toggle:hover{background:var(--seal)}.works__figure figcaption{margin-top:var(--space-s);max-width:56ch}.works__caption:not([data-active=true]){display:none}.works__list{border-top:1px solid var(--rule)}.works__item{border-bottom:1px solid var(--rule)}.works__trigger{align-items:baseline;gap:.25rem var(--space-s);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:2.5rem minmax(0,1fr) .85rem;grid-template-areas:"num title sign"".meta.";width:100%;padding:1.1rem 0;display:grid}.works__num{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.06em;color:var(--muted);grid-area:num}.works__title{font-family:var(--font-display);grid-area:title;font-size:clamp(1.3rem,1.1rem + .8vw,1.8rem);line-height:1.15;transition:color .3s}.works__meta{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);grid-area:meta}.works__sign{grid-area:sign;align-self:center;width:.85rem;height:.85rem;position:relative}.works__sign:before,.works__sign:after{content:"";background:var(--accent);height:1.5px;transition:transform .4s var(--ease);margin-top:-.75px;position:absolute;inset:50% 0 auto}.works__sign:after{transform:rotate(90deg)}.works:not(.works--js) .works__sign{display:none}.works__item[data-active=true] .works__sign:after{transform:rotate(90deg)scaleX(0)}.works--js .works__item:not([data-active=true]) .works__title{color:var(--muted)}.works--js .works__item[data-active=true] .works__num{color:var(--accent)}@media (hover:hover){.works__trigger:hover .works__title{color:var(--accent)}}.works__panel{transition:grid-template-rows .5s var(--ease);grid-template-rows:1fr;display:grid}.works--js .works__item:not([data-active=true]) .works__panel{grid-template-rows:0fr}.works__panel-inner{min-height:0;padding-left:calc(2.5rem + var(--space-s));overflow:hidden}.works__panel-inner>:last-child{padding-bottom:1.4rem}.works__summary{max-width:56ch;color:var(--muted)}.project__links{gap:var(--space-xs) var(--space-m);margin-top:var(--space-s);flex-wrap:wrap;display:flex}@media (width>=60rem){.works{grid-template-columns:minmax(0,1fr) minmax(0,26rem);grid-template-areas:"list figure";align-items:start;gap:clamp(2.5rem,5vw,5rem)}.works__list{grid-area:list}.works__figure{grid-area:figure;position:sticky;top:6rem}.works__screen{aspect-ratio:4/3}}.subhead{margin-top:var(--space-section);margin-bottom:var(--space-m)}.honours{border-top:1px solid var(--rule)}.honour{gap:var(--space-m);padding:var(--space-m) .75rem;border-bottom:1px solid var(--rule);border-radius:6px;grid-template-columns:7rem minmax(0,1fr) auto;align-items:baseline;margin-inline:-.75rem;transition:background .3s;display:grid}.honour:hover{background:color-mix(in oklab, var(--accent) 5%, transparent)}.honour__rank{font-family:var(--font-display);font-size:var(--step-4);white-space:nowrap;line-height:.9}.honour--first .honour__rank{color:var(--accent)}.honour__rank sup{font-family:var(--font-mono);vertical-align:super;color:var(--accent);margin-left:.15em;font-size:.24em}.honour__event{font-size:var(--step-1);line-height:1.3}.honour__event a{text-decoration-color:var(--rule)}.honour__event .arrow{opacity:0;transition:opacity .25s, transform .25s var(--ease)}.honour:hover .honour__event .arrow,.honour__event a:focus-visible .arrow{opacity:1}.honour__detail{margin-top:.25rem}.honour__field{align-items:center;gap:.75rem;margin-top:.7rem;display:flex}.honour__bar{background:var(--rule);border-radius:3px;flex:none;width:min(11rem,40%);height:3px;position:relative;overflow:hidden}.honour__bar span{border-radius:inherit;background:var(--accent);transform:scaleX(var(--ahead));transform-origin:0;position:absolute;inset:0}.honour__year{font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted)}@media (width<=30rem){.honour{gap:var(--space-s);grid-template-columns:5.25rem minmax(0,1fr)}.honour__year{grid-column:2}}.papers{border-top:1px solid var(--rule)}.paper{gap:var(--space-s) var(--space-l);padding-block:var(--space-l);border-bottom:1px solid var(--rule);display:grid}.paper__title{font-family:var(--font-display);font-size:var(--step-2);line-height:1.15}.paper__title a{text-decoration:none}.paper__title a:hover{text-decoration:underline;text-decoration-color:var(--accent)}.paper__authors{color:var(--muted);font-size:var(--step--1);margin-top:.45rem;line-height:1.5}.paper__authors strong{color:var(--ink);font-weight:600}.paper__venue{flex-wrap:wrap;align-items:center;gap:.3rem .75rem;margin-top:.6rem;display:flex}.badge{border:1px solid var(--rule);font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink);white-space:nowrap;border-radius:999px;padding:.15em .55em;font-size:.72rem;display:inline-block}.badge--accent{border-color:var(--accent);color:var(--accent)}.paper__links{flex-wrap:wrap;gap:.25rem 1rem;margin-top:.75rem;display:flex}.paper__links a{font-family:var(--font-mono);font-size:var(--step--1);border-bottom:1px solid var(--rule);text-decoration:none}.paper__links a:hover{border-color:var(--accent)}.paper details{margin-top:.75rem}.paper summary{cursor:pointer;font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);align-items:center;gap:.4rem;list-style:none;display:inline-flex}.paper summary::-webkit-details-marker{display:none}.paper summary:before{content:"+";width:1ch;color:var(--accent)}.paper details[open] summary:before{content:"–"}.paper summary:hover{color:var(--ink)}.paper details p{font-size:var(--step--1);color:var(--muted);max-width:70ch;margin-top:.6rem;line-height:1.65}.paper__thumb{border:1px solid var(--rule);background:#fff;border-radius:8px;align-self:start;display:block;overflow:hidden}.paper__thumb img{width:100%;height:auto}.paper__thumb--empty{aspect-ratio:16/10}.paper__thumb.paper__thumb--empty,.pcard__media.pcard__media--text{background:radial-gradient(130% 150% at 0% 0%, color-mix(in oklab, var(--accent) 30%, transparent), transparent 62%), radial-gradient(90% 120% at 100% 100%, color-mix(in oklab, var(--accent) 12%, transparent), transparent 70%), var(--surface);place-content:center;justify-items:center;gap:.25rem;display:grid}.paper__thumb--empty span,.pcard__venue{font-family:var(--font-display);font-size:var(--step-3);color:var(--ink);line-height:1}.paper__thumb--empty small,.pcard__topic{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.72rem}:root[data-theme=dark] :is(.paper__thumb,.pcard__media) img{filter:brightness(.9)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) :is(.paper__thumb,.pcard__media) img{filter:brightness(.9)}}@media (width>=40rem){.paper--full{grid-template-columns:13rem minmax(0,1fr)}}.pcards{gap:var(--space-m);display:grid}.pcard{gap:var(--space-m);padding:var(--space-m);border:1px solid var(--rule);background:var(--surface);transition:border-color .3s, transform .5s var(--ease), box-shadow .5s var(--ease);border-radius:10px;display:grid;position:relative}@media (width>=40rem){.pcard{align-items:center;gap:var(--space-l);grid-template-columns:minmax(0,17rem) minmax(0,1fr)}}.pcard:hover{border-color:color-mix(in oklab, var(--ink) 22%, var(--rule));box-shadow:0 24px 48px -32px var(--shadow);transform:translateY(-3px)}.pcard__media{border:1px solid var(--rule);background:#fff;border-radius:6px;overflow:hidden}.pcard__media img{width:100%;height:auto}.pcard__media--text{aspect-ratio:16/10}.pcard__body{flex-direction:column;gap:.55rem;display:flex}.pcard__meta{flex-wrap:wrap;gap:.4rem;display:flex}.pcard__title{font-size:clamp(1.2rem,1.08rem + .45vw,1.45rem);line-height:1.15}.pcard__title a{text-decoration:none}.pcard__title a:after{content:"";border-radius:inherit;position:absolute;inset:0}.pcard:hover .pcard__title a{color:var(--accent)}.pcard__title a:focus-visible{outline:none}.pcard:has(.pcard__title a:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.pcard__authors{font-size:var(--step--1);color:var(--muted);line-height:1.5}.pcard__authors strong{color:var(--ink);font-weight:600}.pcard__links{flex-wrap:wrap;gap:.25rem 1rem;padding-top:.2rem;display:flex}.pcard__links a{z-index:1;font-family:var(--font-mono);font-size:var(--step--1);border-bottom:1px solid var(--rule);text-decoration:none;position:relative}.pcard__links a:hover{border-color:var(--accent)}.more{margin-top:var(--space-l)}.year-group{gap:var(--space-s);padding-top:var(--space-l);display:grid}.year-group:not([hidden])~.year-group:not([hidden]){border-top:1px solid var(--rule);margin-top:var(--space-l)}.year-group__year{font-family:var(--font-display);font-size:var(--step-4);color:var(--muted);line-height:1}.year-group .papers{border-top:0}.year-group .paper:last-child{border-bottom:0}@media (width>=56rem){.year-group{gap:var(--space-l);grid-template-columns:9rem minmax(0,1fr)}.year-group__year{top:calc(4.75rem + var(--tools-h,0px));padding-top:var(--space-l);align-self:start;position:sticky}}.pub-tools{z-index:20;align-items:center;gap:.75rem var(--space-m);margin-bottom:var(--space-s);padding-block:var(--space-s);background:color-mix(in oklab, var(--paper) 90%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,30rem) auto;display:grid;position:sticky;top:3.75rem}.pub-search{border:1px solid var(--rule);background:var(--surface);border-radius:999px;align-items:center;gap:.6rem;padding:.55rem 1rem;transition:border-color .2s,box-shadow .2s;display:flex}.pub-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab, var(--accent) 18%, transparent)}.pub-search svg{width:1.1rem;height:1.1rem;color:var(--muted);flex:none}.pub-search input{background:0 0;border:0;outline:none;flex:1;min-width:0}.pub-count{grid-area:1/2;justify-self:end}.chips{flex-wrap:wrap;grid-column:1/-1;gap:.5rem;display:flex}.chip{border:1px solid var(--rule);font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;padding:.35em .85em;transition:color .2s,border-color .2s,background .2s}.chip span{opacity:.6;margin-left:.25em}.chip:hover{color:var(--ink);border-color:var(--muted)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}@media (width<=40rem){.pub-tools{grid-template-columns:minmax(0,1fr) auto}.chips{scrollbar-width:none;flex-wrap:nowrap;margin-inline:-1rem;padding-inline:1rem;overflow-x:auto}}html:has(.pub-tools:not([hidden])){scroll-padding-top:calc(4.75rem + var(--tools-h,0px))}.pub-empty{padding-block:var(--space-xl);color:var(--muted)}.pub-empty button{cursor:pointer;color:var(--ink);background:0 0;border:0}.paper__cite{border:0;border-bottom:1px solid var(--rule);font-family:var(--font-mono);font-size:var(--step--1);cursor:pointer;background:0 0;padding:0}.paper__cite:hover{border-color:var(--accent)}.paper__topics{flex-basis:100%;font-size:.72rem}.paper__thumb img{transition:transform .6s var(--ease)}.paper__thumb:hover img{transform:scale(1.04)}.paper details::details-content{block-size:0;transition:block-size .45s var(--ease), content-visibility .45s allow-discrete;overflow-y:clip}.paper details[open]::details-content{block-size:auto}.copy{border:1px solid var(--rule);font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:.35em .9em}.copy:hover{color:var(--ink);border-color:var(--muted)}.site-footer{border-top:1px solid var(--rule);padding-block:var(--space-l)}.site-footer__inner{justify-content:space-between;align-items:center;gap:var(--space-s);flex-wrap:wrap;display:flex}.site-footer .seal{height:1.6rem}.site-footer__brand{align-items:center;gap:.6rem;display:inline-flex}.page-head{padding-block:clamp(3rem, 2rem + 5vw, 6rem) var(--space-l)}.page-head h1{font-size:var(--step-5);letter-spacing:-.02em;line-height:.95}.page-head p{margin-top:var(--space-m);color:var(--muted);max-width:52ch}.article{padding-bottom:var(--space-section)}.article__head{padding-block:clamp(3rem, 2rem + 5vw, 6rem) var(--space-l);max-width:52rem}.article__head h1{font-size:var(--step-4);line-height:1.02}.article__head .meta{margin-bottom:var(--space-m)}.article__dek{margin-top:var(--space-m);font-size:var(--step-1);color:var(--muted);max-width:52ch}.article__body{border-top:1px solid var(--rule);padding-top:var(--space-l)}.article__note{font-size:var(--step--1);color:var(--muted);border-left:2px solid var(--rule);padding-left:var(--space-s)}.figure{margin-block:var(--space-l)}.prose>.figure{max-width:none}.figure__images{gap:var(--space-s);grid-template-columns:repeat(var(--cols,1), minmax(0, 1fr));align-items:start;display:grid}.figure__link{border:1px solid var(--rule);border-radius:var(--radius);background:var(--plate);display:block;overflow:hidden}.figure__link img{width:100%;transition:transform .6s var(--ease)}.figure__link:hover img{transform:scale(1.015)}.figure figcaption{margin-top:var(--space-xs);font-size:var(--step--1);color:var(--muted);max-width:var(--measure)}.figure--narrow{max-width:28rem}@media (width<=40rem){.figure__images{grid-template-columns:repeat(min(var(--cols,1), 2), minmax(0, 1fr))}}.refs{font-size:var(--step--1);color:var(--muted)}.refs li{scroll-margin-top:6rem}.lost{padding-block:var(--space-section);align-content:center;gap:var(--space-m);min-height:60vh;display:grid}.lost h1{font-size:var(--step-5);max-width:12ch;line-height:.92}.lost h1 em{color:var(--accent)}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}@supports (animation-timeline:view()){.reveal{animation-name:reveal;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:view();animation-range:entry entry 40%}.honour__bar span{animation-name:bar-fill;animation-duration:auto;animation-timing-function:var(--ease);animation-fill-mode:both;animation-timeline:view();animation-range:entry 30% cover 45%}}}@keyframes bar-fill{0%{transform:scaleX(0)}}@keyframes reveal{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.social{flex-wrap:wrap;gap:.6rem;display:flex}.social__link{border:1px solid var(--rule);width:2.6rem;height:2.6rem;color:var(--ink);background:var(--surface);transition:color .2s, border-color .2s, background .2s, transform .3s var(--ease);border-radius:50%;place-items:center;display:grid}.social__link:hover{color:var(--paper);background:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.social__link svg{width:1.15rem;height:1.15rem}
