/* =================================================================
   PHYLAX — Marketing Site
   Brand system: dark-first, Lexend Deca + JetBrains Mono.
   Ignite Orange #F5890A reserved as the single colour of action.
   ================================================================= */

:root{
  --orange:#F5890A;
  --amber:#F5A623;
  --navy:#16213E;
  --navy-2:#1A2647;
  --black:#0D0D1A;
  --charcoal:#1C1C35;
  --cream:#FFF9F2;
  --teal:#0D9488;
  --violet:#9999BB;
  --red:#EF4444;

  --line:rgba(255,249,242,0.10);
  --line-strong:rgba(255,249,242,0.22);
  --muted:rgba(255,249,242,0.62);
  --muted-2:rgba(255,249,242,0.78);

  --max:1280px;
  --pad-x:48px;
  --section-pad:140px;

  --mono:'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
  --sans:'Lexend Deca', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html, body{ background:var(--black); color:var(--cream); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
html{ scroll-behavior:smooth; }
body{ overflow-x:hidden; line-height:1.5; }

a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
button{ font:inherit; cursor:pointer; border:0; background:transparent; color:inherit; }

::selection{ background:var(--orange); color:var(--navy); }

/* =========== layout =========== */
.wrap{ width:100%; max-width:var(--max); margin:0 auto; padding:0 var(--pad-x); position:relative; }

/* corner registration crosses */
.reg{
  position:absolute; width:12px; height:12px;
  border:1px solid var(--violet); opacity:0.28; pointer-events:none;
}
.reg.tl{ top:24px; left:24px; }
.reg.tr{ top:24px; right:24px; }
.reg.bl{ bottom:24px; left:24px; }
.reg.br{ bottom:24px; right:24px; }

/* =========== type =========== */
.eyebrow{
  font-family:var(--mono);
  font-size:12px; letter-spacing:0.28em; text-transform:uppercase;
  color:var(--orange); font-weight:500;
  display:inline-flex; align-items:center; gap:10px;
}
.eyebrow::before{
  content:""; width:8px; height:1px; background:var(--orange); display:inline-block;
}
.eyebrow.violet{ color:var(--violet); }
.eyebrow.violet::before{ background:var(--violet); }

h1, h2, h3{ font-weight:700; letter-spacing:-0.01em; line-height:1.05; }
h1{ font-size:clamp(40px, 6vw, 84px); }
h2{ font-size:clamp(32px, 4.4vw, 60px); }
h3{ font-size:clamp(22px, 2vw, 28px); }

.lede{ font-size:clamp(18px, 1.4vw, 22px); line-height:1.55; color:var(--muted-2); max-width:720px; }

.mono{ font-family:var(--mono); letter-spacing:0.02em; }
.kbd{
  font-family:var(--mono); font-size:11px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--violet);
}
.accent{ color:var(--orange); }

/* =========== nav =========== */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(13,13,26,0.78);
  backdrop-filter:blur(12px) saturate(140%);
  -webkit-backdrop-filter:blur(12px) saturate(140%);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  display:flex; align-items:center; gap:32px;
  height:72px;
  width:100%; max-width:var(--max); margin:0 auto; padding:0 var(--pad-x);
}
.nav-brand{ display:flex; align-items:center; gap:12px; font-family:var(--mono); font-size:13px; letter-spacing:0.24em; text-transform:uppercase; color:var(--cream); font-weight:600; }
.nav-brand img{ width:28px; height:28px; }
.nav-links{ display:flex; gap:36px; margin-left:auto; }
.nav-links a{
  font-size:13px; letter-spacing:0.18em; text-transform:uppercase; font-weight:500;
  color:var(--muted-2);
  transition:color .15s ease;
  position:relative;
}
.nav-links a:hover{ color:var(--cream); }
.nav-links a.active{ color:var(--cream); }
.nav-links a.active::after{
  content:""; position:absolute; left:0; right:0; bottom:-26px; height:2px; background:var(--orange);
}
.nav-cta{
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 22px;
  background:var(--orange); color:var(--navy);
  font-family:var(--mono); font-size:12px; letter-spacing:0.18em; text-transform:uppercase; font-weight:700;
  white-space:nowrap;
  transition:background .15s ease, transform .15s ease;
  flex-shrink:0;
}
.nav-cta > span{ white-space:nowrap; }
.nav-cta:hover{ background:var(--amber); }
.nav-cta .arr{ width:14px; height:1px; background:currentColor; position:relative; }
.nav-cta .arr::after{ content:""; position:absolute; right:-1px; top:-3px; width:7px; height:7px; border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg); }
.nav-status{
  display:flex; align-items:center; gap:10px;
  font-family:var(--mono); font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--violet);
  white-space:nowrap;
  flex-shrink:0;
}
.nav-status > span{ white-space:nowrap; }
.nav-status .dot{ width:8px; height:8px; border-radius:50%; background:var(--orange); box-shadow:0 0 10px var(--orange); animation: pulse 2.4s ease-in-out infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.35} }

