/* BreachBoard — KryptoHead house tokens, shared with kryptohead.com,
   ai.kryptohead.com and cyber.kryptohead.com. Dark only, like every other
   page on the site; there is deliberately no light variant, so two KryptoHead
   tabs cannot disagree on one screen. */
:root {
  color-scheme: dark;
  --base:#0f172a; --card:#1e293b; --well:#0b1120; --ink:#e2e8f0;
  --muted:#94a3b8; --accent:#38bdf8; --line:#334155; --line-2:#475569;

  /* this page's roles, mapped onto the house set */
  --ground: var(--base);
  --panel: var(--card);
  --panel-2:#18253c;          /* a step down from the card, for rails */
  --raise:#22304a80;          /* the house hover tone, translucent */
  --line-soft:#2a3a52;
  --ink-mid: var(--muted);
  --ink-dim:#64748b;
  --accent-ink: var(--well);
  --accent-soft:#38bdf81f;
  --hostile:#f87171;          /* attacker — house comp red */
  --hostile-soft:#f8717118;
  --amber:#fbbf24;
  --gold:#fbbf24;
  --good:#34d399;
  --warn:#fbbf24;
  --serious:#fb923c;
  --crit:#f87171;
  --fog:#243248;              /* undiscovered assets in the attacker lens */
  --grid:#ffffff10;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 8px 28px rgba(0,0,0,.28);
}

* { box-sizing: border-box; }
body {
  margin: 0;
  background:
    radial-gradient(circle at 12% 8%, rgba(56,189,248,.08), transparent 32rem),
    radial-gradient(circle at 88% 92%, rgba(248,113,113,.06), transparent 34rem),
    var(--ground);
  color: var(--ink);
  font-family: ui-sans-serif, system-ui, -apple-system, "PingFang TC", "Noto Sans TC",
    "Microsoft JhengHei", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
h1,h2,h3,h4 { font-weight: 800; letter-spacing: .01em; }
.mono,.num { font-family: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-variant-numeric: tabular-nums; }
a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }
button { font: inherit; color: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.eyebrow { font-family:"IBM Plex Mono",monospace; text-transform:uppercase;
  letter-spacing:.14em; font-size:10px; color:var(--ink-dim); }

/* ---------- house nav ---------- */
nav {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--ground) 86%, transparent);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
}
.nav-inner { display:flex; align-items:center; gap:14px; height:52px; padding:0 18px; flex-wrap:wrap; }
.nav-inner .spacer { flex:1; }
.wordmark { font-size:17px; font-weight:600; letter-spacing:-.02em;
  color:var(--ink); text-decoration:none; white-space:nowrap; }
.wordmark:hover { text-decoration:none; }
.wordmark .tld { font-weight:400; color:var(--accent); }
.pagesub { flex-shrink:0; font-size:13px; font-weight:600; color:var(--ink);
  padding-left:12px; border-left:1px solid var(--line); white-space:nowrap; }
.ver-badge { flex-shrink:0; font-size:10px; font-weight:500; color:var(--ink-dim);
  border:1px solid var(--line-2); border-radius:4px; padding:1px 6px; letter-spacing:.06em; }
.lang { flex-shrink:0; display:inline-flex; gap:2px; padding:3px;
  background:rgba(30,41,59,.72); border:1px solid var(--line); border-radius:999px; }
.lang button { font-family:inherit; font-size:12px; font-weight:600; letter-spacing:.04em;
  line-height:1.5; padding:4px 13px; border:0; border-radius:999px;
  background:transparent; color:var(--ink-mid); transition:background-color .16s, color .16s; }
.lang button:hover { color:var(--ink); }
.lang button[aria-pressed="true"] { background:var(--accent); color:var(--well); }

/* ---------- controls in the bar ---------- */
.seg { display:inline-flex; border:1px solid var(--line); border-radius:999px;
  overflow:hidden; background:rgba(30,41,59,.72); padding:3px; gap:2px; }
.seg button { border:0; background:transparent; padding:4px 13px; font-size:12px;
  color:var(--ink-mid); font-weight:600; white-space:nowrap; border-radius:999px;
  transition:background-color .16s, color .16s; }
