:root{
    --void:#12040f;
    --panel:#1d0a1c;
    --panel-2:#241029;
    --magenta:#e5077a;
    --magenta-2:#ff3e93;
    --teal:#0e5c63;
    --teal-2:#14828c;
    --violet:#4c2a7a;
    --violet-2:#6a3fae;
    --paper:#f7f1f4;
    --mist:#b9a7c1;
    --mist-dim:#8a7891;
    --line:rgba(247,241,244,0.14);
    --line-strong:rgba(247,241,244,0.28);
    --radius:18px;
    --maxw:1180px;
    --ease:cubic-bezier(.16,.8,.28,1);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  }

  body{
    margin:0;
    background:var(--void);
    color:var(--paper);
    font-family:'Plus Jakarta Sans', sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3,.disp{
    font-family:'Kanit', sans-serif;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:0.01em;
    line-height:1.05;
    margin:0;
  }

  .mono{
    font-family:'JetBrains Mono', monospace;
  }

  a{color:inherit; text-decoration:none;}
  img{max-width:100%; display:block;}

  .skip-link{
    position:absolute; left:-999px; top:0; z-index:999;
    background:var(--paper); color:var(--void); padding:10px 16px; border-radius:8px;
  }
  .skip-link:focus{left:16px; top:16px;}

  .wrap{
    max-width:var(--maxw);
    margin:0 auto;
    padding:0 28px;
  }

  /* ---------- NAV ---------- */
  .nav{
    position:fixed; top:0; left:0; right:0; z-index:100;
    padding:16px 20px;
  }
  .nav-inner{
    max-width:var(--maxw);
    margin:0 auto;
    display:flex; align-items:center; justify-content:space-between;
    gap:24px;
    background:rgba(18,4,15,0.72);
    border:1px solid var(--line);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    border-radius:999px;
    padding:10px 10px 10px 22px;
  }
  .logo{
    font-family:'Kanit', sans-serif;
    font-weight:700;
    font-size:1.15rem;
    letter-spacing:0.02em;
    display:flex; align-items:baseline; gap:2px;
    color:var(--paper);
    white-space:nowrap;
  }
  .logo .x{
    color:var(--magenta-2);
    display:inline-block;
    transform:rotate(0deg);
    transition:transform .5s var(--ease);
  }
  .logo:hover .x{transform:rotate(90deg);}

  .nav-links{
    display:flex; align-items:center; gap:4px;
    font-size:0.85rem;
  }
  .nav-link{
    padding:9px 14px;
    border-radius:999px;
    color:var(--mist);
    transition:background .25s, color .25s;
    white-space:nowrap;
  }
  .nav-link:hover, .nav-link.is-active{
    color:var(--paper);
    background:var(--panel-2);
  }
  .nav-link--ext{
    display:flex; align-items:center; gap:5px;
  }
  .nav-link--ext::after{
    content:"↗";
    font-size:0.75em;
    opacity:0.7;
  }
  .nav-cta{
    margin-left:4px;
    padding:10px 18px;
    border-radius:999px;
    background:var(--magenta);
    color:var(--paper) !important;
    font-weight:600;
    font-size:0.85rem;
    white-space:nowrap;
  }
  .nav-cta:hover{background:var(--magenta-2);}

  .nav-toggle{
    display:none;
    width:40px; height:40px;
    border-radius:50%;
    border:1px solid var(--line-strong);
    background:transparent;
    color:var(--paper);
    align-items:center; justify-content:center;
    cursor:pointer;
  }
  .nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
    content:"";
    display:block;
    width:16px; height:1.5px;
    background:var(--paper);
    position:relative;
    transition:transform .25s, opacity .25s;
  }
  .nav-toggle span::before{position:absolute; top:-6px;}
  .nav-toggle span::after{position:absolute; top:6px;}
  .nav-toggle[aria-expanded="true"] span{background:transparent;}
  .nav-toggle[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg);}
  .nav-toggle[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg);}

  /* ---------- BACKDROP DECOR ---------- */
  .glow{
    position:absolute;
    filter:blur(90px);
    opacity:0.55;
    pointer-events:none;
    z-index:0;
  }

  .x-mark{
    position:absolute;
    font-family:'Kanit', sans-serif;
    font-weight:700;
    line-height:1;
    color:var(--paper);
    opacity:0.04;
    pointer-events:none;
    user-select:none;
    z-index:0;
  }

  section{position:relative; overflow:hidden; z-index:1;}

  /* ---------- HERO ---------- */
  .hero{
    padding:180px 0 110px;
    min-height:92vh;
    display:flex;
    align-items:center;
    background:
      radial-gradient(60% 55% at 82% 8%, rgba(229,7,122,0.28), transparent 60%),
      radial-gradient(55% 50% at 8% 92%, rgba(76,42,122,0.35), transparent 60%),
      var(--void);
  }
  .hero .glow.g1{width:520px; height:520px; top:-160px; right:-120px; background:var(--magenta);}
  .hero .glow.g2{width:480px; height:480px; bottom:-200px; left:-140px; background:var(--violet);}
  .hero .x-mark.xm1{font-size:52vw; top:-14vw; right:-14vw; transform:rotate(8deg);}

  .hero-inner{position:relative; z-index:2; width:100%;}
  .eyebrow{
    display:inline-flex; align-items:center; gap:10px;
    font-family:'JetBrains Mono', monospace;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--mist);
    border:1px solid var(--line-strong);
    padding:7px 14px;
    border-radius:999px;
    margin-bottom:28px;
  }
  .eyebrow .dot{width:6px; height:6px; border-radius:50%; background:var(--magenta-2);}

  .hero h1{
    font-size:clamp(2.6rem, 6vw, 5rem);
    max-width:16ch;
    margin-bottom:26px;
  }
  .hero h1 em{
    font-style:normal;
    background:linear-gradient(90deg, var(--magenta-2), var(--violet-2));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
  }
  .hero p.lead{
    max-width:56ch;
    font-size:1.15rem;
    color:var(--mist);
    margin-bottom:40px;
  }
  .hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:64px;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:15px 26px;
    border-radius:999px;
    font-weight:600;
    font-size:0.95rem;
    transition:transform .2s var(--ease), background .2s, border-color .2s;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn--primary{background:var(--magenta); color:var(--paper);}
  .btn--primary:hover{background:var(--magenta-2);}
  .btn--ghost{border:1px solid var(--line-strong); color:var(--paper);}
  .btn--ghost:hover{border-color:var(--paper);}

  /* ticker */
  .ticker{
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
    padding:16px 0;
    overflow:hidden;
    white-space:nowrap;
  }
  .ticker-track{
    display:inline-flex;
    gap:48px;
    animation:scrollTicker 24s linear infinite;
  }
  .ticker-track span{
    font-family:'JetBrains Mono', monospace;
    font-size:0.82rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--mist);
    display:inline-flex;
    align-items:center;
    gap:10px;
  }
  .ticker-track span b{color:var(--magenta-2); font-weight:700;}
  @keyframes scrollTicker{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }

  /* ---------- BANDS ---------- */
  .band{padding:110px 0;}
  .band--about{background:var(--void);}
  .kicker{
    font-family:'JetBrains Mono', monospace;
    font-size:0.75rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--magenta-2);
    display:block;
    margin-bottom:16px;
  }
  .band h2{
    font-size:clamp(1.9rem, 3.4vw, 2.7rem);
    max-width:20ch;
    margin-bottom:22px;
  }
  .band .lede{
    color:var(--mist);
    max-width:64ch;
    font-size:1.05rem;
    margin-bottom:16px;
  }

  .two-col{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:64px;
    align-items:start;
  }

  .fact-card{
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:24px;
    background:var(--panel);
  }
  .fact-card .num{
    font-family:'Kanit', sans-serif;
    font-weight:700;
    font-size:2.4rem;
    color:var(--magenta-2);
  }
  .fact-card .lab{
    color:var(--mist);
    font-size:0.9rem;
    margin-top:6px;
  }
  .fact-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
  }

  /* drives grid */
  .band--drives{
    background:
      radial-gradient(50% 60% at 90% 0%, rgba(14,92,99,0.35), transparent 60%),
      var(--panel);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .drive-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
    margin-top:48px;
  }
  .drive-cell{
    background:var(--panel);
    padding:30px 26px;
  }
  .drive-cell h3{
    font-size:1.02rem;
    margin-bottom:10px;
    letter-spacing:0.01em;
  }
  .drive-cell p{
    color:var(--mist);
    font-size:0.92rem;
    margin:0;
  }
  .drive-cell .tag{
    font-family:'JetBrains Mono', monospace;
    font-size:0.7rem;
    color:var(--teal-2);
    letter-spacing:0.1em;
    text-transform:uppercase;
    display:block;
    margin-bottom:12px;
  }

  .data-callout{
    margin-top:56px;
    border:1px solid var(--line-strong);
    border-radius:var(--radius);
    padding:36px;
    background:linear-gradient(120deg, rgba(229,7,122,0.12), rgba(14,92,99,0.12));
    display:flex;
    gap:28px;
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .data-callout .mark{
    font-family:'Kanit', sans-serif;
    font-weight:700;
    font-size:2rem;
    color:var(--magenta-2);
    flex:0 0 auto;
  }
  .data-callout p{margin:0; color:var(--mist); max-width:62ch;}
  .data-callout strong{color:var(--paper);}

  /* ---------- PILLARS ---------- */
  .pillar{
    padding:130px 0;
    border-top:1px solid var(--line);
    scroll-margin-top:110px;
  }
  .pillar-head{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:56px;
  }
  .price-tag{
    display:inline-flex;
    align-items:center;
    gap:10px;
    font-family:'JetBrains Mono', monospace;
    font-size:0.82rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    padding:10px 18px;
    border-radius:999px;
    border:1px solid var(--line-strong);
  }
  .price-tag .x{font-weight:700;}
  .pillar h2{font-size:clamp(2rem, 4vw, 3rem); max-width:14ch;}
  .pillar .step-num{
    font-family:'JetBrains Mono', monospace;
    color:var(--mist-dim);
    font-size:0.8rem;
    margin-bottom:8px;
    display:block;
  }

  .pillar--traffic{
    background:radial-gradient(60% 70% at 100% 0%, rgba(229,7,122,0.16), transparent 60%), var(--void);
  }
  .pillar--traffic .price-tag{color:var(--magenta-2); border-color:rgba(229,7,122,0.4);}
  .pillar--traffic .x-mark{font-size:46vw; bottom:-20vw; left:-10vw; transform:rotate(-14deg);}

  .pillar--lead{
    background:radial-gradient(60% 70% at 0% 0%, rgba(14,92,99,0.22), transparent 60%), var(--panel);
  }
  .pillar--lead .price-tag{color:var(--teal-2); border-color:rgba(20,130,140,0.5);}
  .pillar--lead .x-mark{font-size:46vw; top:-18vw; right:-14vw; transform:rotate(10deg);}

  .pillar--app{
    background:radial-gradient(60% 70% at 100% 100%, rgba(76,42,122,0.28), transparent 60%), var(--void);
  }
  .pillar--app .price-tag{color:var(--violet-2); border-color:rgba(106,63,174,0.5);}
  .pillar--app .x-mark{font-size:46vw; bottom:-22vw; right:-12vw; transform:rotate(-8deg);}

  .pillar .lede{color:var(--mist); max-width:60ch; font-size:1.05rem; margin-bottom:12px;}

  .step-row{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:28px;
    margin-top:20px;
  }
  .step-row.cols-4{grid-template-columns:repeat(4, 1fr);}
  .step-card{
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:24px;
    background:rgba(18,4,15,0.35);
  }
  .step-card h4{
    font-family:'Kanit', sans-serif;
    text-transform:uppercase;
    font-size:0.95rem;
    letter-spacing:0.04em;
    margin:0 0 10px;
  }
  .step-card p{margin:0; color:var(--mist); font-size:0.9rem;}

  .sub-block{margin-top:56px;}
  .sub-block h3{
    font-size:0.85rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--mist-dim);
    margin-bottom:18px;
    font-family:'JetBrains Mono', monospace;
    font-weight:400;
  }

  .format-tags{display:flex; flex-wrap:wrap; gap:10px;}
  .format-tags span{
    border:1px solid var(--line-strong);
    padding:9px 16px;
    border-radius:999px;
    font-size:0.85rem;
    color:var(--mist);
  }

  .flow-arrow{
    margin-top:30px;
    font-family:'JetBrains Mono', monospace;
    letter-spacing:0.12em;
    text-transform:uppercase;
    font-size:0.85rem;
    color:var(--mist-dim);
  }

  /* ---------- STATS ---------- */
  .band--stats{
    background:var(--panel);
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .stats-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
  }
  .stat-cell{
    background:var(--panel);
    padding:36px 24px;
    text-align:left;
  }
  .stat-cell .num{
    font-family:'Kanit', sans-serif;
    font-weight:700;
    font-size:2.6rem;
    color:var(--paper);
    display:block;
  }
  .stat-cell .lab{
    color:var(--mist);
    font-size:0.85rem;
    margin-top:8px;
  }

  /* ---------- PARTNERS ---------- */
  .partners{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    margin-top:40px;
  }
  .partners span{
    font-family:'Kanit', sans-serif;
    font-size:1rem;
    letter-spacing:0.02em;
    color:var(--mist);
    border:1px solid var(--line);
    padding:12px 20px;
    border-radius:999px;
  }

  /* ---------- FOOTER ---------- */
  .footer{
    background:var(--void);
    border-top:1px solid var(--line);
    padding:90px 0 40px;
  }
  .footer-cta{
    text-align:left;
    margin-bottom:64px;
    max-width:44ch;
  }
  .footer-cta h2{font-size:clamp(1.8rem, 3.6vw, 2.6rem); margin-bottom:20px;}
  .footer-cols{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:32px;
    padding-bottom:40px;
    border-bottom:1px solid var(--line);
  }
  .footer-links{display:flex; flex-wrap:wrap; gap:8px 22px;}
  .footer-links a{color:var(--mist); font-size:0.9rem;}
  .footer-links a:hover{color:var(--paper);}
  .footer-bottom{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px;
    padding-top:28px;
    font-size:0.8rem;
    color:var(--mist-dim);
    font-family:'JetBrains Mono', monospace;
  }

  /* ---------- REVEAL ---------- */
  .reveal{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .7s var(--ease), transform .7s var(--ease);
  }
  .reveal.is-visible{opacity:1; transform:none;}

  /* ---------- RESPONSIVE ---------- */
  @media (max-width: 900px){
    .two-col{grid-template-columns:1fr; gap:36px;}
    .drive-grid{grid-template-columns:1fr 1fr;}
    .step-row, .step-row.cols-4{grid-template-columns:1fr 1fr;}
    .stats-grid{grid-template-columns:1fr 1fr;}
  }

  @media (max-width: 720px){
    .nav-links{
      position:fixed;
      top:74px; left:16px; right:16px;
      background:var(--panel);
      border:1px solid var(--line-strong);
      border-radius:20px;
      flex-direction:column;
      align-items:stretch;
      padding:12px;
      gap:2px;
      display:none;
    }
    .nav-links.is-open{display:flex;}
    .nav-link{padding:13px 16px;}
    .nav-cta{margin:6px 4px 2px; text-align:center;}
    .nav-toggle{display:flex;}
    .hero{padding:150px 0 80px;}
    .drive-grid{grid-template-columns:1fr;}
    .step-row, .step-row.cols-4{grid-template-columns:1fr;}
    .stats-grid{grid-template-columns:1fr 1fr;}
    .band{padding:80px 0;}
    .pillar{padding:90px 0;}
    .footer-cols{flex-direction:column;}
  }

  :focus-visible{
    outline:2px solid var(--magenta-2);
    outline-offset:3px;
  }