/* =========== buttons =========== */
.btn{
  display:inline-flex; align-items:center; gap:12px;
  padding:18px 28px;
  font-family:var(--mono); font-size:13px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.btn-primary{ background:var(--orange); color:var(--navy); }
.btn-primary:hover{ background:var(--amber); }
.btn-ghost{ background:transparent; color:var(--cream); border:1px solid var(--line-strong); }
.btn-ghost:hover{ border-color:var(--cream); }
.btn .arr{ display:inline-block; width:18px; height:1px; background:currentColor; position:relative; }
.btn .arr::after{
  content:""; position:absolute; right:-1px; top:-3px; width:8px; height:8px;
  border-top:1px solid currentColor; border-right:1px solid currentColor; transform:rotate(45deg);
}

/* =========== sections =========== */
section{ position:relative; padding:var(--section-pad) 0; }
section.tight{ padding:80px 0; }
section.no-bottom{ padding-bottom:0; }

.section-head{ display:grid; grid-template-columns:1fr auto; gap:24px; align-items:flex-end; margin-bottom:64px; padding-bottom:32px; border-bottom:1px solid var(--line); }
.section-head .meta{ font-family:var(--mono); font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--violet); text-align:right; }
.section-title{ display:flex; flex-direction:column; gap:18px; max-width:900px; }
.section-title h2 .accent{ color:var(--orange); }
.section-sub{ font-size:20px; color:var(--muted-2); line-height:1.55; max-width:680px; }

/* =========== hero / terminal =========== */
.hero{
  position:relative;
  padding:80px 0 100px;
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.hero::before{
  /* scanlines */
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:repeating-linear-gradient(
    0deg, rgba(255,249,242,0.025) 0px, rgba(255,249,242,0.025) 1px, transparent 1px, transparent 4px
  );
  mix-blend-mode:overlay; opacity:.5;
  z-index:2;
}
.hero::after{
  /* grid bg */
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(245,137,10,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,137,10,0.05) 1px, transparent 1px);
  background-size:80px 80px;
  mask-image:radial-gradient(ellipse at 30% 50%, black 0%, transparent 65%);
  -webkit-mask-image:radial-gradient(ellipse at 30% 50%, black 0%, transparent 65%);
  z-index:0;
}
.hero-glow{
  position:absolute; right:-260px; top:50%; transform:translateY(-50%);
  width:900px; height:900px;
  background:radial-gradient(circle, rgba(245,137,10,0.18), rgba(245,137,10,0.04) 35%, transparent 65%);
  filter:blur(20px);
  z-index:0; pointer-events:none;
}
.hero-grid{
  position:relative; z-index:3;
  display:grid; grid-template-columns:1.05fr 0.95fr; gap:80px; align-items:center;
}

