/* =========================================================
   TIE — tie.tech
   Shared stylesheet for index.html and the legal pages.
   Design tokens live in :root; everything below references them.
   ========================================================= */

:root{
  --bg:#0B0C0A;
  --surf:#121410;
  --surf-2:#181B15;
  --surf-3:#1F231B;
  --line:rgba(237,239,234,.10);
  --line-2:rgba(237,239,234,.18);
  --tx:#EDEFEA;
  --tx-2:#9DA296;
  --tx-3:#6E7368;

  --lime:#B5E61D;
  --lime-2:#8FBB16;
  --down:#FF6B4A;
  --warn:#E3C766;

  --paper:#F0EDE4;
  --paper-ink:#14140F;
  --paper-ink-2:#54544C;

  --h:"Inter Tight",-apple-system,BlinkMacSystemFont,sans-serif;
  --b:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;
  --s:"Instrument Serif",Georgia,serif;
  --m:"JetBrains Mono",ui-monospace,Menlo,monospace;

  --gut:clamp(20px,4.5vw,56px);
  --max:1280px;
  --r:14px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--tx);
  font-family:var(--b);font-size:16.5px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
svg{display:block}
img{display:block;max-width:100%}
a{color:inherit}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
.block{padding:clamp(72px,8.5vw,132px) 0;position:relative}

/* ---------- ambient light ---------- */
.glow{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.glow::before{
  content:"";position:absolute;top:-380px;right:-180px;width:900px;height:900px;
  background:radial-gradient(circle,rgba(181,230,29,.13) 0%,rgba(181,230,29,.045) 34%,transparent 66%);
  filter:blur(24px);
}
.glow::after{
  content:"";position:absolute;top:120px;left:-320px;width:760px;height:760px;
  background:radial-gradient(circle,rgba(120,190,255,.055) 0%,transparent 64%);
  filter:blur(30px);
}
.wrap,.hd-in{position:relative;z-index:1}

/* ---------- type ---------- */
.kicker{
  font-family:var(--m);font-size:11px;font-weight:500;letter-spacing:.17em;
  text-transform:uppercase;color:var(--lime-2);
}
h1,h2,h3,h4{font-family:var(--h);font-weight:600;letter-spacing:-.028em;margin:0;line-height:1.06}
h1 .it,h2 .it{font-family:var(--s);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--lime)}
p{margin:0}
.lede{color:var(--tx-2);font-size:clamp(16.5px,1.35vw,19px);line-height:1.62;max-width:52ch}

.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:clamp(30px,4vw,52px)}
.sec-head h2{font-size:clamp(28px,3.6vw,44px)}
.sec-head .lede{margin-top:14px}

/* ---------- buttons ---------- */
.btn{
  font-family:var(--b);font-size:14px;font-weight:500;letter-spacing:-.005em;
  text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:13px 20px;border-radius:10px;border:1px solid transparent;
  transition:background .2s,border-color .2s,color .2s,transform .2s,box-shadow .2s;
}
.btn .arw{transition:transform .2s}
.btn:hover .arw{transform:translateX(3px)}
.btn-p{background:var(--lime);color:#0B0C0A;font-weight:600;box-shadow:0 8px 26px -12px rgba(181,230,29,.6)}
.btn-p:hover{transform:translateY(-1px);box-shadow:0 14px 34px -12px rgba(181,230,29,.7)}
.btn-s{border-color:var(--line-2);color:var(--tx);background:rgba(237,239,234,.03)}
.btn-s:hover{border-color:var(--tx-2);background:rgba(237,239,234,.07)}
.btn-dark{background:var(--paper-ink);color:var(--paper)}
.btn-dark:hover{transform:translateY(-1px)}

/* ---------- header ---------- */
.hd{
  position:sticky;top:0;z-index:60;
  background:rgba(11,12,10,.72);backdrop-filter:blur(14px) saturate(1.3);
  border-bottom:1px solid var(--line);
}
.hd-in{max-width:var(--max);margin:0 auto;padding:0 var(--gut);display:flex;align-items:center;gap:30px;height:66px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex:none}
.brand .wm{font-family:var(--h);font-weight:600;font-size:20px;letter-spacing:.14em}
.hd-nav{display:flex;gap:26px;margin-left:auto}
.hd-nav a{font-size:14px;color:var(--tx-2);text-decoration:none;transition:color .18s}
.hd-nav a:hover{color:var(--tx)}
.hd .btn{padding:10px 16px}

.dot{width:6px;height:6px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 0 rgba(181,230,29,.6);animation:pulse 2.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(181,230,29,.5)}70%{box-shadow:0 0 0 7px rgba(181,230,29,0)}100%{box-shadow:0 0 0 0 rgba(181,230,29,0)}}

