@font-face{font-family:Figtree;src:url(/assets/fonts/figtree-latin-wght-normal.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:"DM Mono";src:url(/assets/fonts/dm-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"DM Mono";src:url(/assets/fonts/dm-mono-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
:root{
  --paper:#ffffff;
  --mist:#f4f5f7;
  --line:#e3e6eb;
  --ink:#1b1f2a;
  --slate:#586173;
  --faint:#8a92a2;
  --signal:#f33535;      /* route64 logo red */
  --signal-btn:#df2a2a;  /* same hue, dark enough for white text */
  --up:#13a150;
  --wait:#cf8f00;
  --bad:#d4343c;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 Figtree,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:3px solid var(--signal);outline-offset:3px;border-radius:3px}
code,pre,.mono{font-family:"DM Mono",ui-monospace,monospace}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
h1,h2,h3{margin:0;letter-spacing:-.02em}
h2{font-size:clamp(32px,3.6vw,48px);font-weight:800;line-height:1.05;letter-spacing:-.03em}
h3{font-size:20px;font-weight:700;line-height:1.25}
p{margin:0}
section{padding:96px 0}
.intro{color:var(--slate);font-size:18px;max-width:36em;margin-top:14px}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:40px}
.sec-head .intro{margin-top:0}

/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.top-in{display:flex;align-items:center;gap:30px;height:70px}
.brand img{display:block;height:34px;width:auto}
.nav{display:flex;gap:26px}
.nav a{text-decoration:none;color:var(--slate);font-weight:600;font-size:16px}
.nav a:hover{color:var(--ink)}
.top-cta{margin-left:auto;display:flex;align-items:center;gap:18px}
.signin{font-weight:600;text-decoration:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:700;border-radius:999px;padding:14px 24px;line-height:1;font-size:16px;border:2px solid transparent}
.btn-red{background:var(--signal-btn);color:#fff}
.btn-red:hover{background:#c71f1f}
.btn-ghost{border-color:var(--line);color:var(--ink);background:#fff}
.btn-ghost:hover{border-color:var(--ink)}
.btn-sm{padding:10px 16px;font-size:15px}

/* hero */
.hero{padding:64px 0 88px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;margin-top:36px}
h1{font-size:clamp(44px,6.6vw,92px);font-weight:900;line-height:.98;letter-spacing:-.04em;text-wrap:balance}
.lead{font-size:19px;color:var(--slate);max-width:31em}
.ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.pulse{display:block;width:calc(100% + 56px);height:auto;margin-top:84px;overflow:visible}
.pulse .bar{stroke:var(--signal);stroke-width:5;stroke-linecap:round}
.pulse .wire{stroke:var(--signal);stroke-width:5;stroke-linecap:round;fill:none}
.pulse .dot{fill:var(--signal);transform:translate(632px,28px)}

.panel{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 60px rgba(27,31,42,.12),0 2px 6px rgba(27,31,42,.06);overflow:hidden}
.panel-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--mist);font-size:13.5px;color:var(--slate)}
.panel-bar i{width:10px;height:10px;border-radius:50%;background:#d6dae1}
.panel-bar span{margin-left:8px}
.panel-body{padding:22px 24px 24px}
.ps-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.ps-title h3{font-size:19px}
.ps-title .mono{font-size:13.5px;color:var(--faint)}
.checks{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:4px}
.checks li{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:start;padding:9px 0;border-top:1px solid var(--line);font-size:15.5px}
.checks li:first-child{border-top:0}
.checks .ic{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#e7f6ee;color:var(--up);font-size:13px;font-weight:800;margin-top:1px}
.checks .ic svg{width:13px;height:13px}
.checks small{display:block;color:var(--faint);font-size:13.5px}
.checks .mono{font-size:13.5px}
.checks li.final{padding-top:14px}
.state{display:inline-flex;align-items:center;gap:8px;background:#e7f6ee;color:#0d7a3c;font-weight:700;font-size:14px;padding:6px 12px;border-radius:999px}
.state::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--up)}
@media (prefers-reduced-motion:no-preference){
  .checks li{opacity:0;transform:translateY(6px);animation:tick .45s ease forwards;animation-delay:calc(.5s + var(--i) * .45s)}
  @keyframes tick{to{opacity:1;transform:none}}
  .pulse .bar{transform-origin:center;transform-box:fill-box;animation:beat .9s ease-in-out 1 .2s}
  @keyframes beat{50%{transform:scaleY(1.6)}}
  .pulse .dot{transform:none;offset-path:path("M66 28 L632 28");animation:travel 1.6s cubic-bezier(.5,0,.3,1) .5s forwards;offset-distance:0%}
  @keyframes travel{to{offset-distance:100%}}
}

/* bento */
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}
.cell{background:var(--mist);border-radius:18px;padding:26px;display:flex;flex-direction:column;gap:14px;min-width:0}
.cell p{color:var(--slate);font-size:16px}
.s7{grid-column:span 7}.s5{grid-column:span 5}.s4{grid-column:span 4}.s6{grid-column:span 6}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:14.5px;font-weight:600}
.chip.muted{color:var(--faint);font-weight:500}
pre{margin:0;background:#1b1f2a;color:#e6e9ef;border-radius:12px;padding:16px 18px;font-size:13.5px;line-height:1.6;overflow-x:auto}
.s4 pre{font-size:12.5px;white-space:pre-wrap;overflow-wrap:anywhere}
pre .k{color:#ff8a8a}
pre .c{color:#8a93a6}
.rows{display:grid;gap:8px}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;overflow-wrap:anywhere;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:15px}
.row b{font-weight:700}
.row small{display:block;color:var(--faint);font-size:13px}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap}
.pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pill.up{background:#e7f6ee;color:#0d7a3c}
.pill.wait{background:#fdf3dc;color:#8a5d00}
.pill.bad{background:#fde8e9;color:#a8262d}
.tbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:14.5px}
.tbl td{padding:10px 12px;border-top:1px solid var(--line)}
.tbl tr:first-child td{border-top:0}
.tbl td:last-child{text-align:right}
.tbl .x td{color:var(--faint);text-decoration:line-through}
.tbl .x td:last-child{text-decoration:none}
.mini-map{height:120px;background:#fff;border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden}
.mini-map svg{display:block;width:100%;height:100%}

/* automation */
.auto{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.auto article{border:1px solid var(--line);border-radius:18px;padding:24px}
.auto .when{display:inline-block;font-size:13px;font-weight:700;color:var(--signal-btn);background:#fdecec;border-radius:999px;padding:4px 11px;margin-bottom:14px}
.auto p{color:var(--slate);margin-top:6px;font-size:16px}

/* network + partners + costs */
.pops{display:flex;flex-wrap:wrap;gap:8px}
.pops span{border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:15px}
.pops span small{color:var(--faint);margin-left:4px;font-size:12.5px}
.pops span.off{color:var(--faint);text-decoration:line-through}
.split{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.partners{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.partners>*{display:block;text-decoration:none;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-weight:700;font-size:15.5px}
.partners img{display:block;height:32px;width:auto;max-width:100%;object-fit:contain;margin-bottom:8px}
.partners small{display:block;font-weight:500;color:var(--faint);font-size:13px}
.partners>a:hover{border-color:var(--ink)}
.cover{border-radius:18px;background:var(--mist);padding:26px}
.cover .big{font-size:52px;font-weight:900;letter-spacing:-.03em;line-height:1}
.cover .big small{font-size:18px;color:var(--slate);font-weight:600;letter-spacing:0;margin-left:6px}
.track{height:12px;border-radius:6px;background:#e3e6eb;overflow:hidden;margin:18px 0 10px}
.track i{display:block;height:100%;background:var(--signal);border-radius:6px}
.cover p{color:var(--slate);font-size:15.5px}
.goal{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 0;border-top:1px solid #e1e4ea;font-size:15.5px}
.goal .t{grid-column:1/-1;height:6px;border-radius:3px;background:#e1e4ea;overflow:hidden}
.goal .t i{display:block;height:100%;background:var(--ink)}

.cta-band{background:var(--signal-btn);color:#fff;border-radius:24px;padding:48px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.cta-band h2{color:#fff;font-size:clamp(28px,3vw,40px)}
.cta-band p{color:#ffe3e3;margin-top:8px;font-size:18px}
.btn-white{background:#fff;color:var(--ink)}
.btn-white:hover{background:#ffeaea}

footer{border-top:1px solid var(--line);padding:56px 0 36px;font-size:15px;color:var(--slate)}
.foot{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:28px}
footer h4{margin:0 0 12px;color:var(--ink);font-size:15px}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
footer a{text-decoration:none}
footer a:hover{color:var(--ink);text-decoration:underline}
.foot-brand img{height:30px;width:auto}
.foot-brand p{margin-top:12px;max-width:22em}
.foot-base{margin-top:44px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px 24px;font-size:14px;color:var(--faint)}

@media (max-width:1000px){
  .nav{display:none}
  .hero-grid,.sec-head,.split{grid-template-columns:1fr}
  .pulse{width:100%;margin-top:44px}
  .s7,.s5,.s4,.s6{grid-column:span 12}
  .auto{grid-template-columns:1fr 1fr}
  .foot{grid-template-columns:repeat(2,1fr)}
  .foot-brand{grid-column:1/-1}
}
@media (max-width:640px){
  .wrap{padding:0 16px}
  section{padding:68px 0}
  .hero{padding:40px 0 64px}
  .signin{display:none}
  .brand img{height:28px}
  .auto,.partners{grid-template-columns:1fr}
  .cell{padding:20px}
  .cta-band{padding:28px}
}


/* ---- v2: product tabs in the hero ---- */
.tabs{display:flex;gap:4px;padding:10px 12px 0;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{appearance:none;border:0;background:none;font:600 14.5px/1 Figtree,sans-serif;color:var(--slate);padding:11px 12px 12px;border-bottom:3px solid transparent;margin-bottom:-1px;cursor:pointer;white-space:nowrap;border-radius:6px 6px 0 0}
.tab:hover{color:var(--ink);background:var(--mist)}
.tab[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--signal)}
.tab .new{font-size:11px;font-weight:700;color:var(--signal-btn);margin-left:4px}
[role="tabpanel"][hidden]{display:none}

/* ---- v2: products ---- */
.prod{background:var(--mist);border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:16px;min-width:0}
.prod-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.prod h3{font-size:24px;letter-spacing:-.02em}
.prod .pitch{color:var(--slate);font-size:16.5px;margin-top:6px}
.badge{display:inline-flex;align-items:center;font-size:12.5px;font-weight:700;padding:5px 10px;border-radius:999px;white-space:nowrap}
.badge.free{background:#e7f6ee;color:#0d7a3c}
.badge.level{background:#fff;color:var(--ink);border:1px solid var(--line)}
.badge.new{background:#fdecec;color:var(--signal-btn)}
.badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.two h4{margin:0 0 6px;font-size:13px;color:var(--faint);font-weight:700}
.two ul{margin:0;padding:0;list-style:none;display:grid;gap:5px;font-size:15px}
.two li{padding-left:18px;position:relative}
.two li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--signal)}
.two .auto-list li::before{background:none;border:2px solid var(--up);width:9px;height:9px;top:.5em}
.subnet{display:grid;gap:8px}
.zone{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;font:400 13.5px/1.4 "DM Mono",monospace}
.zone td{padding:9px 12px;border-top:1px solid var(--line);white-space:nowrap}
.zone tr:first-child td{border-top:0}
.zone td.t{color:var(--signal-btn);font-weight:500;width:70px}
.zone td.v{white-space:normal;overflow-wrap:anywhere}
.extras{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.extras .cell{gap:10px}

/* ---- v2: network map (ported from mockup A) ---- */
:root{--atlantic:#1f5fbf;--channel:#f33535;--nordic:#ef8a00;--pacific:#0e9a5a}
.map{margin:8px 0 0;border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden}
.map-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.map svg{display:block;width:100%;min-width:780px;max-width:1080px;height:auto;margin:0 auto}
.map .line{fill:none;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}
.map .stop{fill:#fff;stroke:var(--ink);stroke-width:3.2}
.map .hub{fill:#fff;stroke:var(--ink);stroke-width:4}
.map .closed{fill:#fff;stroke:var(--faint);stroke-width:3.2}
.map text{font-family:Figtree,system-ui,sans-serif;font-weight:800;font-size:14px;fill:var(--ink)}
.map text.code{font-family:"DM Mono",monospace;font-weight:500;font-size:10.5px;fill:var(--faint)}
.map text.muted{fill:var(--faint)}
.map text.water{font-weight:600;font-style:italic;font-size:12px;fill:#6f97bd}
.map-hint{display:none;font-size:13px;color:var(--faint);padding:6px 16px 10px}
@media (prefers-reduced-motion:no-preference){
  .map .line{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw 1.1s cubic-bezier(.6,0,.2,1) forwards;animation-delay:var(--d)}
  .map .stops-g{opacity:0;animation:fade .5s ease forwards;animation-delay:1.3s}
  @keyframes draw{to{stroke-dashoffset:0}}
  @keyframes fade{to{opacity:1}}
}
.legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;padding:16px 4px 0;font-size:15px;color:var(--slate)}
.legend span{display:flex;align-items:center;gap:10px}
.swatch{width:30px;height:8px;border-radius:4px;background:var(--c)}
.legend .note{margin-left:auto;color:var(--faint);font-size:14px}
.status{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:16px;padding:14px 18px;border-radius:12px;background:#e7f6ee}
.status b{color:#0d6e3a}
.status .dot{width:10px;height:10px;border-radius:50%;background:var(--up);flex:none}
.status span{color:#2d5b42}
.everywhere{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.lines{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:40px}
.line-col h3{display:flex;align-items:center;gap:12px;font-size:18px}
.line-col h3::before{content:"";width:30px;height:8px;border-radius:4px;background:var(--c);flex:none}
.line-col .ends{font-size:14px;color:var(--faint);margin:4px 0 0 42px}
.stops{list-style:none;margin:18px 0 0;padding:0;position:relative}
.stops::before{content:"";position:absolute;left:8px;top:14px;bottom:14px;width:7px;border-radius:4px;background:var(--c)}
.stops li{position:relative;padding:7px 0 7px 38px;display:flex;flex-direction:column}
.stops li::before{content:"";position:absolute;left:3px;top:12px;width:17px;height:17px;border-radius:50%;background:#fff;border:3.5px solid var(--ink);box-sizing:border-box}
.stops .city{font-weight:800;line-height:1.3}
.stops .meta{font:400 13px/1.35 "DM Mono",monospace;color:var(--faint)}
.stops .ixp{font-size:14px;line-height:1.35;color:var(--slate);margin-top:2px}
.stops .host{font-size:13.5px;line-height:1.35;color:var(--slate);margin-top:2px;font-weight:700}
.stops .xfer{display:inline-flex;gap:4px;margin-left:6px;vertical-align:2px}
.stops .xfer i{width:9px;height:9px;border-radius:50%;background:var(--c)}
.stops li.is-closed::before{border-color:var(--faint)}
.stops li.is-closed .city{color:var(--faint)}
.tag{display:inline-block;font:700 11px/1 Figtree,sans-serif;padding:4px 6px 3px;border-radius:3px;background:#e9ecf1;color:var(--slate);margin-left:6px;vertical-align:2px}

/* ---- v2: automation grid of eight ---- */
.auto{grid-template-columns:repeat(4,1fr)}

/* ---- v2: sponsor levels ---- */
.levels-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:#fff}
.levels{border-collapse:collapse;width:100%;min-width:860px;font-size:15px}
.levels th,.levels td{padding:12px 14px;text-align:center;border-top:1px solid var(--line)}
.levels thead th{border-top:0;font-size:16px;font-weight:800;padding-top:18px}
.levels thead th small{display:block;font:400 13px/1.3 "DM Mono",monospace;color:var(--slate);margin-top:4px}
.levels tbody th{text-align:left;font-weight:600;color:var(--slate);white-space:nowrap}
.levels td.y{color:var(--up);font-weight:700}
.levels td.n{color:var(--faint)}
.levels .free-col{background:#fbf3f3}
.levels-note{font-size:14.5px;color:var(--slate);margin-top:14px;max-width:60em}
.subnets{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.subnets span{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:14px;background:#fff}
.subnets span b{font-family:"DM Mono",monospace;font-weight:500}

@media (max-width:1000px){
  .two{grid-template-columns:1fr}
  .extras{grid-template-columns:1fr}
  .lines{grid-template-columns:1fr 1fr;row-gap:44px}
  .auto{grid-template-columns:1fr 1fr}
  .map-hint{display:block}
}
@media (max-width:640px){
  .lines,.auto{grid-template-columns:1fr}
  .prod{padding:20px}
  .prod-top{flex-direction:column}
  .badges{justify-content:flex-start}
  .legend .note{margin-left:0}
}

/* ---- v3: feature spec sheet ---- */
.sheet{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.sheet .tabs{padding:10px 14px 0;background:var(--mist)}
.sheet .tab[aria-selected="true"]{background:#fff}
.sheet-panel{padding:28px 30px 32px}
.sheet-panel[hidden]{display:none}
.sheet-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;margin-bottom:20px}
.sheet-head h3{font-size:26px;letter-spacing:-.02em}
.running{font:400 13.5px/1 "DM Mono",monospace;color:var(--slate)}
.running b{color:var(--ink);font-weight:500}
.groups{display:grid;grid-template-columns:1fr 1fr;gap:30px 44px}
.group h4{margin:0 0 6px;font-size:13px;font-weight:700;color:var(--signal-btn)}
.group dl{margin:0;display:grid;grid-template-columns:132px minmax(0,1fr)}
.group dt,.group dd{padding:10px 0;border-top:1px solid var(--line);font-size:15px;line-height:1.5}
.group dt{color:var(--slate);font-weight:600;padding-right:14px}
.group dd{margin:0;overflow-wrap:anywhere}
.pm-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:#fff;margin-top:18px}
.pm{border-collapse:collapse;width:100%;min-width:860px;font-size:15px}
.pm th,.pm td{padding:11px 14px;border-top:1px solid var(--line);text-align:center;white-space:nowrap}
.pm thead th{border-top:0;font-size:13.5px;color:var(--slate);font-weight:700;background:var(--mist)}
.pm thead tr+tr th{border-top:1px solid var(--line)}
.pm tbody th{text-align:left;font-weight:700}
.pm td:last-child{text-align:left;color:var(--slate);white-space:normal;min-width:220px}
.pm td.y{color:var(--up);font-weight:700}
.pm td.n{color:var(--faint)}
@media (max-width:1000px){.groups{grid-template-columns:1fr}}
@media (max-width:640px){
  .sheet-panel{padding:20px}
  .group dl{grid-template-columns:1fr}
  .group dt{padding-bottom:0}
  .group dd{border-top:0;padding-top:2px}
}

/* ---- v4: network reach ---- */
.reach{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.reach h3.over{font-size:15px;color:var(--slate);font-weight:700;margin-bottom:10px}
.ranks{list-style:none;margin:0;padding:0;border-top:3px solid var(--ink)}
.ranks li{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:baseline;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.ranks .n{font-size:56px;font-weight:900;letter-spacing:-.04em;line-height:.9;color:var(--ink)}
.ranks b{display:block;font-size:18px;line-height:1.3}
.ranks span{color:var(--slate);font-size:15px}
.ranks-src{font-size:14px;color:var(--faint);margin-top:14px}
.ladder{border-top:3px solid var(--ink)}
.lvl{display:grid;grid-template-columns:132px minmax(0,1fr);gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.lvl h3{font-size:18px}
.lvl h3 small{display:block;font:400 13px/1.35 "DM Mono",monospace;color:var(--faint);margin-top:3px;letter-spacing:0}
.lvl p{color:var(--slate);font-size:16px}
.lvl p+p,.lvl ul+p{margin-top:10px}
.lvl p b{color:var(--ink)}
.carriers{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.carriers li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.carriers b{font-size:18px}
.carriers .mono{font-size:14px;color:var(--slate)}
.carriers small{flex-basis:100%;color:var(--slate);font-size:15px}
.carriers .tag{margin-left:0}
.tag.t1{background:#fdecec;color:var(--signal-btn)}
@media (max-width:1000px){.reach{grid-template-columns:1fr;gap:40px}}
@media (max-width:640px){
  .lvl{grid-template-columns:1fr;gap:8px}
  .ranks li{grid-template-columns:84px minmax(0,1fr)}
  .ranks .n{font-size:46px}
}

/* ---- v4: legal pages ---- */
.legal{padding:56px 0 96px}
.legal-grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:64px;align-items:start}
.legal h1{font-size:clamp(38px,4.6vw,60px);line-height:1.02}
.legal-side{position:sticky;top:96px;display:grid;gap:2px;font-size:15px}
.legal-side a{text-decoration:none;color:var(--slate);padding:6px 0 6px 14px;border-left:3px solid var(--line)}
.legal-side a:hover{color:var(--ink)}
.legal-side a[aria-current="page"]{color:var(--ink);font-weight:700;border-left-color:var(--signal)}
.legal-side .toc{display:grid;gap:0;margin-top:16px}
.legal-side .toc a{font-size:13.5px;line-height:1.35;border-left-width:1px;padding:4px 0 4px 16px}
.prose{max-width:44em;margin-top:28px}
.prose h2{font-size:22px;font-weight:800;letter-spacing:-.01em;line-height:1.25;margin:36px 0 10px;scroll-margin-top:90px}
.prose p,.prose li{font-size:17px;line-height:1.65}
.prose p+p{margin-top:12px}
.prose ul,.prose ol{padding-left:1.3em;margin:12px 0;display:grid;gap:8px}
.prose ol.terms li::marker{font-weight:800;color:var(--signal-btn)}
.prose .ph{background:#fef3c7;color:#854d0e;border-radius:4px;padding:1px 5px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.prose a{text-decoration:underline}
.legal-table,.fw-table-card{overflow-x:auto;border:1px solid var(--line);border-radius:12px;margin:14px 0}
.legal-table table,.fw-table-card table{border-collapse:collapse;width:100%;min-width:560px}
.legal-table th,.legal-table td,.fw-table-card th,.fw-table-card td{padding:10px 12px;border-top:1px solid var(--line);text-align:left;vertical-align:top;font-size:15px;line-height:1.5}
.legal-table thead th,.fw-table-card thead th{border-top:0;background:var(--mist);font-size:14px;color:var(--slate)}
.review{margin-top:24px;max-width:44em;border:2px dashed #b45309;background:#fffbeb;border-radius:12px;padding:16px 18px;font-size:15px;line-height:1.5}
.review-tag{font:500 12px/1.2 "DM Mono",monospace;color:#92400e;margin-bottom:8px}
.review ul{margin:8px 0 0;padding-left:1.2em;display:grid;gap:6px}
.review p+p{margin-top:8px}
@media (max-width:1000px){
  .legal-grid{grid-template-columns:minmax(0,1fr)}
  .legal-side{display:none}
}
@media (max-width:640px){.legal{padding:36px 0 68px}}

/* live status levels, same structure as the ok line above (text contrast AA) */
.status.warn{background:#fef3c7}
.status.warn b{color:#92400e}
.status.warn span{color:#78350f}
.status.warn .dot{background:#d97706}
.status.down{background:#fde8e9}
.status.down b{color:#a8262d}
.status.down span{color:#7f1d1d}
.status.down .dot{background:#dc2626}
.status.unknown{background:#eef0f3}
.status.unknown b{color:var(--ink)}
.status.unknown span{color:var(--slate)}
.status.unknown .dot{background:#9ca3af}
