/* ===========================================================================
   rotwerden - Teil von wowein.de
   Gebaut nach dem WoWein Web Design Guide 1.0.
   Reihenfolge: Tokens -> Base -> Typo -> Komponenten -> Responsive.
   =========================================================================== */

/* fonts.css wird per <link> im <head> geladen, nicht per @import:
   @import serialisiert style.css -> fonts.css -> woff2 zu drei Roundtrips. */

/* --- 1. Tokens ----------------------------------------------------------- */

:root {
    /* Flächen */
    --bg:            #ece2d2;
    --surface:       #faf4e9;
    --surface-alt:   #f3ead9;
    --sunk:          #e3d8c5;
    --sidebar:       #f3ead9;

    /* Tinte */
    --ink:           #241c16;
    --ink-soft:      #6f6051;
    --ink-faint:     #a99c89;

    /* Linien */
    --line:          rgba(36, 28, 22, 0.10);
    --line-strong:   rgba(36, 28, 22, 0.18);

    /* Akzent */
    --accent:        #6d1a2b;
    --on-accent:     #faf4e9;
    --accent-shadow: rgba(109, 26, 43, 0.24);

    /* Semantisch */
    --gold:          #9a6f1e;
    --danger:        #a8413a;

    /* Tonwerte - in beiden Modi identisch, weil sie Daten sind */
    --tone-young:    #5e8466;
    --tone-ready:    #3f7d4e;
    --tone-soon:     #c08a2e;
    --tone-past:     #a85a4a;
    --tone-none:     #9a8c78;

    /* Typografie */
    --serif: "Newsreader", Georgia, serif;
    --sans:  "Hanken Grotesk", -apple-system, system-ui, sans-serif;
    --mono:  "IBM Plex Mono", ui-monospace, monospace;

    /* Ja/Nein ist Daten, keine Dekoration - eine Farbe pro Antwort, überall
       dieselbe: Buttons, Punkte neben Spielern, Zahlen in der Auflösung.
       Text darauf ist fest cremefarben, nicht --on-accent: --on-accent kippt
       im Keller-Modus auf Fast-Schwarz, die Tonwerte aber nicht. */
    --yes:      var(--tone-ready);
    --no:       var(--tone-past);
    --on-tone:  #faf4e9;

    color-scheme: light;
}

[data-mode="dark"] {
    --bg:            #15110f;
    --surface:       #1f1916;
    --surface-alt:   #272019;
    --sunk:          #100c0a;
    --sidebar:       #1a1512;

    --ink:           #f2e8d8;
    --ink-soft:      rgba(242, 232, 216, 0.62);
    --ink-faint:     rgba(242, 232, 216, 0.34);

    --line:          rgba(242, 232, 216, 0.12);
    --line-strong:   rgba(242, 232, 216, 0.20);

    --accent:        #b03650;
    --on-accent:     #15110f;
    --accent-shadow: transparent;

    --gold:          #c9a24a;
    --danger:        #d98a8a;

    color-scheme: dark;
}

/* Kein data-accent: rotwerden ist immer Burgund - der Akzent des Guides,
   der auch namensgebend ist. Die anderen drei WoWein-Akzente sind bewusst
   nicht eingebaut. */

/* --- 2. Base ------------------------------------------------------------- */

* { box-sizing: border-box; }

html, body { margin: 0; padding: 0; min-height: 100%; overflow-x: hidden; }

body {
    background: var(--bg);
    color: var(--ink);
    font-family: var(--sans);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    padding: env(safe-area-inset-top) env(safe-area-inset-right)
             env(safe-area-inset-bottom) env(safe-area-inset-left);
}

a      { color: inherit; text-decoration: none; }
button { font: inherit; -webkit-tap-highlight-color: transparent; }
input::placeholder, textarea::placeholder { color: var(--ink-faint); }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius: 8px;
                            border: 3px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-track { background: transparent; }

:where(button, a, [tabindex], summary):focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    border-radius: inherit;
}

.hidden { display: none !important; }

/* --- 3. Seitenraster ----------------------------------------------------- */

.page { max-width: 1180px; margin: 0 auto; padding: 40px 52px 72px; }
.page--narrow { max-width: 640px; }
.page--mid    { max-width: 860px; }

