:root{
  --text-xs:clamp(0.75rem,0.7rem + 0.25vw,0.875rem);
  --text-sm:clamp(0.875rem,0.8rem + 0.35vw,1rem);
  --text-base:clamp(1rem,0.95rem + 0.25vw,1.125rem);
  --text-lg:clamp(1.125rem,1rem + 0.75vw,1.5rem);
  --text-xl:clamp(1.5rem,1.2rem + 1.25vw,2.25rem);
  --text-2xl:clamp(2rem,1.2rem + 2.5vw,3.5rem);
  --text-3xl:clamp(2.5rem,1rem + 4vw,5rem);

  --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;
  --space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;
  --space-20:5rem;--space-24:6rem;--space-32:8rem;

  --radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;
  --transition-interactive:200ms cubic-bezier(.16,1,.3,1);
  --content-wide:1180px;

  --font-display:'Cabinet Grotesk','Helvetica Neue',sans-serif;
  --font-body:'General Sans','Helvetica Neue',sans-serif;
  --font-mono:'JetBrains Mono',monospace;
}

/* DARK (default) — gold primary, teal secondary */
:root,[data-theme='dark']{
  --color-bg:#05070d;
  --color-surface:#0a0e16;
  --color-surface-2:#10151f;
  --color-border:#1d2533;
  --color-text:#e6ebf2;
  --color-text-muted:#8b96a8;
  --color-text-faint:#5a6475;
  --color-primary:#f0a93b;        /* gold (brand) */
  --color-primary-hover:#ffc266;
  --color-teal:#2fd6c6;           /* teal secondary */
  --color-amber:#f0a93b;
  --color-glow:rgba(240,169,59,.20);
  --color-glow-teal:rgba(47,214,198,.16);
}
/* LIGHT */
[data-theme='light']{
  --color-bg:#f5f7fa;
  --color-surface:#ffffff;
  --color-surface-2:#eef1f5;
  --color-border:#dde2ea;
  --color-text:#0c1018;
  --color-text-muted:#586073;
  --color-text-faint:#9aa3b2;
  --color-primary:#b87810;
  --color-primary-hover:#965f0a;
  --color-teal:#0a8f82;
  --color-amber:#b87810;
  --color-glow:rgba(184,120,16,.14);
  --color-glow-teal:rgba(10,143,130,.12);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:5rem}
body{min-height:100dvh;line-height:1.65;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);overflow-x:hidden}
img,svg{display:block;max-width:100%;height:auto}
ul[role='list']{list-style:none}
button{cursor:pointer;background:none;border:none;color:inherit;font:inherit}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{text-wrap:balance;line-height:1.1;font-family:var(--font-display);font-weight:800;letter-spacing:-.02em}
p{text-wrap:pretty;max-width:62ch}
::selection{background:var(--color-glow);color:var(--color-text)}
:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.wrap{width:100%;max-width:var(--content-wide);margin-inline:auto;padding-inline:var(--space-6)}
.accent{color:var(--color-primary)}
.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.18em;color:var(--color-primary)}
.kicker{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--color-text-muted);margin-bottom:var(--space-4)}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-body);font-weight:600;font-size:var(--text-sm);padding:.7rem 1.3rem;border-radius:var(--radius-full);transition:var(--transition-interactive);border:1px solid transparent}
.btn-sm{padding:.5rem 1rem}
.btn-lg{padding:.95rem 1.9rem;font-size:var(--text-base);margin-top:var(--space-8)}
.btn-primary{background:var(--color-primary);color:#1a0f02;font-weight:700}
.btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 10px 30px var(--color-glow)}
.btn-ghost{border-color:var(--color-border);color:var(--color-text)}
.btn-ghost:hover{border-color:var(--color-primary);color:var(--color-primary)}

/* HEADER */
.site-header{position:fixed;inset:0 0 auto;z-index:100;backdrop-filter:blur(14px);background:color-mix(in oklab,var(--color-bg) 78%,transparent);border-bottom:1px solid var(--color-border)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:4rem}
.logo{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-weight:800;letter-spacing:.04em;color:var(--color-text)}
.logo svg{color:var(--color-primary)}
.logo-mark{display:inline-block;width:30px;height:30px;object-fit:contain}
[data-theme='light'] .logo-mark{filter:invert(1)}
.logo-space{margin-left:.28em;color:var(--color-primary);font-weight:500;letter-spacing:.16em;font-size:.82em}
.nav{display:flex;gap:var(--space-6);font-size:var(--text-sm);color:var(--color-text-muted)}
.nav a:hover{color:var(--color-text)}
.header-actions{display:flex;align-items:center;gap:var(--space-4)}
.icon-btn{width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:var(--radius-full);color:var(--color-text-muted);border:1px solid var(--color-border)}
.icon-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}
@media(max-width:860px){.nav{display:none}}
/* Mobile: shrink header CTA so it doesn't dominate the bar */
@media(max-width:560px){
  .header-actions{gap:.5rem}
  .header-actions .btn-primary.btn-sm{padding:.45rem .7rem;font-size:.72rem;line-height:1.1;white-space:nowrap;border-radius:var(--radius-full)}
  /* hide long label, show short one */
  .header-actions .btn-primary.btn-sm .cta-long{display:none}
  .header-actions .btn-primary.btn-sm .cta-short{display:inline}
}
.cta-short{display:none}

/* HERO */
.hero{position:relative;padding-block:9rem 5rem;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:
  radial-gradient(1000px 700px at 82% 30%,var(--color-glow),transparent 60%),
  radial-gradient(800px 600px at 12% 80%,var(--color-glow-teal),transparent 60%),
  url('assets/reentry.jpg');
  background-size:cover;background-position:72% center;opacity:1;z-index:-1}
.hero-bg::after{content:'';position:absolute;inset:0;background:
  linear-gradient(105deg,var(--color-bg) 30%,color-mix(in oklab,var(--color-bg) 30%,transparent) 62%,transparent 100%),
  linear-gradient(to bottom,transparent 60%,var(--color-bg) 98%)}
