:root{--bg: #14121f;--surface: #1f1c2e;--surface-2: #2a2640;--line: #3a3556;--text: #f4f1ea;--muted: #a39fb8;--accent: #ffd23f;--accent-ink: #231c00;--win: #4fd1c5;--lose: #ff6b6b;--opt0: #5ab0ff;--opt1: #ff9f43;--radius: 14px;--vvh: 100dvh;--vvt: 0px;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,system-ui,sans-serif;font-size:16px;line-height:1.45;-webkit-text-size-adjust:100%;word-break:keep-all}.app{position:fixed;left:0;right:0;top:var(--vvt);height:var(--vvh);display:flex;flex-direction:column;overflow:hidden;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) 0 env(safe-area-inset-left,0px)}button,input{font:inherit;color:inherit}button{border:0;border-radius:var(--radius);cursor:pointer;touch-action:manipulation}button:disabled{opacity:.4;cursor:default}input{font-size:16px;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius);padding:13px 14px;outline:none;min-width:0;width:100%}input:focus{border-color:var(--accent)}a{color:var(--accent)}.primary{background:var(--accent);color:var(--accent-ink);font-weight:800;padding:15px 22px;font-size:17px}.primary.big{font-size:clamp(18px,2vw,28px);padding:.7em 1.6em}.secondary{background:var(--surface-2);padding:13px 20px;font-weight:700}.ghost{background:none;color:var(--muted);padding:10px;text-align:center;text-decoration:none}.small{font-size:13px}.sub{color:var(--muted);font-size:14px;margin:4px 0}.sub.big{font-size:clamp(16px,2vw,28px)}kbd{font:inherit;font-size:.6em;opacity:.6;border:1px solid currentColor;border-radius:6px;padding:0 .4em;margin-left:.4em}.entry{--col: 440px;flex:1;overflow-y:auto;width:100%;padding:28px max(16px,calc((100% - var(--col)) / 2)) calc(24px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px}.brand{text-align:center;margin:12px 0 4px}.brand h1{margin:0;font-size:36px;font-weight:900;color:var(--accent)}.brand p{margin:6px 0 0;color:var(--muted)}.eyebrow{margin:0;font-size:13px;color:var(--muted)}.room-code{letter-spacing:8px;font-size:52px!important}.card{display:grid;gap:10px;padding:16px;background:var(--surface);border-radius:18px}.card h2{margin:0;font-size:17px}.code-input{text-align:center;font-size:28px;font-weight:800;letter-spacing:10px}.notice.warn{margin:0;padding:10px 12px;border-radius:var(--radius);background:#ff6b6b1f;color:var(--lose);text-align:center}.legal{text-align:center;font-size:12px}.legal a{color:var(--muted)}.host{flex:1;min-height:0;display:flex;flex-direction:column;font-size:clamp(14px,1.3vw,22px)}.host-bar{display:flex;align-items:center;gap:16px;padding:10px 20px;border-bottom:1px solid var(--surface-2)}.host-bar .title{font-weight:800;font-size:1.2em}.host-bar .title em{font-style:normal;color:var(--muted);margin-left:12px;font-size:.85em}.host-bar .stop{padding:4px 12px;border-radius:99px;background:var(--surface-2);color:var(--muted);font-size:.85em}.stop-ask{display:inline-flex;gap:8px;align-items:center;color:var(--lose);font-size:.9em}.stop-ask button{padding:4px 12px;background:var(--surface-2)}.late-join{margin-left:auto;display:flex;align-items:center;gap:10px;color:var(--muted)}.late-join b{color:var(--text)}.tools{display:flex;gap:6px}.tools button{width:2.2em;height:2.2em;border-radius:50%;background:var(--surface-2)}.qr svg{display:block;width:100%;height:auto;border-radius:8px}.qr.mini{width:44px}.qr.big{width:min(32vh,26vw)}.lobby{flex:1;min-height:0;display:grid;grid-template:"join games" auto "join players" minmax(0,1fr) / auto minmax(0,1fr);gap:20px;padding:20px}.join-panel{grid-area:join;display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px;background:var(--surface);border-radius:24px}.join-url{margin:4px 0 0;font-size:1.1em;color:var(--muted)}.join-url b,.join-code b{color:var(--accent)}.join-code{margin:0;font-size:1.6em;font-weight:800}.join-code b{letter-spacing:.15em}.games-panel{grid-area:games}.games-panel header,.players-panel h2{display:flex;align-items:center;gap:12px;margin:0 0 10px}.games-panel h2{margin:0}.seg{display:inline-flex;background:var(--surface);border-radius:99px;padding:3px}.seg button{background:none;padding:6px 14px;border-radius:99px;color:var(--muted);font-weight:700}.seg button.on{background:var(--accent);color:var(--accent-ink)}.game-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(10em,1fr));gap:10px}.game-card{width:100%;height:100%;display:grid;justify-items:start;gap:2px;padding:12px 14px;text-align:left;background:var(--surface);border:1.5px solid var(--line);position:relative}.game-card:not(:disabled):hover{border-color:var(--accent)}.game-card .emoji{font-size:1.6em}.game-card .pitch{font-size:.8em;color:var(--muted)}.game-card .level{position:absolute;top:10px;right:12px;font-size:.7em;color:var(--accent)}.game-card.soon{opacity:.45}.players-panel{grid-area:players;min-height:0;overflow-y:auto}.players-panel h2 b{color:var(--accent)}.chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--surface-2);padding:6px 14px;border-radius:99px;font-weight:700;animation:pop-in .3s ease-out}.chip em{font-style:normal;color:var(--accent);margin-left:6px}.chips .away .chip{opacity:.4}.kick-ask{display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border-radius:99px;background:#ff6b6b26;color:var(--lose)}.kick-ask button{padding:2px 10px;background:var(--surface-2)}@keyframes pop-in{0%{transform:scale(.6);opacity:0}}.intro,.question,.reveal,.final{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:18px;padding:24px 5vw;text-align:center}.intro .emoji{font-size:5em;margin:0}.intro h1,.final h1{margin:0;font-size:3em}.rules{text-align:left;font-size:1.4em;display:grid;gap:.4em;max-width:36em}.actions{display:flex;gap:12px;align-items:center}.prompt{margin:0;font-size:clamp(28px,4.2vw,72px);line-height:1.2;max-width:20em}.options{list-style:none;margin:0;padding:0;display:flex;gap:3vw;width:100%;justify-content:center}.opt{flex:1;max-width:36vw;padding:1em;border-radius:24px;font-size:2.2em;font-weight:900;color:#14121f}.opt-0{background:var(--opt0)}.opt-1{background:var(--opt1)}.timer{position:relative;width:min(900px,80vw);height:18px;border-radius:99px;background:var(--surface-2);overflow:hidden}.timer i{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);transform-origin:left;transition:transform .1s linear}.timer-row{display:flex;align-items:center;gap:16px}.timer-row .seconds{min-width:2ch;font-size:2em;font-variant-numeric:tabular-nums}.timer-row.urgent i{background:var(--lose)}.timer-row.urgent .seconds{color:var(--lose)}.answered{margin:0;font-size:1.6em;color:var(--muted)}.answered b{color:var(--text);font-size:1.4em}.headline{margin:0;font-size:clamp(28px,4vw,64px);animation:pop-in .5s cubic-bezier(.2,1.6,.4,1) .7s both}.bars{list-style:none;margin:0;padding:0;width:min(1100px,90vw);display:grid;gap:10px}.bars li{display:grid;grid-template-columns:9em minmax(0,1fr);grid-template-rows:auto auto;column-gap:14px;align-items:center;text-align:left}.bars .label{grid-row:span 2;font-size:1.4em;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bars .bar{position:relative;height:1.8em}.bars .bar i{position:absolute;inset:0 auto 0 0;width:var(--w);min-width:6px;border-radius:8px;background:var(--surface-2);animation:grow .6s ease-out var(--d) both}.bars .bar b{position:relative;padding-left:10px;line-height:1.8em}.bars .win .bar i{background:var(--win)}.bars .lose .bar i{background:var(--lose);opacity:.6}.bars .nicks{font-size:.8em;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bars.long li{grid-template-columns:minmax(0,1fr)}.bars.long .label{grid-row:auto;white-space:normal;font-size:1.25em}.bars.long .label .note{display:inline;margin-left:10px}.bars .more{display:block;color:var(--muted)}@keyframes grow{0%{width:0}}.eliminated{margin:0;font-size:1.4em;color:var(--lose)}.podium{list-style:none;margin:0;padding:0;display:flex;gap:2vw;align-items:flex-end}.podium li{display:grid;justify-items:center;gap:4px;padding:1em 1.4em;background:var(--surface);border-radius:20px;animation:pop-in .5s ease-out both}.podium .rank-1{order:2;padding-bottom:2.4em;border:2px solid var(--accent)}.podium .rank-2{order:1;padding-bottom:1.6em}.podium .rank-3{order:3}.podium .medal{font-size:3em}.podium b{font-size:1.6em}.podium em{font-style:normal;color:var(--accent)}.rest{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;justify-content:center;max-width:1100px;color:var(--muted)}.rest em{font-style:normal;color:var(--accent)}.prompt.chosung{font-size:clamp(64px,12vw,200px);letter-spacing:.1em}.order-items{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.order-items li{padding:.5em 1em;border-radius:14px;background:var(--surface-2);font-size:1.6em;font-weight:800}.reject-panel{width:min(1100px,90vw);max-height:24vh;overflow-y:auto}.reject-panel ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.reject-panel button{padding:4px 12px;border-radius:99px;background:var(--surface);border:1px solid var(--line);font-size:.9em}.reject-panel button em{font-style:normal;color:var(--accent);margin-left:4px}.reject-panel button.rejected{text-decoration:line-through;color:var(--lose);border-color:var(--lose);opacity:.8}.stage-tag{margin:0;padding:4px 16px;border-radius:99px;font-weight:800;background:var(--surface-2)}.stage-tag.vote{background:var(--accent);color:var(--accent-ink)}.prompt.small{font-size:clamp(22px,3vw,44px)}.vote-options{margin:0;padding:0 0 0 1.4em;display:grid;grid-template-columns:repeat(auto-fit,minmax(14em,1fr));gap:8px 32px;width:min(1100px,90vw);text-align:left;font-size:1.5em;font-weight:800}.vote-options.three{grid-template-columns:1fr;font-size:2em;max-width:900px}.vote-options li::marker{color:var(--accent)}.bars .label .note{display:block;font-size:.55em;font-weight:600;color:var(--muted)}.bars .win .label .note{color:var(--win)}@media (max-width: 800px){.lobby{grid-template:"join" auto "games" auto "players" auto / minmax(0,1fr);overflow-y:auto}.qr.big{width:min(60vw,280px)}.late-join span{display:none}.options{flex-direction:column}.opt{max-width:none}}.player{--gutter: max(16px, calc((100% - 480px)/2 + 16px) );flex:1;min-height:0;display:flex;flex-direction:column;width:100%}.player-bar{display:flex;align-items:center;gap:10px;padding:10px var(--gutter);border-bottom:1px solid var(--surface-2)}.player-bar span{color:var(--accent);font-weight:800}.player-bar .ghost{margin-left:auto}.player-main{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;padding:16px var(--gutter) calc(16px + env(safe-area-inset-bottom,0px))}.center{margin:auto 0;text-align:center;display:grid;gap:8px;justify-items:center}.center h2{margin:0;font-size:30px}.big-emoji{font-size:64px;margin:0}.center .rules{font-size:15px}.answer{display:flex;flex-direction:column;gap:14px;margin:auto 0}.p-timer{margin:0;text-align:center;font-size:22px;font-weight:900}.p-timer.urgent{color:var(--lose)}.p-prompt{margin:0;text-align:center;font-size:22px}.p-prompt.small{font-size:16px;color:var(--muted)}.choices{display:grid;gap:12px}.choice-btn{min-height:22vh;font-size:26px;font-weight:900;color:#14121f;border:4px solid transparent;transition:transform .1s,opacity .15s}.choice-btn:active{transform:scale(.97)}.choice-btn.picked{border-color:var(--text);box-shadow:0 0 0 4px var(--bg),0 0 0 7px var(--text)}.choice-btn.dim{opacity:.4}.text-answer{display:flex;gap:8px}.text-answer input{font-size:20px}.submitted{text-align:center;margin:0;color:var(--muted)}.submitted b{color:var(--text)}.p-prompt.huge{font-size:56px;letter-spacing:.1em}.unit{align-self:center;color:var(--muted);white-space:nowrap}.num-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.num-grid .num{aspect-ratio:1;font-size:20px;font-weight:800;background:var(--surface-2)}.num-grid .num.picked,.pick-list .pick.picked{background:var(--accent);color:var(--accent-ink)}.pick-list{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.pick-list .pick{padding:14px 8px;font-size:17px;font-weight:700;background:var(--surface-2)}.order-list{display:grid;gap:8px}.order-item{display:flex;align-items:center;gap:12px;padding:14px;font-size:18px;font-weight:700;text-align:left;background:var(--surface-2)}.order-item .badge{width:30px;height:30px;flex:none;display:grid;place-items:center;border-radius:50%;border:2px dashed var(--line);font-weight:900}.order-item.picked .badge{border:0;background:var(--accent);color:var(--accent-ink)}.word-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.word-chips li{padding:4px 12px;border-radius:99px;background:var(--surface-2);font-weight:700;animation:pop-in .25s ease-out}.three{display:grid;gap:10px}.three-row{display:flex;gap:8px;align-items:center}.three-row .mark{flex:none;width:52px;height:48px;font-weight:900;background:var(--surface-2)}.three-row.lie .mark{background:var(--lose);color:#2a0808;font-size:14px}.three-row.lie input{border-color:var(--lose)}.vote-list{display:grid;gap:8px}.vote-opt{padding:16px;font-size:18px;font-weight:700;text-align:left;background:var(--surface-2);border:2px solid transparent}.vote-opt.picked{border-color:var(--accent);background:#ffd23f24}.result.good h2{color:var(--win)}.result.bad h2{color:var(--lose)}.reconnect{position:fixed;left:50%;top:10px;transform:translate(-50%);z-index:40;padding:8px 14px;border-radius:99px;background:var(--lose);color:#2a0808;font-weight:700;font-size:13px}.toasts{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:50;display:grid;gap:6px;width:min(420px,calc(100% - 32px))}.toast{padding:10px 14px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);text-align:center}.update-ready{position:fixed;left:50%;top:calc(8px + env(safe-area-inset-top,0px));transform:translate(-50%);z-index:60;padding:10px 16px;border-radius:99px;background:var(--accent);color:var(--accent-ink);font-weight:800}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:50}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.live{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:safe center;gap:16px;padding:24px 5vw;text-align:center}.live h1{margin:0;font-size:clamp(28px,3.6vw,60px)}.live h1 small{font-size:.45em;color:var(--muted)}.live-clock{margin:0;font-size:3em;font-weight:900;font-variant-numeric:tabular-nums}.live-clock.big{font-size:clamp(60px,9vw,150px);line-height:1}.live-clock.urgent{color:var(--lose);animation:pulse .5s ease-in-out infinite alternate}@keyframes pulse{to{transform:scale(1.08)}}.secondary.danger{color:var(--lose)}.bomb .topic{margin:0;font-size:1.6em;color:var(--muted)}.bomb .topic b{color:var(--accent);font-size:1.5em}.bomb-holder{margin:0;font-size:clamp(36px,6vw,96px);font-weight:900;animation:shake-bomb .4s ease-in-out infinite}@keyframes shake-bomb{25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.boom{margin:0;font-size:8em;line-height:1;animation:pop-in .4s cubic-bezier(.2,1.6,.4,1)}.said{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:1100px}.said li{padding:4px 12px;border-radius:99px;background:var(--surface-2);font-weight:700}.said small{margin-left:6px;color:var(--muted);font-weight:400}.teams{list-style:none;margin:0;padding:0;display:flex;gap:3vw}.teams li{display:grid;gap:4px;min-width:14em;padding:16px 24px;border-radius:20px;background:var(--surface);border:2px solid transparent}.teams li.on{border-color:var(--accent)}.team-score{font-size:3em;font-weight:900;color:var(--accent)}.teams small{color:var(--muted);font-size:.8em}.turn-result p{margin:4px 0;font-size:1.3em}.results{border-collapse:collapse;font-size:1.1em;max-width:1100px;text-align:left}.results td{padding:6px 12px;border-bottom:1px solid var(--surface-2)}.results .who{font-weight:800;white-space:nowrap}.results tr:not(.done){opacity:.6}.split{display:flex;gap:3vw;width:min(1100px,92vw);text-align:left}.split>*{flex:1}.scoreboard{margin:0;display:grid;gap:4px}.scoreboard span{display:inline-block;min-width:6em;font-weight:800}.scoreboard b{color:var(--accent);margin-right:2px}.catch-log{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:40vh;overflow-y:auto}.catch-log li{display:flex;gap:8px;align-items:center}.catch-log li.undone{text-decoration:line-through;opacity:.5}.catch-log button{margin-left:auto;padding:2px 10px;background:var(--surface-2);font-size:.8em}.word-reveal{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:center}.word-reveal b{color:var(--accent)}.escape-result{margin:0;font-size:2.4em;font-weight:900}.escape-answer{margin:0;font-size:clamp(60px,10vw,160px);font-weight:900;letter-spacing:.15em;color:var(--accent)}.escape-answer.small{font-size:48px}.all-hints{text-align:left;font-size:1.2em}.attempts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;font-size:1.4em}.attempts.small{font-size:15px}.attempts small{color:var(--muted);font-size:.7em}.bomb-phone.mine .p-prompt{color:var(--accent)}.bomb-phone.mine input{border-color:var(--lose);box-shadow:0 0 0 3px #ff6b6b4d}.secret-word{margin:12px 0;text-align:center;font-size:44px;color:var(--accent)}.got-pass{display:grid;grid-template-columns:2fr 1fr;gap:10px}.got-pass .got,.got-pass .pass{min-height:22vh;font-size:24px;font-weight:900}.got-pass .got{background:var(--win);color:#06302c}.got-pass .pass{background:var(--surface-2)}.team-line{display:flex;gap:16px;justify-content:center}.team-line .mine{color:var(--accent);font-weight:800}.mission-card{padding:24px 18px;border-radius:20px;background:var(--surface);border:2px dashed var(--accent);font-size:22px;font-weight:800;text-align:center}.big-btn{min-height:14vh;font-size:24px}.my-word{margin:0;text-align:center;font-size:18px}.my-word b{color:var(--muted)}.others{list-style:none;margin:0;padding:0;display:grid;gap:8px}.others li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:var(--surface)}.others .who{min-width:4.5em;color:var(--muted)}.others .word{font-size:20px}.others .catch{margin-left:auto;padding:8px 12px;background:var(--lose);color:#2a0808;font-weight:900}.hints{margin:0;padding-left:20px;display:grid;gap:8px;font-size:18px;font-weight:700}@media (max-width: 800px){.split,.teams{flex-direction:column}}.drawing{display:block;width:100%;height:auto;border-radius:12px}.phone-drawing{max-width:min(100%,50vh,max(140px,calc(var(--vvh, 100vh) - 300px)));margin:0 auto}.draw-phone{gap:10px}.draw-prompt{margin:0;text-align:center;font-size:17px;color:var(--muted)}.draw-prompt b{color:var(--accent);font-size:22px}.drawpad{display:grid;gap:8px;justify-items:center}.drawpad canvas{width:min(100%,52vh);aspect-ratio:1;border-radius:14px;background:#fff;touch-action:none;box-shadow:0 0 0 2px var(--line)}.pad-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:center}.swatch{width:30px;height:30px;border-radius:50%;border:2px solid var(--line);padding:0}.swatch.on{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--accent)}.pad-tools .width{width:36px;height:36px;display:grid;place-items:center;background:var(--surface-2)}.pad-tools .width i{display:block;border-radius:50%;background:var(--text)}.pad-tools .width.on{outline:2px solid var(--accent)}.pad-tools .undo{padding:8px 12px;background:var(--surface-2);font-weight:700}.book .pages{display:flex;gap:12px;align-items:stretch;justify-content:safe center;max-width:96vw;overflow-x:auto}.book .page{flex:none;display:grid;gap:6px;align-content:start;justify-items:center;width:clamp(140px,calc((94vw - var(--n, 5) * 12px) / var(--n, 5)),46vh);padding:10px;border-radius:18px;background:var(--surface);animation:pop-in .35s ease-out}.book .page small{color:var(--muted)}.book .page b{font-size:1.4em;margin:auto 0}.book .prompt-page{border:2px solid var(--accent)}.book-verdict{margin:0;font-size:2em;font-weight:900}.book-verdict.good{color:var(--win)}.account-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--radius);background:var(--surface)}.account-login{display:grid;justify-items:center;gap:8px;padding:12px;border-radius:var(--radius);background:var(--surface)}.account-login .sub{margin:0;text-align:center}.google-btn{min-height:44px;color-scheme:light}.dev-login{display:flex;gap:8px;width:100%}.card.center{justify-items:center;text-align:center}.spinner{width:36px;height:36px;border-radius:50%;border:4px solid var(--surface-2);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.school-mode{display:grid;gap:4px;padding:14px 16px;text-align:left;background:none;border:1.5px dashed var(--line);color:var(--text)}.school-mode small{color:var(--muted)}.player.is-host .player-main{padding-bottom:96px}.host-dock{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:8px;align-items:center;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1.5px solid var(--accent);max-width:480px;margin:0 auto}.host-dock .crown{flex:none;font-size:12px;color:var(--accent);font-weight:800}.host-dock button{flex:1;padding:12px 8px;font-weight:800;font-size:15px}.host-dock .go{background:var(--accent);color:var(--accent-ink);flex:2}.host-dock .plain{background:var(--surface-2)}.host-dock .stop{flex:none;width:44px}.host-dock .danger-btn{background:#ff6b6b33;color:var(--lose)}.host-dock .stop-ask{flex:2;font-size:13px;color:var(--lose)}.phone-lobby{display:grid;gap:14px}.share{display:grid;gap:8px;justify-items:center;padding:12px;border-radius:var(--radius);background:var(--surface)}.share-code{margin:0;font-size:18px}.share-code b{color:var(--accent);letter-spacing:.15em;font-size:26px}.share-actions{display:flex;gap:8px}.share-actions .plain{padding:8px 14px;background:var(--surface-2);font-weight:700}.phone-qr{width:min(70vw,260px)}.phone-players h2,.pick-head h2{margin:0 0 8px;font-size:16px}.phone-players h2 b{color:var(--accent)}.pick-head{display:flex;align-items:center;justify-content:space-between}.pick-head h2{margin:0}.phone-games{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.phone-game{width:100%;height:100%;display:grid;justify-items:start;gap:2px;padding:10px 12px;text-align:left;background:var(--surface);border:1.5px solid var(--line)}.phone-game .emoji{font-size:22px}.phone-game small{font-size:12px;color:var(--muted)}.phone-bars ul{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}.phone-bars li{display:grid;gap:2px}.phone-bars .label{font-weight:800}.phone-bars .label small{color:var(--muted);font-weight:400}.phone-bars .bar{position:relative;height:26px}.phone-bars .bar i{position:absolute;inset:0 auto 0 0;width:var(--w);min-width:4px;border-radius:6px;background:var(--surface-2);animation:grow .6s ease-out both}.phone-bars .bar b{position:relative;padding-left:8px;line-height:26px;font-size:13px}.phone-bars .win .bar i{background:var(--win)}.phone-bars .lose .bar i{background:var(--lose);opacity:.6}.phone-bars .nicks{font-size:12px;color:var(--muted)}.reject-panel.phone{width:auto;max-height:none;margin-top:12px}.phone-ranking{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}.phone-ranking li{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--surface)}.phone-ranking li.me{outline:2px solid var(--accent)}.phone-ranking .rank{width:2em;text-align:center;font-weight:900}.phone-ranking .who{font-weight:800}.phone-ranking em{margin-left:auto;font-style:normal;color:var(--accent)}.spy-results{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px;text-align:left;font-size:14px}.spy-results li:not(.done){opacity:.6}.turn-result.phone p{margin:2px 0;font-size:16px}.phone-book{display:grid;gap:10px}.phone-book h2{margin:0;text-align:center}.phone-book h2 small{color:var(--muted);font-size:14px}.phone-book .page{display:grid;gap:6px;justify-items:center;padding:10px;border-radius:16px;background:var(--surface);animation:pop-in .3s ease-out}.phone-book .page small{color:var(--muted)}.phone-book .page b{font-size:20px}.phone-book .prompt-page{border:2px solid var(--accent)}.phone-book .drawing{max-width:min(100%,44vh)}.chip:disabled{opacity:1;cursor:default}.chammallo-link{display:grid;gap:4px;padding:14px 16px;border-radius:var(--radius);background:var(--surface);color:var(--text);text-decoration:none}.chammallo-link small{color:var(--muted)}.away{flex:1;display:grid;place-content:center;justify-items:center;gap:12px;text-align:center}.away h1{margin:0;font-size:clamp(32px,5vw,72px)}.account-login .consent{color:var(--muted);font-weight:400;font-size:12px}.account-login .consent a{color:inherit}.sets .back{align-self:flex-start;padding:4px 0}.sets.editor{--col: 720px}.center-text{text-align:center}.kind-list,.set-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.kind-list .kind,.set-list button{width:100%;display:grid;gap:3px;text-align:left;padding:12px 14px;background:var(--surface-2)}.set-list button{background:var(--surface)}.kind-list small,.set-list small{color:var(--muted);font-size:13px}.set-list .games{font-size:12px}.editor-kind{margin:0;display:grid;gap:2px;font-size:20px}.editor-kind small{font-size:13px;font-weight:400;color:var(--muted)}.format p{margin:0}.format code{background:var(--surface-2);padding:2px 6px;border-radius:6px}.set-text{font:inherit;font-size:16px;line-height:1.6;color:inherit;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--radius);padding:12px 14px;min-height:240px;resize:vertical;outline:none}.set-text:focus{border-color:var(--accent)}.sub.bad{color:var(--lose)}.set-errors{margin:0;padding-left:18px;color:var(--lose);font-size:14px}.delete-ask{display:flex;gap:8px;align-items:center;justify-content:center}.set-picker{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;margin:8px 0}.set-picker label{display:flex;gap:8px;align-items:center;font-weight:700}.set-picker select{font:inherit;font-size:16px;color:inherit;background:var(--surface-2);border:1.5px solid var(--line);border-radius:var(--radius);padding:8px 10px;max-width:60vw}.set-picker a{font-size:14px}.player.is-host .drawpad canvas{width:min(100%,calc(var(--vvh, 100vh) - 420px));min-width:220px}.class-banner{margin:0 0 8px;font-weight:800;font-size:1.2em;color:var(--accent)}.players-panel .missing{margin:4px 0 10px;color:var(--muted);font-size:.9em}.pick-number{--col: 560px}.number-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:8px}.number-grid .num{width:100%;min-height:64px;display:grid;place-content:center;gap:2px;background:var(--surface);border:2px solid transparent}.number-grid .num b{font-size:22px}.number-grid .num small{color:var(--muted);font-size:12px}.number-grid .num.on{border-color:var(--accent);background:var(--surface-2)}.number-grid .num:disabled{opacity:.3}.teacher{flex:1;overflow-y:auto;padding:0 16px 40px}.teacher-bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;max-width:1100px;margin:0 auto;padding:14px 0}.teacher-bar h1{margin:0;font-size:20px}.teacher-login{max-width:480px;margin:40px auto;display:grid;gap:16px;text-align:center}.teacher-main{max-width:1100px;margin:0 auto;display:grid;gap:14px}.teacher-main.narrow{max-width:640px}.teacher-main h2{margin:0}.teacher-main .back{justify-self:start;padding:4px 0}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.row-gap{display:flex;gap:8px;flex-wrap:wrap}.class-cards,.session-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}.class-cards button,.session-list button{width:100%;display:grid;gap:4px;text-align:left;padding:16px;background:var(--surface)}.class-cards b{font-size:18px}.class-cards span,.session-list span{color:var(--muted);font-size:14px}.class-cards small{color:var(--muted);font-size:12px}.field{display:grid;gap:6px;font-weight:700}.privacy-note{margin:0;padding:10px 12px;border-radius:var(--radius);background:var(--surface);color:var(--muted);font-size:14px;line-height:1.5}.table-wrap{overflow-x:auto}.records{width:100%;border-collapse:collapse;font-size:15px}.records th,.records td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.records th{color:var(--muted);font-weight:600}.records tr.dim td{color:var(--muted)}.records td.warn{color:var(--lose)}.answers-table td.good{color:var(--win, #4fd1c5)}.answers-table td.wrong{color:var(--lose)}.answers-table td.none{color:var(--muted)}.answers-table em{margin-left:4px;font-style:normal;font-size:12px;opacity:.8}.game-record{padding:14px;border-radius:16px;background:var(--surface)}.game-record h3{margin:0 0 8px}.game-record h3 small{color:var(--muted);font-weight:400}.game-record .answers summary{cursor:pointer;margin:10px 0 4px;font-weight:700}.danger-zone{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:20px}.login-card{max-width:480px;margin:32px auto;padding:24px;border-radius:20px;background:var(--surface);display:grid;gap:16px}.login-card h2{margin:0;font-size:24px;text-align:center}.login-why ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;line-height:1.5}.login-why .sub{margin-top:12px;line-height:1.5}.login-actions{display:grid;gap:10px;justify-items:center;padding-top:8px;border-top:1px solid var(--line)}.login-actions .consent{color:var(--muted);font-size:12px}.login-actions .consent a{color:inherit}.login-actions .dev-login{display:flex;gap:8px;width:100%}.signed-in{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--muted)}.teacher-bar>:last-child{justify-self:end}.teacher-bar>:first-child{justify-self:start}@media (max-width: 640px){.teacher-bar{grid-template-columns:1fr auto}.teacher-bar>:first-child{display:none}.teacher-bar h1{font-size:17px}}.signed-in span{max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.retention{padding:12px 14px;border-radius:var(--radius);background:var(--surface);display:grid;gap:8px}.retention p{margin:0;line-height:1.5}.retention.warn{background:#ff6b6b1f;border:1px solid var(--lose)}.class-cards small.expiring{color:var(--lose);font-weight:700}.end-class-btn{margin-top:14px}.end-class{margin-top:14px;display:grid;gap:8px;text-align:center}.end-class p{margin:0;font-size:.9em}.class-over{margin:auto}.remote-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.remote-head h1{margin:4px 0 0;font-size:22px}.remote-phase{margin:0;font-weight:800;color:var(--accent)}.remote-prompt{margin:0;font-size:18px}.remote-pending{display:grid;gap:6px}.remote-all{margin:0;color:var(--win);font-weight:700}.remote-actions{display:grid;gap:8px}.remote-actions button{padding:16px;font-size:17px}.remote-end{display:grid;gap:8px;text-align:center;margin-top:8px}.class-cards li{display:grid;gap:4px}.live-badge{padding:10px;background:#ff6b6b26;color:var(--lose);font-weight:800}.report{display:grid;gap:12px}.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.report-grid>div,.quiz-rates{padding:14px;border-radius:16px;background:var(--surface)}.report h3{margin:0 0 8px;font-size:15px;color:var(--muted)}.big-num{margin:0;font-size:36px;font-weight:900}.big-num small{font-size:16px;color:var(--muted);font-weight:600}.plain-list{margin:0;padding:0;list-style:none;display:grid;gap:4px}.rate-row{display:grid;grid-template-columns:minmax(0,2fr) minmax(80px,1fr) 48px 40px;gap:10px;align-items:center;padding:4px 0}.rate-prompt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rate-bar{height:10px;border-radius:5px;background:var(--surface-2);overflow:hidden}.rate-bar i{display:block;height:100%;background:var(--win)}.rate-bar i.low{background:var(--lose)}.quiz-sets{display:grid;gap:12px}.records td.wrap{white-space:normal;min-width:120px}.rate-cell{display:inline-flex;align-items:center;gap:8px}.rate-cell .rate-bar{width:80px;display:inline-block}.records tr.clickable{cursor:pointer}.records tr.clickable:hover td{background:var(--surface-2)}.attendance td.here{color:var(--win);text-align:center}.attendance td.absent{color:var(--muted);text-align:center}.attendance th{text-align:center}.game-chip{display:inline-block;margin:2px 8px 2px 0}.game-chip em{font-style:normal;color:var(--lose)}.bad-text{color:var(--lose)}
