:root{color-scheme:light;--tone:#e9d5d0;--deep:#7a2e3b;--text:#18191c;--pencil:#2f3034;--night:#1a1a1d;--f-display:"DM Serif Display", Georgia, "Times New Roman", serif;--f-sans:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-io:cubic-bezier(.65, 0, .35, 1);--gutter:max(20px, env(safe-area-inset-left,0px));--gutter-r:max(20px, env(safe-area-inset-right,0px));--grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.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 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}:root,.band,.panel,.about,.card{--sub:color-mix(in srgb, var(--text) 72%, var(--tone))}*,:before,:after{box-sizing:border-box}html{background:var(--tone);scroll-behavior:smooth;scroll-snap-type:y mandatory;scrollbar-gutter:stable}body{color:var(--text);font-family:var(--f-sans);background:0 0;margin:0;font-size:16px;line-height:1.55;transition:color .5s}img,video{max-width:100%;display:block}a{color:inherit}.bgs{z-index:0;pointer-events:none;background:var(--tone);position:fixed;inset:0;overflow:hidden}.bgs div{will-change:transform, opacity;backface-visibility:hidden;position:absolute;inset:0}body:after{content:"";z-index:0;pointer-events:none;background:var(--grain);position:fixed;inset:0;transform:translateZ(0)}.top{z-index:10;padding:calc(18px + env(safe-area-inset-top,0px)) var(--gutter-r) 12px var(--gutter);pointer-events:none;justify-content:space-between;align-items:center;gap:16px;display:flex;position:fixed;top:0;left:0;right:0}.top a{pointer-events:auto;color:var(--text);text-decoration:none;transition:color .5s,background-color .3s}.brand{font:400 18px/1 var(--f-display);letter-spacing:-.01em}.brand:focus-visible{outline-offset:4px;outline:2px solid}.about-btn{font:800 10.5px/1 var(--f-sans);letter-spacing:.2em;text-transform:uppercase;text-underline-offset:5px;padding:6px 0;text-decoration:underline 1.5px #0000;transition:text-decoration-color .25s}.about-btn:hover,.about-btn:focus-visible{outline:none;text-decoration-color:currentColor}.about{z-index:1;scroll-snap-align:start;align-items:center;height:100svh;padding-block:clamp(60px,10vh,120px);display:flex;position:relative}.about .in{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:end}.about .ttl{margin-bottom:0}.about{color:var(--text)}.about .num{color:var(--deep)}.about p{opacity:.85;max-width:46ch;margin:0;font-size:clamp(17px,1.5vw,19px);line-height:1.6}.links{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.links a{font:800 12px/1 var(--f-sans);letter-spacing:.2em;text-transform:uppercase;border:1.5px solid;border-radius:999px;padding:10px 16px;text-decoration:none;transition:background-color .3s,color .3s}.links a:hover,.links a:focus-visible{background:var(--text);color:var(--tone);outline:none}@media (width<=860px){html{scroll-snap-type:y proximity}.about{height:auto;min-height:100svh}.about .in{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}body{transition:none}}.band{z-index:1;scroll-snap-align:start;height:100svh;color:var(--text);align-items:center;padding-block:clamp(40px,7vh,90px);text-decoration:none;display:flex;position:relative}.band:focus-visible{outline:none}.in{width:100%;max-width:1320px;padding-left:var(--gutter);padding-right:var(--gutter-r);grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,64px);margin:0 auto;display:grid}.band.flip .in{grid-template-columns:minmax(0,1fr) minmax(0,1.9fr)}.band.flip .vis{order:2}@media (width>=861px){.band .in,.about .in{padding-right:max(72px, env(safe-area-inset-right,0px))}}.vis{transform-origin:50%;will-change:transform}.hov{transition:transform .5s var(--ease-out)}.band:hover .hov{transform:scale(1.025)}.dev{aspect-ratio:1000/600;width:calc(100% * var(--size,1));max-width:100%;margin-inline:auto;position:relative}.screen{border-radius:3px;position:absolute;overflow:hidden;box-shadow:0 0 0 1px #00000040,0 18px 34px -22px #0009}.screen img{object-fit:cover;transform-origin:50%;will-change:transform;backface-visibility:hidden;width:100%;height:100%}.screen.contain img{object-fit:contain;background:#fff}.screen:after{content:"";pointer-events:none;background:linear-gradient(115deg,#ffffff29,#fff0 40%);position:absolute;inset:0}.print{background:#fff;padding:1.2%;position:absolute;box-shadow:0 2px 3px #00000014,0 22px 40px -24px #0000008c}.print .screen{width:100%;height:100%;box-shadow:none;border-radius:0;position:relative}.print .screen:after{display:none}.tape{background:#f0e8cdd1;width:18%;height:9%;position:absolute;box-shadow:0 1px 2px #00000014}.tape-l{top:-4%;left:-4%;transform:rotate(-32deg)}.tape-r{top:-4%;right:-4%;transform:rotate(30deg)}.dev>svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.rev path,.rev rect,.rev circle,.rev ellipse{stroke-dasharray:1;stroke-dashoffset:1px}html:not(.anim) .rev path,html:not(.anim) .rev rect,html:not(.anim) .rev circle,html:not(.anim) .rev ellipse{stroke-dashoffset:0}.txt{will-change:transform, opacity}.num{font:800 12px var(--f-sans);letter-spacing:.24em;color:var(--deep)}.ttl{font:400 clamp(48px, 6.6vw, 104px)/.9 var(--f-display);letter-spacing:-.02em;margin:14px 0 0}.blurb{max-width:30ch;font:400 clamp(16px, 1.25vw, 18px)/1.5 var(--f-sans);color:var(--sub);text-wrap:pretty;margin:18px 0 24px}.chip{font:800 12px var(--f-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--sub);flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.chip .arr{color:var(--deep)}.chip b{background:var(--deep);color:var(--on-deep,#fff);border-radius:2px;padding:6px 10px}.band .ttl span{text-underline-offset:.14em;text-decoration-skip-ink:auto;text-decoration:underline 2px #0000;transition:text-decoration-color .3s}.band:hover .ttl span,.band:focus-visible .ttl span{text-decoration-color:var(--deep)}.anim .vis{transition:transform 1.15s var(--ease-out);transform:scale(.82)translateY(40px)}.anim .active .vis{transform:none}.anim .band .screen img{transition:transform 1.6s var(--ease-out);transform:scale(1.3)}.anim .band.active .screen img{transform:none}.anim .txt{opacity:0;transition:opacity .6s ease .12s, transform 1s var(--ease-out) 80ms;transform:translateY(36px)}.anim .active .txt{opacity:1;transform:none}.settled .vis,.settled .txt,.settled .band .screen img{transition:none!important}@media (width<=860px){.in,.band.flip .in{grid-template-columns:minmax(0,1fr)}.band.flip .vis{order:0}.band{height:auto;min-height:100svh}}@media (prefers-reduced-motion:reduce){.hov{transition:none}}.dots{z-index:10;right:max(18px, env(safe-area-inset-right,0px));flex-direction:column;align-items:center;padding:8px;transition:opacity .4s;display:flex;position:fixed;top:50%;transform:translateY(-50%)}.dots a{--f:0;z-index:1;outline:none;width:8px;height:8px;margin:8px 0;display:block;position:relative}.dots a:before{content:"";background:color-mix(in srgb, var(--c) calc(var(--f) * 100%), var(--text));width:8px;height:22px;opacity:calc(.25 + .75 * var(--f));clip-path:inset(calc((1 - var(--f)) * 7px) 0 round 4px);position:absolute;top:-7px;left:0}.dots a:hover:before,.dots a:focus-visible:before{opacity:max(.6, calc(.25 + .75 * var(--f)))}.dots a.dot-about:before{background:radial-gradient(circle, color-mix(in srgb, var(--c) calc(var(--f) * 100%), transparent) 2.4px, color-mix(in srgb, var(--c) calc(var(--f) * 100%), var(--text)) 2.9px)}.dots span{white-space:nowrap;font:800 11px var(--f-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--text);opacity:0;pointer-events:none;transition:opacity .2s, transform .3s var(--ease-out);background:#ffffffbf;border-radius:999px;padding:6px 10px;position:absolute;top:50%;right:22px;transform:translate(6px,-50%)}.dots a:hover span,.dots a:focus-visible span,.dots button:hover span,.dots button:focus-visible span{opacity:1;transform:translateY(-50%)}.dark .dots span{background:#0009}.dots a{transition:opacity .35s}.grid-open .dots a{opacity:0;pointer-events:none}.grid-toggle{z-index:1;width:26px;height:26px;color:var(--text);cursor:pointer;opacity:.5;background:0 0;border:0;border-radius:6px;place-items:center;margin:0 0 8px;padding:0;transition:opacity .2s,color .5s;display:grid;position:relative}.grid-toggle:hover,.grid-toggle:focus-visible,.grid-toggle[aria-pressed=true]{opacity:1}.grid-toggle:focus-visible{outline-offset:2px;outline:2px solid}.grid-toggle svg{fill:currentColor;width:14px;height:14px;transition:opacity .25s, transform .45s var(--ease-out);grid-area:1/1}.grid-toggle .ico-dots{opacity:0;transform:rotate(-90deg)scale(.5)}.grid-toggle[aria-pressed=true] .ico-grid{opacity:0;transform:rotate(90deg)scale(.5)}.grid-toggle[aria-pressed=true] .ico-dots{opacity:1;transform:none}html:not(.js) .grid-toggle{display:none}@media (width<=860px){.dots{top:auto;bottom:calc(18px + env(safe-area-inset-bottom,0px));padding:0;transform:none}.dots a{display:none}.grid-toggle{opacity:1;background:color-mix(in srgb, var(--tone) 82%, transparent);backdrop-filter:blur(10px);width:46px;height:46px;box-shadow:0 0 0 1px color-mix(in srgb, var(--text) 10%, transparent), 0 10px 24px -12px #00000073;border-radius:999px;margin:0}.grid-toggle svg{width:16px;height:16px}.grid-toggle span{display:none}}.grid{z-index:5;overscroll-behavior:contain;background:var(--tone);visibility:hidden;opacity:0;transition:opacity .45s var(--ease-out), visibility 0s linear .45s;position:fixed;inset:0;overflow:hidden auto}.grid-open .grid{visibility:visible;opacity:1;transition:opacity .45s var(--ease-out)}[data-vt] .grid{transition:none}html.grid-open{overflow:hidden}.grid-fade{z-index:3;pointer-events:none;background:linear-gradient(var(--tone) 48%, color-mix(in srgb, var(--tone) 0%, transparent));height:92px;margin-bottom:-92px;position:sticky;top:0}.grid-in{max-width:1320px;padding:calc(84px + env(safe-area-inset-top,0px)) var(--gutter-r) 72px var(--gutter);margin:0 auto}@media (width>=861px){.grid-in{padding-right:max(72px, env(safe-area-inset-right,0px))}}.grid-head{font:800 11px var(--f-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--sub);margin:0;padding:0 clamp(20px,2.6vw,36px)}.grid-head span{color:var(--deep);margin-left:8px}.cards{isolation:isolate;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid;position:relative}.cards:after{content:"";z-index:-1;background:var(--grain);pointer-events:none;position:absolute;inset:-120px}.card{min-width:0;padding:clamp(26px,3vw,44px) clamp(20px,2.6vw,36px) clamp(34px,4vw,56px);position:relative}.card:before{content:"";z-index:-1;background:var(--tone);filter:blur(36px);border-radius:32px;position:absolute;inset:1%}.card a{color:var(--text);outline:none;text-decoration:none;display:block}.card-vis{margin-bottom:clamp(16px,2vw,26px)}.card .dev{transition:transform .5s var(--ease-out)}.card a:hover .dev,.card a:focus-visible .dev{transform:scale(1.035)}.dev>img.art{pointer-events:none;width:104%;max-width:none;height:106.667%;position:absolute;top:-3.333%;left:-2%}.dev>img.art:not([src]){visibility:hidden}.card-meta{align-items:center;gap:12px;display:flex}.tag{font:800 10.5px/1 var(--f-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--deep);background:color-mix(in srgb, var(--deep) 13%, transparent);border-radius:999px;padding:6px 9px}.card-ttl{font:400 clamp(28px, 2.5vw, 38px)/1.02 var(--f-display);letter-spacing:-.01em;margin:12px 0 8px}.card-ttl span{text-underline-offset:.14em;text-decoration:underline 2px #0000;transition:text-decoration-color .3s}.card a:hover .card-ttl span,.card a:focus-visible .card-ttl span{text-decoration-color:var(--deep)}.card-blurb{max-width:36ch;font:400 15px/1.5 var(--f-sans);color:var(--sub);text-wrap:pretty;margin:0}.anim.grid-open .card a>*{animation:card-in .7s var(--ease-out) backwards;animation-delay:calc(90ms + var(--i) * 45ms)}.anim.grid-open .card.from .card-vis{animation:none}@keyframes card-in{0%{opacity:0;transform:translateY(26px)}}@media (width<=1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.cards{grid-template-columns:minmax(0,1fr)}.card:before{filter:blur(32px)}}::view-transition-old(root),::view-transition-new(root){animation-duration:.45s}::view-transition-group(shot){animation-duration:.75s;animation-timing-function:cubic-bezier(.16,1,.3,1)}::view-transition-old(shot),::view-transition-new(shot){height:100%;animation-duration:.35s}@media (prefers-reduced-motion:reduce){.grid,.grid-open .grid,.card .dev{transition:none}}.scrim{z-index:20;opacity:0;pointer-events:none;transition:opacity .6s var(--ease-io);background:#12121642;position:fixed;inset:0}.panel-open .scrim{opacity:1;pointer-events:auto;cursor:pointer}.panel-open{overflow:hidden}.panel{z-index:21;background:var(--tone-hi) var(--grain);width:min(940px,66vw);color:var(--text);visibility:hidden;transition:transform .8s var(--ease-out), visibility 0s linear .8s, opacity .45s;will-change:transform;position:fixed;top:0;bottom:0;right:0;transform:translate(102%);box-shadow:-40px 0 80px -40px #00000073}.panel.open{visibility:visible;transition:transform .8s var(--ease-out), visibility 0s, opacity .45s;transform:none}.panel.leaving{opacity:0;transition:transform .55s var(--ease-io), opacity .45s, visibility 0s linear .55s;transform:translate(-8%)}html:not(.js) .panel:target{visibility:visible;transform:none}.band .in{transition:transform .8s var(--ease-out)}.panel-open .band.active .in{transform:translate(-6%)scale(.93)}.panel-open .dots{opacity:0;pointer-events:none}.panel-scroll{--panel-pad:clamp(20px, 4vw, 56px);overscroll-behavior:contain;height:100%;padding:0 var(--panel-pad) 0;overflow-y:auto}.panel-scroll:focus{outline:none}.panel-bar{z-index:2;margin:0 calc(-1 * var(--panel-pad));padding:calc(18px + env(safe-area-inset-top,0px)) var(--panel-pad) 14px;background:var(--tone-hi) var(--grain);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.panel-bar:after{content:"";pointer-events:none;opacity:0;background:linear-gradient(#0000,#0000);height:14px;transition:opacity .25s;position:absolute;top:100%;left:0;right:0}.panel-bar.stuck:after{opacity:1}.panel-bar .num{color:var(--deep)}.panel-close{font:800 12px/1 var(--f-sans);letter-spacing:.2em;text-transform:uppercase;border:1.5px solid;border-radius:999px;padding:9px 15px;text-decoration:none;transition:background-color .3s,color .3s}.panel-close:hover,.panel-close:focus-visible{background:var(--text);color:var(--tone-hi);outline:none}.p-hero{aspect-ratio:16/10;background:#111;border-radius:4px;overflow:hidden;box-shadow:0 24px 50px -30px #0000008c}.p-hero img{object-fit:cover;width:100%;height:100%}html:not(.js) img[data-src]{display:none}.p-hero.contain{background:#fff}.p-hero.contain img{object-fit:contain}.p-head{padding:clamp(28px,4vw,44px) 0 8px}.p-head h2{font:400 clamp(46px, 5.6vw, 84px)/.92 var(--f-display);letter-spacing:-.02em;margin:0}.p-sum{font:400 clamp(19px, 1.8vw, 23px)/1.35 var(--f-display);max-width:38ch;color:var(--sub);margin:14px 0 0}.p-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;display:flex}.p-links{flex-wrap:wrap;gap:10px;display:flex}.btn{font:800 12px/1 var(--f-sans);letter-spacing:.14em;text-transform:uppercase;border:1.5px solid var(--text);border-radius:999px;padding:11px 16px;text-decoration:none;transition:background-color .3s,color .3s}.btn.primary{background:var(--deep);border-color:var(--deep);color:#fff}.btn:hover,.btn:focus-visible{background:var(--text);border-color:var(--text);color:var(--tone-hi);outline:none}.steps{border-top:1.5px solid var(--text);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:clamp(36px,5vw,56px) 0;padding:0;list-style:none;display:grid}.steps .aug{position:relative}.steps .aug:before{content:"";background:var(--deep);height:3px;position:absolute;top:-1.5px;left:0;right:0}.steps li{min-width:0;padding:16px 18px 0 0}.steps li+li{border-left:1px solid #0000001f;padding-left:18px}.steps .k{font:800 11px var(--f-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--sub);opacity:.8}.steps .aug .k{color:var(--deep);opacity:1}.steps h3{font:400 22px/1.15 var(--f-display);margin:10px 0 8px}.steps p{color:var(--sub);margin:0;font-size:14.5px;line-height:1.5}.p-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:clamp(36px,5vw,56px);display:grid}.p-gallery figure{min-width:0;margin:0}.p-gallery figure:first-child{grid-column:1/-1}.p-gallery img,.p-gallery video{background:#111;border-radius:4px;width:100%;height:auto;box-shadow:0 16px 34px -24px #00000080}.p-gallery figcaption{font:600 12.5px var(--f-sans);color:var(--sub);opacity:.85;margin-top:8px}.p-body{grid-template-columns:minmax(0,1fr) minmax(180px,240px);gap:clamp(24px,4vw,48px);padding-bottom:48px;display:grid}.prose{max-width:62ch;font-size:16.5px;line-height:1.65}.prose h2{font:400 30px/1.1 var(--f-display);margin:0 0 14px}.prose h2:not(:first-child){margin-top:36px}.prose p{margin:0 0 14px}.prose strong{font-weight:600}.prose a{color:var(--deep);text-underline-offset:.15em}.prose code{font:14px var(--f-mono);background:#0000000f;border-radius:3px;padding:1px 5px}.prose pre{color:#e8e6df;background:#1d1e22;border-radius:6px;padding:16px 18px;font-size:13.5px;line-height:1.55;overflow-x:auto}.prose pre code{color:inherit;background:0 0;padding:0}.facts{border-top:1.5px solid var(--text);align-self:start;margin:0;padding-top:14px;font-size:14px}.facts dt{font:800 11px var(--f-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--sub);opacity:.8;margin-top:16px}.facts dt:first-child{margin-top:0}.facts dd{margin:6px 0 0}.facts ul{margin:0;padding-left:18px}.p-next{padding:36px clamp(20px, 4vw, 56px) calc(44px + env(safe-area-inset-bottom,0px));border-top:1.5px solid var(--text);justify-content:space-between;align-items:baseline;gap:16px;margin:0 calc(-1*clamp(20px,4vw,56px));text-decoration:none;display:flex}.p-next span{font:800 12px var(--f-sans);letter-spacing:.2em;text-transform:uppercase;color:var(--sub)}.p-next strong{font:400 clamp(28px, 3.4vw, 44px)/1 var(--f-display);transition:transform .4s var(--ease-out);transition:transform .4s var(--ease-out), color .3s}.p-next:hover strong,.p-next:focus-visible strong{color:var(--deep);transform:translate(8px)}.p-next:focus-visible{outline:none}.anim .panel .rise{opacity:0;transition:opacity .5s ease, transform .8s var(--ease-out);transform:translateY(26px)}.anim .panel.open .rise{opacity:1;transition-delay:calc(.22s + var(--d,0) * 70ms);transform:none}.flight{z-index:30;pointer-events:none;will-change:transform;transform-origin:0 0;border-radius:4px;margin:0;position:fixed;overflow:hidden}.flight img{object-fit:cover;width:100%;height:100%}.flight.contain{background:#fff}.flight.contain img{object-fit:contain}@media (width<=860px){.panel{width:100vw}.steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}.steps li:nth-child(3){border-left:0;padding-left:0}.p-body{grid-template-columns:minmax(0,1fr)}}@media (width<=520px){.steps{grid-template-columns:minmax(0,1fr)}.steps li+li{border-left:0;padding-left:0}.p-gallery{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.panel,.panel.open,.panel.leaving,.scrim,.band .in{transition:none}}.intro{display:none}.intro-on .intro,.intro-done .intro{z-index:100;color:#ecebe6;will-change:transform;background:#18191c;justify-content:center;align-items:center;transition:transform 1s cubic-bezier(.76,0,.24,1);display:flex;position:fixed;inset:0;transform:translate(0,0)}.intro-on{overflow:hidden}.intro-done .intro{transform:translateY(-100%)}.intro-in{text-align:center;padding:0 var(--gutter);transition:transform 1s cubic-bezier(.76,0,.24,1),opacity .45s}.intro-done .intro-in{opacity:0;transform:translateY(-14vh)}.intro-name{font:400 clamp(44px, 7.5vw, 112px)/1.04 var(--f-display);letter-spacing:-.02em;margin:0}.intro-name .w{vertical-align:bottom;padding:0 .02em .1em;display:inline-block;overflow:hidden}.intro-name .w>span{display:inline-block;transform:translateY(108%)}.intro-rule{background:#d9b8b0;width:72px;height:1.5px;margin:26px auto 0;display:block;transform:scaleX(0)}.intro-line{font:800 11px/1 var(--f-sans);letter-spacing:.24em;text-transform:uppercase;color:#ecebe699;opacity:0;margin:20px 0 0}.intro-go .intro-name .w>span{animation:intro-up .95s var(--ease-out) forwards}.intro-go .intro-name .w+.w>span{animation-delay:90ms}.intro-go .intro-rule{animation:intro-rule .8s .4s var(--ease-out) forwards}.intro-go .intro-line{animation:.7s .55s forwards intro-fade}@keyframes intro-up{to{transform:translate(0,0)}}@keyframes intro-rule{to{transform:scaleX(1)}}@keyframes intro-fade{to{opacity:1}}
