:root{
    --bg:#0E0D0B;
    --bg-raised:#161510;
    --hairline:rgba(255,255,255,0.07);
    --hairline-strong:rgba(255,255,255,0.14);
    --ink:#F5F3EE;
    --ink-soft:#AFA79A;
    --ink-faint:#8C8577;
    --gold:#C9A56B;
    --blue:#3E6FF2;
    --blue-bright:#6C93FF;
    --serif:'New York','Iowan Old Style','Palatino Linotype','Georgia',serif;
    --sans:-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',Arial,sans-serif;
    --mono:ui-monospace,'SF Mono','Cascadia Code','Consolas',monospace;
    --max:1240px;
    --shadow-rest:0 30px 70px -36px rgba(0,0,0,0.55);
    --shadow-lift:0 34px 80px -30px rgba(0,0,0,0.6);
    --d0:0s; --d1:.15s; --d2:.35s; --d3:.55s; --d4:.7s; --d5:1s; --d6:1.2s;
  }
  @media (max-width:600px){
    :root{ --d0:0s; --d1:.1s; --d2:.22s; --d3:.32s; --d4:.42s; --d5:.58s; --d6:.7s; }
  }
  *{box-sizing:border-box;}
  /* Offset anchor jumps by the sticky header height so a section's heading
     lands below the header instead of behind it. */
  html{scroll-behavior:smooth;scroll-padding-top:clamp(96px,12vw,124px);}
  body{
    margin:0;background:var(--bg);color:var(--ink);
    font-family:var(--sans);font-size:16px;line-height:1.7;
    -webkit-font-smoothing:antialiased;
  }
  ::selection{background:var(--blue);color:#F8F9FF;}
  a{color:inherit;text-decoration:none;}
  :focus-visible{outline:2px solid var(--blue-bright);outline-offset:3px;border-radius:2px;}
  .wrap{max-width:var(--max);margin:0 auto;padding-left:clamp(24px,5vw,64px);padding-right:clamp(24px,5vw,64px);}

  /* ---------- five text styles ---------- */
  .t-display{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-0.01em;text-wrap:balance;margin:0;color:var(--ink);font-size:clamp(2.5rem,5.2vw,4.3rem);}
  .t-h1{font-family:var(--serif);font-weight:400;line-height:1.2;text-wrap:balance;margin:0;color:var(--ink);font-size:clamp(1.85rem,3.1vw,2.5rem);}
  .t-h2{font-family:var(--sans);font-weight:600;line-height:1.4;letter-spacing:0.005em;margin:0;color:var(--ink);font-size:1.04rem;}
  .t-body{font-family:var(--sans);font-weight:400;line-height:1.75;margin:0;color:var(--ink-soft);font-size:1rem;}
  .t-caption{font-family:var(--mono);font-weight:500;line-height:1.5;letter-spacing:0.16em;text-transform:uppercase;margin:0;color:var(--ink-faint);font-size:0.72rem;}

  .eyebrow{font-family:var(--mono);font-size:0.72rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--gold);font-weight:500;}
  h1,h2,h3{margin:0;color:var(--ink);}
  p{margin:0;color:var(--ink-soft);}
  .hairline{border:none;border-top:1px solid var(--hairline);margin:0;}
  section{position:relative;}
  svg.ic{width:24px;height:24px;flex-shrink:0;color:var(--ink-soft);}

  /* ---------- nav ---------- */
  header{
    position:sticky;top:0;z-index:100;
    display:flex;align-items:center;justify-content:space-between;
    padding:20px clamp(24px,5vw,64px);
    background:rgba(14,13,11,0.86);
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border-bottom:1px solid transparent;transition:border-color .4s ease;
  }
  header.scrolled{border-bottom-color:var(--hairline);}
  .brand{display:flex;align-items:center;gap:12px;}
  .brand-mark{width:30px;height:30px;flex-shrink:0;display:block;color:var(--gold);}
  .brand-mark svg{width:100%;height:100%;display:block;}
  .brand-word{font-family:var(--sans);font-size:0.92rem;letter-spacing:0.03em;}
  .brand-word b{font-weight:600;}
  .brand-word i{font-style:normal;color:var(--ink-faint);font-weight:400;margin-left:4px;}
  nav.links{display:flex;gap:36px;}
  nav.links a{font-size:0.87rem;color:var(--ink-soft);position:relative;padding-bottom:3px;transition:color .25s ease;}
  nav.links a:hover{color:var(--ink);}
  nav.links a::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--blue-bright);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;}
  nav.links a:hover::after{transform:scaleX(1);}
  .nav-right{display:flex;align-items:center;gap:10px;}
  .menu-btn{display:none;width:40px;height:40px;align-items:center;justify-content:center;background:none;border:1px solid var(--hairline-strong);color:var(--ink);cursor:pointer;}
  .menu-btn svg{width:18px;height:18px;}
  .mobile-nav{display:none;}

  /* ---------- buttons ---------- */
  .cta{
    display:inline-flex;align-items:center;gap:10px;
    background:var(--blue);color:#F8F9FF;
    font-family:var(--sans);font-weight:600;font-size:0.9rem;
    padding:14px 26px;border:1px solid var(--blue);cursor:pointer;
    min-height:48px;
    transition:box-shadow .35s ease, transform .35s ease, background .35s ease;
    white-space:nowrap;
  }
  .cta:hover{
    background:var(--blue-bright);border-color:var(--blue-bright);
    box-shadow:0 0 0 1px var(--blue-bright), 0 12px 34px -10px rgba(62,111,242,0.65);
    transform:translateY(-1px);
  }
  .cta.small{padding:10px 20px;font-size:0.82rem;min-height:40px;}
  .cta svg{width:14px;height:14px;transition:transform .3s ease;}
  .cta:hover svg{transform:translateX(3px);}

  .ghost{
    display:inline-flex;align-items:center;gap:8px;
    background:transparent;color:var(--ink-soft);
    font-family:var(--mono);font-size:0.78rem;letter-spacing:0.03em;
    padding:13px 20px;border:1px solid var(--hairline-strong);
    min-height:48px;
    transition:color .25s ease,border-color .25s ease;
    white-space:nowrap;
  }
  .ghost:hover{color:var(--blue-bright);border-color:var(--blue);}
  .ghost.small{padding:9px 16px;font-size:0.74rem;min-height:40px;}

  /* ---------- hero ----------
     A cinematic first screen: the hero fills most of the viewport and the
     copy is vertically centred, so there is deliberate, generous space
     between the sticky header and the first line of text — never cramped,
     never overlapping, at any height. */
  .hero{
    display:grid;grid-template-columns:1.08fr 0.92fr;gap:clamp(40px,6vw,88px);
    align-items:center;
    min-height:min(90vh,880px);
    padding-top:clamp(88px,11vw,140px);padding-bottom:clamp(72px,9vw,120px);
  }
  .hero-copy{max-width:36rem;}
  .hero .eyebrow{display:inline-block;}
  .hero .t-display{margin-top:28px;font-size:clamp(2.6rem,5.6vw,4.6rem);}
  .hero .t-body{max-width:46ch;margin-top:30px;font-size:1.08rem;color:var(--ink-soft);}
  .hero .actions{display:flex;align-items:center;gap:14px;margin-top:44px;flex-wrap:wrap;}
  .hero .badge{display:flex;align-items:center;gap:10px;margin-top:48px;color:var(--ink-faint);}
  .globe-frame{position:relative;display:flex;align-items:center;justify-content:center;height:min(500px,52vw);}
  canvas#globe{width:100%;height:100%;}

  /* ---------- proof strip ---------- */
  .stats{display:flex;gap:clamp(28px,5vw,64px);flex-wrap:wrap;padding:44px 0;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);}
  .stat{flex:1;min-width:150px;}
  .stat .eyebrow{display:block;margin-bottom:14px;}
  .stat .num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:clamp(1.6rem,2.6vw,2.1rem);color:var(--ink);}
  .stat .num small{font-size:0.5em;color:var(--ink-faint);margin-left:2px;}
  .stat .label{font-size:0.82rem;color:var(--ink-faint);margin-top:6px;}

  /* ---------- section rhythm ---------- */
  .section{padding-top:clamp(90px,11vw,156px);padding-bottom:clamp(90px,11vw,156px);}
  .section-head{max-width:660px;margin-bottom:clamp(52px,6.5vw,84px);}
  .section-head .t-h1{margin-top:16px;}
  .section-head .t-body{margin-top:18px;max-width:58ch;}

  /* ---------- about: mission/vision + values ---------- */
  .pillars{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
  .pillar .idx{color:var(--ink-faint);}
  .pillar .t-h2{margin-top:16px;font-size:1.28rem;}
  .pillar .t-body{margin-top:14px;}
  .values{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;margin-top:72px;}
  .value .vn{color:var(--ink-faint);}
  .value .vt{font-size:0.92rem;color:var(--ink);margin-top:10px;font-weight:600;}

  /* ---------- device / product mockup ---------- */
  .device{margin-top:clamp(56px,6.5vw,84px);background:var(--bg-raised);box-shadow:var(--shadow-rest);border-radius:6px;overflow:hidden;}
  .device-bar{display:flex;align-items:center;gap:8px;padding:16px 22px;border-bottom:1px solid var(--hairline);}
  .device-bar i{width:8px;height:8px;border-radius:50%;background:var(--ink-faint);opacity:0.45;}
  .device-bar .url{margin-left:14px;font-family:var(--mono);font-size:0.72rem;color:var(--ink-faint);letter-spacing:0.02em;}
  .device-body{padding:clamp(32px,4.5vw,60px);}
  .device-body .dtitle{font-size:1.28rem;}
  .device-body .dsub{font-size:0.9rem;color:var(--ink-faint);margin-top:8px;letter-spacing:0.02em;text-transform:none;font-family:var(--sans);}
  .officebar{display:grid;grid-template-columns:repeat(6,1fr);gap:20px;margin-top:44px;}
  .otile{padding:22px 12px;text-align:center;background:var(--bg);border-radius:4px;}
  .otile svg.ic{margin:0 auto;color:var(--ink-soft);}
  .otile .oname{margin-top:14px;font-size:0.78rem;letter-spacing:0.02em;color:var(--ink);font-weight:600;}
  .product-cta{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:16px;padding:26px clamp(32px,4.5vw,60px);border-top:1px solid var(--hairline);}

  /* ---------- executive team ---------- */
  .execgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--hairline);border-radius:6px;overflow:hidden;}
  .execcard{padding:36px 32px;background:var(--bg);transition:background .3s ease, box-shadow .3s ease, transform .3s ease;position:relative;z-index:1;}
  .execcard:hover{background:var(--bg-raised);box-shadow:var(--shadow-lift);transform:translateY(-2px);z-index:2;}
  .execcard svg.ic{color:var(--ink-soft);}
  .execcard .eoffice{font-family:var(--mono);font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-faint);margin-top:20px;}
  .execcard .t-h2{margin-top:10px;font-size:1.1rem;}
  .execcard p.desc{margin-top:14px;font-size:0.93rem;}
  .execcard .outcome{margin-top:18px;font-size:0.85rem;color:var(--ink);}
  .execcard .outcome b{color:var(--blue-bright);font-weight:600;}
  .execcard .tags{margin-top:14px;font-size:0.76rem;color:var(--ink-faint);line-height:1.7;}

  /* ---------- philosophy ---------- */
  .philosophy{background:var(--bg-raised);padding-top:clamp(96px,11vw,156px);padding-bottom:clamp(96px,11vw,156px);text-align:center;}
  .philosophy .t-h1{margin:24px auto 0;max-width:820px;font-size:clamp(1.6rem,3.2vw,2.5rem);line-height:1.34;}
  .philosophy .t-h1 em{font-style:normal;color:var(--gold);}
  .phil-tags{display:flex;justify-content:center;gap:36px;flex-wrap:wrap;margin-top:38px;}
  .phil-tags span{font-family:var(--mono);font-size:0.74rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-faint);}

  /* ---------- generic list-grid (technology / capabilities / trust) ---------- */
  .listgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:44px 36px;}
  .litem .ln{color:var(--ink-faint);}
  .litem .t-h2{margin-top:12px;font-size:0.98rem;}
  .litem p{margin-top:10px;font-size:0.87rem;}

  /* ---------- onboarding ---------- */
  .onboard{display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:center;background:var(--bg-raised);box-shadow:var(--shadow-rest);border-radius:6px;}
  .onb-col{padding:clamp(32px,4.5vw,48px);}
  .onb-col h3{font-family:var(--mono);font-size:0.72rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-faint);}
  .onb-col ul{list-style:none;margin:24px 0 0;padding:0;display:flex;flex-direction:column;gap:15px;}
  .onb-col li{font-size:0.95rem;color:var(--ink);padding-left:18px;position:relative;}
  .onb-col li::before{content:'';position:absolute;left:0;top:9px;width:6px;height:1px;background:var(--ink-faint);}
  .onb-div{display:flex;align-items:center;justify-content:center;padding:0 26px;}
  .onb-div svg{width:22px;height:22px;color:var(--blue-bright);}

  /* ---------- languages ---------- */
  .langgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 28px;}
  .lang{font-family:var(--sans);font-size:0.94rem;color:var(--ink-soft);padding-bottom:14px;border-bottom:1px solid var(--hairline);}

  /* ---------- roadmap ---------- */
  .roadmap{position:relative;display:flex;justify-content:space-between;padding-top:10px;}
  .roadmap::before{content:'';position:absolute;top:16px;left:0;right:0;height:1px;background:var(--hairline-strong);}
  .rm-item{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;padding:0 6px;}
  .rm-dot{width:13px;height:13px;border-radius:50%;background:var(--bg);border:1px solid var(--ink-faint);z-index:1;}
  .rm-item.now .rm-dot{background:var(--blue);border-color:var(--blue);box-shadow:0 0 0 4px rgba(62,111,242,0.18);}
  .rm-label{margin-top:18px;font-size:0.84rem;color:var(--ink);font-weight:600;}
  .rm-sub{margin-top:5px;font-family:var(--mono);font-size:0.66rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);}

  /* ---------- footer ---------- */
  footer{border-top:1px solid var(--hairline);padding-top:68px;padding-bottom:44px;}
  .foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:32px;}
  .foot-brand p{margin-top:16px;font-size:0.88rem;max-width:30ch;}
  .foot-domains{display:flex;gap:22px;margin-top:22px;flex-wrap:wrap;}
  .foot-domain{display:inline-flex;align-items:center;gap:7px;font-size:0.85rem;
    color:var(--ink-soft);letter-spacing:0.01em;transition:color .2s ease;}
  .foot-domain:hover{color:var(--blue-bright);}
  .foot-domain .fd-flag{font-size:0.9rem;line-height:1;}
  .foot-col h4{font-family:var(--mono);font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--ink-faint);font-weight:500;}
  .foot-col ul{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-direction:column;gap:13px;}
  .foot-col a{font-size:0.87rem;color:var(--ink-soft);transition:color .2s ease;display:inline-block;padding:2px 0;}
  .foot-col a:hover{color:var(--blue-bright);}
  .foot-bottom{
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;
    margin-top:64px;padding-top:26px;border-top:1px solid var(--hairline);
    font-size:0.77rem;color:var(--ink-faint);
  }
  .replay-intro{
    background:none;border:none;cursor:pointer;padding:6px 0;
    font-family:var(--mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;
    color:var(--ink-faint);transition:color .2s ease;
  }
  .replay-intro:hover{color:var(--ink);}

  .reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease, transform .8s ease;}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* ---------- cinematic intro ---------- */
  @keyframes introFadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
  @keyframes introScaleIn{from{opacity:0;transform:scale(0.96);}to{opacity:1;transform:scale(1);}}
  @keyframes introGlow{from{opacity:0;}to{opacity:1;}}
  @keyframes introDepth{from{opacity:0;transform:scale(1.05);}to{opacity:1;transform:scale(1);}}
  @keyframes cardIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}

  /* Pre-intro hidden state applies only while the intro gate is active,
     so pages without an intro (e.g. Pricing) render their header normally. */
  body.intro-active header{opacity:0;}
  body.intro-active .brand-mark{opacity:0;}
  .hero{position:relative;}
  .hero::before{
    content:'';position:absolute;left:8%;right:8%;top:-10%;bottom:-10%;
    background:radial-gradient(closest-side, rgba(62,111,242,0.10), rgba(62,111,242,0) 70%);
    pointer-events:none;z-index:0;
    opacity:0;
  }
  body.intro-active .hero-copy > *{opacity:0;}
  .hero-copy > *{position:relative;z-index:1;}
  body.intro-active .globe-frame{opacity:0;}
  .globe-frame{will-change:transform;transition:transform .4s ease-out;}
  #heroCopy{transition:transform .4s ease-out;}

  body.intro-done header{animation:introFadeUp .8s cubic-bezier(.16,1,.3,1) .1s both;}
  body.intro-done .brand-mark{animation:introScaleIn .9s cubic-bezier(.16,1,.3,1) var(--d0) both;}
  body.intro-done .hero::before{animation:introGlow 1.6s ease var(--d0) both;}
  body.intro-done .hero .eyebrow{display:inline-block;animation:introFadeUp .8s cubic-bezier(.16,1,.3,1) var(--d1) both;}
  body.intro-done .hero h1.t-display{animation:introFadeUp .9s cubic-bezier(.16,1,.3,1) var(--d2) both;}
  body.intro-done .hero p.t-body{animation:introFadeUp .9s cubic-bezier(.16,1,.3,1) var(--d4) both;}
  body.intro-done .hero .actions{animation:introFadeUp .9s cubic-bezier(.16,1,.3,1) var(--d5) both;}
  body.intro-done .hero .badge{animation:introFadeUp .9s cubic-bezier(.16,1,.3,1) var(--d6) both;}
  body.intro-done .globe-frame{animation:introDepth 1.8s cubic-bezier(.16,1,.3,1) var(--d3) both;}

  body.intro-skip-anim header,body.intro-skip-anim .brand-mark,body.intro-skip-anim .hero::before,
  body.intro-skip-anim .hero-copy > *,body.intro-skip-anim .globe-frame{
    animation:none !important;opacity:1 !important;transform:none !important;
  }

  /* Reveal is an enhancement, never a gate. Visibility is a DECLARED value —
     `.in` sets opacity:1 — and the rise/fade is a transition, not a filling
     animation. A filling `animation` with a `from{opacity:0}` keyframe would
     override the declared opacity and could leave cards hidden if it is
     dropped, throttled, or plays off-screen; a transition cannot. This is why
     the executive grid can never again show a partial set of offices. */
  .execgrid .execcard,.listgrid .litem,.values .value,.officebar .otile{
    opacity:0;transform:translateY(14px);
    transition:opacity .6s ease, transform .6s cubic-bezier(.16,1,.3,1);
  }
  section.reveal.in .execgrid .execcard,
  section.reveal.in .listgrid .litem,
  section.reveal.in .values .value,
  section.reveal.in .officebar .otile{opacity:1;transform:none;}
  /* Stagger by position within each grid (delay only affects the motion). */
  section.reveal.in .execgrid .execcard:nth-child(3n+2){transition-delay:.08s;}
  section.reveal.in .execgrid .execcard:nth-child(3n+3){transition-delay:.16s;}
  section.reveal.in .listgrid .litem:nth-child(4n+2){transition-delay:.06s;}
  section.reveal.in .listgrid .litem:nth-child(4n+3){transition-delay:.12s;}
  section.reveal.in .listgrid .litem:nth-child(4n){transition-delay:.18s;}
  section.reveal.in .values .value:nth-child(5n+2){transition-delay:.06s;}
  section.reveal.in .values .value:nth-child(5n+3){transition-delay:.12s;}
  section.reveal.in .values .value:nth-child(5n+4){transition-delay:.18s;}
  section.reveal.in .values .value:nth-child(5n+5){transition-delay:.24s;}
  section.reveal.in .officebar .otile:nth-child(6n+2){transition-delay:.05s;}
  section.reveal.in .officebar .otile:nth-child(6n+3){transition-delay:.1s;}
  section.reveal.in .officebar .otile:nth-child(6n+4){transition-delay:.15s;}
  section.reveal.in .officebar .otile:nth-child(6n+5){transition-delay:.2s;}
  section.reveal.in .officebar .otile:nth-child(6n+6){transition-delay:.25s;}

  /* ---------- full-screen entry intro ---------- */
  /* Cinematic beat sheet. Scenes 1–4 are painted on canvas and timed in JS;
     these variables drive scenes 5–7 and must stay in step with it.
       0.0s  seed light
       1.0s  particles expand into the globe
       3.2s  neural links form
       4.4s  information flow begins
       5.0s  mark draws itself  (--i-logo) */
  :root{
    --i-logo:5s; --i-eye:6.3s; --i-head:6.7s;
    --i-sub:7.1s; --i-enter:7.7s; --i-skip:2s;
    /* With no Enter button, the intro auto-transitions into the site a beat
       after the wordmark and sub have settled — long enough to read, short
       enough to feel intentional. */
    --i-hold:9.4s;
  }
  @media (max-width:600px){
    :root{
      --i-logo:3.4s; --i-eye:4.4s; --i-head:4.7s;
      --i-sub:5s; --i-enter:5.5s; --i-skip:1.5s; --i-hold:7.2s;
    }
  }
  body.intro-active{overflow:hidden;}

  /* ---------- CSS-only reveal failsafe ----------
     THE most important rule on the site. The homepage ships hidden
     (body.intro-active) and the intro content animates purely from CSS, so
     if marsiqo.js never reaches finish() — it failed to load on a flaky
     mobile network, was blocked, or threw on some browser — nothing would
     ever un-hide the page and the visitor is stuck on the intro forever.

     These animations remove that dependency. After --i-failsafe seconds the
     overlay hides and the homepage content fades in, driven ENTIRELY by CSS,
     needing no JavaScript at all. In the normal case marsiqo.js removes
     .intro-active well before this fires (hold is 9.4s desktop / 7.2s
     mobile), which cancels these rules, so the failsafe is invisible unless
     it is actually needed. A CSS animation's forwards-fill overrides the
     plain opacity:0 declarations above, so no !important arms race is needed.

     Never gate the site's visibility on JS alone again. */
  :root{ --i-failsafe:12s; }
  @media (max-width:600px){ :root{ --i-failsafe:9s; } }
  @media (prefers-reduced-motion:reduce){ :root{ --i-failsafe:4s; } }

  @keyframes introFailsafeShow{to{opacity:1;}}
  @keyframes introFailsafeHideOverlay{to{opacity:0;visibility:hidden;pointer-events:none;}}

  body.intro-active header,
  body.intro-active .brand-mark,
  body.intro-active .hero-copy > *,
  body.intro-active .globe-frame{
    animation:introFailsafeShow 0.6s linear var(--i-failsafe) forwards;
  }
  body.intro-active .intro-screen{
    animation:introFailsafeHideOverlay 0.6s ease var(--i-failsafe) forwards;
  }

  .intro-screen{
    position:fixed;inset:0;z-index:2000;background:var(--bg);
    display:flex;align-items:center;justify-content:center;
    opacity:1;transition:opacity 1s cubic-bezier(.4,0,.2,1);
  }
  .intro-screen[hidden]{display:none;}
  .intro-screen.exiting{opacity:0;pointer-events:none;}
  /* The canvas fills the viewport: the seed light starts at true centre and the
     globe is free to sit behind the type rather than being boxed by a wrapper. */
  .intro-canvas-wrap{position:absolute;inset:0;}
  .intro-screen.exiting .intro-canvas-wrap{
    transition:transform 1.4s cubic-bezier(.4,0,.2,1), filter 1.4s cubic-bezier(.4,0,.2,1), opacity 1.4s ease;
    transform:scale(1.45);filter:blur(9px);opacity:0;
  }
  .intro-screen.exiting .intro-content{transition:opacity .6s ease, transform 1.1s cubic-bezier(.4,0,.2,1);opacity:0;transform:scale(1.06);}
  canvas#introStage{width:100%;height:100%;display:block;}
  .intro-content{position:relative;z-index:1;text-align:center;max-width:640px;padding:0 24px;}

  /* Scene 5 — the mark is drawn, not faded. The stroke is dashed by JS to its
     own measured length, then the offset is walked to zero so the line writes
     itself; the glow blooms only as the final stroke lands. */
  .intro-mark{
    width:68px;height:68px;margin:0 auto;color:var(--gold);
    filter:drop-shadow(0 0 0 rgba(201,165,107,0));
    animation:introMarkBloom 1.6s cubic-bezier(.4,0,.2,1) calc(var(--i-logo) + 1s) both;
  }
  .intro-mark svg{width:100%;height:100%;display:block;overflow:visible;}
  .intro-mark path{
    stroke-dashoffset:var(--mark-len, 62);
    stroke-dasharray:var(--mark-len, 62);
    animation:introMarkDraw 1.8s cubic-bezier(.65,0,.35,1) var(--i-logo) both;
  }
  @keyframes introMarkDraw{to{stroke-dashoffset:0;}}
  @keyframes introMarkBloom{
    from{filter:drop-shadow(0 0 0 rgba(201,165,107,0));}
    60%{filter:drop-shadow(0 0 26px rgba(201,165,107,0.42));}
    to{filter:drop-shadow(0 0 18px rgba(201,165,107,0.26));}
  }
  .intro-eyebrow{opacity:0;margin-top:30px;display:inline-block;animation:introFadeUp .9s cubic-bezier(.16,1,.3,1) var(--i-eye) both;}
  .intro-headline{opacity:0;margin-top:16px;font-size:clamp(1.7rem,3.6vw,2.6rem);animation:introFadeUp 1.1s cubic-bezier(.16,1,.3,1) var(--i-head) both;}
  .intro-sub{
    opacity:0;margin-top:18px;font-size:0.95rem;color:var(--ink-faint);
    letter-spacing:0.02em;
    animation:introFadeUp 1s cubic-bezier(.16,1,.3,1) var(--i-sub) both;
  }
  /* Scene 7 — glass panel with a sheen that sweeps once on hover. */
  .intro-enter{
    opacity:0;margin-top:44px;position:relative;overflow:hidden;
    display:inline-flex;align-items:center;justify-content:center;
    color:var(--ink);
    background:linear-gradient(180deg, rgba(255,255,255,0.07), rgba(255,255,255,0.02));
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,0.18);border-radius:5px;
    font-family:var(--sans);font-weight:600;font-size:0.8rem;
    letter-spacing:0.2em;text-transform:uppercase;
    padding:16px 46px;min-height:50px;cursor:pointer;
    animation:introFadeUp 1.1s cubic-bezier(.16,1,.3,1) var(--i-enter) both;
    transition:border-color .5s ease, background .5s ease, box-shadow .5s ease, transform .5s ease;
  }
  .intro-enter-label{position:relative;z-index:1;}
  .intro-enter-sheen{
    position:absolute;top:0;bottom:0;left:-60%;width:45%;
    background:linear-gradient(105deg, transparent, rgba(255,255,255,0.16), transparent);
    transform:skewX(-18deg);pointer-events:none;
  }
  .intro-enter:hover{
    border-color:rgba(108,147,255,0.65);
    background:linear-gradient(180deg, rgba(62,111,242,0.16), rgba(62,111,242,0.05));
    box-shadow:0 0 0 1px rgba(108,147,255,0.28), 0 18px 44px -18px rgba(62,111,242,0.7);
    transform:translateY(-2px);
  }
  .intro-enter:hover .intro-enter-sheen{animation:introSheen 1.1s cubic-bezier(.4,0,.2,1);}
  @keyframes introSheen{from{left:-60%;}to{left:120%;}}

  .intro-controls{
    position:absolute;right:clamp(20px,4vw,44px);bottom:clamp(20px,4vw,44px);z-index:2;
    display:flex;align-items:center;gap:6px;
    opacity:0;animation:introGlow .8s ease var(--i-skip) both;
  }
  .intro-ctl{
    background:none;border:none;color:var(--ink-faint);cursor:pointer;
    font-family:var(--mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;
    padding:10px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;
    transition:color .2s ease;
  }
  .intro-ctl:hover{color:var(--ink);}
  .intro-ctl svg{width:17px;height:17px;display:block;}
  /* Muted is the default state, so the "on" glyph stays hidden until opted in. */
  .intro-ctl .ic-sound-on{display:none;}
  .intro-ctl[aria-pressed="true"]{color:var(--blue-bright);}
  .intro-ctl[aria-pressed="true"] .ic-sound-on{display:block;}
  .intro-ctl[aria-pressed="true"] .ic-sound-off{display:none;}
  @media (prefers-reduced-motion:reduce){
    .intro-canvas-wrap{animation:none;opacity:1;transform:none;}
    .intro-mark,.intro-eyebrow,.intro-headline,.intro-sub,.intro-enter,.intro-controls{
      animation:none !important;opacity:1 !important;transform:none !important;
    }
    /* Show the finished mark rather than an unwritten stroke. */
    .intro-mark path{animation:none !important;stroke-dashoffset:0 !important;}
    .intro-mark{filter:drop-shadow(0 0 14px rgba(201,165,107,0.22)) !important;}
    .intro-enter:hover .intro-enter-sheen{animation:none;}
    .intro-screen{transition:opacity .3s ease;}
    .intro-screen.exiting .intro-canvas-wrap{transition:none;transform:none;filter:none;}
    .intro-screen.exiting .intro-content{transition:none;transform:none;}
  }

  /* ---------- enter card ---------- */
  .enter-overlay{
    position:fixed;inset:0;z-index:1500;
    display:flex;align-items:center;justify-content:center;padding:24px;
    background:var(--bg);
    opacity:0;pointer-events:none;
    transition:opacity .7s cubic-bezier(.4,0,.2,1);
  }
  .enter-overlay.open{opacity:1;pointer-events:auto;}
  .enter-overlay[hidden]{display:none;}
  .enter-card{
    width:100%;max-width:840px;text-align:center;position:relative;
    transform:scale(0.985);
    transition:transform .7s cubic-bezier(.4,0,.2,1);
  }
  .enter-overlay.open .enter-card{transform:scale(1);}
  .enter-card-mark{width:40px;height:40px;margin:0 auto 26px;color:var(--gold);}
  .enter-card-mark svg{width:100%;height:100%;display:block;}
  .enter-card h2{
    font-family:var(--sans);font-size:0.9rem;font-weight:600;color:var(--ink);
    letter-spacing:0.22em;text-transform:uppercase;
  }
  .enter-card .enter-hint{margin-top:14px;font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.1rem);color:var(--ink-soft);}
  .enter-regions{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:clamp(36px,5vw,56px);}
  .region{
    display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:0;
    padding:30px 28px;border:1px solid var(--hairline-strong);border-radius:6px;
    background:var(--bg-raised);min-height:170px;
    transition:border-color .4s ease, background .4s ease, transform .4s ease, box-shadow .4s ease;
  }
  .region:hover{
    border-color:var(--blue);background:rgba(62,111,242,0.06);
    transform:translateY(-3px);box-shadow:0 26px 60px -26px rgba(0,0,0,0.7);
  }
  .region-flag{width:34px;height:23px;flex-shrink:0;border-radius:2px;overflow:hidden;display:block;}
  .region-flag svg{width:100%;height:100%;display:block;}
  .region-text{margin-top:auto;padding-top:26px;}
  .region-name{display:block;font-size:1.12rem;font-weight:600;color:var(--ink);}
  .region-domain{display:block;font-family:var(--mono);font-size:0.78rem;color:var(--ink-faint);margin-top:5px;}
  .region-arrow{width:16px;height:16px;color:var(--ink-faint);position:absolute;top:30px;right:28px;transition:transform .4s ease, color .4s ease;}
  .region{position:relative;}
  .region:hover .region-arrow{transform:translateX(4px);color:var(--blue-bright);}
  .enter-close{
    position:fixed;top:20px;right:clamp(20px,4vw,44px);width:44px;height:44px;
    display:flex;align-items:center;justify-content:center;
    background:none;border:none;color:var(--ink-faint);cursor:pointer;
    transition:color .2s ease;z-index:2;
  }
  .enter-close:hover{color:var(--ink);}
  .enter-close svg{width:18px;height:18px;}
  @media (max-width:640px){
    .enter-regions{grid-template-columns:1fr;gap:14px;}
    .region{min-height:0;padding:24px 22px;}
    .region-text{padding-top:18px;}
  }
  @media (prefers-reduced-motion:reduce){
    .enter-overlay{transition:opacity .2s ease;}
    .enter-card,.enter-overlay.open .enter-card{transition:none;transform:none;}
  }

  /* ---------- page transition overlay ---------- */
  .page-transition{
    position:fixed;inset:0;z-index:1000;background:var(--bg);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;
    opacity:0;pointer-events:none;transition:opacity .5s ease;
  }
  .page-transition.active{opacity:1;pointer-events:auto;}
  .page-transition .pt-mark{width:42px;height:42px;color:var(--gold);opacity:0;}
  .page-transition .pt-mark svg{width:100%;height:100%;display:block;}
  .page-transition.active .pt-mark{animation:introScaleIn .6s cubic-bezier(.16,1,.3,1) .1s both;}
  .page-transition .pt-track{width:220px;height:2px;background:var(--hairline-strong);overflow:hidden;opacity:0;}
  .page-transition.active .pt-track{animation:introGlow .4s ease .25s both;}
  .page-transition .pt-bar{width:0%;height:100%;background:var(--blue-bright);}
  .page-transition.active .pt-bar{animation:ptFill 1s cubic-bezier(.4,0,.2,1) .25s forwards;}
  @keyframes ptFill{from{width:0%;}to{width:100%;}}
  .page-transition .pt-text{font-family:var(--mono);font-size:0.76rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-faint);opacity:0;}
  .page-transition.active .pt-text{animation:introGlow .5s ease .35s both;}
  body.transitioning main,body.transitioning header,body.transitioning footer{
    transition:opacity .5s ease, filter .5s ease, transform .5s ease;
    opacity:0.2;filter:blur(6px);transform:scale(1.015);
  }

  @media (max-width:900px){
    nav.links{display:none;}
    .menu-btn{display:flex;}
    .mobile-nav{
      display:block;position:fixed;inset:0;top:73px;z-index:99;
      background:rgba(14,13,11,0.98);backdrop-filter:blur(14px);
      padding:32px clamp(24px,5vw,64px);
      opacity:0;pointer-events:none;transform:translateY(-8px);
      transition:opacity .3s ease, transform .3s ease;
    }
    .mobile-nav.open{opacity:1;pointer-events:auto;transform:translateY(0);}
    .mobile-nav a{display:block;font-size:1.3rem;font-family:var(--serif);color:var(--ink);padding:16px 0;border-bottom:1px solid var(--hairline);}
    .mobile-nav .cta{margin-top:28px;width:100%;justify-content:center;}

    .hero{grid-template-columns:1fr;min-height:auto;
      padding-top:clamp(48px,14vw,72px);padding-bottom:clamp(48px,12vw,72px);gap:32px;}
    .hero-copy{max-width:none;}
    .hero .t-display{font-size:clamp(2.3rem,9vw,3.2rem);}
    .globe-frame{order:-1;height:clamp(220px,58vw,300px);}
    .stats{flex-direction:column;gap:28px;padding:36px 0;}
    .pillars{grid-template-columns:1fr;gap:40px;}
    .values{grid-template-columns:repeat(2,1fr);gap:28px 20px;}
    .officebar{grid-template-columns:repeat(3,1fr);gap:14px;}
    .execgrid{grid-template-columns:1fr;}
    .listgrid{grid-template-columns:1fr 1fr;gap:36px 24px;}
    .onboard{grid-template-columns:1fr;}
    .onb-div{padding:20px;}
    .onb-div svg{transform:rotate(90deg);}
    .langgrid{grid-template-columns:repeat(2,1fr);}
    .roadmap{flex-direction:column;align-items:flex-start;gap:26px;}
    .roadmap::before{top:0;bottom:0;left:6px;right:auto;width:1px;height:auto;}
    .rm-item{flex-direction:row;text-align:left;align-items:center;gap:16px;padding:0;}
    .rm-label,.rm-sub{margin-top:0;}
    .foot-grid{grid-template-columns:1fr 1fr;gap:32px 28px;}
  }
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    .reveal,.mobile-nav{transition:none;}
    .reveal{opacity:1;transform:none;}
    .brand-mark,.hero::before,.hero .eyebrow,.hero h1.t-display,.hero p.t-body,
    .hero .actions,.hero .badge,.globe-frame,
    .execgrid .execcard,.listgrid .litem,.values .value,.officebar .otile,
    .page-transition .pt-mark,.page-transition .pt-track,.page-transition .pt-text{
      animation:none !important;opacity:1 !important;transform:none !important;
    }
    .page-transition.active .pt-bar{animation:none !important;width:100% !important;}
    body.transitioning main,body.transitioning header,body.transitioning footer{
      opacity:1;filter:none;transform:none;
    }
  }

