/* ===== Premium motion layer — components used by the GSAP build ===== */
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.has-cursor,body.has-cursor a,body.has-cursor button{cursor:none}
.cur{position:fixed;left:0;top:0;z-index:999;pointer-events:none;mix-blend-mode:difference}
.cur .dot{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:50%;background:#fff}
.cur .ring{position:absolute;left:-22px;top:-22px;width:44px;height:44px;border-radius:50%;border:1.5px solid rgba(255,255,255,.9);display:grid;place-items:center;transition:width .25s,height .25s,left .25s,top .25s,background .25s}
.cur .ring span{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#000;opacity:0;transition:opacity .2s}
.cur.big .ring{width:76px;height:76px;left:-38px;top:-38px;background:#fff}
.cur.big .ring span{opacity:1}
.cur.lnk .ring{width:56px;height:56px;left:-28px;top:-28px;background:rgba(255,255,255,.18)}
@media (pointer:coarse){.cur{display:none}}
.grain{position:fixed;inset:-50%;width:200%;height:200%;z-index:998;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,2%)}100%{transform:translate(0,0)}}
@media (prefers-reduced-motion:reduce){.grain{animation:none}}

/* loader */
#loader{position:fixed;inset:0;z-index:1000;background:var(--ink);color:#fff;display:grid;place-items:center;overflow:hidden}
#loader .in{display:grid;gap:22px;justify-items:center;width:min(440px,80vw)}
#loader img{height:64px;width:auto}
#loader .pct{font-family:var(--mono);font-size:13px;letter-spacing:.2em;color:#9F9E97;display:flex;justify-content:space-between;width:100%}
#loader .pct b{color:var(--yellow);font-weight:500}
#loader .bar{width:100%;height:2px;background:rgba(255,255,255,.14)}
#loader .bar i{display:block;height:100%;width:0;background:var(--yellow)}
#loader .tag{font-size:13px;color:#8F8E88;letter-spacing:.02em}
body.loading{overflow:hidden}

/* nav behaviour */
.nav{transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .3s,background .3s}
.nav.hide{transform:translateY(-100%)}
.hero-x~.nav{}

/* ===== hero ===== */
.hero-x{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;overflow:hidden;background:#121212}
.hero-x .bg{position:absolute;inset:-6% 0;z-index:0}
.hero-x .bg img{width:100%;height:100%;object-fit:cover;object-position:50% 40%;transform:scale(1.12);will-change:transform;filter:saturate(1.05)}
.hero-x .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,14,13,.78) 0%,rgba(14,14,13,.45) 45%,rgba(14,14,13,.15) 100%),linear-gradient(180deg,rgba(14,14,13,.35) 0%,transparent 30%,transparent 55%,rgba(14,14,13,.9) 100%)}
.hero-x .wrap{position:relative;z-index:1;width:100%;padding-top:140px;padding-bottom:40px;display:grid;grid-template-columns:1.25fr .75fr;gap:40px;align-items:end}
.hero-x .eyebrow{color:#fff}
.hero-x h1{color:#fff;font-size:clamp(42px,6.2vw,92px);line-height:.98;letter-spacing:-.04em;font-weight:800;max-width:14ch}
.hero-x h1 em{font-style:italic;font-weight:300;letter-spacing:-.02em;color:var(--yellow)}
.hero-x .lede{color:#E6E5DF;max-width:52ch;margin-top:22px}
.hero-x .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-x .btn-ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.hero-x .btn-ghost:hover{border-color:#fff}
.hero-x .wire{position:absolute;left:0;right:0;bottom:0;height:3px;z-index:2}
.hero-x .wire path{stroke:var(--yellow);stroke-width:3;fill:none}
.ticket{justify-self:end;width:min(100%,360px);background:rgba(20,20,19,.62);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:20px 22px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 30px 60px rgba(0,0,0,.35)}
.ticket .row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:14px;color:#D9D8D2}
.ticket .row:last-child{border-bottom:0;padding-bottom:0}
.ticket .row b{color:#fff;font-weight:700}
.ticket .row small{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#9F9E97}
.ticket .live{display:inline-flex;align-items:center;gap:8px}
.ticket .live i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(30,158,90,.6);animation:pulse 2s infinite}
.ticket.closed .live i{background:#9F9E97;animation:none}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(30,158,90,0)}100%{box-shadow:0 0 0 0 rgba(30,158,90,0)}}
.scrollcue{position:absolute;left:50%;bottom:118px;transform:translateX(-50%);z-index:2;font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#D9D8D2;display:grid;justify-items:center;gap:8px}
.scrollcue i{display:block;width:1px;height:46px;background:linear-gradient(180deg,var(--yellow),transparent);animation:cue 1.8s ease-in-out infinite;transform-origin:top}
@keyframes cue{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.hero-x .accs{position:relative;z-index:2;border:0;border-top:1px solid rgba(255,255,255,.12);background:rgba(10,10,10,.5);backdrop-filter:blur(8px)}
.hero-x .accs .lbl{color:#9F9E97}
.hero-x .accs .track img{filter:grayscale(1) brightness(10);opacity:.85}
@media (max-width:900px){.hero-x .wrap{grid-template-columns:1fr;padding-top:120px}.ticket{display:none}.scrollcue{display:none}.hero-x h1{font-size:clamp(40px,11vw,64px)}}

/* ===== statement ===== */
.statement{padding-block:clamp(90px,14vw,180px)}
.statement p{font-size:clamp(26px,3.6vw,50px);line-height:1.18;letter-spacing:-.03em;font-weight:500;color:var(--ink);max-width:22ch;margin:0}
.statement .w{color:#C9C7BC;transition:color .25s}
.statement .w.on{color:var(--ink)}
.statement .w.hl.on{background:linear-gradient(transparent 60%,var(--yellow) 60%,var(--yellow) 92%,transparent 92%)}
.statement .meta{display:flex;gap:40px;margin-top:40px;font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* section index (left margin) */
.secnum{position:fixed;left:26px;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;z-index:40;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:flex;gap:14px;align-items:center;opacity:0;transition:opacity .4s}
.secnum.show{opacity:1}
@media (max-width:1100px){.secnum{display:none}}
.secnum i{display:block;width:1px;height:40px;background:var(--line-2)}
.secnum b{color:var(--ink);font-weight:500}
.dark-mode .secnum{color:#8F8E88}.dark-mode .secnum b{color:#fff}
@media (max-width:1240px){.secnum{display:none}}

/* ===== pinned services showcase ===== */
.show{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;margin-top:36px}
.show .list{padding-block:4vh}
.show .item{min-height:46vh;display:flex;flex-direction:column;justify-content:center;gap:12px;padding:30px 0;border-top:1px solid var(--line)}
.show .item .n{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--muted)}
.show .item h3{font-size:clamp(30px,3.6vw,50px);letter-spacing:-.035em;line-height:1;color:#B9B8B1;transition:color .4s}
.show .item p{max-width:46ch;color:var(--body);opacity:.55;transition:opacity .4s;margin:0}
.show .item .lnk{display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--ink);text-decoration:none;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s}
.show .item .lnk svg{width:16px;height:16px}
.show .item.on h3{color:var(--ink)}
.show .item.on p{opacity:1}
.show .item.on .lnk{opacity:1;transform:none}
.show .item.on .n{color:var(--ink)}
.show .frame{position:sticky;top:calc(var(--nav-h) + 24px);height:calc(100vh - var(--nav-h) - 48px);border-radius:26px;overflow:hidden;background:var(--sand-2);box-shadow:var(--shadow)}
.show .frame figure{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden}
.show .frame img{width:100%;height:100%;object-fit:cover;transform:scale(1.08)}
.show .frame figcaption{position:absolute;left:22px;bottom:22px;background:rgba(31,31,31,.86);color:#fff;font-size:13px;padding:10px 14px;border-radius:12px;backdrop-filter:blur(8px);display:flex;gap:10px;align-items:center}
.show .frame figcaption b{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--yellow);font-weight:500}
.show .frame .idx{position:absolute;right:22px;top:22px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:#fff;background:rgba(31,31,31,.7);padding:8px 10px;border-radius:10px}
.show .frame .idx b{color:var(--yellow);font-weight:500}
.show .item .mimg{display:none}
@media (max-width:900px){.show{grid-template-columns:1fr;gap:0}.show .frame{display:none}.show .list{padding-block:0}.show .item{min-height:0;padding:26px 0}.show .item h3{color:var(--ink)}.show .item p,.show .item .lnk{opacity:1;transform:none}.show .item .mimg{display:block;aspect-ratio:16/10;object-fit:cover;border-radius:16px;margin-bottom:10px}}

/* ===== horizontal chapter ===== */
.day{position:relative;overflow:hidden;background:var(--ink);color:#fff}
.day .head{position:absolute;left:0;right:0;top:0;z-index:3;pointer-events:none}
.day .head .wrap{display:flex;justify-content:space-between;align-items:center;padding-top:34px;gap:20px}
.day .head .eyebrow{color:#fff;margin:0}
.day .head .prog{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;color:#9F9E97;display:flex;align-items:center;gap:14px}
.day .head .prog i{display:block;width:160px;height:2px;background:rgba(255,255,255,.14);position:relative;overflow:hidden}
.day .head .prog i::after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--p,0%);background:var(--yellow)}
.day .head .prog b{color:#fff;font-weight:500;min-width:48px}
.day-track{display:flex;gap:22px;align-items:stretch;padding:110px 5vw 50px;width:max-content;height:100vh;box-sizing:border-box}
.day-card{position:relative;width:min(58vw,620px);flex:none;border-radius:24px;overflow:hidden;background:#1F1F1E;border:1px solid rgba(255,255,255,.1)}
.day-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.92;transform:scale(1.06)}
.day-card img[src$="trafic.webp"]{object-position:88% 50%}
.day-card .cap{position:absolute;left:0;right:0;bottom:0;padding:30px;background:linear-gradient(180deg,transparent,rgba(14,14,13,.92))}
.day-card .cap small{font-family:var(--mono);font-size:12px;letter-spacing:.16em;color:var(--yellow);display:block;margin-bottom:8px}
.day-card .cap b{font-size:clamp(22px,2.4vw,32px);letter-spacing:-.02em;line-height:1.1;display:block;color:#fff}
.day-card .cap p{margin:8px 0 0;color:#D9D8D2;font-size:15px;max-width:48ch}
.day-card.intro{width:min(38vw,440px);background:transparent;border:0;display:flex;align-items:center}
.day-card.intro h2{color:#fff;font-size:clamp(34px,4.2vw,58px)}
.day-card.intro p{color:#D9D8D2;font-size:17px;margin-top:16px;max-width:40ch}
.day-card .t{position:absolute;left:24px;top:24px;font-family:var(--mono);font-size:clamp(30px,4vw,56px);letter-spacing:-.03em;color:#fff;font-weight:700;text-shadow:0 10px 30px rgba(0,0,0,.4)}
@media (max-width:900px){.day-track{height:auto;padding:90px 20px 50px;width:auto;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.day-card{width:82vw;aspect-ratio:4/5;scroll-snap-align:start}.day-card.intro{width:82vw;aspect-ratio:auto}.day .head .prog{display:none}}

/* ===== process with cable ===== */
.proc-x{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start}
.proc-x .sticky{position:sticky;top:calc(var(--nav-h) + 30px)}
.cablewrap{position:relative;padding-left:56px}
.cable{position:absolute;left:18px;top:0;bottom:0;width:20px;overflow:visible}
.cable path{fill:none;stroke-linecap:round}
.cable .base{stroke:var(--line-2);stroke-width:2}
.cable .live{stroke:var(--yellow);stroke-width:3;filter:drop-shadow(0 0 6px rgba(253,238,28,.6))}
.node{position:absolute;left:-56px;width:40px;height:40px;border-radius:50%;background:#fff;border:2px solid var(--line-2);display:grid;place-items:center;font-family:var(--mono);font-size:12px;color:var(--muted);transition:all .4s;top:28px;margin-left:8px}
.step.on .node{background:var(--yellow);border-color:var(--ink);color:var(--ink);transform:scale(1.1)}
.steps-x{display:grid;gap:18px}
.steps-x .step{position:relative;display:block;padding:26px 28px}.steps-x .step h3{font-size:22px}
@media (max-width:900px){.proc-x{grid-template-columns:1fr;gap:28px}.proc-x .sticky{position:static}.cablewrap{padding-left:46px}.cable{left:12px}.node{width:32px;height:32px;left:-46px;top:22px;font-size:11px}}

/* ===== proof (dark card) ===== */
.proof-card{background:var(--ink);color:#D9D8D2;border-radius:32px;margin:0 clamp(8px,2vw,28px);padding:clamp(60px,8vw,110px) 0;transform-origin:center top}
.proof-card .eyebrow,.proof-card h2,.proof-card h3{color:#fff}
.proof-card h2 .mark{background:none;color:var(--yellow)}
.wipe{position:relative;overflow:hidden;border-radius:14px}
.wipe img{display:block;width:100%;aspect-ratio:1;object-fit:cover}
.wipe .top{position:absolute;inset:0;clip-path:inset(0 100% 0 0)}
.wipe .lbl{position:absolute;left:8px;bottom:8px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;background:rgba(0,0,0,.65);color:#fff;padding:4px 7px;border-radius:6px}
.wipe .top .lbl{background:var(--yellow);color:var(--ink)}
.wipe .handle{position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--yellow);box-shadow:0 0 12px rgba(253,238,28,.8)}

/* ===== local ===== */
.local-x{position:relative;overflow:hidden}
.ghost{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:clamp(90px,18vw,260px);font-weight:900;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px var(--line-2);white-space:nowrap;pointer-events:none;z-index:0;user-select:none}
.local-x .wrap{position:relative;z-index:1}
.map .ring{stroke-dasharray:1;stroke-dashoffset:0}
.map g.t{opacity:0;transform:translateY(6px)}
.map .hq{transform-box:fill-box;transform-origin:center}

/* ===== reviews drag ===== */
.revwrap{position:relative;margin-top:40px}
.revtrack{display:flex;gap:20px;width:max-content;padding:4px}
.revtrack .rev{width:min(420px,80vw);flex:none;user-select:none}
.revnav{display:flex;gap:10px;justify-content:center;margin-top:22px}
.revnav button{all:unset;cursor:pointer;width:46px;height:46px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;background:#fff;transition:all .25s}
.revnav button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.revnav svg{width:18px;height:18px}

/* ===== directors tilt ===== */
.dir{perspective:900px}
.dir img{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s;will-change:transform}
.dir:hover img{transform:rotateY(-8deg) rotateX(5deg) scale(1.03);box-shadow:var(--shadow)}

/* ===== footer giant ===== */
.giantwrap{overflow:hidden;background:var(--ink);padding:40px 0 0;position:relative}
.giant{position:relative;font-size:clamp(120px,24vw,360px);font-weight:900;letter-spacing:-.06em;line-height:.85;text-align:center;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.22);user-select:none;margin:0 -10px -0.08em}
.giant b{position:absolute;inset:0;color:var(--yellow);-webkit-text-stroke:0;clip-path:inset(0 100% 0 0);font-weight:900}
.giantsub{display:flex;justify-content:space-between;gap:20px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#8F8E88;padding:0 0 10px}
footer.ft{padding-top:50px}

/* ===== generic motion helpers ===== */
.ri{overflow:hidden;position:relative}
.ri img,.ri .cover{will-change:transform}
.sp .line,.sp-l{display:block}
.btn.mag{will-change:transform}
.ln-u{position:relative;text-decoration:none}
.ln-u::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.ln-u:hover::after{transform:scaleX(1);transform-origin:left}
[data-plx]{will-change:transform}
.pl{overflow:hidden;border-radius:inherit}
.pl img{height:120%;width:100%;object-fit:cover;margin-top:-10%}
body.dark-mode{background:#141413;color:#D9D8D2}
body.dark-mode .nav{background:rgba(20,20,19,.9);border-bottom-color:rgba(255,255,255,.1)}
body.dark-mode .nav nav>a,body.dark-mode .nav nav>details>summary,body.dark-mode .nav .tel{color:#fff}
body.dark-mode .nav .logo img{filter:brightness(10) saturate(0)}
body,.nav{transition:background-color .6s,color .6s}
@media (prefers-reduced-motion:reduce){.hero-x .bg img{transform:none}.scrollcue i{animation:none}.show .frame figure{opacity:1;visibility:visible}}

/* ===== opening story: real photos pulled down by the yellow line ===== */
body.home .topbar{display:none}
body.home .nav{position:fixed;top:0;left:0;right:0}
body.home .nav.clear .logo .lg-d{display:none}body.home .nav.clear .logo .lg-w{display:block}
body.home .nav.clear nav>a,body.home .nav.clear nav>details>summary,body.home .nav.clear .tel{color:#fff}
body.home .nav.clear nav>a:hover,body.home .nav.clear nav>details>summary:hover{background:rgba(255,255,255,.1)}
body.home .nav.clear .tel small{color:#C9C7BC}
body.home .nav.clear .burger{background:transparent;border-color:rgba(255,255,255,.3)}body.home .nav.clear .burger span{background:#fff;box-shadow:0 -6px 0 #fff,0 6px 0 #fff}
.build{position:relative;height:360vh;background:#1A1A19;color:#fff}
.build .stick{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:#1A1A19;background-image:radial-gradient(ellipse at 70% 40%,rgba(253,238,28,.07),transparent 55%)}
.build .frame{position:absolute;top:96px;bottom:36px;left:50%;right:40px;border-radius:24px;overflow:hidden;background:#242423;box-shadow:0 40px 90px rgba(0,0,0,.45)}
.build .ph{position:absolute;inset:0;margin:0;clip-path:inset(0 0 100% 0);will-change:clip-path}
.build .ph img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);transform-origin:50% 30%;will-change:transform}
.build .ph figcaption{position:absolute;left:22px;bottom:22px;display:flex;gap:10px;align-items:center;font-size:13px;color:#fff;background:rgba(26,26,25,.78);backdrop-filter:blur(8px);padding:10px 14px;border-radius:12px;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s}
.build .ph figcaption b{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--yellow);font-weight:500}
.build .ph.on figcaption{opacity:1;transform:none}
.build .ph::after{content:"";position:absolute;inset:0;background:#000;opacity:0;transition:opacity .6s;pointer-events:none}
.build .ph.dim::after{opacity:.45}
.build .edge{position:absolute;left:0;right:0;top:0;height:3px;background:var(--yellow);box-shadow:0 0 18px rgba(253,238,28,.9),0 0 50px rgba(253,238,28,.45);opacity:0;z-index:5;pointer-events:none}
.build .edge::after{content:"";position:absolute;left:0;right:0;top:3px;height:90px;background:linear-gradient(180deg,rgba(253,238,28,.22),transparent)}
.build .rail{position:absolute;left:calc(50% - 34px);top:96px;bottom:36px;width:2px;background:rgba(255,255,255,.12)}
.build .rail .fill{position:absolute;left:0;top:0;width:100%;height:0;background:var(--yellow);box-shadow:0 0 12px rgba(253,238,28,.7)}
.build .rail b{position:absolute;left:-13px;width:28px;height:28px;margin-top:-14px;border-radius:50%;background:#1A1A19;border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;font-family:var(--mono);font-size:9.5px;font-weight:500;color:#8F8E88;transition:all .35s}
.build .rail b.on{background:var(--yellow);color:var(--ink);border-color:var(--yellow);transform:scale(1.08)}
.build .caps{position:absolute;inset:0;right:50%;display:grid}
.build .cap{grid-area:1/1;display:grid;align-content:center;padding:96px clamp(20px,5vw,70px) 60px clamp(20px,6vw,84px);opacity:0;pointer-events:none;will-change:opacity,transform}
.build .cap .in{max-width:560px}
.build .cap.c0{padding-bottom:170px}
.build .cap .eyebrow{margin-bottom:16px;color:#D9D8D2}
.build .cap h1{font-size:clamp(38px,4.4vw,64px);line-height:.98;letter-spacing:-.04em;color:#fff}
.build .cap h1 em,.build .cap h2 em{font-style:italic;font-weight:300;letter-spacing:-.02em;color:var(--yellow)}
.build .cap h2{font-size:clamp(30px,3.6vw,52px);letter-spacing:-.035em;line-height:1.02;color:#fff}
.build .cap p{font-size:clamp(15.5px,1.3vw,18px);color:#C9C7BC;max-width:46ch;margin:16px 0 0}
.build .cap .cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.build .cap .btn-ghost{color:#fff;border-color:rgba(255,255,255,.28)}
.build .cap .btn-ghost:hover{background:rgba(255,255,255,.08)}
.build .cap .lnk{display:inline-flex;align-items:center;gap:8px;margin-top:22px;color:#fff;font-weight:800;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:4px}
.build .cap .lnk svg{width:16px;height:16px}
.build .cap .num{font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--yellow);display:block;margin-bottom:14px}
.build .ticket{position:absolute;left:clamp(20px,6vw,84px);bottom:36px;max-width:360px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#fff;backdrop-filter:blur(10px);box-shadow:none}
.build .ticket .row{color:#D9D8D2;border-bottom-color:rgba(255,255,255,.08)}
.build .ticket .row b{color:#fff}
.build .ticket .row small{color:#8F8E88}
.build .cue{position:absolute;left:calc(50% - 34px);bottom:36px;transform:translateX(-50%);font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#8F8E88;display:grid;justify-items:center;gap:8px;transition:opacity .4s}
.build .cue i{display:block;width:1px;height:40px;background:linear-gradient(180deg,var(--yellow),transparent);animation:cue 1.8s ease-in-out infinite;transform-origin:top}
.build:not(.ready) .ph.p0{clip-path:inset(0)}
.build:not(.ready) .cap.c0{opacity:1;pointer-events:auto}
@media (max-width:1100px){.build .cap{padding-left:clamp(20px,4vw,40px);padding-right:24px}.build .cap h1{font-size:clamp(34px,4.2vw,52px)}}
@media (max-width:900px){.build{height:300vh}.build .stick{background-image:none}.build .cap.c0{padding-bottom:110px}.build .cap .cta .btn{padding:12px 16px;font-size:14px}.build .cap.c0 p,.build .cap.c4 p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.build .frame{top:72px;bottom:50%;left:16px;right:16px;border-radius:18px;box-shadow:0 20px 50px rgba(0,0,0,.4)}.build .rail{left:auto;right:28px;top:84px;bottom:calc(50% + 12px)}.build .rail b{left:-13px}.build .caps{right:0;top:50%;bottom:0}.build .cap{align-content:start;padding:18px 20px 110px}.build .cap .in{max-width:none}.build .cap h1{font-size:clamp(30px,8vw,42px)}.build .cap h2{font-size:clamp(26px,7vw,38px)}.build .cap p{font-size:15px;margin-top:12px}.build .cap .cta{margin-top:18px}.build .ticket,.build .cue{display:none}.build .ph figcaption{left:12px;bottom:12px;font-size:12px}}
@media (max-height:820px){.build .ticket{display:none}.build .cap.c0{padding-bottom:60px}}
@media (max-width:900px) and (max-height:700px){.build .frame{bottom:50%}.build .caps{top:51%}.build .cap p{display:none}}
/* page spine: the line keeps pulling down after the opener */
.spine{position:fixed;left:0;top:0;bottom:0;width:3px;z-index:45;pointer-events:none;background:rgba(31,31,31,.06)}
.spine i{position:absolute;left:0;top:0;width:100%;height:0;background:var(--yellow)}
@media (max-width:900px){.spine{display:none}}
