:root{--night-1: #1a1020;--night-2: #2a1530;--ember: #ff7a18;--ember-2: #ffb347;--gold: #ffd670;--cream: #fff3e0;--char: #120a18;--good: #7bd88f;--bad: #ff6b6b;--chip: #3a2440;--card: #2e1c38;--muted: #b59cc4;font-family:Trebuchet MS,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{color:var(--cream);background:radial-gradient(120% 80% at 50% 0%,#3a1c2e 0%,var(--night-2) 45%,var(--night-1) 100%);-webkit-font-smoothing:antialiased;overflow-x:hidden}.screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,48px);text-align:center}.landing-inner,.host-inner,.player-inner,.join-inner{width:100%;max-width:680px;display:flex;flex-direction:column;align-items:center;gap:clamp(14px,2.5vw,26px)}.player-inner,.join-inner{max-width:460px}.logo{font-size:clamp(40px,9vw,92px);font-weight:900;line-height:.95;margin:0;letter-spacing:-1px;background:linear-gradient(180deg,var(--gold),var(--ember));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 6px 24px rgba(255,122,24,.25)}.logo .or{color:var(--cream);-webkit-text-fill-color:var(--cream);font-style:italic}.tagline{font-size:clamp(15px,2.4vw,22px);color:var(--cream);margin:0;opacity:.92}.subtitle{font-size:clamp(14px,2vw,19px);color:var(--muted);margin:0}.hint{font-size:14px;color:var(--muted);margin:0}.phase-title{font-size:clamp(24px,5vw,42px);margin:0}.big-count{font-size:clamp(20px,4vw,32px);font-weight:800;color:var(--gold);margin:6px 0}.big-emoji{font-size:clamp(60px,16vw,120px);line-height:1}.btn{font:inherit;font-weight:800;border:none;border-radius:999px;padding:14px 28px;cursor:pointer;transition:transform .08s ease,filter .15s ease,opacity .15s ease;color:var(--char)}.btn:active{transform:translateY(1px) scale(.99)}.btn.primary{background:linear-gradient(180deg,var(--ember-2),var(--ember));box-shadow:0 8px 24px #ff7a1859}.btn.ghost{background:transparent;color:var(--cream);border:2px solid var(--ember)}.btn.link{background:none;color:var(--muted);box-shadow:none;padding:8px}.btn.big{font-size:clamp(17px,2.6vw,22px);padding:18px 36px}.btn:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.4);box-shadow:none}.btn:not(:disabled):hover{filter:brightness(1.06)}.landing-buttons{display:flex;flex-direction:column;gap:14px;width:min(100%,380px)}.landing-buttons .btn{width:100%}.join-box{background:#00000040;border:1px solid rgba(255,214,112,.25);border-radius:22px;padding:clamp(18px,3vw,32px);width:100%}.join-label{color:var(--muted);font-size:clamp(13px,1.8vw,17px)}.join-url{font-size:clamp(18px,3vw,30px);font-weight:800;color:var(--cream);margin:4px 0 14px;word-break:break-all}.room-code{font-size:clamp(56px,14vw,130px);font-weight:900;letter-spacing:clamp(6px,2vw,18px);color:var(--gold);text-shadow:0 4px 20px rgba(255,214,112,.4);margin-top:6px}.player-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.chip{background:var(--chip);border:1px solid rgba(255,255,255,.08);border-radius:999px;padding:8px 16px;font-weight:700;font-size:clamp(14px,2vw,18px)}.chip.muted{color:var(--muted);font-weight:500}.duel-counter{color:var(--muted);font-weight:800;letter-spacing:2px;text-transform:uppercase;font-size:14px}.duel{display:flex;align-items:center;justify-content:center;gap:clamp(10px,3vw,40px);width:100%}.vs{font-size:clamp(22px,4vw,40px);font-weight:900;color:var(--ember)}.smore-card{background:var(--card);border:2px solid rgba(255,255,255,.08);border-radius:22px;padding:clamp(14px,2.5vw,28px);flex:1;max-width:320px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.smore-card.winner{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold),0 14px 40px #ffd6704d;transform:translateY(-6px)}.smore-side{font-size:14px;font-weight:800;color:var(--ember);letter-spacing:2px}.smore-emoji{font-size:clamp(40px,9vw,76px);line-height:1.2;word-break:break-word}.smore-name{font-size:clamp(16px,2.4vw,24px);font-weight:800;margin-top:6px}.smore-builder{color:var(--muted);font-size:13px}.smore-score{font-size:clamp(30px,6vw,52px);font-weight:900;color:var(--gold);margin-top:8px}.smore-verdict{color:var(--cream);font-size:clamp(13px,2vw,18px)}.bet-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}.bet-card{background:var(--card);border:3px solid rgba(255,255,255,.08);border-radius:20px;padding:16px 10px;color:var(--cream);font:inherit;cursor:pointer;transition:transform .1s ease,border-color .15s ease}.bet-card:active{transform:scale(.98)}.bet-card.picked{border-color:var(--gold);background:#3c2748;box-shadow:0 0 0 2px var(--gold)}.bet-side{font-weight:900;color:var(--ember);font-size:20px}.bet-emoji{font-size:clamp(36px,12vw,56px);word-break:break-word}.bet-name{font-weight:800;font-size:clamp(14px,4vw,18px)}.slot{width:100%;text-align:left}.slot-label{font-weight:800;color:var(--gold);margin-bottom:6px;font-size:15px}.slot-options{display:flex;flex-wrap:wrap;gap:8px}.ingredient{display:flex;align-items:center;gap:6px;background:var(--chip);border:2px solid transparent;border-radius:14px;padding:8px 12px;color:var(--cream);font:inherit;font-size:14px;cursor:pointer}.ingredient.selected{border-color:var(--gold);background:#3c2748}.ing-emoji{font-size:20px}.text-input{width:min(100%,360px);font:inherit;font-size:clamp(18px,3vw,24px);padding:14px 18px;border-radius:16px;border:2px solid rgba(255,214,112,.4);background:#0000004d;color:var(--cream);text-align:center}.text-input:focus{outline:none;border-color:var(--gold)}.code-input{text-transform:uppercase;letter-spacing:12px;font-weight:900;font-size:clamp(32px,8vw,52px)}.shake{animation:shake .35s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.scoreboard{list-style:none;padding:0;margin:0;width:min(100%,480px);display:flex;flex-direction:column;gap:10px}.score-row{display:flex;align-items:center;gap:14px;background:var(--card);border-radius:16px;padding:12px 18px;font-size:clamp(16px,3vw,22px)}.score-row.champ{background:linear-gradient(90deg,rgba(255,214,112,.25),var(--card));border:1px solid var(--gold)}.rank{font-weight:900;color:var(--ember);width:28px}.score-name{flex:1;text-align:left;font-weight:700}.score-pts{font-weight:900;color:var(--gold)}@media(max-width:420px){.duel{flex-direction:column}}