/* ============================================================
   LANGUAGE SWITCHER
   Globe control in the header; opens a panel of all locales.
   ============================================================ */
.lang{position:relative;}
.lang-toggle{
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  background:none;border:1px solid transparent;color:var(--ink-soft);cursor:pointer;
  border-radius:4px;transition:color .25s ease, border-color .25s ease;
}
.lang-toggle:hover,.lang-toggle[aria-expanded="true"]{color:var(--ink);border-color:var(--hairline-strong);}
.lang-toggle svg{width:19px;height:19px;}
.lang-panel{
  position:absolute;top:calc(100% + 12px);right:0;z-index:120;
  width:min(432px,calc(100vw - 32px));
  background:var(--bg-raised);border:1px solid var(--hairline-strong);border-radius:8px;
  box-shadow:0 40px 90px -34px rgba(0,0,0,0.85);
  padding:22px;
  opacity:0;transform:translateY(-6px);pointer-events:none;
  transition:opacity .3s cubic-bezier(.4,0,.2,1), transform .3s cubic-bezier(.4,0,.2,1);
}
.lang-panel.open{opacity:1;transform:translateY(0);pointer-events:auto;}
.lang-panel[hidden]{display:none;}
.lang-panel h3{
  font-family:var(--mono);font-size:0.68rem;letter-spacing:0.16em;text-transform:uppercase;
  color:var(--ink-faint);font-weight:500;margin-bottom:16px;
}
.lang-list{
  display:grid;grid-template-columns:repeat(3,1fr);gap:2px;
  max-height:min(52vh,340px);overflow-y:auto;
}
.lang-option{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  padding:9px 10px;border:none;background:none;cursor:pointer;border-radius:4px;
  font-family:var(--sans);font-size:0.84rem;color:var(--ink-soft);text-align:left;
  transition:background .2s ease, color .2s ease;
}
.lang-option:hover{background:rgba(255,255,255,0.04);color:var(--ink);}
.lang-option[aria-current="true"]{color:var(--ink);background:rgba(62,111,242,0.1);}
.lang-code{font-family:var(--mono);font-size:0.66rem;color:var(--ink-faint);flex-shrink:0;}
@media (max-width:640px){
  .lang-list{grid-template-columns:repeat(2,1fr);}
}
@media (prefers-reduced-motion:reduce){
  .lang-panel{transition:opacity .15s ease;transform:none;}
  .lang-panel.open{transform:none;}
}