/* ---------- hero ---------- */
.hero{padding-top:clamp(56px,7vw,104px);padding-bottom:clamp(48px,6vw,84px)}
.hero-g{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(34px,5vw,72px);align-items:center}
.hero h1{font-size:clamp(40px,6vw,76px);margin:20px 0 22px;letter-spacing:-.035em}
.hero-cta{display:flex;flex-wrap:wrap;gap:11px;margin-top:32px}
.strip{display:grid;grid-template-columns:repeat(4,auto);gap:0;margin-top:40px;border-top:1px solid var(--line);padding-top:22px}
.strip div{padding-right:26px}
.strip b{display:block;font-family:var(--h);font-size:19px;font-weight:600;letter-spacing:-.02em}
.strip span{font-family:var(--m);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--tx-3)}

/* ---------- SIGNATURE: depth ladder ---------- */
.ladder{
  background:linear-gradient(180deg,var(--surf-2),var(--surf));
  border:1px solid var(--line-2);border-radius:18px;overflow:hidden;
  box-shadow:0 40px 90px -46px rgba(0,0,0,.9),0 0 0 1px rgba(181,230,29,.05);
}
.ldr-top{padding:16px 18px 14px;border-bottom:1px solid var(--line)}
.ldr-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.ldr-tag{font-family:var(--m);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--tx-3)}
.ldr-tag .live{color:var(--lime)}
.ldr-q{font-family:var(--h);font-size:16px;font-weight:500;line-height:1.28;letter-spacing:-.015em}
.ldr-out{display:flex;align-items:baseline;gap:10px;margin-top:12px}
.ldr-out .name{font-size:13px;color:var(--tx-2)}
.ldr-last{font-family:var(--h);font-size:30px;font-weight:600;letter-spacing:-.03em;margin-left:auto}
.ldr-chg{font-family:var(--m);font-size:11.5px;color:var(--lime)}
.ldr-chg.dn{color:var(--down)}

.ldr-hdr{
  display:grid;grid-template-columns:1fr 76px 84px;gap:8px;
  padding:9px 18px;border-bottom:1px solid var(--line);
  font-family:var(--m);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--tx-3);
}
.ldr-hdr span:nth-child(2),.ldr-hdr span:nth-child(3){text-align:right}
.ldr-body{padding:6px 0 10px}
.lvl{
  position:relative;display:grid;grid-template-columns:1fr 76px 84px;gap:8px;
  padding:6px 18px;font-family:var(--m);font-size:12.5px;align-items:center;
}
.lvl .bar{position:absolute;top:2px;bottom:2px;right:0;border-radius:3px 0 0 3px;transition:width .55s cubic-bezier(.2,.7,.3,1)}
.lvl.ask .bar{background:rgba(255,107,74,.13)}
.lvl.bid .bar{background:rgba(181,230,29,.13)}
.lvl .who{position:relative;color:var(--tx-3);font-size:11px;letter-spacing:.04em}
.lvl .p{position:relative;text-align:right;font-weight:500}
.lvl.ask .p{color:var(--down)}
.lvl.bid .p{color:var(--lime)}
.lvl .q{position:relative;text-align:right;color:var(--tx-2)}
.spread{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:7px 0;padding:9px 18px;background:rgba(237,239,234,.035);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  font-family:var(--m);font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--tx-3);
}
.spread b{color:var(--tx);font-weight:500}