.terminal{
  border:1px solid var(--line-strong);
  background:rgba(13,13,26,0.65);
  backdrop-filter:blur(6px);
  font-family:var(--mono);
  position:relative;
}
.terminal-chrome{
  display:flex; align-items:center; gap:12px; padding:14px 20px;
  border-bottom:1px solid var(--line);
  font-size:11px; letter-spacing:0.18em; text-transform:uppercase; color:var(--violet);
}
.terminal-chrome .dots{ display:flex; gap:6px; }
.terminal-chrome .dots span{ width:9px; height:9px; border-radius:50%; background:var(--line-strong); }
.terminal-chrome .dots span:first-child{ background:var(--orange); }
.terminal-chrome .name{ margin-left:auto; }
.terminal-body{ padding:28px 28px 32px; font-size:14px; line-height:1.7; color:var(--cream); min-height:180px; }
.terminal-body .ln{ display:block; }
.terminal-body .prompt{ color:var(--orange); }
.terminal-body .dim{ color:var(--violet); }
.terminal-body .ok{ color:var(--teal); }
.terminal-body .warn{ color:var(--amber); }
.terminal-body .key{ color:var(--cream); }
.terminal-body .blink{ display:inline-block; width:9px; height:18px; background:var(--orange); vertical-align:-3px; animation: blink 1.06s steps(1) infinite; margin-left:2px; }
@keyframes blink { 50%{opacity:0} }

.hero-headline{ display:flex; flex-direction:column; gap:28px; max-width:640px; }
.hero-headline .stamp{
  display:inline-flex; align-items:center; gap:14px; padding:10px 16px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  font-family:var(--mono); font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--cream); font-weight:500;
  align-self:flex-start;
}
.hero-headline .stamp .dot{ width:8px; height:8px; border-radius:50%; background:var(--orange); box-shadow:0 0 10px var(--orange); }
.hero-headline h1{ font-size:clamp(48px, 6.8vw, 96px); line-height:0.96; letter-spacing:-0.02em; }
.hero-headline h1 .or{ color:var(--orange); }
.hero-headline .sub{ font-size:20px; line-height:1.55; color:var(--muted-2); max-width:560px; }
.hero-headline .sub b{ color:var(--cream); font-weight:600; }
.hero-cta-row{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.hero-meta{
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  margin-top:18px; padding-top:32px; border-top:1px solid var(--line);
}
.hero-meta .m-num{ font-family:var(--mono); font-size:28px; color:var(--orange); font-weight:600; letter-spacing:-0.01em; }
.hero-meta .m-lbl{ font-family:var(--mono); font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--violet); margin-top:6px; }

/* product slot panel */
.product-slot-panel{
  position:relative;
  border:1px solid var(--line-strong);
  background:linear-gradient(180deg, rgba(22,33,62,0.4), rgba(13,13,26,0.6));
  padding:24px;
  aspect-ratio:1 / 1.15;
  display:flex; flex-direction:column; gap:12px;
  overflow:hidden;
}
.product-slot-panel::before{
  content:""; position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(245,137,10,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,137,10,0.06) 1px, transparent 1px);
  background-size:40px 40px;
  opacity:.6; pointer-events:none;
}
.product-slot-panel .slot-meta-top{
  display:flex; justify-content:space-between; font-family:var(--mono); font-size:10px; letter-spacing:0.22em; text-transform:uppercase; color:var(--violet);
  z-index:2; position:relative;
}
.product-slot-panel .slot-meta-bottom{
  display:flex; justify-content:space-between; font-family:var(--mono); font-size:10px; letter-spacing:0.22em; text-transform:uppercase; color:var(--violet);
  z-index:2; position:relative; margin-top:auto;
}
.product-slot-panel .slot-meta-bottom .val{ color:var(--orange); }
.product-slot-panel image-slot{
  flex:1; z-index:2; position:relative; min-height:0;
  --slot-bg: transparent;
}

/* mini ticker under hero */
.ticker{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:rgba(22,33,62,0.25);
  overflow:hidden;
  padding:18px 0;
  position:relative; z-index:2;
}
.ticker-row{
  display:flex; gap:80px; white-space:nowrap;
  animation: tick 60s linear infinite;
  font-family:var(--mono); font-size:12px; letter-spacing:0.22em; text-transform:uppercase; color:var(--muted);
  width:max-content;
}
.ticker-row b{ color:var(--orange); }
.ticker-row span{ display:inline-flex; gap:14px; align-items:center; }
.ticker-row .sep{ color:var(--orange); }
@keyframes tick { from { transform:translateX(0) } to { transform:translateX(-50%) } }