[data-theme='light'] .hero-bg{opacity:.55}
[data-theme='light'] .hero-bg::after{background:linear-gradient(105deg,var(--color-bg) 28%,color-mix(in oklab,var(--color-bg) 55%,transparent) 60%,transparent 100%),linear-gradient(to bottom,transparent 55%,var(--color-bg) 98%)}
@media(max-width:860px){.hero-bg{background-position:60% center}.hero-bg::after{background:linear-gradient(to bottom,color-mix(in oklab,var(--color-bg) 55%,transparent),var(--color-bg) 90%)}}
.hero-inner{max-width:760px}
.hero h1{font-size:var(--text-3xl);font-weight:800;margin:var(--space-5) 0 var(--space-6)}
.lede{font-size:var(--text-lg);color:var(--color-text-muted);max-width:54ch}
.hero-cta{display:flex;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-8)}
.hero-stats{display:flex;gap:var(--space-8);flex-wrap:wrap;margin-top:var(--space-16);padding-top:var(--space-8);border-top:1px solid var(--color-border)}
.hero-stats li{display:flex;flex-direction:column;gap:.25rem}
.stat-num{font-family:var(--font-display);font-weight:800;font-size:var(--text-xl);color:var(--color-primary)}
.stat-label{font-size:var(--text-xs);color:var(--color-text-muted);max-width:22ch}

/* STRIP */
.strip{background:var(--color-surface-2);border-block:1px solid var(--color-border)}
.strip p{max-width:none;font-size:var(--text-xs);color:var(--color-text-muted);padding-block:var(--space-3);text-align:center}
.strip a{color:var(--color-primary);text-decoration:underline}

/* SECTIONS */
.section{padding-block:clamp(var(--space-16),9vw,var(--space-32))}
.section-alt{background:var(--color-surface)}
.section-title{font-size:var(--text-2xl);margin-bottom:var(--space-12);max-width:18ch}
h2{font-size:var(--text-2xl)}
.body-lg{font-size:var(--text-lg);color:var(--color-text-muted);margin:var(--space-5) 0}
.section p{color:var(--color-text-muted);margin-top:var(--space-4)}
.section p strong{color:var(--color-text)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center}
@media(max-width:860px){.grid-2{grid-template-columns:1fr;gap:var(--space-10)}.grid-2-rev>.flow{order:-1}}
.figure img{border-radius:var(--radius-lg);border:1px solid var(--color-border)}
.hardware{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);margin-bottom:var(--space-12)}
@media(max-width:720px){.hardware{grid-template-columns:1fr}}
.hw-fig{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}
.hw-fig img{width:100%;height:340px;object-fit:cover;object-position:center;display:block}
.hw-fig-contain img{object-fit:contain;background:#0a0a0a;padding:var(--space-4)}
.hw-fig figcaption{font-size:var(--text-sm);color:var(--color-text-muted);padding:var(--space-4);border-top:1px solid var(--color-border)}
.hw-fig figcaption strong{color:var(--color-primary)}
.figure figcaption{font-size:var(--text-xs);color:var(--color-text-faint);margin-top:var(--space-3)}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5)}
@media(max-width:980px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cards{grid-template-columns:1fr}}
.card{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:var(--transition-interactive)}
.card:hover{border-color:var(--color-primary);transform:translateY(-4px)}
.card-num{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-teal)}
.card h3{font-size:var(--text-lg);margin:var(--space-4) 0 var(--space-3)}
.card p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}

/* FLOW */
.flow{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8)}
.flow-step{display:flex;align-items:center;gap:var(--space-4)}
.flow-step strong{display:block;font-size:var(--text-base)}
.flow-step small{color:var(--color-text-muted);font-size:var(--text-xs)}
.flow-dot{flex:none;width:2.5rem;height:2.5rem;display:grid;place-items:center;border-radius:var(--radius-full);background:var(--color-bg);border:1px solid var(--color-teal);color:var(--color-teal);font-family:var(--font-mono)}
.flow-arrow{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint);padding:var(--space-2) 0 var(--space-2) 1.1rem}
.flow-burn .flow-dot{border-color:var(--color-amber);color:var(--color-amber)}
.check-list{margin-top:var(--space-6);display:grid;gap:var(--space-3)}
.check-list li{display:flex;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted)}
.check-list li::before{content:'→';color:var(--color-teal)}

/* RECEIPTS */
.receipts{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}
@media(max-width:860px){.receipts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.receipts{grid-template-columns:1fr}}
.receipt{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg)}
.receipt h3{font-size:var(--text-base);color:var(--color-teal);margin-bottom:var(--space-2);display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
.receipt p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}
.r-tag{font-family:var(--font-mono);font-size:.625rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-amber);border:1px solid var(--color-border);border-radius:999px;padding:.15em .6em;white-space:nowrap}
.press{margin-top:var(--space-12);padding-top:var(--space-10);border-top:1px solid var(--color-border)}
.press-label{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.16em;color:var(--color-text-faint);text-align:center;margin-bottom:var(--space-6)}
.press-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5)}
@media(max-width:720px){.press-grid{grid-template-columns:repeat(2,1fr)}}
.press-item{text-align:center;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4)}
.press-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);color:var(--color-text)}
.press-note{font-size:var(--text-xs);color:var(--color-text-muted)}

/* LAUNCH */
.section-launch{background:
  radial-gradient(900px 500px at 50% 0%,var(--color-glow),transparent 60%),var(--color-surface)}
.launch-inner{text-align:center;display:flex;flex-direction:column;align-items:center}
.launch-inner .kicker,.launch-inner .section-title{text-align:center}
.launch-inner .section-title{margin-bottom:var(--space-4);max-width:none}
.launch-lede{font-size:var(--text-lg);color:var(--color-text-muted);max-width:48ch}
.countdown{display:flex;gap:var(--space-4);margin-top:var(--space-10)}
.cd-unit{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);min-width:5rem}
.cd-unit span{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:500;color:var(--color-teal);display:block}
.cd-unit label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em}
.cd-caption{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint);letter-spacing:.12em;text-transform:uppercase;margin-top:var(--space-4)}
.phases{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);margin-top:var(--space-16);width:100%;text-align:left}
@media(max-width:860px){.phases{grid-template-columns:1fr}}
.phase{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg)}
.phase-tag{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-amber);text-transform:uppercase;letter-spacing:.1em}
.phase h3{font-size:var(--text-lg);margin:var(--space-3) 0}
.phase p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0}

/* LEGAL */
.legal{background:var(--color-bg);border-top:1px solid var(--color-border)}
.legal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);margin-top:var(--space-8)}
@media(max-width:860px){.legal-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.legal-grid{grid-template-columns:1fr}}
.legal-item{padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}
.legal-item h3{font-size:var(--text-sm);color:var(--color-text);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.04em;font-family:var(--font-mono)}
.legal-item p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;line-height:1.6}