@media (max-width: 720px) {
    .page { padding: 28px 22px 60px; }
}

/* Radialer Seitenwasch - laut Guide nur auf Marketing/Auth erlaubt. */
.wash {
    background: radial-gradient(120% 90% at 30% 20%, var(--surface), var(--bg));
    min-height: 100vh;
}

/* --- 4. Typografie ------------------------------------------------------- */

.eyebrow {
    font-family: var(--mono); font-size: 11px; letter-spacing: 1.5px;
    font-weight: 600; text-transform: uppercase; color: var(--accent);
}

.title {
    font-family: var(--serif); font-size: 46px; font-weight: 600;
    letter-spacing: -0.8px; line-height: 1; margin: 6px 0 0; white-space: nowrap;
}
.title--hero { font-size: 52px; letter-spacing: -1px; line-height: 1.02; }
/* Titel mit Nutzerinhalt darf umbrechen - nowrap gilt nur für feste Labels.
   "Weißburgunder Spätlese trocken" wird bei 46px sonst schlicht abgeschnitten. */
.title--fluid {
    white-space: normal; line-height: 1.04;
    overflow-wrap: break-word; hyphens: auto;
}

.sub {
    font-family: var(--serif); font-style: italic; font-size: 17px;
    color: var(--ink-soft); margin: 8px 0 0;
}

.section-title {
    font-family: var(--serif); font-size: 22px; font-weight: 600;
    letter-spacing: -0.2px; margin: 0 0 12px;
}

.label {
    font-family: var(--mono); font-size: 11px; letter-spacing: 0.3px;
    font-weight: 600; text-transform: uppercase; color: var(--ink-soft);
    margin: 0 0 12px;
}

.body { font-family: var(--sans); font-size: 15px; line-height: 1.65; color: var(--ink-soft); }
.meta { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.5px;
        text-transform: uppercase; color: var(--ink-faint); }
.empty { padding: 70px 30px; text-align: center;
         font-family: var(--serif); font-style: italic; font-size: 19px;
         color: var(--ink-faint); }
.center { text-align: center; }

code {
    font-family: var(--mono); font-size: 0.86em;
    background: var(--surface-alt); border: 1px solid var(--line);
    border-radius: 5px; padding: 1px 5px;
}

/* --- 5. Kopfzeile -------------------------------------------------------- */

.pagehead {
    display: flex; align-items: flex-end; justify-content: space-between;
    gap: 24px; margin-bottom: 26px; flex-wrap: wrap;
}
.head-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

.brand { display: flex; align-items: center; gap: 12px; }
.brand__mark {
    width: 38px; height: 38px; border-radius: 11px; flex-shrink: 0;
    background: var(--accent); color: var(--on-accent);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--serif); font-size: 21px; font-weight: 600; line-height: 1;
    box-shadow: 0 2px 8px var(--accent-shadow);
}
.brand__name { display: block; font-family: var(--serif); font-size: 21px;
               font-weight: 600; letter-spacing: -0.3px; line-height: 1; }
.brand__sub  { display: block; font-family: var(--mono); font-size: 8.5px;
               letter-spacing: 2.5px; text-transform: uppercase;
               color: var(--ink-faint); margin-top: 3px; }

/* --- 6. Karten & Flächen ------------------------------------------------- */

.panel {
    background: var(--surface); border: 1px solid var(--line);
    border-radius: 16px; padding: 22px; margin-bottom: 18px;
    box-shadow: 0 1px 2px rgba(36, 28, 22, 0.04);
}
.panel--lg  { border-radius: 18px; padding: 26px 26px 28px; }
.panel--sub { background: var(--surface-alt); box-shadow: none; }
.panel:last-child { margin-bottom: 0; }

[data-mode="dark"] .panel { box-shadow: none; }

.panel__foot { margin-top: 11px; padding-top: 11px; border-top: 1px solid var(--line); }

.note {
    padding: 16px 20px; border-radius: 14px; margin: 0 0 18px;
    background: var(--surface-alt); border-left: 3px solid var(--accent);
}
.note p { font-family: var(--serif); font-style: italic; font-size: 17.5px;
          line-height: 1.5; color: var(--ink); margin: 0; }