/* =========== why self-custody =========== */
.why{ background:var(--black); }
.why-rows{ display:flex; flex-direction:column; }
.why-row{
  display:grid; grid-template-columns:140px 1fr 1fr; gap:48px;
  padding:48px 0;
  border-top:1px solid var(--line);
  align-items:start;
}
.why-row:last-child{ border-bottom:1px solid var(--line); }
.why-num{ font-family:var(--mono); font-size:14px; letter-spacing:0.24em; color:var(--orange); padding-top:8px; }
.why-q{ font-size:clamp(28px, 2.6vw, 40px); font-weight:600; line-height:1.15; }
.why-q .strike{ text-decoration:line-through; text-decoration-color:rgba(239,68,68,.6); color:var(--muted); }
.why-a{ font-size:18px; line-height:1.65; color:var(--muted-2); padding-top:8px; }
.why-a b{ color:var(--cream); font-weight:600; }

/* =========== manifesto quote block =========== */
.manifesto{
  background:var(--navy);
  padding:140px 0; position:relative; overflow:hidden;
  border-top:1px solid var(--line);
}
.manifesto::before{
  content:""; position:absolute; right:-160px; bottom:-160px;
  width:780px; height:780px;
  background:radial-gradient(circle, rgba(245,137,10,0.16), transparent 65%);
  filter:blur(20px);
}
.manifesto-grid{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:80px; align-items:center; position:relative; z-index:2; }
.manifesto-mark{
  width:280px; height:280px; opacity:0.95; filter:brightness(0) invert(1); opacity:.9;
}
.manifesto-body{ border-left:6px solid var(--orange); padding:8px 0 8px 40px; }
.manifesto-body p{ font-size:clamp(28px, 2.6vw, 38px); line-height:1.3; font-weight:400; color:var(--cream); }
.manifesto-body p b{ color:var(--orange); font-weight:700; }
.manifesto-body .attr{
  margin-top:32px; font-family:var(--mono); font-size:12px; letter-spacing:0.24em; text-transform:uppercase; color:var(--violet);
}

/* =========== features =========== */
.features{ background:var(--black); }
.feature-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.feature-card{
  background:var(--black);
  padding:48px 40px;
  display:flex; flex-direction:column; gap:18px;
  min-height:340px;
  transition:background .2s ease;
  position:relative;
}
.feature-card:hover{ background:var(--charcoal); }
.feature-card .ic{
  width:48px; height:48px; border:1px solid var(--line-strong);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:14px;
}
.feature-card .ic svg{ width:24px; height:24px; stroke:var(--orange); stroke-width:1.6; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.feature-card .ftag{ font-family:var(--mono); font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--violet); }
.feature-card h3{ font-size:24px; font-weight:600; line-height:1.2; color:var(--cream); }
.feature-card p{ font-size:15px; line-height:1.6; color:var(--muted-2); }
.feature-card .read{
  margin-top:auto; padding-top:24px;
  font-family:var(--mono); font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--orange); font-weight:600;
}