/* ---------- tape ---------- */
.tape{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surf);overflow:hidden;position:relative}
.tape-in{display:flex;align-items:center;height:34px}
.tape-lbl{
  flex:none;padding:0 14px;height:100%;display:flex;align-items:center;gap:7px;
  border-right:1px solid var(--line);background:var(--surf-2);
  font-family:var(--m);font-size:9.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--tx-3);
}
.tape-track{display:flex;white-space:nowrap;animation:roll 64s linear infinite;will-change:transform}
.tape:hover .tape-track{animation-play-state:paused}
@keyframes roll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.prt{
  display:inline-flex;align-items:center;gap:9px;padding:0 20px;
  font-family:var(--m);font-size:11px;color:var(--tx-3);border-right:1px solid var(--line);
}
.prt .mk{color:var(--tx-2)}
.prt .bx{color:var(--lime)}
.prt .sx{color:var(--down)}

/* ---------- cards ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.card{
  background:linear-gradient(180deg,var(--surf-2),var(--surf));
  border:1px solid var(--line);border-radius:var(--r);padding:26px 24px 28px;
  transition:border-color .25s,transform .25s,box-shadow .25s;
}
.card:hover{border-color:var(--line-2);transform:translateY(-3px);box-shadow:0 26px 50px -34px rgba(0,0,0,.9)}
.card .kicker{display:block;margin-bottom:16px}
.card h3{font-size:19px;margin-bottom:9px;letter-spacing:-.02em}
.card p{color:var(--tx-2);font-size:15.5px;line-height:1.58}
.card .attr{
  display:block;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);
  font-family:var(--m);font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--tx-3);
}

/* ---------- engine / latency ---------- */
.eng{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(28px,4vw,64px);align-items:center}
.eng h2{font-size:clamp(28px,3.6vw,46px)}
.trace{
  background:linear-gradient(180deg,var(--surf-2),var(--surf));
  border:1px solid var(--line-2);border-radius:18px;padding:26px 24px 22px;
  box-shadow:0 36px 80px -48px rgba(0,0,0,.9);
}
.trace-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:26px}
.trace-top .kicker{color:var(--tx-3)}
.trace-badge{font-family:var(--m);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--lime);border:1px solid rgba(181,230,29,.3);padding:4px 9px;border-radius:99px}
.rail{position:relative;height:2px;background:var(--line);margin:0 6px 8px;border-radius:2px}
.rail-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,var(--lime-2),var(--lime));border-radius:2px}
.rail-dot{position:absolute;top:50%;left:0;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--lime);box-shadow:0 0 14px rgba(181,230,29,.85)}
.nodes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.node{padding-top:10px}
.node:nth-child(2){text-align:center}
.node:nth-child(3){text-align:right}
.node b{display:block;font-family:var(--m);font-size:11.5px;font-weight:500;color:var(--tx);letter-spacing:.02em}
.node span{font-family:var(--m);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-3)}
.node.on b{color:var(--lime)}
.trace-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}
.trace-nums b{display:block;font-family:var(--h);font-size:24px;font-weight:600;letter-spacing:-.03em}
.trace-nums span{font-family:var(--m);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--tx-3)}
.disclaim{margin-top:18px;font-family:var(--m);font-size:10.5px;line-height:1.6;letter-spacing:.03em;color:var(--tx-3)}

/* ---------- architecture ---------- */
.arch{
  background:linear-gradient(180deg,var(--surf-2),var(--surf));
  border:1px solid var(--line);border-radius:18px;padding:clamp(22px,3vw,38px);overflow-x:auto;
}
.arch svg{min-width:680px;width:100%;height:auto}
.flow{stroke-dasharray:5 7;animation:dash 1.6s linear infinite}
@keyframes dash{to{stroke-dashoffset:-24}}