.banner {
    padding: 14px 16px; border-radius: 10px; margin-bottom: 18px;
    border: 1px solid var(--line); border-left: 4px solid var(--line-strong);
    background: var(--surface); font-family: var(--sans); font-size: 14.5px;
    font-weight: 500; color: var(--ink-soft);
}
.banner--accent { border-left-color: var(--accent); color: var(--ink); }
.banner--warn   { border-left-color: var(--gold);   color: var(--ink); }
.banner--danger { border-left-color: var(--danger); color: var(--danger); }

.divider {
    display: flex; align-items: center; gap: 12px; margin: 22px 0;
    font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.9px;
    text-transform: uppercase; color: var(--ink-faint);
}
.divider::before, .divider::after { content: ''; flex: 1; height: 1px; background: var(--line); }

/* --- 7. Buttons ---------------------------------------------------------- */

.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    cursor: pointer; padding: 11px 18px; border-radius: 11px;
    font-family: var(--sans); font-size: 14px; font-weight: 600;
    white-space: nowrap; transition: all .14s; min-height: 0;
    background: var(--surface); color: var(--ink); border: 1px solid var(--line);
}
.btn:hover { background: var(--surface-alt); }
.btn:disabled { opacity: 0.4; cursor: default; }
.btn:disabled:hover { background: var(--surface); }

.btn--primary {
    background: var(--accent); color: var(--on-accent); border-color: var(--accent);
    box-shadow: 0 2px 10px var(--accent-shadow);
}
.btn--primary:hover:not(:disabled) { filter: brightness(1.05); background: var(--accent); }
.btn--primary:disabled {
    opacity: 1; box-shadow: none;
    background: var(--surface); color: var(--ink-faint); border-color: var(--line);
}

.btn--cta { padding: 13px 16px; border-radius: 12px; font-size: 14.5px; font-weight: 700;
            box-shadow: 0 3px 12px var(--accent-shadow); }
.btn--ghost  { background: transparent; border-color: var(--line); }
.btn--ghost:hover { background: var(--surface-alt); }
.btn--danger { background: transparent; border-color: var(--line); color: var(--danger); }
.btn--danger:hover { background: var(--surface-alt); }
.btn--sm  { padding: 8px 12px; font-size: 13px; border-radius: 9px; }
.btn--block { display: flex; width: 100%; }
.btn svg { display: block; flex-shrink: 0; }

.btn--icon {
    width: 34px; height: 34px; padding: 0; border-radius: 9px; flex-shrink: 0;
}

.row { display: flex; gap: 10px; }
.row > * { flex: 1; }
.stack > * + * { margin-top: 10px; }

/* --- 8. Formulare -------------------------------------------------------- */

.form { display: grid; gap: 18px; }
.form label {
    display: grid; gap: 6px;
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.6px;
    text-transform: uppercase; font-weight: 600; color: var(--ink-faint);
}
.form input, .form select, .form textarea, .field input, .field select, .field textarea {
    min-height: 44px; width: 100%; min-width: 0;
    padding: 11px 13px; border-radius: 11px;
    border: 1px solid var(--line); background: var(--surface); color: var(--ink);
    font-family: var(--sans); font-size: 15px; font-weight: 400;
    text-transform: none; letter-spacing: 0;
}
.form input:focus, .form select:focus, .form textarea:focus,
.field input:focus, .field select:focus, .field textarea:focus {
    outline: none; border-color: var(--accent);
}
.form textarea, .field textarea { min-height: 96px; resize: vertical; }

.field { display: grid; gap: 6px; margin-bottom: 16px; }
.field > span, .field > label {
    font-family: var(--mono); font-size: 10px; letter-spacing: 0.6px;
    text-transform: uppercase; font-weight: 600; color: var(--ink-faint);
}

