/* FORGE, 3D scroll hero (js/forge.bundle.js, source src3d/forge.js) */
.forge{ position:relative; height:300vh; padding:0; background:#1d1c1a; margin-top:-72px; }
.forge-sticky{ position:sticky; top:0; height:100vh; height:100svh; overflow:hidden; }
.forge-poster, .forge-canvas{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.forge-poster{ object-fit:cover; object-position:70% 50%; }
.forge-canvas{ opacity:0; transition:opacity .8s ease; }
.forge.forge-ready .forge-canvas{ opacity:1; }
.forge-scrim{ position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(100deg, rgba(29,28,26,.9) 0%, rgba(29,28,26,.55) 30%, rgba(29,28,26,0) 55%),
    linear-gradient(to top, rgba(29,28,26,.85) 0%, rgba(29,28,26,0) 30%),
    linear-gradient(to bottom, rgba(29,28,26,.7) 0%, rgba(29,28,26,0) 18%); }
.forge-copy{ position:absolute; left:0; right:0; bottom:clamp(40px,9vh,96px); z-index:3; will-change:opacity,transform; }
.forge-copy > *{ max-width:560px; }
.forge-copy h1{ margin:.55em 0 .5em; font-size:clamp(2.4rem, 4vw + 1rem, 4.4rem); line-height:1.02; color:var(--cream); letter-spacing:-.01em; }
.forge-copy .hero-actions{ max-width:none; }
.forge-labels{ position:absolute; inset:0; z-index:2; pointer-events:none; }
.forge-label{ position:absolute; left:0; top:0; opacity:0; text-shadow:0 1px 10px rgba(0,0,0,.85), 0 0 2px rgba(0,0,0,.6); width:230px; padding-left:74px; margin-top:-14px; will-change:transform,opacity; font-size:.82rem; line-height:1.35; color:var(--mist); }
.forge-label::before{ content:""; position:absolute; left:6px; top:14px; width:60px; height:1px; background:linear-gradient(90deg,var(--gold),rgba(213,176,98,.25)); }
.forge-label::after{ content:""; position:absolute; left:-3px; top:10px; width:9px; height:9px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px rgba(213,176,98,.18), 0 0 14px rgba(255,190,90,.8); }
.forge-label.left{ padding-left:0; padding-right:74px; margin-left:-230px; text-align:right; }
.forge-label.left::before{ left:auto; right:6px; background:linear-gradient(270deg,var(--gold),rgba(213,176,98,.25)); }
.forge-label.left::after{ left:auto; right:-3px; }
.forge-label .n{ display:block; font-family:'IBM Plex Mono',monospace; font-size:.68rem; letter-spacing:.18em; color:var(--gold); }
.forge-label b{ display:block; font-family:'Poppins',sans-serif; font-size:.95rem; font-weight:600; color:var(--cream); }
.forge-label i{ font-style:normal; }
.forge-captions{ position:absolute; left:0; right:0; bottom:clamp(36px,8vh,80px); z-index:3; pointer-events:none; }
.forge-caption{ position:absolute; bottom:0; max-width:34ch; opacity:0; font-family:'Poppins',sans-serif; font-weight:600; font-size:clamp(1.15rem,1vw + .8rem,1.6rem); line-height:1.3; color:var(--cream); }
.forge-caption .eyebrow{ display:flex; margin-bottom:.8em; font-weight:400; }
.forge-hint{ position:absolute; right:clamp(20px,4vw,56px); bottom:clamp(40px,9vh,96px); z-index:3; display:flex; align-items:center; gap:.8em; font-family:'IBM Plex Mono',monospace; font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--mist); }
.forge-hint span{ width:1px; height:42px; background:linear-gradient(var(--gold),transparent); animation:forge-hint 1.8s ease-in-out infinite; transform-origin:top; }
@keyframes forge-hint{ 0%{transform:scaleY(0);} 50%{transform:scaleY(1);} 100%{transform:scaleY(0);} }
.forge.forge-static, .forge.forge-reduced{ height:auto; }
.forge.forge-static .forge-sticky, .forge.forge-reduced .forge-sticky{ position:relative; height:min(100svh,860px); }
.forge.forge-static :is(.forge-labels,.forge-captions,.forge-hint), .forge.forge-reduced :is(.forge-labels,.forge-captions,.forge-hint){ display:none; }
@media (max-width:760px){
  .forge{ height:250vh; }
  .forge-poster{ object-position:62% 30%; }
  .forge-scrim{ background:linear-gradient(to top, rgba(29,28,26,.96) 0%, rgba(29,28,26,.7) 38%, rgba(29,28,26,0) 62%), linear-gradient(to bottom, rgba(29,28,26,.6) 0%, rgba(29,28,26,0) 16%); }
  .forge-copy{ bottom:28px; }
  .forge-copy h1{ font-size:clamp(2.1rem, 9vw, 2.8rem); }
  .forge-copy .hero-sub{ font-size:.95rem; }
  .forge-copy .hero-actions{ gap:.7rem; margin-top:1.4rem; }
  .forge-copy .btn{ padding:.8em 1.2em; font-size:.85rem; }
  .forge-hint{ display:none; }
  .forge-label{ width:150px; padding-left:40px; font-size:.72rem; }
  .forge-label::before{ width:30px; }
  .forge-label.left{ padding-right:40px; margin-left:-150px; }
  .forge-label i{ display:none; }
  .forge-label b{ font-size:.82rem; }
}
