/* Build hero */
.build{position:relative;height:1100vh;background:#020a16}
.build-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;color:#fff}
#buildCanvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.build-fallback{position:absolute;inset:0;background:center/cover no-repeat;display:none}
.no-webgl .build-fallback{display:block}
.no-webgl .build{height:100vh}
.build-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.45) 0%,rgba(0,0,0,.08) 45%,transparent 70%),linear-gradient(0deg,rgba(0,0,0,.5) 0%,transparent 35%),linear-gradient(180deg,rgba(0,0,0,.35),transparent 22%)}
.build-caps{position:absolute;left:5vw;bottom:clamp(7rem,17vh,10rem);width:min(560px,88vw);pointer-events:none}
.build-cap{position:absolute;left:0;bottom:0;width:100%;opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .7s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.build-cap.on{opacity:1;transform:none;pointer-events:auto}
.build-cap h1,.build-cap h2{font-size:clamp(2.6rem,6.2vw,5.4rem);text-transform:uppercase;letter-spacing:.01em;line-height:.95;margin:0 0 .9rem;text-shadow:0 4px 30px rgba(0,0,0,.35)}
.build-cap em{text-transform:none;color:var(--gold);font-size:1.08em}
.build-cap p{font-size:clamp(.95rem,1.4vw,1.1rem);max-width:440px;opacity:.9;margin:0;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.cap-btns{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.3rem}
.cap-btns .btn-ghost{color:#fff}
.build-meta{position:absolute;left:5vw;bottom:2.2rem;display:flex;align-items:center;gap:1.6rem;font-size:.8rem}
.pct span{display:block;opacity:.65;letter-spacing:.14em;text-transform:uppercase;font-size:.66rem}
.pct b{font-family:var(--serif);font-size:2rem;font-weight:500;color:var(--gold);line-height:1}
.watch{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:.55rem 1rem;backdrop-filter:blur(6px);background:rgba(255,255,255,.06);transition:.2s}
.watch:hover{background:rgba(255,255,255,.18)}
.rail{position:absolute;right:2.2vw;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:.15rem}
.rail button{all:unset;cursor:pointer;display:flex;align-items:center;justify-content:flex-end;gap:.6rem;padding:.32rem 0;color:rgba(255,255,255,.55);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.rail button i{font-style:normal;font-variant-numeric:tabular-nums;width:1.6rem;text-align:right}
.rail button span{opacity:0;transform:translateX(6px);transition:.3s}
.rail button:after{content:"";width:22px;height:2px;background:currentColor;opacity:.6;transition:.3s}
.rail button.done{color:rgba(255,255,255,.8)}
.rail button.on{color:var(--gold)}
.rail button.on:after{width:44px;opacity:1}
.rail button.on span,.rail:hover button span{opacity:1;transform:none}
.rail button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.scroll-hint{position:absolute;left:50%;bottom:2.2rem;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:.6rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;opacity:.85;transition:opacity .5s}
.scroll-hint span{width:24px;height:38px;border:2px solid rgba(255,255,255,.7);border-radius:14px;position:relative}
.scroll-hint span:after{content:"";position:absolute;left:50%;top:7px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:#fff;animation:wheel 1.6s infinite}
@keyframes wheel{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(12px)}}
.scroll-hint.hide{opacity:0}
@media (max-width:760px){
  .rail{right:auto;left:5vw;top:auto;bottom:6.1rem;transform:none;flex-direction:row;gap:5px}
  .rail button{padding:0}.rail button i,.rail button span{display:none}.rail button:after{width:16px}.rail button.on:after{width:30px}
  .build-caps{bottom:9.6rem}
  .build-meta{bottom:1.6rem}
  .scroll-hint{display:none}
  .build-vignette{background:linear-gradient(0deg,rgba(0,0,0,.7) 0%,rgba(0,0,0,.2) 45%,transparent 65%),linear-gradient(180deg,rgba(0,0,0,.4),transparent 20%)}
}

/* models rail */
.models-rail{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.model-card{position:relative;display:block;border-radius:var(--r);overflow:hidden;text-decoration:none;aspect-ratio:4/5;color:#fff}
.model-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s}
.model-card:hover img{transform:scale(1.06)}
.model-card div{position:absolute;inset:auto 0 0 0;padding:1.6rem;background:linear-gradient(0deg,rgba(0,20,26,.92),transparent)}
.model-card span{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.model-card h3{font-size:2rem;margin:.2rem 0}
.model-card p{margin:0;font-size:.88rem;opacity:.85}
@media(max-width:900px){.models-rail{grid-template-columns:1fr;}.model-card{aspect-ratio:4/3}}
.comm-card{position:relative;display:block;border-radius:var(--r);overflow:hidden;text-decoration:none;color:#fff;aspect-ratio:3/4}
.comm-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1s}
.comm-card:hover img{transform:scale(1.06)}
.comm-card div{position:absolute;inset:auto 0 0 0;padding:1.3rem;background:linear-gradient(0deg,rgba(0,20,26,.9),transparent)}
.comm-card h3{margin:0;font-size:1.6rem}.comm-card span{font-size:.82rem;opacity:.85}