.seg button:hover { color:var(--ink); }
.seg button.on { background:var(--accent); color:var(--well); }
.seg.lens button.on[data-lens="attacker"] { background:var(--hostile); color:var(--well); }
.tbtn { border:1px solid var(--line-2); background:var(--panel); border-radius:999px;
  padding:6px 15px; font-size:12px; font-weight:600; transition:.14s; }
.tbtn:hover { border-color:var(--accent); color:var(--ink); }
.tbtn.primary { background:var(--accent); color:var(--well); border-color:var(--accent); }
.tbtn.primary:hover { filter:brightness(1.08); }
.tbtn[disabled] { opacity:.5; pointer-events:none; }
.field { display:flex; flex-direction:column; gap:3px; }
.field label { font-size:9.5px; text-transform:uppercase; letter-spacing:.08em;
  color:var(--ink-dim); font-family:"IBM Plex Mono",monospace; }
select { background:var(--panel); border:1px solid var(--line); color:var(--ink);
  border-radius:8px; padding:5px 9px; font-size:12px; font-family:inherit; }

/* ---------- layout ---------- */
.stage { display:grid; grid-template-columns:300px 1fr 330px; min-height:560px;
  border-bottom:1px solid var(--line); }
.col { display:flex; flex-direction:column; min-width:0; }
.col.left { border-right:1px solid var(--line); background:var(--panel-2); }
.col.right { border-left:1px solid var(--line); background:var(--panel-2); }
.col.mid { background:transparent; position:relative; min-height:520px; }
.pad { padding:14px; overflow-y:auto; max-height:calc(100vh - 62px); }
.pad::-webkit-scrollbar { width:8px; }
.pad::-webkit-scrollbar-thumb { background:var(--line); border-radius:8px; }

.sec-h { display:flex; align-items:center; gap:8px; margin:0 0 4px; }
.sec-h .bar { width:3px; height:14px; background:var(--accent); border-radius:2px; }
.sec-h h3 { margin:0; font-size:13px; font-weight:700; }
.hint { font-size:11px; color:var(--ink-dim); margin:0 0 12px; line-height:1.55; }

/* ---------- control cards ---------- */
.ctl { border:1px solid var(--line); border-radius:10px; background:var(--panel);
  padding:9px 10px; margin-bottom:8px; cursor:pointer; transition:.12s; position:relative; }