/* ============================================================
   PRICING
   ============================================================ */
.pricing-hero{
  padding-top:clamp(72px,10vw,132px);
  padding-bottom:clamp(48px,6vw,72px);
  text-align:center;
}
.pricing-hero .t-display{margin-top:22px;font-size:clamp(2.1rem,4.4vw,3.4rem);}
.pricing-hero .t-body{margin:22px auto 0;max-width:46ch;font-size:1.06rem;}

/* Two plans, so the grid is two columns and capped in width — a
   three-column track would leave an empty cell on the right, and letting
   two cards span the full 1240px container makes them read as banners
   rather than plans. */
.plans{
  display:grid;grid-template-columns:repeat(2,1fr);gap:20px;
  align-items:stretch;
  max-width:860px;margin-left:auto;margin-right:auto;
  padding-bottom:clamp(60px,8vw,110px);
}
.plan{
  display:flex;flex-direction:column;
  background:var(--bg-raised);
  border:1px solid var(--hairline);
  border-radius:8px;
  padding:clamp(28px,3vw,38px);
  opacity:0;transform:translateY(16px);
  transition:transform .45s cubic-bezier(.4,0,.2,1), box-shadow .45s ease, border-color .45s ease;
}
.plan.in{opacity:1;transform:translateY(0);animation:planIn .7s cubic-bezier(.16,1,.3,1) both;}
.plan:nth-child(1).in{animation-delay:0s;}
.plan:nth-child(2).in{animation-delay:.09s;}
.plan:nth-child(3).in{animation-delay:.18s;}
@keyframes planIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
.plan:hover{
  transform:translateY(-4px);
  border-color:var(--hairline-strong);
  box-shadow:0 34px 70px -30px rgba(0,0,0,0.75);
}
/* The one highlighted plan. A single hairline of accent, nothing louder. */
.plan--featured{
  border-color:rgba(62,111,242,0.45);
  background:linear-gradient(180deg, rgba(62,111,242,0.05), rgba(62,111,242,0) 42%), var(--bg-raised);
}
.plan--featured:hover{border-color:var(--blue);box-shadow:0 40px 80px -30px rgba(0,0,0,0.8);}
.plan-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:26px;}
.plan-name{font-family:var(--sans);font-size:1.02rem;font-weight:600;color:var(--ink);letter-spacing:0.01em;}
.plan-badge{
  font-family:var(--mono);font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--blue-bright);border:1px solid rgba(62,111,242,0.4);
  padding:4px 9px;border-radius:100px;white-space:nowrap;
}
.plan-desc{margin-top:12px;font-size:0.9rem;color:var(--ink-soft);min-height:2.7em;}
.plan-price{
  margin-top:26px;padding-bottom:26px;border-bottom:1px solid var(--hairline);
  display:flex;align-items:baseline;gap:6px;
}
.plan-amount{
  font-family:var(--mono);font-variant-numeric:tabular-nums;
  font-size:clamp(1.9rem,3vw,2.4rem);color:var(--ink);line-height:1;
}
.plan-period{font-size:0.85rem;color:var(--ink-faint);}
.plan-amount--text{font-family:var(--serif);font-size:clamp(1.6rem,2.4vw,1.9rem);}
.plan-features{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:13px;flex:1;}
.plan-features li{
  display:flex;align-items:flex-start;gap:11px;
  font-size:0.9rem;color:var(--ink-soft);line-height:1.5;
}
.plan-features svg{
  width:14px;height:14px;flex-shrink:0;margin-top:4px;color:var(--ink-faint);
}
.plan--featured .plan-features svg{color:var(--blue-bright);}
.plan-cta{margin-top:32px;}
.plan-cta .cta,.plan-cta .plan-btn{width:100%;justify-content:center;}
/* Secondary plan action: matte, no glow. Only the featured plan gets the blue. */
.plan-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  background:transparent;color:var(--ink);
  border:1px solid var(--hairline-strong);
  font-family:var(--sans);font-weight:600;font-size:0.88rem;
  padding:14px 24px;min-height:48px;cursor:pointer;border-radius:4px;
  transition:border-color .3s ease, background .3s ease, transform .3s ease;
}
.plan-btn:hover{border-color:var(--ink-faint);background:rgba(255,255,255,0.03);transform:translateY(-1px);}
.plan-cta .cta{border-radius:4px;}

