*{box-sizing:border-box}
body{margin:0;background:var(--surface-card);color:var(--text-body);font:var(--type-body);-webkit-font-smoothing:antialiased}
a{color:var(--text-link);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}
a:hover{color:var(--text-link-hover);text-decoration-thickness:2.5px}
img{max-width:100%;display:block}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.wrap{max-width:var(--page-max);margin:0 auto;padding:0 var(--page-gutter)}
.band{padding:var(--space-10) 0}
.band-ivory{background:var(--surface-page)}
.band-ink{background:var(--surface-ink);color:var(--text-invert)}
.eyebrow{font:var(--type-eyebrow);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-muted);margin:0}
.band-ink .eyebrow{color:rgba(255,255,255,.7)}
h1,h2,h3{margin:0;letter-spacing:var(--ls-tight);color:var(--text-strong);text-wrap:pretty}
.band-ink h1,.band-ink h2,.band-ink h3{color:var(--text-invert)}
h1{font:var(--type-h1);max-width:22ch}
h2{font:var(--type-h2);max-width:26ch}
h3{font:var(--type-h4)}
p{margin:0;max-width:var(--measure-prose);text-wrap:pretty}
.lede{font:var(--type-body-lg);color:var(--text-muted)}
.band-ink .lede{color:rgba(255,255,255,.8)}
.muted{color:var(--text-muted)}
.stack{display:flex;flex-direction:column;gap:var(--space-5);align-items:flex-start}
.row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:var(--space-8);align-items:center}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:var(--space-6);align-items:stretch;width:100%}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:var(--space-5);width:100%}
.slotbox{position:relative;width:100%;aspect-ratio:16/10}
.facts{width:100%;border-collapse:collapse;font:var(--type-body);max-width:900px}
.facts th,.facts td{text-align:left;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);vertical-align:top}
.facts th{width:38%;font:var(--type-ui);font-size:var(--fs-body);color:var(--text-muted);white-space:nowrap}
.facts tr:last-child th,.facts tr:last-child td{border-bottom:0}
#root button{white-space:nowrap}
.dg-glide{animation:dgGlide 7s cubic-bezier(.4,0,.2,1) infinite}
@keyframes dgGlide{0%,100%{transform:translateX(0)}50%{transform:translateX(22px)}}
.dg-bob{animation:dgBob 3.4s cubic-bezier(.4,0,.2,1) infinite}
@keyframes dgBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.dg-blink{animation:dgBlink 3.4s cubic-bezier(.4,0,.2,1) infinite}
@keyframes dgBlink{0%,100%{opacity:1}48%{opacity:1}52%{opacity:.35}}
.dg-send{animation:dgSend 2.6s linear infinite}
@keyframes dgSend{0%{transform:translateX(0);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translateX(68px);opacity:0}}
.dg-recv{animation:dgRecv 2.6s linear infinite;animation-delay:1.3s}
@keyframes dgRecv{0%{transform:translateX(68px);opacity:0}12%{opacity:1}88%{opacity:1}100%{transform:translateX(0);opacity:0}}
@media(prefers-reduced-motion:reduce){.dg-glide,.dg-bob,.dg-blink,.dg-send,.dg-recv{animation:none}}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--space-4);top:var(--space-4);z-index:20;background:var(--surface-card);padding:var(--space-3) var(--space-4);border-radius:var(--radius-control)}
.srcline{font:var(--type-meta);letter-spacing:var(--ls-wide);color:var(--text-muted)}
.statnum{font:var(--fw-bold) var(--fs-h1)/var(--lh-tight) var(--font-display);letter-spacing:var(--ls-tight);color:var(--leaf-300)}
.nolist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4);max-width:var(--measure-prose)}
.nolist li{display:flex;gap:var(--space-3);align-items:flex-start}
@media(max-width:820px){.nav-desktop{display:none!important}.nav-toggle{display:inline-flex!important}}
@media(max-width:640px){.band{padding:var(--space-9) 0}h1{font:var(--fw-bold) 2.25rem/1.15 var(--font-display)}h2{font:var(--fw-bold) 1.75rem/1.2 var(--font-display)}h3{font:var(--fw-semibold) 1.375rem/1.25 var(--font-display)}.facts th{width:auto;white-space:normal}}

/* --- review fixes --- */
.eyebrow{white-space:nowrap}
.statsrc{font:var(--type-meta);letter-spacing:var(--ls-wide);margin-top:var(--space-1)}
.band-ink .statsrc a{color:rgba(255,255,255,.62);text-decoration-thickness:1px}
.band-ink .statsrc a:hover{color:var(--leaf-300)}
.badge,[class*="badge"]{white-space:nowrap}
h1,h2,h3{overflow-wrap:break-word}
@media(max-width:520px){.eyebrow{white-space:normal}}

/* --- mobile header collision guard (Safari font metrics) --- */
header .wrap{flex-wrap:nowrap !important;align-items:center !important}
header .wrap>a:first-child{min-width:0 !important;flex:0 1 auto !important;overflow:hidden !important;white-space:nowrap !important}
header .nav-toggle{flex:0 0 auto !important;margin-left:auto !important}
@media (max-width:600px){
  header .wrap{gap:10px !important;padding-left:18px !important;padding-right:18px !important}
  header .wrap>a:first-child{font-size:16px !important}
  header .wrap>a:first-child img{width:26px !important;height:26px !important}
  header .nav-toggle{padding-left:12px !important;padding-right:12px !important;font-size:14px !important}
}
@media (max-width:380px){
  header .wrap>a:first-child{font-size:15px !important}
  header .wrap{padding-left:14px !important;padding-right:14px !important}
}
