: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{flex:1;overflow-y:auto;width:100%;max-width:440px;margin:0 auto;padding:28px 16px 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}.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{flex:1;min-height:0;display:flex;flex-direction:column;max-width:480px;width:100%;margin:0 auto}.player-bar{display:flex;align-items:center;gap:10px;padding:10px 16px;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 16px 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%;bottom:calc(12px + env(safe-area-inset-bottom,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}}
