/* ---------- loader ---------- */
#loader{
  position:fixed; inset:0; z-index:200; background:var(--brand-deep); color:#fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.75rem;
  transition:transform 850ms cubic-bezier(0.65,0,0.35,1);
}
#loader.exit{ transform:translateY(-105%); }

.power-loader{ position:relative; width:6.5rem; height:6.5rem; display:grid; place-items:center; }
.power-ring{ position:absolute; inset:0; width:100%; height:100%; transform:rotate(-90deg); }
.power-ring-track{ fill:none; stroke:rgba(255,255,255,0.15); stroke-width:3; }
.power-ring-fill{
  fill:none; stroke:#ffffff; stroke-width:3; stroke-linecap:round;
  stroke-dasharray:339.292; stroke-dashoffset:339.292;
}
.power-btn{
  width:4.25rem; height:4.25rem; border-radius:50%; display:grid; place-items:center;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.25);
  color:#fff; opacity:0.7;
  transition:transform 140ms cubic-bezier(0.32,0,0.67,0), background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease, opacity 400ms ease;
}
.power-btn svg{ width:1.75rem; height:1.75rem; }
.power-loader.is-charged .power-btn{ opacity:1; }
.power-loader.is-pressed .power-btn{
  transform:scale(0.8);
  background:var(--brand); border-color:var(--brand); opacity:1;
  box-shadow:0 0 2.5rem 0.5rem rgba(200,32,44,0.65);
}
.loader-wordmark{ font-size:1.35rem; opacity:0; transform:translateY(0.75rem); transition:opacity 500ms cubic-bezier(0.23,1,0.32,1), transform 500ms cubic-bezier(0.23,1,0.32,1); }
.loader-wordmark.is-visible{ opacity:1; transform:translateY(0); }

