/* CS// ASSEMBLY SYSTEM v13.1 — pinned opening sequence */
body[data-cs-assembly="strong"]{--assembly-accent:#fff;--assembly-progress:0}
body[data-cs-assembly-world="automotive"]{--assembly-accent:#ff3d17;--assembly-bg:#050607}
body[data-cs-assembly-world="architecture"]{--assembly-accent:#c9ff55;--assembly-bg:#0a0b09}
body[data-cs-assembly-world="home"]{--assembly-accent:#bfa17a;--assembly-bg:#eee9df}
.cs-assembly-spacer{height:230vh;background:var(--assembly-bg);position:relative;z-index:1}
.cs-assembly-stage{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden;background:var(--assembly-bg);opacity:1;transition:opacity .25s linear}
.cs-assembly-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.cs-assembly-stage:before{content:"";position:absolute;inset:0;z-index:2;background:radial-gradient(circle at 68% 48%,transparent 0 22%,rgba(0,0,0,.07) 46%,rgba(0,0,0,.58) 100%),linear-gradient(90deg,rgba(0,0,0,.64),transparent 52%)}
body[data-cs-assembly-world="home"] .cs-assembly-stage:before{background:radial-gradient(circle at 68% 48%,transparent 0 23%,rgba(238,233,223,.05) 48%,rgba(33,29,24,.18) 100%),linear-gradient(90deg,rgba(238,233,223,.78),transparent 55%)}
.cs-assembly-title{position:fixed;left:clamp(26px,6vw,90px);top:50%;transform:translateY(-50%);z-index:45;pointer-events:none;max-width:min(520px,43vw);color:#fff}
body[data-cs-assembly-world="home"] .cs-assembly-title{color:#211d18}
.cs-assembly-title small{display:block;margin-bottom:18px;color:var(--assembly-accent);font:700 9px/1.3 ui-monospace,monospace;letter-spacing:.2em;text-transform:uppercase}
.cs-assembly-title strong{display:block;font:800 clamp(42px,6.3vw,104px)/.84 Inter,Arial,sans-serif;letter-spacing:-.065em;text-transform:uppercase}
.cs-assembly-title em{display:block;margin-top:22px;font:500 11px/1.5 ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.52);font-style:normal}
body[data-cs-assembly-world="home"] .cs-assembly-title em{color:rgba(33,29,24,.55)}
.cs-assembly-label{position:fixed;right:30px;bottom:32px;z-index:46;width:min(340px,40vw);color:rgba(255,255,255,.72);text-align:right;pointer-events:none;font:600 8px/1.45 ui-monospace,monospace;letter-spacing:.18em;text-transform:uppercase}
body[data-cs-assembly-world="home"] .cs-assembly-label{color:rgba(33,29,24,.62)}
.cs-assembly-label b{display:block;margin-bottom:7px;color:var(--assembly-accent);font-size:9px}.cs-assembly-meter{height:1px;margin-top:11px;background:rgba(255,255,255,.18);position:relative}
body[data-cs-assembly-world="home"] .cs-assembly-meter{background:rgba(33,29,24,.18)}
.cs-assembly-meter span{position:absolute;left:0;top:0;height:100%;width:calc(var(--assembly-progress)*100%);background:var(--assembly-accent);box-shadow:0 0 14px color-mix(in srgb,var(--assembly-accent) 48%,transparent)}
.cs-assembly-callout{position:fixed;right:30px;top:50%;z-index:46;transform:translateY(-50%);display:grid;gap:8px;pointer-events:none}.cs-assembly-callout i{width:30px;height:1px;background:rgba(255,255,255,.15);transition:.18s ease}.cs-assembly-callout i.on{width:54px;background:var(--assembly-accent)}
body[data-cs-assembly-world="home"] .cs-assembly-callout i{background:rgba(33,29,24,.16)}
body.cs-assembly-active .nav,body.cs-assembly-active .pro-header,body.cs-assembly-active .cs-portfolio-back,body.cs-assembly-active .pro-back,body.cs-assembly-active .cs-a11y-trigger{z-index:70!important}
body.cs-assembly-active .cs-story-stage,body.cs-assembly-active .cs-v10-moment,body.cs-assembly-active .cs-depth-ghost{opacity:0!important}
body.cs-assembly-finished .cs-assembly-stage,body.cs-assembly-finished .cs-assembly-title,body.cs-assembly-finished .cs-assembly-label,body.cs-assembly-finished .cs-assembly-callout{opacity:0;visibility:hidden}
@media(prefers-reduced-motion:reduce){.cs-assembly-spacer{display:none}.cs-assembly-stage,.cs-assembly-title,.cs-assembly-label,.cs-assembly-callout{display:none!important}}
body.cs-a11y-pause .cs-assembly-spacer,body.cs-a11y-simple .cs-assembly-spacer{display:none}
body.cs-a11y-pause .cs-assembly-stage,body.cs-a11y-pause .cs-assembly-title,body.cs-a11y-pause .cs-assembly-label,body.cs-a11y-pause .cs-assembly-callout,body.cs-a11y-simple .cs-assembly-stage,body.cs-a11y-simple .cs-assembly-title,body.cs-a11y-simple .cs-assembly-label,body.cs-a11y-simple .cs-assembly-callout{display:none!important}
@media(max-width:900px){.cs-assembly-spacer{display:none}.cs-assembly-stage,.cs-assembly-title,.cs-assembly-label,.cs-assembly-callout{display:none!important}}

/* v13.2 real-model pass */
body[data-cs-assembly-world="automotive"] .cs-assembly-stage canvas{
  filter:contrast(1.04) saturate(.94)
}
body[data-cs-assembly-world="automotive"] .cs-assembly-title small::after,
body[data-cs-assembly-world="home"] .cs-assembly-title small::after{
  content:" · REAL GLB";
  opacity:.62
}

.cs-v1321-proof{
  position:fixed;left:50%;top:16px;z-index:9999;transform:translateX(-50%);
  padding:7px 11px;border:1px solid var(--assembly-accent,#fff);border-radius:999px;
  background:rgba(5,6,8,.84);color:#fff;backdrop-filter:blur(10px);
  font:700 8px/1 ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;
  pointer-events:none;
}
body[data-cs-assembly-world="home"] .cs-v1321-proof{background:rgba(255,255,255,.9);color:#211d18}
body.cs-assembly-finished .cs-v1321-proof{opacity:0;visibility:hidden}


/* v13.2.3 framing + clean automotive handoff */

/* Keep the old procedural Obsidian machine completely out of sight while
   the real Aventador opening sequence is active. */
body[data-cs-assembly-world="automotive"].cs-assembly-active #obWebgl,
body[data-cs-assembly-world="automotive"].cs-assembly-active #story .machine,
body[data-cs-assembly-world="automotive"].cs-assembly-active #story .telemetry,
body[data-cs-assembly-world="automotive"].cs-assembly-active #story .webgl-status,
body[data-cs-assembly-world="automotive"].cs-assembly-active #story .scene-label{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

/* Give the real-model opening its own opaque visual field while the GLB loads.
   This prevents the original hero car from flashing through before the real car appears. */
body[data-cs-assembly-world="automotive"].cs-assembly-active .cs-assembly-stage{
  background:
    radial-gradient(circle at 72% 58%,rgba(255,61,23,.18),transparent 30%),
    radial-gradient(circle at 70% 46%,rgba(45,55,64,.10),transparent 42%),
    #050607;
}

/* Hawthorne needs breathing room on the right edge. */
body[data-cs-assembly-world="home"].cs-assembly-active .cs-assembly-stage{
  overflow:hidden;
}