.ctl:hover { border-color:var(--accent); }
.ctl.on { border-color:var(--accent); background:var(--accent-soft); }
.ctl .r1 { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
.ctl .nm { font-weight:700; font-size:12.5px; line-height:1.3; display:flex; align-items:center; gap:6px; }
.ctl .box { width:13px; height:13px; border:1.5px solid var(--line-2); border-radius:4px;
  flex-shrink:0; display:grid; place-items:center; font-size:10px; line-height:1; }
.ctl.on .box { background:var(--accent); border-color:var(--accent); color:var(--well); }
.ctl .cost { font-family:"IBM Plex Mono",monospace; font-size:11.5px; font-weight:600;
  color:var(--ink-mid); white-space:nowrap; }
.ctl .ref { font-family:"IBM Plex Mono",monospace; font-size:9.5px; color:var(--ink-dim);
  margin-top:3px; letter-spacing:.02em; }
.ctl .eff { margin-top:6px; display:flex; align-items:center; gap:6px; font-size:10.5px; color:var(--ink-mid); }
.ctl .effbar { flex:1; height:5px; border-radius:4px; background:var(--line); overflow:hidden; }
.ctl .effbar i { display:block; height:100%; background:var(--accent); border-radius:4px; }
.rank { position:absolute; top:-6px; right:-6px; background:var(--accent); color:var(--well);
  font-family:"IBM Plex Mono",monospace; font-size:9px; font-weight:700; padding:2px 5px;
  border-radius:5px; box-shadow:var(--shadow); }

.spend { border:1px solid var(--line); border-radius:10px; background:var(--panel);
  padding:10px; margin-bottom:12px; }
.spend .row { display:flex; justify-content:space-between; font-size:11px; color:var(--ink-mid); margin-bottom:3px; }
.spend .big { font-family:"IBM Plex Mono",monospace; font-size:20px; font-weight:600; color:var(--ink); }
.org { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-bottom:12px; }
.org .f { border:1px solid var(--line); border-radius:9px; background:var(--panel); padding:6px 8px; }
.org .f label { display:block; font-size:9px; text-transform:uppercase; letter-spacing:.07em;
  color:var(--ink-dim); font-family:"IBM Plex Mono",monospace; margin-bottom:2px; }
.org .f input { width:100%; background:transparent; border:0; color:var(--ink);
  font-family:"IBM Plex Mono",monospace; font-size:13px; font-weight:600; padding:0; }

/* ---------- map ---------- */
.maphead { display:flex; align-items:center; gap:10px; padding:9px 14px;
  border-bottom:1px solid var(--line); background:var(--panel-2); flex-wrap:wrap; }
.lensnote { font-size:11px; color:var(--ink-mid); line-height:1.45; }
.lensnote b { color:var(--ink); }
svg.board { width:100%; height:auto; display:block; }
.zone { fill:#8ba6c810; stroke:var(--line-soft); stroke-width:1; stroke-dasharray:4 5; }
.zone-lb { font-family:"IBM Plex Mono",monospace; font-size:9.5px; letter-spacing:.11em;
  text-transform:uppercase; fill:var(--ink-dim); }
.edge { stroke:var(--line-2); stroke-width:2; fill:none; }
.edge.flow { stroke:var(--hostile); stroke-width:2.5; }
.edge.cutx { stroke:var(--accent); stroke-width:2; stroke-dasharray:2 6; }
.edge.unk { stroke:var(--fog); stroke-width:1.5; stroke-dasharray:3 6; }
.nodeg { cursor:pointer; }
.nodeg .body { stroke-width:1.5; transition:.15s; }
.nodeg:hover .body { stroke-width:2.5; }
.nlbl { font-size:10.5px; font-weight:700; fill:var(--ink); text-anchor:middle; pointer-events:none; }
.nsub { font-size:8.5px; fill:var(--ink-dim); text-anchor:middle; pointer-events:none;
  font-family:"IBM Plex Mono",monospace; }
.nval { font-size:8.5px; text-anchor:middle; pointer-events:none;
  font-family:"IBM Plex Mono",monospace; font-weight:600; }
.unkmark { font-size:17px; text-anchor:middle; pointer-events:none; fill:var(--ink-dim); font-weight:800; }
.legend { display:flex; gap:13px; flex-wrap:wrap; padding:8px 14px; border-top:1px solid var(--line);
  font-size:10.5px; color:var(--ink-mid); background:var(--panel-2); }
.legend span { display:inline-flex; align-items:center; gap:5px; }
.legend b { width:9px; height:9px; border-radius:2.5px; display:inline-block; }

/* ---------- metrics ---------- */
.mgrid { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
.metric { border:1px solid var(--line); border-radius:10px; background:var(--panel); padding:9px 10px; }
.metric .k { font-size:9px; text-transform:uppercase; letter-spacing:.07em; color:var(--ink-dim);
  font-family:"IBM Plex Mono",monospace; line-height:1.35; }
.metric .v { font-family:"IBM Plex Mono",monospace; font-size:20px; font-weight:600; margin-top:3px; line-height:1.1; }
.metric .v small { font-size:11px; color:var(--ink-dim); font-weight:400; }
.metric.hero { grid-column:1/-1; border-color:var(--accent); background:var(--accent-soft); }
.metric.hero .v { font-size:27px; }

.tbl { width:100%; border-collapse:collapse; font-size:11.5px; }
.tbl th { text-align:left; font-family:"IBM Plex Mono",monospace; font-size:9px;
  text-transform:uppercase; letter-spacing:.07em; color:var(--ink-dim); font-weight:500;
  padding:5px 6px; border-bottom:1px solid var(--line); }
.tbl td { padding:5px 6px; border-bottom:1px solid var(--line-soft); }
.tbl td.n { font-family:"IBM Plex Mono",monospace; text-align:right; font-variant-numeric:tabular-nums; }
.tbl tr:last-child td { border-bottom:0; }
.wrapx { overflow-x:auto; }
.chip { display:inline-block; font-size:9px; font-family:"IBM Plex Mono",monospace;
  padding:1.5px 5px; border-radius:4px; border:1px solid var(--line-2); color:var(--ink-mid);
  text-transform:uppercase; letter-spacing:.04em; }
.chip.crit { color:var(--crit); border-color:var(--crit); }
.chip.serious { color:var(--serious); border-color:var(--serious); }
.chip.warn { color:var(--warn); border-color:var(--warn); }
.chip.good { color:var(--good); border-color:var(--good); }

/* ---------- replay ---------- */
#replayBar { padding:10px 14px; border-top:1px solid var(--line); background:var(--panel-2); }
.rbar-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.rbar-row .grow { flex:1; }
#rNarr { margin-top:8px; font-size:12px; color:var(--ink-mid); line-height:1.6; min-height:34px; }

/* ---------- replay sprites ----------
   A cartoon unit acts out the step the narration describes. Everything here is
   a read-out of the same trace the text uses; nothing is invented for effect.
   Transforms that scale or rotate set transform-box/origin explicitly — SVG
   defaults to the viewport box, which puts the pivot in the wrong place. */
.splayer { pointer-events:none; }
.sprite { transition:transform 1.05s cubic-bezier(.42,0,.4,1); }
.sprite.notrans { transition:none; }
.sprite .sh { fill:#000; opacity:.3; }
.sprite .head { fill:#f3d3b5; }
.sprite .eye { fill:#0f172a; }
.sprite.atk .torso, .sprite.atk .pack { fill:var(--hostile); }
.sprite.atk .pack { opacity:.72; }
.sprite.atk .leg, .sprite.atk .arm { fill:#b4485a; }
.sprite.atk .hat, .sprite.atk .brim { fill:#111a2c; }
.sprite.def .torso { fill:var(--accent); }
.sprite.def .leg, .sprite.def .arm { fill:#1d7fa8; }
.sprite.def .hat { fill:#0e3a4a; }
.sprite .bino { opacity:0; fill:#111a2c; transition:opacity .2s; }
.sprite.scouting .bino { opacity:1; }
.sprite .shield { fill:var(--accent-soft); stroke:var(--accent); stroke-width:1.5; opacity:0; }
.sprite.block .shield { opacity:1; }

.sprite .bob { animation:bb-bob 2.4s ease-in-out infinite; }
@keyframes bb-bob { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1.1px); } }
.sprite.walking .bob { animation:bb-bob .44s ease-in-out infinite; }
.sprite .leg { transform-box:fill-box; transform-origin:50% 0%; }
.sprite.walking .leg.l { animation:bb-step .44s linear infinite; }
.sprite.walking .leg.r { animation:bb-step .44s linear infinite reverse; }
@keyframes bb-step { 0% { transform:rotate(23deg); } 50% { transform:rotate(-23deg); } 100% { transform:rotate(23deg); } }
.sprite.stunned .bob { animation:bb-slump .45s ease-out forwards;
  transform-box:fill-box; transform-origin:50% 100%; }
@keyframes bb-slump { to { transform:rotate(-17deg); } }
.sprite.asleep .bob { animation:bb-bob 3.4s ease-in-out infinite; }

.sprite.def .popbox { opacity:0; }
.sprite.def.popin .popbox { animation:bb-pop .5s cubic-bezier(.2,1.5,.4,1) forwards;
  transform-box:fill-box; transform-origin:50% 100%; }
@keyframes bb-pop { 0% { opacity:0; transform:scale(.4) translateY(6px); }
  60% { opacity:1; } 100% { opacity:1; transform:scale(1) translateY(0); } }

.beam { fill:none; stroke:var(--hostile); stroke-width:2; stroke-linecap:round;
  stroke-dasharray:7 7; opacity:0; }
.beam.go { animation:bb-beam 1.1s linear forwards; }
@keyframes bb-beam { 0% { opacity:0; stroke-dashoffset:28; } 12% { opacity:.95; }
  100% { opacity:0; stroke-dashoffset:-56; } }

.ring { fill:none; stroke-width:2.2; opacity:0;
  transform-box:fill-box; transform-origin:50% 50%; }
.ring.ok { stroke:var(--hostile); }
.ring.no { stroke:var(--ink-dim); stroke-dasharray:4 5; }
.ring.go { animation:bb-ring .9s ease-out forwards; }
@keyframes bb-ring { 0% { opacity:.9; transform:scale(.24); } 100% { opacity:0; transform:scale(1); } }

.flash { fill:none; stroke:var(--accent); stroke-width:2.6; opacity:0;
  transform-box:fill-box; transform-origin:50% 50%; }
.flash.go { animation:bb-flash .85s ease-out forwards; }
@keyframes bb-flash { 0% { opacity:.95; transform:scale(.3); } 100% { opacity:0; transform:scale(1.45); } }

.puff { font-size:15px; font-weight:700; opacity:0; }
.puff.go { animation:bb-puff 1.3s ease-out forwards; }
@keyframes bb-puff { 0% { opacity:0; transform:translateY(2px); } 20% { opacity:1; }
  100% { opacity:0; transform:translateY(-15px); } }
.zzz { font-size:12px; font-weight:700; opacity:0; }
.zzz.go { animation:bb-zzz 2.6s ease-out infinite; }
@keyframes bb-zzz { 0% { opacity:0; transform:translateY(2px); } 25% { opacity:.95; }
  100% { opacity:0; transform:translate(5px,-13px); } }

/* Motion here is decoration on top of text that already says the same thing,
   so it is safe to switch off entirely. */
@media (prefers-reduced-motion: reduce) {
  .sprite, .sprite .bob, .sprite .leg, .sprite .popbox { transition:none !important; animation:none !important; }
  .sprite.def .popbox { opacity:1; }
  .beam.go, .ring.go, .flash.go, .puff.go, .zzz.go { animation-duration:1ms !important; animation-iteration-count:1 !important; }
}

/* ---------- lower analysis ---------- */
.lower { background:transparent; padding:34px 18px 56px; }
.lwrap { max-width:1500px; margin:0 auto; }
.h2 { font-size:22px; margin:0 0 4px; display:flex; align-items:center; gap:10px; }
.h2 .bar { width:3px; height:19px; background:var(--accent); border-radius:2px; }
.sub { font-size:13px; color:var(--ink-mid); margin:0 0 18px; max-width:78ch; line-height:1.7; }
.charts { display:grid; grid-template-columns:1.25fr 1fr; gap:16px; margin-bottom:20px; }
.cardc { border:1px solid var(--line); border-radius:14px; background:var(--panel);
  padding:16px 17px; box-shadow:var(--shadow); }
.cardc h4 { margin:0 0 3px; font-size:14px; }
.cardc .cs { font-size:11.5px; color:var(--ink-dim); margin:0 0 12px; line-height:1.55; }
.axl { font-family:"IBM Plex Mono",monospace; font-size:9px; fill:var(--ink-dim); }
.gridline { stroke:var(--grid); stroke-width:1; }
.axis { stroke:var(--line-2); stroke-width:1; }
.dot { stroke:var(--panel); stroke-width:2; cursor:pointer; }
.dotlbl { font-family:"IBM Plex Mono",monospace; font-size:9px; fill:var(--ink-mid); }
.frontier { fill:none; stroke:var(--accent); stroke-width:2; stroke-linejoin:round; }
.frontier-area { fill:var(--accent-soft); }
.barmark { cursor:pointer; }
.tip { position:fixed; pointer-events:none; background:var(--panel); border:1px solid var(--line-2);
  border-radius:9px; padding:8px 11px; font-size:11px; box-shadow:var(--shadow); z-index:80;
  display:none; max-width:240px; line-height:1.5; }
.tip .tt { font-weight:700; margin-bottom:3px; font-size:11.5px; }
.tip .tr { display:flex; justify-content:space-between; gap:12px;
  font-family:"IBM Plex Mono",monospace; font-size:10.5px; color:var(--ink-mid); }
.tip .tr b { color:var(--ink); font-weight:600; }

.finding { border:1px solid var(--line); border-left:3px solid var(--accent); border-radius:12px;
  background:var(--panel); padding:14px 16px; margin-bottom:10px; box-shadow:var(--shadow); }
.finding h5 { margin:0 0 5px; font-size:13px; font-weight:800; display:flex; gap:8px; align-items:center; }
.finding p { margin:0; font-size:12.5px; color:var(--ink-mid); line-height:1.7; }
.finding.warnb { border-left-color:var(--serious); }
.finding.critb { border-left-color:var(--crit); }

details.prov { border:1px solid var(--line); border-radius:14px; background:var(--panel);
  margin-top:10px; box-shadow:var(--shadow); }
details.prov summary { padding:14px 16px; cursor:pointer; font-size:13px; font-weight:800;
  list-style:none; display:flex; align-items:center; gap:9px; }
details.prov summary::-webkit-details-marker { display:none; }
details.prov summary .chev { color:var(--ink-dim); transition:.2s; display:inline-block; }
details.prov[open] summary .chev { transform:rotate(90deg); }
details.prov .pc { padding:0 16px 16px; }
.asm { color:var(--serious); font-family:"IBM Plex Mono",monospace; font-size:9px;
  border:1px solid var(--serious); padding:1px 4px; border-radius:3px; white-space:nowrap; }
.emp { color:var(--good); font-family:"IBM Plex Mono",monospace; font-size:9px;
  border:1px solid var(--good); padding:1px 4px; border-radius:3px; white-space:nowrap; }

.busy { position:absolute; inset:0; background:var(--ground); opacity:.85; display:none;
  place-items:center; z-index:20; font-family:"IBM Plex Mono",monospace; font-size:12px; color:var(--ink-mid); }
.busy.on { display:grid; }
@media (prefers-reduced-motion:no-preference) {
  .spin { animation:sp 1s linear infinite; display:inline-block; }
  @keyframes sp { to { transform:rotate(360deg); } }
}

/* ---------- house site footer ---------- */
footer { padding:0 18px 48px; }
.site-foot { max-width:1500px; margin:0 auto; padding-top:20px; border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; align-items:center; gap:2px; font-size:13px; color:var(--muted); }
.site-foot a { color:var(--muted); text-decoration:none; }
.site-foot a:hover { color:var(--accent); text-decoration:underline; }
.site-foot .sep { margin:0 9px; color:var(--line-2); }
.site-foot .spacer { flex:1; }
.x-link { display:inline-flex; align-items:center; gap:7px; }
.x-link svg { width:13px; height:13px; fill:currentColor; display:inline; }

/* Wide Latin tracking and uppercase are a Latin treatment; they mangle Han
   glyphs. Same rule the other KryptoHead pages carry. */
html[lang="zh-Hant"] .eyebrow,
html[lang="zh-Hant"] .metric .k,
html[lang="zh-Hant"] .tbl th,
html[lang="zh-Hant"] .org .f label,
html[lang="zh-Hant"] .field label { letter-spacing:.06em; text-transform:none; }
html[lang="zh-Hant"] .chip { letter-spacing:.03em; text-transform:none; }
html[lang="zh-Hant"] .hint,
html[lang="zh-Hant"] .sub,
html[lang="zh-Hant"] .finding p,
html[lang="zh-Hant"] .cardc .cs,
html[lang="zh-Hant"] .lensnote,
html[lang="zh-Hant"] #rNarr { line-height:1.85; }
html[lang="zh-Hant"] .sub { max-width:62ch; }

@media (max-width:1180px) {
  .stage { grid-template-columns:1fr; }
  .col.left,.col.right { border:0; border-bottom:1px solid var(--line); }
  .pad { max-height:none; }
  .charts { grid-template-columns:1fr; }
}
@media (max-width:560px) {
  .nav-inner { gap:8px 10px; height:auto; padding:10px 18px; }
  .lang button { padding:5px 10px; font-size:11.5px; }
  .site-foot { row-gap:10px; }
  .site-foot .spacer { flex:0 0 100%; height:0; }
  .site-foot .sep-copy { display:none; }
  .site-foot .copy { flex:0 0 100%; }
}
