/* ============================================================
   VOLKEN LABS · design system
   Cinematic dark · luminous signal accents · butter motion
   ============================================================ */

:root{
  --bg: #05070A;
  --bg-2: #090D13;
  --panel: rgba(255,255,255,.025);
  --line: rgba(255,255,255,.08);
  --line-soft: rgba(255,255,255,.05);
  --text: #EDF1F5;
  --muted: #93A0AD;
  --dim: #5C6873;
  --acc-1: #7DD3FC;   /* signal sky */
  --acc-2: #34D399;   /* signal green */
  --grad: linear-gradient(100deg, var(--acc-1), var(--acc-2));
  --font-d: "Space Grotesk", "Inter", sans-serif;
  --font-b: "Inter", sans-serif;
  --font-s: "Instrument Serif", Georgia, serif;
  --ease: cubic-bezier(.22,1,.36,1);
  --nav-h: 72px;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:auto; }
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }

body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-b);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

/* grain */
body::after{
  content:""; position:fixed; inset:0; z-index:3; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
}

::selection{ background:rgba(52,211,153,.28); color:#fff; }

h1,h2,h3,h4{ font-family:var(--font-d); font-weight:600; letter-spacing:-.02em; }
a{ color:inherit; text-decoration:none; }
em.serif{ font-family:var(--font-s); font-style:italic; font-weight:400; letter-spacing:0; }
.grad{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.dim{ color:var(--dim); }

/* ---------- loader ---------- */
.loader{
  position:fixed; inset:0; z-index:100; background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .6s var(--ease), visibility .6s;
}
.loader.done{ opacity:0; visibility:hidden; }
.loader-mark{ text-align:center; }
.loader-word{
  font-family:var(--font-d); font-weight:600; font-size:14px; letter-spacing:.55em; color:var(--text);
  display:block; padding-left:.55em; opacity:0; animation:loaderIn .8s var(--ease) .1s forwards;
}
.loader-line{
  display:block; height:1px; margin-top:18px; background:var(--grad);
  transform:scaleX(0); transform-origin:left; animation:loaderLine 1s var(--ease) .3s forwards;
}
@keyframes loaderIn{ from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:none;} }
@keyframes loaderLine{ to{ transform:scaleX(1);} }

/* ---------- scroll progress ---------- */
.scroll-progress{
  position:fixed; top:0; left:0; height:2px; width:100%; z-index:60;
  background:var(--grad); transform:scaleX(0); transform-origin:left;
}

/* ---------- cursor ---------- */
.cursor-dot,.cursor-ring{ position:fixed; top:0; left:0; pointer-events:none; z-index:90; border-radius:50%; }
.cursor-dot{ width:6px; height:6px; background:var(--acc-2); transform:translate(-50%,-50%); }
.cursor-ring{
  width:34px; height:34px; border:1px solid rgba(125,211,252,.45);
  transform:translate(-50%,-50%); transition:width .25s var(--ease), height .25s var(--ease), border-color .25s;
}
.cursor-ring.is-hover{ width:56px; height:56px; border-color:rgba(52,211,153,.8); }
@media (hover:none), (pointer:coarse){ .cursor-dot,.cursor-ring{ display:none; } }

/* ---------- nav ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  transition:background .4s, border-color .4s, backdrop-filter .4s;
  border-bottom:1px solid transparent;
}
.nav.scrolled{
  background:rgba(5,7,10,.72); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-bottom-color:var(--line-soft);
}
.nav-inner{
  max-width:1240px; margin:0 auto; height:var(--nav-h); padding:0 28px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.nav-brand{ display:flex; align-items:center; gap:10px; font-family:var(--font-d); font-weight:600; font-size:17px; letter-spacing:-.01em; }
.brand-mark{ width:22px; height:22px; }
.nav-links{ display:flex; gap:34px; }
.nav-links a{
  font-size:13.5px; color:var(--muted); letter-spacing:.02em; position:relative; transition:color .25s;
}
.nav-links a::after{
  content:""; position:absolute; left:0; bottom:-6px; height:1px; width:100%;
  background:var(--grad); transform:scaleX(0); transform-origin:right; transition:transform .35s var(--ease);
}
.nav-links a:hover{ color:var(--text); }
.nav-links a:hover::after{ transform:scaleX(1); transform-origin:left; }

/* ---------- buttons ---------- */
.btn{
  position:relative; display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-d); font-weight:500; font-size:14px; letter-spacing:.01em;
  padding:13px 26px; border-radius:999px; border:1px solid var(--line);
  transition:transform .3s var(--ease), border-color .3s, background .3s, box-shadow .3s;
  will-change:transform;
}
.btn-primary{
  color:#04110C; background:var(--grad); border-color:transparent;
  box-shadow:0 0 0 0 rgba(52,211,153,0);
}
.btn-primary:hover{ box-shadow:0 8px 40px -8px rgba(52,211,153,.55); }
.btn-ghost{ color:var(--text); background:rgba(255,255,255,.03); }
.btn-ghost:hover{ border-color:rgba(255,255,255,.25); background:rgba(255,255,255,.06); }
.btn-lg{ padding:16px 32px; font-size:15px; }
.btn-xl{ padding:19px 42px; font-size:16px; }
.btn-arrow{ transition:transform .3s var(--ease); }
.btn:hover .btn-arrow{ transform:translateX(4px); }

/* ---------- shared section bits ---------- */
section{ position:relative; }
.section-head{ max-width:1240px; margin:0 auto; padding:0 28px 56px; }
.eyebrow{
  font-family:var(--font-d); font-size:12px; font-weight:500; letter-spacing:.28em; text-transform:uppercase;
  color:var(--acc-2); margin-bottom:18px; display:flex; align-items:center; gap:10px;
}
.eyebrow::before{ content:""; width:24px; height:1px; background:var(--grad); }
.h2{ font-size:clamp(32px,4.6vw,58px); line-height:1.08; }
.section-sub{ max-width:560px; color:var(--muted); margin-top:22px; font-size:16.5px; }