.pricing-note{
  text-align:center;padding-bottom:clamp(80px,10vw,130px);
  font-size:0.86rem;color:var(--ink-faint);
}

@media (max-width:940px){
  .plans{grid-template-columns:1fr;gap:16px;max-width:520px;margin:0 auto;}
  .plan-desc{min-height:0;}
}
@media (prefers-reduced-motion:reduce){
  .plan{opacity:1;transform:none;transition:none;}
  .plan.in{animation:none;}
  .plan:hover{transform:none;}
}

/* ============================================================
   COOKIE BANNER
   ============================================================ */
.cookie-banner{
  position:fixed;left:clamp(16px,4vw,32px);right:clamp(16px,4vw,32px);
  bottom:clamp(16px,4vw,28px);z-index:1400;
  max-width:640px;margin:0 auto;
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;justify-content:space-between;
  background:var(--bg-raised);border:1px solid var(--hairline-strong);border-radius:10px;
  box-shadow:0 40px 90px -34px rgba(0,0,0,0.85);
  padding:18px 22px;
  opacity:0;transform:translateY(14px);
  transition:opacity .4s cubic-bezier(.4,0,.2,1), transform .4s cubic-bezier(.4,0,.2,1);
}
.cookie-banner.show{opacity:1;transform:translateY(0);}
.cookie-banner[hidden]{display:none;}
.cookie-text{font-size:0.86rem;color:var(--ink-soft);flex:1;min-width:220px;line-height:1.6;}
.cookie-actions{display:flex;gap:10px;flex-shrink:0;}
.cookie-btn{
  font-family:var(--sans);font-weight:600;font-size:0.82rem;
  padding:10px 18px;min-height:40px;cursor:pointer;border-radius:4px;
  transition:border-color .25s ease, background .25s ease, box-shadow .35s ease, transform .35s ease;
}
.cookie-decline{background:transparent;color:var(--ink-soft);border:1px solid var(--hairline-strong);}
.cookie-decline:hover{color:var(--ink);border-color:var(--ink-faint);}
.cookie-accept{background:var(--blue);color:#F8F9FF;border:1px solid var(--blue);}
.cookie-accept:hover{background:var(--blue-bright);border-color:var(--blue-bright);box-shadow:0 10px 26px -10px rgba(62,111,242,0.6);transform:translateY(-1px);}
@media (max-width:520px){
  .cookie-banner{flex-direction:column;align-items:stretch;}
  .cookie-actions{justify-content:flex-end;}
}
@media (prefers-reduced-motion:reduce){
  .cookie-banner{transition:opacity .2s ease;transform:none;}
  .cookie-banner.show{transform:none;}
}

/* ============================================================
   INVESTOR CENTER
   ============================================================ */

/* Glass panel — the one surface treatment used across this page. */
.glass-panel{
  background:linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.012));
  border:1px solid var(--hairline);
  border-radius:10px;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  padding:clamp(26px,3vw,34px);
  transition:border-color .4s ease, transform .4s ease, box-shadow .4s ease;
}
.glass-panel:hover{
  border-color:var(--hairline-strong);
  transform:translateY(-2px);
  box-shadow:0 30px 64px -30px rgba(0,0,0,0.7);
}