/* FOOTER */
.site-footer{background:var(--color-surface);border-top:1px solid var(--color-border);padding-block:var(--space-12) var(--space-8)}
.footer-inner{display:flex;justify-content:space-between;gap:var(--space-8);flex-wrap:wrap}
.footer-brand p{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:var(--space-3)}
.footer-links{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}
.footer-links a:hover{color:var(--color-primary)}
.footer-fine{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-border)}
.footer-fine p{font-size:var(--text-xs);color:var(--color-text-faint)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}

/* ============================================================
   LIVING MOTION — parallax, float, breathe (added)
   ============================================================ */

/* Krystal: pomalý float + jemné nadechnutí glow */
@keyframes orbip-float{
  0%,100%{transform:translateY(0) rotate(0deg)}
  50%{transform:translateY(-14px) rotate(.6deg)}
}
@keyframes orbip-breathe{
  0%,100%{filter:drop-shadow(0 0 0px var(--color-glow-teal)) brightness(1)}
  50%{filter:drop-shadow(0 14px 38px var(--color-glow-teal)) brightness(1.06)}
}
.figure{perspective:1200px}
.figure img{
  will-change:transform,filter;
  animation:orbip-float 11s ease-in-out infinite, orbip-breathe 7s ease-in-out infinite;
  transition:transform .25s cubic-bezier(.2,.7,.3,1);
  transform-style:preserve-3d;
}

/* Hardware (kapsle Samara + Gatling): jemný drift uvnitř rámu + slabý glow při hoveru */
.hw-fig{position:relative}
.hw-fig img{
  will-change:transform;
  transform:scale(1.06);
  transition:transform 1.2s cubic-bezier(.2,.7,.3,1), filter .6s ease;
}
.hw-fig:hover img{transform:scale(1.12) translateY(-4px);filter:saturate(1.08) brightness(1.04)}
.hw-fig::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(420px 220px at var(--mx,70%) var(--my,30%),var(--color-glow),transparent 60%);
  opacity:0;transition:opacity .5s ease;
}
.hw-fig:hover::after{opacity:.9}

/* Logo mark: nekonečná pomalá orbitální rotace */
@keyframes orbip-spin{to{transform:rotate(360deg)}}
.logo-mark{animation:orbip-spin 26s linear infinite}

/* Parallax vrstvy řízené z JS přes --py (scroll) a --ph (hloubka) */
.parallax{will-change:transform;transform:translate3d(0,calc(var(--py,0px) * var(--ph,1)),0)}

/* Hero pozadí reaguje na myš (--hx/--hy nastavuje JS) */
.hero-bg{transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.hero.has-mouse .hero-bg{transform:translate3d(var(--hx,0px),var(--hy,0px),0) scale(1.06)}

/* Respekt k uživatelům, co nechtějí pohyb */
@media(prefers-reduced-motion:reduce){
  .figure img,.logo-mark,.hw-fig img{animation:none!important;transform:none!important}
  .parallax{transform:none!important}
  .hero.has-mouse .hero-bg{transform:none!important}
}

/* ===== Samara cutout (transparent PNG, no card frame) ===== */
.hw-fig-cutout{background:transparent;border:none;overflow:visible}
.hw-fig-cutout::after{display:none}
.hw-fig-cutout img{object-fit:contain;background:transparent;padding:var(--space-6);height:360px;
  filter:drop-shadow(0 24px 48px rgba(0,0,0,.55))}
.hw-fig-cutout figcaption{border-top:none;padding-top:var(--space-3)}

/* ===== Gatling natural (photo with own background — soft-edge fade into page) ===== */
.hw-fig-natural{background:transparent;border:none;overflow:visible;position:relative}
.hw-fig-natural::after{display:none}
.hw-fig-natural img{
  width:100%;height:360px;object-fit:cover;object-position:65% center;
  background:transparent;padding:0;border-radius:0;
  -webkit-mask-image:radial-gradient(ellipse 78% 78% at 62% 50%, #000 55%, rgba(0,0,0,.85) 72%, rgba(0,0,0,0) 100%);
          mask-image:radial-gradient(ellipse 78% 78% at 62% 50%, #000 55%, rgba(0,0,0,.85) 72%, rgba(0,0,0,0) 100%);
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.6)) drop-shadow(0 0 60px rgba(232,178,58,.12));
}
.hw-fig-natural:hover img{transform:scale(1.06) translateY(-3px);filter:drop-shadow(0 34px 66px rgba(0,0,0,.65)) drop-shadow(0 0 70px rgba(232,178,58,.2)) saturate(1.08) brightness(1.04)}
.hw-fig-natural figcaption{border-top:none;padding-top:var(--space-3)}

/* ===== Trust bar (Validated & supported by) ===== */
.trustbar{margin:var(--space-8) 0 var(--space-16)}
.trustbar-label{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;
  letter-spacing:.16em;color:var(--color-text-faint);text-align:center;margin-bottom:var(--space-6)}
.trustbar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-4);
  border:1px solid var(--color-border);border-radius:var(--radius-lg);
  background:var(--color-surface);padding:var(--space-6) var(--space-4)}
.tb-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);text-align:center;
  padding:var(--space-2);text-decoration:none;color:var(--color-text);
  transition:transform var(--transition-interactive),color var(--transition-interactive)}
a.tb-item:hover{transform:translateY(-2px);color:var(--color-primary)}
.tb-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);letter-spacing:.02em;line-height:1.15}
.tb-role{font-size:var(--text-xs);color:var(--color-text-muted)}
@media(max-width:860px){.trustbar-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-5)}}
@media(max-width:480px){.trustbar-grid{grid-template-columns:repeat(2,1fr)}}

/* press items as links */
a.press-item{text-decoration:none;border:1px solid transparent;border-radius:var(--radius-md);
  transition:border-color var(--transition-interactive),transform var(--transition-interactive)}
a.press-item:hover{border-color:var(--color-border);transform:translateY(-2px)}
a.press-item .press-name{color:var(--color-text)}
a.press-item:hover .press-name{color:var(--color-primary)}

/* ===== Join cards (Raffle + Founding Crew Pass) ===== */
.join-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);
  margin:var(--space-10) 0 var(--space-12);width:100%;text-align:left}
@media(max-width:760px){.join-cards{grid-template-columns:1fr}}
.join-card{position:relative;display:flex;flex-direction:column;
  border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-xl);
  background:linear-gradient(180deg,rgba(20,26,38,.92),rgba(11,15,23,.92));
  padding:var(--space-8);box-shadow:0 12px 40px rgba(0,0,0,.45);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.join-card:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.22);
  box-shadow:0 24px 60px rgba(0,0,0,.55)}