/* ---------- api ---------- */
.api{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(28px,4vw,60px);align-items:start}
.specs{list-style:none;padding:0;margin:26px 0 0}
.specs li{padding:15px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:112px 1fr;gap:16px;align-items:baseline}
.specs li:last-child{border-bottom:1px solid var(--line)}
.specs .k{font-family:var(--m);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--lime-2)}
.specs .v{color:var(--tx-2);font-size:15.5px}
.specs .v b{color:var(--tx);font-weight:500}
.code{background:#0E100C;border:1px solid var(--line-2);border-radius:16px;overflow:hidden;box-shadow:0 36px 80px -48px rgba(0,0,0,.9)}
.code-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;
  border-bottom:1px solid var(--line);
  font-family:var(--m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--tx-3);
}
.code-bar .rt{display:flex;align-items:center;gap:14px}
.code-bar a{color:var(--lime);text-decoration:none}
.code-bar a:hover{text-decoration:underline}
.copy{background:none;border:1px solid var(--line-2);color:var(--tx-2);border-radius:7px;padding:5px 10px;cursor:pointer;font-family:var(--m);font-size:10px;letter-spacing:.11em;text-transform:uppercase;transition:.18s}
.copy:hover{color:var(--tx);border-color:var(--tx-3)}
.code pre{margin:0;padding:20px 18px;overflow-x:auto;font-family:var(--m);font-size:12.5px;line-height:1.78;color:#C8CCC0}
.c-c{color:var(--tx-3)}
.c-m{color:var(--lime)}
.c-s{color:#CBE38C}
.btns{display:flex;flex-wrap:wrap;gap:11px;margin-top:24px}

/* ---------- licensing ---------- */
.lic{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.jur{background:linear-gradient(180deg,var(--surf-2),var(--surf));border:1px solid var(--line);border-radius:var(--r);padding:26px 24px}
.jur h3{font-size:17px;margin-bottom:18px}
.jrow{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid var(--line)}
.jrow:last-child{padding-bottom:0}
.jrow .rg{font-size:15px;color:var(--tx-2)}
.chip{font-family:var(--m);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;padding:4px 9px;border-radius:99px;border:1px solid;white-space:nowrap}
.chip.ok{color:var(--lime);border-color:rgba(181,230,29,.32);background:rgba(181,230,29,.07)}
.chip.req{color:var(--warn);border-color:rgba(227,199,102,.3);background:rgba(227,199,102,.06)}
.chip.no{color:var(--tx-3);border-color:var(--line-2)}
.wrap-card{display:grid;gap:12px;margin-top:16px}
.wr{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:11px;background:rgba(237,239,234,.02)}
.wr .fl{font-family:var(--m);font-size:11px;letter-spacing:.13em;color:var(--lime-2);padding-top:2px;flex:none;width:34px}
.wr b{display:block;font-size:15px;font-weight:600}
.wr span{font-size:14px;color:var(--tx-2)}

/* ---------- paper band ---------- */
.paper{background:var(--paper);color:var(--paper-ink)}
.paper h2{font-size:clamp(28px,4vw,50px);letter-spacing:-.035em}
.paper h2 .it{color:var(--lime-2)}
.paper p{color:var(--paper-ink-2)}
.pgrid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,4vw,64px);align-items:center}
.pfee{border-top:1px solid rgba(20,20,15,.16)}
.pfee div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid rgba(20,20,15,.16);font-size:15.5px}
.pfee b{font-family:var(--h);font-weight:600}
.pfee span{color:var(--paper-ink-2)}