.inv-hero{
  padding-top:clamp(72px,10vw,132px);
  padding-bottom:clamp(48px,6vw,76px);
  max-width:920px;
}
.inv-hero .t-display{margin-top:22px;font-size:clamp(2.1rem,4.4vw,3.4rem);}
.inv-hero .t-body{margin-top:24px;max-width:62ch;font-size:1.06rem;}

/* ---------- vision ---------- */
.inv-vision{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.inv-vision .t-h2{font-size:1.1rem;}
.inv-vision .t-body{margin-top:14px;font-size:0.93rem;}

/* ---------- founder ---------- */
.founder{display:grid;grid-template-columns:0.85fr 1.15fr;gap:36px;align-items:start;}
.founder-card{display:flex;flex-direction:column;gap:22px;}
.founder-mark{
  width:64px;height:64px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--hairline-strong);
  font-family:var(--mono);font-size:1.02rem;letter-spacing:0.06em;color:var(--gold);
}
.founder-name{font-family:var(--serif);font-size:1.5rem;color:var(--ink);line-height:1.2;}
.founder-role{margin-top:8px;font-size:0.9rem;color:var(--ink-soft);}
.founder-meta{margin-top:6px;font-family:var(--mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);}
.founder-links{display:flex;gap:10px;flex-wrap:wrap;}
.founder-bio{display:flex;flex-direction:column;gap:18px;padding-top:6px;}
.founder-bio .t-body{font-size:1rem;}

