/* v2 "Silk" — one family (Archivo variable), white gallery, no cards */
:root{--bg:#fff;--ink:#000;--mute:#6b6b6b;--soft:#a3a3a3;--line:rgba(0,0,0,.12);--gutter:clamp(20px,2.6vw,44px);--max:1680px;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Archivo",system-ui,sans-serif;font-variation-settings:"wdth" 100;font-size:18px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}img,video{display:block;max-width:100%}button{font:inherit;background:none;border:0;color:inherit;cursor:pointer;padding:0}
::selection{background:#000;color:#fff}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.display{font-variation-settings:"wdth" 118;font-weight:560;letter-spacing:-.045em;line-height:.92;font-size:clamp(46px,8.2vw,150px);margin:0}
.big{font-variation-settings:"wdth" 112;font-weight:520;letter-spacing:-.035em;line-height:.98;font-size:clamp(34px,5.4vw,92px);margin:0}
.mid{font-variation-settings:"wdth" 108;font-weight:500;letter-spacing:-.025em;line-height:1.05;font-size:clamp(26px,3.2vw,52px);margin:0}
.lead{font-size:clamp(18px,1.45vw,24px);line-height:1.4;max-width:46ch;margin:0}
.mute{color:var(--mute)}.small{font-size:14px;line-height:1.45}
.link{position:relative;display:inline-block;padding-bottom:3px;background-image:linear-gradient(currentColor,currentColor);background-size:100% 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .5s var(--ease)}
.link:hover{background-size:0 1px}
.pill{display:inline-flex;align-items:center;gap:12px;height:52px;padding:0 24px;border-radius:999px;background:#000;color:#fff;font-size:16px;font-weight:500;transition:transform .5s var(--ease),background .3s}
.pill:hover{transform:translateY(-2px)}
.pill.ghost{background:transparent;color:#000;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}
.line{display:block;overflow:hidden}
/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:22px var(--gutter);mix-blend-mode:difference;color:#fff}
.nav .mark{font-variation-settings:"wdth" 118;font-weight:600;letter-spacing:-.03em;font-size:22px;display:flex;align-items:center;gap:10px}
.nav .mark .wip{font-size:11px;font-weight:500;letter-spacing:.02em;opacity:.55;font-variation-settings:"wdth" 100}
.nav .links{display:flex;gap:34px;font-size:15px;font-weight:500}
.nav .links a{opacity:.85;transition:opacity .3s}.nav .links a:hover{opacity:1}
.nav .burger{display:none;font-size:15px;font-weight:500}
.overlay{position:fixed;inset:0;z-index:35;background:#000;color:#fff;display:none;flex-direction:column;justify-content:flex-end;padding:var(--gutter);gap:18px}
.overlay.open{display:flex}.overlay a{font-variation-settings:"wdth" 115;font-weight:560;letter-spacing:-.04em;font-size:clamp(40px,10vw,72px);line-height:1}
/* hero */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;background:#e9e6e1}
.hero canvas,.hero .poster{position:absolute;inset:0;width:100%;height:100%}
.hero .poster{object-fit:cover;opacity:.9}
.hero .inner{position:absolute;left:0;right:0;bottom:0;padding:0 var(--gutter) clamp(28px,4vh,56px);display:grid;grid-template-columns:1fr auto;align-items:end;gap:40px}
.hero .claim{max-width:14ch}
.hero .sub{max-width:40ch;font-size:clamp(16px,1.25vw,20px);line-height:1.45;margin-top:22px;display:flex;gap:28px;align-items:flex-end;flex-wrap:wrap}
.hero .scroll{font-size:13px;opacity:.6;writing-mode:vertical-rl;transform:rotate(180deg);letter-spacing:.02em}
/* sections */
.sec{padding:clamp(96px,14vh,180px) 0}
.sec-tight{padding:clamp(64px,9vh,120px) 0}
.rule{border-top:1px solid var(--line)}
.manifesto{max-width:1180px}
.manifesto .big{max-width:21ch}
.manifesto p{margin:0}
.manifesto .note{margin-top:40px;max-width:46ch;font-size:clamp(17px,1.3vw,21px);line-height:1.45;color:var(--mute)}
/* work lineup */
.lineup{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.lineup li{display:grid;grid-template-columns:1.1fr 2fr 1fr auto;gap:24px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line);cursor:default;transition:padding .5s var(--ease)}
.lineup li:hover{padding-left:12px}
.lineup .cat{font-size:15px;color:var(--mute)}
.lineup .ttl{font-variation-settings:"wdth" 108;font-weight:500;letter-spacing:-.02em;font-size:clamp(22px,2.6vw,40px);line-height:1.05}
.lineup .fmt{font-size:15px;color:var(--mute)}
.lineup .st{font-size:14px;white-space:nowrap}
.lineup .st.live{color:#000}.lineup .st.soon{color:var(--soft)}
.peek{position:fixed;z-index:30;left:0;top:0;width:min(34vw,440px);aspect-ratio:4/5;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.96);overflow:hidden;background:#eee}
.peek img{width:100%;height:100%;object-fit:cover}
/* demos grid */
.demos{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--gutter);margin-top:64px}
.demo{position:relative;background:#f0efed;overflow:hidden}
.demos figure .demo{width:100%}
.demo img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.2s var(--ease)}
.demo:hover img{transform:scale(1)}
.demos figcaption{display:flex;justify-content:space-between;gap:16px;font-size:14px;color:var(--mute);margin-top:12px}
.d-a{grid-column:1/9}.d-a .demo{aspect-ratio:16/10}.d-b{grid-column:9/13;margin-top:18vh}.d-b .demo{aspect-ratio:4/5}.d-c{grid-column:4/13;margin-top:-6vh}.d-c .demo{aspect-ratio:16/9}
.demos figure{margin:0}
/* services rows */
.services{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.services li{display:grid;grid-template-columns:1.3fr 1.4fr .9fr;gap:32px;align-items:baseline;padding:40px 0;border-bottom:1px solid var(--line);transition:padding .5s var(--ease)}
.services li:hover{padding-left:14px}
.services .name{font-variation-settings:"wdth" 112;font-weight:520;letter-spacing:-.035em;font-size:clamp(30px,4.2vw,72px);line-height:.98}
.services .desc{font-size:clamp(15px,1.1vw,18px);line-height:1.45;color:var(--mute);max-width:40ch}
.services .from{text-align:right;font-variation-settings:"wdth" 108;font-weight:500;letter-spacing:-.02em;font-size:clamp(20px,2vw,32px);line-height:1.1}
.services .from small{display:block;font-size:14px;color:var(--mute);font-weight:400;letter-spacing:0;margin-top:6px;font-variation-settings:"wdth" 100}
/* process (sticky) */
.process{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--gutter)}
.process .sticky{position:sticky;top:18vh;align-self:start}
.steps{display:grid;gap:0}
.step{padding:40px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:120px 1fr;gap:24px;opacity:.5;transition:opacity .6s var(--ease)}
.step.is-active{opacity:1}
.step .day{font-size:15px;color:var(--mute);padding-top:6px}
.step h3{margin:0 0 10px;font-variation-settings:"wdth" 110;font-weight:520;letter-spacing:-.03em;font-size:clamp(26px,3vw,48px);line-height:1}
.step p{margin:0;color:var(--mute);max-width:44ch;font-size:clamp(16px,1.15vw,19px)}
/* pricing */
.ways{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter);border-top:1px solid var(--line);padding-top:32px}
.way h3{margin:0 0 14px;font-variation-settings:"wdth" 110;font-weight:520;letter-spacing:-.03em;font-size:clamp(26px,2.6vw,42px);line-height:1}
.way p{margin:0 0 18px;color:var(--mute);font-size:16px;max-width:36ch}
.way ul{margin:0;padding:0;list-style:none;font-size:15px;display:grid;gap:6px}
.way .price{margin-top:22px;font-variation-settings:"wdth" 112;font-weight:520;letter-spacing:-.03em;font-size:clamp(24px,2.4vw,40px);line-height:1}
.packs{margin-top:clamp(64px,9vh,120px);border-top:1px solid var(--line)}
.pack{display:grid;grid-template-columns:1.2fr 1.6fr .9fr;gap:32px;align-items:baseline;padding:34px 0;border-bottom:1px solid var(--line)}
.pack h3{margin:0;font-variation-settings:"wdth" 112;font-weight:520;letter-spacing:-.035em;font-size:clamp(28px,3.6vw,62px);line-height:1}
.pack p{margin:0;color:var(--mute);font-size:16px;max-width:46ch}
.pack .p{text-align:right;font-variation-settings:"wdth" 108;font-weight:500;letter-spacing:-.025em;font-size:clamp(22px,2.4vw,40px);line-height:1.05}
.rules{margin-top:48px;columns:3;column-gap:var(--gutter);font-size:15px;line-height:1.45;color:var(--mute)}
.rules p{break-inside:avoid;margin:0 0 14px}.rules b{color:#000;font-weight:500}
details.pl{margin-top:40px;border-top:1px solid var(--line)}
details.pl summary{list-style:none;cursor:pointer;padding:22px 0;display:flex;justify-content:space-between;font-size:17px;font-weight:500}
details.pl summary::-webkit-details-marker{display:none}
details.pl summary:after{content:"+";font-weight:300;font-size:26px;line-height:1}details.pl[open] summary:after{content:"–"}
table{width:100%;border-collapse:collapse;font-size:15px}th,td{text-align:left;padding:12px 0;border-top:1px solid var(--line);vertical-align:top}th{font-weight:500;color:var(--mute)}td.n{white-space:nowrap;font-variant-numeric:tabular-nums}
/* faq */
.faq{columns:2;column-gap:var(--gutter)}
.faq details{break-inside:avoid;border-top:1px solid var(--line);padding:4px 0}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;padding:18px 0;font-variation-settings:"wdth" 106;font-weight:500;letter-spacing:-.015em;font-size:clamp(18px,1.5vw,24px);line-height:1.2}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-weight:300;font-size:26px;line-height:1;flex:none}.faq details[open] summary:after{content:"–"}
.faq p{margin:0 0 20px;color:var(--mute);font-size:16px;line-height:1.5;max-width:52ch}
/* about */
.about{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--gutter)}
.people{border-top:1px solid var(--line)}
.people div{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);font-size:16px}
.people span{color:var(--mute)}
/* footer */
footer{background:#000;color:#fff;padding:clamp(80px,12vh,160px) 0 32px}
footer .giant{font-variation-settings:"wdth" 122;font-weight:600;letter-spacing:-.05em;line-height:.85;font-size:clamp(72px,17vw,320px);margin:0;white-space:nowrap}
footer .row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:var(--gutter);margin-top:clamp(40px,8vh,96px);padding-top:28px;border-top:1px solid rgba(255,255,255,.18);font-size:15px}
footer a{opacity:.75;transition:opacity .3s}footer a:hover{opacity:1}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
footer .cta{font-variation-settings:"wdth" 110;font-weight:520;letter-spacing:-.03em;font-size:clamp(26px,3vw,48px);line-height:1;display:inline-block;opacity:1}
/* forms */
.formpage{min-height:100svh;display:grid;grid-template-columns:1fr 1.1fr;gap:var(--gutter);padding:140px var(--gutter) 80px;max-width:var(--max);margin:0 auto}
.formpage .sticky{position:sticky;top:140px;align-self:start}
form{display:grid;gap:26px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:26px}
label{display:grid;gap:8px;font-size:14px;color:var(--mute)}
input,select,textarea{font:inherit;font-size:18px;padding:12px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:#000;width:100%;border-radius:0;outline:none;transition:border-color .3s}
input:focus,select:focus,textarea:focus{border-bottom-color:#000}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#000 50%),linear-gradient(135deg,#000 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px}
textarea{min-height:90px;resize:vertical}
.checks{display:flex;flex-wrap:wrap;gap:10px}
.checks label{flex-direction:row;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:9px 16px;cursor:pointer;display:inline-flex;font-size:15px;color:#000;transition:background .3s,color .3s,border-color .3s}
.checks input{width:auto;padding:0;margin:0;position:absolute;opacity:0;pointer-events:none}
.checks label:has(input:checked){background:#000;color:#fff;border-color:#000}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.ok{display:none;padding:34px 0;border-top:1px solid var(--line)}.ok.show{display:block}
.err{color:#b3261e;font-size:14px;display:none}.err.show{display:block}
/* legal */
.legal{max-width:760px;margin:0 auto;padding:160px var(--gutter) 100px}
.legal h2{font-variation-settings:"wdth" 110;font-weight:520;letter-spacing:-.03em;font-size:34px;margin:56px 0 14px}
.legal p{color:var(--mute);margin:0 0 14px}
.todo{border:1px solid var(--line);padding:16px 18px;font-size:14px;color:var(--mute)}
/* cursor */
.cursor{position:fixed;z-index:60;left:0;top:0;width:10px;height:10px;border-radius:50%;background:#fff;mix-blend-mode:difference;pointer-events:none;transform:translate(-50%,-50%);transition:width .35s var(--ease),height .35s var(--ease);opacity:0}
body.has-cursor .cursor{opacity:1}.cursor.big{width:56px;height:56px}
/* reduced motion */
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.line{overflow:visible}}
/* responsive */
@media (max-width:1100px){.d-a{grid-column:1/8}.rules{columns:2}}
@media (max-width:860px){.nav .links{display:none}.nav .burger{display:block}.hero .inner{grid-template-columns:1fr}.hero .scroll{display:none}.lineup li{grid-template-columns:1fr;gap:6px;padding:22px 0}.lineup .st{white-space:normal}.services li{grid-template-columns:1fr;gap:10px;padding:28px 0}.services .from{text-align:left}.process{grid-template-columns:1fr}.process .sticky{position:static;margin-bottom:24px}.step{grid-template-columns:1fr;gap:8px;padding:28px 0}.ways{grid-template-columns:1fr;gap:40px}.pack{grid-template-columns:1fr;gap:10px}.pack .p{text-align:left}.rules{columns:1}.faq{columns:1}.about{grid-template-columns:1fr}.demos{grid-template-columns:1fr;gap:28px}.demos figure{grid-column:auto!important;margin:0!important}.formpage{grid-template-columns:1fr;padding-top:110px}.formpage .sticky{position:static}.row{grid-template-columns:1fr}footer .row{grid-template-columns:1fr 1fr}.peek,.cursor{display:none}.hero{min-height:560px}}
@media (hover:none){.peek,.cursor{display:none}}
/* ===== v3: quick nav, work grid, process strip, estimator, modal ===== */
.quick{display:grid;grid-template-columns:1.1fr 1.1fr 1.4fr;gap:var(--gutter);padding:36px 0 0;border-top:1px solid var(--line)}
.quick h4{margin:0 0 12px;font-size:13px;font-weight:500;color:var(--mute)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;height:38px;padding:0 16px;border:1px solid var(--line);border-radius:999px;font-size:15px;color:#000;background:transparent;transition:background .3s,color .3s,border-color .3s;cursor:pointer}
.chip:hover{border-color:#000}.chip[aria-pressed="true"],.chip.on{background:#000;color:#fff;border-color:#000}
.quick p{margin:0;font-size:15px;line-height:1.5;color:var(--mute)}
.filters{display:flex;flex-wrap:wrap;gap:28px 40px;margin:40px 0 28px}
.filters .group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filters .group span{font-size:13px;color:var(--mute);margin-right:6px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter)}
.tile{position:relative;display:block;background:#f0efed;aspect-ratio:4/5;overflow:hidden;cursor:pointer;transition:opacity .4s}
.tile.hide{display:none}
.tile .fill{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:22px}
.tile .tags{display:flex;gap:8px;flex-wrap:wrap}
.tile .tag{font-size:13px;color:#000;border:1px solid rgba(0,0,0,.18);border-radius:999px;padding:5px 10px;background:rgba(255,255,255,.6)}
.tile .t{font-variation-settings:"wdth" 110;font-weight:520;letter-spacing:-.03em;font-size:clamp(24px,2.2vw,34px);line-height:1}
.tile .meta{display:flex;justify-content:space-between;font-size:13px;color:var(--mute);margin-top:12px}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s var(--ease),transform 1.2s var(--ease);transform:scale(1.03)}
.tile:hover img{opacity:1;transform:scale(1)}
.tile.ph{background:repeating-linear-gradient(135deg,#f3f2f0 0 14px,#edebe8 14px 28px)}
.tile .ph-label{position:absolute;right:22px;top:22px;font-size:12px;color:var(--mute);border:1px dashed rgba(0,0,0,.3);border-radius:999px;padding:5px 10px}
.empty{display:none;padding:40px 0;color:var(--mute)}.empty.show{display:block}
/* process strip */
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gutter);border-top:1px solid var(--line);padding-top:26px}
.strip div{border-left:1px solid var(--line);padding-left:18px}
.strip .when{font-size:13px;color:var(--mute);margin-bottom:10px}
.strip h3{margin:0 0 8px;font-variation-settings:"wdth" 110;font-weight:520;letter-spacing:-.025em;font-size:clamp(22px,2vw,30px);line-height:1}
.strip p{margin:0;font-size:15px;color:var(--mute);max-width:30ch}
/* estimator */
.est{display:grid;grid-template-columns:1.25fr .9fr;gap:var(--gutter);align-items:start}
.est .panel{display:grid;gap:34px}
.est .block{border-top:1px solid var(--line);padding-top:22px}
.est .block h4{margin:0 0 14px;font-size:14px;font-weight:500;color:var(--mute)}
.est .opts{display:grid;gap:10px;margin-top:14px}
.est .opt{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:16px}
.est .opt small{display:block;color:var(--mute);font-size:13px;margin-top:2px}
.est .opt[hidden]{display:none}
.num{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;height:40px}
.num button{width:40px;height:40px;font-size:20px;line-height:1;color:#000}
.num input{width:56px;text-align:center;border:0;padding:0;font-size:16px;background:transparent;-moz-appearance:textfield}
.num input::-webkit-outer-spin-button,.num input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.switch{position:relative;width:46px;height:26px;border-radius:999px;background:#ddd;transition:background .3s;flex:none}
.switch:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .3s var(--ease)}
.opt input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}
.opt:has(input:checked) .switch{background:#000}.opt:has(input:checked) .switch:after{transform:translateX(20px)}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px}
.seg button{height:34px;padding:0 14px;border-radius:999px;font-size:14px;color:#000}
.seg button[aria-pressed="true"]{background:#000;color:#fff}
.summary{position:sticky;top:100px;border:1px solid #000;padding:28px}
.summary .total{font-variation-settings:"wdth" 114;font-weight:560;letter-spacing:-.04em;font-size:clamp(36px,4vw,64px);line-height:1;margin:6px 0 4px}
.summary .lbl{font-size:13px;color:var(--mute)}
.summary .lines{margin:22px 0 0;padding:0;list-style:none;font-size:15px;display:grid;gap:8px}
.summary .lines li{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding-top:8px}
.summary .lines li span:last-child{white-space:nowrap;color:var(--mute)}
.summary .foot{margin-top:22px;font-size:13px;color:var(--mute)}
.summary .pill{margin-top:22px;width:100%;justify-content:center}
.summary .cmp{margin-top:16px;font-size:14px;line-height:1.45}
/* modal */
.modal{position:fixed;inset:0;z-index:70;display:none;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.55);padding:0}
.modal.open{display:flex}
.modal .sheet{background:#fff;width:min(100%,980px);max-height:92vh;overflow:auto;padding:40px var(--gutter) 48px;border-radius:14px 14px 0 0}
.modal .sheet .ba{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}
.modal .sheet .ba div{aspect-ratio:4/5;background:repeating-linear-gradient(135deg,#f3f2f0 0 14px,#edebe8 14px 28px);display:grid;place-items:center;color:var(--mute);font-size:14px}
.modal .close{position:absolute;right:var(--gutter);top:18px;font-size:15px;color:#fff}
.modal dl{display:grid;grid-template-columns:140px 1fr;gap:10px 20px;font-size:15px;margin:0}.modal dt{color:var(--mute)}.modal dd{margin:0}
@media (max-width:860px){.quick{grid-template-columns:1fr;gap:22px}.grid{grid-template-columns:1fr 1fr;gap:12px}.tile .t{font-size:20px}.strip{grid-template-columns:1fr 1fr;gap:22px}.est{grid-template-columns:1fr}.summary{position:static}.modal .sheet .ba{grid-template-columns:1fr 1fr}.modal dl{grid-template-columns:1fr}}
@media (max-width:520px){.grid{grid-template-columns:1fr}.tile{aspect-ratio:4/3}.strip{grid-template-columns:1fr}}