/* =========== security architecture =========== */
.security{
  background:var(--charcoal); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.security-grid{
  display:grid; grid-template-columns:1fr 1.2fr; gap:80px; align-items:center;
}
.security-diagram{
  position:relative; padding:32px;
  border:1px solid var(--line-strong);
  background:
    radial-gradient(circle at 50% 50%, rgba(245,137,10,0.06), transparent 60%),
    var(--black);
  aspect-ratio:1 / 1;
  display:grid; grid-template-columns:1fr; grid-template-rows:auto 1fr auto;
  gap:18px;
}
.sd-grid-bg{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(245,137,10,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(245,137,10,0.06) 1px, transparent 1px);
  background-size:32px 32px;
  pointer-events:none;
}
.sd-row{
  position:relative; z-index:2;
  display:grid; grid-template-columns:32px 1fr 64px; gap:14px; align-items:center;
  padding:14px 18px;
  border:1px solid var(--line);
  background:rgba(13,13,26,0.78);
  font-family:var(--mono);
}
.sd-row.center{
  background:var(--orange); border-color:var(--orange); color:var(--navy);
  align-self:center; justify-self:center; width:100%;
}
.sd-row .ix{ font-size:11px; letter-spacing:0.22em; }
.sd-row .nm{ font-size:13px; letter-spacing:0.08em; }
.sd-row .vl{ font-size:10px; text-align:right; letter-spacing:0.18em; opacity:.7; }
.sd-row.center .ix, .sd-row.center .vl{ color:var(--navy); }
.sd-arrow{
  position:relative; z-index:2;
  display:flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--mono); font-size:10px; letter-spacing:0.24em; text-transform:uppercase; color:var(--violet);
}
.sd-arrow::before, .sd-arrow::after{
  content:""; flex:1; height:1px; background:repeating-linear-gradient(90deg, var(--orange) 0 6px, transparent 6px 12px);
}

.security-points{ display:flex; flex-direction:column; gap:32px; }
.sp-item{ display:grid; grid-template-columns:60px 1fr; gap:24px; align-items:start; padding-bottom:32px; border-bottom:1px solid var(--line); }
.sp-item:last-child{ border-bottom:0; padding-bottom:0; }
.sp-num{ font-family:var(--mono); font-size:36px; color:var(--orange); line-height:1; font-weight:600; letter-spacing:-0.02em; }
.sp-content h4{ font-size:22px; font-weight:600; margin-bottom:8px; color:var(--cream); }
.sp-content p{ font-size:16px; line-height:1.6; color:var(--muted-2); }

/* =========== open source =========== */
.oss{ background:var(--black); }
.oss-grid{ display:grid; grid-template-columns:1.2fr 0.8fr; gap:80px; align-items:flex-start; }
.repo-list{ display:flex; flex-direction:column; }
.repo-row{
  display:grid; grid-template-columns:1fr auto auto;
  align-items:center; gap:32px;
  padding:28px 0;
  border-bottom:1px solid var(--line);
  transition:padding .15s ease;
}
.repo-row:first-child{ border-top:1px solid var(--line); }
.repo-row:hover{ padding-left:8px; }
.repo-row .rinfo{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.repo-row .rname{ font-family:var(--mono); font-size:18px; color:var(--cream); font-weight:600; }
.repo-row .rname .slash{ color:var(--violet); }
.repo-row .rname .nm{ color:var(--orange); }
.repo-row .rdesc{ font-size:14px; color:var(--muted-2); }
.repo-row .rlic{ font-family:var(--mono); font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--violet); }
.repo-row .rstar{ font-family:var(--mono); font-size:13px; color:var(--cream); display:flex; align-items:center; gap:8px; }
.repo-row .rstar svg{ width:14px; height:14px; fill:var(--orange); }

.transparency-card{
  border:1px solid var(--line-strong);
  padding:36px;
  background:linear-gradient(180deg, rgba(245,137,10,0.06), transparent 60%);
  display:flex; flex-direction:column; gap:18px;
}
.transparency-card h3{ font-size:22px; }
.transparency-card .row{ display:grid; grid-template-columns:1fr auto; align-items:center; padding:14px 0; border-top:1px solid var(--line); font-family:var(--mono); font-size:13px; }
.transparency-card .row .k{ color:var(--violet); letter-spacing:0.16em; text-transform:uppercase; font-size:11px; }
.transparency-card .row .v{ color:var(--cream); }
.transparency-card .row .v.or{ color:var(--orange); }

