:root{
  --ink:#0d1015;--ink2:#161b23;--ink3:#222a35;
  --paper:#efece6;--paper2:#e3dfd6;--line:#c9c4b8;
  --gold:#f2b705;--gold2:#ffd24a;--rust:#d9552b;
  --muted:#8b94a3;--r:18px;
  --f-d:"Oswald","Arial Narrow",Impact,sans-serif;
  --f-b:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font:400 17px/1.6 var(--f-b);background:var(--ink);color:var(--paper);overflow-x:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit}
.wrap{width:min(1240px,100% - 32px);margin-inline:auto}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--gold);color:#000;padding:8px 12px;z-index:99}
h1,h2,h3{font-family:var(--f-d);text-transform:uppercase;letter-spacing:.01em;line-height:1.02;font-weight:700}
h1{font-size:clamp(46px,9vw,128px)}
h2{font-size:clamp(34px,5.4vw,72px)}
h3{font-size:clamp(22px,2.4vw,30px)}
.eyebrow{font:600 13px/1 var(--f-b);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);display:flex;gap:14px;align-items:center}
.eyebrow:before{content:"";width:44px;height:3px;background:var(--gold)}
.lead{font-size:clamp(18px,1.6vw,22px);color:#c7ccd4;max-width:62ch}
.paper .lead,.paper2 .lead{color:#3b424d}

/* header */
header.top{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .3s,backdrop-filter .3s}
header.top.stuck{background:rgba(13,16,21,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid #ffffff14}
.bar{display:flex;align-items:center;justify-content:space-between;height:72px;gap:16px}
.logo{text-decoration:none;display:flex;align-items:center;gap:12px;line-height:1}.logo span{display:flex;flex-direction:column}.logo img{border-radius:10px}
.logo b{font:700 34px/1 var(--f-d);letter-spacing:.04em}
.logo i{font:600 10px/1 var(--f-b);letter-spacing:.34em;text-transform:uppercase;color:var(--gold);font-style:normal;margin-top:3px}
nav.main{display:flex;gap:6px;align-items:center}
nav.main a{text-decoration:none;font-weight:600;font-size:15px;padding:10px 14px;border-radius:99px;opacity:.85}
nav.main a:hover,nav.main a[aria-current]{opacity:1;background:#ffffff14}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 26px;border-radius:99px;font-weight:700;font-size:16px;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform .15s,background .2s,color .2s;font-family:var(--f-b)}
.btn:active{transform:scale(.97)}
.btn.gold{background:var(--gold);color:#111}.btn.gold:hover{background:var(--gold2)}
.btn.ghost{border-color:#ffffff40;color:var(--paper)}.btn.ghost:hover{border-color:var(--gold);color:var(--gold)}
.paper .btn.ghost{border-color:#00000040;color:var(--ink)}
.btn.sm{padding:10px 18px;font-size:15px}
.burger{display:none;background:none;border:0;color:var(--paper);width:44px;height:44px;cursor:pointer}
.burger span{display:block;width:24px;height:2px;background:currentColor;margin:6px auto;transition:.2s}
@media(max-width:900px){
  .burger{display:block}
  nav.main{position:fixed;inset:72px 0 auto 0;background:var(--ink);flex-direction:column;align-items:stretch;padding:12px 16px 24px;display:none;border-bottom:1px solid #ffffff20}
  nav.main.open{display:flex}
  nav.main a{font-size:20px;padding:16px}
  .hide-m{display:none}
}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:120px 0 64px;overflow:hidden;
  background:radial-gradient(1200px 600px at 80% 20%,#2a2f3a 0,transparent 60%),var(--ink)}
.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(#000,transparent 90%);-webkit-mask-image:linear-gradient(#000,transparent 90%)}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:end}
.hero h1 span{display:block}
.hero h1 .o{color:transparent;-webkit-text-stroke:2px var(--paper)}
.hero h1 .g{color:var(--gold)}
.hero .lead{margin:28px 0 36px}
.cta{display:flex;gap:14px;flex-wrap:wrap}
.hero .meta{display:flex;gap:28px;margin-top:44px;flex-wrap:wrap;color:#aab1bd;font-size:15px}
.hero .meta b{display:block;color:var(--paper);font:700 28px/1.1 var(--f-d);letter-spacing:.02em}
@media(max-width:900px){.hero .wrap{grid-template-columns:1fr}.hero{padding-top:100px}}

/* the pour: animated formwork */
.pour{position:relative;aspect-ratio:4/5;border-radius:var(--r);border:2px solid #ffffff30;background:#0a0d11;overflow:hidden;max-height:560px;justify-self:end;width:100%}
.pour .grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff10 1px,transparent 1px),linear-gradient(90deg,#ffffff10 1px,transparent 1px);background-size:28px 28px}
.pour .rebar{position:absolute;inset:14% 12% 10%;background:
  repeating-linear-gradient(90deg,#7e8794 0 2px,transparent 2px 26px),
  repeating-linear-gradient(0deg,#7e8794 0 2px,transparent 2px 26px);opacity:.55}
.pour .fill{position:absolute;left:0;right:0;bottom:0;height:8%;background:
  linear-gradient(180deg,#a7a49c,#7d7a73 60%,#6a675f);animation:fill 9s cubic-bezier(.5,0,.3,1) infinite}
.pour .fill:before{content:"";position:absolute;left:-10%;right:-10%;top:-22px;height:44px;background:#a7a49c;border-radius:50%;animation:wave 3.2s ease-in-out infinite alternate}
.pour .fill:after{content:"";position:absolute;inset:0;opacity:.35;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence baseFrequency='.9' numOctaves='2'/></filter><rect width='160' height='160' filter='url(%23n)' opacity='.7'/></svg>")}
@keyframes fill{0%{height:8%}70%{height:78%}85%,100%{height:78%}}
@keyframes wave{from{transform:translateX(-4%) scaleY(1)}to{transform:translateX(4%) scaleY(.7)}}
.pour .chute{position:absolute;top:0;left:50%;width:34px;height:var(--ch,40%);margin-left:-17px;background:linear-gradient(90deg,#8e8b83,#b7b4ab,#8e8b83);border-radius:0 0 10px 10px;animation:chute 9s ease-in-out infinite;transform-origin:top}
@keyframes chute{0%{transform:scaleY(.2)}8%{transform:scaleY(1)}75%{transform:scaleY(1)}85%,100%{transform:scaleY(0)}}
.pour .tag{position:absolute;left:16px;top:14px;font:600 12px var(--f-b);letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.pour .vol{position:absolute;right:16px;bottom:14px;font:700 clamp(34px,5vw,56px)/1 var(--f-d);color:#fff;text-shadow:0 2px 12px #0008}
.pour .vol small{font-size:.4em;margin-left:6px;opacity:.8}
@media(prefers-reduced-motion:reduce){.pour .fill,.pour .chute,.pour .fill:before{animation:none}.pour .fill{height:60%}}

/* marquee */
.tape{background:var(--gold);color:#111;overflow:hidden;white-space:nowrap;border-block:3px solid #111}
.tape div{display:inline-block;padding:14px 0;font:700 26px/1 var(--f-d);letter-spacing:.06em;text-transform:uppercase;animation:tape 40s linear infinite}
.tape span{margin:0 26px}.tape span:nth-child(even){opacity:.55}
@keyframes tape{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.tape div{animation:none}}

/* sections */
section{padding:clamp(64px,9vw,128px) 0}
.paper{background:var(--paper);color:var(--ink)}
.paper2{background:var(--paper2);color:var(--ink)}
.sec-head{display:grid;gap:18px;margin-bottom:48px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.card{background:var(--ink2);border:1px solid #ffffff18;border-radius:var(--r);padding:28px;position:relative;overflow:hidden;text-decoration:none;transition:transform .25s,border-color .25s}
a.card:hover{transform:translateY(-4px);border-color:var(--gold)}
.paper .card,.paper2 .card{background:#fff;border-color:#00000012}
.card h3{margin-bottom:10px}
.card p{color:#aeb5c0;font-size:16px}
.paper .card p,.paper2 .card p{color:#4a525e}
.card .num{font:700 72px/1 var(--f-d);color:var(--gold);opacity:.9;margin-bottom:12px}
.card .more{margin-top:18px;font-weight:700;color:var(--gold);display:inline-block}
.paper .card .more,.paper2 .card .more{color:#6b4e00}

/* grades */
.grade-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.grade{background:var(--ink);color:var(--paper);border-radius:var(--r);padding:22px;text-decoration:none;display:flex;flex-direction:column;gap:6px;transition:.25s;border:2px solid transparent;position:relative;overflow:hidden}
.grade:hover{border-color:var(--gold);transform:translateY(-4px)}
.grade b{font:700 56px/1 var(--f-d)}
.grade i{font-style:normal;font-weight:600;color:var(--gold);letter-spacing:.06em}
.grade small{color:#a9b0bb;font-size:14px;line-height:1.4}
.grade:after{content:"";position:absolute;right:-20px;bottom:-20px;width:90px;height:90px;border-radius:50%;background:var(--gold);opacity:.1}

/* calculator */
.calc{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}
@media(max-width:900px){.calc{grid-template-columns:1fr}}
.panel{background:var(--ink2);border:1px solid #ffffff1c;border-radius:calc(var(--r) + 6px);padding:clamp(20px,3vw,36px)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.tabs button{font:600 15px var(--f-b);background:#ffffff0d;border:1px solid #ffffff22;color:var(--paper);padding:11px 16px;border-radius:99px;cursor:pointer}
.tabs button[aria-pressed=true]{background:var(--gold);color:#111;border-color:var(--gold)}
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
label.f{display:grid;gap:6px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:#aab1bd;font-weight:600}
label.f input,label.f select{font:600 20px var(--f-b);padding:14px;border-radius:12px;border:1px solid #ffffff2c;background:#0b0e13;color:var(--paper);width:100%;min-height:52px}
label.f input:focus,label.f select:focus{outline:2px solid var(--gold);border-color:transparent}
.diagram{margin:0 0 22px;height:120px;color:var(--gold)}
.result{position:sticky;top:96px}
.result .big{font:700 clamp(64px,9vw,112px)/1 var(--f-d);color:var(--gold)}
.result .big small{font-size:.38em;color:var(--paper);margin-left:8px}
.kv{display:grid;gap:0;margin:18px 0 24px}
.kv div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #ffffff1c}
.kv span{color:#aab1bd}.kv b{text-align:right}
.note{font-size:14px;color:#9aa2af;margin-top:16px}
.copied{color:var(--gold);font-weight:700;margin-left:10px;opacity:0;transition:.3s}.copied.on{opacity:1}

/* finder */
.finder{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:900px){.finder{grid-template-columns:1fr}}
.tasks{display:grid;gap:10px}
.tasks button{text-align:left;font:600 17px var(--f-b);padding:16px 18px;border-radius:14px;border:2px solid #00000018;background:#fff;color:var(--ink);cursor:pointer;transition:.2s}
.tasks button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.answer{background:var(--ink);color:var(--paper);border-radius:calc(var(--r) + 6px);padding:clamp(24px,3vw,40px);min-height:300px}
.answer .m{font:700 clamp(64px,8vw,104px)/1 var(--f-d);color:var(--gold)}
.answer .m small{font-size:.4em;color:var(--paper)}

/* table */
.tbl{overflow-x:auto;border-radius:var(--r);border:1px solid #00000020;background:#fff}
table{border-collapse:collapse;width:100%;min-width:640px;font-size:16px}
th,td{padding:14px 18px;text-align:left;border-bottom:1px solid #0000001a}
th{font:600 12px var(--f-b);letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:var(--paper)}
td:first-child{font:700 24px var(--f-d)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0;counter-reset:s;border-top:3px solid var(--ink)}
.steps li{list-style:none;padding:28px 24px 28px 0;counter-increment:s}
.steps li:before{content:"0" counter(s);font:700 56px/1 var(--f-d);color:var(--gold);display:block;margin-bottom:14px;-webkit-text-stroke:0}
.steps li b{display:block;font:700 22px var(--f-d);text-transform:uppercase;margin-bottom:6px}

/* sites */
.sites{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.site{border-radius:calc(var(--r) + 6px);padding:32px;background:var(--ink2);border:1px solid #ffffff1c;position:relative;overflow:hidden}
.site .n{font:700 140px/1 var(--f-d);color:#ffffff08;position:absolute;right:16px;top:-6px}
.site address{font-style:normal;font:700 clamp(24px,3vw,34px)/1.15 var(--f-d);text-transform:uppercase;margin:12px 0 22px;position:relative}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{padding:8px 14px;border-radius:99px;background:#ffffff10;border:1px solid #ffffff1c;font-size:14px;text-decoration:none}
a.chip:hover{border-color:var(--gold);color:var(--gold)}
.paper .chip,.paper2 .chip{background:#fff;border-color:#00000018}

/* faq */
details{border-top:1px solid #ffffff2e;padding:20px 0}
details:last-of-type{border-bottom:1px solid #ffffff2e}
.paper details,.paper2 details{border-color:#0000002a}
summary{cursor:pointer;font:700 clamp(20px,2.4vw,28px)/1.2 var(--f-d);text-transform:uppercase;list-style:none;display:flex;justify-content:space-between;gap:16px}
summary::-webkit-details-marker{display:none}
summary:after{content:"+";color:var(--gold);font-size:1.3em;line-height:.9}
details[open] summary:after{content:"–"}
details p{margin-top:14px;max-width:70ch;color:#c7ccd4}
.paper details p,.paper2 details p{color:#3b424d}

/* page hero (inner) */
.ph{padding:150px 0 64px;background:radial-gradient(900px 400px at 85% 0,#2a2f3a,transparent 60%),var(--ink);border-bottom:3px solid var(--gold)}
.ph h1{font-size:clamp(40px,7vw,96px);margin:18px 0}
.crumbs{font-size:14px;color:#9aa2af;margin-bottom:8px}
.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--gold)}
.prose{max-width:75ch}
.prose h2{font-size:clamp(28px,3.4vw,44px);margin:44px 0 14px}
.prose p,.prose li{margin:0 0 14px}
.prose ul{padding-left:22px}
.paper .prose p,.paper .prose li{color:#262c35}
.two{display:grid;grid-template-columns:1.4fr .8fr;gap:48px}
@media(max-width:900px){.two{grid-template-columns:1fr}}
.spec{background:var(--ink);color:var(--paper);border-radius:var(--r);padding:26px;position:sticky;top:96px}
.spec dl{display:grid;gap:0}.spec dt{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-top:14px}
.spec dd{font:700 24px var(--f-d)}

/* footer */
footer{background:#07090c;padding:72px 0 120px;border-top:3px solid var(--gold)}
footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:36px}
footer h4{font:700 14px var(--f-b);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
footer a{display:block;text-decoration:none;color:#c2c8d1;padding:4px 0}footer a:hover{color:var(--gold)}
footer .legal{margin-top:48px;padding-top:24px;border-top:1px solid #ffffff18;color:#7c8594;font-size:14px}

/* mobile call bar */
.mbar{position:fixed;left:12px;right:12px;bottom:12px;z-index:60;display:none;gap:8px}
.mbar a{flex:1;justify-content:center;box-shadow:0 8px 30px #0008}
@media(max-width:900px){.mbar{display:flex}}

/* reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}
.rv.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
.noscript-note{padding:12px 16px;background:var(--gold);color:#000}

/* photos */
.hero .shot{position:relative;border-radius:calc(var(--r) + 8px);overflow:hidden;border:2px solid #ffffff30;aspect-ratio:4/5;max-height:560px;width:100%;justify-self:end}
.hero .shot img{width:100%;height:100%;object-fit:cover;animation:kb 18s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.08)}}
.hero .badge{position:absolute;left:16px;bottom:16px;background:var(--gold);color:#111;padding:12px 18px;border-radius:14px;font-weight:600}
.hero .badge b{font:700 28px var(--f-d)}
.ph{position:relative;isolation:isolate}
.ph:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,var(--ink) 25%,#0d1015b0 70%,#0d101560),var(--bg) center/cover}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.gal figure{border-radius:var(--r);overflow:hidden;aspect-ratio:4/3}
.gal figure.wide{grid-column:span 2;grid-row:span 1}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gal figure:hover img{transform:scale(1.05)}
@media(max-width:700px){.gal{grid-template-columns:1fr 1fr}.gal figure.wide{grid-column:span 2}}
.fig{margin:28px 0;border-radius:var(--r);overflow:hidden}
.fig img{width:100%;height:auto}
@media(prefers-reduced-motion:reduce){.hero .shot img{animation:none}}
.panel .btn.ghost,.paper .panel .btn.ghost,.answer .btn.ghost{color:var(--paper);border-color:#ffffff40}
.panel .btn.ghost:hover{color:var(--gold);border-color:var(--gold)}

.band{position:relative;isolation:isolate}
.band:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(13,16,21,.84),rgba(13,16,21,.78)),var(--bg) center/cover}
.cta-band:before{background:linear-gradient(90deg,rgba(13,16,21,.92) 30%,rgba(13,16,21,.35)),var(--bg) center/cover}
.hero{background:radial-gradient(1200px 600px at 80% 20%,#2a2f3a99 0,transparent 60%),linear-gradient(rgba(13,16,21,.8),rgba(13,16,21,.9)),url(/img/gen-texture.jpg) center/cover,var(--ink)}
footer{background:linear-gradient(rgba(7,9,12,.9),rgba(7,9,12,.96)),url(/img/gen-texture.jpg) center/cover}

/* ===== v3: shader hero, iso, convoy, ticket, strength, journey, palette ===== */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .25s ease both}
::view-transition-new(root){animation:vt-in .35s ease both}
@keyframes vt-out{to{opacity:0;transform:translateY(-6px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(8px)}}
.hero:before{display:none}
.fx{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.2s;z-index:0;image-rendering:auto}
.fx.on{opacity:1}
.hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(13,16,21,.55),transparent 55%),linear-gradient(0deg,rgba(13,16,21,.7),transparent 30%)}
.hero .wrap{z-index:1}
.hero .shot img{animation:none}
.sbtn{display:inline-flex;align-items:center;gap:8px;background:#ffffff10;border:1px solid #ffffff26;color:var(--paper);height:44px;padding:0 14px;border-radius:99px;cursor:pointer;font:600 14px var(--f-b)}
.sbtn:hover{border-color:var(--gold);color:var(--gold)}
kbd{font:600 12px var(--f-b);border:1px solid #ffffff40;border-radius:6px;padding:1px 6px;margin-left:4px}
@media(max-width:900px){.sbtn{margin-left:auto;width:44px;padding:0;justify-content:center}}
.diagram{height:130px;margin-bottom:18px}
.convoy{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 22px;min-height:30px;align-items:flex-end}
.convoy .mx{width:76px;height:auto;opacity:0;transform:translateX(-30px);animation:mx-in .5s calc(var(--i)*.07s) cubic-bezier(.2,.8,.2,1) forwards}
@keyframes mx-in{to{opacity:1;transform:none}}
.more-mx{align-self:center;font:700 22px var(--f-d);color:var(--gold);padding:0 8px}
.ticket-wrap{grid-column:1/-1}
.ticket{max-width:460px;margin:0 auto;background:#efece6;color:#0d1015;font:500 15px/1.5 ui-monospace,"SF Mono",Menlo,Consolas,monospace;position:relative;filter:drop-shadow(0 20px 40px #0009)}
.tk-in{padding:30px 26px 22px}
.ticket-wrap.print .ticket{animation:print 1.1s cubic-bezier(.3,.7,.2,1)}
@keyframes print{from{clip-path:inset(0 0 100% 0);transform:translateY(-30px)}to{clip-path:inset(0);transform:none}}
.ticket .th{font-weight:700;font-size:19px;letter-spacing:.04em}
.ticket .ts{color:#4a525e;font-size:13px}
.ticket hr{border:0;border-top:2px dashed #0d1015;margin:12px 0}
.ticket .tr{display:flex;gap:8px;align-items:baseline}
.ticket .tr i{flex:1;border-bottom:1px dotted #00000066;transform:translateY(-3px)}
.ticket .tr.b{font-weight:800;font-size:17px}
.tk-edge{height:14px;background:linear-gradient(135deg,#efece6 50%,transparent 50%) 0 0/16px 14px,linear-gradient(225deg,#efece6 50%,transparent 50%) 0 0/16px 14px}
.strength{display:grid;grid-template-columns:1.4fr .8fr;gap:20px}
@media(max-width:900px){.strength{grid-template-columns:1fr}}
.strength svg{width:100%;height:auto}
.strength input[type=range]{width:100%;accent-color:var(--gold);min-height:32px}
.read .big{font:700 clamp(72px,9vw,120px)/1 var(--f-d);color:var(--gold);margin:10px 0}
.read .big small{font-size:.4em;color:var(--paper)}
.journey{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
@media(max-width:900px){.journey{grid-template-columns:1fr;gap:20px}.jph{order:-1}}
.jph{position:sticky;top:96px;aspect-ratio:4/3;border-radius:calc(var(--r) + 8px);overflow:hidden;border:2px solid #ffffff26}
.jph figure{position:absolute;inset:0;opacity:0;transform:scale(1.06);transition:opacity .7s,transform 1.2s}
.jph figure.on{opacity:1;transform:none}
.jph img{width:100%;height:100%;object-fit:cover}
.jst{padding:0;display:grid;gap:0}
.jst li{list-style:none;padding:44px 0 44px 24px;border-left:3px solid #ffffff22;opacity:.4;transition:.4s;cursor:pointer}
.jst li.on{opacity:1;border-color:var(--gold)}
.jst span{font:700 18px var(--f-d);color:var(--gold);letter-spacing:.1em}
.jst b{display:block;font:700 clamp(30px,4vw,48px)/1.05 var(--f-d);text-transform:uppercase;margin:6px 0 10px}
.jst p{color:#c7ccd4;max-width:44ch}
@media(max-width:900px){.jst li{padding:18px 0 18px 18px}}
#pal{position:fixed;inset:0;z-index:100;background:rgba(5,7,10,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 0}
#pal[hidden]{display:none}
.pal-box{width:min(640px,100%);background:var(--ink2);border:1px solid #ffffff26;border-radius:20px;overflow:hidden;box-shadow:0 30px 80px #000a;animation:vt-in .25s}
#pal-in{width:100%;background:transparent;border:0;border-bottom:1px solid #ffffff1c;color:var(--paper);font:600 20px var(--f-b);padding:20px 22px;outline:none}
#pal-list{list-style:none;padding:8px;max-height:50vh;overflow:auto;margin:0}
#pal-list li a{display:flex;gap:14px;align-items:center;padding:12px 14px;border-radius:12px;text-decoration:none}
#pal-list li.on a{background:#ffffff14}
#pal-list .g{font:600 11px var(--f-b);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);min-width:78px}
#pal-list .t{flex:1}
#pal-list b{font-family:var(--f-d);font-size:20px}
#pal-list .empty{padding:20px;color:#9aa2af}
.pal-foot{display:flex;gap:18px;padding:12px 20px;border-top:1px solid #ffffff1c;color:#8b94a3;font-size:13px}

/* ===== v4: legibility + configurator + rail ===== */
.panel{color:var(--paper)}
.panel .lead,.answer .lead{color:#c7ccd4}
button.btn{font-family:var(--f-b);background:transparent;color:inherit;-webkit-appearance:none;appearance:none}
button.btn.gold{background:var(--gold);color:#111}
.paper .panel .btn.ghost,.paper2 .panel .btn.ghost,.cfg .btn.ghost{color:var(--paper);border-color:#ffffff4d}
.cfg .btn.ghost:hover{color:var(--gold);border-color:var(--gold)}
.band h2,.band .lead,.band .eyebrow{color:inherit}
.band .lead{color:#d3d8df}
.cfg-sec{padding-block:clamp(56px,7vw,100px)}

.cfg{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:20px;align-items:start;color:var(--paper)}
.cfg>*{min-width:0}
.cfg-stage,.cfg-ctl,.cfg-res{background:linear-gradient(180deg,#1a2029,#12171e);border:1px solid #ffffff20;border-radius:26px;padding:clamp(18px,2.4vw,30px)}
.cfg-stage{grid-column:1;grid-row:1/span 2;position:sticky;top:92px;overflow:hidden;background:radial-gradient(500px 280px at 50% 40%,#2b3340,#10151b)}
.cfg-ctl{grid-column:2;grid-row:1}
.cfg-res{grid-column:2;grid-row:2}
.ticket-wrap{grid-column:1/-1}
.stage-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
.stage-top .dims{font:600 14px var(--f-b);color:#c7ccd4;letter-spacing:.04em}
#cfg-svg{width:100%;height:auto;margin:10px 0 0}
.stage-num{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:6px}
.stage-num .big{font:700 clamp(72px,11vw,150px)/.9 var(--f-d);color:var(--gold);letter-spacing:.01em;text-shadow:0 0 40px #f2b70540}
.stage-num .big small{font-size:.34em;color:var(--paper);margin-left:10px}
.stage-num .sub{color:#c7ccd4;font-size:15px;max-width:16ch;text-align:right}
.step{display:flex;gap:12px;align-items:center;font-size:20px;margin:22px 0 14px;color:var(--paper)}
.step:first-child{margin-top:0}
.step i{width:30px;height:30px;border-radius:50%;background:var(--gold);color:#111;font:700 15px var(--f-b);font-style:normal;display:grid;place-items:center}
.types{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.types button{background:#ffffff0c;border:2px solid #ffffff1f;border-radius:16px;color:var(--paper);padding:14px 6px 12px;display:grid;gap:6px;justify-items:center;cursor:pointer;font:600 13px/1.2 var(--f-b);transition:.2s}
.types button svg{color:#c7ccd4}
.types button[aria-pressed=true]{border-color:var(--gold);background:#f2b70518}
.types button[aria-pressed=true] svg{color:var(--gold)}
@media(max-width:560px){.types{grid-template-columns:repeat(2,1fr)}}
.fieldrows{display:grid;gap:16px}
.row{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center}
.row label{font:600 14px var(--f-b);color:#c7ccd4}
.row input[type=range]{grid-column:1/-1;grid-row:2;width:100%;accent-color:var(--gold);height:28px}
.row .num{display:flex;align-items:baseline;gap:6px;grid-column:2;grid-row:1}
.row .num input{width:92px;font:700 20px var(--f-b);background:#0b0e13;color:var(--paper);border:1px solid #ffffff30;border-radius:10px;padding:6px 10px;text-align:right}
.row .num input:focus{outline:2px solid var(--gold)}
.row .num span{color:#aab1bd;font-size:14px;min-width:22px}
.seg{display:inline-flex;background:#ffffff0f;border-radius:99px;padding:4px;gap:4px;border:1px solid #ffffff1f}
.seg button{border:0;background:transparent;color:var(--paper);font:700 14px var(--f-b);padding:10px 18px;border-radius:99px;cursor:pointer}
.seg button[aria-pressed=true]{background:var(--gold);color:#111}
.gchips{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.gchips button{position:relative;background:#ffffff0c;border:2px solid #ffffff1f;color:var(--paper);border-radius:14px;padding:10px 4px;cursor:pointer;display:grid;gap:2px;justify-items:center}
.gchips b{font:700 22px var(--f-d)}
.gchips small{color:#aab1bd;font-size:12px}
.gchips button.rec:after{content:"";position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.gchips button[aria-pressed=true]{background:var(--gold);color:#111;border-color:var(--gold)}
.gchips button[aria-pressed=true] small{color:#3a2d00}
.hint{font-size:13px;color:#aab1bd;margin-top:10px;display:flex;gap:8px;align-items:center}
.hint .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);flex:none}
.adv{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.f2{display:grid;gap:6px;font:600 12px var(--f-b);letter-spacing:.08em;text-transform:uppercase;color:#aab1bd}
.f2 select{font:600 17px var(--f-b);background:#0b0e13;color:var(--paper);border:1px solid #ffffff30;border-radius:12px;padding:12px;min-height:48px}
.cfg .kv div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #ffffff1c}
.cfg .kv span{color:#c7ccd4}.cfg .kv b{color:var(--paper);text-align:right}
.cfg .kv div:last-child b{color:var(--gold);font-size:22px}
.trips{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:18px 0}
.trip{display:flex;gap:10px;align-items:center;background:#ffffff0c;border:1px solid #ffffff1c;border-radius:16px;padding:8px 12px;opacity:0;transform:translateY(8px);animation:mx-in .45s calc(var(--i)*.05s) forwards}
.trip b{display:block;font:700 15px var(--f-b);color:var(--paper)}
.trip span{color:#c7ccd4;font-size:13px}
.trip.more{color:var(--gold);font:700 18px var(--f-d)}
.cfg .note{color:#aab1bd}
.cfg .cta{margin-top:18px}
.sumbar{display:none}
@media(max-width:900px){
  .cfg{grid-template-columns:1fr}
  .cfg-stage,.cfg-ctl,.cfg-res{grid-column:1;grid-row:auto;position:static}
  .sumbar{display:flex;position:sticky;top:72px;z-index:6;grid-column:1;justify-content:space-between;gap:8px;background:rgba(13,16,21,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid #ffffff26;border-radius:16px;padding:10px 16px;margin-top:-4px}
  .sumbar span{display:grid}.sumbar small{font:600 11px var(--f-b);letter-spacing:.1em;text-transform:uppercase;color:#aab1bd}
  .sumbar b{font:700 20px var(--f-d);color:var(--gold)}
  .cfg .cta .btn{flex:1 1 100%;justify-content:center}
}
.ticket-wrap .ticket{color:#0d1015}
.ticket .tr{color:#0d1015}

/* price rail */
.rail{display:grid;gap:12px}
.rail .seg{justify-self:start;margin-bottom:8px;background:#fff;border-color:#00000020}
.rail .seg button{color:var(--ink)}
.rail .seg button[aria-pressed=true]{color:#111}
.rbar{display:grid;grid-template-columns:96px 1fr 120px;gap:14px;align-items:center;text-decoration:none;background:#fff;color:var(--ink);border-radius:16px;padding:12px 18px;border:1px solid #00000012;transition:transform .2s,box-shadow .2s}
.rbar:hover{transform:translateX(6px);box-shadow:0 10px 30px #0002}
.rl b{font:700 28px var(--f-d)}.rl i{display:block;font-style:normal;color:#5a626e;font-size:13px}
.rt{height:14px;border-radius:99px;background:#0000000f;overflow:hidden}
.rf{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#f2b705,#ff8a00);transform-origin:left;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.rail.pre .rf{transform:scaleX(0)!important}
.rv2{font:700 22px var(--f-d);text-align:right}
@media(max-width:560px){.rbar{grid-template-columns:70px 1fr 92px;gap:10px;padding:10px 12px}.rv2{font-size:18px}}

/* pointer light */
.grade,.card,.site{--mx:50%;--my:50%}
.grade:before,a.card:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(240px circle at var(--mx) var(--my),rgba(242,183,5,.18),transparent 70%);opacity:0;transition:opacity .3s}
.grade:hover:before,a.card:hover:before{opacity:1}

.site{color:var(--paper)}
.paper .btn.ghost,.paper2 .btn.ghost{color:var(--ink);border-color:#00000055}
.paper .btn.ghost:hover,.paper2 .btn.ghost:hover{color:#6b4e00;border-color:#6b4e00}
.paper .panel .btn.ghost,.paper2 .panel .btn.ghost{color:var(--paper);border-color:#ffffff4d}
.paper .chip,.paper2 .chip{color:var(--ink)}
.paper .card .num,.paper2 .card .num{color:#6b4e00}

/* quick estimate */
.hero .shot.qe{aspect-ratio:auto;max-height:none;background:#12171e;display:flex;flex-direction:column}
.hero .shot.qe img{height:190px;flex:none}
.qe-body{padding:20px 22px 22px;display:grid;gap:14px}
.qe-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;color:#c7ccd4}
.qe-row b{font:700 44px/1 var(--f-d);color:var(--paper)}
.qe-body input[type=range]{width:100%;accent-color:var(--gold);height:30px}
.qe-body .seg{justify-self:start}
.qe-cost{font:700 20px var(--f-d);color:var(--paper)}
.qe-cost b{font-size:38px;color:var(--gold)}
.qe-cost small{display:block;font:500 13px var(--f-b);color:#aab1bd}
.hero .badge{display:none}
.stage-num .sub{text-align:left}

/* ===== v5: articles, rules, video backgrounds ===== */
.bgv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:.95}
.hero .bgv{opacity:1}
.hero:after{z-index:0}
.cta-band .bgv{z-index:-1}
.cta-band:before{z-index:0}
.cta-band .wrap{position:relative;z-index:1}
.prose h3{font-size:clamp(20px,2vw,26px);margin:26px 0 10px}
.prose table{margin:18px 0 26px;min-width:0;background:#fff;border-radius:12px;overflow:hidden;font-size:15px;color:var(--ink)}
.prose td,.prose th{padding:11px 14px}
.prose td:first-child{font:600 16px var(--f-b)}
.prose ol{padding-left:22px}
.paper .prose li,.paper .prose p{color:#1f252d}
.paper .prose a,.paper2 .prose a{color:#6b4e00;text-decoration-thickness:2px;text-underline-offset:3px}
.formula{font:700 24px var(--f-d);letter-spacing:.04em;background:var(--ink);color:var(--gold);padding:18px 22px;border-radius:14px;display:inline-block}
.callout{border-left:5px solid #c0392b;background:#fff;color:#1f252d;padding:16px 20px;border-radius:0 14px 14px 0;margin:26px 0}
.callout.tip{border-color:var(--gold)}
.callout b{color:#111}
.callout a{color:#6b4e00}
.rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.rule{background:var(--ink);color:var(--paper);border-radius:var(--r);padding:30px;position:relative;overflow:hidden}
.rule span{font:700 90px/1 var(--f-d);color:#ffffff10;position:absolute;right:16px;top:6px}
.rule h3{color:var(--gold);margin-bottom:10px}
.rule p{color:#c7ccd4;margin-bottom:16px}
.rule a{color:var(--gold);font-weight:700;text-decoration:none}
.card.art{padding:0;display:flex;flex-direction:column}
.card.art .thumb{aspect-ratio:16/10;overflow:hidden}
.card.art .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.card.art:hover .thumb img{transform:scale(1.06)}
.card.art h3,.card.art p,.card.art .more{margin-left:22px;margin-right:22px}
.card.art h3{margin-top:18px;font-size:22px}
.card.art p{font-size:15px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.card.art .more{margin-bottom:22px}
.toc{position:sticky;top:96px;align-self:start;background:var(--ink);color:var(--paper);border-radius:var(--r);padding:24px}
.toc ol{padding-left:20px;margin:14px 0}
.toc li{margin:8px 0;color:#c7ccd4}
.toc a{text-decoration:none;color:#e4e7ec}.toc a:hover{color:var(--gold)}
.toc-cta{display:grid;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid #ffffff22}
.toc-cta .btn{justify-content:center}
.toc-cta .btn.ghost{color:var(--paper);border-color:#ffffff4d}
@media(max-width:900px){.toc{position:static}}
.progress{position:fixed;left:0;top:0;right:0;height:4px;z-index:60}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold),#ff8a00)}
.prose.art h2{scroll-margin-top:100px}
.faq-list details p{color:#3b424d}

/* quick estimate strip */
.hero{min-height:92svh}
.hero .wrap{grid-template-columns:1fr}
.hero:after{background:linear-gradient(90deg,rgba(13,16,21,.92),rgba(13,16,21,.55) 55%,rgba(13,16,21,.1)),linear-gradient(0deg,rgba(13,16,21,.85),transparent 35%)}
.qe-strip{background:var(--gold);padding:0}
.qe-strip .wrap{padding-block:0}
.qe{display:grid;grid-template-columns:auto 1.2fr auto auto auto;gap:22px;align-items:center;padding:20px 0;color:#111}
.qe .eyebrow{color:#3a2d00}.qe .eyebrow:before{background:#111}
.qe-t p{font:700 22px var(--f-d);text-transform:uppercase}
.qe .qe-row{display:flex;justify-content:space-between;color:#111}
.qe .qe-row b{font:700 36px/1 var(--f-d);color:#111}
.qe input[type=range]{width:100%;accent-color:#111}
.qe .seg{background:#00000014;border-color:#00000030}
.qe .seg button{color:#111}.qe .seg button[aria-pressed=true]{background:#111;color:var(--gold)}
.qe .qe-cost{color:#111}.qe .qe-cost b{color:#111;font-size:34px}.qe .qe-cost small{color:#3a2d00}
.qe .btn.gold{background:#111;color:var(--gold)}.qe .btn.gold:hover{background:#000}
@media(max-width:1000px){.qe{grid-template-columns:1fr 1fr;padding:22px 0}.qe-t,.qe-r{grid-column:1/-1}}
@media(max-width:560px){.qe{grid-template-columns:1fr}.qe .btn{justify-content:center}}
@media(max-width:900px){
  .hero{padding-top:calc(56.25vw + 96px);min-height:0;align-items:flex-start}
  .hero .bgv{inset:0 0 auto 0;height:calc(56.25vw + 110px);-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
  .hero:after{background:none}
}

.band>.bgv,.cta-band .bgv{z-index:-2}
.cta-band:before{z-index:-1}

/* contacts */
.status{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1px solid #00000020;border-radius:99px;padding:10px 18px;font-weight:700;color:var(--ink);margin-bottom:22px}
.status:before{content:"";width:12px;height:12px;border-radius:50%;background:#9aa2af}
.status[data-open="1"]:before{background:#1fb86a;box-shadow:0 0 0 0 #1fb86a88;animation:pulse 1.8s infinite}
.status[data-open="0"]:before{background:#c0392b}
@keyframes pulse{70%{box-shadow:0 0 0 12px #1fb86a00}100%{box-shadow:0 0 0 0 #1fb86a00}}
.big-c{font:700 clamp(24px,2.6vw,34px)/1.1 var(--f-d);color:var(--ink)}
.big-c.sm{font-size:clamp(20px,2vw,26px)}
.ct-cards .card{background:#fff}
.map-sec{background:var(--ink);padding-block:clamp(56px,7vw,100px)}
.mapgrid{display:grid;grid-template-columns:1.3fr .7fr;gap:20px}
@media(max-width:900px){.mapgrid{grid-template-columns:1fr}}
.mapbox{border-radius:var(--r);overflow:hidden;border:1px solid #ffffff26;min-height:420px;background:#12171e}
#map{display:block;width:100%;height:100%;min-height:480px;border:0;background:#12171e}
.plist{list-style:none;padding:0;display:grid;gap:10px;align-content:start}
.plist li{display:flex;gap:14px;background:var(--ink2);border:2px solid #ffffff1c;border-radius:16px;padding:16px;cursor:pointer;transition:.2s;color:var(--paper)}
.plist li:hover,.plist li.on{border-color:var(--gold)}
.plist .pn{font:700 28px var(--f-d);color:var(--gold);min-width:36px}
.plist b{display:block;font-size:17px}.plist small{color:#aab1bd}
.plist .chips{margin-top:10px}
.plist .chip{cursor:pointer;color:var(--paper);background:#ffffff10;border:1px solid #ffffff1c;font:600 13px var(--f-b)}
.plist a.chip:hover,.plist button.chip:hover{border-color:var(--gold);color:var(--gold)}
.gal-note{margin-top:14px;font-size:13px;color:#8b94a3}

ul.plain{padding-left:20px;display:grid;gap:8px;color:#c7ccd4;font-size:15px}
ul.plain a{color:var(--gold)}
.check{counter-reset:c;padding:0;display:grid;gap:10px}
.check li{list-style:none;counter-increment:c;background:#fff;color:#1f252d;border-radius:14px;padding:14px 16px 14px 56px;position:relative;font-size:16px}
.check li:before{content:counter(c);position:absolute;left:14px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--gold);display:grid;place-items:center;font:700 14px var(--f-b)}
.gloss{display:grid;gap:0}
.gloss dt{font:700 22px var(--f-d);text-transform:uppercase;margin-top:18px;color:var(--ink)}
.gloss dd{margin:4px 0 0;color:#1f252d}
section>.wrap>.tbl{margin-bottom:6px}
.tbl,.tbl td{color:var(--ink)}.tbl a{color:#6b4e00}
.tbl td:first-child{font:700 18px/1.2 var(--f-d);text-transform:none;letter-spacing:.01em}.tbl td{font-size:15px}