.pulse-dot{
  width:7px; height:7px; border-radius:50%; background:var(--acc-2); display:inline-block;
  box-shadow:0 0 0 0 rgba(52,211,153,.7); animation:pulse 2.2s infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(52,211,153,.6);}
  70%{ box-shadow:0 0 0 9px rgba(52,211,153,0);}
  100%{ box-shadow:0 0 0 0 rgba(52,211,153,0);}
}

/* ---------- hero ---------- */
.hero{ min-height:100vh; display:flex; flex-direction:column; justify-content:center; overflow:hidden; }
.hero-field{ position:absolute; inset:0; width:100%; height:100%; }
.hero-vignette{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(1200px 600px at 50% 110%, rgba(52,211,153,.07), transparent 60%),
    radial-gradient(900px 500px at 85% -10%, rgba(125,211,252,.06), transparent 60%),
    linear-gradient(to bottom, rgba(5,7,10,.4), rgba(5,7,10,0) 30%, rgba(5,7,10,0) 70%, var(--bg));
}
.hero-inner{
  position:relative; z-index:2; max-width:1240px; margin:0 auto; padding:140px 28px 0; width:100%;
}
.hero-kicker{
  display:flex; align-items:center; gap:12px;
  font-family:var(--font-d); font-size:12.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--muted);
  margin-bottom:34px;
}
.hero-title{ font-size:clamp(44px,7.6vw,104px); line-height:1.02; letter-spacing:-.03em; }
.hero-title .line{ display:block; overflow:hidden; padding-bottom:.08em; }
.word-reveal{ display:inline-block; transform:translateY(110%); }
.accent-line .word-reveal{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-sub{ max-width:600px; color:var(--muted); font-size:17.5px; margin-top:34px; }
.hero-cta{ display:flex; gap:16px; flex-wrap:wrap; margin-top:44px; }
.reveal-line{ opacity:0; transform:translateY(24px); }

.hero-foot{
  position:relative; z-index:2; max-width:1240px; margin:0 auto; width:100%;
  padding:0 28px 36px; margin-top:auto;
  display:flex; align-items:flex-end; justify-content:space-between; gap:20px;
}
.hero-meta{ display:flex; align-items:center; gap:14px; font-size:12.5px; letter-spacing:.06em; color:var(--dim); text-transform:uppercase; font-family:var(--font-d); }
.meta-sep{ width:4px; height:4px; border-radius:50%; background:var(--dim); display:inline-block; }
.scroll-hint{ display:flex; flex-direction:column; align-items:center; gap:10px; font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--dim); }
.scroll-hint-line{ width:1px; height:44px; background:linear-gradient(to bottom, transparent, var(--acc-2)); animation:hintDrop 2s var(--ease) infinite; }
@keyframes hintDrop{ 0%{ transform:scaleY(0); transform-origin:top;} 50%{ transform:scaleY(1); transform-origin:top;} 51%{ transform-origin:bottom;} 100%{ transform:scaleY(0); transform-origin:bottom;} }

/* ---------- shift (manifesto) ---------- */
.shift{ padding:0; }
.shift-pin{
  min-height:100vh; display:flex; flex-direction:column; justify-content:center; gap:7vh;
  max-width:1100px; margin:0 auto; padding:120px 28px;
}
.shift-line{
  font-family:var(--font-d); font-weight:500; letter-spacing:-.02em;
  font-size:clamp(26px,3.6vw,46px); line-height:1.18; max-width:980px;
}
.shift-line em.serif{ font-size:1.12em; }

