:root{--bg:#210711;--bg2:#3a0d1e;--card:#fff3da;--soft:#f1dfbf;--text:#241116;--muted:#7b6468;--wine:#7a1635;--wine2:#a9234b;--gold:#c99a3c;--green:#315b42}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Arial,sans-serif;background:linear-gradient(145deg,var(--bg),var(--bg2));color:#fff}body{padding:16px}.app{max-width:500px;margin:0 auto}.badge{display:inline-block;background:#ffffff1c;color:#ffe1a3;border:1px solid #ffffff20;border-radius:999px;padding:8px 12px;font-size:13px}h1{font-family:Georgia,serif;font-size:44px;line-height:.95;margin:16px 0 8px;letter-spacing:-1px}h2{font-family:Georgia,serif;font-size:28px;margin:0 0 8px;color:var(--text)}.sub{color:#dfc4c5;margin:0 0 12px;line-height:1.4}.card,.item{background:var(--card);color:var(--text);border-radius:22px;padding:17px;margin:12px 0;box-shadow:0 10px 28px #0003}.muted,.meta{color:var(--muted);font-size:14px;line-height:1.35}.meta{font-size:13px}.title-small{font-weight:900;font-size:20px}.screen,.tab-screen{display:none}.screen.active,.tab-screen.active{display:block}input,select,textarea{width:100%;border:0;outline:0;background:var(--soft);color:var(--text);border-radius:16px;padding:15px;margin:6px 0;font-size:16px;font-family:inherit}textarea{min-height:78px;resize:vertical}button{font-family:inherit;cursor:pointer}.btn,.tab,.code{width:100%;border:0;border-radius:16px;padding:15px;margin:6px 0;background:linear-gradient(135deg,var(--wine),var(--wine2));color:#fff;font-weight:850;font-size:15px}.btn.secondary,.secondary{background:#ead5ad!important;color:var(--text)!important}.btn:disabled{cursor:not-allowed;opacity:.55}.btn.ghost,.ghost{background:transparent!important;border:1px solid #ffffff55!important;color:#fff!important}.btn.small{width:auto;padding:10px 13px;font-size:13px;border-radius:13px}.danger{background:transparent;color:#ffd1d1;border:0;text-decoration:underline;margin:10px auto 24px;display:block}.danger-soft{color:#7a1635!important}.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0;position:sticky;top:0;z-index:4}.tab{font-size:12px;background:#ffffff18;border:1px solid #ffffff20;padding:12px 4px}.tab.active{background:var(--card);color:var(--wine)}.topbar,.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.code{width:auto;letter-spacing:2px;white-space:nowrap}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.list{display:grid;gap:10px;margin:12px 0}.wine-left{display:flex;gap:12px;align-items:center;min-width:0}.thumb,.rank{width:44px;height:44px;border-radius:14px;background:linear-gradient(145deg,#5b1028,#d2a14b);color:#fff;display:grid;place-items:center;flex:0 0 auto;font-weight:900}.rank{background:var(--gold)}.rank.tie{background:var(--green)}.name{font-weight:900;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scores{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:12px 0}.score{height:42px;border:0;border-radius:12px;background:#ead5ad;color:var(--text);font-weight:900}.score.active{background:var(--wine);color:#fff}.avg{font-size:28px;font-weight:950;color:var(--wine);min-width:52px;text-align:right}.bar{height:9px;background:#ead5ad;border-radius:999px;overflow:hidden;margin-top:12px}.bar span{display:block;height:100%;background:linear-gradient(90deg,var(--wine),var(--gold))}.winner{text-align:center;padding:20px 12px 6px}.winner .cup{font-size:56px}.winner h2{color:#fff;font-size:34px;margin:4px 0}.empty{text-align:center;color:#ffffffbf;padding:22px 10px;line-height:1.4}.qr-wrap{display:grid;place-items:center;background:#fff;border-radius:18px;padding:12px;margin:12px 0}#qrCanvas{width:180px!important;height:180px!important}.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#000;color:#fff;padding:12px 16px;border-radius:999px;opacity:0;transition:.2s;z-index:50;max-width:90vw;text-align:center}.toast.show{opacity:1}.bottom-actions{padding-bottom:14px}.checkline{align-items:center;background:var(--soft);border-radius:16px;color:var(--text);display:flex;font-weight:850;gap:10px;margin:12px 0 6px;padding:12px 14px}.checkline input{accent-color:var(--wine);flex:0 0 auto;height:20px;margin:0;width:20px}.vote-details{border-top:1px solid #ead5ad;margin-top:12px;padding-top:10px}.vote-toggle{background:transparent;border:0;color:var(--wine);font-weight:900;margin:0;padding:4px 0;text-align:left;width:100%}.vote-toggle::before{content:"+";display:inline-block;margin-right:6px}.vote-details.open .vote-toggle::before{content:"-"}.vote-panel[hidden]{display:none}.vote-row{align-items:flex-start;border-top:1px solid #ead5ad;display:flex;gap:12px;justify-content:space-between;padding:10px 0}.vote-row:first-child{border-top:0}.vote-row span{font-weight:900;white-space:nowrap}.vote-note{color:var(--muted);font-size:13px;margin-top:3px}@media(max-width:360px){h1{font-size:39px}.tab{font-size:11px}.score{height:39px}.grid2{grid-template-columns:1fr}}
.more-details{border-top:1px solid #ead5ad;margin:10px 0 6px;padding-top:10px}.more-details summary{color:var(--wine);cursor:pointer;font-weight:900;text-align:center}.more-details textarea{margin-top:6px}
#guessShowBox{scroll-margin-top:72px}.guess-show .row{align-items:flex-start}.guess-phase{background:var(--wine);border-radius:999px;color:#fff;flex:0 0 auto;font-size:12px;font-weight:950;letter-spacing:.02em;padding:7px 10px;text-transform:uppercase}.guess-show input{font-size:18px;font-weight:800}.guess-scoreboard{background:#ead5ad;border-radius:16px;display:grid;gap:1px;margin-top:12px;overflow:hidden}.guess-score-row,.guess-row{align-items:center;background:var(--soft);display:flex;gap:10px;justify-content:space-between;padding:11px 12px}.guess-score-row span,.guess-row span{font-weight:850;min-width:0;overflow-wrap:anywhere}.guess-score-row b,.guess-row b{color:var(--wine);flex:0 0 auto;text-align:right}.answer-box{background:#ead5ad;border-radius:16px;margin:12px 0;padding:14px}.answer-box span{color:var(--muted);display:block;font-size:13px;font-weight:850;margin-bottom:3px}.answer-box b{color:var(--wine);display:block;font-size:24px;overflow-wrap:anywhere}.guess-list{border-radius:16px;margin:12px 0;overflow:hidden}.guess-row{border-top:1px solid #ead5ad}.guess-row:first-child{border-top:0}.guess-row.correct{background:#e4ead1}.guess-row.correct b{color:var(--green)}@media(max-width:360px){.guess-phase{font-size:11px;padding:6px 8px}.answer-box b{font-size:21px}.guess-score-row,.guess-row{padding:10px}}
.now-card{padding-bottom:15px}.now-kicker{color:var(--wine);font-size:12px;font-weight:950;letter-spacing:.04em;text-transform:uppercase}.now-card h2{font-size:26px;margin-top:3px}.now-action{margin-top:10px}.flow-steps{display:grid;gap:5px;grid-template-columns:repeat(4,1fr);margin-top:10px}.flow-steps span{background:#ead5ad;border-radius:999px;color:var(--muted);font-size:11px;font-weight:900;min-width:0;overflow:hidden;padding:7px 4px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.flow-steps span.done{background:#e4ead1;color:var(--green)}.flow-steps span.active{background:var(--wine);color:#fff}.now-note{border-top:1px solid #ead5ad;color:var(--muted);font-size:13px;font-weight:800;margin-top:12px;padding-top:10px}.advanced-actions summary{color:var(--wine);cursor:pointer;font-weight:900;list-style:none;text-align:center}.advanced-actions summary::-webkit-details-marker{display:none}.advanced-actions summary::before{content:"+";display:inline-block;margin-right:6px}.advanced-actions[open] summary::before{content:"-"}.bottom-advanced{margin-top:8px}.bottom-advanced .danger{margin-bottom:8px}@media(max-width:360px){.flow-steps{gap:4px}.flow-steps span{font-size:10px;padding-left:2px;padding-right:2px}.now-card h2{font-size:24px}}
.home-card{scroll-margin-top:14px}.join-card{border:1px solid rgba(201,154,60,.45);box-shadow:0 16px 34px #0004}.host-card{background:#f8ead0}.text-link{background:transparent;border:0;color:var(--wine);display:block;font-size:14px;font-weight:900;margin:5px auto 0;padding:8px;text-align:center;text-decoration:underline;text-underline-offset:3px;width:100%}.rating-item{scroll-margin-top:84px}.rating-item.unrated{outline:1px solid rgba(201,154,60,.5)}.rating-item.rated .thumb{background:linear-gradient(145deg,var(--green),#d2a14b)}.rate-sticky{align-items:center;background:var(--card);border:1px solid #ead5ad;border-radius:18px;bottom:12px;box-shadow:0 16px 34px #0005;display:flex;gap:12px;justify-content:space-between;margin:10px 0 4px;padding:12px;position:sticky;z-index:6}.rate-sticky b{color:var(--text);display:block;font-size:15px}.rate-sticky span{color:var(--muted);display:block;font-size:13px;margin-top:2px}.rate-sticky .btn{flex:0 0 auto;margin:0;white-space:nowrap;width:auto}.rate-sticky.done{background:#e4ead1;border-color:#c9d6ae}.leaderboard-list{gap:12px}.result-item{padding:15px}.result-item.top-result{border:1px solid rgba(201,154,60,.55);box-shadow:0 14px 32px #0004}.result-head{align-items:flex-start}.score-pill{align-items:flex-end;background:#ead5ad;border-radius:15px;color:var(--wine);display:flex;flex-direction:column;line-height:1;min-width:66px;padding:10px 11px;text-align:right}.score-pill b{font-size:26px;font-weight:950}.score-pill span{color:var(--muted);font-size:12px;font-weight:900;margin-top:3px}.result-meta{color:var(--muted);font-size:13px;line-height:1.35;margin-top:10px;overflow-wrap:anywhere}.winner-card{text-align:left}.winner-card h2{color:var(--text);font-size:30px;line-height:1.05;margin:7px 0}.winner-kicker{color:var(--wine);font-size:12px;font-weight:950;letter-spacing:.04em;text-transform:uppercase}.winner-score{color:var(--wine);font-size:42px;font-weight:950;line-height:1}.winner-score span{color:var(--muted);font-size:18px;margin-left:2px}.vote-toggle{align-items:center;display:flex;justify-content:flex-start;gap:10px}.vote-toggle span{flex:1;text-align:left}.vote-toggle b{background:#ead5ad;border-radius:999px;color:var(--muted);font-size:12px;padding:4px 8px}@media(max-width:520px){body{padding:10px 16px 14px}.badge{padding:7px 11px}h1{font-size:40px;margin:12px 0 6px}.sub{font-size:15px;margin-bottom:10px}.card,.item{border-radius:20px;margin:10px 0;padding:16px}.home-card h2{font-size:27px}.home-card input{padding:14px}.tabs{margin:10px 0}.score-pill{min-width:60px;padding:9px}.score-pill b{font-size:24px}.winner-card h2{font-size:28px}.winner-score{font-size:38px}}@media(max-width:380px){.rate-sticky{align-items:stretch;flex-direction:column}.rate-sticky .btn{width:100%}h1{font-size:37px}}