.join-card-free{border-top:3px solid var(--color-teal)}
.join-card-free:hover{border-color:rgba(45,212,191,.4)}
.join-card-featured{border:1px solid rgba(240,169,59,.55);border-top:3px solid var(--color-primary);
  background:linear-gradient(180deg,rgba(240,169,59,.10),rgba(14,12,9,.95));
  box-shadow:0 0 0 1px rgba(240,169,59,.35),0 24px 70px rgba(240,169,59,.18)}
.join-card-featured:hover{border-color:var(--color-primary);
  box-shadow:0 0 0 1px rgba(240,169,59,.55),0 30px 80px rgba(240,169,59,.28)}
.jc-ribbon{position:absolute;top:-12px;right:var(--space-6);
  font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:#1a1206;
  background:linear-gradient(90deg,var(--color-primary),#ffce7a);
  padding:.35rem .75rem;border-radius:999px;
  box-shadow:0 6px 18px rgba(240,169,59,.4)}
.jc-price-free{color:var(--color-teal)}
.jc-tag{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;
  letter-spacing:.14em;color:var(--color-text-muted);margin:0 0 var(--space-2)}
.jc-tag-gold{color:var(--color-primary)}
.jc-title{font-size:var(--text-xl);margin:0 0 var(--space-3)}
.jc-price{font-family:var(--font-display);font-weight:800;font-size:var(--text-xl);
  color:var(--color-text);margin:0 0 var(--space-4);display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2)}
.jc-price-alt{font-family:var(--font-mono);font-weight:400;font-size:var(--text-sm);color:var(--color-teal)}
.jc-desc{color:var(--color-text-muted);font-size:var(--text-sm);margin:0 0 var(--space-5)}
.jc-list{list-style:none;margin:0 0 var(--space-6);padding:0;display:flex;flex-direction:column;gap:var(--space-3)}
.jc-list li{font-size:var(--text-sm);color:var(--color-text);padding-left:var(--space-6);position:relative}
.jc-list li::before{content:"›";position:absolute;left:0;color:var(--color-text-faint)}
.jc-list-check li::before{content:"✓";color:var(--color-teal);font-weight:700}
.jc-btn{margin-top:auto;width:100%;justify-content:center}
.jc-fine{font-size:var(--text-xs);color:var(--color-text-faint);margin:var(--space-4) 0 0;line-height:1.5}
.jc-lock-ico{font-size:.9em;margin-right:.15em}
.jc-btn-locked.is-open{opacity:.55}
.jc-lock{margin-top:var(--space-4);padding:var(--space-5);text-align:left;
  border:1px solid rgba(240,169,59,.3);border-radius:var(--radius-lg);
  background:rgba(240,169,59,.06);animation:lockIn .3s ease}
@keyframes lockIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.jc-lock-badge{display:inline-block;font-family:var(--font-mono);font-size:var(--text-xs);
  font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary);
  border:1px solid rgba(240,169,59,.4);border-radius:999px;padding:.2rem .6rem;margin-bottom:var(--space-3)}
.jc-lock-title{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);
  color:var(--color-text);margin:0 0 var(--space-2)}
.jc-lock-text{font-size:var(--text-sm);color:var(--color-text-muted);margin:0 0 var(--space-4);line-height:1.55}
.jc-lock-cta{width:100%;justify-content:center}
.jc-pulse{animation:jcPulse 1.4s ease}
@keyframes jcPulse{0%,100%{box-shadow:0 12px 40px rgba(0,0,0,.45)}50%{box-shadow:0 0 0 2px var(--color-teal),0 0 40px rgba(45,212,191,.45)}}

/* ===== WHITELIST EXPLAINER ===== */
.wl-explain{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);margin-top:var(--space-10);width:100%;text-align:left}
@media(max-width:860px){.wl-explain{grid-template-columns:1fr}}
.wl-explain-item{display:flex;gap:var(--space-4);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg)}
.wl-num{flex:none;width:2.1rem;height:2.1rem;border-radius:50%;display:grid;place-items:center;font-family:var(--font-mono);font-weight:500;color:var(--color-bg);background:var(--color-primary);box-shadow:0 0 18px var(--color-glow)}
.wl-explain-item strong{display:block;font-size:var(--text-base);margin-bottom:var(--space-2);color:var(--color-text)}
.wl-explain-item p{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;line-height:1.55}