/* ---------- metrics ---------- */
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.metric{
  padding:30px 26px;border-radius:10px;
  background:linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.012));
  border:1px solid var(--hairline);
}
.metric-num{
  font-family:var(--mono);font-variant-numeric:tabular-nums;
  font-size:clamp(2rem,3.4vw,2.8rem);color:var(--ink);line-height:1;
}
.metric-label{margin-top:14px;font-size:0.85rem;color:var(--ink-soft);line-height:1.5;}

/* ---------- timeline ---------- */
.timeline{list-style:none;margin:0;padding:0;position:relative;}
.timeline::before{
  content:'';position:absolute;left:7px;top:6px;bottom:6px;width:1px;
  background:var(--hairline-strong);
}
.tl-item{position:relative;padding-left:44px;padding-bottom:22px;}
.tl-item:last-child{padding-bottom:0;}
.tl-dot{
  position:absolute;left:0;top:26px;width:15px;height:15px;border-radius:50%;
  background:var(--bg);border:1px solid var(--ink-faint);z-index:1;
}
.tl-item--done .tl-dot{
  background:var(--blue);border-color:var(--blue);
  box-shadow:0 0 0 4px rgba(62,111,242,0.16);
}
.tl-year{
  font-family:var(--mono);font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--gold);
}
.tl-body .t-h2{margin-top:10px;font-size:1.06rem;}
.tl-body .t-body{margin-top:10px;font-size:0.92rem;}

