@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@500;600;700;800;900&display=swap");:root{--bg:#1ca95f;--bg-deep:#168a4c;--bg-glow:#2fc576;--surface-white:#fff;--surface-cream:#fff8ee;--surface-dark:#1a1d2b;--surface-dark-2:#242838;--surface-dark-3:#2f3448;--text-on-dark:#f5f2ea;--text-on-light:#1a1d2b;--muted:#6b7283;--muted-dark:#9298ab;--dim:#a9b3c3;--accent:#ff7a59;--accent-2:#ffa282;--accent-ink:#2a0e06;--gold:#ffc857;--gold-2:#ffd97a;--gold-ink:#3d2b04;--red:#ef4e5a;--red-2:#ff7683;--blue:#3b7bff;--blue-2:#6b9aff;--ok:#4dd0a0;--pink:#ec4899;--tile:#e0bb8a;--tile-2:#c59f6b;--tile-ink:#2a1d0c;--hairline-light:hsla(0,0%,100%,.18);--hairline-dark:rgba(0,0,0,.1);--hairline-dark-strong:rgba(0,0,0,.18);--focus:rgba(255,122,89,.55);--shadow-1:0 4px 12px rgba(0,0,0,.14),0 2px 4px rgba(0,0,0,.08);--shadow-2:0 10px 28px rgba(0,0,0,.18),0 4px 10px rgba(0,0,0,.1);--shadow-3:0 20px 48px rgba(0,0,0,.26),0 8px 18px rgba(0,0,0,.12);--shadow-pop:0 6px 0 rgba(0,0,0,.18),0 12px 22px rgba(0,0,0,.16);--shadow-pop-sm:0 3px 0 rgba(0,0,0,.16),0 6px 14px rgba(0,0,0,.12);--r-sm:12px;--r-md:18px;--r-lg:24px;--r-xl:32px;--r-2xl:40px;--r-pill:999px}*{box-sizing:border-box}html{background:var(--bg)}#__next,body,html{height:100%;margin:0;padding:0;color:var(--text-on-dark);font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:600;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#__next,body{background:transparent}button,input{font:inherit;color:inherit}button{cursor:pointer;border:none;background:transparent}button,input{outline:none}button:focus-visible,input:focus-visible{box-shadow:0 0 0 4px var(--focus)}h1,h2,h3,h4{margin:0;font-weight:900;letter-spacing:-.015em}h1{font-size:2.6rem;line-height:1.05}h2{font-size:1.7rem;line-height:1.2}h3{font-size:1.2rem}h4{font-size:1rem}::selection{background:rgba(255,122,89,.4);color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:999px}html:before{inset:0;z-index:-3;background:radial-gradient(1200px 700px at 50% -20%,var(--bg-glow),transparent 70%),radial-gradient(900px 600px at 100% 110%,var(--bg-glow),transparent 60%);opacity:.85}body:before,html:before{content:"";position:fixed;pointer-events:none}body:before{inset:-2px;z-index:-2;background-image:linear-gradient(90deg,hsla(0,0%,100%,.09) 1px,transparent 0),linear-gradient(180deg,hsla(0,0%,100%,.09) 1px,transparent 0);background-size:44px 44px;animation:grid-drift 16s linear infinite}@keyframes grid-drift{0%{background-position:0 0,0 0}to{background-position:44px 0,0 44px}}.screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:40px 24px;gap:28px}.screen,.screen.center{justify-content:center}.title{text-align:center;color:#fff}.title h1{font-size:3rem;font-weight:900;line-height:1.05;letter-spacing:-.03em;color:#fff;text-shadow:0 4px 0 rgba(0,0,0,.14)}.subtitle{color:hsla(0,0%,100%,.9);margin-top:10px;font-size:.95rem;font-weight:700}.card{position:relative;background:var(--surface-white);color:var(--text-on-light);border-radius:var(--r-lg);padding:28px;width:100%;max-width:480px;box-shadow:var(--shadow-pop);gap:18px}.card,.card label{display:flex;flex-direction:column}.card label{gap:8px}.card label>span{color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.card input:not([type]),.card input[type=number],.card input[type=password],.card input[type=text]{background:#f4f3ef;color:var(--text-on-light);border:2px solid transparent;border-radius:var(--r-md);padding:14px 16px;font-size:1rem;font-weight:600;width:100%;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.card input:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px rgba(255,122,89,.16)}.card input::placeholder{color:var(--dim)}.primary{background:linear-gradient(180deg,var(--accent-2),var(--accent));color:#fff;padding:14px 26px;border-radius:var(--r-pill);font-weight:900;font-size:1rem;letter-spacing:-.005em;text-shadow:0 1px 0 rgba(0,0,0,.18);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.3),0 5px 0 rgba(200,60,30,.4),0 10px 22px rgba(255,122,89,.35);transition:transform .08s ease,box-shadow .15s ease,filter .15s ease;position:relative;overflow:hidden;isolation:isolate}.primary:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 30%,hsla(0,0%,100%,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s cubic-bezier(.2,.8,.2,1);pointer-events:none}.primary:hover{filter:brightness(1.06);transform:translateY(-2px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.35),0 7px 0 rgba(200,60,30,.45),0 14px 26px rgba(255,122,89,.45)}.primary:hover:after{transform:translateX(120%)}.primary:active:not(:disabled){transform:translateY(3px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.25),0 1px 0 rgba(200,60,30,.5),0 4px 8px rgba(255,122,89,.3)}.primary.big{padding:18px 32px;font-size:1.1rem}.primary:disabled{opacity:.5;cursor:not-allowed}.ghost{background:var(--surface-white);color:var(--text-on-light);padding:10px 18px;border-radius:var(--r-pill);font-weight:800;font-size:.9rem;box-shadow:var(--shadow-pop-sm);transition:transform .08s ease,box-shadow .15s ease,background .15s ease}.ghost:hover{background:#fff;transform:translateY(-1px);box-shadow:0 4px 0 rgba(0,0,0,.18),0 8px 18px rgba(0,0,0,.14)}.ghost:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 rgba(0,0,0,.14)}.ghost:disabled{opacity:.45;cursor:not-allowed}.ghost.end-game,.ghost.leave{color:var(--red)}.ghost.end-game:hover,.ghost.leave:hover{background:#fff0ee}.ghost.ses-toggle{transition:opacity .15s ease,color .15s ease,background .15s ease}.ghost.ses-toggle.ses-off{opacity:.45;color:var(--muted)}.row{display:flex;gap:10px}.hint{color:var(--muted);margin:0;line-height:1.5;font-weight:600}.error,.hint{font-size:.9rem}.error{background:#fff0ee;color:#a32a21;border:2px solid var(--red);padding:12px 14px;border-radius:var(--r-md);font-weight:700}.avatar-img{display:inline-block;object-fit:contain;border-radius:50%;background:#1a1d2b;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;filter:contrast(1.08) saturate(1.15)}.avatar-img.fallback{display:inline-flex;align-items:center;justify-content:center;color:var(--muted-dark);font-weight:800;font-size:.8rem;filter:none;background:var(--surface-dark-2)}.avatar-img.size-sm{width:36px;height:36px}.avatar-img.size-md{width:56px;height:56px}.avatar-img.size-lg{width:128px;height:128px}.avatar-picker{display:flex;gap:18px;overflow-x:auto;overflow-y:hidden;padding:18px 8px 24px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.avatar-picker::-webkit-scrollbar{height:6px}.avatar-picker::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:3px}.avatar-choice{background:transparent;border:none;padding:0;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--text-on-light);scroll-snap-align:center;flex:0 0 auto;cursor:pointer}.avatar-plate{position:relative;width:128px;height:128px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,rgba(255,122,89,.35),transparent 60%),radial-gradient(circle at 50% 115%,rgba(76,123,209,.22),transparent 60%),var(--surface-dark);box-shadow:0 0 0 4px #fff,0 8px 0 rgba(0,0,0,.18),0 14px 28px rgba(0,0,0,.28);transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease}.avatar-plate .avatar-img{width:112px;height:112px;border-radius:50%;background:var(--surface-dark);filter:contrast(1.14) saturate(1.24)}.avatar-choice:hover .avatar-plate{transform:translateY(-3px)}.avatar-choice.centered .avatar-plate{transform:translateY(-6px) scale(1.06);box-shadow:0 0 0 4px #fff,0 0 0 7px var(--accent),0 12px 0 rgba(0,0,0,.18),0 18px 34px rgba(255,122,89,.35);animation:plate-float 3.4s ease-in-out infinite}.avatar-choice.selected .avatar-plate{transform:translateY(-6px) scale(1.06);box-shadow:0 0 0 4px #fff,0 0 0 8px var(--gold),0 12px 0 rgba(0,0,0,.2),0 18px 36px rgba(255,200,87,.55)}@keyframes plate-float{0%,to{transform:translateY(-6px) scale(1.06)}50%{transform:translateY(-11px) scale(1.07)}}.avatar-choice .name{font-size:.88rem;color:#1a1d2b;font-weight:800;text-align:center;max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px hsla(0,0%,100%,.5)}.avatar-choice.selected .name{color:var(--gold-2)}.room{display:grid;grid-template-columns:1fr;min-height:100vh}.player-panel{position:fixed;top:0;left:0;bottom:0;width:320px;max-width:82%;z-index:100;background:var(--surface-dark);color:var(--text-on-dark);overflow-y:auto;transform:translateX(-100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow-3)}.room.players-open .player-panel{transform:translateX(0)}.main{padding:20px 28px 40px;display:flex;flex-direction:column;gap:16px;min-width:0;min-height:100vh}.game-stage{flex:1 1;display:flex;flex-direction:column;justify-content:center;align-items:stretch;padding:12px 0}.game-stage>*{width:100%;margin:0 auto}.topbar{display:flex;align-items:center;gap:10px;padding:8px 0;flex-wrap:wrap}.topbar .brand{flex:1 1 100%;order:2;text-align:center;margin-top:6px;font-size:1.3rem;font-weight:900;color:#fff;letter-spacing:-.015em;text-shadow:0 2px 0 rgba(0,0,0,.16)}.topbar .spacer{display:none}.players-toggle{display:inline-flex}.player-backdrop{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .2s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.player-list{padding:22px 16px;color:var(--text-on-dark)}.player-list h3{margin:4px 4px 16px;color:var(--muted-dark);font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.2em}.player-list ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.player{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface-dark-2);transition:transform .1s ease,background .15s ease;font-size:.98rem;font-weight:700}.player:hover{background:var(--surface-dark-3);transform:translateX(2px)}.player .name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player.current{background:linear-gradient(180deg,#ff8a6b,var(--accent));color:#fff;animation:current-breathe 2.6s ease-in-out infinite}.player.me{box-shadow:inset 0 0 0 2px var(--gold)}.player.offline{opacity:.5}.player.team-red{border-left:4px solid var(--red)}.player.team-blue{border-left:4px solid var(--blue)}.player .badges{display:flex;gap:4px}.badge{font-size:.62rem;padding:3px 8px;border-radius:var(--r-pill);background:hsla(0,0%,100%,.12);color:var(--muted-dark);font-weight:900;letter-spacing:.1em}.badge.host{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:var(--gold-ink);animation:host-pulse 2.8s ease-in-out infinite}.badge.spy{background:var(--surface-dark);color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.badge.off{background:hsla(0,0%,100%,.08);color:var(--dim)}.kick-btn{margin-left:auto;background:rgba(239,78,90,.15);color:#ff6b6b;border:none;border-radius:50%;width:24px;height:24px;font-size:.75rem;font-weight:900;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .1s;flex-shrink:0}.kick-btn:hover{background:rgba(239,78,90,.4);transform:scale(1.15)}@keyframes current-breathe{0%,to{box-shadow:0 0 0 0 rgba(255,122,89,0)}50%{box-shadow:0 0 0 4px rgba(255,122,89,.35)}}@keyframes host-pulse{0%,to{box-shadow:0 0 0 0 rgba(255,200,87,0)}50%{box-shadow:0 0 0 4px rgba(255,200,87,.4)}}.lobby{display:flex;flex-direction:column;gap:20px;background:var(--surface-white);color:var(--text-on-light);padding:24px;border-radius:var(--r-xl);box-shadow:var(--shadow-pop)}.lobby>header h2{font-size:1.8rem}.lobby>header p{color:var(--muted);margin:6px 0 0;font-weight:700}.game-picker h3,.mode-picker-wrap h3,.team-picker h3{color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}.games{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:14px;gap:14px}.game-card{position:relative;background:var(--surface-cream);color:var(--text-on-light);padding:22px 20px;border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;box-shadow:var(--shadow-pop-sm);transition:transform .12s ease,box-shadow .2s ease,background .2s ease;overflow:hidden;--card-accent:var(--accent)}.games .game-card:first-child{--card-accent:#ff7a59}.games .game-card:nth-child(2){--card-accent:#3b7bff}.games .game-card:nth-child(3){--card-accent:#ec4899}.game-card:before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--card-accent)}.game-card:hover:not(:disabled){transform:translateY(-3px) rotate(-.5deg);box-shadow:0 6px 0 rgba(0,0,0,.14),0 14px 26px color-mix(in srgb,var(--card-accent) 30%,transparent)}.game-card.active{background:#fff;box-shadow:0 6px 0 color-mix(in srgb,var(--card-accent) 55%,transparent),0 14px 28px rgba(0,0,0,.18);transform:translateY(-2px)}.game-card:disabled{opacity:.55;cursor:default}.game-card .game-title{font-size:1.2rem;font-weight:900;letter-spacing:-.015em}.mode-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px}.mode-card{background:var(--surface-cream);color:var(--text-on-light);padding:14px 16px;border-radius:var(--r-md);display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;box-shadow:var(--shadow-pop-sm);transition:transform .1s ease,box-shadow .2s ease,background .2s ease}.mode-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 0 rgba(0,0,0,.14),0 10px 20px rgba(0,0,0,.12)}.mode-card.active{background:#fff;box-shadow:0 5px 0 rgba(255,122,89,.4),0 10px 22px rgba(255,122,89,.28);outline:2px solid var(--accent);outline-offset:-2px}.mode-card:disabled{opacity:.55;cursor:default}.mode-card .mode-title{font-size:1.05rem;font-weight:900;letter-spacing:-.01em}.mode-card .mode-desc{font-size:.78rem;font-weight:700;color:var(--muted)}.team-dot{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:middle;margin-right:8px;box-shadow:inset 0 -2px 0 rgba(0,0,0,.15)}.team-dot.red{background:var(--red)}.team-dot.blue{background:var(--blue)}.teams{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}.team{position:relative;padding:18px;border-radius:var(--r-lg);background:var(--surface-cream);color:var(--text-on-light);display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-pop-sm);overflow:hidden}.team:before{content:"";position:absolute;inset:0 0 auto 0;height:6px}.team.red:before{background:var(--red)}.team.blue:before{background:var(--blue)}.team h4{letter-spacing:-.01em}.team ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.team-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:12px;background:#fff;font-weight:700}.team-row .hint{font-size:.68rem;color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-weight:900}.team button{align-self:flex-start}.actions{display:flex;gap:12px;justify-content:flex-end;padding-top:4px}.duygusal-unified,.imposter-unified{background:var(--surface-white);color:var(--text-on-light);border-radius:var(--r-xl);padding:28px 28px 24px;box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:18px;width:100%;max-width:720px;margin:0 auto}.duygusal-unified .duygusal-top-row,.imposter-unified .imposter-top-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.duygusal-unified .duygusal-pills,.imposter-unified .imposter-pills{display:flex;gap:8px;flex-wrap:wrap}.duygusal-unified .pill,.imposter-unified .pill{background:#f4f3ef;color:var(--text-on-light);font-weight:800}.duygusal-unified .timer,.imposter-unified .timer{background:var(--surface-dark);color:var(--text-on-dark);padding:8px 16px;border-radius:var(--r-pill)}.duygusal-unified .timer .time,.imposter-unified .timer .time{font-size:1.3rem}.duygusal-unified .timer .label,.imposter-unified .timer .label{color:var(--muted-dark)}.duygusal-answerer{display:flex;align-items:baseline;justify-content:center;gap:10px;padding:10px 16px;background:var(--surface-cream);border-radius:var(--r-pill);text-align:center}.duygusal-answerer-label{font-size:.72rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.duygusal-answerer-name{font-size:1.3rem;font-weight:900;color:var(--accent);letter-spacing:-.01em}.duygusal-question{text-align:center;padding:24px 8px}.duygusal-question h3{font-size:1.7rem;line-height:1.35;font-weight:900;letter-spacing:-.015em;margin:6px 0}.duygusal-question .difficulty{display:inline-block;padding:4px 14px;border-radius:var(--r-pill);font-size:.78rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--muted)}.duygusal-question .difficulty.diff-easy{background:linear-gradient(135deg,#4dd0a0,#2ebd8a);text-shadow:0 1px 2px rgba(0,0,0,.15)}.duygusal-question .difficulty.diff-medium{background:linear-gradient(135deg,#ffc857,#f0a830);color:#3d2b04;text-shadow:0 1px 2px hsla(0,0%,100%,.2)}.duygusal-question .difficulty.diff-hard{background:linear-gradient(135deg,#ef4e5a,#d63644);text-shadow:0 1px 2px rgba(0,0,0,.2)}.personal-sentence{position:relative;padding:16px 20px;border-radius:var(--r-lg);background:var(--surface-cream);border:2px solid transparent;box-shadow:var(--shadow-1);text-align:center;animation:sentence-slide-in .4s cubic-bezier(.2,.8,.2,1)}@keyframes sentence-slide-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.personal-sentence.sentence-roast{background:linear-gradient(135deg,#fff0ee,#ffe8e3);border-color:rgba(239,78,90,.3)}.personal-sentence.sentence-positive{background:linear-gradient(135deg,#edfff6,#e0fce9);border-color:rgba(77,208,160,.3)}.personal-sentence.sentence-general{background:linear-gradient(135deg,#f0f4ff,#e8edff);border-color:rgba(59,123,255,.3)}.sentence-header{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}.sentence-badge{font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;padding:3px 10px;border-radius:var(--r-pill);background:rgba(0,0,0,.06)}.sentence-roast .sentence-badge{background:rgba(239,78,90,.12);color:#c62828}.sentence-positive .sentence-badge{background:rgba(77,208,160,.15);color:#1b5e20}.sentence-general .sentence-badge{background:rgba(59,123,255,.12);color:#1565c0}.sentence-target{font-size:1rem;font-weight:900;color:var(--accent);letter-spacing:-.01em}.sentence-roast .sentence-target{color:#c62828}.sentence-positive .sentence-target{color:#2e7d32}.sentence-general .sentence-target{color:#1565c0}.sentence-text{margin:0;font-size:1.05rem;font-weight:700;line-height:1.5;color:var(--text-on-light)}.imposter-unified .current-player,.imposter-unified .result,.imposter-unified .word-card{background:transparent;box-shadow:none;padding:0;border-radius:0;animation:none;border:none;color:inherit}.imposter-unified .word-card{text-align:center;padding:8px 0 4px}.imposter-unified .word-card h2{font-size:2.4rem;margin:10px 0;letter-spacing:-.025em;font-weight:900;color:var(--accent)}.imposter-unified .word-card .hint{color:var(--muted);font-weight:700}.imposter-unified .current-player{padding:6px 0}.imposter-unified .current-player h3{color:var(--text-on-light);font-size:1.3rem}.imposter-unified .current-player .hint{color:var(--muted)}.imposter-unified .result h2{color:var(--text-on-light)}.imposter-unified .vote-grid h3{text-align:center;color:var(--text-on-light);text-shadow:none;margin-bottom:8px}.imposter-unified .vote-card{background:var(--surface-cream);box-shadow:var(--shadow-pop-sm)}.duygusal-unified .game-actions,.imposter-unified .game-actions{justify-content:center;padding-top:4px}.codenames-panel{background:var(--surface-dark);color:var(--text-on-dark);border-radius:var(--r-xl);padding:16px;box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:14px;width:100%;max-width:900px;margin:0 auto}.codenames .game-actions{justify-content:center;max-width:900px;margin:0 auto;width:100%}.codenames-panel .game-header{border-radius:0}.codenames-panel .board,.codenames-panel .game-header{background:transparent;box-shadow:none;padding:0}.game-header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;background:var(--surface-dark);border-radius:var(--r-lg);box-shadow:var(--shadow-2)}.game-header,.pill{align-items:center;color:var(--text-on-dark)}.pill{display:inline-flex;gap:6px;background:var(--surface-dark-2);border-radius:var(--r-pill);padding:7px 14px;margin-right:6px;font-size:.85rem;font-weight:800}.pill.team-red{background:rgba(239,78,90,.22);color:#ffd0cf;box-shadow:inset 0 0 0 2px rgba(239,78,90,.5);animation:team-red-pulse 3.2s ease-in-out infinite}.pill.team-blue{background:rgba(91,141,255,.22);color:#d4e0ff;box-shadow:inset 0 0 0 2px rgba(91,141,255,.5);animation:team-blue-pulse 3.2s ease-in-out infinite}@keyframes team-red-pulse{0%,to{box-shadow:inset 0 0 0 2px rgba(239,78,90,.5),0 0 0 0 rgba(239,78,90,0)}50%{box-shadow:inset 0 0 0 2px rgba(239,78,90,.7),0 0 20px rgba(239,78,90,.35)}}@keyframes team-blue-pulse{0%,to{box-shadow:inset 0 0 0 2px rgba(91,141,255,.5),0 0 0 0 rgba(91,141,255,0)}50%{box-shadow:inset 0 0 0 2px rgba(91,141,255,.7),0 0 20px rgba(91,141,255,.4)}}.timer{display:inline-flex;align-items:center;gap:12px;background:var(--surface-dark-2);border-radius:var(--r-lg);padding:10px 18px;color:var(--text-on-dark)}.timer .time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:900;letter-spacing:-.02em;animation:tick-beat 1s ease-in-out infinite}.timer .label{color:var(--muted-dark);text-transform:uppercase;font-size:.68rem;font-weight:900;letter-spacing:.18em}.timer.paused{box-shadow:inset 0 0 0 2px var(--accent)}.timer.paused .time{animation:none;color:var(--accent)}.timer .paused-tag{color:var(--accent);font-size:.75rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}@keyframes tick-beat{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.current-player{text-align:center;padding:20px;background:var(--surface-white);color:var(--text-on-light);border-radius:var(--r-xl);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;align-items:center;gap:10px}.current-player h2,.current-player h3{margin:8px 0 4px}.question-card{background:var(--surface-white);color:var(--text-on-light);border-radius:var(--r-xl);padding:36px 32px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-pop)}.question-card h3{margin:0;font-size:1.7rem;line-height:1.4;font-weight:900;letter-spacing:-.015em}.difficulty{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.18em;font-weight:900}.game-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}.board{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:10px;gap:10px;padding:16px;background:var(--surface-dark);border-radius:var(--r-xl);box-shadow:var(--shadow-pop)}.card-cell{position:relative;background:linear-gradient(180deg,#edcb94 0,var(--tile) 55%,var(--tile-2) 100%);color:#fff;border-radius:var(--r-md);padding:0;font-weight:900;text-transform:uppercase;letter-spacing:.03em;min-height:86px;display:block;text-shadow:0 1px 0 rgba(0,0,0,.35);box-shadow:inset 0 2px 0 hsla(0,0%,100%,.5),inset 0 -3px 0 rgba(0,0,0,.15),0 4px 0 rgba(0,0,0,.3),0 10px 20px rgba(0,0,0,.35);transition:transform .08s ease,box-shadow .15s ease}.card-cell:before{content:"";position:absolute;left:8px;right:8px;bottom:8px;height:30px;background:rgba(120,86,50,.55);border-radius:6px;box-shadow:inset 0 1px 0 rgba(0,0,0,.18),inset 0 -1px 0 hsla(0,0%,100%,.18);z-index:0}.card-cell .cell-label{position:absolute;left:10px;right:10px;bottom:8px;height:30px;z-index:1;display:flex;align-items:center;justify-content:center;font-size:.82rem;line-height:1;padding:0 4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.card-cell>:not(.cell-label){position:relative;z-index:1}.card-cell:hover:not(:disabled):not(.revealed){transform:translateY(-3px);box-shadow:inset 0 2px 0 hsla(0,0%,100%,.5),inset 0 -3px 0 rgba(0,0,0,.15),0 7px 0 rgba(0,0,0,.3),0 14px 26px rgba(0,0,0,.4),0 0 0 3px rgba(255,122,89,.55)}.card-cell:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.4),0 1px 0 rgba(0,0,0,.3),0 4px 10px rgba(0,0,0,.3)}.card-cell.revealed{animation:reveal-pop .55s cubic-bezier(.2,.8,.2,1) both}.card-cell.revealed:before{display:none}.card-cell.revealed .cell-label{position:absolute;inset:0;height:auto;font-size:.78rem}.card-cell.col-red{background:linear-gradient(180deg,#ff7683 0,var(--red) 55%,#b83a45 100%);color:#fff}.card-cell.col-blue{background:linear-gradient(180deg,#6c95ff 0,var(--blue) 55%,#2556c9 100%);color:#fff}.card-cell.col-neutral{background:linear-gradient(180deg,#d8cbad,#b8a98a);color:#2a1f10;text-shadow:none}.card-cell.col-black{background:linear-gradient(180deg,#2a2a2a,#0f0f0f);color:#fff}@keyframes reveal-pop{0%{transform:rotateX(-14deg) scale(.96);filter:brightness(1.25)}60%{transform:rotateX(4deg) scale(1.03)}to{transform:none;filter:none}}.clue-form{display:flex;gap:10px;align-items:center;padding:12px;background:var(--surface-white);border-radius:var(--r-lg);box-shadow:var(--shadow-pop-sm)}.clue-form input{background:#f4f3ef;color:var(--text-on-light);padding:12px 14px;border-radius:var(--r-md);border:2px solid transparent;flex:1 1;font-weight:700}.clue-form input:focus{border-color:var(--accent);background:#fff}.clue-form input[type=number]{width:80px;flex:0 0 auto}.word-card{position:relative;text-align:center;background:var(--surface-dark);color:var(--text-on-dark);border-radius:var(--r-xl);padding:40px 28px;box-shadow:var(--shadow-pop)}.word-card h2{font-size:2.8rem;margin:12px 0;letter-spacing:-.025em;font-weight:900}.word-card .difficulty{color:var(--muted-dark);margin-bottom:8px}.vote-grid h3{text-align:center;margin-bottom:14px;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.18)}.votes{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:14px;gap:14px}.vote-card{background:var(--surface-white);color:var(--text-on-light);padding:16px 12px;border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:var(--shadow-pop-sm);transition:transform .1s ease,box-shadow .2s ease;font-weight:800}.vote-card:hover:not(:disabled){transform:translateY(-3px) rotate(-.8deg);box-shadow:0 6px 0 rgba(0,0,0,.14),0 14px 24px rgba(0,0,0,.16)}.vote-card:active:not(:disabled){transform:translateY(1px)}.vote-card.selected{background:var(--gold);color:var(--gold-ink);box-shadow:0 6px 0 rgba(190,140,30,.55),0 0 28px rgba(255,200,87,.55);animation:vote-breathe 2.4s ease-in-out infinite}.vote-card:disabled{opacity:.45}.vote-card .tally{color:var(--muted);font-size:.78rem;font-weight:700}@keyframes vote-breathe{0%,to{box-shadow:0 6px 0 rgba(190,140,30,.55),0 0 28px rgba(255,200,87,.55)}50%{box-shadow:0 6px 0 rgba(190,140,30,.55),0 0 48px rgba(255,200,87,.8)}}.result{background:var(--surface-white);color:var(--text-on-light);padding:24px;border-radius:var(--r-lg);text-align:center;box-shadow:var(--shadow-pop);border-top:5px solid var(--ok)}.result h2{margin:0 0 10px}.result-banner{position:relative;overflow:hidden;background:var(--surface-dark);color:var(--text-on-dark);padding:14px 20px;border-radius:var(--r-lg);font-weight:800;box-shadow:var(--shadow-pop-sm);border-top:4px solid var(--accent)}.result-banner:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 40%,rgba(255,122,89,.22) 50%,transparent 60%);transform:translateX(-100%);animation:banner-sweep 4.5s ease-in-out .5s infinite;pointer-events:none}@keyframes banner-sweep{0%,60%,to{transform:translateX(-100%)}30%{transform:translateX(100%)}}.spinner{color:#fff;font-size:1.2rem;font-weight:800}.splash{position:fixed;inset:0;z-index:1000;justify-content:center;padding:32px;background:rgba(26,29,43,.82);backdrop-filter:saturate(1.2) blur(14px);-webkit-backdrop-filter:saturate(1.2) blur(14px);animation:splash-in .22s ease-out}.splash,.splash-inner{display:flex;align-items:center}.splash-inner{max-width:620px;width:100%;text-align:center;flex-direction:column;gap:18px;color:#fff}.splash.stats h2{font-size:2rem;line-height:1.3;margin:10px 0 4px;letter-spacing:-.02em;animation:line-in .35s cubic-bezier(.2,.8,.2,1)}.splash.stats .bar{width:320px;max-width:100%;height:10px;background:hsla(0,0%,100%,.16);border-radius:999px;overflow:hidden}.splash.stats .bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--gold));transition:width .15s linear}.splash.combo .combo-badge{color:var(--gold);font-weight:900;letter-spacing:.3em;font-size:.78rem;text-transform:uppercase}.splash.combo .combo-faces{display:flex;align-items:center;gap:28px;margin:16px 0 8px;animation:combo-in .5s cubic-bezier(.2,.8,.2,1)}.splash.combo .combo-face{display:flex;flex-direction:column;align-items:center;gap:10px;font-size:.95rem;color:#fff;font-weight:800}.splash.combo .combo-face .avatar-img{width:160px;height:160px;border-radius:24px;background:var(--surface-dark-2);box-shadow:0 0 0 4px #fff,0 12px 0 rgba(0,0,0,.2),0 16px 36px rgba(0,0,0,.5)}.splash.combo .combo-x{font-size:2rem;font-weight:900;color:var(--gold)}.splash.combo .combo-title{font-size:2.6rem;margin:14px 0 4px;letter-spacing:-.025em;font-weight:900;background:linear-gradient(90deg,#fff 20%,var(--accent-2) 50%,#fff 80%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:title-in .4s ease-out .1s both,sheen-pass 2.6s ease-in-out .45s}.combo-dots{display:flex;gap:8px;margin-top:10px}.combo-dots .dot{width:8px;height:8px;border-radius:50%;background:hsla(0,0%,100%,.25)}.combo-dots .dot.active{background:var(--accent)}@keyframes splash-in{0%{opacity:0}to{opacity:1}}@keyframes line-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes combo-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes title-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes sheen-pass{0%{background-position:220% 0}to{background-position:-120% 0}}.ach-popup{position:fixed;top:28px;left:50%;transform:translateX(-50%);z-index:1200;min-width:260px;max-width:380px;display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface-white);color:var(--text-on-light);border-radius:var(--r-pill);box-shadow:0 8px 0 rgba(190,140,30,.35),0 16px 40px rgba(0,0,0,.26),0 0 0 3px var(--gold);animation:ach-pop .55s cubic-bezier(.34,1.56,.64,1) both}.ach-popup-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(180deg,var(--gold-2),var(--gold));color:var(--gold-ink);font-size:1.2rem;font-weight:900;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.55),0 4px 10px rgba(255,200,87,.45);animation:ach-spin .7s cubic-bezier(.34,1.56,.64,1);flex-shrink:0}.ach-popup-body{min-width:0}.ach-popup-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.2em;color:var(--accent);font-weight:900}.ach-popup-title{font-size:1rem;font-weight:900;letter-spacing:-.01em}.ach-popup-desc,.ach-popup-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ach-popup-desc{font-size:.8rem;color:var(--muted);margin-top:1px;line-height:1.3;font-weight:700}@keyframes ach-pop{0%{opacity:0;transform:translate(-50%,-36px) scale(.6)}60%{opacity:1;transform:translate(-50%,6px) scale(1.05)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes ach-spin{0%{transform:rotate(-180deg) scale(.4)}to{transform:rotate(0) scale(1)}}.achievements .ach-tabs{display:flex;gap:4px;padding:4px;background:#f4f3ef;border-radius:var(--r-pill);margin-bottom:16px;overflow-x:auto}.achievements .ach-tab{background:transparent;color:var(--muted);padding:8px 16px;border:none;border-radius:var(--r-pill);font-size:.88rem;font-weight:800;white-space:nowrap;transition:color .15s ease,background .15s ease}.achievements .ach-tab:hover{color:var(--text-on-light)}.achievements .ach-tab.active{color:var(--gold-ink);background:linear-gradient(180deg,var(--gold-2),var(--gold));box-shadow:0 3px 0 rgba(190,140,30,.35)}.achievements .ach-summary{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.achievements .counters{display:flex;flex-wrap:wrap;gap:6px}.ach-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.ach-item{background:var(--surface-cream);border-radius:var(--r-md);padding:14px;display:flex;gap:12px;align-items:flex-start;box-shadow:var(--shadow-pop-sm)}.ach-item.got{border-left:5px solid var(--gold)}.ach-item.locked{opacity:.5}.ach-item .ach-title{font-weight:900;letter-spacing:-.01em}.ach-item .ach-desc{color:var(--muted);font-size:.85rem;margin-top:3px;line-height:1.4;font-weight:600}.right-drawer{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:88vw;z-index:100;background:var(--surface-white);color:var(--text-on-light);box-shadow:var(--shadow-3);transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);overflow-y:auto;padding:24px 20px}.room.ach-open .ach-drawer,.room.history-open .history-drawer{transform:translateX(0)}.right-drawer-backdrop{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in-drawer .2s ease-out}@keyframes fade-in-drawer{0%{opacity:0}to{opacity:1}}.history h3{margin:0 0 14px}.history ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;max-height:360px;overflow:auto}.history li{display:grid;grid-template-columns:54px 24px 1fr;grid-gap:10px;gap:10px;align-items:center;padding:10px 14px;background:var(--surface-cream);border-radius:var(--r-md);font-size:.9rem;font-weight:700}.history .ts{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:700}.history .ic{text-align:center;color:var(--accent);font-weight:900}.lobby>*{animation:pop-in .5s cubic-bezier(.2,.8,.2,1) both}.lobby>:first-child{animation-delay:.02s}.lobby>:nth-child(2){animation-delay:.1s}.lobby>:nth-child(3){animation-delay:.18s}.lobby>:nth-child(4){animation-delay:.26s}.lobby>:nth-child(5){animation-delay:.34s}@keyframes pop-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.card,.current-player,.game-header,.question-card,.result,.result-banner,.word-card{animation:surface-in .45s cubic-bezier(.2,.8,.2,1) both}@keyframes surface-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}@media (max-width:900px){.main{padding:14px 14px 32px;gap:14px}.topbar{gap:6px;padding-top:4px}.topbar .ghost{padding:8px 12px;font-size:.82rem}.board{grid-template-columns:repeat(5,1fr);gap:6px;padding:8px}.codenames-panel{padding:10px}.card-cell{min-height:62px}.card-cell .cell-label,.card-cell:before{left:3px;right:3px;bottom:3px;height:18px}.card-cell .cell-label{font-size:.56rem;letter-spacing:.02em}.card-cell.revealed .cell-label{font-size:.56rem}.clue-form{flex-wrap:wrap;padding:10px;gap:8px}.clue-form input{flex:1 1 100%;min-width:0}.clue-form input[type=number]{flex:1 1 80px;width:auto}.clue-form .primary{flex:1 1 auto}.games{grid-template-columns:1fr 1fr}.teams{grid-template-columns:1fr}.splash.combo .combo-face .avatar-img{width:110px;height:110px;border-radius:18px}.splash.combo .combo-title{font-size:2rem}.splash.combo .combo-x{font-size:1.6rem}.votes{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}.title h1,.word-card h2{font-size:2.2rem}.ach-popup{left:12px;right:12px;transform:none;max-width:none;min-width:0}@keyframes ach-pop{0%{opacity:0;transform:translateY(-36px) scale(.9)}60%{opacity:1;transform:translateY(4px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}}@media (max-width:480px){.avatar-plate{width:112px;height:112px}.avatar-plate .avatar-img{width:96px;height:96px}.title h1{font-size:2rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}