/* ---------- header (persistent floating bar) ---------- */
header.site-header{
  position:fixed; top:var(--page-inset); left:var(--page-inset); right:var(--page-inset); z-index:50;
  isolation:isolate; overflow:hidden;
  display:flex; align-items:center; justify-content:space-between;
  padding:0.75rem 1.25rem;
  border-radius:var(--radius-pill);
  border:1px solid rgba(255,255,255,0.14);
  background:
    linear-gradient(135deg, rgba(255,255,255,0.14), rgba(255,255,255,0.02)),
    rgba(8,8,8,0.52);
  backdrop-filter:blur(22px) saturate(160%); -webkit-backdrop-filter:blur(22px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.16), 0 0.75rem 2rem rgba(0,0,0,0.18);
  font-size:0.75rem; color:#fff;
  transition:background-color 240ms ease, box-shadow 240ms ease;
}
@media (min-width:640px){ header.site-header{ padding:0.85rem 1.5rem; } }
header.site-header.is-scrolled{
  background:
    linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.02)),
    rgba(8,8,8,0.74);
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.14), 0 0.9rem 2.5rem rgba(0,0,0,0.3);
}
@media (prefers-reduced-transparency: reduce){
  header.site-header{ background:rgba(10,10,10,0.92); backdrop-filter:none; -webkit-backdrop-filter:none; }
}
.hdr-nav{ flex:1; display:none; gap:2rem; }
@media (min-width:1024px){ .hdr-nav{ display:flex; } }
.hdr-nav a{ color:rgba(255,255,255,0.9); transition:color 200ms ease; }
.hdr-nav a:hover{ color:#fff; }
.hdr-brand{ flex:1; display:flex; justify-content:flex-start; font-size:1.15rem; }
@media (min-width:1024px){ .hdr-brand{ justify-content:center; } }
.hdr-right{ flex:1; display:flex; justify-content:flex-end; align-items:center; gap:1rem; }
.hdr-visit{ display:none; text-transform:uppercase; letter-spacing:0.06em; }
@media (min-width:640px){ .hdr-visit{ display:inline; } }
.hdr-visit:hover{ text-decoration:underline; }
.burger{
  width:2.5rem; height:2.5rem; display:grid; place-items:center; border-radius:var(--radius-pill);
  background:rgba(255,255,255,0.15); backdrop-filter:blur(8px); transition:background-color 200ms ease, transform 160ms cubic-bezier(0.23,1,0.32,1);
}
.burger:hover{ background:rgba(255,255,255,0.25); }
.burger:active{ transform:scale(0.94); }
.burger-lines{ display:flex; flex-direction:column; gap:5px; }
.burger-lines span{
  width:1rem; height:1px; background:#fff; display:block; transform-origin:center;
  transition:transform 320ms cubic-bezier(0.23,1,0.32,1), opacity 200ms ease;
}
.burger.is-open .burger-lines span:first-child{ transform:translateY(3px) rotate(45deg); }
.burger.is-open .burger-lines span:last-child{ transform:translateY(-3px) rotate(-45deg); }

/* ---------- hero pin / zoom-out-to-boxed scroll effect ---------- */
.hero-pin{ position:relative; height:calc(100svh + 65vh); }
.hero{
  position:sticky; top:0; z-index:1;
  background:var(--brand-deep); color:#fff; isolation:isolate; overflow:hidden;
  height:100svh; min-height:36rem;
  margin:calc(var(--page-inset) * -1) calc(var(--page-inset) * -1) 0;
  clip-path:inset(0px round 0px);
  display:flex; flex-direction:column;
}
.hero-plate{ position:absolute; inset:0; z-index:-10; overflow:hidden; }
.hero-plate-inner{ position:absolute; left:0; right:0; top:-16%; height:132%; width:100%; }
.hero-schematic{ position:absolute; inset:0; width:100%; height:100%; }
.hero-globe{
  position:absolute; top:58%; left:68%; translate:-50% -50%;
  width:min(46vmin, 30rem); height:min(46vmin, 30rem);
  -webkit-mask-image:radial-gradient(circle closest-side, #000 90%, transparent 100%);
  mask-image:radial-gradient(circle closest-side, #000 90%, transparent 100%);
}
@media (max-width:768px){ .hero-globe{ top:52%; left:50%; width:74vmin; height:74vmin; } }
.hero-plate-overlay{
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(10,10,10,0.5), rgba(10,10,10,0.16), rgba(10,10,10,0.72));
}

/* ambient schematic motion */
.hero-schematic .flow-line{ stroke-dasharray:10 14; animation:flow-dash 7s linear infinite; }
.hero-schematic .flow-line:nth-child(2n){ animation-duration:9s; animation-direction:reverse; }
.hero-schematic .flow-line:nth-child(3n){ animation-duration:5.5s; }
@keyframes flow-dash{ to{ stroke-dashoffset:-240; } }

.hero-schematic .pulse-node{ animation:node-pulse 2.8s ease-in-out infinite; transform-origin:center; transform-box:fill-box; }
.hero-schematic .pulse-node:nth-child(3n){ animation-delay:.5s; }
.hero-schematic .pulse-node:nth-child(4n){ animation-delay:1.1s; }
.hero-schematic .pulse-node:nth-child(5n){ animation-delay:1.6s; }
@keyframes node-pulse{ 0%,100%{ opacity:.65; transform:scale(1); } 50%{ opacity:1; transform:scale(1.4); } }

.hero-schematic .pulse-glow{ animation:glow-breathe 6s ease-in-out infinite; transform-origin:center; transform-box:fill-box; }
@keyframes glow-breathe{ 0%,100%{ opacity:.5; transform:scale(1); } 50%{ opacity:.9; transform:scale(1.15); } }

@media (prefers-reduced-motion: reduce){
  .hero-schematic .flow-line, .hero-schematic .pulse-node, .hero-schematic .pulse-glow{ animation:none; }
}

.hero-title-wrap{ padding:6rem 1.5rem 0; }
@media (min-width:640px){ .hero-title-wrap{ padding-top:7rem; padding-left:2.5rem; padding-right:2.5rem; } }
.hero-title{
  font-size:7.5vw; font-weight:500; line-height:0.85;
  letter-spacing:-0.02em;
}
.hero-title-line{ display:block; white-space:nowrap; }
.hero-bottom{
  margin-top:auto; display:flex; flex-direction:column; gap:1.5rem;
  padding:0 1.5rem 2rem;
}
@media (min-width:640px){
  .hero-bottom{ flex-direction:row; align-items:flex-end; justify-content:space-between; padding:0 2.5rem 2.5rem; }
}
.hero-tagline{
  font-size:2.4rem; font-weight:500; text-transform:uppercase; line-height:0.95;
  letter-spacing:-0.01em; color:rgba(255,255,255,0.85);
}
.hero-cluster{ display:flex; align-items:flex-end; gap:1rem; flex-wrap:wrap; }

.capa-slider{ display:none; width:16rem; flex-direction:column; gap:0.75rem; opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
@media (min-width:768px){ .capa-slider{ display:flex; } }
.capa-card{
  display:flex; gap:0.75rem; border-radius:var(--radius-card);
  border:1px solid rgba(255,255,255,0.15); background:rgba(255,255,255,0.1);
  padding:0.75rem; box-shadow:0 0.75rem 2rem rgba(0,0,0,0.35); backdrop-filter:blur(10px);
}
.capa-icon{
  width:3.5rem; height:3.5rem; border-radius:var(--radius-xl); flex:none;
  background:linear-gradient(145deg, rgba(255,255,255,0.16), rgba(255,255,255,0.03));
  display:grid; place-items:center; color:#fff;
}
.capa-icon svg{ width:1.6rem; height:1.6rem; }
.capa-body{ display:flex; flex-direction:column; gap:0.2rem; min-width:0; }
.capa-eyebrow{ font-size:0.7rem; font-weight:500; text-transform:uppercase; letter-spacing:0.08em; }
.capa-title{ font-size:0.7rem; text-transform:uppercase; opacity:0.8; }
.capa-cta{ font-size:0.65rem; text-decoration:underline; margin-top:0.15rem; }