/* ===== NFT CARD GALLERY ===== */
.nft-gallery{width:100%;margin-top:var(--space-16)}
.nft-gallery-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-primary);letter-spacing:.16em;text-transform:uppercase;text-align:center;margin-bottom:var(--space-2)}
.nft-gallery-sub{font-size:var(--text-sm);color:var(--color-text-muted);text-align:center;margin:0 auto var(--space-8);max-width:60ch}
.nft-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-5)}
@media(max-width:1100px){.nft-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.nft-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-4)}}
.nft-card{position:relative;margin:0;border-radius:14px;overflow:hidden;border:1px solid var(--color-border);background:linear-gradient(180deg,#0c0c10,#000);box-shadow:0 8px 24px rgba(0,0,0,.4);transition:transform .4s cubic-bezier(.2,.7,.2,1),box-shadow .4s,border-color .4s}
.nft-card img{display:block;width:100%;height:auto;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.nft-card figcaption{font-family:var(--font-mono);font-size:.6rem;letter-spacing:.07em;color:var(--color-text-muted);text-align:center;padding:var(--space-3) var(--space-2);background:linear-gradient(180deg,rgba(10,14,22,0),var(--color-bg));text-transform:uppercase}
.nft-card:hover{transform:translateY(-8px) scale(1.015);box-shadow:0 24px 50px rgba(0,0,0,.6),0 0 30px var(--color-glow);border-color:var(--color-primary)}
.nft-card:hover img{transform:scale(1.04)}
.nft-card-rare{border-color:rgba(240,169,59,.55);box-shadow:0 8px 24px rgba(0,0,0,.4),0 0 26px var(--color-glow)}
.nft-card-rare::after{content:"";position:absolute;inset:0;border-radius:14px;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,194,102,.4)}
.nft-rare-tag{position:absolute;top:.55rem;right:.55rem;z-index:2;font-family:var(--font-mono);font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;color:#1a1205;background:linear-gradient(180deg,#ffd27a,var(--color-primary));padding:.18rem .5rem;border-radius:5px;font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.4)}

/* ============================================================
   FOUNDING CREW PASS — 48h urgency, live mint, social icons
   ============================================================ */

/* Header social icon buttons (X / Discord / Zealy) */
.social-btn{color:var(--color-text-muted)}
.social-btn:hover{color:var(--color-primary);border-color:var(--color-primary)}
.social-btn svg{display:block}
@media(max-width:560px){.social-btn{display:none}}

/* 48h urgency banner on the Founding Crew Pass card */
.burn-banner{display:flex;flex-direction:column;gap:var(--space-2);
  margin:0 0 var(--space-5);padding:var(--space-4) var(--space-5);
  border:1px solid rgba(240,169,59,.55);border-radius:var(--radius-lg);
  background:linear-gradient(180deg,rgba(240,169,59,.16),rgba(240,90,40,.10));
  box-shadow:0 0 0 1px rgba(240,169,59,.25),0 0 30px rgba(240,169,59,.18);
  animation:burnGlow 2.6s ease-in-out infinite}
@keyframes burnGlow{0%,100%{box-shadow:0 0 0 1px rgba(240,169,59,.25),0 0 26px rgba(240,169,59,.16)}
  50%{box-shadow:0 0 0 1px rgba(240,169,59,.5),0 0 40px rgba(240,169,59,.34)}}
.burn-banner-top{font-family:var(--font-display);font-weight:800;font-size:var(--text-base);
  letter-spacing:.02em;color:var(--color-primary);text-transform:uppercase;line-height:1.25}
.burn-banner-sub{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.55}
.burn-banner-sub strong{color:var(--color-text)}
@media(prefers-reduced-motion:reduce){.burn-banner{animation:none!important}}

/* Secondary 48h mint countdown — tuned to match existing .countdown */
.mint-cd-wrap{margin:0 0 var(--space-6)}
.mint-cd-label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.14em;
  text-transform:uppercase;color:var(--color-text-faint);margin:0 0 var(--space-3)}
.countdown-mint{margin-top:0;gap:var(--space-3);justify-content:flex-start}
.countdown-mint .cd-unit{min-width:4rem;padding:var(--space-3) var(--space-4);
  border-color:rgba(240,169,59,.4)}
.countdown-mint .cd-unit span{color:var(--color-primary)}
.countdown-mint.mint-closed .cd-unit span{color:var(--color-text-faint)}

/* Live mint CTA — strong, with a soft pulsing live dot */
.jc-btn-mint{box-shadow:0 12px 34px var(--color-glow);font-weight:700}
.jc-btn-mint:hover{transform:translateY(-2px);box-shadow:0 18px 44px var(--color-glow)}
.jc-mint-pulse{width:.6rem;height:.6rem;border-radius:50%;background:#1a8f3c;
  box-shadow:0 0 0 0 rgba(54,211,90,.7);animation:mintPulse 1.6s ease-out infinite;flex:none}
@keyframes mintPulse{0%{box-shadow:0 0 0 0 rgba(54,211,90,.7)}70%{box-shadow:0 0 0 8px rgba(54,211,90,0)}100%{box-shadow:0 0 0 0 rgba(54,211,90,0)}}
@media(prefers-reduced-motion:reduce){.jc-mint-pulse{animation:none!important}}
.jc-mint-note{font-size:var(--text-xs);color:var(--color-text-muted);margin:var(--space-3) 0 0;line-height:1.55}
.jc-mint-note a{color:var(--color-primary);text-decoration:underline}

/* Crystal figure — keep new 1672x941 ratio clean, no distortion */
.figure img{width:100%;height:auto;object-fit:contain}

/* ===== Embedded mint modal (thirdweb) ===== */
.mint-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);opacity:0;transition:opacity .22s ease}
.mint-modal.open{opacity:1}
.mint-modal[hidden]{display:none}
.mint-modal-backdrop{position:absolute;inset:0;background:rgba(4,6,16,.78);backdrop-filter:blur(6px)}
.mint-modal-card{position:relative;z-index:1;width:100%;max-width:460px;max-height:92vh;overflow-y:auto;background:var(--color-surface,#0c0f1e);border:1px solid rgba(255,255,255,.10);border-radius:18px;padding:var(--space-5);box-shadow:0 30px 80px rgba(0,0,0,.55);transform:translateY(14px) scale(.98);transition:transform .22s ease}
.mint-modal.open .mint-modal-card{transform:translateY(0) scale(1)}
.mint-modal-close{position:absolute;top:10px;right:14px;background:none;border:0;color:var(--color-text-muted,#9aa3b8);font-size:30px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:8px;transition:color .15s,background .15s}
.mint-modal-close:hover{color:#fff;background:rgba(255,255,255,.08)}
.mint-modal-head h3{margin:0 0 6px;font-size:var(--text-xl,1.35rem)}
.mint-modal-head p{margin:0 0 var(--space-4);font-size:var(--text-sm,.92rem);color:var(--color-text-muted,#9aa3b8);line-height:1.5}
.mint-embed-wrap{min-height:600px;border-radius:14px;overflow:hidden;background:rgba(255,255,255,.02)}
.mint-modal-fine{margin:var(--space-4) 0 0;font-size:var(--text-xs,.78rem);color:var(--color-text-muted,#9aa3b8);line-height:1.55}
.mint-modal-fine a{color:var(--color-primary);text-decoration:underline}
@media(max-width:520px){.mint-modal-card{padding:var(--space-4)}.mint-embed-wrap{min-height:560px}}

/* ===== Mint modal — on-page connect + claim UI ===== */
.mint-embed-wrap{min-height:auto;display:flex;flex-direction:column;gap:var(--space-3)}
.mint-row{display:flex;align-items:center}
.mint-qty-row{justify-content:space-between;gap:var(--space-3);padding:12px 14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:12px}
.mint-qty-label{font-size:var(--text-sm,.9rem);color:var(--color-text-muted,#9aa3b8)}
.mint-qty-ctrl{display:flex;align-items:center;gap:14px}
.mint-qty-ctrl button{width:32px;height:32px;border-radius:9px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);color:#fff;font-size:18px;line-height:1;cursor:pointer;transition:background .15s,border-color .15s}
.mint-qty-ctrl button:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3)}
#mint-qty{min-width:20px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums}
.mint-qty-total{font-weight:700;font-variant-numeric:tabular-nums}
.mint-action{width:100%;justify-content:center;text-align:center}
.mint-action.mint-connected{opacity:.7;cursor:default}
.mint-action[disabled]{opacity:.55;cursor:not-allowed}
.mint-status{margin:2px 0 0;font-size:var(--text-sm,.88rem);line-height:1.5;min-height:1.2em;color:var(--color-text-muted,#9aa3b8)}
.mint-status-ok{color:#5ad19a}
.mint-status-warn{color:#ffb38a}

/* ===== Mint modal — preview of what you're buying ===== */
.mint-preview{display:flex;gap:14px;align-items:center;padding:12px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:14px;margin-bottom:var(--space-3)}
.mint-preview-img{width:96px;height:96px;object-fit:cover;border-radius:10px;flex:0 0 auto;border:1px solid rgba(255,255,255,.1)}
.mint-preview-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px;font-size:var(--text-xs,.8rem);line-height:1.45;color:var(--color-text,#e9ecf5)}
.mint-preview-list li{list-style:disc}
.mint-preview-note{list-style:none;margin-left:-18px;margin-top:3px;color:var(--color-text-muted,#9aa3b8);font-style:italic}
@media(max-width:520px){.mint-preview-img{width:78px;height:78px}}

/* ===== ACME Virtual Nodes — Phase 1 hero banner (top of page) ===== */
.node-hero-banner{
  position:relative;display:block;
  min-height:340px;
  color:#fff;text-decoration:none;
  overflow:hidden;
  border-bottom:1px solid rgba(232,178,58,.35);
  isolation:isolate;
}
.nhb-media{
  position:absolute;inset:0;z-index:0;
}
.nhb-media img{
  width:100%;height:100%;object-fit:cover;object-position:center 35%;
  display:block;
  transform:scale(1.02);
  transition:transform 1.2s ease;
}
.node-hero-banner:hover .nhb-media img{transform:scale(1.05);}
.nhb-scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg, rgba(6,10,22,.94) 0%, rgba(6,10,22,.72) 42%, rgba(6,10,22,.35) 72%, rgba(6,10,22,.55) 100%),
    linear-gradient(180deg, rgba(6,10,22,.35) 0%, rgba(6,10,22,0) 40%, rgba(6,10,22,.55) 100%);
}
.nhb-inner{
  position:relative;z-index:1;
  display:flex;align-items:center;justify-content:space-between;
  gap:32px;flex-wrap:wrap;
  padding:44px 0;
}
.nhb-copy{flex:1 1 460px;min-width:0;}
.nhb-eyebrow{
  display:inline-block;
  font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:#E8B23A;font-weight:700;
  padding:5px 12px;border:1px solid rgba(232,178,58,.55);border-radius:999px;
  background:rgba(11,20,40,.55);backdrop-filter:blur(2px);
  margin-bottom:14px;
}
.nhb-title{
  font-size:clamp(1.6rem, 3.4vw, 2.6rem);
  font-weight:800;line-height:1.1;letter-spacing:-.01em;
  color:#fff;margin:0 0 12px;
  text-shadow:0 2px 20px rgba(0,0,0,.5);
}
.nhb-title .nhb-price{
  display:block;margin-top:8px;
  font-size:clamp(1.4rem, 2.8vw, 2.1rem);
  color:#E8B23A;font-weight:700;
  letter-spacing:-.005em;
}
.nhb-sub{
  font-size:1rem;line-height:1.55;color:#dde3f0;max-width:56ch;
  margin:0;
  text-shadow:0 1px 8px rgba(0,0,0,.4);
}
.nhb-sub strong{color:#fff;font-weight:700;}
.nhb-side{
  flex:0 0 auto;
  display:flex;flex-direction:column;align-items:flex-end;gap:14px;
}
.nhb-countdown{
  display:flex;gap:10px;
  padding:16px 18px;
  background:rgba(11,20,40,.72);
  backdrop-filter:blur(6px);
  border:1px solid rgba(232,178,58,.4);
  border-radius:14px;
  box-shadow:0 8px 28px rgba(0,0,0,.35);
}
.nhb-cd-unit{
  display:flex;flex-direction:column;align-items:center;
  min-width:52px;
}
.nhb-cd-unit span{
  font-family:'JetBrains Mono', ui-monospace, monospace;
  font-size:1.75rem;font-weight:700;color:#fff;
  line-height:1;
  font-variant-numeric:tabular-nums;
}
.nhb-cd-unit label{
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:#E8B23A;font-weight:600;
  margin-top:5px;
}
.nhb-cta{
  display:inline-block;
  padding:11px 22px;border-radius:999px;
  background:#E8B23A;color:#0b1428;
  font-weight:700;font-size:.92rem;letter-spacing:.02em;
  white-space:nowrap;
  transition:background .18s ease, transform .18s ease;
  box-shadow:0 6px 18px rgba(232,178,58,.32);
}
.node-hero-banner:hover .nhb-cta{background:#f4c256;transform:translateX(3px);}
.node-hero-banner.is-live .nhb-eyebrow{
  background:rgba(72,164,108,.22);border-color:rgba(72,164,108,.65);color:#7CE0A5;
}
.node-hero-banner.is-live .nhb-eyebrow::before{
  content:'● ';color:#7CE0A5;animation:nhbpulse 1.4s ease-in-out infinite;
}
@keyframes nhbpulse{0%,100%{opacity:1}50%{opacity:.4}}
.node-hero-banner.is-closed .nhb-eyebrow{
  background:rgba(80,80,80,.32);border-color:rgba(160,160,160,.4);color:#c8ccd6;
}
.node-hero-banner.is-closed .nhb-cta{opacity:.55;pointer-events:none;}
@media(max-width:820px){
  .nhb-inner{padding:32px 0;flex-direction:column;align-items:flex-start;gap:22px;}
  .nhb-side{align-items:flex-start;width:100%;}
  .nhb-countdown{width:100%;justify-content:space-between;}
  .nhb-cd-unit{min-width:0;flex:1 1 0;}
  .nhb-cd-unit span{font-size:1.5rem;}
  .nhb-cta{width:100%;text-align:center;}
}
@media(max-width:520px){
  .node-hero-banner{min-height:auto;}
  .nhb-media img{object-position:center 40%;}
  .nhb-scrim{background:
    linear-gradient(180deg, rgba(6,10,22,.82) 0%, rgba(6,10,22,.72) 60%, rgba(6,10,22,.9) 100%);}
  .nhb-title{font-size:1.5rem;}
  .nhb-title .nhb-price{font-size:1.3rem;}
}

/* ===== Node sale single card ===== */
.node-sale-single{
  display:flex;justify-content:center;margin-top:1.75rem;
}
.node-sale-card{max-width:560px;width:100%;}
.node-sale-single .join-card .btn[disabled]{
  opacity:.78;cursor:not-allowed;filter:saturate(.8);
}

/* ============ 04 TOKENOMICS ============ */
#tokenomics .body-lg{max-width:62ch}
.tk-subhead{font-family:var(--font-display);font-size:var(--text-lg);margin:var(--space-12) 0 var(--space-6);letter-spacing:-.01em}

/* --- TGE unlock callout --- */
.tge-callout{
  display:grid;grid-template-columns:minmax(200px,240px) 1fr;gap:var(--space-8);
  align-items:start;margin:var(--space-10) 0 var(--space-12);
  padding:var(--space-8);border-radius:var(--radius-lg);
  background:var(--color-surface);border:1px solid var(--color-border);
}
.tge-callout-main{border-right:1px solid color-mix(in srgb,var(--color-primary) 30%,var(--color-border));padding-right:var(--space-8)}
.tge-callout-label{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;
  letter-spacing:.13em;color:var(--color-text-muted);margin:0 0 .6rem;line-height:1.45}
.tge-callout-num{font-family:var(--font-display);font-size:clamp(2.75rem,2rem + 3.5vw,4.25rem);
  line-height:1;margin:0;color:var(--color-primary);font-weight:700;
  font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.02em}
.tge-callout-num span{font-size:.45em;margin-left:.1em;vertical-align:.35em}
.tge-callout-sub{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-faint);
  margin:.7rem 0 0;line-height:1.5}
.tge-callout-body p{font-size:var(--text-base);color:var(--color-text-muted);margin:0 0 var(--space-4);line-height:1.65}
.tge-callout-body p:last-child{margin-bottom:0}
.tge-callout-body strong{color:var(--color-text)}
.tge-callout-fine{font-size:var(--text-sm) !important;color:var(--color-text-muted) !important;opacity:.92}

/* --- allocation table --- */
.alloc-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--space-8) 0 0}
.alloc-table{width:100%;border-collapse:collapse;min-width:640px;text-align:left}
.alloc-caption{caption-side:top;text-align:left;font-family:var(--font-mono);font-size:var(--text-xs);
  text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-faint);padding-bottom:var(--space-4)}
.alloc-table thead th{font-family:var(--font-mono);font-size:var(--text-xs);text-transform:uppercase;
  letter-spacing:.1em;color:var(--color-text-muted);font-weight:500;
  padding:0 var(--space-5) .85rem 0;border-bottom:1px solid var(--color-border)}
.alloc-table tbody th,.alloc-table tbody td{
  padding:1.05rem var(--space-5) 1.05rem 0;border-bottom:1px solid var(--color-border);
  font-size:var(--text-sm);vertical-align:middle}
.alloc-table tbody th{font-weight:500;color:var(--color-text);font-family:var(--font-body)}
.alloc-table tbody tr:last-child th,.alloc-table tbody tr:last-child td{border-bottom:none}
.alloc-share{position:relative;min-width:132px;white-space:nowrap}
.alloc-bar{display:block;height:5px;width:var(--w);max-width:100px;border-radius:var(--radius-full);
  background:var(--color-primary);opacity:.5;margin-bottom:.45rem}
.alloc-pct{font-family:var(--font-mono);font-variant-numeric:tabular-nums lining-nums;color:var(--color-text)}
.alloc-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums lining-nums;
  color:var(--color-text-muted);white-space:nowrap}
.alloc-none{color:var(--color-text-faint)}
.alloc-flag{font-family:var(--font-mono);font-variant-numeric:tabular-nums lining-nums;
  color:var(--color-primary);white-space:nowrap}
.alloc-row-flag th[scope="row"]{color:var(--color-text)}
.alloc-row-flag{background:color-mix(in srgb,var(--color-primary) 5%,transparent)}

/* --- vesting grid --- */
.vest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}
@media (max-width:980px){.vest-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.vest-grid{grid-template-columns:1fr}}
.vest-item{padding:var(--space-6);border-radius:var(--radius-md);
  background:var(--color-surface);border:1px solid var(--color-border)}
.vest-item-flag{background:color-mix(in srgb,var(--color-primary) 7%,var(--color-surface))}
.vest-name{font-family:var(--font-display);font-size:var(--text-base);margin:0 0 .6rem;
  color:var(--color-text);line-height:1.35;display:flex;justify-content:space-between;
  align-items:baseline;gap:.75rem}
.vest-share{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-primary);
  font-variant-numeric:tabular-nums lining-nums;flex-shrink:0}
.vest-detail{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;line-height:1.6}
.vest-detail strong{color:var(--color-text)}

@media (max-width:760px){
  .tge-callout{grid-template-columns:1fr;gap:var(--space-6);padding:var(--space-6)}
  .tge-callout-main{border-right:none;border-bottom:1px solid var(--color-border);
    padding-right:0;padding-bottom:var(--space-6)}
}

/* ============================================================
   WHITELIST — počítadlo míst, banner jako button, modal formulář
   ============================================================ */

/* hero banner je teď <button>, ne <a> — resety */
button.node-hero-banner{
  width:100%; display:block; text-align:left;
  border:0; background:none; font:inherit; color:inherit;
  cursor:pointer; -webkit-appearance:none; appearance:none;
}
button.node-hero-banner:focus-visible{ outline:2px solid var(--color-accent,#E8B23A); outline-offset:-2px; }

/* --- počítadlo míst --- */
.wl-meter{ margin-top:var(--space-4); max-width:420px; }
.wl-bar{
  position:relative; height:8px; border-radius:var(--radius-full);
  background:rgba(255,255,255,.10); overflow:hidden;
  border:1px solid var(--color-border);
}
[data-theme="light"] .wl-bar{ background:rgba(0,0,0,.07); }
.wl-bar > span{
  position:absolute; inset:0 auto 0 0; width:0%;
  border-radius:var(--radius-full);
  background:linear-gradient(90deg,#E8B23A,#f7d488);
  transition:width .6s cubic-bezier(.22,1,.36,1);
}
.wl-meter-lbl{
  margin:var(--space-2) 0 0; font-size:var(--text-sm);
  color:var(--color-text-muted); font-family:var(--font-mono);
  letter-spacing:.01em;
}
.wl-meter-lbl strong{ color:#E8B23A; font-weight:700; }
.wl-meter-card{ margin:var(--space-5) 0 var(--space-5); max-width:none; }
.wl-meter-modal{ margin:0 0 var(--space-6); max-width:none; }

/* --- modal --- */
.wl-modal{ position:fixed; inset:0; z-index:9999; display:flex;
  align-items:flex-start; justify-content:center; padding:var(--space-6) var(--space-4); overflow-y:auto; }
.wl-modal[hidden]{ display:none; }
.wl-modal-backdrop{ position:fixed; inset:0; background:rgba(3,5,9,.82);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); border:0; }
.wl-modal-panel{
  position:relative; width:100%; max-width:560px; margin:auto;
  background:var(--color-surface); border:1px solid var(--color-border);
  border-radius:var(--radius-xl); padding:var(--space-8);
  box-shadow:0 30px 80px rgba(0,0,0,.55);
  animation:wlIn .32s cubic-bezier(.22,1,.36,1);
}
@keyframes wlIn{ from{ opacity:0; transform:translateY(14px) scale(.985); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .wl-modal-panel{ animation:none; } }
.wl-modal-x{
  position:absolute; top:12px; right:14px; width:36px; height:36px;
  display:grid; place-items:center; font-size:24px; line-height:1;
  background:none; border:1px solid transparent; border-radius:var(--radius-full);
  color:var(--color-text-muted); cursor:pointer;
}
.wl-modal-x:hover{ color:inherit; border-color:var(--color-border); }
.wl-modal-kicker{
  margin:0 0 var(--space-2); font-family:var(--font-mono); font-size:var(--text-xs);
  text-transform:uppercase; letter-spacing:.14em; color:#E8B23A;
}
.wl-modal-title{ margin:0 0 var(--space-3); font-family:var(--font-display);
  font-size:var(--text-2xl); line-height:1.15; }
.wl-modal-lede{ margin:0 0 var(--space-6); color:var(--color-text-muted);
  font-size:var(--text-base); line-height:1.65; }
.wl-modal-lede strong{ color:inherit; }

/* --- formulář --- */
.wl-form{ display:grid; gap:var(--space-5); }
.wl-field{ display:grid; gap:6px; }
.wl-label{ font-size:var(--text-sm); font-weight:600; letter-spacing:.01em; }
.wl-label em{ color:#E8B23A; font-style:normal; }
.wl-opt{ color:var(--color-text-muted); font-weight:400; font-size:var(--text-xs);
  text-transform:uppercase; letter-spacing:.1em; margin-left:6px; }
.wl-form input{
  width:100%; padding:13px 15px; font:inherit; font-size:var(--text-base);
  color:inherit; background:var(--color-surface-2);
  border:1px solid var(--color-border); border-radius:var(--radius-md);
  transition:border-color .18s, box-shadow .18s;
}
.wl-form input::placeholder{ color:var(--color-text-muted); opacity:.7; }
.wl-form input:focus{ outline:none; border-color:#E8B23A;
  box-shadow:0 0 0 3px rgba(232,178,58,.16); }
.wl-form input[aria-invalid="true"]{ border-color:#e0574f; }
.wl-form input[name="wallet"]{ font-family:var(--font-mono); font-size:var(--text-sm); }
.wl-hint{ font-size:var(--text-xs); color:var(--color-text-muted); line-height:1.55; }
.wl-error{ margin:0; padding:11px 14px; border-radius:var(--radius-md);
  background:rgba(224,87,79,.12); border:1px solid rgba(224,87,79,.4);
  color:#ff9d97; font-size:var(--text-sm); }
.wl-submit{ width:100%; }
.wl-submit[disabled]{ opacity:.6; cursor:progress; }
.wl-fine{ margin:0; font-size:var(--text-xs); color:var(--color-text-muted); line-height:1.6; }

/* --- potvrzení --- */
.wl-done-mark{
  width:56px; height:56px; margin:0 0 var(--space-5); display:grid; place-items:center;
  border-radius:var(--radius-full); background:rgba(232,178,58,.14);
  border:1px solid rgba(232,178,58,.45); color:#E8B23A; font-size:26px; font-weight:700;
}
.wl-next, .wl-prep{
  margin:0 0 var(--space-6); padding:var(--space-5);
  background:var(--color-surface-2); border:1px solid var(--color-border);
  border-radius:var(--radius-lg);
}
.wl-next h4, .wl-prep h4{
  margin:0 0 var(--space-3); font-family:var(--font-mono); font-size:var(--text-xs);
  text-transform:uppercase; letter-spacing:.13em; color:var(--color-text-muted);
}
.wl-next ol, .wl-prep ul{ margin:0; padding-left:1.25em; display:grid; gap:10px;
  font-size:var(--text-sm); line-height:1.6; color:var(--color-text-muted); }
.wl-next ol strong, .wl-prep ul strong{ color:inherit; }
[data-theme="dark"] .wl-next ol strong, [data-theme="dark"] .wl-prep ul strong{ color:#fff; }

@media (max-width:640px){
  .wl-modal{ padding:var(--space-3); }
  .wl-modal-panel{ padding:var(--space-6) var(--space-5); border-radius:var(--radius-lg); }
  .wl-modal-title{ font-size:var(--text-xl); }
}

/* --- neaktivní stavy CTA (whitelist full / phase closed) --- */
.btn[disabled],
.jc-btn[disabled],
.node-hero-banner[disabled]{
  cursor: default;
  pointer-events: none;
}
.btn.btn-primary[disabled],
.jc-btn.btn-primary[disabled]{
  background: #23272f;
  border-color: #34394330;
  color: #8a8f99;
  box-shadow: none;
  filter: none;
}
.node-hero-banner[disabled] .nhb-cta{
  background: #23272f;
  border-color: #34394330;
  color: #8a8f99;
  box-shadow: none;
}
.node-hero-banner[disabled]{ opacity: .92; }

/* --- víc chyb ve formuláři najednou --- */
.wl-error ul{ margin: .4rem 0 0; padding-left: 1.1rem; }
.wl-error li{ margin: .18rem 0; }
.wl-error span{ display: block; font-weight: 700; }

/* utlumená stužka u uzavřené / naplněné fáze */
.jc-ribbon.is-off{
  background: #23272f;
  border-color: #34394330;
  color: #9aa0aa;
  box-shadow: none;
}

.wl-dup-note{margin-top:.6rem;padding:.55rem .75rem;border-radius:8px;background:rgba(255,183,63,.10);color:#f0c674;font-size:.9rem;line-height:1.45}
a[data-wl-open].is-off{opacity:.5;pointer-events:none}
