@font-face{font-family:Archivo;src:url(/fonts/archivo.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}@font-face{font-family:Plex Mono;src:url(/fonts/plex-mono-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Plex Mono;src:url(/fonts/plex-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}:root{--bg:#f1f0eb;--bg-alt:#dde6e3;--ink:#0f2629;--muted:#43595c;--faint:rgba(15,38,41,.36);--line:rgba(15,38,41,.14);--line-2:rgba(15,38,41,.32);--orange:#ec6f1f;--orange-ink:#ad4c0e;--logo-t:#286269;--logo-o:#ec6f1f;--gut:clamp(16px,5vw,72px);--safe:0px;--mono:"Plex Mono",ui-monospace,Menlo,monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0a1c1f;--bg-alt:#020b0c;--ink:#e3ebe9;--muted:#a3b8b7;--faint:rgba(227,235,233,.32);--line:rgba(227,235,233,.12);--line-2:rgba(227,235,233,.3);--orange-ink:#f2873f;--logo-t:#7db9be;color-scheme:dark}}:root[data-theme=dark]{--bg:#0a1c1f;--bg-alt:#020b0c;--ink:#e3ebe9;--muted:#a3b8b7;--faint:rgba(227,235,233,.32);--line:rgba(227,235,233,.12);--line-2:rgba(227,235,233,.3);--orange-ink:#f2873f;--logo-t:#7db9be;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--bg);color:var(--ink);font:400 1.125rem/1.55 Archivo,system-ui,sans-serif;font-stretch:100%;overflow-x:hidden}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-color:var(--orange)}:focus-visible{outline:2px solid var(--orange);outline-offset:3px;border-radius:2px}h1,h2,h3{margin:0;font-weight:560;letter-spacing:-.02em}p{margin:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.top{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px var(--gut)}.brand{display:block;line-height:0}.brand svg{height:32px;width:auto}.brand svg,.piece svg{fill-rule:evenodd}.brand .t,.piece .t{fill:var(--logo-t)}.brand .o,.piece .o{fill:var(--logo-o)}.top nav{display:flex;align-items:center;gap:clamp(16px,2.6vw,36px);font-size:1.05rem}.top nav a{text-decoration:none}.top nav a:hover{text-decoration:underline;text-decoration-color:var(--orange)}.top nav a.cta{padding:8px 16px;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:540}.top nav a.cta:hover{text-decoration:none;background:color-mix(in oklab,var(--ink) 85%,var(--orange))}.top nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--orange)}.lang{font:500 .95rem var(--mono);padding:5px 10px;border:1px solid var(--line-2);border-radius:999px}.top nav a.lang:hover{text-decoration:none;border-color:var(--orange)}.theme{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--line-2);border-radius:50%;background:none;color:var(--ink);cursor:pointer}.theme svg{width:18px;height:18px}.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 24px;padding:26px var(--gut) 34px;border-top:1px solid var(--line);font:400 .95rem var(--mono);color:var(--muted)}.foot nav{display:flex;flex-wrap:wrap;gap:10px 22px}@media(max-width:600px){.top nav{gap:10px}.top nav a:not(.cta):not(.lang){display:none}}@media(max-width:860px){:root{--safe: calc(64px + env(safe-area-inset-bottom)) }}body{background:color-mix(in oklab,var(--bg) calc(100% - var(--k,0) * 100%),var(--bg-alt))}.top{position:absolute;top:0;left:0;right:0}#stage{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}header,main,footer{position:relative;z-index:1}.anchor{pointer-events:none}.fallback{display:none;width:100%;height:100%;object-fit:contain;padding:8%}.no-webgl .fallback{display:block}.sticky{position:sticky;top:0;height:100svh;overflow:hidden}.hero{height:200vh}.hero-anchor{position:absolute;right:2vw;top:10svh;width:44vw;height:78svh}.hero-copy{position:absolute;left:var(--gut);bottom:13svh;max-width:min(46rem,50vw);opacity:calc(1 - var(--out,0));filter:blur(calc(var(--out,0) * 14px))}.hero h1{font-size:clamp(2.3rem,1.1rem + 4.2vw,5.6rem);line-height:.98;font-stretch:116%;max-width:11ch}.hero h1 span{display:inline-block;animation:focus-in 1.3s cubic-bezier(.2,.7,.2,1) both}.hero h1 span:nth-child(2){animation-delay:.12s}.hero h1 span:nth-child(3){animation-delay:.24s}.hero-copy p{margin-top:1.6rem;max-width:32rem;color:var(--muted);font-size:1.2rem;animation:focus-in 1.3s .4s cubic-bezier(.2,.7,.2,1) both}@keyframes focus-in{0%{opacity:0;filter:blur(16px);transform:translateY(.25em)}to{opacity:1;filter:none;transform:none}}.cue{position:absolute;right:var(--gut);bottom:5svh;font:500 .95rem var(--mono);text-decoration:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:10px;opacity:calc(1 - var(--out,0) * 2)}.cue:after{content:"";width:1px;height:52px;background:linear-gradient(var(--orange) 0 0) 0 0/1px 40% no-repeat,var(--line-2);animation:cue 2.4s cubic-bezier(.6,0,.3,1) infinite}@keyframes cue{0%{background-position:0 -20px}to{background-position:0 64px}}.name{height:300vh}.name .sticky{display:grid;place-items:center}.word{display:flex;align-items:flex-start;gap:calc(var(--sp,0) * 6vw);opacity:var(--in,0);filter:blur(calc((1 - var(--in,0)) * 24px + var(--gone,0) * 18px));transform:translateY(calc((1 - var(--in,0)) * 48px)) scale(calc(1 - var(--sp,0) * .08 + (1 - var(--in,0)) * .25))}.piece{margin:0}.piece svg{display:block;height:clamp(58px,18vw,200px);width:auto;overflow:visible}.name-stack{display:flex;flex-direction:column;align-items:center;gap:2rem}.piece figcaption{margin-top:1.6rem;font:520 clamp(1.15rem,.6rem + 1.15vw,1.8rem)/1.15 Archivo,system-ui,sans-serif;font-stretch:112%;letter-spacing:-.01em;color:var(--ink);opacity:var(--lb,0);filter:blur(calc((1 - var(--lb,0)) * 8px));transform:translateY(calc((1 - var(--lb,0)) * 10px));width:max-content;max-width:13ch}.piece figcaption:first-letter{color:var(--orange-ink)}.defs{display:none;list-style:none;margin:0;padding:0;font:520 1.15rem/1.5 Archivo,system-ui,sans-serif;font-stretch:110%;opacity:var(--lb,0);filter:blur(calc((1 - var(--lb,0)) * 8px))}.defs b{display:inline-block;width:2.4em;font:500 .95rem var(--mono);color:var(--orange-ink)}.name-note{position:absolute;left:50%;bottom:3.5svh;width:min(38rem,calc(100% - 2 * var(--gut)));transform:translate(-50%);text-align:center;color:var(--muted);font-size:1.2rem;opacity:var(--lb,0);filter:blur(calc((1 - var(--lb,0)) * 10px))}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.8rem}.btn{display:inline-flex;align-items:center;gap:.5em;padding:13px 22px;border:1px solid var(--line-2);border-radius:999px;font:540 1.05rem/1 Archivo,system-ui,sans-serif;font-stretch:108%;color:var(--ink);background:none;text-decoration:none;cursor:pointer;transition:border-color .2s,background-color .2s}.btn:hover{border-color:var(--orange)}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.primary:after{content:"→";color:var(--orange)}.btn.primary:hover{background:color-mix(in oklab,var(--ink) 85%,var(--orange))}.btn:disabled{opacity:.6;cursor:default}.seq{height:calc(var(--n) * 75vh + 100vh)}.seq .sticky{display:grid;gap:2rem 4vw;align-items:center;padding:96px var(--gut) 5svh}.projects .sticky{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:auto 1fr}.services .sticky{grid-template-columns:minmax(0,1.15fr) auto;grid-template-rows:auto 1fr}.seq-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:12px}.seq-head h2{font-size:clamp(1.8rem,1.1rem + 1.8vw,2.8rem);font-stretch:122%}.count{font:500 1.1rem var(--mono);color:var(--muted)}.count .cur{color:var(--ink)}.seq-list{list-style:none;margin:0;padding:0}.seq-list li{padding:6px 0;font-size:clamp(1.15rem,.75rem + 1vw,1.6rem);font-stretch:110%;font-weight:520;letter-spacing:-.015em;color:var(--faint);filter:blur(calc(var(--d,0) * .7px));transition:color .4s,filter .4s}.seq-list li span{display:block;font:400 .9rem var(--mono);letter-spacing:0;margin-bottom:1px}.seq-list li.on{color:var(--ink)}.seq-list li.on span{color:var(--orange-ink)}.dial{position:relative;width:min(62svh,36vw);aspect-ratio:1}.ring{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.ring line{stroke:var(--line-2);stroke-width:.25}.ring line.major{stroke:var(--muted);stroke-width:.35}.arc{fill:none;stroke:var(--orange);stroke-width:.5;stroke-dasharray:calc(var(--p,0) * 100) 100;transform:rotate(-90deg)}.dial-anchor{position:absolute;top:13%;right:13%;bottom:13%;left:13%}.seq-cards{position:relative;min-height:22rem;align-self:center}.seq-cards article{position:absolute;top:0;left:0;right:0;opacity:0;filter:blur(12px);transform:translateY(16px);transition:opacity .5s,filter .5s,transform .5s;pointer-events:none}.seq-cards article.on{opacity:1;filter:none;transform:none;pointer-events:auto}.seq-cards h3{font-size:clamp(1.6rem,1.1rem + 1.1vw,2.2rem);font-stretch:116%;margin-bottom:.8rem}.seq-cards p{color:var(--muted);max-width:34rem;font-size:1.15rem}.services .seq-cards h3{font-size:clamp(2rem,1.2rem + 2.2vw,3.4rem);line-height:1.02;max-width:16ch;margin-bottom:1.1rem}.services .seq-cards p{font-size:clamp(1.15rem,1rem + .35vw,1.3rem)}.facts{list-style:none;margin:1.3rem 0 0;padding:0;font:400 1rem/1.4 var(--mono);max-width:34rem}.facts li{display:flex;gap:12px;padding:9px 0;border-top:1px solid var(--line)}.facts li:before{content:"";flex:none;width:7px;height:7px;margin-top:.45em;background:var(--orange)}.more{display:inline-block;margin-top:1.3rem;font-weight:540;font-size:1.1rem}.more:after{content:" →"}.intro{position:relative;min-height:100svh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);align-items:center;gap:4vw;padding:120px var(--gut) 10svh}.intro h1{font-size:clamp(2.6rem,1.2rem + 4.4vw,5.6rem);line-height:.98;font-stretch:116%;max-width:12ch}.intro-copy p{margin-top:1.6rem;max-width:34rem;color:var(--muted);font-size:1.25rem}.intro-anchor{height:62svh}.method{padding:18svh var(--gut) 14svh}.focus-in{opacity:var(--c,1);filter:blur(calc((1 - var(--c,1)) * 16px))}.steps-title{margin-top:0;font-size:clamp(1.8rem,1.1rem + 1.8vw,2.8rem);font-stretch:122%}.steps{list-style:none;counter-reset:s;margin:2.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem 3vw}.steps li{counter-increment:s;border-top:1px solid var(--ink);padding-top:1rem}.steps li:before{content:"0" counter(s);display:block;font:500 1rem var(--mono);color:var(--orange-ink);margin-bottom:1.2rem}.steps h3{font-size:1.4rem;font-stretch:112%;margin-bottom:.6rem}.steps p{color:var(--muted)}.contact{padding:16svh var(--gut) 12svh}.contact-in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:4rem 6vw;align-items:start}.contact-anchor{height:30svh;margin-bottom:2rem}.contact h2,.cta-band h2{font-size:clamp(2.4rem,1.3rem + 4vw,5.4rem);font-stretch:125%;line-height:1}.contact-intro p{margin-top:1.4rem;color:var(--muted);font-size:1.2rem;max-width:30rem}.small{margin-top:1rem;color:var(--muted);font-size:1.05rem}.contact-form{display:grid;gap:1.3rem;padding:clamp(20px,3vw,36px);border:1px solid var(--line-2);border-radius:20px;background:color-mix(in oklab,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.contact-form .row{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}.contact-form label{display:block;font-weight:540;font-size:1.05rem}.contact-form label>input,.contact-form label>select,.contact-form label>textarea{display:block;margin-top:8px}.contact-form label span{margin-left:.4em;font:400 .9rem var(--mono);color:var(--muted)}.contact-form input,.contact-form select,.contact-form textarea{width:100%;font:400 1.1rem/1.4 Archivo,system-ui,sans-serif;color:var(--ink);background:color-mix(in oklab,var(--bg) 70%,var(--ink) 4%);border:1px solid var(--line-2);border-radius:10px;padding:12px 14px}.contact-form textarea{resize:vertical;min-height:9rem}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:2px solid var(--orange);outline-offset:1px;border-color:transparent}.chips{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}.chips legend{font-weight:540;font-size:1.05rem;margin-bottom:10px;padding:0}.chips label{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--line-2);border-radius:999px;font-weight:400;font-size:1rem;cursor:pointer}.chips input{width:auto;accent-color:var(--orange);margin:0}.chips label:has(input:checked){border-color:var(--orange);background:color-mix(in oklab,var(--orange) 12%,transparent)}.consent{font-size:.95rem;color:var(--muted)}.contact-form .btn{justify-self:start}.status{min-height:1.4em;font:400 1rem var(--mono)}.status.ok{color:var(--ink)}.status.error{color:var(--orange-ink)}.contact-form.sent>:not(.status){display:none}.contact-form.sent .status{font-size:1.2rem}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.cta-band{min-height:calc(100svh - 90px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10svh var(--gut)}.cta-band .contact-anchor{width:100%}.cta-band p{margin-top:1.4rem;color:var(--muted);font-size:1.2rem;max-width:34rem}.cta-band .actions{justify-content:center}@media(prefers-reduced-motion:reduce){.hero h1 span,.hero-copy p,.cue:after{animation:none}.word,.piece figcaption,.defs,.name-note,.focus-in,.hero-copy,.seq-list li,.seq-cards article{filter:none!important}}@media(max-width:860px){.hero-anchor{left:0;right:0;top:9svh;width:auto;height:25svh}.hero-copy{right:var(--gut);bottom:calc(4svh + var(--safe));max-width:none}.hero h1{max-width:12ch}.hero-copy p{font-size:1.05rem;margin-top:1rem}.actions{margin-top:1.2rem}.btn{padding:12px 18px;font-size:1rem}.cue{display:none}.seq .sticky{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto auto 1fr!important;gap:.8rem;padding:64px var(--gut) var(--safe);align-items:start;justify-items:center}.seq-head h2{font-size:1.5rem}.count{white-space:nowrap;font-size:1rem}.services .dial{order:2}.services .seq-cards{order:3}.seq-head{width:100%}.seq-list{display:none}.dial{width:min(64vw,25svh)}.seq-cards{width:100%;min-height:0;height:100%}.seq-cards h3,.services .seq-cards h3{font-size:1.45rem;line-height:1.08;margin-bottom:.5rem}.seq-cards p,.services .seq-cards p{font-size:.98rem;line-height:1.45}.facts{margin-top:.7rem;font-size:.82rem}.facts li{padding:5px 0;line-height:1.3}.projects .facts li:nth-child(n+3){display:none}.more{margin-top:.9rem}.name-note{font-size:1.05rem;bottom:calc(2svh + var(--safe))}.word,.piece figcaption,.defs,.name-note,.seq-cards article,.seq-list li,.hero-copy,.focus-in{filter:none!important}.intro{grid-template-columns:minmax(0,1fr);padding-top:96px}.intro-anchor{order:-1;height:34svh}.contact-in{grid-template-columns:minmax(0,1fr)}.steps{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.contact-form .row{grid-template-columns:minmax(0,1fr)}.contact-anchor{height:24svh}}@media(max-width:860px)and (max-height:600px){.seq .facts{display:none}.dial{width:min(56vw,22svh)}}@media(max-width:640px){.piece figcaption{display:none}.defs{display:block}.steps{grid-template-columns:minmax(0,1fr)}}html:not(.js) .name,html:not(.js) .seq,html:not(.js) .hero{height:auto}html:not(.js) .sticky{position:static;height:auto}html:not(.js) .hero .sticky{height:100svh}html:not(.js) .seq-cards article{position:static;opacity:1;filter:none;transform:none;margin-bottom:3rem}html:not(.js) .dial,html:not(.js) .seq-list,html:not(.js) .count{display:none}