input[type='file'] {
    width: 100%; min-height: 44px; padding: 11px 13px; cursor: pointer;
    font-family: var(--sans); font-size: 14px; color: var(--ink-soft);
    background: var(--surface); border: 1.5px dashed var(--line-strong);
    border-radius: 11px;
}
input[type='file']::file-selector-button {
    font-family: var(--sans); font-size: 13px; font-weight: 600;
    margin-right: 12px; padding: 8px 12px; border: 1px solid var(--line);
    border-radius: 9px; background: var(--surface-alt); color: var(--ink);
    cursor: pointer;
}
input[type='file']:hover { border-color: var(--accent); }

/* --- 9. Session-Code, QR, Teilen ----------------------------------------- */

/* Ein Code ist ein Code - Mono, nicht Serif (Guide §5, wie das Rating). */
.code {
    font-family: var(--mono); font-size: 42px; font-weight: 600;
    letter-spacing: 10px; text-indent: 10px; line-height: 1;
    text-align: center; color: var(--ink); margin: 4px 0 2px;
}

.qr {
    display: block; width: 208px; height: 208px; margin: 18px auto 14px;
    padding: 10px; border-radius: 4px;
    background: #faf4e9;                       /* Papier bleibt Papier, auch im Keller */
    border: 1px solid rgba(36, 28, 22, 0.10);
    box-shadow: 0 1px 2px rgba(36, 28, 22, 0.12);
}
[data-mode="dark"] .qr { box-shadow: 0 1px 0 rgba(0, 0, 0, 0.4); }

.linkbox {
    font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.3px;
    color: var(--ink-faint); word-break: break-all; text-align: center;
    background: var(--surface-alt); border: 1px solid var(--line);
    border-radius: 9px; padding: 10px 12px;
}

/* --- 10. Spielerliste ---------------------------------------------------- */

.players { display: flex; flex-direction: column; }

.player {
    display: flex; align-items: center; gap: 13px; flex-wrap: wrap;
    padding: 14px 0; border-bottom: 1px solid var(--line);
    min-height: 30px;
}
.player:last-child { border-bottom: none; }
.player:first-child { padding-top: 4px; }

/* 4px-Spine wie in der Katalogzeile - hier codiert er den Antwortstatus. */
.player__spine {
    width: 4px; align-self: stretch; min-height: 34px; border-radius: 4px;
    flex-shrink: 0; background: var(--tone-none);
}
.player--active    .player__spine { background: var(--accent); }
.player--had-turn  .player__spine { background: var(--line-strong); }
.player--answered  .player__spine { background: var(--yes); }

.player__name {
    flex: 1 1 90px; min-width: 0;
    font-family: var(--serif); font-size: 18px; font-weight: 500; line-height: 1.18;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.player__note {
    display: block; font-family: var(--serif); font-style: italic; font-size: 14px;
    color: var(--ink-soft); margin-top: 1px;
}
.player button { flex: none; }
.player--offline .player__name { color: var(--ink-faint); }

.tag {
    display: inline-flex; align-items: center; gap: 5px; flex: none;
    font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.5px;
    text-transform: uppercase; font-weight: 600; color: var(--ink-faint);
}
.tag .dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
            background: currentColor; }
.tag--host   { color: var(--gold); }
.tag--turn   { color: var(--accent); }
.tag--done   { color: var(--yes); }
.tag--wait   { color: var(--tone-none); }

/* --- 11. Frage & Antwort ------------------------------------------------- */

.question {
    font-family: var(--serif); font-size: 28px; font-weight: 500;
    line-height: 1.28; letter-spacing: -0.3px; color: var(--ink);
    margin: 14px 0 22px; max-width: 640px;
}

.yn { display: flex; gap: 12px; }
.yn button {
    flex: 1; min-height: 96px; border-radius: 16px; cursor: pointer;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 5px; padding: 18px 10px; transition: all .14s;
    background: var(--surface); border: 1px solid var(--line); color: var(--ink);
    font-family: var(--serif); font-size: 26px; font-weight: 600; letter-spacing: -0.3px;
}
.yn button .yn__hint {
    font-family: var(--mono); font-size: 8.5px; letter-spacing: 0.8px;
    text-transform: uppercase; font-weight: 600; color: var(--ink-faint);
}
.yn button:hover { background: var(--surface-alt); }
.yn .yn--yes.picked {
    background: var(--yes); border-color: var(--yes); color: var(--on-tone);
}
.yn .yn--no.picked {
    background: var(--no); border-color: var(--no); color: var(--on-tone);
}
.yn .picked .yn__hint { color: rgba(250, 244, 233, 0.72); }

