  :root{
    --panel:#0b1420;
    --panel-glass:rgba(11,20,32,0.92);
    --ink:#f2f6f9;
    --ink-dim:#9fb0bf;
    --cyan:#34d2ff;
    --flag:#ff9f1a;
    --good:#38d17c;
    --bad:#ff5a5a;
    --radius:14px;
    --font:ui-sans-serif,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
  html,body{height:100%;overflow:hidden;background:#060b12;font-family:var(--font);color:var(--ink)}
  #c{position:fixed;top:0;left:0;display:block;touch-action:none}

  /* ---------- HUD chips ---------- */
  .chip{
    position:fixed;z-index:5;background:var(--panel-glass);
    border:1px solid rgba(255,255,255,0.08);border-radius:10px;
    padding:8px 14px;backdrop-filter:blur(6px);
    font-size:12px;letter-spacing:0.08em;text-transform:uppercase;
    display:flex;gap:14px;align-items:baseline;
  }
  #score-chip{top:max(10px,env(safe-area-inset-top));left:10px}
  #scn-chip{top:max(10px,env(safe-area-inset-top));right:10px;color:var(--ink-dim)}
  .chip-col{flex-direction:column;gap:2px;align-items:flex-end}
  #hud-stage{color:var(--flag);font-weight:800;font-size:11px;letter-spacing:0.14em}
  #hud-scn{font-size:11px}
  .chip b{font-size:16px;color:var(--ink)}
  .chip .streak-hot{color:var(--flag)}

  #stage-dots{display:flex;gap:9px;justify-content:center;margin-bottom:16px}
  #stage-dots i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,0.15)}
  #stage-dots i.cur{background:var(--flag);box-shadow:0 0 10px rgba(255,159,26,0.6)}
  #stage-dots i.done{background:var(--good)}
  #stage-diagram{margin-bottom:16px}
  #stage-diagram svg{
    width:100%;max-width:420px;height:auto;display:block;margin:0 auto;
    border-radius:12px;border:1px solid rgba(255,255,255,0.08);
  }

  /* ---------- Call buttons ---------- */
  #call-bar{
    position:fixed;z-index:6;left:0;right:0;
    bottom:max(14px,env(safe-area-inset-bottom));
    display:flex;flex-direction:column;align-items:center;gap:10px;padding:0 14px;
    opacity:0;pointer-events:none;transform:translateY(12px);
    transition:opacity .25s,transform .25s;
  }
  #call-bar.show{opacity:1;pointer-events:auto;transform:none}
  .call-row{display:flex;gap:12px;width:100%;justify-content:center}
  #btn-replay-live{
    padding:9px 18px;border-radius:999px;cursor:pointer;
    background:var(--panel-glass);color:var(--ink);font-family:var(--font);
    border:1px solid rgba(255,255,255,0.18);
    font-size:12px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;
  }
  #btn-replay-live:active{transform:scale(0.96)}
  .call-btn{
    flex:1;max-width:230px;padding:18px 8px;border-radius:var(--radius);
    border:1px solid rgba(255,255,255,0.14);cursor:pointer;
    font-family:var(--font);font-size:clamp(14px,4vw,19px);font-weight:800;
    letter-spacing:0.1em;text-transform:uppercase;color:#08131c;
    box-shadow:0 6px 24px rgba(0,0,0,0.45);
    transition:transform .08s;
  }
  .call-btn:active{transform:scale(0.96)}
  #btn-onside{background:var(--cyan)}
  #btn-offside{background:var(--flag)}

  #judge-hint{
    position:fixed;z-index:5;left:50%;transform:translateX(-50%);
    bottom:calc(max(14px,env(safe-area-inset-bottom)) + 138px);
    font-size:11px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-dim);
    background:var(--panel-glass);padding:6px 12px;border-radius:8px;
    border:1px solid rgba(255,255,255,0.08);
    opacity:0;transition:opacity .25s;pointer-events:none;
    max-width:min(420px,calc(100vw - 28px));text-align:center;line-height:1.5;
  }
  #judge-hint.show{opacity:1}

  /* ---------- Verdict card ---------- */
  #verdict{
    position:fixed;z-index:7;left:50%;transform:translate(-50%,120%);
    bottom:max(14px,env(safe-area-inset-bottom));
    width:min(480px,calc(100vw - 24px));
    background:var(--panel-glass);border:1px solid rgba(255,255,255,0.1);
    border-radius:var(--radius);padding:16px 18px;backdrop-filter:blur(8px);
    transition:transform .35s cubic-bezier(.2,.9,.3,1.05);
  }
  #verdict.show{transform:translate(-50%,0)}
  #verdict-ctx{
    font-size:10.5px;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;
    color:var(--flag);margin-bottom:8px;display:none;
  }
  #verdict .row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
  #verdict-result{
    font-size:12px;font-weight:800;letter-spacing:0.14em;text-transform:uppercase;
    padding:4px 10px;border-radius:6px;color:#08131c;
  }
  #verdict-result.good{background:var(--good)}
  #verdict-result.bad{background:var(--bad)}
  #verdict-truth{font-size:clamp(19px,5vw,25px);font-weight:800;letter-spacing:0.08em;text-transform:uppercase}
  #verdict-truth.on{color:var(--cyan)}
  #verdict-truth.off{color:var(--flag)}
  #verdict-expl{font-size:13.5px;line-height:1.5;color:var(--ink-dim);margin-bottom:14px}
  .btn-row{display:flex;gap:10px}
  #btn-next{
    flex:1.4;padding:14px;border-radius:10px;border:none;cursor:pointer;
    background:var(--ink);color:#08131c;font-family:var(--font);
    font-weight:800;font-size:15px;letter-spacing:0.12em;text-transform:uppercase;
  }
  #btn-replay{
    flex:1;padding:14px;border-radius:10px;cursor:pointer;
    background:transparent;color:var(--ink);font-family:var(--font);
    border:1px solid rgba(255,255,255,0.25);
    font-weight:700;font-size:13px;letter-spacing:0.1em;text-transform:uppercase;
  }
  #btn-next:active,#btn-replay:active{transform:scale(0.98)}
  #reset-view{
    position:fixed;z-index:6;right:10px;
    top:calc(max(10px,env(safe-area-inset-top)) + 66px);
    padding:6px 12px;border-radius:8px;cursor:pointer;
    background:rgba(11,20,32,0.7);color:var(--ink-dim);font-family:var(--font);
    border:1px solid rgba(255,255,255,0.1);
    font-size:10px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;
    display:none;
  }
  #reset-view.show{display:block}

  /* ---------- stage jump menu ---------- */
  #scn-chip{cursor:pointer}
  #stage-menu{
    position:fixed;z-index:9;right:10px;
    top:calc(max(10px,env(safe-area-inset-top)) + 66px);
    background:var(--panel-glass);border:1px solid rgba(255,255,255,0.12);
    border-radius:12px;padding:6px;backdrop-filter:blur(8px);
    display:none;flex-direction:column;min-width:210px;
    box-shadow:0 10px 40px rgba(0,0,0,0.5);
  }
  #stage-menu.open{display:flex}
  .menu-item{
    padding:11px 14px;border-radius:8px;border:none;cursor:pointer;text-align:left;
    background:transparent;color:var(--ink);font-family:var(--font);
    font-size:13px;font-weight:700;letter-spacing:0.06em;
  }
  .menu-item small{display:block;color:var(--ink-dim);font-size:10.5px;font-weight:600;
    letter-spacing:0.1em;text-transform:uppercase;margin-bottom:1px}
  .menu-item:active,.menu-item:hover{background:rgba(255,255,255,0.07)}
  .menu-item.cur{background:rgba(255,159,26,0.12)}
  .menu-item.cur small{color:var(--flag)}

  /* ---------- Stage overlay (intro / complete / results) ---------- */
  #stage{
    position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;
    background:radial-gradient(ellipse at 50% 30%,rgba(18,46,38,0.55),rgba(4,8,14,0.94) 70%);
    transition:opacity .4s;padding:20px;overflow-y:auto;
  }
  #stage.hide{opacity:0;pointer-events:none}
  .stage-card{max-width:460px;text-align:center;margin:auto}
  #stage-eyebrow{font-size:14px;font-weight:900;letter-spacing:0.32em;text-transform:uppercase;color:var(--flag);margin-bottom:12px}
  #stage-title{font-size:clamp(34px,10vw,54px);font-weight:900;letter-spacing:0.04em;line-height:0.98;text-transform:uppercase;margin-bottom:14px}
  #stage-title span{color:var(--cyan)}
  /* sporty wordmark for the cover screen (stage 1 intro) */
  #stage-title.cover-mark{
    font-size:clamp(56px,18vw,104px);font-style:italic;
    letter-spacing:-0.015em;line-height:0.9;
    transform:skewX(-8deg);margin:4px 0 20px;
    text-shadow:0 3px 0 rgba(0,0,0,0.35),0 0 34px rgba(52,210,255,0.18);
  }
  #stage-title.cover-mark span{color:var(--flag)}   /* the exclamation = the flag */
  #stage-score{font-size:15px;font-weight:800;letter-spacing:0.12em;text-transform:uppercase;color:var(--good);margin-bottom:12px;display:none}
  #stage-concept{
    text-align:left;font-size:13.5px;line-height:1.55;color:var(--ink-dim);
    background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);
    border-radius:var(--radius);padding:14px 16px;margin-bottom:22px;
  }
  #stage-concept b{color:var(--ink)}
  #btn-stage{
    padding:16px 44px;border-radius:12px;border:none;cursor:pointer;
    background:var(--flag);color:#08131c;font-family:var(--font);
    font-weight:900;font-size:17px;letter-spacing:0.14em;text-transform:uppercase;
    box-shadow:0 8px 30px rgba(255,159,26,0.35);
  }
  #btn-stage:active{transform:scale(0.97)}

  /* ---------- famous-call match intro ---------- */
  #match-card{
    position:fixed;inset:0;z-index:8;display:none;align-items:center;justify-content:center;
    background:rgba(4,8,14,0.72);backdrop-filter:blur(4px);padding:20px;
  }
  #match-card.show{display:flex}
  .mc-inner{
    text-align:center;max-width:440px;width:100%;
    background:var(--panel-glass);border:1px solid rgba(255,255,255,0.12);
    border-radius:var(--radius);padding:26px 22px;
  }
  #mc-eyebrow{font-size:11px;font-weight:800;letter-spacing:0.3em;text-transform:uppercase;color:var(--flag);margin-bottom:12px}
  #mc-fixture{font-size:clamp(22px,6vw,30px);font-weight:900;letter-spacing:0.03em;line-height:1.15;margin-bottom:8px}
  #mc-sub{font-size:12.5px;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:14px}
  #mc-intro{
    position:relative;
    font-family:Georgia,'Times New Roman',serif;font-style:italic;
    font-size:15px;line-height:1.68;color:var(--ink);
    text-align:center;
    border-top:1px solid rgba(255,255,255,0.22);
    border-bottom:1px solid rgba(255,255,255,0.22);
    padding:20px 10px 16px;margin:6px 2px 20px;
  }
  #mc-intro::before{
    content:'As it happened';
    position:absolute;top:-8px;left:50%;transform:translateX(-50%);
    background:#0e1824;padding:0 12px;
    font-family:var(--font);font-style:normal;
    font-size:9.5px;font-weight:800;letter-spacing:0.28em;text-transform:uppercase;
    color:var(--flag);white-space:nowrap;
  }
  #btn-tape{
    padding:14px 36px;border-radius:12px;border:none;cursor:pointer;
    background:var(--flag);color:#08131c;font-family:var(--font);
    font-weight:900;font-size:15px;letter-spacing:0.14em;text-transform:uppercase;
  }
  #btn-tape:active{transform:scale(0.97)}

  @media (prefers-reduced-motion: reduce){
    *{transition:none !important;animation:none !important}
  }