/* =========== specs =========== */
.specs{ background:var(--charcoal); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.specs-table{ width:100%; border-collapse:collapse; }
.specs-table thead th{
  text-align:left; padding:18px 24px;
  font-family:var(--mono); font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--violet); font-weight:600;
  border-bottom:1px solid var(--line);
}
.specs-table tbody tr{ border-bottom:1px solid var(--line); }
.specs-table tbody tr:hover{ background:rgba(255,249,242,0.02); }
.specs-table td{ padding:22px 24px; vertical-align:middle; }
.specs-table .skey{
  font-family:var(--mono); font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--violet); width:200px;
}
.specs-table .scat{ font-size:13px; font-weight:600; color:var(--cream); width:180px; font-family:var(--mono); letter-spacing:0.04em; }
.specs-table .sval{ font-size:17px; color:var(--cream); font-weight:500; }
.specs-table .sval b{ color:var(--orange); font-weight:600; font-family:var(--mono); }

/* =========== compare =========== */
.compare{ background:var(--black); }
.compare-table-wrap{ overflow-x:auto; border:1px solid var(--line); }
.compare-table{ width:100%; border-collapse:collapse; min-width:840px; }
.compare-table th, .compare-table td{ padding:20px 22px; border-bottom:1px solid var(--line); text-align:left; vertical-align:middle; }
.compare-table thead th{
  font-family:var(--mono); font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--violet); font-weight:600;
  background:var(--charcoal);
  border-bottom:1px solid var(--line-strong);
}
.compare-table thead th.us{ color:var(--orange); background:rgba(245,137,10,0.08); position:relative; }
.compare-table thead th.us::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--orange);
}
.compare-table td{ font-size:15px; color:var(--muted-2); }
.compare-table td.us{ color:var(--cream); background:rgba(245,137,10,0.04); font-weight:500; }
.compare-table td:first-child{ font-weight:600; color:var(--cream); }
.compare-table tr:last-child td{ border-bottom:0; }
.cmark{ display:inline-flex; width:22px; height:22px; align-items:center; justify-content:center; }
.cmark.yes{ color:var(--teal); }
.cmark.no{ color:var(--red); }
.cmark.partial{ color:var(--amber); }
.compare-table .small{ font-family:var(--mono); font-size:11px; letter-spacing:0.16em; }

/* =========== community =========== */
.community{ background:var(--navy); border-top:1px solid var(--line); }
.community-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.contrib-card{
  border:1px solid var(--line);
  background:rgba(13,13,26,0.4);
  padding:28px 24px;
  display:flex; flex-direction:column; gap:14px;
}
.contrib-card .ava{
  width:60px; height:60px;
  background:linear-gradient(135deg, var(--charcoal), var(--navy-2));
  border:1px solid var(--line-strong);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--mono); font-size:18px; font-weight:600; color:var(--orange);
}
.contrib-card .name{ font-size:18px; font-weight:600; color:var(--cream); }
.contrib-card .role{ font-family:var(--mono); font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--violet); }
.contrib-card .quote{ font-size:14px; color:var(--muted-2); line-height:1.55; margin-top:8px; padding-top:14px; border-top:1px solid var(--line); }

/* community stats */
.community-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-bottom:64px; border:1px solid var(--line); }
.cstat{
  padding:36px 32px;
  border-right:1px solid var(--line);
  display:flex; flex-direction:column; gap:8px;
}
.cstat:last-child{ border-right:0; }
.cstat .num{ font-size:48px; font-weight:700; color:var(--orange); letter-spacing:-0.02em; line-height:1; font-family:var(--mono); }
.cstat .lbl{ font-family:var(--mono); font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--violet); margin-top:6px; }
.cstat .desc{ font-size:13px; color:var(--muted-2); }

