  :root{
    --void:#0C0A18;
    --void-deep:#07060F;
    --panel:#151d38;
    --panel-2:#1F1B3F;
    --panel-3:#292352;
    --hairline:rgba(180,170,220,0.16);
    --hairline-strong:rgba(180,170,220,0.32);

    --ink:#EDEBF5;
    --ink-dim:#A29CC4;
    --ink-faint:#6B6592;

    --cosmic:#8B6FD6;
    --cosmic-deep:#6A4FB8;
    --cosmic-tint:rgba(139,111,214,0.14);

    --flame:#E8A33D;
    --flame-deep:#B87A1F;
    --flame-tint:rgba(232,163,61,0.14);

    --terra:#45A594;
    --terra-deep:#2E7C6E;
    --terra-tint:rgba(69,165,148,0.14);

    --focus:#6FE7D1;

    --r-s:8px;
    --r-m:14px;
    --r-l:26px;
    --maxw:1200px;

    --shadow-card: 0 1px 2px rgba(0,0,0,0.4), 0 20px 44px -24px rgba(0,0,0,0.75);
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
  }

  body{
    margin:0;
    background:var(--void);
    color:var(--ink);
    font-family:'Inter', Arial, sans-serif;
    font-size:16.5px;
    line-height:1.62;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3{
    font-family:'Exo 2', 'Inter', sans-serif;
    color:var(--ink);
    line-height:1.14;
    margin:0 0 0.5em 0;
    font-weight:700;
    letter-spacing:-0.005em;
  }
  h1{ font-size:clamp(2.15rem, 4.3vw, 3.3rem); font-weight:800; }
  h2{ font-size:clamp(1.55rem, 2.8vw, 2.15rem); }
  h3{ font-family:'Inter', sans-serif; font-size:1.03rem; font-weight:700; }

  p{ margin:0 0 1em 0; max-width:64ch; color:var(--ink-dim); }
  a{ color:var(--cosmic); }
  ul{ margin:0; padding:0; list-style:none; }
  img,svg{ display:block; max-width:100%; }

  .container{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }
  .eyebrow{
    font-family:'Space Mono', Consolas, monospace;
    font-size:0.76rem; font-weight:700; letter-spacing:0.11em; text-transform:uppercase;
    color:var(--cosmic); margin:0 0 0.9em 0;
  }
  .eyebrow.flame{ color:var(--flame); }
  .eyebrow.terra{ color:var(--terra); }

  .lede{ font-size:1.07rem; color:var(--ink-dim); max-width:60ch; }

  a:focus-visible, button:focus-visible, [tabindex]:focus-visible{
    outline:3px solid var(--focus); outline-offset:3px; border-radius:4px;
  }


  /* ============================================================
     BUTTONS + HEADER
     ============================================================ */
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:9px;
    font-family:'Inter', Arial, sans-serif; font-weight:600; font-size:0.97rem;
    padding:14px 26px; min-height:50px; border-radius:var(--r-s); border:1.5px solid transparent;
    cursor:pointer; text-decoration:none; transition:transform .12s ease, background .15s ease, border-color .15s ease;
  }
  @media (prefers-reduced-motion: reduce){ .btn{ transition:none; } }
  .btn:active{ transform:translateY(1px); }
  .btn-primary{ background:var(--flame); color:#241503; }
  .btn-primary:hover{ background:#F4B85A; }
  .btn-secondary{ background:var(--panel); border-color:var(--hairline-strong); color:var(--ink); }
  .btn-secondary:hover{ background-color: var(--flame); border-color:var(--flame); color:#fff; }
  .btn-row{ display:flex; gap:14px; flex-wrap:wrap; }
  .icon{ width:1em; height:1em; flex:none; }
  .icon-lg{ width:28px; height:28px; }

  header.site-header{ background:rgba(255,255,255,0.9); backdrop-filter:blur(6px); border-bottom:1px solid var(--hairline); position:sticky; top:0; z-index:100; }
  .header-row{ display:flex; align-items:center; justify-content:space-between; padding:10px 0; gap:20px; }
  .logo{ font-family:'Exo 2', sans-serif; font-size:1.05rem; font-weight:800; color:var(--ink); text-decoration:none; line-height:1.2; display:block; }
  .logo .sub{ display:block; font-family:'Space Mono', monospace; font-size:0.6rem; letter-spacing:0.09em; color:var(--ink-faint); font-weight:400; margin-top:2px; }
  .logo .dot{ color:var(--flame); }
  nav.primary-nav ul{ display:flex; gap:24px; }
  nav.primary-nav a{ color:var(--void); text-decoration:none; font-weight:500; font-size:1.09rem; padding:6px 2px; border-bottom:2px solid transparent; }
  nav.primary-nav a:hover{ color:var(--flame); border-bottom-color:var(--flame); }
  .header-ctas{ display:flex; align-items:center; gap:10px; }
  .header-ctas .btn{ padding:10px 16px; min-height:40px; font-size:0.83rem; }
  .nav-toggle{ display:none; }

  @media (max-width: 980px){
    nav.primary-nav{ display:none; }
    .header-ctas .btn-secondary{ display:none; }
    .nav-toggle{ display:inline-flex; background:var(--panel-2); color:var(--ink); border:1px solid var(--hairline); border-radius:6px; min-width:44px; min-height:44px; align-items:center; justify-content:center; cursor:pointer; }
    nav.primary-nav.open{ display:block; position:absolute; left:0; right:0; top:100%; background:var(--void); border-bottom:1px solid var(--hairline); padding:8px 0; }
    nav.primary-nav.open ul{ flex-direction:column; gap:0; }
    nav.primary-nav.open a{ display:block; padding:14px 24px; }
  }


  /* ============================================================
     HERO + STARFIELD
     ============================================================ */
  .hero{ position:relative; overflow:hidden; padding:56px 0 0; }
  .starfield{ position:absolute; inset:0; z-index:0; pointer-events:none; }
  .hero .container{ position:relative; z-index:1; }
  .hero-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:44px; align-items:center; padding-bottom:52px; }
  @media (max-width:980px){ .hero-grid{ grid-template-columns:1fr; } }

  .hero-dates{
    display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; font-family:'Space Mono', monospace;
    font-size:0.76rem; color:var(--ink-dim); border:1px solid var(--hairline-strong); border-radius:999px; padding:8px 16px; margin-bottom:22px;
  }
  .hero-dates strong{ color:var(--flame); font-weight:700; }
  .hero-dates .sep{ color:var(--ink-faint); }
  .hero .lede{ margin-bottom:1.6em; }
  .hero-trust{ margin-top:24px; padding-top:20px; border-top:1px solid var(--hairline); font-size:0.85rem; color:var(--ink-faint); }
  .hero-trust strong{ color:var(--ink-dim); }

  @keyframes twinkle{ 0%,100%{ opacity:0.25; } 50%{ opacity:0.9; } }
  .star{ animation:twinkle 3.4s ease-in-out infinite; }
  @media (prefers-reduced-motion: reduce){ .star{ animation:none; opacity:0.6; } }

  /* ============================================================
     SECTION SHELL
     ============================================================ */
  section{ padding:74px 0; }
  section.alt{ background:var(--panel); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }
  .section-head{ max-width:760px; margin-bottom:38px; }
  .section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

  /* ============================================================
     MARKET DASHBOARD
     ============================================================ */
  .stat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  @media (max-width:980px){ .stat-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:620px){ .stat-grid{ grid-template-columns:1fr; } }
  .stat-card{ background:var(--panel-2); border:1px solid var(--hairline); border-left:3px solid var(--cosmic); border-radius:var(--r-m); padding:26px 24px; box-shadow:var(--shadow-card); }
  .stat-card.flame{ border-left-color:var(--flame); }
  .stat-card.terra{ border-left-color:var(--terra); }
  .stat-num{ font-family:'Exo 2', sans-serif; font-size:1.8rem; font-weight:800; color:var(--ink); display:block; margin-bottom:4px; }
  .stat-delta{ font-family:'Space Mono', monospace; font-size:0.74rem; color:var(--cosmic); margin-bottom:14px; display:block; font-weight:700; }
  .stat-card.flame .stat-delta{ color:var(--flame); }
  .stat-card.terra .stat-delta{ color:var(--terra); }
  .stat-card h3{ margin-bottom:0.4em; font-size:0.98rem; }
  .stat-card p{ color:var(--ink-dim); font-size:0.91rem; margin-bottom:0; max-width:none; }
  .sources-line{ margin-top:22px; font-size:0.81rem; color:var(--ink-faint); max-width:none; }


  /* ============================================================
     STRATEGIC DRIVERS
     ============================================================ */
  .driver-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
  @media (max-width:980px){ .driver-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .driver-grid{ grid-template-columns:1fr; } }
  .driver-card{ background:var(--panel-2); border:1px solid var(--hairline); border-radius:var(--r-m); padding:22px 20px; }
  .driver-card .icon-lg{ color:var(--flame); margin-bottom:12px; }
  .driver-card h3{ font-size:0.95rem; margin-bottom:6px; }
  .driver-card p{ font-size:0.86rem; margin:0; max-width:none; color:var(--ink-dim); }

  /* ============================================================
     ORBIT TO GROUND — signature altitude diagram
     ============================================================ */
  .altitude-wrap{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:16px; align-items:stretch; margin-bottom:20px; }
  @media (max-width:940px){ .altitude-wrap{ grid-template-columns:1fr; } }

  .altitude-band{ border-radius:var(--r-m); padding:24px 26px; margin-bottom:14px; border:1px solid var(--hairline); }
  .altitude-band:last-child{ margin-bottom:0; }
  .altitude-band.orbit{ background:var(--cosmic-tint); border-color:rgba(139,111,214,0.4); }
  .altitude-band.atmo{ background:var(--flame-tint); border-color:rgba(232,163,61,0.4); }
  .altitude-band.ground{ background:var(--terra-tint); border-color:rgba(69,165,148,0.4); }
  .altitude-label{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
  .altitude-label .icon-lg{ flex:none; }
  .altitude-band.orbit .icon-lg{ color:var(--cosmic); }
  .altitude-band.atmo .icon-lg{ color:var(--flame); }
  .altitude-band.ground .icon-lg{ color:var(--terra); }
  .altitude-tag{ font-family:'Space Mono', monospace; font-size:0.68rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-faint); }
  .altitude-band h3{ margin:0; font-size:1.02rem; }
  .altitude-band ul{ display:flex; flex-wrap:wrap; gap:8px; }
  .altitude-band li{ font-size:0.82rem; background:rgba(255,255,255,0.06); border-radius:999px; padding:5px 12px; color:var(--ink-dim); }

  .crosscut-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  @media (max-width:700px){ .crosscut-grid{ grid-template-columns:1fr; } }
  .crosscut-card{ background:var(--panel-2); border:1px dashed var(--hairline-strong); border-radius:var(--r-m); padding:20px 22px; display:flex; gap:14px; }
  .crosscut-card .icon-lg{ color:var(--ink-dim); flex:none; }
  .crosscut-card h3{ margin-bottom:5px; font-size:0.95rem; }
  .crosscut-card p{ margin:0; font-size:0.86rem; color:var(--ink-dim); max-width:none; }

  /* ============================================================
     EXHIBITOR CATEGORIES (8-card grid)
     ============================================================ */
  .exhib-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
  @media (max-width:980px){ .exhib-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .exhib-grid{ grid-template-columns:1fr; } }
  .exhib-card{ background:var(--panel-2); border:1px solid var(--hairline); border-radius:var(--r-m); padding:20px; box-shadow:var(--shadow-card); }
  .exhib-card .icon-lg{ color:var(--cosmic); margin-bottom:10px; }
  .exhib-card h3{ font-size:0.92rem; margin-bottom:10px; min-height:2.4em; }
  .exhib-card ul{ display:flex; flex-direction:column; gap:6px; }
  .exhib-card li{ font-size:0.79rem; color:var(--ink-dim); padding-left:12px; position:relative; }
  .exhib-card li::before{ content:"—"; position:absolute; left:0; color:var(--ink-faint); }

  /* ============================================================
     VISITOR CATEGORIES
     ============================================================ */
  .visitor-columns{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
  @media (max-width:980px){ .visitor-columns{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .visitor-columns{ grid-template-columns:1fr; } }
  .visitor-col{ background:var(--panel-2); border:1px solid var(--hairline); border-radius:var(--r-m); padding:20px; }
  .visitor-col .icon-lg{ color:var(--terra); margin-bottom:10px; }
  .visitor-col h3{ font-family:'Space Mono', monospace; text-transform:uppercase; letter-spacing:0.03em; font-size:0.74rem; color:var(--ink-faint); font-weight:700; margin-bottom:12px; min-height:2.2em; }
  .visitor-col li{ font-size:0.83rem; color:var(--ink-dim); margin-bottom:9px; padding-left:12px; position:relative; }
  .visitor-col li::before{ content:"—"; position:absolute; left:0; color:var(--ink-faint); }

  /* ============================================================
     AUDIENCE TABS
     ============================================================ */
  .tab-buttons{ display:flex; gap:14px; margin-bottom:34px; flex-wrap:wrap; }
  .tab-btn{ display:flex; align-items:center; gap:10px; background:var(--panel-2); border:1.5px solid var(--hairline); border-radius:999px; padding:12px 22px; cursor:pointer; font-family:'Inter', sans-serif; font-weight:600; font-size:0.94rem; color:var(--ink-dim); }
  .tab-btn .icon{ width:17px; height:17px; }
  .tab-btn[aria-selected="true"]{ border-color:var(--flame); color:var(--ink); background:var(--flame-tint); }
  .tab-panel{ display:none; }
  .tab-panel.active{ display:block; }
  .reason-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  @media (max-width:820px){ .reason-grid{ grid-template-columns:1fr; } }
  .reason-card{ background:var(--panel-2); border:1px solid var(--hairline); border-radius:var(--r-m); padding:20px 22px; display:flex; gap:14px; box-shadow:var(--shadow-card); }
  .reason-card .num{ font-family:'Space Mono', monospace; color:var(--flame); font-weight:700; font-size:0.84rem; flex:none; padding-top:2px; }
  .reason-card p{ margin:0; font-size:0.91rem; color:var(--ink-dim); max-width:none; }
  .reason-card strong{ color:var(--ink); }

  /* ============================================================
     CLUSTER CALLOUT
     ============================================================ */
  .cluster-strip{ display:flex; align-items:center; flex-wrap:wrap; gap:16px 26px; padding:26px 28px; background:var(--panel-2); border:1px solid var(--hairline-strong); border-radius:var(--r-m); }
  .cluster-strip .cs-label{ font-family:'Space Mono', monospace; font-size:0.72rem; text-transform:uppercase; letter-spacing:0.07em; color:var(--ink-faint); width:100%; }
  .cluster-name{ font-family:'Exo 2', sans-serif; font-weight:700; font-size:0.98rem; color:var(--ink); display:flex; align-items:center; gap:8px; }
  .cluster-name .tag{ font-family:'Space Mono', monospace; font-size:0.68rem; color:var(--ink-faint); font-weight:400; }
  .cluster-name.this-show{ color:var(--flame); }

  /* ============================================================
     SNAPSHOT + CTA
     ============================================================ */
  .snapshot-panel{ background:var(--panel-2); border:1px solid var(--hairline-strong); border-radius:var(--r-l); padding:34px; }
  .snapshot-facts{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
  @media (max-width:820px){ .snapshot-facts{ grid-template-columns:1fr 1fr; } }
  .snapshot-facts .f-label{ font-family:'Space Mono', monospace; font-size:0.71rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink-faint); display:block; margin-bottom:6px; }
  .snapshot-facts .f-value{ font-family:'Exo 2', sans-serif; font-weight:700; font-size:0.98rem; color:var(--ink); }

  .cta-band{ background:linear-gradient(135deg, var(--panel-2), var(--panel)); border:1px solid var(--hairline-strong); border-radius:var(--r-l); padding:50px 44px; text-align:center; }
  .cta-band h2{ margin-bottom:14px; }
  .cta-band p{ color:var(--ink-dim); margin:0 auto 28px; max-width:54ch; }
  .cta-band .btn-row{ justify-content:center; }

  /* ============================================================
     FOOTER
     ============================================================ */
  footer.site-footer{ background:var(--void-deep); border-top:1px solid var(--hairline); padding:54px 0 28px; }
  .footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:36px; padding-bottom:34px; border-bottom:1px solid var(--hairline); }
  @media (max-width:760px){ .footer-top{ grid-template-columns:1fr; } }
  footer .logo{ color:var(--ink); }
  .footer-brand p{ margin-top:14px; font-size:0.91rem; max-width:38ch; color:var(--ink-faint); }
  footer h3{ color:var(--ink); font-family:'Space Mono', monospace; font-size:0.75rem; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:16px; }
  footer ul li{ margin-bottom:11px; }
  footer a{ color:var(--ink-dim); text-decoration:none; font-size:0.91rem; }
  footer a:hover{ color:var(--flame); }
  .footer-contact-item{ display:flex; gap:10px; margin-bottom:12px; align-items:flex-start; font-size:0.89rem; color:var(--ink-dim); }
  .footer-contact-item .icon{ color:var(--flame); flex:none; margin-top:3px; width:15px; height:15px; }
  .footer-bottom{ padding-top:22px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; color:var(--ink-faint); font-size:0.81rem; }

  .skip-link{
    position:absolute; left:12px; top:-60px; background:var(--flame); color:#241503;
    padding:12px 18px; border-radius:6px; font-weight:700; z-index:1000; transition:top .15s ease;
  }
  .skip-link:focus{ top:12px; }

