:root{
  --chalk:#efeee9;
  --concrete:#e3e1db;
  --graphite:#1b1d1f;
  --night:#131517;
  --ink:#1b1d1f;
  --mute:#585b5f;
  --steel:#8d9296;
  --brick:#9b3f2b;
  --white:#fff;
  --dim:rgba(255,255,255,.74);
  --hair:rgba(255,255,255,.22);
  --line:rgba(27,29,31,.16);
  --display:"Archivo", "Hanken Grotesk", system-ui, sans-serif;
  --sans:"Hanken Grotesk", system-ui, sans-serif;
  --mono:"JetBrains Mono", ui-monospace, monospace;
  --ease:cubic-bezier(.22,1,.36,1);
  --pad:clamp(20px,5vw,80px);
  --sec:clamp(96px,14vh,168px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--graphite)}
body{font:400 16px/1.6 var(--sans);color:var(--white);background:var(--graphite);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--brick);color:#fff}

/* paper grain, fixed so it never repaints with scroll */
body::after{content:"";position:fixed;inset:0;z-index:40;pointer-events:none;opacity:.07;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

.mono{font:500 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.wrap{max-width:1440px;margin:0 auto;padding:0 var(--pad)}
.display{font:600 clamp(40px,5vw,76px)/.94 var(--display);font-stretch:68%;text-transform:uppercase;letter-spacing:-.005em}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px}
.lede{font-size:18px;font-weight:300;line-height:1.55;max-width:440px}

.light{background:var(--chalk);color:var(--ink)}
.light.alt{background:var(--concrete)}
.light .mono{color:var(--mute)}
.light .lede{color:var(--mute)}
.dark{background:var(--graphite);color:var(--white)}
.dark .mono{color:var(--dim)}
.dark .lede{color:var(--dim)}

/* ---------- nav ---------- */
.nav{position:fixed;inset:0 0 auto;z-index:30;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px var(--pad);border-bottom:1px solid var(--hair);color:var(--white);transition:background .5s var(--ease),color .5s var(--ease),padding .5s var(--ease),border-color .5s}
.nav.solid{background:rgba(239,238,233,.94);color:var(--ink);border-color:var(--line);padding-top:14px;padding-bottom:14px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:12px;font:600 19px/1 var(--display);font-stretch:80%;letter-spacing:.06em;text-transform:uppercase}
.brand svg{width:22px;height:22px}
.links{display:flex;gap:32px}
.links a{position:relative;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;opacity:.78;transition:opacity .3s}
.links a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--brick);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.links a:hover{opacity:1}
.links a:hover::after{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;font:500 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;padding:17px 24px;border:1px solid currentColor;border-radius:2px;transition:background .5s var(--ease),color .5s var(--ease),border-color .5s,transform .2s var(--ease)}
.btn:active{transform:scale(.98)}
.btn:hover{background:var(--white);color:var(--graphite);border-color:var(--white)}
.btn-solid{background:var(--white);color:var(--graphite);border-color:var(--white)}
.btn-solid:hover{background:var(--brick);color:#fff;border-color:var(--brick)}
.nav.solid .btn-nav{background:var(--ink);color:var(--chalk);border-color:var(--ink)}
.nav.solid .btn-nav:hover{background:var(--brick);border-color:var(--brick)}
.light .btn:hover{background:var(--ink);color:var(--chalk);border-color:var(--ink)}
.burger{display:none;width:40px;height:40px;position:relative}
.burger i{position:absolute;left:9px;right:9px;height:1.5px;background:currentColor;transition:transform .5s var(--ease),top .5s var(--ease)}
.burger i:first-child{top:15px}.burger i:last-child{top:24px}
.burger[aria-expanded="true"] i:first-child{top:19.5px;transform:rotate(45deg)}
.burger[aria-expanded="true"] i:last-child{top:19.5px;transform:rotate(-45deg)}
.sheet{position:fixed;inset:0;z-index:29;background:var(--graphite);color:var(--white);display:flex;flex-direction:column;justify-content:flex-end;padding:100px var(--pad) 40px;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility .5s}
.sheet.open{opacity:1;visibility:visible}
.sheet nav{display:flex;flex-direction:column;gap:6px;margin-bottom:40px}
.sheet nav a{font:600 44px/1.05 var(--display);font-stretch:68%;text-transform:uppercase;transform:translateY(24px);opacity:0;transition:transform .7s var(--ease),opacity .7s var(--ease)}
.sheet.open nav a{transform:none;opacity:1}
.sheet.open nav a:nth-child(2){transition-delay:.05s}.sheet.open nav a:nth-child(3){transition-delay:.1s}.sheet.open nav a:nth-child(4){transition-delay:.15s}.sheet.open nav a:nth-child(5){transition-delay:.2s}.sheet.open nav a:nth-child(6){transition-delay:.25s;color:#e3a593}
.sheet .mono{color:var(--dim)}
body.locked .nav{background:transparent;color:var(--white);border-color:var(--hair);backdrop-filter:none}
body.locked .nav .btn-nav{visibility:hidden}

/* ---------- hero ---------- */
.hero{position:relative;height:720vh;background:var(--graphite)}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.stage video,.poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.stage video{opacity:0;transition:opacity .6s var(--ease)}
.stage video.on{opacity:1}
.shade{position:absolute;inset:0;pointer-events:none;background:
  linear-gradient(90deg,rgba(14,15,16,.68) 0%,rgba(14,15,16,.3) 38%,rgba(14,15,16,0) 62%),
  linear-gradient(180deg,rgba(14,15,16,.4) 0%,rgba(14,15,16,0) 18%,rgba(14,15,16,0) 66%,rgba(14,15,16,.6) 100%)}
.grid{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--hair) 1px,transparent 1px),linear-gradient(90deg,var(--hair) 1px,transparent 1px);
  background-size:calc(100% / 12) calc(100% / 8);mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,#000 0%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,#000 0%,transparent 75%)}
.intro{position:absolute;left:var(--pad);top:50%;transform:translateY(-50%);max-width:680px}
.intro .mono{color:var(--dim);display:block;margin-bottom:24px}
h1{font:600 clamp(54px,6.6vw,108px)/.9 var(--display);font-stretch:66%;text-transform:uppercase;letter-spacing:-.01em;text-shadow:0 2px 40px rgba(0,0,0,.25)}
.intro p{margin-top:26px;font-size:18px;font-weight:300;line-height:1.55;color:var(--dim);max-width:420px}
.note{position:absolute;left:var(--pad);bottom:clamp(120px,18vh,170px);max-width:430px;opacity:0}
.note .mono{color:var(--dim)}
.note h2{font:600 clamp(30px,2.8vw,44px)/.98 var(--display);font-stretch:70%;text-transform:uppercase;margin:14px 0 12px}
.note p{font-size:15px;color:var(--dim)}
.day{position:absolute;right:var(--pad);top:clamp(96px,14vh,130px);text-align:right}
.day .mono{color:var(--dim)}
.day b{display:block;font:400 clamp(44px,4.6vw,72px)/1 var(--mono);letter-spacing:-.04em;margin-top:8px;font-variant-numeric:tabular-nums}
.day small{display:block;margin-top:8px;font:400 11px/1 var(--mono);letter-spacing:.12em;color:var(--dim)}
.schedule{position:absolute;left:var(--pad);right:var(--pad);bottom:clamp(30px,5vh,48px);display:grid;grid-template-columns:repeat(4,1fr)}
.phase{position:relative;padding-top:16px;border-top:1px solid var(--hair)}
.phase i{position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--white)}
.phase .mono{color:var(--dim);transition:color .4s}
.phase.on .mono{color:var(--white)}
.phase span{display:block;margin-top:6px;font:400 11px/1 var(--mono);letter-spacing:.1em;color:rgba(255,255,255,.5)}
.dim{position:absolute;inset:0;background:rgba(14,15,16,.48);opacity:0;pointer-events:none}
.finale{position:absolute;inset:0;display:grid;place-items:center;text-align:center;opacity:0;pointer-events:none;padding:0 24px}
.finale.on{pointer-events:auto}
.finale h2{font:600 clamp(48px,5.6vw,92px)/.92 var(--display);font-stretch:66%;text-transform:uppercase;margin:0 auto 22px}
.finale p{color:var(--dim);font-weight:300;font-size:17px;max-width:440px;margin:0 auto 32px}
.finale .ctas{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.loader{position:absolute;left:0;top:0;height:1px;width:0;background:var(--white);transition:width .3s,opacity .6s;z-index:3}
.still{display:none}

/* ---------- section heads ---------- */
section:not(.hero):not(.band){padding:var(--sec) 0}
.sec-head{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:end;margin-bottom:clamp(48px,7vh,80px)}
.sec-head .lede{justify-self:end}
.reveal{opacity:0;transform:translateY(28px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ---------- manifesto ---------- */
.m-head{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:16px;margin-bottom:clamp(48px,8vh,88px)}
.bond{font:600 clamp(40px,5.4vw,86px)/1 var(--display);font-stretch:66%;text-transform:uppercase;letter-spacing:-.005em}
.bond span{display:block;width:max-content;max-width:100%;border-bottom:1px solid var(--line);padding:.08em 0 .1em;will-change:transform}
.bond span:nth-child(even){margin-left:clamp(40px,12vw,220px)}
.bond span:nth-child(odd){color:var(--ink)}
.bond span:nth-child(even){color:#3c3f42}
.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(72px,11vh,120px);border-top:1px solid var(--line)}
.stats div{padding:22px 24px 0 0;border-right:1px solid var(--line);margin-right:24px}
.stats div:last-child{border-right:0;margin-right:0}
.stats dt{max-width:180px;min-height:32px}
.stats dd{margin-top:20px}
.stats b{font:600 clamp(56px,5.6vw,92px)/1 var(--display);font-stretch:62%;font-variant-numeric:tabular-nums}
.stats sup{font:500 22px/1 var(--display);vertical-align:top;margin-left:4px;color:var(--brick)}

/* ---------- on site ---------- */
.live{width:8px;height:8px;border-radius:50%;background:var(--brick)}
.jobs{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.job{background:var(--chalk);border:1px solid var(--line);border-radius:3px;display:flex;flex-direction:column;opacity:0;transform:translateY(32px);transition:opacity 1s var(--ease),transform 1s var(--ease),box-shadow .6s var(--ease)}
.job.in{opacity:1;transform:none}
.job:hover{box-shadow:0 30px 60px -40px rgba(27,29,31,.45)}
.job .ph{position:relative;aspect-ratio:4/3;overflow:hidden;border-radius:3px 3px 0 0}
.job .ph img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.job:hover .ph img{transform:scale(1.04)}
.tag{position:absolute;left:14px;top:14px;background:rgba(19,21,23,.78);color:#fff;padding:8px 10px;border-radius:2px;font:500 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.job .ph .dimx{left:14px;right:14px;bottom:14px}
.job-b{padding:22px 22px 24px;display:flex;flex-direction:column;gap:18px;flex:1}
.job-b h3{font:600 30px/1 var(--display);font-stretch:70%;text-transform:uppercase}
.job-b .where{margin-top:8px}
.prog{display:flex;justify-content:space-between;align-items:baseline}
.prog b{font:500 13px/1 var(--mono);font-variant-numeric:tabular-nums}
.bar{height:3px;background:var(--line);position:relative;overflow:hidden}
.bar i{position:absolute;inset:0;background:var(--ink);transform-origin:left;transform:scaleX(0);transition:transform 1.6s var(--ease) .2s}
.job.in .bar i{transform:scaleX(var(--k))}
.log{border-top:1px solid var(--line);padding-top:14px;font-size:15px;line-height:1.45;color:#2b2e31}
.log .mono{display:block;margin-bottom:6px}
.job-f{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:4px}
.open{font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;display:inline-flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--ink)}
.open:hover{color:var(--brick);border-color:var(--brick)}
.open svg{width:14px;height:14px;transition:transform .5s var(--ease)}
.open:hover svg{transform:translateX(4px)}

/* dimension strings */
.dimx,.dimy{position:absolute;pointer-events:none;color:#fff;font:500 10px/1 var(--mono);letter-spacing:.1em}
.dimx{height:9px;border-left:1px solid currentColor;border-right:1px solid currentColor;display:flex;justify-content:center;align-items:center}
.dimx::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:currentColor;opacity:.8}
.dimx span{position:relative;background:rgba(19,21,23,.7);padding:4px 7px;border-radius:2px}
.dimy{width:9px;border-top:1px solid currentColor;border-bottom:1px solid currentColor;display:flex;justify-content:center;align-items:center}
.dimy::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:currentColor;opacity:.8}
.dimy span{position:relative;background:rgba(19,21,23,.7);padding:4px 7px;border-radius:2px;transform:rotate(-90deg);white-space:nowrap}

/* ---------- homes index ---------- */
.index{list-style:none;border-top:1px solid var(--ink)}
.row{border-bottom:1px solid var(--line)}
.row button{width:100%;display:grid;grid-template-columns:56px 2fr 1fr 1fr 70px 40px;gap:20px;align-items:center;padding:30px 0;text-align:left;transition:padding .6s var(--ease)}
.row .n{font:500 12px/1 var(--mono);color:var(--mute)}
.row h3{white-space:nowrap;font:600 clamp(30px,3.3vw,54px)/1 var(--display);font-stretch:66%;text-transform:uppercase;transition:transform .6s var(--ease),color .4s}
.row .c{font-size:15px;color:var(--mute)}
.row .c b{display:block;font-weight:500;color:var(--ink)}
.row .yr{font:500 12px/1 var(--mono);color:var(--mute);text-align:right}
.row .arr{justify-self:end;width:36px;height:36px;border:1px solid var(--line);border-radius:2px;display:grid;place-items:center;transition:background .4s var(--ease),border-color .4s,color .4s}
.row .arr svg{width:14px;height:14px;transition:transform .5s var(--ease)}
.row button:hover h3{transform:translateX(14px)}
.row button:hover .arr{background:var(--ink);border-color:var(--ink);color:var(--chalk)}
.row button:hover .arr svg{transform:rotate(-45deg)}
.row .mimg{display:none}
.peek{position:fixed;left:0;top:0;width:340px;aspect-ratio:4/3;z-index:25;pointer-events:none;overflow:hidden;border-radius:3px;opacity:0;transform:translate3d(-50%,-50%,0) scale(.86);transition:opacity .4s var(--ease),transform .5s var(--ease);will-change:transform}
.peek.on{opacity:1}
.peek img{width:100%;height:100%;object-fit:cover}

/* ---------- process ---------- */
.p-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(40px,6vw,100px)}
.p-stage{position:sticky;top:96px;height:calc(100vh - 140px);display:flex;flex-direction:column;gap:18px}
.p-frame{position:relative;flex:1;overflow:hidden;border-radius:3px;background:#0d0e0f}
.p-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity 1s var(--ease),transform 1.6s var(--ease)}
.p-frame img.on{opacity:1;transform:none}
.p-frame .dimx{left:24px;right:24px;top:22px}
.p-frame .dimy{right:22px;top:58px;bottom:24px}
.p-meter{display:flex;align-items:center;gap:14px;color:var(--dim)}
.p-meter #pnum{color:#fff}
.p-meter i{flex:1;height:1px;background:var(--hair);position:relative}
.p-meter b{position:absolute;left:0;top:0;bottom:0;width:0;background:#fff;transition:width .8s var(--ease)}
.p-steps{padding-top:8px}
.p-steps h2{margin-bottom:12vh}
.step{min-height:62vh;padding:28px 0 60px;border-top:1px solid var(--hair);opacity:.32;transition:opacity .7s var(--ease)}
.step.on{opacity:1}
.step:last-child{min-height:50vh}
.step h3{font:600 clamp(30px,2.8vw,44px)/1 var(--display);font-stretch:70%;text-transform:uppercase;margin:16px 0 18px;max-width:16ch}
.step p{color:var(--dim);font-size:17px;max-width:460px}
.step ul{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.step li{border:1px solid var(--hair);padding:9px 12px;border-radius:2px;color:#fff}

/* ---------- materials ---------- */
.mats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px);align-items:start}
.mat:nth-child(even){margin-top:clamp(40px,8vh,96px)}
.mat-img{aspect-ratio:4/5;overflow:hidden;border-radius:3px;background:var(--concrete)}
.mat-img img{width:100%;height:112%;object-fit:cover;transition:transform 1.4s var(--ease)}
.mat:hover .mat-img img{transform:scale(1.05)}
.mat figcaption{padding-top:18px;border-top:1px solid var(--ink);margin-top:18px}
.mat h3{font:600 28px/1 var(--display);font-stretch:70%;text-transform:uppercase;margin:10px 0 10px}
.mat p{font-size:15px;color:var(--mute);line-height:1.5}
.mat .spec{display:block;margin-top:14px;color:var(--brick)}

/* ---------- band ---------- */
.band{position:relative;height:clamp(520px,92vh,860px);overflow:hidden;color:#fff;display:flex;align-items:flex-end}
.band img{position:absolute;left:0;right:0;top:-8%;width:100%;height:116%;object-fit:cover}
.band::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(14,15,16,0) 30%,rgba(14,15,16,.72) 100%)}
.band blockquote{position:relative;z-index:2;padding:0 var(--pad) clamp(48px,9vh,96px);max-width:1100px}
.band blockquote p{font:600 clamp(36px,4.2vw,68px)/.98 var(--display);font-stretch:66%;text-transform:uppercase}
.band cite{display:block;margin-top:24px;font-style:normal;color:var(--dim)}

/* ---------- estimate ---------- */
.calc{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--chalk)}
.controls{padding:clamp(28px,3.4vw,48px);display:flex;flex-direction:column;gap:34px}
fieldset{border:0}
legend{display:flex;justify-content:space-between;width:100%;margin-bottom:14px}
legend output{color:var(--ink);font-weight:500}
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink);border-radius:2px;overflow:hidden}
.seg3{grid-template-columns:repeat(3,1fr)}
.seg label,.checks label{position:relative;cursor:pointer}
.seg input,.checks input,.cards input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;text-align:center;padding:15px 8px;font:500 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;transition:background .4s var(--ease),color .4s}
.seg label+label span{border-left:1px solid var(--ink)}
.seg input:checked+span{background:var(--ink);color:var(--chalk)}
.seg input:focus-visible+span,.checks input:focus-visible+span,.cards input:focus-visible+span{outline:2px solid var(--brick);outline-offset:2px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;cursor:pointer}
input[type=range]::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,var(--ink) var(--f,30%),var(--line) var(--f,30%))}
input[type=range]::-moz-range-track{height:2px;background:var(--line)}
input[type=range]::-moz-range-progress{height:2px;background:var(--ink)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-10px;background:var(--chalk);border:2px solid var(--ink);border-radius:2px;transition:transform .2s var(--ease)}
input[type=range]::-moz-range-thumb{width:18px;height:18px;background:var(--chalk);border:2px solid var(--ink);border-radius:2px}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15);background:var(--brick);border-color:var(--brick)}
.ticks{display:flex;justify-content:space-between;margin-top:4px}
.hint{margin-top:12px;font-size:15px;color:var(--mute)}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.checks span{display:flex;align-items:center;gap:12px;padding:14px 14px;border:1px solid var(--line);border-radius:2px;font-size:15px;transition:border-color .3s,background .3s}
.checks span::before{content:"";width:14px;height:14px;border:1px solid var(--ink);border-radius:2px;flex:none;transition:background .3s var(--ease),box-shadow .3s}
.checks input:checked+span{border-color:var(--ink)}
.checks input:checked+span::before{background:var(--ink);box-shadow:inset 0 0 0 3px var(--chalk)}
.result{background:var(--graphite);color:#fff;padding:clamp(28px,3.4vw,48px);display:flex;flex-direction:column;gap:28px}
.result .mono{color:var(--dim)}
.range{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 16px;margin-top:-12px}
.range b{font:600 clamp(48px,5vw,80px)/1 var(--display);font-stretch:62%;font-variant-numeric:tabular-nums}
.range em{font:400 13px/1 var(--mono);font-style:normal;color:var(--dim);letter-spacing:.1em;text-transform:uppercase}
.facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.facts div{padding:18px 0}
.facts div+div{border-left:1px solid var(--hair);padding-left:20px}
.facts b{display:block;margin-top:8px;font:500 22px/1 var(--sans)}
.split{display:flex;flex-direction:column;gap:12px}
.split div{display:grid;grid-template-columns:150px 1fr 44px;gap:14px;align-items:center;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.split i{height:6px;background:var(--hair);position:relative}
.split i b{position:absolute;inset:0;background:#fff;transform-origin:left;transition:transform .8s var(--ease)}
.split span:last-child{text-align:right;color:#fff}
.result .btn{align-self:flex-start}
.fine{font-size:13px;color:rgba(255,255,255,.55);margin-top:-12px}

/* ---------- promise ---------- */
.vows{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.vows li{padding:26px 26px 0 0;margin-right:26px;border-right:1px solid var(--line)}
.vows li:last-child{border-right:0;margin-right:0}
.vows li:nth-child(2){transition-delay:.08s}.vows li:nth-child(3){transition-delay:.16s}.vows li:nth-child(4){transition-delay:.24s}
.vows h3{font:600 30px/1 var(--display);font-stretch:70%;text-transform:uppercase;margin:44px 0 14px}
.vows p{font-size:16px;color:var(--mute);max-width:280px}

/* ---------- voices ---------- */
.voices{background:var(--night)}
.quotes{display:grid;margin-top:12px}
.q{grid-area:1/1;opacity:0;transform:translateY(20px);transition:opacity .45s var(--ease),transform .45s var(--ease);pointer-events:none}
.q.on{opacity:1;transform:none;pointer-events:auto;transition:opacity .9s var(--ease) .35s,transform .9s var(--ease) .35s}
.q blockquote{font:600 clamp(34px,3.9vw,62px)/1 var(--display);font-stretch:68%;text-transform:uppercase;max-width:28ch}
.q figcaption{margin-top:28px}
.q-nav{display:flex;align-items:center;gap:24px;margin-top:40px;border-top:1px solid var(--hair);padding-top:20px}
.q-nav button{color:#fff;padding:8px 0;border-bottom:1px solid transparent;transition:border-color .3s}
.q-nav button:hover{border-color:var(--brick)}

/* ---------- studio ---------- */
.s-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(40px,6vw,96px);align-items:center}
.s-img{aspect-ratio:5/4;overflow:hidden;border-radius:3px}
.s-img img{width:100%;height:116%;object-fit:cover;margin-top:-8%}
.s-txt h2{margin-bottom:32px}
.s-txt p{font-size:17px;color:var(--mute);max-width:460px;margin-bottom:16px}
.s-txt address{font-style:normal;margin-top:32px;padding-top:18px;border-top:1px solid var(--line);line-height:1.9}

/* ---------- faq ---------- */
.f-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(40px,6vw,96px)}
.qa{border-top:1px solid var(--ink)}
.qa details{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;font:500 20px/1.3 var(--sans)}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";width:12px;height:12px;flex:none;background:linear-gradient(currentColor,currentColor) center/12px 1.5px no-repeat,linear-gradient(currentColor,currentColor) center/1.5px 12px no-repeat;transition:transform .5s var(--ease)}
.qa details[open] summary::after{transform:rotate(45deg)}
.qa summary:hover{color:var(--brick)}
.qa details>div{overflow:hidden}
.qa p{padding:0 48px 26px 0;color:var(--mute);font-size:17px;max-width:620px}

/* ---------- start ---------- */
.start{background:var(--graphite)}
.st-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(40px,6vw,96px);align-items:start}
.st-grid .lede{margin-top:28px}
.steps-form{border:1px solid var(--hair);border-radius:3px;padding:clamp(24px,3vw,40px);position:relative}
.sf-bar{display:flex;align-items:center;gap:16px;margin-bottom:32px}
.sf-bar i{flex:1;height:1px;background:var(--hair);position:relative}
.sf-bar b{position:absolute;left:0;top:0;bottom:0;width:33.3%;background:#fff;transition:width .7s var(--ease)}
.sf-page{display:none}
.sf-page.on{display:flex;flex-direction:column;gap:18px;animation:up .7s var(--ease)}
@keyframes up{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.sf-q{font:600 32px/1 var(--display);font-stretch:70%;text-transform:uppercase;margin-bottom:6px}
.cards{display:flex;flex-direction:column;gap:10px}
.cards label{position:relative;cursor:pointer}
.cards span{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px;border:1px solid var(--hair);border-radius:2px;transition:border-color .3s,background .3s}
.cards b{font-weight:500;font-size:17px}
.cards em{font-style:normal;color:var(--dim);font-size:14px;text-align:right}
.cards input:checked+span{border-color:#fff;background:rgba(255,255,255,.06)}
.field{display:flex;flex-direction:column;gap:10px}
.field input,.field select,.field textarea{font:400 17px/1.4 var(--sans);color:#fff;background:transparent;border:0;border-bottom:1px solid var(--hair);padding:10px 0;border-radius:0;outline:none;transition:border-color .3s}
.field select{-webkit-appearance:none;appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23fff' fill='none'/%3E%3C/svg%3E") right center no-repeat}
.field select option{color:var(--ink)}
.field textarea{resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#fff}
.field input.bad{border-color:#e3a593}
.field ::placeholder{color:rgba(255,255,255,.62)}
.sf-nav{display:flex;justify-content:space-between;gap:12px;margin-top:32px}
#sfBack{visibility:hidden}
.sf-done{display:none}
.steps-form.sent .sf-page,.steps-form.sent .sf-nav,.steps-form.sent .sf-bar{display:none}
.steps-form.sent .sf-done{display:block;animation:up .7s var(--ease)}
.sf-done p{font:600 34px/1.02 var(--display);font-stretch:70%;text-transform:uppercase;margin-top:16px}

/* ---------- footer ---------- */
.foot{background:var(--night);color:rgba(255,255,255,.7);padding:72px 0 28px;overflow:hidden}
.f-top{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:32px;align-items:start}
.foot .mono{color:rgba(255,255,255,.62);line-height:1.8}
.f-top nav{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:center}
.f-top nav a{font-size:15px;transition:color .3s}
.f-top nav a:hover{color:#fff}
.f-top p:last-child{text-align:right}
.wordmark{font:700 clamp(40px,18.6vw,300px)/.8 var(--display);font-stretch:62%;color:rgba(255,255,255,.92);letter-spacing:-.01em;margin:64px 0 28px;white-space:nowrap;text-align:center}
.f-bot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--hair);padding-top:20px}

/* ---------- drawer ---------- */
.drawer{position:fixed;inset:0 0 0 auto;width:min(620px,100vw);height:100%;max-height:none;max-width:none;margin:0 0 0 auto;border:0;background:var(--chalk);color:var(--ink);overflow:hidden;transform:translateX(100%);transition:transform .7s var(--ease),overlay .7s allow-discrete,display .7s allow-discrete}
.drawer[open]{transform:none}
@starting-style{.drawer[open]{transform:translateX(100%)}}
.drawer::backdrop{background:rgba(14,15,16,0);transition:background .7s var(--ease),overlay .7s allow-discrete,display .7s allow-discrete}
.drawer[open]::backdrop{background:rgba(14,15,16,.55)}
@starting-style{.drawer[open]::backdrop{background:rgba(14,15,16,0)}}
.d-in{height:100%;overflow-y:auto;overscroll-behavior:contain}
.d-close{position:absolute;top:16px;right:16px;z-index:2;background:var(--ink);color:var(--chalk);padding:12px 16px;border-radius:2px}
.d-close:hover{background:var(--brick)}
.d-hero{aspect-ratio:16/10;overflow:hidden}
.d-hero img{width:100%;height:100%;object-fit:cover}
.d-body .pad{padding:32px clamp(24px,4vw,44px) 56px}
.d-body .mono{color:var(--mute)}
.d-body h3{font:600 44px/.95 var(--display);font-stretch:66%;text-transform:uppercase;margin:12px 0 18px}
.d-body p{color:#36393c;font-size:17px}
.specs{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink);margin:28px 0}
.specs div{padding:16px 0;border-bottom:1px solid var(--line)}
.specs div:nth-child(odd){padding-right:16px}
.specs div:nth-child(even){padding-left:16px;border-left:1px solid var(--line)}
.specs b{display:block;margin-top:6px;font:500 17px/1.3 var(--sans)}
.entries{list-style:none;margin-top:28px;border-top:1px solid var(--ink)}
.entries li{display:grid;grid-template-columns:96px 1fr;gap:18px;padding:18px 0;border-bottom:1px solid var(--line)}
.entries p{font-size:16px}
.entries .spent{display:block;margin-top:6px;font:500 11px/1 var(--mono);letter-spacing:.1em;color:var(--brick);text-transform:uppercase}
.d-body .btn{margin-top:28px}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .jobs{grid-template-columns:1fr 1fr}
  .row button{grid-template-columns:50px 1.6fr 1fr 40px}
  .row .c.t,.row .yr{display:none}
  .mats{grid-template-columns:1fr 1fr}
  .mat:nth-child(even){margin-top:56px}
  .vows{grid-template-columns:1fr 1fr;gap:36px 0}
  .vows li:nth-child(2){border-right:0;margin-right:0}
  .calc{grid-template-columns:1fr}
}
@media (max-width:900px){
  .links,.btn-nav{display:none}
  .burger{display:block}
  .shade{background:linear-gradient(180deg,rgba(14,15,16,.55) 0%,rgba(14,15,16,.05) 28%,rgba(14,15,16,.42) 46%,rgba(14,15,16,.84) 100%)}
  .intro{top:auto;bottom:24vh;transform:none;right:20px}
  .note{right:20px;bottom:22vh}
  .day{top:86px}
  .phase span{display:none}
  .sec-head{grid-template-columns:1fr;gap:24px}
  .sec-head .lede{justify-self:start}
  .stats{grid-template-columns:1fr 1fr}
  .stats div:nth-child(2){border-right:0;margin-right:0}
  .stats div:nth-child(n+3){border-top:1px solid var(--line);margin-top:22px}
  .jobs{grid-template-columns:1fr}
  .peek{display:none}
  .row button{grid-template-columns:1fr 40px;gap:8px 16px;padding:24px 0}
  .row .n{grid-column:1/-1}
  .row .c{display:none}
  .row .mimg{display:block;grid-column:1/-1;aspect-ratio:16/9;overflow:hidden;border-radius:3px;margin-top:10px}
  .row .mimg img{width:100%;height:100%;object-fit:cover}
  .row button:hover h3{transform:none}
  .p-grid{grid-template-columns:1fr}
  .p-stage{top:70px;height:44vh;z-index:2;background:var(--graphite);padding-bottom:12px}
  .p-steps h2{margin-bottom:6vh}
  .step{min-height:auto;padding:24px 0 48px}
  .s-grid,.f-grid,.st-grid{grid-template-columns:1fr}
  .f-top{grid-template-columns:1fr}
  .f-top nav{justify-content:flex-start}
  .f-top p:last-child{text-align:left}
}
@media (max-width:600px){
  .bond span:nth-child(even){margin-left:28px}
  .mats{grid-template-columns:1fr}
  .mat:nth-child(even){margin-top:0}
  .vows{grid-template-columns:1fr}
  .vows li{border-right:0;margin-right:0;padding-right:0}
  .vows h3{margin-top:20px}
  .checks{grid-template-columns:1fr 1fr}
  .split div{grid-template-columns:128px 1fr 40px}
  .cards span{flex-direction:column;align-items:flex-start;gap:4px}
  .cards em{text-align:left}
  .m-head{flex-direction:column;gap:6px}
}
@media (prefers-reduced-motion: reduce){
  .hero{height:auto}
  .stage{position:relative;height:100vh}
  .stage video,.poster,.grid,.note,.finale,.day,.schedule,.loader{display:none}
  .still{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .reveal,.job{opacity:1;transform:none;transition:none}
  .bar i{transform:scaleX(var(--k));transition:none}
  .step{opacity:1}
  *{animation:none!important}
}
