@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:400 800;font-stretch:62% 125%;src:url(/assets/archivo-ylvLQBNP.woff2)format("woff2-variations")}@property --accent{syntax:"<color>";inherits:true;initial-value:#ecebe4}@property --tint{syntax:"<color>";inherits:true;initial-value:#0c0c0d}:root{--fg:#ecebe4;--muted:#8d8b84;--line:#ecebe424;--accent:#ecebe4;--tint:#0c0c0d;--pad:clamp(20px, 4vw, 64px);--ease:cubic-bezier(.22, 1, .36, 1);transition:--accent .9s var(--ease), --tint 1.2s var(--ease);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{background:var(--tint);color:var(--fg);font-variation-settings:"wdth" 100;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Archivo Variable,system-ui,sans-serif;font-size:17px;line-height:1.5;overflow-x:clip}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:#0c0c0d}.grain{pointer-events:none;z-index:50;will-change:transform;opacity:.07;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 1.4 -0.2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:1.2s steps(6,end) infinite grain;position:fixed;inset:-6%}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-3%,-2%)}80%{transform:translate(3%,3%)}}.header{z-index:40;padding:18px var(--pad);letter-spacing:.01em;mix-blend-mode:difference;color:#fff;justify-content:space-between;align-items:center;font-size:14px;display:flex;position:fixed;inset:0 0 auto}.header nav{gap:clamp(14px,2.4vw,32px);display:flex}.header .mark{font-variation-settings:"wdth" 125;font-weight:700}.u{display:inline-block;position:relative}.u:after{content:"";transform-origin:100%;height:1px;transition:transform .5s var(--ease);background:currentColor;position:absolute;bottom:-2px;left:0;right:0;transform:scaleX(0)}.u:hover:after{transform-origin:0;transform:scaleX(1)}.hero{min-height:100svh;padding:0 var(--pad);grid-template-rows:1fr auto auto;display:grid;position:relative;overflow:clip}.hero-canvas{z-index:0;opacity:.55;position:absolute;inset:0}.hero-canvas canvas{width:100%;height:100%;display:block}.hero-name{z-index:1;letter-spacing:-.035em;white-space:nowrap;transform-origin:0 100%;align-self:end;margin:0;font-size:clamp(56px,15.2vw,300px);font-weight:800;line-height:.8;position:relative}.hero-name .line{padding-bottom:.06em;display:block;overflow:clip}.hero-name .line>span{display:inline-block}.hero-foot{z-index:1;border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:24px;margin-top:24px;padding:28px 0 32px;font-size:15px;display:grid;position:relative}.hero-foot p{color:var(--muted);margin:0}.hero-foot p+p{margin-top:2px}.hero-index{flex-wrap:wrap;justify-content:flex-end;gap:6px 18px;margin:0;padding:0;list-style:none;display:flex}.hero-index a{color:var(--fg)}.hero-index .dot{vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.project{padding:clamp(96px,16vh,180px) 0 0;position:relative}.project-head{padding:0 var(--pad);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:clamp(24px,4vh,48px) clamp(24px,5vw,80px);display:grid}.project-head .project-title{grid-column:1/-1}.project-info{grid-column:2}.project-title{letter-spacing:-.04em;color:var(--accent);font-variation-settings:"wdth" 112;margin:0;font-size:clamp(60px,12.5vw,230px);font-weight:800;line-height:.86}.project-title .line{padding-bottom:.08em;display:block;overflow:clip}.project-title .line>span{display:inline-block}.project-meta{color:var(--muted);flex-wrap:wrap;gap:4px 18px;margin-bottom:14px;font-size:13.5px;display:flex}.project-meta span:first-child{color:var(--fg)}.project-blurb{text-wrap:pretty;max-width:34em;margin:0;font-size:clamp(17px,1.45vw,21px);line-height:1.45}.project-stats{flex-wrap:wrap;gap:14px 36px;margin-top:22px;display:flex}.stat b{font-variation-settings:"wdth" 118;letter-spacing:-.01em;color:var(--accent);font-size:26px;font-weight:700;line-height:1.1;display:block}.stat span{color:var(--muted);font-size:13px}.project-links{gap:22px;margin-top:22px;font-size:15px;display:flex}.project-links a{color:var(--accent)}.project-links a:before{content:"↗";margin-right:6px;font-size:.9em;display:inline-block}.project-body{margin-top:clamp(40px,7vh,80px)}.scene{position:relative}.scene-sticky{height:100svh;position:sticky;top:0;overflow:clip}.scene-caption{left:var(--pad);color:var(--muted);z-index:2;gap:18px;font-size:13px;display:flex;position:absolute;bottom:28px}.scene-caption .on{color:var(--accent)}.reveal{background:#ffffff08;position:relative;overflow:clip}.reveal img,.reveal video{object-fit:cover;width:100%;height:100%;display:block}.footer{padding:clamp(120px, 22vh, 240px) var(--pad) 40px;position:relative}.footer-kicker{color:var(--muted);margin:0 0 18px;font-size:15px}.footer-mail{letter-spacing:-.04em;font-variation-settings:"wdth" 100;font-size:clamp(30px,6.6vw,124px);font-weight:800;line-height:.95;display:inline-block}.footer-row{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:18px;margin-top:clamp(60px,12vh,140px);padding-top:22px;font-size:15px;display:flex}.footer-row nav{color:var(--fg);gap:24px;display:flex}.cursor{z-index:60;pointer-events:none;mix-blend-mode:difference;width:12px;height:12px;transition:width .35s var(--ease), height .35s var(--ease), margin .35s var(--ease), opacity .2s;background:#fff;border-radius:50%;place-items:center;margin:-6px 0 0 -6px;display:grid;position:fixed;top:0;left:0}.cursor span{color:#000;opacity:0;white-space:nowrap;font-size:12px;font-weight:600;transition:opacity .2s}.cursor.big{width:84px;height:84px;margin:-42px 0 0 -42px}.cursor.big span{opacity:1}.cursor.link{width:44px;height:44px;margin:-22px 0 0 -22px}@media (pointer:coarse){.cursor{display:none}}@media (pointer:fine){body.has-cursor,body.has-cursor a,body.has-cursor button{cursor:none}}button{font:inherit;color:inherit;background:0 0;border:0;padding:0}@media (width<=820px){.project-head{grid-template-columns:1fr;align-items:start}.project-info{grid-column:1}.hero-foot{grid-template-columns:1fr}.hero-index{justify-content:flex-start}}@media (prefers-reduced-motion:reduce){.grain{animation:none}}.kart-sticky{align-items:center;display:flex}.kart-track{padding:0 var(--pad);will-change:transform;gap:clamp(20px,3vw,44px);display:flex}.kart-card{width:calc(var(--w) * min(38vw, 60vh));flex:none;margin:0}.kart-frame{border:1px solid var(--line);background:#111;border-radius:6px;place-items:center;height:min(62vh,560px);display:grid;overflow:clip}.kart-frame img{object-fit:cover;width:100%;height:100%}.kart-frame.contain{background:#000}.kart-frame.contain img{object-fit:contain}.kart-arch{width:94%;height:auto;font-family:inherit}.kart-card figcaption{color:var(--muted);margin-top:12px;font-size:13px}@media (width<=820px){.kart-card{width:calc(var(--w) * 62vw)}.kart-frame{height:50vh}}.sparrows{height:clamp(640px,130vh,1300px);margin:0 var(--pad);position:relative}.sp-main{z-index:2;position:absolute;top:8%;left:10%;right:10%}.sp-side{z-index:3;width:34%;position:absolute}.sp-side.a{top:52%;left:-2%}.sp-side.b{top:40%;right:-2%}.sp-side.c{z-index:1;width:30%;top:80%;left:30%}.browser{background:#111;border:1px solid #ffffff1a;border-radius:10px;overflow:clip;box-shadow:0 40px 80px -30px #000c}.browser-bar{height:28px;color:var(--muted);background:#1b1a19;align-items:center;gap:6px;padding:0 12px;font-size:11.5px;display:flex}.browser-bar i{background:#ffffff24;border-radius:50%;width:9px;height:9px}.browser-bar span{margin-left:10px}.browser img{width:100%;height:auto;display:block}.reveal>div:has(.browser){height:auto!important}@media (width<=820px){.sparrows{height:150vw;margin:0 12px}.sp-main{top:2%;left:0;right:0}.sp-side{width:62%}.sp-side.a{top:38%;left:0}.sp-side.b{top:58%;left:auto;right:0}.sp-side.c{width:56%;top:80%;left:8%}}.fal-sticky{place-items:center;display:grid}.fal-stage{aspect-ratio:16/10;background:#16140f;border-radius:6px;width:min(84vw,1180px);max-height:74vh;position:relative;overflow:clip}.fal-layer{background:#16140f;position:absolute;inset:0;overflow:clip}.fal-layer img{width:100%;height:100%;display:block}@media (width<=820px){.fal-stage{aspect-ratio:4/5;width:calc(100vw - 24px)}}.footer-mail h2{font:inherit;margin:0}.footer-mail .line{padding-bottom:.08em;display:block;overflow:clip}.footer-mail .line>span{display:inline-block}.emulsion{padding:0 var(--pad);position:relative}.emulsion-stage{touch-action:pan-y;-webkit-user-select:none;user-select:none;border-radius:6px;height:min(86svh,900px);overflow:clip}.emulsion-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:16px;font-size:14px;display:flex}.emulsion-plates{flex-wrap:wrap;gap:8px;display:flex}.emulsion-plates button{border:1px solid var(--line);color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:7px 12px 7px 8px;transition:color .3s,border-color .3s;display:inline-flex}.emulsion-plates button i{border-radius:6px;width:22px;height:12px}.emulsion-plates button.on,.emulsion-plates button:hover{color:var(--fg);border-color:var(--accent)}.emulsion-seed{color:var(--muted);font-variant-numeric:tabular-nums}.hero-canvas:after{content:"";background:linear-gradient(#0c0c0d00 45%,#0c0c0dd9 88%);position:absolute;inset:0}.sp-phone{z-index:4;width:15%;position:absolute;top:72%;right:4%}.sp-phone .reveal{border:6px solid #1b1a19;border-radius:26px;box-shadow:0 40px 80px -30px #000000e6}.sp-phone img{width:100%;height:auto;display:block}.sp-phone .reveal>div{height:auto!important}@media (width<=820px){.sp-phone{width:34%;top:22%;right:2%}}.emulsion-stage{position:relative}.emulsion-layer{transition-property:opacity;transition-timing-function:ease-in-out;position:absolute;inset:0}
