:root{--bg:#121815;--bg2:#1c2620;--panel:#1a231e;--panel2:#223029;--line:#2f3f36;--ink:#f4f0e6;--muted:#a4b1a7;--gold:#e8c35a;--gold-deep:#b48f2c;--gold-ink:#2a2008;--team-a:#6cb8ec;--team-a-deep:#2f7fb8;--team-b:#f08a6a;--team-b-deep:#c25633;--good:#5cd6a0;--good-deep:#2f9a6b;--bad:#ff7a8a;--bad-deep:#c24657;--radius:16px;--shadow:0 8px 28px #0006;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(120% 90% at 50% 0%, var(--bg2) 0%, var(--bg) 60%) fixed;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}input,textarea,select{font:inherit}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{border:2px solid var(--line);background:var(--panel2);letter-spacing:.01em;border-radius:999px;justify-content:center;align-items:center;gap:.5em;padding:.6em 1.3em;font-weight:600;transition:transform 80ms,filter .12s,background .12s;display:inline-flex}.btn:hover{filter:brightness(1.12)}.btn:active{transform:translateY(1px)scale(.99)}.btn:disabled{opacity:.45;filter:none}.btn--primary{background:linear-gradient(180deg, var(--gold), var(--gold-deep));color:var(--gold-ink);border-color:#0000}.btn--ghost{background:0 0}.btn--big{padding:.6em 1.6em;font-size:clamp(1.4rem,3vw,2.4rem)}.btn--good{background:linear-gradient(180deg, var(--good), var(--good-deep));color:#072a1a;border-color:#0000}.btn--steal{background:linear-gradient(180deg, var(--gold), var(--gold-deep));color:var(--gold-ink);border-color:#0000}.btn--bad{background:linear-gradient(180deg, var(--bad), var(--bad-deep));color:#3a0a12;border-color:#0000}.btn kbd{font:600 .65em var(--sans);opacity:.7;border:1px solid;border-radius:6px;padding:.1em .45em}.app{flex-direction:column;height:100%;display:flex}.bar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:.6rem 1.4rem;display:flex}.wordmark{font-family:var(--serif);letter-spacing:.28em;color:var(--gold);text-transform:uppercase;font-size:1.6rem;font-weight:700;text-decoration:none}.wordmark small{font:italic 400 .7rem var(--serif);letter-spacing:.08em;color:var(--muted);text-transform:none;display:block}.setup{flex:1;padding:1.5rem clamp(1rem,4vw,3rem) 4rem;overflow:auto}.setup__grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.25rem;max-width:1400px;margin:0 auto;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem 1.4rem}.card h2{font:700 1.1rem var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--gold);margin:0 0 .9rem}.card p.hint{color:var(--muted);margin:.4rem 0 .8rem;font-size:.9rem}.field{flex-direction:column;gap:.35rem;margin-bottom:.9rem;display:flex}.field label,.field .label{color:var(--muted);letter-spacing:.03em;font-size:.85rem}.input{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:10px;width:100%;padding:.55rem .75rem}textarea.input{resize:vertical;min-height:7rem;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.9rem}.seg{flex-wrap:wrap;gap:.4rem;display:inline-flex}.seg .btn{padding:.45em 1em}.seg .btn[aria-pressed=true]{background:linear-gradient(180deg, var(--gold), var(--gold-deep));color:var(--gold-ink);border-color:#0000}.stepper{align-items:center;gap:.4rem;display:inline-flex}.stepper input{text-align:center;width:4.5rem}.stepper .btn{border-radius:50%;width:2.4rem;height:2.4rem;padding:0}.packlist{flex-direction:column;gap:.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.packlist li{align-items:center;gap:.6rem;display:flex}.packlist .pack{text-align:left;border:2px solid var(--line);background:var(--bg);border-radius:12px;flex:1;justify-content:space-between;align-items:baseline;gap:1rem;padding:.7rem 1rem;display:flex}.packlist .pack[aria-pressed=true]{border-color:var(--gold);background:var(--panel2)}.packlist .pack .count{color:var(--muted);white-space:nowrap;font-size:.85rem}.packlist .pack .tag{text-transform:uppercase;letter-spacing:.08em;color:var(--gold);margin-right:.5rem;font-size:.7rem}.packlist .forget{padding:.35em .7em;font-size:.8rem}.error{color:var(--bad);margin:.3rem 0 0;font-size:.9rem}.ok{color:var(--good);margin:.3rem 0 0;font-size:.9rem}.warn{color:var(--gold);margin:.3rem 0 0;font-size:.9rem}.check{color:var(--muted);align-items:center;gap:.5rem;font-size:.9rem;display:flex}.setup__footer{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:1rem;max-width:1400px;margin:1.5rem auto 0;display:flex}.setup__problems{color:var(--bad);margin:0;font-size:.9rem}.team-swatch{vertical-align:-.05em;border-radius:50%;width:.8em;height:.8em;margin-right:.4em;display:inline-block}.team-swatch--A{background:var(--team-a)}.team-swatch--B{background:var(--team-b)}.format{background:var(--bg);border:1px solid var(--line);color:var(--muted);white-space:pre;border-radius:10px;margin:0 0 .8rem;padding:.7rem .9rem;font:.85rem/1.45 ui-monospace,Menlo,Consolas,monospace;overflow:auto}.format b{color:var(--ink)}.intro{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.6rem;padding:2rem;display:flex}.intro__eyebrow{color:var(--muted);letter-spacing:.3em;text-transform:uppercase;margin:0;font-size:clamp(.9rem,1.6vw,1.3rem)}.intro__title{font-family:var(--serif);max-width:90vw;margin:0;font-size:clamp(2.6rem,8vw,7rem);line-height:1.05}.intro__meta{color:var(--muted);margin:0;font-size:clamp(1rem,1.8vw,1.4rem)}.roulette{flex-direction:column;align-items:center;gap:1rem;display:flex}.roulette__name{font-family:var(--serif);border:4px solid #0000;border-radius:24px;min-width:40vw;padding:.2em .6em;font-size:clamp(3rem,10vw,9rem);line-height:1;transition:border-color .15s}.roulette__name--A{color:var(--team-a)}.roulette__name--B{color:var(--team-b)}.roulette__name--landed{border-color:var(--gold);animation:.5s ease-out land}@keyframes land{0%{transform:scale(.96)}50%{transform:scale(1.06)}to{transform:scale(1)}}.roulette__caption{color:var(--muted);min-height:1.4em;margin:0;font-size:clamp(1.2rem,2.4vw,2rem)}.game{flex-direction:column;flex:1;min-height:0;display:flex}.scores{grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:.6rem 1.6rem .2rem;display:grid}.score{align-items:baseline;gap:.8rem;min-width:0;display:flex}.score--B{text-align:right;flex-direction:row-reverse}.score__name{font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;font-size:clamp(1.4rem,3vw,2.6rem);overflow:hidden}.score--A .score__name{color:var(--team-a)}.score--B .score__name{color:var(--team-b)}.score__value{font-variant-numeric:tabular-nums;font-size:clamp(2rem,4.6vw,4rem);font-weight:800;line-height:1}.score__value--bump{animation:.5s ease-out bump}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.center{text-align:center;font-variant-numeric:tabular-nums;color:var(--muted);letter-spacing:.06em;min-width:8ch;font-size:clamp(1.2rem,2.6vw,2.2rem);font-weight:700}.center--last{color:var(--gold);animation:1.2s ease-in-out infinite pulse}.center--low{color:var(--bad)}@keyframes pulse{50%{opacity:.55}}.question{border-radius:var(--radius);background:linear-gradient(180deg, var(--panel2), var(--panel));border:1px solid var(--line);min-height:0;box-shadow:var(--shadow);flex:1;justify-content:center;align-items:center;margin:.4rem 1.6rem;padding:2.5vh 3vw;display:flex;overflow:hidden}.question__text{font-family:var(--serif);text-align:center;overflow-wrap:break-word;-webkit-hyphens:manual;hyphens:manual;max-width:100%;margin:0;font-size:clamp(2.5rem,7.5vw,9rem);line-height:1.15}.panel{text-align:center;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:.9rem;height:32vh;min-height:200px;padding:.8rem 1.6rem 1.4rem;display:flex}.panel__team{color:var(--muted);align-items:center;gap:1.2rem;margin:0;font-size:clamp(1.4rem,3vw,2.6rem);font-weight:600;display:flex}.panel__team strong{font-family:var(--serif);font-weight:700}.panel__team--A strong{color:var(--team-a)}.panel__team--B strong{color:var(--team-b)}.ring{border:.12em solid var(--gold);width:2.1em;height:2.1em;color:var(--ink);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:1.25em;font-weight:800;animation:.3s ease-out ringin;display:inline-grid;box-shadow:0 0 0 .3em #e8c35a2e,0 0 24px #e8c35a80}@keyframes ringin{0%{opacity:0;transform:scale(.6)}}.pills{flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:90vw;display:flex}.pill{border:2px solid var(--line);background:var(--panel2);font-variant-numeric:tabular-nums;border-radius:999px;min-width:3.2em;height:2.4em;padding:0 .8em;font-size:clamp(1rem,1.9vw,1.5rem);font-weight:700}.pill:hover{border-color:var(--gold)}.pill[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}.outcomes{flex-wrap:wrap;justify-content:center;gap:1rem;animation:.25s ease-out ringin;display:flex}.outcomes .btn{min-width:10em}.result{flex-direction:column;align-items:center;gap:.8rem;animation:.3s ease-out ringin;display:flex}.result__msg{margin:0;font-size:clamp(1.6rem,3.6vw,3.2rem);font-weight:700;line-height:1.2}.result__msg .A{color:var(--team-a)}.result__msg .B{color:var(--team-b)}.result__sub{color:var(--muted);margin:0;font-size:clamp(1.1rem,2.2vw,1.8rem)}.result__answer{margin:0;font-size:clamp(1.3rem,2.8vw,2.4rem)}.result__answer b{font-family:var(--serif);color:var(--gold)}.hints{color:var(--muted);letter-spacing:.04em;opacity:.7;margin:0;font-size:.8rem}.end{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.5rem;padding:2rem;display:flex}.end__reason{color:var(--muted);letter-spacing:.3em;text-transform:uppercase;margin:0;font-size:clamp(.9rem,1.6vw,1.3rem)}.end__scores{grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(1rem,4vw,4rem);display:grid}.end__team{flex-direction:column;gap:.4rem;display:flex}.end__team .name{font-family:var(--serif);font-size:clamp(1.6rem,4vw,3.6rem)}.end__team .pts{font-variant-numeric:tabular-nums;font-size:clamp(3rem,10vw,9rem);font-weight:800;line-height:1}.end__team--A .name{color:var(--team-a)}.end__team--B .name{color:var(--team-b)}.end__team--win .pts{color:var(--gold);text-shadow:0 0 30px #e8c35a80}.end__vs{color:var(--muted);letter-spacing:.2em;font-size:clamp(1rem,2vw,1.6rem)}.end__winner{font-family:var(--serif);margin:0;font-size:clamp(2.4rem,7vw,6rem);line-height:1.1}.end__winner .A{color:var(--team-a)}.end__winner .B{color:var(--team-b)}.end__actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.modal{z-index:10;background:#0009;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal__box{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;width:100%;max-width:28rem;padding:1.6rem 1.8rem}.modal__box h2{font-family:var(--serif);margin:0 0 .5rem;font-size:1.8rem}.modal__box p{color:var(--muted);margin:0 0 1.2rem}.modal__actions{justify-content:center;gap:.8rem;display:flex}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.home{text-align:center;flex-direction:column;align-items:center;gap:2rem;min-height:100%;padding:clamp(2rem,7vh,5rem) 1.2rem 3rem;display:flex}.home__brand{flex-direction:column;gap:.6rem;display:flex}.home__wordmark{font-family:var(--serif);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0;padding-left:.22em;font-size:clamp(3.5rem,12vw,8rem);font-weight:700;line-height:1}.home__tag{color:var(--muted);margin:0;font-size:clamp(1.1rem,2.4vw,1.6rem)}.home__tag em{color:var(--ink);font-family:var(--serif)}.home__cards{flex-wrap:wrap;justify-content:center;gap:1.2rem;width:100%;max-width:900px;display:flex}.home__card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);max-width:440px;box-shadow:var(--shadow);flex-direction:column;flex:320px;align-items:center;gap:.8rem;padding:1.6rem 1.6rem 1.8rem;display:flex}.home__card--resume{border-color:var(--gold-deep)}.home__card h2{font-family:var(--serif);margin:0;font-size:1.7rem}.home__card .muted{color:var(--muted);margin:0}.home__card .A{color:var(--team-a)}.home__card .B{color:var(--team-b)}.home__card .btn{font-size:1.15rem}.home__actions{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.home__howto{color:var(--muted);margin:0}.home__howto a,.home__support-note a,.doc__body a{color:var(--gold)}.home__support{max-width:640px;color:var(--muted);flex-direction:column;align-items:center;gap:1rem;margin-top:auto;font-size:.9rem;line-height:1.6;display:flex}.home__support-note{margin:0}.home__support-link{border:2px solid var(--gold-deep);color:var(--gold);border-radius:999px;padding:.5em 1.4em;font-weight:700;text-decoration:none;display:inline-block}.home__support-link:hover{background:var(--gold);color:var(--gold-ink)}.doc{min-height:100%;padding:1.5rem clamp(1rem,5vw,3rem) 4rem}.doc__top{max-width:760px;margin:0 auto 1.5rem}.doc__back{color:var(--gold);font-weight:600;text-decoration:none}.doc__back:hover{text-decoration:underline}.doc__body{max-width:760px;margin:0 auto;font-size:1.05rem;line-height:1.65}.doc__body h1{font-family:var(--serif);margin:0 0 1rem;font-size:clamp(2.2rem,5vw,3.2rem);line-height:1.1}.doc__body h2{font-family:var(--serif);color:var(--gold);margin:2rem 0 .6rem;font-size:1.6rem}.doc__body p,.doc__body li{margin:0 0 .8rem}.doc__body ul,.doc__body ol{padding-left:1.4rem}.doc__body kbd{font:600 .85em var(--sans);border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:.05em .45em}.doc__note{background:var(--panel);border-left:4px solid var(--gold-deep);color:var(--muted);border-radius:8px;padding:.8rem 1rem}.doc__body .format{color:var(--ink);font-size:.95rem}.doc__body .format b{color:var(--gold)}.doc__cta{justify-content:center;margin-top:2.5rem;display:flex}.doc__cta .btn{font-size:1.15rem;text-decoration:none}
