@font-face{font-family:ibm plex sans;src:url(/fonts/IBMPlexSans-Latin.woff2)format("woff2");font-style:normal;font-weight:400 700;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:ibm plex sans;src:url(/fonts/IBMPlexSans-LatinExt.woff2)format("woff2");font-style:normal;font-weight:400 700;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:ibm plex sans;src:url(/fonts/IBMPlexSans-Greek.woff2)format("woff2");font-style:normal;font-weight:400 700;font-display:swap;unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:ibm plex mono;src:url(/fonts/IBMPlexMono-Latin.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@view-transition{navigation: auto;
}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}@layer tokens,base,index,project,filmstrip,toggle,mobile,motion;@layer tokens{:root{--bg:#f2f0eb;--ink:#181514;--muted:#6d6661;--accent:#8b2158;--rule:#d9d3cc;--stage:var(--bg);--on-stage:var(--ink);--stage-muted:var(--muted);--stage-rule:var(--rule);--head-h:4rem;--hud-h:5rem}:root[data-stage=cinema]{--bg:#100e0f;--ink:#f2ede8;--muted:#aaa19b;--accent:#f07ab3;--rule:#342d31;--stage:var(--bg);--on-stage:var(--ink);--stage-muted:var(--muted);--stage-rule:var(--rule)}}@layer base{*{box-sizing:border-box}html{background:var(--bg);color:var(--ink)}body{margin:0;background:var(--bg);color:var(--ink);font-family:ibm plex sans,system-ui,-apple-system,sans-serif;font-size:clamp(1rem,.95rem + .2vw,1.125rem);line-height:1.55;transition:background .4s ease,color .4s ease}a{color:inherit;text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--accent)}.site-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1.25rem clamp(1rem,4vw,2.5rem);background:var(--bg);transition:background .4s ease,color .4s ease}.site-name{font-weight:600;text-decoration:none}.site-nav{display:flex;gap:1.25rem;flex-wrap:wrap}.site-nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}.email-x{display:none}.site-nav a[aria-current=page]{text-decoration:underline;text-underline-offset:3px}.site-name{white-space:nowrap}@media(max-width:30rem){.site-head{flex-direction:column;align-items:flex-start;gap:.5rem}.site-nav{gap:1rem}.project-index .p-title{min-width:0}.project-index picture{flex:none}.project-index img{width:clamp(48px,18vw,72px);height:56px;object-fit:cover}}main{max-width:1100px;margin:0 auto;padding:1rem clamp(1rem,4vw,2.5rem)4rem}.intro h1{font-size:clamp(2rem,1.5rem + 2.5vw,3.25rem);font-weight:650;letter-spacing:-.02em;margin:2rem 0 .25rem}.tagline{color:var(--muted);margin:0 0 1.5rem}.statement{max-width:65ch}.project-index{list-style:none;margin:3rem 0 0;padding:0}.project-index li{border-top:1px solid var(--rule)}.project-index li:last-child{border-bottom:1px solid var(--rule)}.project-index a{display:flex;align-items:center;gap:1rem;padding:.85rem 0;text-decoration:none}.project-index .p-title{flex:1;font-weight:550}.project-index a:hover .p-title{color:var(--accent)}.project-index .p-years{color:var(--muted);font-variant-numeric:tabular-nums}.project-index img{display:block;height:56px;width:auto}.project header h1{font-size:clamp(1.6rem,1.3rem + 1.5vw,2.4rem);letter-spacing:-.01em;margin:2rem 0 .25rem}.years,.authors{color:var(--muted);margin:0 0 .25rem}.project .statement{margin-top:1.25rem}.photos{margin-top:2.5rem;display:grid;gap:clamp(2rem,6vh,4.5rem)}.photos img{display:block;width:auto;height:auto;max-width:100%;max-height:100vh;max-height:100dvh;margin-inline:auto}.pn{display:flex;justify-content:space-between;gap:1rem;margin-top:3.5rem;border-top:1px solid var(--rule);padding-top:1rem}.pn a{text-decoration:none}.cv h1{margin:2rem 0 1rem}.cv .name{font-weight:600;margin:0}.cv header p{margin:.15rem 0}.cv .statement{margin-top:1rem}.cv section h2{font-size:1.05rem;text-transform:uppercase;letter-spacing:.06em;margin:2.25rem 0 .5rem}.cv ul{list-style:none;padding:0;margin:0}.cv li{padding:.3rem 0;max-width:75ch}.cv .y{color:var(--muted);font-variant-numeric:tabular-nums;margin-right:.5rem}.site-foot{padding:2rem clamp(1rem,4vw,2.5rem);color:var(--muted);font-size:.8rem;letter-spacing:.08em}}@layer toggle{.stage-toggle{font:inherit;font-size:.8rem;color:var(--muted);background:0 0;border:1px solid var(--rule);border-radius:999px;padding:.2rem .7rem;min-height:44px;cursor:pointer;line-height:1.4}.stage-toggle:hover{color:var(--accent);border-color:var(--accent)}:root[data-stage=cinema] .stage-toggle__label::before{content:"Archive"}:root[data-stage=cinema] .stage-toggle__label{font-size:0}:root[data-stage=cinema] .stage-toggle__label::before{font-size:.8rem}}@layer project{main:has(.project){max-width:none;padding:0}@media(min-width:721px) and (pointer:fine){body:has(.project) .site-foot{display:none}}.project{background:var(--stage);color:var(--on-stage);transition:background .4s ease,color .4s ease}.track{display:flex;gap:clamp(1.5rem,4vw,3.5rem);align-items:center;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;height:calc(100dvh - var(--head-h,4rem) - var(--hud-h,3.5rem));padding:0 clamp(1rem,6vw,6rem);scroll-padding-inline:clamp(1rem,6vw,6rem);scrollbar-width:thin}.track:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}@media(min-width:721px) and (max-width:900px) and (pointer:fine){.track{padding-inline:1rem;scroll-padding-inline:1rem}}.title-card{flex:none;min-width:min(42ch,80vw);max-width:none;scroll-snap-align:start;padding-right:clamp(1.5rem,3vw,3rem);align-self:stretch;min-height:0;column-width:34ch;column-gap:clamp(1.5rem,3vw,3rem);overflow-wrap:anywhere;overflow-y:auto;overflow-x:clip;scrollbar-width:thin}.title-card>h1,.title-card>.years,.title-card>.authors{column-span:all}.title-card h1{font-size:clamp(1.8rem,1.3rem + 2vw,3rem);letter-spacing:-.02em;margin:0 0 .4rem;overflow-wrap:normal}.title-card .years,.title-card .authors{color:var(--stage-muted);margin:0 0 .25rem}.title-card .statement{margin-top:1.1rem;max-width:none}.walk-cue{color:var(--accent);margin-top:1.6rem;font-variant-numeric:tabular-nums;letter-spacing:.04em}.frame{flex:none;scroll-snap-align:center;margin:0;display:flex;flex-direction:column;gap:.6rem;height:100%;justify-content:center}.frame picture{display:block}.frame img{display:block;height:auto;width:auto;max-height:min(82dvh,calc(100dvh - var(--head-h,4rem) - var(--hud-h,0rem) - 4rem));max-width:88vw;user-select:none;-webkit-user-drag:none}.frame figcaption{font-family:ibm plex mono,ui-monospace,sfmono-regular,Menlo,monospace;font-size:.72rem;letter-spacing:.04em;color:var(--stage-muted)}.fig-num{font-variant-numeric:tabular-nums}.end-card{flex:0 0 min(30ch,70vw);scroll-snap-align:center;display:flex;flex-direction:column;gap:.8rem}.end-card a{text-decoration:none}.end-next{font-size:clamp(1.3rem,1rem + 1.5vw,2rem);letter-spacing:-.01em}.end-next:hover,.end-back:hover{color:var(--accent)}.end-back{color:var(--stage-muted)}.track{cursor:default}@media(pointer:fine){.track{cursor:grab}.track.is-grabbing{cursor:grabbing}}.track.is-grabbing{scroll-snap-type:none}@media(prefers-reduced-motion:no-preference){.frame img{animation:frame-in .6s ease both}@keyframes frame-in{from{opacity:.001}to{opacity:1}}}}@layer filmstrip{.hud{position:sticky;bottom:0;display:none;grid-template-columns:1fr auto;grid-template-areas:"scrub scrub" "strip count";gap:.5rem 1rem;align-items:center;padding:.6rem clamp(1rem,4vw,2.5rem).9rem;background:color-mix(in srgb,var(--stage) 82%,transparent);backdrop-filter:blur(8px);border-top:1px solid var(--stage-rule)}:root.has-horizon .hud{display:grid}.scrubber{grid-area:scrub;height:2px;background:var(--stage-rule);position:relative;overflow:hidden}.scrubber i{position:absolute;inset:0 auto 0 0;width:0;background:var(--accent);transform-origin:left}@supports(animation-timeline:scroll(self inline)){.track{scroll-timeline:--tl inline}.scrubber i{width:100%;transform:scaleX(0);animation:scrub linear both;animation-timeline:--tl}@keyframes scrub{to{transform:scaleX(1)}}}.filmstrip{grid-area:strip;display:flex;gap:.4rem;overflow-x:auto;scrollbar-width:none}.filmstrip::-webkit-scrollbar{display:none}.filmstrip button{flex:none;padding:0;border:0;background:0 0;cursor:pointer;line-height:0;min-height:44px;opacity:.5;outline:2px solid transparent;outline-offset:2px;transition:opacity .2s}.filmstrip button:hover{opacity:.85}.filmstrip button:focus-visible{opacity:1;outline-color:var(--accent)}.filmstrip button.is-on{opacity:1;outline-color:var(--accent)}.filmstrip img{height:34px;width:auto}.counter{grid-area:count;margin:0;color:var(--stage-muted);font-family:ibm plex mono,ui-monospace,sfmono-regular,Menlo,monospace;font-size:.75rem;font-variant-numeric:tabular-nums;white-space:nowrap}}@layer mobile{@media(max-width:720px),(pointer:coarse){.track{display:block;height:auto;overflow:visible;scroll-snap-type:none;padding:1rem clamp(1rem,4vw,2.5rem)3rem;cursor:auto}.title-card{flex-basis:auto;padding-right:0;margin-bottom:1.5rem}.walk-cue{display:none}.frame{display:block;height:auto;margin:0 0 clamp(2rem,6vh,4rem)}.frame picture,.frame img{max-width:100%;max-height:100dvh;margin-inline:auto}.frame figcaption{margin-top:.5rem}.end-card{flex-basis:auto;margin-top:1rem}.hud{display:none}}@media(max-width:30rem){.project-index a{display:grid;grid-template-columns:auto minmax(0,1fr)auto;grid-template-rows:auto auto;column-gap:.75rem;row-gap:.1rem}.project-index a::before{grid-column:1;grid-row:1/span 2;margin-right:0}.project-index .p-title{grid-column:2;grid-row:1;align-self:end}.project-index .p-years{grid-column:2;grid-row:2;align-self:start}.project-index picture{grid-column:3;grid-row:1/span 2}}}@layer index{.project-index .p-years{font-family:ibm plex mono,ui-monospace,sfmono-regular,Menlo,monospace;font-size:.8rem;letter-spacing:.02em}.project-index a::before{content:counter(pidx,decimal-leading-zero);counter-increment:pidx;font-family:ibm plex mono,ui-monospace,sfmono-regular,Menlo,monospace;font-size:.75rem;color:var(--muted);margin-right:1rem;font-variant-numeric:tabular-nums}.project-index{counter-reset:pidx}}