  :root{
    --ink:#08110d;--emerald:#0f6b48;--burgundy:#6e2236;
    --gold:#d4ad55;--gold-soft:#ecd29a;
    --p3green:#5ef0a8;
    --glow:#f4fbf7;--emerald-bright:#3ee89b;--emerald-soft:#9af5cc;
    --text:#f4efe4;--text-soft:#cdd6cf;--text-dim:#aebcb2;
    --glass:rgba(11,20,16,0.74);--glass-line:rgba(62,232,155,0.30);--glass-line-soft:rgba(255,255,255,0.10);
    --advance:#23ad77;--advance-soft:rgba(35,173,119,0.20);--third-soft:rgba(94,240,168,0.16);
    --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
    --sans:"Helvetica Neue",Arial,sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{background:var(--ink);color:var(--text);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;position:relative;min-height:100vh}
  /* LAYER 1: the pitch photo, FIXED and PROMINENT behind the whole page — only lightly darkened so it stays present */
  body::before{content:"";position:fixed;inset:0;z-index:-2;
    background-image:linear-gradient(rgba(8,17,13,0.42), rgba(8,17,13,0.52)), url("../pitch-bg.jpg");
    background-size:cover;background-position:center top;background-attachment:fixed}
  /* LAYER 2: faint emerald/burgundy glow for depth */
  body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
    background:
      radial-gradient(ellipse 80% 50% at 12% 6%, rgba(15,107,72,0.14), transparent 55%),
      radial-gradient(ellipse 70% 50% at 90% 14%, rgba(110,34,54,0.12), transparent 58%)}
  /* LAYER 3: crisp lit photo emphasized in the hero, easing into the (still-visible) fixed photo below */
  .hero-photo{position:absolute;top:0;left:0;right:0;height:960px;z-index:-1;pointer-events:none;overflow:hidden;
    background-image:url("../pitch-bg.jpg");
    background-size:cover;background-position:center top;
    -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 100%);
    mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 100%)}
  .hero-photo::after{content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(8,17,13,0.32) 0%, rgba(8,17,13,0.08) 32%, rgba(8,17,13,0.3) 72%, transparent 100%)}
  .wrap{max-width:1080px;margin:0 auto;padding:0 28px}
  .glass{background:var(--glass);backdrop-filter:blur(22px) saturate(125%);-webkit-backdrop-filter:blur(22px) saturate(125%);border:1px solid rgba(255,255,255,0.14);border-radius:14px;box-shadow:0 18px 44px rgba(0,0,0,0.55), 0 4px 12px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.12)}
  .gold-edge{border-color:var(--glass-line)}

  header.mast{text-align:center;padding:64px 0 40px;position:relative}
  .crest{width:46px;height:46px;margin:0 auto 22px;display:block}
  .eyebrow{display:inline-block;font-size:11px;letter-spacing:0.42em;text-transform:uppercase;color:var(--emerald-soft);font-weight:600;margin-bottom:24px;padding-bottom:11px;border-bottom:1px solid var(--glass-line)}
  h1.title{font-family:var(--serif);font-weight:600;font-size:clamp(46px,9vw,98px);line-height:0.98;letter-spacing:0.005em;color:#ffffff;text-shadow:0 2px 30px rgba(0,0,0,0.55)}
  h1.title .gold{color:var(--emerald-bright);font-style:italic;text-shadow:0 0 26px rgba(62,232,155,0.4)}
  h1.title .yr{display:block;font-size:0.2em;letter-spacing:0.4em;color:rgba(255,255,255,0.82);margin-top:24px;font-weight:400;font-family:var(--sans);text-transform:uppercase;text-shadow:0 1px 14px rgba(0,0,0,0.7)}
  .dek{font-family:var(--serif);font-style:italic;font-size:clamp(20px,2.7vw,27px);color:rgba(255,255,255,0.94);margin:28px auto 0;max-width:620px;font-weight:500;text-shadow:0 1px 22px rgba(0,0,0,0.7)}
  .mast-meta{margin-top:30px;display:inline-flex;flex-wrap:wrap;border-radius:12px;overflow:hidden}
  .mm{padding:14px 26px;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-soft)}
  .mm + .mm{border-left:1px solid var(--glass-line-soft)}
  .mm b{font-family:var(--serif);font-size:26px;font-weight:600;color:var(--emerald-bright);letter-spacing:0;display:block;margin-bottom:1px;text-shadow:0 0 18px rgba(62,232,155,0.45)}

  /* three-phase orientation strip — sets the "fill in order, unlocks like the real tournament" expectation */
  .orient{max-width:920px;margin:8px auto 0;padding:0 28px}
  .orient-inner{padding:22px 26px}
  .orient-lead{font-family:var(--serif);font-style:italic;font-size:clamp(17px,2.1vw,20px);color:rgba(255,255,255,0.95);text-align:center;margin-bottom:20px;line-height:1.5;text-shadow:0 2px 18px rgba(8,17,13,0.98),0 0 10px rgba(8,17,13,0.9)}
  .orient-lead b{font-style:normal;font-weight:600;color:var(--emerald-soft)}
  .orient-steps{display:flex;align-items:stretch;justify-content:center;gap:0;flex-wrap:wrap}
  .ostep{flex:1;min-width:150px;text-align:center;padding:4px 16px;position:relative}
  .ostep .on{font-family:var(--serif);font-size:22px;font-weight:600;line-height:1;display:block;margin-bottom:7px}
  .ostep.s1 .on{color:var(--emerald-soft)}
  .ostep.s2 .on{color:var(--emerald-bright)}
  .ostep.s3 .on{color:var(--p3green)}
  .ostep .otitle{font-size:13px;font-weight:600;color:var(--text);letter-spacing:0.02em;margin-bottom:3px}
  .ostep .odesc{font-size:11.5px;color:var(--text-dim);line-height:1.4}
  .oarrow{display:flex;align-items:center;color:var(--text-dim);font-size:15px;flex:none}
  @media (max-width:620px){
    .orient-steps{flex-direction:column;gap:14px}
    .oarrow{transform:rotate(90deg);justify-content:center;padding:2px 0}
  }

  /* two-phase orientation map: a Group Stage block, then the knockout funnel */
  .phasemap{margin-top:4px}
  .pm-label{font-size:11px;letter-spacing:0.26em;text-transform:uppercase;font-weight:600;margin:0 0 9px;display:flex;align-items:center;gap:13px}
  .pm-label:not(:first-child){margin-top:20px}
  /* Phase I (Group) = bright emerald; Phase II (Knockout) = lighter mint (more visible on the pitch bg) */
  .pm-label.pm-1{color:var(--emerald-bright)}
  .pm-label.pm-2{color:var(--emerald-soft)}
  .pm-label::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,currentColor,transparent);opacity:0.55}
  .phasemap .ladder{margin-top:0}
  .rung.grp{border-top:2px solid var(--emerald-bright)}
  .rung.ko{border-top:2px solid var(--emerald-soft)}
  .rung.grp .rung-count{color:var(--emerald-bright)}
  .rung.ko .rung-count{color:var(--emerald-soft)}
  .howto-wrap{margin-top:30px}
  /* Phase III · The Final — a white FIFA-logo-style card with a spectrum border */
  .pm-label.pm-3{color:#ffffff}
  .final-card{position:relative;width:54%;margin:0 auto;background:#fbfbf6;border-radius:14px;padding:22px 26px;text-align:center;isolation:isolate;box-shadow:0 18px 44px rgba(0,0,0,0.5)}
  .final-card::before{content:"";position:absolute;inset:0;border-radius:14px;padding:3px;
    background:conic-gradient(from 0deg,#e8403f,#f08a2e,#f5c542,#3ee89b,#27b8c9,#3a6ee0,#8b4bd8,#d8459b,#e8403f);
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
  .final-card .ff-title{font-family:var(--serif);font-weight:700;font-size:clamp(26px,4vw,36px);letter-spacing:0.1em;color:#0b0b0b;display:block;line-height:1}
  .final-card .ff-sub{font-size:11.5px;letter-spacing:0.14em;text-transform:uppercase;color:#6a6a64;font-weight:600;margin-top:9px;display:block}
  @media (max-width:680px){.final-card{width:100%}}

  section{padding:56px 0 10px}
  .sec-head{display:flex;align-items:center;gap:18px;margin-bottom:18px}
  .phase-badge{font-family:var(--serif);font-size:clamp(24px,4vw,36px);font-weight:600;line-height:1;color:var(--emerald-bright);width:clamp(54px,9vw,74px);height:clamp(54px,9vw,74px);display:flex;align-items:center;justify-content:center;flex:none;border-radius:50%;border:1px solid var(--glass-line);text-shadow:0 0 20px rgba(62,232,155,0.5)}
  /* phase progression: I calm emerald · II intensifying · III gold peak */
  .phase-badge.p1{color:var(--emerald-soft);border-color:rgba(154,245,204,0.35);text-shadow:0 0 16px rgba(154,245,204,0.4)}
  .phase-badge.p2{color:var(--emerald-bright);border-color:rgba(62,232,155,0.55);text-shadow:0 0 22px rgba(62,232,155,0.6)}
  .phase-badge.p3{color:#4be3a0;border-color:rgba(75,227,160,0.55);text-shadow:0 0 22px rgba(75,227,160,0.55)}
  .phase-badge.p4{color:var(--p3green);border-color:rgba(94,240,168,0.55);text-shadow:0 0 24px rgba(94,240,168,0.5)}
  .phase-badge.p5{color:#7ef7bd;border-color:rgba(126,247,189,0.6);text-shadow:0 0 24px rgba(126,247,189,0.5)}
  .phase-badge.p6{color:#ffffff;border-color:rgba(255,255,255,0.6);text-shadow:0 0 24px rgba(255,255,255,0.45)}
  .sec-titles .kicker{font-size:11px;letter-spacing:0.34em;text-transform:uppercase;font-weight:600;color:var(--emerald-soft);margin-bottom:6px}
  .sec-titles h2{font-family:var(--serif);font-size:clamp(34px,5vw,56px);font-weight:600;line-height:0.98;letter-spacing:0.005em;color:#ffffff;text-shadow:0 2px 24px rgba(0,0,0,0.5)}
  .sec-rule{height:1px;background:linear-gradient(90deg,var(--glass-line),transparent);margin:0 0 26px}
  .lede{font-family:var(--serif);font-size:clamp(21px,2.6vw,28px);line-height:1.5;max-width:none;margin:0 0 8px;color:rgba(255,255,255,0.95);font-weight:500;text-shadow:0 1px 18px rgba(0,0,0,0.6)}
  .lede .lead-in{color:var(--emerald-soft);font-style:italic}
  .note{padding:16px 22px;margin:24px 0;color:var(--text-soft);font-size:15px;max-width:840px;border-left:2px solid var(--emerald-bright)}
  .note b{color:var(--text)}

  .tracker-bar{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;padding:20px 26px;margin-top:8px}
  .tracker-bar .how{font-size:13.5px;color:var(--text-soft);flex:1;min-width:280px;line-height:1.6}
  .tracker-bar .how b{color:var(--text)}
  .tracker-bar .legend-chips,.tracker-bar .tracker-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:none}
  .legend-chips{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
  .tracker-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
  .chip{font-size:11px;letter-spacing:0.06em;font-weight:600;padding:6px 13px;border-radius:20px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--glass-line-soft)}
  .chip .dot{width:8px;height:8px;border-radius:50%;display:inline-block}
  .chip.adv{color:var(--advance)} .chip.adv .dot{background:var(--advance)}
  .chip.thr{color:var(--p3green)} .chip.thr .dot{background:var(--p3green)}
  .chip.out{color:var(--text-dim)} .chip.out .dot{background:var(--text-dim)}
  .btn-reset{font-size:11px;letter-spacing:0.12em;text-transform:uppercase;font-weight:600;background:none;border:1px solid var(--glass-line);color:var(--emerald-bright);padding:7px 15px;border-radius:8px;cursor:pointer;transition:all 0.18s}
  .btn-reset:hover{background:var(--emerald-bright);color:var(--ink)}
  .btn-pill{font-size:11px;letter-spacing:0.12em;text-transform:uppercase;font-weight:600;background:rgba(62,232,155,0.10);border:1px solid var(--glass-line);color:var(--emerald-soft);padding:7px 15px;border-radius:8px;cursor:pointer;transition:all 0.18s;white-space:nowrap}
  .btn-pill:hover{background:var(--emerald-bright);color:var(--ink);border-color:var(--emerald-bright)}
  .btn-pill.copied{background:var(--emerald-bright);color:var(--ink);border-color:var(--emerald-bright)}
  .sync-panel{margin-top:10px;padding:18px 22px}
  .sync-intro{font-size:13px;color:var(--text-soft);line-height:1.55;margin:0 0 14px}
  .sync-intro b{color:var(--text)}
  .sync-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .sync-in{font-size:16px;color:var(--text);background:rgba(255,255,255,0.05);border:1px solid var(--glass-line-soft);border-radius:8px;padding:9px 13px;outline:none;transition:border-color 0.18s;font-family:inherit}
  .sync-in::placeholder{color:var(--text-dim)}
  .sync-in:focus{border-color:var(--glass-line)}
  .sync-in.pin{max-width:130px}
  .sync-status{font-size:12px;color:var(--text-dim);margin-top:11px;min-height:14px;line-height:1.4}
  .sync-status.warn{color:#f0b65e}
  .sync-status.info{color:var(--emerald-soft)}
  .sync-state{font-size:12px;color:var(--emerald-soft);letter-spacing:0.03em}
  @media (max-width:560px){ .sync-in{flex:1;min-width:0} .sync-in.pin{max-width:120px;flex:none} }

  /* champion celebration */
  @keyframes champPop{0%{transform:scale(0.7);opacity:0}55%{transform:scale(1.12)}100%{transform:scale(1);opacity:1}}
  @keyframes champGlow{0%,100%{box-shadow:0 0 30px rgba(94,240,168,0.5)}50%{box-shadow:0 0 54px rgba(94,240,168,0.85)}}
  .champion.celebrate .ch-team.crowned{animation:champPop 0.5s ease, champGlow 2.2s ease-in-out 0.5s infinite}
  .champion.celebrate .ch-winner-label{animation:champPop 0.6s ease 0.15s both}
  .confetti{position:fixed;top:-12px;width:9px;height:14px;z-index:9999;pointer-events:none;border-radius:1px;will-change:transform,opacity}
  @keyframes confettiFall{0%{transform:translateY(-20px) rotateZ(0deg);opacity:1}100%{transform:translateY(105vh) rotateZ(720deg);opacity:0.9}}

  .group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:24px}
  .group{overflow:hidden;transition:transform 0.18s ease, box-shadow 0.18s ease;border-top:2px solid var(--emerald-soft)}
  .group:hover{transform:translateY(-3px);box-shadow:0 26px 56px rgba(0,0,0,0.6), 0 6px 16px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.16)}
  /* a finished group collapses to a compact standings view (game tiles hidden); tap the header to edit */
  .group-top{gap:10px}
  .group-top .gl{flex:1}
  .group.complete .group-top{cursor:pointer}
  .group.complete .group-top .gt{color:var(--emerald-soft)}
  .group.complete .group-top::after{content:"\25BE";color:var(--emerald-soft);font-size:14px;line-height:1;flex:none;opacity:0.85;transition:transform 0.2s ease}
  .group.done .group-top::after{transform:rotate(-90deg)}
  .group.done .games{display:none}
  .group.done ul.teams li.trow{padding-top:8px;padding-bottom:8px}
  .group-top{padding:13px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--glass-line)}
  .group-top .gl{font-family:var(--serif);font-weight:600;font-size:26px;letter-spacing:0.02em;color:var(--emerald-bright);text-shadow:0 0 14px rgba(62,232,155,0.4)}
  .group-top .gt{font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-dim);font-weight:600}
  ul.teams{list-style:none}
  ul.teams li{display:flex;align-items:center;gap:8px;padding:9px 14px;font-size:14px;border-top:1px solid var(--glass-line-soft);transition:background 0.15s;user-select:none}
  ul.teams li:first-child{border-top:none}
  ul.teams li .flag{font-size:17px;line-height:1;width:21px;text-align:center;flex:none}
  ul.teams li .nm{flex:1;color:var(--text);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  ul.teams li .seed{font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-soft);font-weight:600;margin-left:4px}
  /* three W/D/L game slots */
  .games{display:flex;gap:4px;flex:none}
  .gslot{width:21px;height:21px;border-radius:5px;border:1px solid var(--glass-line-soft);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;color:var(--text-dim);cursor:pointer;transition:all 0.13s;background:rgba(255,255,255,0.02)}
  .gslot:hover{border-color:var(--emerald-soft);color:var(--text-soft)}
  .gslot[data-r="W"]{background:var(--advance);border-color:var(--advance);color:#042015}
  .gslot[data-r="D"]{background:var(--gold);border-color:var(--gold);color:var(--ink)}
  .gslot[data-r="L"]{background:rgba(138,132,117,0.25);border-color:var(--text-dim);color:var(--text-dim)}
  /* points pill */
  .pts{flex:none;width:34px;text-align:center;font-family:var(--serif);font-weight:700;font-size:18px;color:var(--emerald-bright);margin-left:4px}
  .pts.zero{color:var(--text-dim);opacity:0.5}
  .games-head{display:flex;align-items:center;gap:8px;padding:7px 14px;border-top:1px solid var(--glass-line-soft);font-size:8.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-dim);font-weight:600}
  .games-head .gh-spacer{flex:1}
  .games-head .gh-games{width:75px;text-align:center;flex:none}
  .games-head .gh-pts{width:34px;text-align:center;flex:none;margin-left:4px}

  /* ---- v2 group card: per-team rows, name + pts on top, three W/D/L game
         tiles spread full-width below (tiles feed the bracket) ---- */
  ul.teams li.trow{display:block;padding:9px 14px 11px;transition:background 0.18s}
  .trow.adv{background:var(--advance-soft)}
  .trow.third{background:var(--third-soft)}
  .trow.out{opacity:0.5}
  .trow-top{display:flex;align-items:center;gap:8px}
  .trow-top .flag{font-size:17px;line-height:1;width:21px;text-align:center;flex:none}
  .trow-top .nm{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
  .trow-top .pts{flex:none;width:24px;text-align:center;font-family:var(--serif);font-weight:700;font-size:18px;color:var(--emerald-bright)}
  .trow-top .pts.zero{color:var(--text-dim);opacity:0.55}
  .trow .games{display:flex;justify-content:space-between;gap:7px;margin-top:7px}
  .gtile{flex:1 1 0;min-width:0;height:29px;border-radius:7px;border:1px solid var(--glass-line-soft);display:inline-flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;transition:all 0.13s;background:rgba(255,255,255,0.03);color:var(--text-dim);font-family:var(--sans);padding:0}
  .gtile:hover{border-color:var(--emerald-soft);background:rgba(62,232,155,0.08)}
  .gtile .opp{font-size:10px;font-weight:700;letter-spacing:0.04em;color:inherit;opacity:0.8}
  .gtile .res{font-size:13px;font-weight:800;color:inherit}
  .gtile.rW{background:var(--advance);border-color:var(--advance);color:#042015}
  .gtile.rD{background:#788a80;border-color:#9bafa4;color:#08120d}
  .gtile.rL{background:#9e2d44;border-color:#bf4863;color:#ffdfe5}
  /* tap-to-break-tie chooser: shown inside a group card only when the W/D/L data can't order teams.
     NOTE: uses a `tbz-`/`tiechz` prefix on purpose — the educational reference panel already owns
     `.tiebreak` and `.tb*`, and reusing those names hid it. Do not rename these back. */
  .tiechz{display:none}
  .tiechz.on{display:block;padding:11px 14px;border-top:1px solid var(--glass-line-soft);background:rgba(212,173,85,0.06)}
  .tbz + .tbz{margin-top:10px}
  .tbz-note{font-size:11.5px;line-height:1.5;color:var(--text-soft);padding-left:20px;position:relative}
  .tbz-note::before{content:'✓';position:absolute;left:2px;top:0;color:var(--advance,#3fae7a);font-weight:800;font-size:12px}
  .tbz-note b{color:var(--text);font-weight:700}
  .tbz-lead{font-size:12.5px;color:var(--text);font-weight:700;margin-bottom:4px;line-height:1.45}
  .tbz-lead b{color:var(--gold-soft);font-weight:800}
  .tbz-sub{font-size:11.5px;color:var(--text-soft);line-height:1.5;margin-bottom:9px}
  .tbz-chips{display:flex;flex-wrap:wrap;gap:7px}
  .tbz-why{margin-top:10px}
  .tbz-why>summary{font-size:10.5px;letter-spacing:0.06em;text-transform:uppercase;font-weight:600;color:var(--gold-soft);cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:5px;opacity:0.85;transition:opacity 0.15s}
  .tbz-why>summary::-webkit-details-marker{display:none}
  .tbz-why>summary::before{content:'?';display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border:1px solid var(--gold-soft);border-radius:50%;font-size:9px;font-weight:800}
  .tbz-why[open]>summary,.tbz-why>summary:hover{opacity:1}
  .tbz-why-body{font-size:11.5px;color:var(--text-dim);line-height:1.55;padding:7px 0 2px 2px}
  .tbz-seerules{color:var(--gold-soft);font-weight:600;text-decoration:none;white-space:nowrap}
  .tbz-seerules:hover{color:var(--gold);text-decoration:underline}
  .tbz-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;letter-spacing:0.03em;color:var(--text-soft);background:rgba(255,255,255,0.04);border:1px solid var(--glass-line);border-radius:8px;padding:7px 12px;cursor:pointer;transition:all 0.14s;font-family:var(--sans)}
  .tbz-chip:hover{border-color:var(--gold);background:rgba(212,173,85,0.14);color:var(--text)}
  .tbz-chip .flag{font-size:14px}
  .tbz-chip.picked{cursor:default;opacity:0.9;border-color:var(--gold-soft)}
  .tbz-rank{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--gold);color:#1c1405;font-size:10px;font-weight:800}
  .tbz-done{font-size:12.5px;font-weight:700;color:var(--text);display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}
  .tbz-arrow{color:var(--text-dim)}
  .tbz-redo{font-size:10px;letter-spacing:0.1em;text-transform:uppercase;font-weight:600;background:none;border:1px solid var(--glass-line-soft);color:var(--gold-soft);padding:5px 11px;border-radius:7px;cursor:pointer;transition:all 0.16s}
  .tbz-redo:hover{border-color:var(--gold);color:var(--gold)}
  /* suspension watch (who's out, who's one card away) */
  .wc-card{display:inline-block;width:9px;height:12px;border-radius:2px;flex:none;box-shadow:0 1px 2px rgba(0,0,0,0.45)}
  .wc-card.y{background:#f2c73f}
  .wc-card.r{background:#d43b4a}
  .wc-card + .wc-card{margin-left:3px}
  .suspwatch summary::before{content:'';display:inline-block;width:9px;height:12px;border-radius:2px;background:#f2c73f;margin-right:8px;vertical-align:-1px;box-shadow:0 1px 2px rgba(0,0,0,0.45)}
  .sw-intro{font-size:13px;color:var(--text-soft);line-height:1.55;margin-bottom:16px}
  .sw-intro b{color:var(--gold-soft)}
  .sw-sub{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;font-weight:700;color:var(--emerald-soft);margin:4px 0 12px}
  .sw-sub.out{color:#e2637f;margin-top:26px;padding-top:20px;border-top:1px solid var(--glass-line-soft)}
  .sw-sub.warn{color:var(--gold-soft);display:flex;align-items:center;gap:9px}
  .sw-sub.warn::before{content:'';display:inline-block;width:9px;height:12px;border-radius:2px;background:#f2c73f;box-shadow:0 1px 2px rgba(0,0,0,0.45);flex:none}
  .sw-sub.out::before{content:'';display:inline-block;width:9px;height:12px;border-radius:2px;background:#d43b4a;box-shadow:0 1px 2px rgba(0,0,0,0.45);margin-right:8px;vertical-align:-1px}
  .sw-tot{font-size:9.5px;letter-spacing:0.06em;color:var(--text-dim);font-weight:700;background:rgba(255,255,255,0.05);padding:2px 8px;border-radius:9px}
  /* tier 1 — confirmed suspensions */
  .sw-outs{display:flex;flex-direction:column;gap:10px;margin-bottom:6px}
  .sw-out{border:1px solid rgba(191,72,99,0.45);border-left:3px solid #bf4863;border-radius:10px;padding:11px 13px;background:rgba(158,45,68,0.10)}
  .sw-out-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .sw-out-top .flag{font-size:16px}
  .sw-out-top .sw-nm{flex:none;font-size:14px}
  .sw-tag{font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-dim);font-weight:700}
  .sw-out-miss{font-size:12px;font-weight:700;color:#e88aa0;margin-top:6px}
  .sw-out-why{font-size:11px;color:var(--text-dim);line-height:1.5;margin-top:3px}
  /* team tiles — normal aligned grid (rows), used by both the yellow and red sections */
  .sw-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
  @media(max-width:820px){ .sw-grid{grid-template-columns:repeat(2,1fr)} }
  @media(max-width:520px){ .sw-grid{grid-template-columns:1fr} }
  .sw-team{border:1px solid rgba(182,198,188,0.34);border-radius:10px;padding:11px 13px;background:rgba(255,255,255,0.05);box-shadow:0 1px 3px rgba(0,0,0,0.28)}
  .sw-team.red{border-color:rgba(212,72,90,0.55);background:rgba(158,45,68,0.12)}
  .sw-ban{font-size:11px;font-weight:800;letter-spacing:0.02em;color:#fff;flex:none;min-width:20px}
  .sw-head{display:flex;align-items:center;gap:8px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--glass-line-soft)}
  .sw-head .flag{font-size:17px}
  .sw-nm{font-size:13.5px;font-weight:700;color:var(--text);flex:1}
  .sw-count{font-size:11px;font-weight:800;min-width:20px;height:20px;padding:0 6px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--gold);color:#1c1405}
  .sw-count.red{background:#bf4863;color:#fff}
  .sw-intro-red{margin-top:2px;margin-bottom:14px;font-size:12px}
  .sw-intro-red b{color:#ff7a8f}
  .sw-list{list-style:none;display:flex;flex-direction:column;gap:7px}
  .sw-list li{display:flex;flex-direction:column;gap:1px}
  .sw-prow{display:flex;align-items:center;gap:6px}
  .sw-name{font-size:12.5px;font-weight:600;color:var(--text-soft)}
  .sw-when{font-size:10px;color:var(--text-dim);letter-spacing:0.02em;padding-left:15px}
  /* legend chips for the W/D/L tracker */
  .chip.win{color:var(--advance)} .chip.win .dot{background:var(--advance)}
  .chip.draw{color:var(--text-soft)} .chip.draw .dot{background:rgba(150,162,154,0.9)}
  .chip.loss{color:#d8607a} .chip.loss .dot{background:#9e2d44}


  .ladder{margin-top:18px;display:flex;flex-direction:column;gap:0}
  .rung{display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px;padding:16px 22px;margin:0 auto;width:100%}
  .rung-wrap{display:flex;flex-direction:column;align-items:flex-start}
  .rung-name{font-family:var(--serif);font-weight:600;font-size:clamp(22px,3vw,30px);line-height:1;color:var(--text)}
  .rung-sub{font-size:12.5px;color:var(--text-soft);margin-top:4px}
  .rung-count{font-family:var(--serif);font-weight:600;font-size:clamp(20px,2.6vw,26px);color:var(--emerald-bright);white-space:nowrap}
  .rung-count .arr{color:var(--text-dim);padding:0 5px}
  .descend{color:var(--emerald-bright);font-size:11px;line-height:1;text-align:center;padding:7px 0;opacity:0.5}
  .rung.r16{width:90%}.rung.qf{width:76%}.rung.sf{width:62%}
  .rung.final{width:48%}
  .rung.final .rung-name{color:var(--p3green);text-shadow:0 0 18px rgba(94,240,168,0.4)}
  .rung.final .rung-count{color:var(--p3green)}

  .bracket-intro{font-size:14.5px;color:var(--text-soft);margin:8px 0 4px;max-width:none}
  .bracket-intro b{color:var(--emerald-soft)}
  /* knockout instructions — mirrors the "Track it yourself" tile in the group stage */
  .ko-howto{padding:18px 24px;margin:12px 0 4px}
  .ko-howto .how{font-size:13.5px;color:var(--text-soft);line-height:1.62;margin:0}
  .ko-howto .how b{color:var(--text)}
  .ko-howto .how b.lbl{color:var(--emerald-soft);font-style:normal}
  .matchlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:14px;margin-top:20px}
  .match{overflow:hidden;transition:transform 0.18s ease, box-shadow 0.18s ease;border-top:2px solid var(--emerald-bright)}
  .match:hover{transform:translateY(-3px);box-shadow:0 26px 56px rgba(0,0,0,0.6), 0 6px 16px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.16)}
  .match-num{font-size:9.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--text-dim);font-weight:600;padding:10px 16px 5px;display:flex;justify-content:space-between;align-items:center}
  .match-num .venue{color:var(--emerald-bright);font-weight:600;letter-spacing:0.04em;text-transform:none;font-size:11px}
  .side{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;transition:background 0.15s;user-select:none;border-top:1px solid var(--glass-line-soft)}
  .side:hover{background:rgba(255,255,255,0.04)}
  .side .slabel{font-family:var(--serif);font-weight:600;font-size:17px;width:30px;flex:none;color:var(--emerald-bright)}
  .side .steam{flex:1;font-size:14px;color:var(--text)}
  .side .tick{width:20px;height:20px;border-radius:50%;flex:none;border:1.5px solid rgba(154,245,204,0.42);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:transparent;transition:all 0.15s}
  .side:hover .tick{border-color:var(--emerald-soft)}
  .side.win{background:var(--advance-soft)}
  .side.win .steam{font-weight:700}
  .side.win .slabel{color:var(--advance)}
  .side.win .tick{background:var(--advance);border-color:var(--advance);color:#042015}
  .side.lose{opacity:0.42}
  .side.lose .steam{text-decoration:line-through;text-decoration-color:var(--text-dim)}
  .vs{text-align:center;font-size:9px;letter-spacing:0.2em;text-transform:uppercase;color:var(--text-dim);font-weight:600;padding:3px 0}
  .edit-hint{font-size:12.5px;color:var(--text-dim);margin-top:14px;font-style:italic}

  /* collapsible phases (Group Stage / R32 / R16 / QF / SF) — tap the header to open/close */
  .ko-phase .sec-head{cursor:pointer}
  .ko-phase .sec-head::after{content:"\25BE";margin-left:auto;color:var(--emerald-soft);font-size:20px;line-height:1;flex:none;transition:transform 0.2s ease;opacity:0.85}
  .ko-phase.collapsed .sec-head::after{transform:rotate(-90deg)}
  .ko-status{font-size:13px;color:var(--text-soft);margin-top:6px;display:none;align-items:center;gap:8px}
  .ko-phase.collapsed .ko-status{display:flex}
  .ko-status .lock{opacity:0.9}
  .ko-status.ready{color:var(--emerald-soft)}
  /* collapsed: hide everything under .wrap except the tappable header (and any status peek line).
     Works for Group Stage (grid + tracker) and R32 (matchlist) too, not just .ko-round phases. */
  .ko-phase.collapsed .wrap > *:not(.sec-head):not(.ko-status){display:none}
  .ko-phase.collapsed{padding-bottom:30px}

  /* connected bracket rounds */
  .ko-round{margin-top:40px}
  .ko-round h3{font-family:var(--serif);font-size:30px;font-weight:600;margin:0 0 16px;color:var(--text)}
  .ko-lead{font-family:var(--serif);font-size:30px;font-weight:600;margin:40px 0 6px;color:var(--text)}
  .ko-round .ko-sub{font-size:13px;color:var(--text-dim);margin-bottom:18px}
  .kograd{display:grid;gap:12px}
  .kograd.c4{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}
  /* Semi-finals: only two matches — center them instead of left-packing the row.
     auto-fit collapses the empty tracks and justify-content centers the two cards;
     they stack and stay centered on mobile. */
  .kograd.c2{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),360px));justify-content:center}
  /* quarter-finals: two stacked columns matching the bracket — 97/98 feed one semi, 99/100 the other.
     Fill by COLUMN so each semi's pair sits one above the other; centered block; 1 column on mobile. */
  #qfgrid{grid-template-columns:repeat(2,minmax(0,320px));grid-template-rows:repeat(2,auto);grid-auto-flow:column;justify-content:center}
  @media(max-width:720px){ #qfgrid{grid-template-columns:min(320px,100%);grid-template-rows:none;grid-auto-flow:row} }
  .komatch{overflow:hidden;transition:transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease}
  /* graduating emerald -> gold progression across knockout rounds */
  .komatch.r16{border-top:2px solid var(--emerald-bright)}
  .komatch.qf{border-top:2px solid #4be3a0}   /* mid emerald */
  .komatch.sf{border-top:2px solid #5ef0a8}   /* bright spring green */
  /* glow-on-hover so it's clearly clickable */
  .komatch:hover{transform:translateY(-3px);box-shadow:0 26px 56px rgba(0,0,0,0.6), 0 6px 16px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.16), 0 0 22px rgba(62,232,155,0.22)}
  .komatch.qf:hover{box-shadow:0 26px 56px rgba(0,0,0,0.6), 0 6px 16px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.16), 0 0 22px rgba(143,217,106,0.25)}
  .komatch.sf:hover{box-shadow:0 26px 56px rgba(0,0,0,0.6), 0 6px 16px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.16), 0 0 24px rgba(94,240,168,0.3)}
  /* locked round: neutral, flat, lock icon + label only */
  .ko-round.locked h3{opacity:0.72}
  .ko-round.locked .ko-sub{opacity:0.72}
  .round-lock{display:flex;align-items:center;justify-content:center;gap:12px;padding:30px 24px;border:1px dashed rgba(154,245,204,0.28);border-radius:14px;background:rgba(10,18,14,0.4);color:var(--text-soft)}
  .round-lock .lock-icon{font-size:18px;opacity:0.95}
  .round-lock .lock-label{font-size:13.5px;letter-spacing:0.04em;color:var(--text-soft);font-style:italic}
  .komatch .km-top{font-size:9.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--text-dim);font-weight:600;padding:9px 16px 4px}
  .koside{display:flex;align-items:center;gap:10px;padding:11px 16px;cursor:pointer;transition:background 0.15s;user-select:none;border-top:1px solid var(--glass-line-soft)}
  .koside:hover{background:rgba(255,255,255,0.04)}
  .koside.empty{cursor:default;opacity:0.86}
  .koside.empty:hover{background:none}
  .koside .ksrc{font-family:var(--serif);font-weight:600;font-size:15px;width:54px;flex:none;color:var(--emerald-soft)}
  .koside .kteam{flex:1;font-size:15px;color:var(--text)}
  .koside.empty .kteam{color:var(--text-soft);font-style:italic}
  .koside .kteam .kflag{margin-right:7px}
  .koside .ktick{width:20px;height:20px;border-radius:50%;flex:none;border:1.5px solid rgba(154,245,204,0.42);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:transparent;transition:all 0.15s}
  .koside:not(.empty):hover .ktick{border-color:var(--emerald-soft)}
  .koside.win{background:var(--advance-soft)}
  .koside.win .kteam{font-weight:700}
  .koside.win .ktick{background:var(--advance);border-color:var(--advance);color:#042015}
  .koside.lose{opacity:0.45}
  .koside.lose .kteam{text-decoration:line-through;text-decoration-color:var(--text-dim)}
  .kovs{text-align:center;font-size:9px;letter-spacing:0.2em;text-transform:uppercase;color:var(--text-dim);font-weight:600;padding:3px 0}

  /* champion reveal */
  @property --champ-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
  @keyframes champBorderSpin{to{--champ-angle:360deg}}
  .champion{position:relative;margin-top:44px;text-align:center;padding:44px 28px;border-radius:16px;isolation:isolate}
  .champion::before{content:"";position:absolute;inset:0;border-radius:16px;padding:2px;
    background:conic-gradient(from var(--champ-angle), #3ee89b, #9af5cc, #ffffff, #5ef0a8, #23ad77, #9af5cc, #3ee89b);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;mask-composite:exclude;
    animation:champBorderSpin 6s linear infinite;z-index:-1;pointer-events:none}
  .champion .ch-k{font-size:11px;letter-spacing:0.34em;text-transform:uppercase;color:var(--p3green);font-weight:600;margin-bottom:18px;text-shadow:0 0 14px rgba(94,240,168,0.45)}
  .champion .ch-final{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;margin-bottom:8px}
  .champion .ch-team{font-family:var(--serif);font-size:clamp(26px,4vw,40px);font-weight:600;color:var(--text-soft);cursor:pointer;padding:8px 18px;border-radius:10px;border:1px solid var(--glass-line-soft);transition:all 0.18s}
  .champion .ch-team:hover{border-color:var(--emerald-bright);color:var(--glow)}
  .champion .ch-team.tbd{opacity:0.7;cursor:default;font-style:italic;font-size:0.72em;border-style:dashed;border-color:rgba(154,245,204,0.4);color:var(--text-soft)}
  .champion .ch-team.tbd:hover{border-color:rgba(154,245,204,0.4);color:var(--text-soft)}
  .champion .ch-team.crowned{background:var(--p3green);color:var(--ink);border-color:var(--p3green);font-weight:700;box-shadow:0 0 30px rgba(94,240,168,0.5)}
  .champion .ch-vs{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--text-dim)}
  .champion .ch-prompt{font-size:13px;color:var(--text-dim);margin-top:18px;font-style:italic}
  .champion .ch-winner-label{margin-top:24px;font-family:var(--serif);font-size:clamp(30px,5vw,52px);font-weight:600;color:var(--p3green);line-height:1.05;min-height:0;text-shadow:0 0 30px rgba(94,240,168,0.5)}
  .champion .ch-winner-label .small{display:block;font-family:var(--sans);font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:var(--text-dim);font-weight:600;margin-bottom:10px}

  /* Third-place play-off — a small, muted consolation card (not a numbered phase), kept neutral
     so it reads as clearly lesser than the Final above it */
  #third .wrap{padding-top:0}
  .third-place{position:relative;text-align:center;padding:20px 22px 24px;border-radius:14px;border:1px solid var(--glass-line-soft)}
  .third-place .tp-banner{font-family:var(--serif);font-weight:600;font-size:clamp(16px,2.4vw,20px);letter-spacing:0.05em;color:var(--text-soft);margin-bottom:7px}
  .third-place .ch-k{font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--text-dim);font-weight:600;margin-bottom:14px}
  .third-place .ch-final{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-bottom:6px}
  .third-place .ch-team{font-family:var(--serif);font-size:clamp(18px,2.6vw,24px);font-weight:600;color:var(--text-soft);cursor:pointer;padding:6px 14px;border-radius:9px;border:1px solid var(--glass-line-soft);transition:all 0.18s}
  .third-place .ch-team:hover{border-color:var(--emerald-soft);color:var(--text)}
  .third-place .ch-team.tbd{opacity:0.7;cursor:default;font-style:italic;font-size:0.8em;border-style:dashed}
  .third-place .ch-team.tbd:hover{border-color:var(--glass-line-soft);color:var(--text-soft)}
  .third-place .ch-team.crowned{background:var(--emerald-soft);color:var(--ink);border-color:var(--emerald-soft);font-weight:700}
  .third-place .ch-vs{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--text-dim)}
  .third-place .ch-prompt{font-size:12px;color:var(--text-dim);margin-top:12px;font-style:italic}
  .third-place .ch-winner-label{margin-top:14px;font-family:var(--serif);font-size:clamp(19px,3vw,26px);font-weight:600;color:var(--emerald-soft)}
  .third-place .ch-winner-label .small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:0.26em;text-transform:uppercase;color:var(--text-dim);font-weight:600;margin-bottom:6px}

  /* The Final body card — white interior + spectrum (FIFA-logo) border, all text re-wired to read on white */
  .fifa-final{background:#fbfbf6;margin-top:10px;padding:30px 28px 40px;box-shadow:0 22px 60px rgba(0,0,0,0.55)}
  .fifa-final::before{background:conic-gradient(from var(--champ-angle),#e8403f,#f08a2e,#f5c542,#3ee89b,#27b8c9,#3a6ee0,#8b4bd8,#d8459b,#e8403f);padding:3px}
  .fifa-final .ff-banner{font-family:var(--serif);font-weight:700;font-size:clamp(22px,3.6vw,32px);letter-spacing:0.12em;color:#0b0b0b;margin-bottom:16px}
  .fifa-final .ch-k{color:#7a7a72;text-shadow:none}
  .fifa-final .ch-team{color:#161616;border-color:#d6d6cd}
  .fifa-final .ch-team:hover{border-color:#1f9d6b;color:#000}
  .fifa-final .ch-team.tbd{color:#9a9a90;border-color:#e3e3da}
  .fifa-final .ch-team.tbd:hover{border-color:#e3e3da;color:#9a9a90}
  .fifa-final .ch-team.crowned{background:#1f9d6b;color:#fff;border-color:#1f9d6b;box-shadow:0 0 28px rgba(31,157,107,0.5)}
  .fifa-final .ch-vs{color:#b0b0a8}
  .fifa-final .ch-prompt{color:#8a8a80}
  .fifa-final .ch-winner-label{color:#0b0b0b;text-shadow:none}
  .fifa-final .ch-winner-label .small{color:#9a9a90}

  .phases{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:14px;align-items:stretch}
  .pcard{overflow:hidden;display:flex;flex-direction:column}
  .pcard .ptop{padding:18px 22px 16px;border-bottom:1px solid var(--glass-line);min-height:120px;display:flex;flex-direction:column;justify-content:flex-end}
  .pcard .pk{font-size:10px;letter-spacing:0.26em;text-transform:uppercase;font-weight:600;color:var(--emerald-bright)}
  .pcard h3{font-family:var(--serif);font-size:34px;font-weight:600;margin:4px 0 4px;line-height:1;color:var(--text)}
  .pcard .ph-when{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;font-weight:600;color:var(--text-dim)}
  .pcard .pbody{padding:18px 22px 22px;flex:1;display:flex;flex-direction:column}
  .pcard p{font-size:14.5px;color:var(--text-soft);line-height:1.62}
  .pcard p + p{margin-top:10px}
  .pcard .tag{align-self:flex-start;margin-top:auto;font-size:11px;letter-spacing:0.08em;font-weight:600;text-transform:uppercase}
  .pcard .tag span{display:inline-block;margin-top:18px;padding:6px 14px;border-radius:20px;border:1px solid var(--emerald-bright);color:var(--emerald-bright)}

  .tiebreak{margin-top:36px;padding:24px 26px;position:relative}
  .tiebreak::before{content:"";position:absolute;inset:0;border-radius:14px;padding:1.5px;
    background:linear-gradient(135deg,var(--emerald-soft),var(--emerald-bright));
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:0.75}
  .tiebreak h4{font-family:var(--serif);font-size:27px;font-weight:600;margin-bottom:16px;color:var(--text)}
  .tb-sub{font-size:11px;letter-spacing:0.05em;text-transform:uppercase;font-weight:600;color:var(--emerald-soft);margin:0 0 11px}
  .tb-sub.second{margin-top:22px}
  .tb-flow{display:flex;flex-wrap:wrap;align-items:center;gap:9px}
  .tb{font-size:13px;padding:7px 13px;border-radius:8px;border:1px solid var(--glass-line-soft);color:var(--text-soft)}
  .tb .n{color:var(--emerald-bright);font-weight:700;font-family:var(--serif);font-size:16px;margin-right:7px}
  .tb-arrow{color:var(--text-dim);font-size:13px}

  /* cards & suspensions panel */
  .cards-panel{margin-top:24px;padding:26px 28px;position:relative}
  .cards-panel::before{content:"";position:absolute;inset:0;border-radius:14px;padding:1.5px;
    background:linear-gradient(135deg,#f5c542 0%,#f5c542 16%,#d8342f 34%,#d8342f 100%);
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
    -webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
  .cards-panel h4{font-family:var(--serif);font-size:27px;font-weight:600;margin-bottom:6px;color:var(--text)}
  .cards-panel .cp-sub{font-size:13px;color:var(--text-dim);margin-bottom:24px;max-width:760px;line-height:1.5}
  .cards-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
  .card-col{display:flex;gap:16px;align-items:flex-start}
  .card-ico{width:38px;height:52px;border-radius:5px;flex:none;box-shadow:0 6px 16px rgba(0,0,0,0.5);transform:rotate(-6deg)}
  .card-ico.yellow{background:linear-gradient(150deg,#ffd84a,#e8b81c)}
  .card-ico.red{background:linear-gradient(150deg,#ff5e5e,#d8342f)}
  .card-col h5{font-size:13px;letter-spacing:0.04em;font-weight:700;color:var(--text);margin-bottom:9px;text-transform:uppercase}
  .card-col ul{list-style:none;display:flex;flex-direction:column;gap:9px}
  .card-col li{font-size:13.5px;color:var(--text-soft);line-height:1.5;padding-left:16px;position:relative}
  .card-col li::before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--emerald-bright)}
  .card-col li b{color:var(--text)}
  .reset-strip{margin-top:22px;padding:14px 18px;border-radius:10px;background:rgba(62,232,155,0.07);border:1px solid var(--glass-line-soft);font-size:13px;color:var(--text-soft);line-height:1.55}
  .reset-strip b{color:var(--emerald-soft)}
  .card-stat{margin-top:14px;padding:15px 18px;border-radius:10px;background:rgba(11,20,16,0.5);border:1px solid var(--glass-line-soft);font-size:13px;color:var(--text-soft);line-height:1.6}
  .card-stat .cs-mark{display:inline-block;font-family:var(--serif);font-weight:700;font-size:13px;letter-spacing:0.04em;color:var(--emerald-bright);margin-right:10px;padding:2px 9px;border:1px solid rgba(62,232,155,0.4);border-radius:6px;vertical-align:middle}
  .card-stat b{color:var(--text)}
  .card-stat em{color:var(--emerald-soft);font-style:italic}
  .fairplay{margin-top:22px}
  .fairplay .fp-head{font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--text-dim);font-weight:600;margin-bottom:12px}
  .fairplay .fp-what{font-size:14px;line-height:1.6;color:var(--text-soft);margin-bottom:16px;max-width:760px}
  .fairplay .fp-what em{color:var(--emerald-soft);font-style:italic}
  .fp-flow{display:flex;flex-wrap:wrap;gap:9px}
  .fp{font-size:13px;padding:7px 13px;border-radius:8px;border:1px solid var(--glass-line-soft);color:var(--text-soft);display:inline-flex;align-items:center;gap:8px}
  .fp .pen{color:#ff7a7a;font-weight:700;font-family:var(--serif);font-size:15px}
  .fp .sq{width:11px;height:14px;border-radius:2px;display:inline-block;flex:none}
  .fp .sq.y{background:#ffd84a}.fp .sq.r{background:#ff5e5e}
  .fp .sq.yr{background:linear-gradient(105deg,#ffd84a 50%,#ff5e5e 50%)}
  @media (max-width:680px){.cards-grid{grid-template-columns:1fr;gap:24px}}

  /* collapsible reference panels (tiebreak + cards) — side by side, closed by default */
  .ref-intro{margin-top:34px;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--emerald-soft);font-weight:600}
  .ref-panels{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:14px;align-items:start}
  .ref-panel{align-self:start}
  /* when either tile is opened, drop to one full-width column so the open content spreads correctly
     (and a closed tile never stretches into a tall empty box next to an open one) */
  .ref-panels:has(.ref-panel[open]){grid-template-columns:1fr}
  .ref-panel{margin-top:0;padding:0;overflow:hidden}
  .ref-panel > summary{list-style:none;cursor:pointer;padding:20px 26px;display:flex;align-items:center;justify-content:space-between;gap:14px;font-family:var(--serif);font-size:21px;font-weight:600;color:var(--text);transition:color 0.15s}
  .ref-panel > summary::-webkit-details-marker{display:none}
  .ref-panel > summary::after{content:"+";font-family:var(--sans);font-size:24px;font-weight:300;color:var(--emerald-soft);line-height:1;flex:none}
  .ref-panel[open] > summary::after{content:"–"}
  .ref-panel > summary:hover{color:var(--emerald-soft)}
  .ref-body{padding:0 26px 24px}
  .ref-panel .cards-grid{grid-template-columns:1fr;gap:22px}
  @media (max-width:760px){.ref-panels{grid-template-columns:1fr}}

  footer{margin-top:70px;padding:0}
  footer .frule{height:1px;background:linear-gradient(90deg,transparent,var(--glass-line),transparent)}
  footer .fcontent{padding:32px 0 28px;text-align:center;font-size:12px;color:var(--text-dim);letter-spacing:0.04em}
  footer .mark{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--emerald-bright)}
  /* brand footer row — per Mosie Hackett brand kit */
  .brand-footer__row{max-width:1080px;margin:0 auto;padding:30px 28px 48px;display:flex;align-items:center;justify-content:space-between;gap:18px}
  .brand-footer__text{font-family:var(--sans);font-size:10.5px;letter-spacing:0.2em;text-transform:uppercase;color:rgba(244,239,228,0.62);font-weight:500}
  .brand-footer__mark{width:64px;height:auto;flex:none;opacity:0.95}
  @media (max-width:560px){.brand-footer__row{flex-direction:column;text-align:center;gap:14px}}

  @media (max-width:680px){
    .phases{grid-template-columns:1fr}
    .rung.r16,.rung.qf,.rung.sf,.rung.final{width:100%}
    .mm{padding:11px 18px}
    .tracker-bar{flex-direction:column;align-items:flex-start}
    .tracker-bar .how{min-width:0}   /* the 280px min overflowed narrow phones (~320px) */
    .glass{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  }

  /* phone: fix the two reported bugs — the stat strip's 3+1 wrap and the
     cramped, truncated save inputs */
  @media (max-width:480px){
    /* 48/12/104/16 as a clean 2x2 block instead of an awkward 3-then-1 wrap */
    .mast-meta{display:grid;grid-template-columns:1fr 1fr;max-width:300px;margin:30px auto 0}
    .mm{padding:13px 12px}
    .mm + .mm{border-left:none}
    .mm:nth-child(2n){border-left:1px solid var(--glass-line-soft)}
    .mm:nth-child(n+3){border-top:1px solid var(--glass-line-soft)}
    /* save panel: stack name / number / button full-width so the name field
       is fully visible (was truncating to "Your na") */
    .sync-row{flex-direction:column;align-items:stretch}
    .sync-in,.sync-in.pin{max-width:none;width:100%;flex:none}
    .sync-row .btn-pill,.sync-row .btn-reset{width:100%}
  }