.bar { height: 6px; border-radius: 6px; background: var(--sunk); overflow: hidden;
       margin: 16px 0 8px; }
.bar__fill { display: block; height: 100%; border-radius: 6px;
             background: var(--accent); transition: width .2s; }

/* --- 12. Auflösung ------------------------------------------------------- */

.statsband {
    display: flex; overflow: hidden; margin: 4px 0 0;
    background: var(--surface); border: 1px solid var(--line); border-radius: 16px;
    box-shadow: 0 1px 2px rgba(36, 28, 22, 0.04);
}
[data-mode="dark"] .statsband { box-shadow: none; }
.stat { flex: 1; min-width: 0; padding: 20px 22px; border-right: 1px solid var(--line); }
.stat:last-child { border-right: none; }
.stat__big   { font-family: var(--serif); font-size: 30px; font-weight: 600;
               line-height: 1; white-space: nowrap; }
.stat__big--yes { color: var(--yes); }
.stat__big--no  { color: var(--no); }
.stat__small { font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.8px;
               text-transform: uppercase; color: var(--ink-faint); margin-top: 6px; }

/* Ergebnis-Ribbon: ein Punkt je Antwort, in denselben zwei Farben. */
.dots { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.dots i { width: 14px; height: 14px; border-radius: 50%; display: block; }
.dots i.yes { background: var(--yes); }
.dots i.no  { background: var(--no); }

/* --- 13. Fragen-Auswahl -------------------------------------------------- */

.qlist {
    max-height: 44vh; overflow-y: auto; -webkit-overflow-scrolling: touch;
    border: 1px solid var(--line); border-radius: 16px; overflow-x: hidden;
    background: var(--surface);
}
.qitem {
    display: block; width: 100%; text-align: left; cursor: pointer;
    padding: 15px 18px; border: none; border-bottom: 1px solid var(--line);
    background: transparent; color: var(--ink);
    font-family: var(--serif); font-size: 17px; font-weight: 400; line-height: 1.3;
    transition: background .14s;
}
.qitem:last-child { border-bottom: none; }
.qitem:hover { background: var(--surface-alt); }

/* --- 13b. Fragenliste im Admin ------------------------------------------- */

.qrow {
    display: flex; gap: 12px; align-items: center; flex-wrap: wrap;
    padding: 14px 0; border-bottom: 1px solid var(--line); min-height: 30px;
}
.qrow:last-child { border-bottom: none; }
.qrow__text {
    flex: 1 1 240px; min-width: 0;
    font-family: var(--serif); font-size: 16.5px; line-height: 1.2;
}
.qrow--off .qrow__text { color: var(--ink-faint); }
.qrow__actions { display: flex; gap: 8px; flex: none; }
.qrow .edit-input { min-height: 40px; font-size: 15px; }

/* --- 14. Verlauf --------------------------------------------------------- */

.hist { display: flex; flex-direction: column; }
.hrow {
    display: flex; gap: 14px; align-items: center;
    padding: 13px 0; border-bottom: 1px solid var(--line);
}
.hrow:last-child { border-bottom: none; }
.hrow__q { flex: 1; min-width: 0; font-family: var(--serif); font-size: 16.5px;
           line-height: 1.2; }
.hrow__by { display: block; font-family: var(--mono); font-size: 9.5px;
            letter-spacing: 0.5px; text-transform: uppercase;
            color: var(--ink-faint); margin-top: 4px; }
.hrow__n { flex: none; font-family: var(--serif); font-size: 19px; font-weight: 600;
           white-space: nowrap; }
.hrow__n .y { color: var(--yes); }
.hrow__n .sep { color: var(--ink-faint); font-weight: 400; }
.hrow__n .n { color: var(--no); }

/* --- 15. Chips & Segmente ------------------------------------------------ */

.chips { display: flex; gap: 8px; flex-wrap: wrap; }
.chip {
    display: inline-flex; align-items: center; gap: 6px; padding: 9px 14px;
    border-radius: 999px; cursor: pointer; white-space: nowrap;
    font-family: var(--sans); font-size: 13px; font-weight: 500;
    color: var(--ink); background: var(--surface); border: 1px solid var(--line);
    transition: all .14s;
}
.chip--static { cursor: default; }
.chip__n { font-family: var(--mono); font-size: 11px; color: var(--ink-faint); }

/* --- 16. Einstellungen (Modus + Akzent) ---------------------------------- */

.settings { position: relative; }
.settings__pop {
    position: absolute; right: 0; top: calc(100% + 6px); z-index: 30;
    min-width: 224px; padding: 6px;
    background: var(--surface); border: 1px solid var(--line-strong);
    border-radius: 13px; box-shadow: 0 14px 40px rgba(36, 28, 22, 0.2);
}
[data-mode="dark"] .settings__pop { box-shadow: 0 12px 36px rgba(0, 0, 0, 0.5); }
.settings__label {
    font-family: var(--mono); font-size: 9px; letter-spacing: 1.5px;
    text-transform: uppercase; color: var(--ink-faint); padding: 8px 10px 6px;
}
.seg { display: flex; gap: 3px; padding: 3px; border-radius: 11px;
       background: var(--surface-alt); margin: 0 4px 4px; }
.seg button {
    flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    padding: 8px 12px; border-radius: 9px; cursor: pointer; min-height: 0;
    border: none; background: transparent; color: var(--ink-faint);
    font-family: var(--sans); font-size: 13px; font-weight: 500;
}
.seg button.active { background: var(--surface); color: var(--accent); font-weight: 700;
                     box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08); }