/* ---------- product ecosystem ---------- */
.eco-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.eco-card{display:flex;flex-direction:column;position:relative;}
.eco-status{
  align-self:flex-start;
  font-family:var(--mono);font-size:0.62rem;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--ink-faint);border:1px solid var(--hairline-strong);
  padding:4px 9px;border-radius:100px;margin-bottom:20px;
}
.eco-status--live{color:var(--blue-bright);border-color:rgba(62,111,242,0.4);}
.eco-card .t-h2{font-size:1.24rem;font-family:var(--serif);font-weight:400;}
.eco-kind{
  margin-top:6px;font-family:var(--mono);font-size:0.7rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-faint);
}
.eco-card .t-body{margin-top:16px;font-size:0.92rem;flex:1;}
.eco-link{
  margin-top:22px;font-size:0.86rem;color:var(--blue-bright);
  display:inline-flex;align-items:center;gap:6px;cursor:pointer;
  transition:gap .3s ease;
}
.eco-link:hover{gap:11px;}
.eco-card--soon{opacity:0.72;}

/* ---------- funding ---------- */
.funding{max-width:760px;}
.funding-row{
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  padding:16px 0;border-bottom:1px solid var(--hairline);
}
.funding-k{font-family:var(--mono);font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--ink-faint);}
.funding-v{font-size:1.02rem;color:var(--ink);text-align:right;}
/* Withheld figures read as a deliberate disclosure choice, not a gap. */
.funding-v--private{color:var(--ink-soft);}

