/* =====================================================================
   deckardt.de – Design „Neonregen"
   Einzige Quelle für Farben sind die Variablen in :root.
   Der Shader (assets/js/atmosphaere.js) liest sie aus.
   ===================================================================== */

@font-face { font-family: "Oxanium"; src: url("../fonts/oxanium-latin-800-normal.woff2") format("woff2"); font-weight: 800; font-display: swap; }
@font-face { font-family: "Oxanium"; src: url("../fonts/oxanium-latin-500-normal.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Share Tech Mono"; src: url("../fonts/share-tech-mono-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@property --a { syntax: "<angle>"; inherits: false; initial-value: 0deg; }

:root {
  --bg:    #06050c;
  --fog:   #140a24;
  --panel: rgb(14 11 26 / .72);
  --line:  rgb(34 243 255 / .28);
  --mag:   #ff2bd6;
  --cyan:  #22f3ff;
  --lime:  #c6ff3d;
  --amber: #ffb02e;
  --fg:    #eef0ff;
  --text:  #cfcbe8;
  --dim:   #8f8aae;
  --warn:  #ff6a4d;

  --f-head: "Oxanium", "Arial", sans-serif;
  --f-mono: "Share Tech Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
  --gut: clamp(20px, 4vw, 72px);
  --max: 1500px;
  --cut: 14px;
  color-scheme: dark;
}

/* ---------- Grundlagen ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: clamp(16px, 9.5px + .5vw, 22px); scroll-behavior: smooth; scroll-padding-top: 120px; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--text); font: 400 1.05rem/1.7 var(--f-mono); overflow-x: clip; }
.no-webgl body, body.no-webgl { background: radial-gradient(120% 70% at 50% 100%, #3d0d44 0%, var(--fog) 45%, var(--bg) 100%) fixed; }
img { max-width: 100%; }
a { color: inherit; }
[hidden] { display: none !important; }
::selection { background: var(--mag); color: var(--bg); }
:focus-visible { outline: 2px solid var(--lime); outline-offset: 4px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 16px; top: -60px; z-index: 100; background: var(--lime); color: var(--bg); padding: 10px 16px; text-decoration: none; }
.skip:focus { top: 12px; }
h1, h2, h3 { font-family: var(--f-head); font-weight: 800; text-transform: uppercase; margin: 0; color: var(--fg); text-wrap: balance; }
h2 { font-size: clamp(2rem, 4.6vw, 104px); line-height: .95; letter-spacing: -.01em; text-shadow: 0 0 26px rgb(255 43 214 / .35); }
h3 { font-size: clamp(1.25rem, 2.2vw, 1.75rem); line-height: 1.05; }
p { margin: 0; }

/* Hintergrund-Leinwand und HUD */
#gl { position: fixed; inset: 0; width: 100%; height: 100%; display: block; z-index: -1; }
.no-webgl #gl, body.no-webgl #gl { display: none; }
.hud { position: fixed; inset: 12px; pointer-events: none; z-index: 40; }
.hud i { position: absolute; width: 26px; height: 26px; border: 2px solid var(--cyan); opacity: .65; }
.hud i:nth-child(1) { left: 0; top: 0; border-right: 0; border-bottom: 0; }
.hud i:nth-child(2) { right: 0; top: 0; border-left: 0; border-bottom: 0; }
.hud i:nth-child(3) { left: 0; bottom: 0; border-right: 0; border-top: 0; }
.hud i:nth-child(4) { right: 0; bottom: 0; border-left: 0; border-top: 0; }

/* ---------- Kopfzeile ---------- */
/* Schwebende Leisten: Kopf oben, Fuß unten – gleiche Optik, eine Regel */
.bar, .foot {
  --cut: 12px; --rand: var(--line);
  position: fixed; z-index: 50; left: 50%; translate: -50% 0;
  width: min(calc(100% - 2 * clamp(48px, 5vw, 96px)), calc(var(--max) - 2 * var(--gut) + 48px));   /* Text fluchtet mit dem Inhalt */
  display: flex; align-items: center; gap: 10px 22px; flex-wrap: wrap;
  padding: 14px 24px; letter-spacing: .1em;
  border: 1px solid var(--rand);
  background:
    linear-gradient(to bottom right, transparent calc(50% - .75px), var(--rand) calc(50% - .75px) calc(50% + .75px), transparent calc(50% + .75px)) top left / var(--cut) var(--cut) no-repeat,
    linear-gradient(to bottom right, transparent calc(50% - .75px), var(--rand) calc(50% - .75px) calc(50% + .75px), transparent calc(50% + .75px)) bottom right / var(--cut) var(--cut) no-repeat,
    rgb(8 6 16 / .8);
  background-origin: border-box;
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
  backdrop-filter: blur(14px) saturate(1.3); -webkit-backdrop-filter: blur(14px) saturate(1.3);
  box-shadow: 0 10px 40px rgb(0 0 0 / .35);
}
.bar  { top: calc(20px + env(safe-area-inset-top, 0px)); font-size: .9rem; }
.foot { bottom: calc(20px + env(safe-area-inset-bottom, 0px)); justify-content: space-between; padding-block: 11px; font-size: .8rem; color: var(--dim); }
/* Platz, damit die feste Fußzeile nie Inhalt verdeckt */
body { padding-bottom: 110px; }
.logo { color: var(--cyan); text-decoration: none; text-shadow: 0 0 10px var(--cyan); }
.live { color: var(--dim); font-size: .78rem; display: inline-flex; gap: 6px; align-items: center; font-variant-numeric: tabular-nums; }
.live::before { content: ""; width: 7px; height: 7px; background: var(--lime); box-shadow: 0 0 8px var(--lime); animation: puls 1.4s steps(2) infinite; }
@keyframes puls { 50% { opacity: .2; } }
.bar nav { display: flex; gap: 6px 18px; flex-wrap: wrap; margin-left: auto; }
.bar nav a { text-decoration: none; color: var(--fg); }
.bar nav a::before { content: "["; color: var(--mag); } .bar nav a::after { content: "]"; color: var(--mag); }
.bar nav a:hover, .bar nav a[aria-current="page"] { color: var(--lime); text-shadow: 0 0 8px var(--lime); }

/* ---------- Bausteine ---------- */
.wrap { width: min(var(--max), 100%); margin-inline: auto; padding-inline: var(--gut); }
.block { padding-block: clamp(90px, 14vh, 160px) 0; }
.tag { font-size: .9rem; letter-spacing: .18em; color: var(--lime); text-shadow: 0 0 8px var(--lime); text-transform: uppercase; }
.tag::before { content: "▲ "; }
.kopf { display: grid; gap: 16px; margin-bottom: clamp(32px, 5vw, 56px); max-width: 900px; }
.kopf p:not(.tag) { max-width: 56ch; color: var(--text); }

.panel {
  --rand: var(--line);
  position: relative; border: 1px solid var(--rand);
  background:
    linear-gradient(to bottom right, transparent calc(50% - .75px), var(--rand) calc(50% - .75px) calc(50% + .75px), transparent calc(50% + .75px)) top left / var(--cut) var(--cut) no-repeat,
    linear-gradient(to bottom right, transparent calc(50% - .75px), var(--rand) calc(50% - .75px) calc(50% + .75px), transparent calc(50% + .75px)) bottom right / var(--cut) var(--cut) no-repeat,
    var(--panel);
  background-origin: border-box;
  clip-path: polygon(var(--cut) 0, 100% 0, 100% calc(100% - var(--cut)), calc(100% - var(--cut)) 100%, 0 100%, 0 var(--cut));
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.panel::after { /* feine Bildzeilen wie auf einem Display */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(0deg, rgb(255 255 255 / .025) 0 1px, transparent 1px 3px);
}

.cta {
  position: relative; display: inline-flex; gap: 14px; align-items: center; text-decoration: none; isolation: isolate; cursor: pointer; border: 0;
  padding: 18px 28px; font: 800 1rem/1 var(--f-head); letter-spacing: .12em; text-transform: uppercase; color: var(--bg);
  clip-path: polygon(16px 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%, 0 16px);
  background: conic-gradient(from var(--a), var(--cyan), var(--mag), var(--lime), var(--cyan)); animation: dreh 4s linear infinite;
}
.cta::before { content: ""; position: absolute; inset: 2px; z-index: -1; background: var(--cyan); clip-path: inherit; transition: background .2s; }
.cta:hover::before { background: var(--lime); }
.cta[disabled] { opacity: .6; cursor: progress; }
@keyframes dreh { to { --a: 360deg; } }

/* Einflackern beim Scrollen (Ruhezustand bleibt sichtbar) */
@supports (animation-timeline: view()) {
  .flacker { animation: flacker linear both; animation-timeline: view(); animation-range: entry 0% entry 70%; }
  @keyframes flacker {
    0% { opacity: .15; filter: brightness(2) saturate(.4); }
    20% { opacity: .8; } 26% { opacity: .2; } 34% { opacity: .9; } 40% { opacity: .5; }
    55% { opacity: 1; filter: none; }
  }
}

/* ---------- Hero ---------- */
.hero { min-height: 100svh; display: grid; grid-template-rows: 1fr auto; padding-block: 150px 110px; }
.hero .mitte { align-self: center; display: grid; gap: 22px; justify-items: start; }
h1 { position: relative; font-size: clamp(2.6rem, 8vw, 146px); line-height: .95; letter-spacing: -.015em; text-shadow: 0 0 30px rgb(255 43 214 / .45); cursor: default; }
h1 .c { display: block; margin-top: .06em; color: var(--cyan); text-shadow: 0 0 28px rgb(34 243 255 / .55), 0 0 2px rgb(255 255 255 / .6); }
h1 .wort { display: inline-block; white-space: nowrap; }
h1 .z { display: inline-block; translate: 0 calc(var(--hub, 0) * -.08em); transition: translate .35s cubic-bezier(.2,.8,.2,1), color .25s, text-shadow .25s; }
h1 .z.heiss { color: var(--lime); text-shadow: 0 0 22px var(--lime); }
h1 .z.roh { color: var(--lime); text-shadow: 0 0 12px var(--lime); font-weight: 500; }
h1.im-shader { opacity: 0; }
.hero .sub { max-width: 54ch; font-size: 1.2rem; color: var(--text); text-shadow: 0 2px 16px #000; }
.hero .unten { display: flex; justify-content: space-between; align-items: end; gap: 24px; flex-wrap: wrap; }
.boot { margin: 0; font-size: .85rem; line-height: 1.75; color: var(--dim); white-space: pre; min-height: 7em; }
.boot .ok { color: var(--lime); }

/* ---------- Projekte als Hologramm-Tafeln ---------- */
.holos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.holo { display: grid; gap: 14px; padding: 28px 28px 24px; text-decoration: none; transition: border-color .3s, transform .3s; }
.holo .kennung { display: flex; justify-content: space-between; gap: 12px; font-size: .82rem; letter-spacing: .14em; color: var(--dim); text-transform: uppercase; }
.holo .kennung b { color: var(--hot, var(--cyan)); font-weight: 400; text-shadow: 0 0 8px currentColor; }
.holo h3 { color: var(--hot, var(--cyan)); text-shadow: 0 0 20px color-mix(in srgb, var(--hot, var(--cyan)) 60%, transparent); }
.holo p { color: var(--text); }
.holo .chips { display: flex; flex-wrap: wrap; gap: 6px; }
.holo .chips span { font-size: .8rem; padding: 4px 8px; border: 1px solid var(--line); color: var(--dim); }
.holo .los { font-size: .88rem; letter-spacing: .12em; color: var(--fg); text-transform: uppercase; }
.holo .los::after { content: " →"; color: var(--hot, var(--cyan)); }
.holo::before { /* Abtastlinie: pendelt beim Überfahren runter und wieder hoch */
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 70px; margin-top: -35px; pointer-events: none; opacity: 0;
  background: linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--hot, var(--cyan)) 14%, transparent) 42%,
    var(--hot, var(--cyan)) 49% 51%, color-mix(in srgb, var(--hot, var(--cyan)) 14%, transparent) 58%, transparent 100%);
  filter: drop-shadow(0 0 6px var(--hot, var(--cyan)));
  transition: opacity .25s;
}
.holo:hover { --rand: var(--hot, var(--cyan)); transform: translateY(-3px); }
.holo:is(:hover, :focus-visible)::before { opacity: 1; animation: abtasten 1.6s ease-in-out infinite alternate; }
@keyframes abtasten { from { top: 0; } to { top: 100%; } }
.holo.m { --hot: var(--mag); } .holo.c { --hot: var(--cyan); } .holo.l { --hot: var(--lime); } .holo.a { --hot: var(--amber); }

/* ---------- Leistungen als HUD-Module ---------- */
.module { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.modul { padding: 24px 22px; display: grid; gap: 12px; align-content: start; }
.modul .code { font-size: .8rem; letter-spacing: .16em; color: var(--mag); text-transform: uppercase; }
.modul h3 { font-size: clamp(1.4rem, 2vw, 1.8rem); }
.modul h3 a { text-decoration: none; color: var(--lime); text-shadow: 0 0 14px var(--lime); }
.modul h3 a::after { content: " →"; }
.modul p { font-size: 1rem; }
.modul .balken { height: 3px; background: rgb(255 255 255 / .08); position: relative; overflow: hidden; }
.modul .balken::after { content: ""; position: absolute; inset: 0; width: var(--wert, 70%); background: var(--cyan); box-shadow: 0 0 10px var(--cyan); }

/* ---------- Ablauf als Datenleitung ---------- */
.leitung { list-style: none; margin: 0; padding: 0 0 0 46px; position: relative; display: grid; gap: clamp(28px, 5vh, 48px); max-width: 860px; }
.leitung::before { content: ""; position: absolute; left: 12px; top: 6px; bottom: 6px; width: 2px; background: rgb(255 255 255 / .1); }
.leitung::after { content: ""; position: absolute; left: 12px; top: 6px; width: 2px; height: calc(100% - 12px); background: linear-gradient(var(--cyan), var(--mag)); box-shadow: 0 0 12px var(--cyan); transform-origin: top; }
.leitung li { position: relative; display: grid; gap: 6px; --voll: var(--cyan); }
.leitung li:last-child { --voll: var(--lime); }
/* Raute: leer, bis leitung.js die Klasse .an setzt. Ohne JS ist alles gefüllt. */
.leitung li::before { content: ""; position: absolute; left: -40px; top: 10px; width: 14px; height: 14px; border: 2px solid var(--voll); background: var(--voll); box-shadow: 0 0 16px var(--voll), 0 0 34px var(--voll); rotate: 45deg; transition: background .25s, border-color .25s, box-shadow .25s; }
.leitung.aktiv li:not(.an)::before { background: var(--bg); border-color: rgb(255 255 255 / .25); box-shadow: none; }
.leitung.aktiv li.an::before { animation: raute .45s cubic-bezier(.2,.8,.2,1); }
@keyframes raute { 40% { scale: 1.6; } }
.vh-sonde { position: fixed; top: 0; left: 0; width: 0; height: 100vh; visibility: hidden; pointer-events: none; }
/* Füllstand kommt aus leitung.js – dieselbe Rechnung wie für die Rauten */
.leitung.aktiv::after { scale: 1 var(--fuell, 0); }
.leitung .schritt { font-size: .82rem; letter-spacing: .16em; color: var(--dim); text-transform: uppercase; }
.leitung h3 { font-size: clamp(1.6rem, 3vw, 2.4rem); }

/* ---------- Anfrage als Terminal ---------- */
.terminal { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.term-bar { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 10px; padding: 12px 18px; border-bottom: 1px solid var(--line); font-size: .74rem; letter-spacing: .1em; color: var(--dim); }
.term-bar { font-size: .84rem; }
.term-bar b { color: var(--cyan); font-weight: 400; }
.term-form { padding: clamp(20px, 3vw, 34px); display: grid; gap: 18px; align-content: start; min-width: 0; }
.cform { display: grid; gap: 18px; }
.zeile { display: grid; gap: 6px; min-width: 0; position: relative; }
.zeile label, .kinds legend, .brow label { font-size: .9rem; letter-spacing: .08em; color: var(--cyan); }
.zeile label::before, .kinds legend::before, .brow label::before { content: "> "; color: var(--mag); }
.zeile input, .zeile textarea {
  width: 100%; font: 400 1rem/1.5 var(--f-mono); color: var(--fg); background: rgb(0 0 0 / .45);
  border: 0; border-bottom: 1px solid var(--line); padding: 10px 2px; outline: none; resize: vertical; caret-color: var(--lime);
  transition: border-color .2s, background .2s;
}
.zeile textarea { min-height: 120px; border: 1px solid var(--line); padding: 10px; }
.zeile input:focus, .zeile textarea:focus { border-color: var(--lime); background: rgb(198 255 61 / .04); }
.zeile:has(:valid:not(:placeholder-shown)) label::after { content: "  [OK]"; color: var(--lime); }
.err { font-size: .76rem; color: var(--warn); display: none; }
.zeile:has(:user-invalid) .err, .tried .zeile:has(:invalid) .err { display: block; }
.zeile:has(:user-invalid) :is(input, textarea), .tried .zeile:has(:invalid) :is(input, textarea) { border-color: var(--warn); }
.zaehler { position: absolute; right: 8px; bottom: 8px; font-size: .78rem; color: var(--dim); }
.frow { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.kinds { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.kinds legend { margin-bottom: 8px; padding: 0; }
.kinds label { position: relative; cursor: pointer; }
.kinds input { position: absolute; opacity: 0; pointer-events: none; }
.kinds span { display: inline-block; padding: 9px 14px; border: 1px solid var(--line); font-size: .92rem; color: var(--text); transition: all .15s; }
.kinds input:checked + span { color: var(--bg); background: var(--cyan); border-color: var(--cyan); box-shadow: 0 0 14px rgb(34 243 255 / .5); }
.kinds input:focus-visible + span { outline: 2px solid var(--lime); outline-offset: 2px; }
.budget { display: grid; gap: 6px; }
.brow { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.brow output { font: 800 1.3rem/1 var(--f-head); color: var(--lime); text-shadow: 0 0 10px var(--lime); font-variant-numeric: tabular-nums; }
input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 3px; margin: 10px 0; background: linear-gradient(90deg, var(--cyan) var(--v, 10%), rgb(255 255 255 / .12) var(--v, 10%)); }
input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 18px; height: 18px; background: var(--lime); rotate: 45deg; box-shadow: 0 0 12px var(--lime); cursor: grab; }
input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; background: var(--lime); border: 0; border-radius: 0; cursor: grab; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.consent { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; font-size: .92rem; color: var(--dim); cursor: pointer; }
.consent input { position: absolute; opacity: 0; pointer-events: none; }
.consent .box { width: 18px; height: 18px; border: 1px solid var(--cyan); display: grid; place-items: center; margin-top: 2px; }
.consent .box::after { content: ""; width: 8px; height: 8px; background: var(--lime); box-shadow: 0 0 8px var(--lime); scale: 0; transition: scale .2s; }
.consent input:checked + .box::after { scale: 1; }
.consent input:focus-visible + .box { outline: 2px solid var(--lime); outline-offset: 2px; }
.tried .consent:has(:invalid) .box { border-color: var(--warn); }
.consent a { color: var(--cyan); }
.sendrow { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; justify-content: space-between; }
.cform:has(:invalid) .cta { filter: grayscale(.85) brightness(.7); }
.alt { font-size: .9rem; color: var(--dim); }
.alt code { color: var(--fg); user-select: all; }
.linkbtn { font: inherit; color: var(--cyan); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.formmsg { font-size: .85rem; padding: 10px 12px; border: 1px solid var(--warn); color: var(--warn); }
.done { display: grid; gap: 14px; align-content: center; justify-items: start; min-height: 320px; }
.done h3 { color: var(--lime); text-shadow: 0 0 20px var(--lime); font-size: clamp(2rem, 4vw, 3rem); }
.term-form.sent .cform { display: none; }
.term-form:not(.sent) .done { display: none; }

.konsole { border-left: 1px solid var(--line); background: rgb(0 0 0 / .55); display: grid; grid-template-rows: 1fr auto; min-width: 0; }
.konsole pre { margin: 0; padding: 22px; font-size: .88rem; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; overflow: auto; max-height: 520px; color: var(--text); }
.konsole .k { color: var(--cyan); } .konsole .s { color: var(--amber); } .konsole .m { color: var(--mag); } .konsole .d { color: var(--dim); }
.konsole .antwort { border-top: 1px solid var(--line); padding: 14px 22px; font-size: .88rem; line-height: 1.7; min-height: 56px; color: var(--dim); }
.konsole .ok { color: var(--lime); } .konsole .bad { color: var(--warn); }
.caret { display: inline-block; width: .55em; height: 1em; vertical-align: -2px; background: var(--lime); animation: blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }

/* ---------- Fußzeile ---------- */
.foot .stats { display: flex; flex-wrap: wrap; gap: 4px 16px; font-variant-numeric: tabular-nums; }
.foot .stats b { color: var(--fg); font-weight: 400; }
.foot nav { display: flex; gap: 16px; }
.foot a { color: var(--fg); }

/* ---------- Rechtstexte & 404 ---------- */
.legal { padding-block: 160px 0; max-width: 78ch; }
.legal h1 { font-size: clamp(2.8rem, 8vw, 5.6rem); margin-bottom: 30px; }
.legal h2 { font-size: clamp(1.4rem, 3vw, 2rem); margin: 44px 0 10px; text-shadow: none; color: var(--cyan); }
.legal p + p { margin-top: 12px; }
.legal strong { color: var(--fg); font-weight: 400; }
.legal a { color: var(--cyan); }
.legal address { font-style: normal; line-height: 1.8; color: var(--fg); padding: 18px 22px; display: inline-block; }
.code404 { font: 800 clamp(5rem, 20vw, 13rem)/.85 var(--f-head); color: var(--mag); text-shadow: 0 0 40px var(--mag); }

/* ---------- Seitenübergänge ---------- */
@view-transition { navigation: auto; }
.bar { view-transition-name: kopf; }
.foot { view-transition-name: fuss; }

/* ---------- Mobil ---------- */
@media (max-width: 980px) {
  .module { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .terminal { grid-template-columns: minmax(0, 1fr); }
  .konsole { border-left: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 640px) {
  .holos, .module, .frow { grid-template-columns: minmax(0, 1fr); }
  .hud, .boot { display: none; }
  .bar { top: calc(10px + env(safe-area-inset-top, 0px)); width: calc(100% - 20px); padding: 12px 16px; align-items: start; }
  .foot { bottom: calc(10px + env(safe-area-inset-bottom, 0px)); width: calc(100% - 20px); padding: 9px 14px; gap: 4px 14px; font-size: .74rem; }
  .foot .stats, .foot .copy { display: none; }
  body { padding-bottom: 70px; }
  .hero { padding-bottom: 76px; }
  .bar nav { gap: 4px 12px; font-size: .8rem; width: 100%; margin-left: 0; }
  .hero { padding-top: 130px; }
  .live { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  html { scroll-behavior: auto; }
}
