:root{--bg: #fbfbf9;--card: #ffffff;--soft: #f4f3ee;--line: #e3e1d8;--text: #333333;--muted: #6a6a66;--heading: #d95f02;--primary: #7570b3;--accent: #e6ab02;--good: #1b9e77;--bad: #c0392b;--danger: #c0392b;--good-bg: #e7f5ef;--bad-bg: #fbeae8;--shadow: 0 8px 30px rgba(60,55,40,.1);--present-bg: radial-gradient(circle at 30% 20%, #fffdf5, #f4f1e6);--drumroll-bg: radial-gradient(circle at 50% 40%, #f6f0ff, #f4f1e6);--winner-bg: #fffbe9;--winner-glow: 0 0 0 3px rgba(230,171,2,.4), 0 0 30px rgba(230,171,2,.18);--overlay: rgba(0,0,0,.04);--overlay-soft: rgba(0,0,0,.03);--dot-border: rgba(0,0,0,.18);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme=dark]{--bg: #0f1220;--card: #1a1f33;--soft: #0d1020;--line: #2c3350;--text: #eef1fb;--muted: #9aa3c4;--good: #6ee7b7;--bad: #ff8585;--danger: #d64541;--good-bg: #16402f;--bad-bg: #3a1d1d;--shadow: 0 10px 40px rgba(0,0,0,.45);--present-bg: radial-gradient(circle at 30% 20%, #1a2140, #0f1220);--drumroll-bg: radial-gradient(circle at 50% 40%, #2a2350, #0f1220);--winner-bg: rgba(255,215,80,.06);--winner-glow: 0 0 0 3px rgba(255,215,80,.5), 0 0 30px rgba(255,215,80,.25);--overlay: rgba(0,0,0,.25);--overlay-soft: rgba(0,0,0,.25);--dot-border: rgba(255,255,255,.25)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);transition:background .2s ease,color .2s ease}h1,h2,h3,h4,h5,h6{margin:0 0 .2em;color:var(--heading)}h1{font-variant:small-caps;border-bottom:solid 1px var(--accent);padding-bottom:.1em}a{color:var(--primary)}code{font-family:ui-monospace,Menlo,monospace}.screen{min-height:100vh;padding:20px}.screen.center{display:flex;align-items:center;justify-content:center}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:10px;align-items:center}.row.between{justify-content:space-between}.muted{color:var(--muted)}.small{font-size:.85rem}.intro{color:var(--muted);line-height:1.5}.intro p{margin:0 0 8px}.intro ul{margin:0;padding-left:1.2em;display:flex;flex-direction:column;gap:6px}.intro strong{color:var(--heading)}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;border-top:4px solid var(--accent);padding:24px;width:min(560px,100%);box-shadow:var(--shadow)}.banner{background:var(--primary);color:#fff;padding:10px;text-align:center;cursor:pointer}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:.85rem;color:var(--muted)}input[type=text],input:not([type]),.field input{background:var(--soft);border:1px solid var(--line);color:var(--text);padding:12px 14px;border-radius:10px;font-size:1rem;width:100%}input[type=text]:focus,input:not([type]):focus,.field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #e6ab0233}input[type=range]{width:100%;accent-color:var(--primary)}.btn{background:var(--soft);color:var(--text);border:1px solid var(--line);padding:12px 16px;border-radius:10px;font-size:1rem;cursor:pointer}.btn:hover{border-color:var(--primary)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}.btn.primary:hover{border-color:var(--accent)}a.btn{text-decoration:none;display:inline-flex;align-items:center}.btn.ghost{background:transparent}.btn.small{padding:7px 11px;font-size:.8rem}.btn.big{font-size:1.3rem;padding:18px 28px}.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger);font-weight:600}.stat{text-align:center}.stat-num{font-size:2.6rem;font-weight:700;color:var(--primary)}.admin-rooms{width:100%;border-collapse:collapse;font-size:.9rem}.admin-rooms th,.admin-rooms td{text-align:left;padding:6px 10px;border-bottom:1px solid var(--line)}.admin-rooms th{color:var(--muted);font-weight:600}.admin-rooms code{letter-spacing:.12em;color:var(--primary);font-weight:700}.divider{color:var(--muted);text-align:center;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}.code{letter-spacing:.18em;color:var(--primary);font-weight:700}.room-name{font-weight:700}.room-name-edit input{max-width:18rem}.links{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:12px;font-size:.85rem;display:grid;gap:6px}.links code{color:var(--primary)}.team-grid{display:flex;flex-wrap:wrap;gap:10px}.team-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:2px solid var(--line);border-radius:12px;background:var(--card);color:var(--text)}.team-chip.pick{cursor:pointer;font-size:1rem}.team-chip.pick:disabled{opacity:.5;cursor:not-allowed}.dot{width:12px;height:12px;border-radius:50%;display:inline-block}.badge{font-size:.72rem;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--muted)}.badge.on{background:var(--good-bg);color:var(--good)}.badge.off{background:var(--bad-bg);color:var(--bad)}.host-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:18px}.theme-toggle{display:inline-flex;gap:6px;margin-top:8px}.theme-toggle .btn{padding:5px 11px;font-size:.8rem}.scoreboard{display:grid;gap:6px;min-width:200px}.score-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.score-name{font-weight:600}.score-val{font-variant-numeric:tabular-nums;font-weight:700;color:var(--primary)}.scoreboard.big .score-row{padding:14px 18px;font-size:1.4rem}.reveal-card{border:2px solid var(--line);border-top:4px solid var(--accent);border-radius:16px;padding:22px;background:var(--card)}.reveal-team{font-size:1.5rem;font-weight:700;margin:6px 0}.reveal-text{font-size:1.6rem}.challenge-grid{display:flex;flex-wrap:wrap;gap:10px}.btn.challenge{border-width:2px}.btn.challenge.won{background:var(--good-bg);border-color:var(--good);color:var(--good)}.countdown{font-size:6rem;font-weight:800;color:var(--heading)}.field-error{color:var(--bad);font-size:.85rem;margin:0}.rejoin{border-top:1px solid var(--line);padding-top:14px;margin-top:4px}.rejoin summary{cursor:pointer;color:var(--muted);font-size:.9rem}.rejoin .stack{margin-top:12px}.rules{margin-top:16px;text-align:left}.rules h3{margin:0 0 8px}.rules-goal{background:var(--soft);border:1px solid var(--primary);border-radius:8px;padding:10px 12px}.rules ul{margin:12px 0 0;padding-left:20px;color:var(--muted)}.rules li{margin:5px 0}.info-row{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;align-items:stretch;width:100%}.info-row .rules{margin-top:0;flex:1 1 360px;max-width:540px}.info-row .card{width:100%}.info-row .rules ul{columns:2;column-gap:24px}.info-row .rules li{break-inside:avoid}.rules.wide{width:min(1100px,100%);max-width:1100px;display:grid;grid-template-columns:minmax(260px,360px) 1fr;column-gap:28px;row-gap:8px}.rules.wide h3{grid-column:1 / -1}.rules.wide .rules-goal{grid-column:1;grid-row:2;margin:0;align-self:start}.rules.wide ul{grid-column:2;grid-row:2;margin:0;columns:2;column-gap:28px}.rules.wide li{break-inside:avoid;margin-bottom:6px}.suggestions .tip{margin:14px 0 8px}.suggestions .tip-examples{display:grid;gap:6px}.tip-bad{color:var(--bad)}.tip-good{color:var(--good)}.warn{background:var(--bad-bg);border:1px solid var(--bad);color:var(--bad);border-radius:10px;padding:10px 14px;font-size:.9rem}.warn-text{color:var(--bad);font-size:1.6rem;font-weight:700;margin-top:12px}.timer{font-variant-numeric:tabular-nums;font-weight:700;font-size:1.4rem;background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:4px 12px}.timer-low{color:var(--bad);border-color:var(--bad)}.email-preview summary{cursor:pointer;color:var(--muted);font-size:.9rem}.email-preview .stack{margin-top:12px}.email-body{background:var(--soft);border:1px solid var(--line);color:var(--text);padding:12px 14px;border-radius:10px;width:100%;resize:vertical;font-family:ui-monospace,Menlo,monospace;font-size:.88rem;line-height:1.5}.mc-tools{background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 14px}.mc-tools summary{cursor:pointer;color:var(--muted);font-size:.9rem}.mc-tools .stack{margin-top:10px;gap:8px}.mc-force{align-self:flex-start;margin-top:4px;border-color:var(--bad);color:var(--bad)}.mc-force:hover{border-color:var(--bad)}.screen.present{display:grid;grid-template-columns:1fr 320px;gap:24px;background:var(--present-bg)}.screen.present:not(.results-screen){height:100vh;overflow:hidden}.present .hero{font-size:2.4rem}.present .big-muted{font-size:1.2rem}.present-main{display:flex;align-items:center;justify-content:center;min-width:0}.s1-head{display:flex;align-items:center;justify-content:center;gap:36px;flex-wrap:wrap}.s1-head .hero{margin:0}.warn-inline{color:var(--bad)}.screen.present.present-solo{grid-template-columns:1fr}.present-side{background:var(--overlay);border:1px solid var(--line);border-radius:16px;padding:20px;align-self:start}.stage1-timer{font-size:5.5rem;font-weight:800;line-height:1;color:var(--primary)}.lobby-teams{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:6px 0}.lobby-team{display:inline-flex;align-items:center;gap:10px;font-size:1.4rem;padding:12px 18px;border:2px solid var(--line);border-radius:12px;background:var(--overlay-soft);color:var(--muted);opacity:.6}.lobby-team.in{color:var(--text);opacity:1}.hero{font-size:3rem;text-align:center;font-variant:small-caps;color:var(--heading)}.big-muted{font-size:1.4rem;color:var(--muted)}.huge{font-size:12rem;font-weight:800;text-align:center;color:var(--heading)}.huge-team{font-size:4rem}.huge-text{font-size:3rem;margin-top:10px}.challengers{margin-top:18px;font-size:1.4rem;color:var(--bad)}.drumroll-screen{background:var(--drumroll-bg)}.drumroll-emoji{font-size:8rem;animation:drum .4s ease-in-out infinite}.host .drumroll-emoji{font-size:4rem}@keyframes drum{0%,to{transform:rotate(-8deg) scale(1)}50%{transform:rotate(8deg) scale(1.08)}}.results-screen{display:block;overflow:auto}.results{display:flex;flex-direction:column;align-items:center}.results-legend{color:var(--muted);margin:0 0 22px}.recap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;width:100%}.recap-team{border:2px solid var(--line);border-radius:14px;padding:16px 18px;background:var(--card)}.recap-team.winner{border-color:var(--accent);box-shadow:var(--winner-glow);background:var(--winner-bg)}.recap-head{display:flex;justify-content:space-between;align-items:baseline;font-size:1.5rem;font-weight:700;margin-bottom:10px}.recap-score{font-variant-numeric:tabular-nums;color:var(--primary)}.recap-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line);font-size:1.15rem}.recap-text{flex:1}.recap-dots{display:inline-flex;gap:5px;align-items:center;flex-shrink:0}.recap-dots .dot{width:16px;height:16px;border:1px solid var(--dot-border)}.recap-clear{color:var(--good);font-weight:700}@media(max-width:720px){.screen.present{grid-template-columns:1fr}.hero{font-size:2rem}.huge{font-size:7rem}}.print-only{display:none}@media print{@page{margin:0}body{background:#fff;color:#000}.no-print{display:none!important}.print-only{display:block}.screen.host{padding:0;min-height:0}.screen.host>.host-head{display:none}.screen.host>section{gap:0}.print-doc{-webkit-print-color-adjust:exact;print-color-adjust:exact;box-sizing:border-box;max-width:170mm;margin:0 auto;padding:12mm 10mm}.print-header{font-size:.9rem;color:#555;margin-bottom:10px}.print-doc .hero{color:#000;font-size:1.7rem}.print-doc .results-legend{color:#444;font-size:.9rem;margin-bottom:16px}.print-doc .recap-grid{display:block}.print-doc .recap-team{background:#fff;box-shadow:none;break-inside:avoid;margin-bottom:12px;border-width:1px}.print-doc .recap-team.winner{box-shadow:none;outline:2px solid #caa400;background:#fffbe6}.print-doc .recap-row{border-top:1px solid #ccc}.print-doc .recap-dots .dot{border-color:#0000004d}}