/* =========== faq =========== */
.faq{ background:var(--black); }
.faq-grid{ display:grid; grid-template-columns:0.5fr 1.5fr; gap:80px; align-items:flex-start; }
.faq-list{ display:flex; flex-direction:column; }
.faq-item{
  border-top:1px solid var(--line);
  padding:0;
}
.faq-item:last-child{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; display:grid; grid-template-columns:36px 1fr 36px; align-items:center; gap:18px;
  padding:28px 0;
  text-align:left;
  font-size:22px; font-weight:500; color:var(--cream);
  transition:color .15s ease;
}
.faq-q:hover{ color:var(--orange); }
.faq-q .ix{ font-family:var(--mono); font-size:12px; letter-spacing:0.2em; color:var(--orange); }
.faq-q .ico{
  position:relative; width:14px; height:14px; justify-self:end;
}
.faq-q .ico::before, .faq-q .ico::after{
  content:""; position:absolute; background:var(--cream);
  transition:transform .25s ease;
}
.faq-q .ico::before{ left:0; right:0; top:50%; height:1px; }
.faq-q .ico::after{ top:0; bottom:0; left:50%; width:1px; }
.faq-item[open] .faq-q .ico::after{ transform:scaleY(0); }
.faq-a{
  font-size:16px; line-height:1.65; color:var(--muted-2);
  padding:0 54px 32px;
  max-width:780px;
}
.faq-a b{ color:var(--cream); font-weight:600; }
.faq-a a{ color:var(--orange); border-bottom:1px solid var(--orange); }

/* =========== CTA / newsletter =========== */
.cta{
  background:var(--black);
  border-top:1px solid var(--line);
  position:relative; overflow:hidden;
}
.cta::before{
  content:""; position:absolute; left:-200px; bottom:-200px;
  width:800px; height:800px;
  background:radial-gradient(circle, rgba(245,137,10,0.18), transparent 60%);
  filter:blur(20px);
}
.cta-inner{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1.2fr 0.8fr; gap:80px; align-items:center;
  padding:120px 0;
}
.cta-eyebrow{ font-family:var(--mono); font-size:12px; letter-spacing:0.28em; text-transform:uppercase; color:var(--orange); font-weight:600; display:flex; align-items:center; gap:14px; margin-bottom:24px; }
.cta-eyebrow .live{ display:inline-flex; align-items:center; gap:8px; padding:4px 10px; background:var(--orange); color:var(--navy); border-radius:2px; font-weight:700; }
.cta-eyebrow .live .dot{ width:6px; height:6px; border-radius:50%; background:var(--navy); animation: pulse 2.4s ease-in-out infinite; }
.cta h2{ font-size:clamp(40px, 5vw, 72px); line-height:0.98; letter-spacing:-0.02em; margin-bottom:28px; }
.cta h2 .or{ color:var(--orange); }
.cta .lede{ margin-bottom:36px; }
.cta-buttons{ display:flex; gap:14px; flex-wrap:wrap; }

.signup-card{
  border:1px solid var(--line-strong);
  padding:36px;
  background:rgba(22,33,62,0.45);
  display:flex; flex-direction:column; gap:18px;
}
.signup-card .label{ font-family:var(--mono); font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--violet); }
.signup-card .ttl{ font-size:22px; font-weight:600; color:var(--cream); line-height:1.25; }
.signup-card form{ display:flex; gap:8px; align-items:stretch; }
.signup-card input{
  flex:1; background:transparent;
  border:1px solid var(--line-strong);
  padding:14px 16px;
  color:var(--cream); font-family:var(--mono); font-size:14px;
  outline:none;
  transition:border-color .15s ease;
}
.signup-card input::placeholder{ color:var(--violet); }
.signup-card input:focus{ border-color:var(--orange); }
.signup-card button{
  padding:0 22px; background:var(--orange); color:var(--navy);
  font-family:var(--mono); font-size:12px; letter-spacing:0.22em; text-transform:uppercase; font-weight:700;
  transition:background .15s ease;
}
.signup-card button:hover{ background:var(--amber); }
.signup-card .micro{ font-family:var(--mono); font-size:11px; letter-spacing:0.18em; color:var(--violet); line-height:1.55; }

/* progress bar */
.cta-progress{
  border:1px solid var(--line-strong);
  padding:24px;
  display:flex; flex-direction:column; gap:14px;
  background:rgba(22,33,62,0.4);
  margin-top:32px;
}
.cta-progress .row1{ display:flex; justify-content:space-between; font-family:var(--mono); font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--violet); }
.cta-progress .bar{ height:6px; background:rgba(255,249,242,0.08); position:relative; overflow:hidden; }
.cta-progress .bar > div{ position:absolute; left:0; top:0; bottom:0; background:var(--orange); }
.cta-progress .row2{ display:flex; justify-content:space-between; font-family:var(--mono); font-size:13px; }
.cta-progress .row2 b{ color:var(--orange); font-weight:600; }