/* ---------- close + form ---------- */
.close{display:grid;grid-template-columns:1fr 1.02fr;gap:clamp(32px,4.5vw,72px);align-items:start}
.close h2{font-size:clamp(30px,4vw,50px)}
.steps{list-style:none;counter-reset:s;padding:0;margin:32px 0 0}
.steps li{counter-increment:s;display:grid;grid-template-columns:34px 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.steps li:last-child{border-bottom:1px solid var(--line)}
.steps li::before{
  content:counter(s,decimal-leading-zero);font-family:var(--m);font-size:11px;letter-spacing:.1em;
  color:var(--lime-2);padding-top:4px;
}
.steps b{display:block;font-size:16px;font-weight:600}
.steps span{color:var(--tx-2);font-size:15px}

.formcard{
  background:linear-gradient(180deg,var(--surf-2),var(--surf));
  border:1px solid var(--line-2);border-radius:18px;padding:clamp(24px,3vw,34px);
  box-shadow:0 40px 90px -50px rgba(0,0,0,.9);
}
.formcard h3{font-size:21px;margin-bottom:6px}
.formcard .sub{color:var(--tx-2);font-size:14.5px;margin-bottom:24px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:7px}
.field.full{grid-column:1/-1}
.field label{
  font-family:var(--m);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--tx-3);
  display:flex;justify-content:space-between;align-items:baseline;gap:8px;
}
.field label .opt{color:var(--tx-3);opacity:.7;text-transform:none;letter-spacing:.02em;font-size:10.5px}
.field input,.field textarea{
  width:100%;background:rgba(237,239,234,.035);border:1px solid var(--line);
  border-radius:10px;padding:12px 13px;color:var(--tx);
  font-family:var(--b);font-size:15px;line-height:1.5;
  transition:border-color .18s,background .18s,box-shadow .18s;
}
.field textarea{resize:vertical;min-height:104px}
.field input::placeholder,.field textarea::placeholder{color:var(--tx-3)}
.field input:focus,.field textarea:focus{
  outline:none;border-color:rgba(181,230,29,.55);background:rgba(237,239,234,.055);
  box-shadow:0 0 0 3px rgba(181,230,29,.10);
}
.field.err input,.field.err textarea{border-color:rgba(255,107,74,.6)}
.field .msg{font-size:12.5px;color:var(--down);min-height:0;display:none}
.field.err .msg{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.consent{margin-top:18px;font-size:12.5px;line-height:1.6;color:var(--tx-3)}
.consent a{color:var(--tx-2);text-decoration:underline;text-underline-offset:2px}
.submit-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:20px}
.submit-row .btn{padding:14px 24px}
.btn[disabled]{opacity:.45;pointer-events:none}
.formerr{
  display:none;margin-top:16px;padding:13px 15px;border-radius:10px;
  border:1px solid rgba(255,107,74,.35);background:rgba(255,107,74,.07);
  font-size:14px;color:#FFB49E;
}
.formerr a{color:var(--tx);text-decoration:underline}
.formerr.on{display:block}
.success{display:none;text-align:left}
.success.on{display:block}
.success .tick{
  width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(181,230,29,.12);border:1px solid rgba(181,230,29,.4);margin-bottom:18px;
}
.success h3{font-size:21px;margin-bottom:8px}
.success p{color:var(--tx-2);font-size:15px;max-width:40ch}
.success .again{
  margin-top:20px;background:none;border:0;padding:0;cursor:pointer;
  font-family:var(--m);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--tx-3);
  border-bottom:1px solid var(--line-2);
}
.success .again:hover{color:var(--tx)}

/* ---------- footer ---------- */
.ft{border-top:1px solid var(--line);padding:44px 0 40px;background:var(--surf)}
.ft-g{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.ft .co{color:var(--tx-2);font-size:14px;line-height:1.7;max-width:36ch}
.ft .co b{color:var(--tx);font-weight:500;display:block;margin-bottom:2px}
.ft .co span{display:block;color:var(--tx-3);font-size:13px}
.ft h4{font-family:var(--m);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--tx-3);font-weight:500;margin-bottom:14px}
.ft a{display:block;color:var(--tx-2);text-decoration:none;font-size:14.5px;padding:4px 0;transition:color .18s}
.ft a:hover{color:var(--tx)}
.legal{
  margin-top:38px;padding-top:22px;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:10px 30px;justify-content:space-between;
  font-size:12.5px;color:var(--tx-3);line-height:1.65;
}
.legal p{max-width:74ch}

/* ---------- boot sequence ---------- */
.bt{opacity:0;transform:translateY(16px)}
.bt.on{opacity:1;transform:none;transition:opacity .72s cubic-bezier(.2,.7,.25,1),transform .72s cubic-bezier(.2,.7,.25,1);transition-delay:var(--d,0ms)}

:focus-visible{outline:2px solid var(--lime);outline-offset:3px;border-radius:4px}
::selection{background:rgba(181,230,29,.25)}