[data-mode="dark"] .seg button.active { box-shadow: none; }

/* --- 17. Gefahrenzone & Warnkarte ---------------------------------------- */

.danger-zone { border-left: 3px solid var(--danger); }
.danger-zone .label { color: var(--danger); }

.warn-card { border-left: 3px solid var(--gold); }
.warn-card .label { color: var(--gold); }

.btn--armed { background: var(--danger); border-color: var(--danger); color: #faf4e9; }
.btn--armed:hover { background: var(--danger); filter: brightness(1.05); }

/* --- 18. Toast ----------------------------------------------------------- */

#toast {
    position: fixed; left: 50%; bottom: 24px; z-index: 60;
    transform: translate(-50%, 14px); max-width: min(92vw, 420px);
    padding: 12px 18px; border-radius: 13px; text-align: center;
    background: var(--surface); border: 1px solid var(--line-strong);
    box-shadow: 0 14px 40px rgba(36, 28, 22, 0.2);
    font-family: var(--sans); font-size: 13.5px; font-weight: 500; color: var(--ink);
    opacity: 0; pointer-events: none; transition: opacity .18s ease, transform .18s ease;
}
[data-mode="dark"] #toast { box-shadow: 0 12px 36px rgba(0, 0, 0, 0.5); }
#toast.show  { opacity: 1; transform: translate(-50%, 0); }
#toast.error { border-left: 4px solid var(--danger); color: var(--danger); }

/* --- 19. Footer ---------------------------------------------------------- */

.footlink {
    text-align: center; margin-top: 32px;
    font-family: var(--mono); font-size: 9.5px; letter-spacing: 0.9px;
    text-transform: uppercase; color: var(--ink-faint);
}
 /* inline-block + Padding, damit der Link auf dem Handy überhaupt treffbar ist */
.footlink a { display: inline-block; padding: 8px 2px; border-bottom: 1px solid var(--line-strong); }
.footlink a:hover { color: var(--ink); }

/* --- 20. Responsive ------------------------------------------------------ */

@media (max-width: 720px) {
    .title { font-size: 36px; white-space: normal; }
    .title--hero { font-size: 40px; }
    .question { font-size: 24px; }
    .code { font-size: 34px; letter-spacing: 8px; text-indent: 8px; }
    .statsband { flex-wrap: wrap; }
    .stat { flex-basis: 50%; }
    .panel { padding: 18px; }
    .panel--lg { padding: 20px; }
    .player { padding: 12px 0; }
    .yn button { min-height: 112px; font-size: 24px; }
}

@media (prefers-reduced-motion: reduce) {
    * { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