/* ---------- acts ---------- */
.acts{ padding:160px 0 120px; }
.acts-stack{ max-width:1240px; margin:0 auto; padding:0 28px; display:flex; flex-direction:column; gap:26px; }
.act-card{
  position:sticky; top:calc(var(--nav-h) + 28px);
  display:grid; grid-template-columns:110px 1.4fr 1fr; gap:36px; align-items:center;
  background:linear-gradient(160deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
  border:1px solid var(--line); border-radius:24px; padding:54px 50px;
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  box-shadow:0 30px 80px -30px rgba(0,0,0,.6);
  transition:border-color .4s;
}
.act-card:hover{ border-color:rgba(125,211,252,.25); }
.act-num{
  font-family:var(--font-d); font-size:64px; font-weight:700; line-height:1;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; opacity:.9;
}
.act-body h3{ font-size:30px; margin-bottom:14px; }
.act-body p{ color:var(--muted); font-size:16px; max-width:520px; }
.act-tags{ list-style:none; display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.act-tags li{
  font-family:var(--font-d); font-size:12px; letter-spacing:.05em; color:var(--acc-1);
  border:1px solid rgba(125,211,252,.25); border-radius:999px; padding:6px 14px;
  background:rgba(125,211,252,.05);
}
.act-visual{ height:180px; position:relative; }

.blueprint{
  position:absolute; inset:0; border-radius:16px; overflow:hidden;
  background:
    linear-gradient(rgba(125,211,252,.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(125,211,252,.07) 1px, transparent 1px);
  background-size:24px 24px; border:1px solid var(--line-soft);
}
.blueprint::after{
  content:""; position:absolute; width:46%; height:46%; left:27%; top:27%;
  border:1px dashed rgba(52,211,153,.6); border-radius:10px;
  animation:bpPulse 3.5s var(--ease) infinite;
}
@keyframes bpPulse{ 0%,100%{ transform:scale(1); opacity:.85;} 50%{ transform:scale(1.07); opacity:1;} }

.milestones{ position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; padding:0 14%; }
.milestones::before{ content:""; position:absolute; left:10%; right:10%; height:1px; background:var(--line); }
.milestones span{
  width:14px; height:14px; border-radius:50%; border:1.5px solid var(--acc-2); position:relative; background:var(--bg);
}
.milestones span:nth-child(-n+3){ background:var(--acc-2); box-shadow:0 0 18px rgba(52,211,153,.5); }
.milestones span:nth-child(1){ animation:msPop 4s infinite .2s; }
.milestones span:nth-child(2){ animation:msPop 4s infinite .9s; }
.milestones span:nth-child(3){ animation:msPop 4s infinite 1.6s; }
@keyframes msPop{ 0%,100%{ transform:scale(1);} 8%{ transform:scale(1.35);} 16%{ transform:scale(1);} }

.radar{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.radar::before,.radar::after{
  content:""; position:absolute; border-radius:50%; border:1px solid rgba(125,211,252,.18);
}
.radar::before{ width:150px; height:150px; }
.radar::after{ width:96px; height:96px; }
.radar span{
  width:150px; height:150px; border-radius:50%; position:absolute;
  background:conic-gradient(from 0deg, rgba(52,211,153,.4), transparent 28%);
  animation:sweep 3.4s linear infinite;
  -webkit-mask:radial-gradient(circle, transparent 30%, black 31%);
  mask:radial-gradient(circle, transparent 30%, black 31%);
}
@keyframes sweep{ to{ transform:rotate(360deg);} }

/* ---------- console ---------- */
.console-sec{ padding:140px 0; background:linear-gradient(to bottom, transparent, rgba(125,211,252,.02), transparent); }
.console{
  max-width:980px; margin:0 auto; padding:0; border-radius:18px; overflow:hidden;
  border:1px solid var(--line); background:rgba(6,9,13,.85);
  box-shadow:0 40px 120px -40px rgba(0,0,0,.8), 0 0 80px -40px rgba(52,211,153,.25);
}
@media (max-width:1040px){ .console{ margin:0 28px; } }
.console-bar{
  display:flex; align-items:center; gap:16px; padding:14px 20px; border-bottom:1px solid var(--line-soft);
  background:rgba(255,255,255,.02);
}
.console-dots{ display:flex; gap:7px; }
.console-dots span{ width:11px; height:11px; border-radius:50%; background:rgba(255,255,255,.12); }
.console-title{ font-family:var(--font-d); font-size:12.5px; letter-spacing:.08em; color:var(--dim); }
.console-status{
  margin-left:auto; display:flex; align-items:center; gap:8px;
  font-family:var(--font-d); font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--acc-2);
}
.console-feed{
  font-family:"SF Mono", ui-monospace, "Cascadia Mono", Menlo, monospace;
  font-size:13px; line-height:1.5; padding:22px 24px; height:300px; overflow:hidden;
  display:flex; flex-direction:column; justify-content:flex-end; gap:7px;
}
.feed-row{ display:flex; gap:14px; opacity:0; transform:translateY(8px); animation:rowIn .5s var(--ease) forwards; white-space:nowrap; }
@keyframes rowIn{ to{ opacity:1; transform:none;} }
.feed-time{ color:var(--dim); }
.feed-agent{ color:var(--acc-1); }
.feed-msg{ color:#C7D0D9; overflow:hidden; text-overflow:ellipsis; }
.feed-ok{ color:var(--acc-2); }
.console-foot{
  display:flex; justify-content:space-between; padding:12px 20px; border-top:1px solid var(--line-soft);
  font-family:var(--font-d); font-size:11.5px; letter-spacing:.06em; color:var(--dim);
}
.claims{
  max-width:980px; margin:54px auto 0; padding:0 28px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
}
.claim{ border-left:1px solid var(--line); padding-left:18px; }
.claim strong{ display:block; font-family:var(--font-d); font-size:30px; font-weight:600; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.claim span{ font-size:13px; color:var(--muted); }

/* ---------- engage ---------- */
.engage{ padding:160px 0 120px; }
.phases{ max-width:1240px; margin:0 auto; padding:0 28px; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.phase{
  border:1px solid var(--line); border-radius:20px; padding:38px 32px;
  background:linear-gradient(170deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
  transition:transform .45s var(--ease), border-color .45s, box-shadow .45s;
}
.phase:hover{ transform:translateY(-6px); border-color:rgba(52,211,153,.35); box-shadow:0 30px 70px -30px rgba(52,211,153,.25); }
.phase header{ display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.phase-num{ font-family:var(--font-d); font-size:12px; letter-spacing:.26em; text-transform:uppercase; color:var(--acc-2); }
.phase h3{ font-size:24px; }
.phase-tag{
  align-self:flex-start; font-family:var(--font-d); font-size:11.5px; letter-spacing:.08em; color:var(--acc-1);
  border:1px solid rgba(125,211,252,.25); padding:4px 12px; border-radius:999px; background:rgba(125,211,252,.05);
}
.phase p{ color:var(--muted); font-size:15px; }
.phase-line{ margin-top:26px; height:4px; border-radius:4px; background:rgba(255,255,255,.06); position:relative; overflow:hidden; display:flex; }
.phase-line i{ position:absolute; top:0; bottom:0; left:0; width:calc(var(--p,1) * 100%); }
.phase-line i:nth-child(1){ background:rgba(52,211,153,.25);}
.phase-line i:nth-child(2){ background:rgba(52,211,153,.35); width:calc(.5*100% );}
.phase-line i{ border-right:2px solid var(--bg); }
.phase-line i.full{ width:100%; background:rgba(125,211,252,.3); }
.phase-line i.glow{ background:var(--grad); opacity:.8; }
.engage-note{
  max-width:1240px; margin:42px auto 0; padding:0 28px;
  color:var(--dim); font-size:14px; max-width:680px;
}

/* ---------- security ---------- */
.security{ padding:120px 0; }
.security-grid{
  max-width:1240px; margin:0 auto; padding:0 28px;
  display:grid; grid-template-columns:1.2fr 1fr; gap:60px; align-items:center;
}
.security-copy p:not(.eyebrow){ color:var(--muted); margin-top:20px; max-width:560px; }
.security-visual{ display:flex; justify-content:center; }
.shield-rings{ position:relative; width:300px; height:300px; display:flex; align-items:center; justify-content:center; }
.shield-rings span{
  position:absolute; border-radius:50%; border:1px solid rgba(52,211,153,.25); inset:0;
  animation:ringScale 4s var(--ease) infinite;
}
.shield-rings span:nth-child(2){ inset:13%; animation-delay:.6s; border-color:rgba(125,211,252,.25); }
.shield-rings span:nth-child(3){ inset:26%; animation-delay:1.2s; }
@keyframes ringScale{ 0%,100%{ transform:scale(1); opacity:.7;} 50%{ transform:scale(1.05); opacity:1;} }
.shield-core{
  width:84px; height:84px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%, rgba(125,211,252,.9), rgba(52,211,153,.7));
  filter:blur(1px); box-shadow:0 0 80px rgba(52,211,153,.55);
  animation:coreBreath 4s var(--ease) infinite;
}
@keyframes coreBreath{ 0%,100%{ transform:scale(1);} 50%{ transform:scale(1.1);} }

/* ---------- fit / marquee ---------- */
.fit{ padding:120px 0; }
.marquee{ overflow:hidden; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); padding:26px 0; }
.marquee-track{
  display:flex; gap:34px; width:max-content; white-space:nowrap;
  font-family:var(--font-d); font-size:22px; color:var(--muted);
  animation:marquee 36s linear infinite;
}
.marquee-track span:nth-child(even){ color:var(--acc-2); }
@keyframes marquee{ to{ transform:translateX(-50%);} }
.fit-note{ max-width:1240px; margin:40px auto 0; padding:0 28px; color:var(--dim); font-size:14.5px; max-width:640px; }

/* ---------- cta ---------- */
.cta{ padding:180px 0 160px; overflow:hidden; }
.cta-field{
  position:absolute; inset:0;
  background:
    radial-gradient(800px 420px at 50% 100%, rgba(52,211,153,.12), transparent 65%),
    radial-gradient(600px 300px at 50% 110%, rgba(125,211,252,.1), transparent 60%);
}
.cta-inner{ position:relative; max-width:840px; margin:0 auto; padding:0 28px; text-align:center; }
.cta-title{ font-size:clamp(48px,8vw,110px); letter-spacing:-.03em; line-height:1; margin:18px 0 24px; }
.cta-sub{ color:var(--muted); font-size:17px; max-width:480px; margin:0 auto 44px; }
.cta-fine{ color:var(--dim); font-size:12.5px; margin-top:30px; }
.cta .eyebrow{ justify-content:center; }
.cta .eyebrow::before{ display:none; }

/* ---------- footer ---------- */
.footer{ border-top:1px solid var(--line-soft); background:var(--bg-2); }
.footer-inner{
  max-width:1240px; margin:0 auto; padding:70px 28px 50px;
  display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px;
}
.footer-brand p{ color:var(--dim); font-size:14px; max-width:340px; margin-top:16px; }
.footer-col h4{ font-size:13px; letter-spacing:.18em; text-transform:uppercase; color:var(--dim); margin-bottom:18px; font-weight:500; }
.footer-col a{ display:block; color:var(--muted); font-size:14.5px; padding:5px 0; transition:color .25s; }
.footer-col a:hover{ color:var(--text); }
.footer-base{
  max-width:1240px; margin:0 auto; padding:22px 28px 30px;
  display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap;
  border-top:1px solid var(--line-soft); color:var(--dim); font-size:12.5px;
}
.footer-base a{ color:var(--muted); }
.footer-base a:hover{ color:var(--text); }

/* ---------- reveal util ---------- */
[data-reveal]{ opacity:0; transform:translateY(36px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
[data-reveal].in{ opacity:1; transform:none; }

/* ============================================================
   BOOKING PAGE
   ============================================================ */
.book-main{
  min-height:100vh; display:flex; flex-direction:column;
  padding:calc(var(--nav-h) + 40px) 28px 80px; position:relative;
}
.book-bg{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(900px 500px at 80% -10%, rgba(125,211,252,.07), transparent 60%),
    radial-gradient(700px 400px at 10% 110%, rgba(52,211,153,.07), transparent 60%);
}
.book-shell{ position:relative; width:100%; max-width:920px; margin:0 auto; }
.book-head{ text-align:center; margin-bottom:44px; }
.book-head h1{ font-size:clamp(34px,5vw,54px); letter-spacing:-.025em; }
.book-head p{ color:var(--muted); max-width:520px; margin:16px auto 0; }

.steps{
  display:flex; justify-content:center; gap:0; margin:36px auto 40px; max-width:560px;
}
.step{
  flex:1; display:flex; flex-direction:column; align-items:center; gap:10px; position:relative;
  font-family:var(--font-d); font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--dim);
}
.step::before{
  content:attr(data-n); width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); font-size:13px; background:var(--bg-2);
  transition:all .4s var(--ease); position:relative; z-index:2;
}
.step::after{
  content:""; position:absolute; top:17px; left:calc(50% + 24px); right:calc(-50% + 24px); height:1px;
  background:var(--line);
}
.step:last-child::after{ display:none; }
.step.active{ color:var(--text); }
.step.active::before{ border-color:var(--acc-2); color:var(--acc-2); box-shadow:0 0 22px rgba(52,211,153,.35); }
.step.done::before{ content:"✓"; background:var(--grad); color:#04110C; border-color:transparent; }

.panel{
  background:linear-gradient(165deg, rgba(255,255,255,.05), rgba(255,255,255,.015));
  border:1px solid var(--line); border-radius:24px; padding:48px;
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  box-shadow:0 40px 100px -40px rgba(0,0,0,.7);
}
.pane{ display:none; }
.pane.active{ display:block; animation:paneIn .55s var(--ease); }
@keyframes paneIn{ from{ opacity:0; transform:translateY(18px);} to{ opacity:1; transform:none;} }

.fields{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.field{ position:relative; }
.field.wide{ grid-column:1 / -1; }
.field input{
  width:100%; background:rgba(255,255,255,.03); border:1px solid var(--line); border-radius:12px;
  color:var(--text); font-family:var(--font-b); font-size:15px; padding:24px 18px 10px;
  outline:none; transition:border-color .3s, background .3s, box-shadow .3s;
}
.field input:focus{ border-color:rgba(52,211,153,.6); background:rgba(52,211,153,.04); box-shadow:0 0 0 4px rgba(52,211,153,.08); }
.field label{
  position:absolute; left:18px; top:17px; color:var(--dim); font-size:14.5px; pointer-events:none;
  transition:all .25s var(--ease);
}
.field input:focus + label,
.field input:not(:placeholder-shown) + label{
  top:7px; font-size:11px; letter-spacing:.08em; color:var(--acc-2); text-transform:uppercase;
}
.field input.invalid{ border-color:rgba(248,113,113,.6); }
.form-fine{ color:var(--dim); font-size:12px; margin-top:22px; line-height:1.6; }
.form-fine a{ color:var(--muted); text-decoration:underline; }

.pane-actions{ display:flex; justify-content:space-between; align-items:center; margin-top:34px; gap:16px; }
.btn-back{ background:none; border:none; color:var(--dim); font-family:var(--font-d); font-size:14px; cursor:pointer; padding:10px 6px; transition:color .25s; }
.btn-back:hover{ color:var(--text); }
.btn[disabled]{ opacity:.45; pointer-events:none; }

/* windows (slots) */
.windows-intro{ color:var(--muted); font-size:15px; margin-bottom:28px; max-width:560px; }
.windows-intro strong{ color:var(--text); font-weight:600; }
.windows{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.window{
  position:relative; border:1px solid var(--line); border-radius:16px; padding:22px 20px; cursor:pointer;
  background:rgba(255,255,255,.02); transition:all .35s var(--ease); text-align:left; color:var(--text);
  font-family:var(--font-b);
}
.window:hover{ border-color:rgba(125,211,252,.45); transform:translateY(-3px); }
.window.selected{
  border-color:var(--acc-2); background:rgba(52,211,153,.07);
  box-shadow:0 14px 40px -16px rgba(52,211,153,.45);
}
.window .w-day{ font-family:var(--font-d); font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--acc-1); }
.window .w-date{ font-family:var(--font-d); font-size:21px; font-weight:600; margin:8px 0 4px; }
.window .w-time{ color:var(--muted); font-size:14px; }
.window .w-rec{
  position:absolute; top:-9px; right:14px; font-family:var(--font-d); font-size:10px; letter-spacing:.14em;
  text-transform:uppercase; color:#04110C; background:var(--grad); border-radius:999px; padding:3px 10px;
}
.windows-alt{ margin-top:26px; color:var(--dim); font-size:13.5px; }
.windows-alt a{ color:var(--muted); text-decoration:underline; }

/* live availability */
.times-label{
  font-family:var(--font-d); font-size:12px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--dim); margin:28px 0 14px;
}
.times{ display:flex; flex-wrap:wrap; gap:10px; }
.time-pill{
  font-family:var(--font-d); font-size:14px; color:var(--text); cursor:pointer;
  border:1px solid var(--line); border-radius:999px; padding:11px 20px;
  background:rgba(255,255,255,.02); transition:all .3s var(--ease);
}
.time-pill:hover{ border-color:rgba(125,211,252,.5); transform:translateY(-2px); }
.time-pill.selected{
  border-color:transparent; background:var(--grad); color:#04110C; font-weight:600;
  box-shadow:0 10px 30px -10px rgba(52,211,153,.5);
}
.times-empty{ color:var(--dim); font-size:14px; }
.tz-note{ color:var(--dim); font-size:12px; margin-top:14px; font-family:var(--font-d); letter-spacing:.04em; }
.avail-error{ color:#F8A4A4; font-size:14px; margin-top:20px; }
.turnstile-wrap{ margin-top:26px; min-height:0; }
.turnstile-wrap:not(:empty){ margin-top:30px; }
.join-wrap{ margin-top:30px; }
.skeleton{
  border-radius:14px; background:linear-gradient(100deg, rgba(255,255,255,.04) 30%, rgba(255,255,255,.09) 50%, rgba(255,255,255,.04) 70%);
  background-size:200% 100%; animation:shimmer 1.4s linear infinite;
}
.skel-day{ height:110px; }
.skel-time{ height:42px; width:110px; border-radius:999px; display:inline-block; margin-right:10px; }
@keyframes shimmer{ to{ background-position:-200% 0; } }

/* confirm */
.confirm-wrap{ text-align:center; padding:20px 0; }
.confirm-mark{ width:92px; height:92px; margin:0 auto 30px; position:relative; }
.confirm-mark svg{ width:100%; height:100%; }
.confirm-mark .ring{ stroke:rgba(52,211,153,.3); stroke-width:1.5; fill:none; }
.confirm-mark .check{
  stroke:url(#ckg); stroke-width:5; fill:none; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:60; stroke-dashoffset:60; animation:checkDraw .8s var(--ease) .3s forwards;
}
@keyframes checkDraw{ to{ stroke-dashoffset:0; } }
.confirm-wrap h2{ font-size:32px; margin-bottom:14px; }
.confirm-wrap p{ color:var(--muted); max-width:460px; margin:0 auto; }
.confirm-summary{
  margin:34px auto 0; max-width:460px; border:1px solid var(--line); border-radius:16px;
  padding:24px 28px; text-align:left; background:rgba(255,255,255,.02);
}
.confirm-summary div{ display:flex; justify-content:space-between; gap:18px; padding:8px 0; font-size:14.5px; }
.confirm-summary div + div{ border-top:1px solid var(--line-soft); }
.confirm-summary span:first-child{ color:var(--dim); }
.fallback-note{ margin-top:26px; font-size:13.5px; color:var(--dim); }
.fallback-note a{ color:var(--acc-2); }

/* ---------- legal pages ---------- */
.legal-main{ max-width:760px; margin:0 auto; padding:calc(var(--nav-h) + 70px) 28px 100px; }
.legal-main h1{ font-size:clamp(34px,5vw,52px); margin-bottom:10px; }
.legal-date{ color:var(--dim); font-size:13.5px; margin-bottom:46px; }
.legal-main h2{ font-size:21px; margin:42px 0 12px; }
.legal-main p{ color:var(--muted); font-size:15.5px; }
.legal-main a{ color:var(--acc-1); }

/* ---------- responsive ---------- */
@media (max-width:980px){
  .nav-links{ display:none; }
  .console-feed{ font-size:11px; padding:18px 14px; height:260px; }
  .feed-row{ gap:9px; }
  .act-card{ grid-template-columns:1fr; gap:24px; padding:38px 30px; position:relative; top:auto; }
  .act-visual{ display:none; }
  .phases{ grid-template-columns:1fr; }
  .claims{ grid-template-columns:repeat(2,1fr); }
  .security-grid{ grid-template-columns:1fr; }
  .security-visual{ order:-1; }
  .shield-rings{ width:220px; height:220px; }
  .footer-inner{ grid-template-columns:1fr; gap:30px; }
  .windows{ grid-template-columns:1fr; }
  .fields{ grid-template-columns:1fr; }
  .panel{ padding:34px 24px; }
  .hero-foot{ flex-direction:column; align-items:flex-start; gap:26px; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .word-reveal{ transform:none; }
  .reveal-line,[data-reveal]{ opacity:1; transform:none; }
  .marquee-track{ animation:none; }
  .cursor-dot,.cursor-ring{ display:none; }
}

/* ============================================================
   CONCEPT EXTENSIONS · experience layer
   ============================================================ */

/* loader v2 */
.loader-v{ width:54px; height:54px; margin-bottom:20px; }
.loader-vpath{ stroke-dasharray:130; stroke-dashoffset:130; animation:vDraw 1.1s cubic-bezier(.65,0,.35,1) .15s forwards; }
@keyframes vDraw{ to{ stroke-dashoffset:0; } }
.loader-tag{
  display:block; margin-top:14px; font-family:var(--font-s); font-style:italic; font-size:14px;
  color:var(--dim); opacity:0; animation:loaderIn .8s var(--ease) .9s forwards;
}
.loader-mark{ display:flex; flex-direction:column; align-items:center; }

/* aurora */
.hero-aurora{ position:absolute; inset:0; width:100%; height:100%; filter:blur(40px) saturate(1.15); opacity:.55; transform:scale(1.15); }

/* chapter rail */
.rail{
  position:fixed; left:26px; top:50%; transform:translateY(-50%); z-index:55;
  display:flex; flex-direction:column; gap:18px;
}
.rail a{ display:flex; align-items:center; gap:10px; opacity:.45; transition:opacity .3s; }
.rail a i{ width:6px; height:6px; border-radius:50%; background:var(--dim); display:block; transition:all .3s var(--ease); }
.rail a span{
  font-family:var(--font-d); font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--muted);
  opacity:0; transform:translateX(-6px); transition:all .3s var(--ease); white-space:nowrap;
}
.rail a:hover{ opacity:1; }
.rail a:hover span{ opacity:1; transform:none; }
.rail a.active{ opacity:1; }
.rail a.active i{ background:var(--acc-2); box-shadow:0 0 12px rgba(52,211,153,.8); transform:scale(1.4); }
.rail a.active span{ opacity:1; transform:none; }
@media (max-width:1400px){ .rail{ display:none; } }

.chapter-mark{
  font-family:var(--font-s); font-style:italic; font-size:18px; color:var(--dim); margin-bottom:6px;
}

/* horizontal journey */
.horizon{ position:relative; }
.horizon-pin{ overflow:hidden; padding:120px 0 80px; }
.horizon-head{ max-width:1240px; margin:0 auto 64px; padding:0 28px; }
.horizon-track{
  display:flex; gap:26px; padding:0 max(28px, calc((100vw - 1240px)/2 + 28px));
  width:max-content; will-change:transform;
}
.ind-panel{
  width:min(420px, 78vw); flex:none;
  border:1px solid var(--line); border-radius:24px; padding:42px 38px;
  background:linear-gradient(165deg, rgba(255,255,255,.045), rgba(255,255,255,.012));
  transition:border-color .4s;
}
.ind-panel:hover{ border-color:rgba(125,211,252,.3); }
.ind-num{
  font-family:var(--font-d); font-size:13px; letter-spacing:.3em; color:var(--acc-1); margin-bottom:18px;
}
.ind-panel h3{ font-size:34px; letter-spacing:-.02em; margin-bottom:20px; }
.ind-panel ul{ list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px; }
.ind-panel ul li{
  font-family:var(--font-d); font-size:12px; letter-spacing:.04em; color:var(--muted);
  border:1px solid var(--line); border-radius:999px; padding:6px 13px; background:rgba(255,255,255,.02);
}
.ind-panel > p:last-child{ color:var(--muted); font-size:15px; }
.ind-final{
  border-color:rgba(52,211,153,.4);
  background:linear-gradient(165deg, rgba(52,211,153,.08), rgba(125,211,252,.04));
  box-shadow:0 30px 90px -40px rgba(52,211,153,.35);
}
.ind-final h3{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
@media (max-width:980px){
  .horizon-track{ flex-direction:column; width:auto; padding:0 28px; }
  .ind-panel{ width:100%; }
}

/* console tabs */
.console-tabs{
  max-width:980px; margin:0 auto 20px; padding:0 28px;
  display:flex; gap:10px; flex-wrap:wrap;
}
.console-tab{
  font-family:var(--font-d); font-size:13px; letter-spacing:.05em; color:var(--muted); cursor:pointer;
  border:1px solid var(--line); border-radius:999px; padding:9px 18px; background:rgba(255,255,255,.02);
  transition:all .3s var(--ease);
}
.console-tab:hover{ border-color:rgba(125,211,252,.45); color:var(--text); }
.console-tab.active{
  border-color:transparent; background:var(--grad); color:#04110C; font-weight:600;
  box-shadow:0 8px 26px -10px rgba(52,211,153,.5);
}

/* orbit map */
.map-sec{ padding:140px 0 120px; }
.orbit-wrap{ display:flex; flex-direction:column; align-items:center; }
.orbit{ position:relative; width:min(520px, 88vw); aspect-ratio:1; --rA:min(245px, 40vw); --rB:min(160px, 26vw); }
.orbit-core{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:3;
  width:124px; height:124px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; text-align:center;
  font-family:var(--font-d); font-size:15px; font-weight:600; line-height:1.25;
  background:radial-gradient(circle at 35% 30%, rgba(125,211,252,.25), rgba(5,7,10,.9));
  border:1px solid rgba(125,211,252,.45);
  box-shadow:0 0 70px rgba(52,211,153,.3), inset 0 0 30px rgba(125,211,252,.12);
}
.orbit-ring{ position:absolute; inset:0; border:1px dashed rgba(255,255,255,.1); border-radius:50%; }
.orbit-ring::before{ content:""; position:absolute; inset:-1px; border:1px dashed rgba(125,211,252,.14); border-radius:50%; animation:orbitSpin 60s linear infinite; }
.orbit-ring.ring-b{ inset:17%; }
.orbit-ring.ring-b::before{ animation-duration:42s; animation-direction:reverse; }
.ring-a .orbit-node{ transform:rotate(var(--a)) translate(0, calc(-1 * var(--rA))) rotate(calc(-1 * var(--a))); }
.ring-b .orbit-node{ transform:rotate(var(--a)) translate(0, calc(-1 * var(--rB))) rotate(calc(-1 * var(--a))); }
@keyframes orbitSpin{ to{ transform:rotate(360deg); } }
@keyframes nodeCounterA{ to{ transform:rotate(calc(var(--a) - 360deg)) translate(0, calc(-1 * var(--rA))) rotate(calc(360deg - var(--a))); } }
@keyframes nodeCounterB{ to{ transform:rotate(calc(var(--a) + 360deg)) translate(0, calc(-1 * var(--rB))) rotate(calc(-360deg - var(--a))); } }
.orbit-node{
  position:absolute; left:50%; top:50%;
  margin-left:-44px; margin-top:-16px; width:88px; text-align:center;
  font-family:var(--font-d); font-size:12.5px; letter-spacing:.06em; color:var(--text);
  background:rgba(8,12,17,.85); border:1px solid var(--line); border-radius:999px; padding:7px 4px;
  backdrop-filter:blur(6px);
}
.orbit-halo{
  position:absolute; inset:30%; border-radius:50%;
  background:radial-gradient(circle, rgba(52,211,153,.12), transparent 70%);
  animation:coreBreath 5s var(--ease) infinite;
}
.orbit-caption{ margin-top:44px; color:var(--dim); font-size:14px; font-family:var(--font-s); font-style:italic; }

/* bond */
.bond{ padding:150px 0 110px; }
.bond-grid{
  max-width:1240px; margin:0 auto; padding:0 28px;
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
}
.bond-card{
  border:1px solid var(--line); border-radius:20px; padding:38px 32px;
  background:linear-gradient(170deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
  transition:transform .45s var(--ease), border-color .45s;
}
.bond-card:hover{ transform:translateY(-6px); border-color:rgba(52,211,153,.35); }
.bond-card h3{
  font-size:22px; margin-bottom:14px;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.bond-card p{ color:var(--muted); font-size:15px; }
.bond-quote{ max-width:840px; margin:80px auto 0; padding:0 28px; text-align:center; }
.bond-quote .serif{
  font-family:var(--font-s); font-style:italic; font-size:clamp(22px,3vw,30px); line-height:1.5; color:var(--text);
}
@media (max-width:980px){ .bond-grid{ grid-template-columns:1fr; } }

/* ============================================================
   MOBILE EXPERIENCE · same wine, smaller glass
   ============================================================ */

/* touch feedback everywhere */
.btn:active{ transform:scale(.96); }
.time-pill:active, .console-tab:active, .window:active{ transform:scale(.95); }
.ind-panel:active{ border-color:rgba(125,211,252,.45); }

/* orbit: interactive nodes */
.orbit-node{ cursor:pointer; transition:border-color .3s, box-shadow .3s, color .3s; }
.orbit-node.lit{
  border-color:var(--acc-2); color:#fff;
  box-shadow:0 0 24px rgba(52,211,153,.55);
}
.orbit-caption{ transition:opacity .35s var(--ease); max-width:520px; text-align:center; padding:0 28px; }
.orbit-caption.swap{ opacity:0; }

/* chapter chip · thumb-zone wayfinding when the rail is hidden */
.chapter-chip{
  position:fixed; left:50%; bottom:calc(16px + env(safe-area-inset-bottom)); z-index:56;
  transform:translate(-50%, 80px);
  font-family:var(--font-d); font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--text);
  background:rgba(8,12,17,.78); border:1px solid var(--line); border-radius:999px; padding:9px 20px 9px 16px;
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  display:flex; align-items:center; gap:9px;
  transition:transform .5s var(--ease), opacity .5s; opacity:0; pointer-events:none;
}
.chapter-chip::before{
  content:""; width:6px; height:6px; border-radius:50%; background:var(--acc-2);
  box-shadow:0 0 10px rgba(52,211,153,.8);
}
.chapter-chip.show{ transform:translate(-50%, 0); opacity:1; }
@media (min-width:1401px){ .chapter-chip{ display:none; } }

/* swipe hint · only where the journey becomes a carousel */
.swipe-hint{
  display:none; align-items:center; gap:10px; margin:0 28px 18px;
  font-family:var(--font-d); font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--dim);
}
.swipe-chevrons{ display:inline-flex; gap:3px; }
.swipe-chevrons i{
  width:7px; height:7px; border-right:1.5px solid var(--acc-2); border-top:1.5px solid var(--acc-2);
  transform:rotate(45deg); opacity:.25; animation:chev 1.6s infinite;
}
.swipe-chevrons i:nth-child(2){ animation-delay:.2s; }
.swipe-chevrons i:nth-child(3){ animation-delay:.4s; }
@keyframes chev{ 0%,100%{ opacity:.25; transform:rotate(45deg) translate(0,0);} 50%{ opacity:1; transform:rotate(45deg) translate(2px,-2px);} }

@media (max-width:980px){
  /* the journey becomes a swipeable tasting flight */
  .swipe-hint{ display:flex; }
  .horizon-track{
    flex-direction:row; width:auto;
    overflow-x:auto; overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    padding:6px 9vw 26px;
    scrollbar-width:none;
  }
  .horizon-track::-webkit-scrollbar{ display:none; }
  .ind-panel{
    width:82vw; scroll-snap-align:center; scroll-snap-stop:always;
    padding:34px 28px;
  }
  .ind-panel h3{ font-size:28px; }
  .horizon-pin{ padding:90px 0 40px; }
  .horizon-head{ margin-bottom:34px; }

  /* console tabs: one-row swipe */
  .console-tabs{
    flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch;
    scrollbar-width:none; padding-bottom:6px; margin-bottom:14px;
  }
  .console-tabs::-webkit-scrollbar{ display:none; }
  .console-tab{ flex:none; padding:11px 18px; }
}

@media (max-width:700px){
  /* orbit fits the palm, nothing clipped */
  .orbit{ width:92vw; --rA:36vw; --rB:23vw; }
  .orbit-core{ width:96px; height:96px; font-size:13px; }
  .orbit-node{ width:74px; margin-left:-37px; margin-top:-14px; font-size:10.5px; padding:6px 2px; letter-spacing:.03em; }
  .orbit-caption{ margin-top:30px; font-size:13px; }
  .map-sec{ padding:100px 0 80px; }

  /* breathing room + type tuning */
  .hero-kicker{ font-size:11px; letter-spacing:.18em; }
  .hero-sub{ font-size:16px; }
  .hero-meta{ flex-wrap:wrap; row-gap:8px; }
  .h2{ font-size:clamp(30px,8.6vw,40px); }
  .section-head{ padding-bottom:40px; }
  .shift-pin{ gap:5.5vh; padding:100px 24px; }
  .shift-line{ font-size:clamp(24px,6.6vw,32px); }
  .claims{ gap:14px; }
  .claim strong{ font-size:24px; }
  .claim span{ font-size:12px; }
  .phases{ gap:16px; }
  .phase{ padding:30px 24px; }
  .bond-grid{ gap:16px; }
  .bond-card{ padding:30px 24px; }
  .bond-quote{ margin-top:56px; }
  .cta{ padding:130px 0 110px; }
  .console-feed{ height:240px; }
  .footer-inner{ padding:54px 24px 36px; }
}

/* ============================================================
   ALIVE · the system breathes
   ============================================================ */

/* living map */
.living-map{ display:flex; flex-direction:column; align-items:center; }
#livemap{ width:min(680px, 94vw); aspect-ratio:1; display:block; touch-action:manipulation; cursor:pointer; }
.map-meter{
  margin-top:10px; font-family:var(--font-d); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--dim);
  display:flex; align-items:center; gap:10px;
}
.map-meter strong{
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
  font-size:16px; letter-spacing:.06em;
}
.meter-note{ font-size:9.5px; letter-spacing:.2em; opacity:.55; }

/* cursor spotlight on cards */
.ind-panel, .phase, .bond-card{ position:relative; overflow:hidden; }
.ind-panel::after, .phase::after, .bond-card::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:0; transition:opacity .4s;
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%), rgba(125,211,252,.09), transparent 65%);
}
.ind-panel:hover::after, .phase:hover::after, .bond-card:hover::after{ opacity:1; }

/* primary button sheen sweep */
.btn-primary{ overflow:hidden; }
.btn-primary::before{
  content:""; position:absolute; top:0; bottom:0; width:46%; left:-60%;
  background:linear-gradient(105deg, transparent, rgba(255,255,255,.5), transparent);
  transform:skewX(-18deg); animation:sheen 6.5s var(--ease) infinite;
}
@keyframes sheen{ 0%, 78%{ left:-60%; } 92%, 100%{ left:130%; } }

/* console caret */
.feed-caret{ display:flex; gap:14px; }
.feed-caret .caret{
  width:8px; height:15px; background:var(--acc-2); display:inline-block; margin-left:2px;
  animation:caretBlink 1s steps(1) infinite;
}
@keyframes caretBlink{ 0%,55%{ opacity:1; } 56%,100%{ opacity:.12; } }

/* ambient breathing behind key chapters */
.console-sec::before, .map-sec::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:-1;
  background:radial-gradient(620px 380px at 50% 45%, rgba(52,211,153,.05), transparent 70%);
  animation:ambient 9s ease-in-out infinite alternate;
}
@keyframes ambient{ from{ opacity:.45; } to{ opacity:1; } }

@media (prefers-reduced-motion:reduce){
  .btn-primary::before{ animation:none; }
  .console-sec::before, .map-sec::before{ animation:none; }
}

.living-map{ padding-bottom:56px; }