/* ---------- LEGAL PAGES ---------- */
.legal-hero{
  padding:170px 0 60px;
  background:
    radial-gradient(55% 55% at 90% 0%, rgba(229,7,122,0.18), transparent 60%),
    var(--void);
  border-bottom:1px solid var(--line);
}
.legal-hero .back-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'JetBrains Mono', monospace;
  font-size:0.8rem;
  color:var(--mist);
  margin-bottom:28px;
}
.legal-hero .back-link:hover{color:var(--paper);}
.legal-hero h1{font-size:clamp(2.1rem, 4.4vw, 3.2rem); max-width:20ch;}
.legal-hero .updated{
  margin-top:18px;
  color:var(--mist-dim);
  font-family:'JetBrains Mono', monospace;
  font-size:0.82rem;
  letter-spacing:0.04em;
}

.legal{
  padding:70px 0 120px;
  background:var(--void);
}
.legal .lang-note{
  color:var(--mist-dim);
  font-size:0.88rem;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:16px 20px;
  margin-bottom:56px;
  max-width:70ch;
}
.legal-body{
  max-width:74ch;
}
.legal-body h2{
  font-size:1.3rem;
  text-transform:none;
  letter-spacing:0;
  margin-top:52px;
  margin-bottom:16px;
  color:var(--paper);
}
.legal-body h2:first-child{margin-top:0;}
.legal-body h3{
  font-size:1.02rem;
  text-transform:none;
  letter-spacing:0;
  margin-top:32px;
  margin-bottom:12px;
  color:var(--paper);
  font-family:'Plus Jakarta Sans', sans-serif;
  font-weight:700;
}
.legal-body p{
  color:var(--mist);
  margin:0 0 18px;
  font-size:0.98rem;
}
.legal-body ul, .legal-body ol{
  color:var(--mist);
  margin:0 0 18px;
  padding-left:22px;
  font-size:0.98rem;
}
.legal-body li{margin-bottom:10px;}
.legal-body a{
  color:var(--magenta-2);
  text-decoration:underline;
  text-underline-offset:3px;
}
.legal-body a:hover{color:var(--paper);}
.legal-body strong{color:var(--paper);}
.legal-body table{
  width:100%;
  border-collapse:collapse;
  margin:24px 0 32px;
  font-size:0.9rem;
}
.legal-body th, .legal-body td{
  border:1px solid var(--line);
  padding:12px 14px;
  text-align:left;
  color:var(--mist);
}
.legal-body th{
  color:var(--paper);
  font-family:'JetBrains Mono', monospace;
  font-size:0.75rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  font-weight:400;
}
.legal-toc{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:26px 28px;
  margin-bottom:48px;
  background:var(--panel);
}
.legal-toc h2{margin-top:0 !important; font-size:0.85rem !important; letter-spacing:0.1em !important; text-transform:uppercase !important; color:var(--mist-dim) !important; font-family:'JetBrains Mono', monospace !important;}
.legal-toc ol{columns:2; gap:24px; margin-bottom:0;}
.legal-toc a{color:var(--mist);}
.legal-toc a:hover{color:var(--magenta-2);}

@media (max-width: 720px){
  .legal-toc ol{columns:1;}
}