/* ---------- why invest ---------- */
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.why-n{color:var(--ink-faint);}
.why-card .t-h2{margin-top:12px;font-size:1.1rem;}
.why-card .t-body{margin-top:12px;font-size:0.93rem;}

/* ---------- download center ---------- */
.dl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.dl-item{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:20px 22px;border-radius:8px;
  border:1px solid var(--hairline-strong);
  font-size:0.92rem;color:var(--ink-soft);
  text-decoration:none;
  transition:border-color .2s cubic-bezier(.4,0,.2,1),color .2s cubic-bezier(.4,0,.2,1);
}
.dl-name{color:var(--ink);}

/* Available: an anchor. Only these respond to the pointer. */
a.dl-item:hover{border-color:rgba(255,255,255,0.26);color:var(--ink);}
a.dl-item:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}

/* Pending: still a first-class card, simply not yet downloadable. */
.dl-item.is-pending{background:transparent;}
.dl-item.is-pending .dl-name{color:var(--ink-soft);}

.dl-badge{
  font-family:var(--mono);font-size:0.6rem;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--ink-faint);border:1px solid var(--hairline);
  padding:4px 9px;border-radius:100px;white-space:nowrap;flex-shrink:0;
}
a.dl-item .dl-badge{color:var(--blue-bright);border-color:rgba(108,147,255,0.35);}

/* ---------- news ---------- */
.news-empty{display:flex;flex-direction:column;align-items:flex-start;gap:20px;max-width:760px;}

/* ---------- investor contact ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.contact-card .t-h2{font-size:1.06rem;}
.contact-card .t-body{margin-top:12px;font-size:0.92rem;}
.contact-mail{
  display:inline-block;margin-top:18px;
  font-family:var(--mono);font-size:0.82rem;color:var(--blue-bright);
  border-bottom:1px solid transparent;transition:border-color .3s ease;
}
.contact-mail:hover{border-bottom-color:var(--blue-bright);}

@media (max-width:940px){
  .inv-vision,.eco-grid,.contact-grid{grid-template-columns:1fr;}
  .founder{grid-template-columns:1fr;gap:28px;}
  .metrics{grid-template-columns:repeat(2,1fr);}
  .why-grid{grid-template-columns:1fr;}
  .dl-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:560px){
  .dl-grid{grid-template-columns:1fr;}
  .funding-row{flex-direction:column;align-items:flex-start;gap:6px;}
  .funding-v{text-align:left;}
}
@media (prefers-reduced-motion:reduce){
  .glass-panel,.glass-panel:hover{transition:none;transform:none;}
  .eco-link{transition:none;}
}

/* ============================================================
   LEGAL / POLICY PAGES
   ============================================================ */
.legal-header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;
  padding:18px clamp(24px,5vw,64px);background:rgba(14,13,11,0.86);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--hairline);}
.legal-wrap{max-width:760px;margin:0 auto;padding:clamp(48px,8vw,96px) clamp(24px,5vw,64px) 80px;}
.legal-wrap .eyebrow{color:var(--gold);}
.legal-wrap h1{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4vw,2.8rem);
  line-height:1.12;margin:16px 0 8px;color:var(--ink);}
.legal-meta{font-family:var(--mono);font-size:0.74rem;letter-spacing:0.06em;color:var(--ink-faint);margin-bottom:8px;}
.legal-note{margin:26px 0;padding:18px 20px;border:1px solid rgba(201,165,107,0.35);border-radius:10px;
  background:rgba(201,165,107,0.06);font-size:0.86rem;color:var(--ink-soft);line-height:1.6;}
.legal-wrap h2{font-family:var(--sans);font-weight:600;font-size:1.18rem;color:var(--ink);
  margin:44px 0 12px;letter-spacing:0.005em;}
.legal-wrap h3{font-size:1rem;font-weight:600;color:var(--ink);margin:26px 0 8px;}
.legal-wrap p,.legal-wrap li{font-size:0.96rem;line-height:1.75;color:var(--ink-soft);}
.legal-wrap p{margin:12px 0;}
.legal-wrap ul{margin:12px 0;padding-left:22px;display:flex;flex-direction:column;gap:8px;}
.legal-wrap a{color:var(--blue-bright);}
.legal-wrap strong{color:var(--ink);font-weight:600;}
.legal-toc{margin:28px 0 8px;padding:20px 22px;border:1px solid var(--hairline);border-radius:10px;
  background:var(--bg-raised);}
.legal-toc ul{margin:0;padding-left:20px;gap:6px;}
.legal-placeholder{color:var(--gold);font-family:var(--mono);font-size:0.85em;}
.legal-footer{border-top:1px solid var(--hairline);padding:34px clamp(24px,5vw,64px);
  display:flex;gap:22px;flex-wrap:wrap;font-size:0.82rem;color:var(--ink-faint);}
.legal-footer a{color:var(--ink-soft);}
.legal-footer a:hover{color:var(--blue-bright);}
.legal-intro{margin:0 0 4px;font-size:0.94rem;color:var(--ink-soft);}