/* ---------- responsive ---------- */
@media(max-width:1080px){
  .hero-g,.eng,.api,.close,.pgrid{grid-template-columns:1fr}
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .hd-nav{display:none}
}
@media(max-width:820px){
  .grid-3,.lic{grid-template-columns:1fr}
  .ft-g{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  body{font-size:16px}
  .grid-4{grid-template-columns:1fr}
  .strip{grid-template-columns:1fr 1fr;gap:18px 0}
  .specs li{grid-template-columns:1fr;gap:4px}
  .trace-nums{grid-template-columns:1fr;gap:16px}
  .fgrid{grid-template-columns:1fr}
  .ft-g{grid-template-columns:1fr}
  .hd-in{height:60px;gap:12px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .bt{opacity:1;transform:none}
  .tape-track{animation:none!important}
}

/* =========================================================
   LEGAL PAGES — masthead, table of contents, document body
   Used by terms.html / privacy.html / cookies.html
   ========================================================= */

/* masthead */
.mast{position:relative;padding:clamp(48px,6vw,88px) 0 clamp(28px,3.4vw,44px);border-bottom:1px solid var(--line)}
.mast .wrap{position:relative;z-index:1}
.mast h1{font-family:var(--h);font-weight:600;letter-spacing:-.035em;line-height:1.04;font-size:clamp(34px,5.2vw,62px);margin:18px 0 0}
.mast h1 .it{font-family:var(--s);font-style:italic;font-weight:400;color:var(--lime);letter-spacing:-.01em}
.mast .meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:24px;font-family:var(--m);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--tx-3)}
.mast .meta b{color:var(--tx-2);font-weight:500}

/* document layout */
.doc{display:grid;grid-template-columns:236px 1fr;gap:clamp(32px,5vw,80px);padding:clamp(40px,5vw,72px) 0 clamp(60px,7vw,110px);align-items:start}

/* table of contents */
.toc{position:sticky;top:96px}
.toc h2{font-family:var(--m);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--tx-3);font-weight:500;margin:0 0 14px}
.toc ol{list-style:none;counter-reset:t;padding:0;margin:0}
.toc li{counter-increment:t}
.toc a{display:grid;grid-template-columns:24px 1fr;gap:8px;padding:6px 0;font-size:13.5px;color:var(--tx-3);text-decoration:none;line-height:1.4;transition:color .18s}
.toc a::before{content:counter(t,decimal-leading-zero);font-family:var(--m);font-size:10px;color:var(--tx-3);opacity:.6;padding-top:2px}
.toc a:hover,.toc a.on{color:var(--tx)}
.toc a.on::before{color:var(--lime);opacity:1}

/* document body */
.body{max-width:74ch}
.body .intro{color:var(--tx-2);font-size:clamp(16.5px,1.3vw,18.5px);line-height:1.62;padding-bottom:8px}
.body section{padding:30px 0;border-top:1px solid var(--line);scroll-margin-top:92px}
.body section:first-of-type{border-top:0;padding-top:8px}
.body h2{font-family:var(--h);font-weight:600;letter-spacing:-.024em;font-size:clamp(20px,2.1vw,25px);line-height:1.16;margin:0 0 14px;display:grid;grid-template-columns:38px 1fr;gap:6px;align-items:baseline}
.body h2 .n{font-family:var(--m);font-size:11px;font-weight:500;letter-spacing:.1em;color:var(--lime-2)}
.body h3{font-family:var(--h);font-weight:600;font-size:16.5px;letter-spacing:-.015em;margin:22px 0 8px;color:var(--tx)}
.body p{margin:0 0 14px;color:var(--tx-2)}
.body p:last-child{margin-bottom:0}
.body strong{color:var(--tx);font-weight:500}
.body a{color:var(--tx);text-decoration:underline;text-underline-offset:2px;text-decoration-color:rgba(181,230,29,.5)}
.body a:hover{text-decoration-color:var(--lime)}
.body ul{list-style:none;padding:0;margin:0 0 14px}
.body ul li{position:relative;padding:5px 0 5px 22px;color:var(--tx-2)}
.body ul li::before{content:"";position:absolute;left:4px;top:14px;width:5px;height:5px;border-radius:50%;background:var(--lime-2);opacity:.7}
.mono{font-family:var(--m);font-size:14px;letter-spacing:.01em}
.callout{background:rgba(237,239,234,.03);border:1px solid var(--line);border-left:2px solid var(--lime-2);border-radius:0 10px 10px 0;padding:16px 18px;margin:0 0 14px}
.callout p:last-child{margin-bottom:0}

@media(max-width:1000px){
  .doc{grid-template-columns:1fr;gap:28px}
  .toc{position:static;border:1px solid var(--line);border-radius:12px;padding:18px 20px;background:var(--surf-2)}
  .toc ol{columns:2;column-gap:24px}
}
@media(max-width:600px){
  .toc ol{columns:1}
  .body h2{grid-template-columns:32px 1fr}
}