/* =========== footer =========== */
footer{
  background:var(--black);
  border-top:1px solid var(--line);
  padding:80px 0 32px;
  color:var(--muted-2);
}
.foot-grid{
  display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:48px;
  padding-bottom:64px;
  border-bottom:1px solid var(--line);
}
.foot-brand{ display:flex; flex-direction:column; gap:20px; max-width:340px; }
.foot-brand img{ width:48px; height:48px; }
.foot-brand p{ font-size:14px; line-height:1.6; color:var(--muted); }
.foot-col h5{ font-family:var(--mono); font-size:11px; letter-spacing:0.24em; text-transform:uppercase; color:var(--violet); font-weight:600; margin-bottom:18px; }
.foot-col ul{ list-style:none; display:flex; flex-direction:column; gap:10px; }
.foot-col a{ font-size:14px; color:var(--muted-2); transition:color .15s ease; }
.foot-col a:hover{ color:var(--orange); }
.foot-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:28px;
  font-family:var(--mono); font-size:11px; letter-spacing:0.22em; text-transform:uppercase; color:var(--violet);
}
.foot-bottom .l{ display:flex; gap:24px; align-items:center; }
.foot-bottom .phi{ color:var(--orange); font-family:var(--mono); font-weight:700; }
.foot-bottom .r{ display:flex; gap:24px; }
.foot-bottom .r a:hover{ color:var(--orange); }

/* =========== scroll reveal =========== */
[data-reveal]{ opacity:0; transform:translateY(20px); transition:opacity .8s ease, transform .8s ease; }
[data-reveal].in{ opacity:1; transform:none; }

/* =========== responsive =========== */
@media (max-width: 1180px){
  .nav-links{ display:none; }
}
@media (max-width: 1024px){
  .nav-status{ display:none; }
  .nav-inner{ gap:16px; }
  .nav-brand{ margin-right:auto; }
}
@media (max-width: 1100px){
  :root{ --section-pad:100px; --pad-x:32px; }
  .hero-grid, .security-grid, .oss-grid, .manifesto-grid, .faq-grid, .cta-inner{ grid-template-columns:1fr; gap:48px; }
  .feature-grid{ grid-template-columns:repeat(2,1fr); }
  .community-grid{ grid-template-columns:repeat(2,1fr); }
  .community-stats{ grid-template-columns:repeat(2,1fr); }
  .community-stats .cstat:nth-child(2n){ border-right:0; }
  .why-row{ grid-template-columns:60px 1fr; }
  .why-a{ grid-column:2; }
  .foot-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px){
  :root{ --section-pad:72px; --pad-x:20px; }
  h1{ font-size:48px !important; }
  h2{ font-size:34px !important; }
  .section-head{ grid-template-columns:1fr; }
  .section-head .meta{ text-align:left; }
  .feature-grid, .community-grid, .community-stats, .foot-grid{ grid-template-columns:1fr; }
  .cstat{ border-right:0; border-bottom:1px solid var(--line); }
  .nav-cta{ padding:10px 14px; font-size:11px; letter-spacing:0.14em; }
}

/* =========== bilingual EN/TH toggle =========== */
.lang-toggle{
  font-family:var(--mono); font-size:12px; letter-spacing:0.14em; text-transform:uppercase; font-weight:600;
  color:var(--muted-2); background:transparent; border:1px solid var(--line-strong);
  padding:9px 13px; line-height:1; flex-shrink:0; cursor:pointer; white-space:nowrap;
  transition:color .15s ease, border-color .15s ease;
}
.lang-toggle:hover{ color:var(--cream); border-color:var(--cream); }
/* Lexend Deca / JetBrains Mono carry no Thai glyphs — swap the body face when Thai is active. */
html[lang="th"] body{ font-family:'Noto Sans Thai','Lexend Deca',system-ui,-apple-system,sans-serif; }
