:root{--bg:#16110d;--bg-2:#211912;--panel:#2a2017;--panel-2:#36291d;--line:#4a3a2a;--text:#f6e7cf;--muted:#b9a68a;--brass:#c9a227;--teal:#2bb3a3;--hot:#e8452e;--dud:#cfc6b4;--danger:#c0392b;--midnight:#8e1f2a;--radius:14px;--safe-top:calc(var(--tg-safe-area-inset-top,env(safe-area-inset-top,0px)) + var(--tg-content-safe-area-inset-top,0px));--safe-bottom:calc(var(--tg-safe-area-inset-bottom,env(safe-area-inset-bottom,0px)) + var(--tg-content-safe-area-inset-bottom,0px));--app-h:var(--tg-viewport-stable-height,100dvh);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--text);overscroll-behavior:none;margin:0}body{-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;touch-action:manipulation;font:500 15px/1.35 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}#app{height:var(--app-h);max-width:520px;margin:0 auto;position:relative;overflow:hidden}h1,h2,h3{margin:0;line-height:1.15}button{font:inherit;color:inherit}img{display:block}.muted{color:var(--muted)}.screen{height:100%;padding:calc(var(--safe-top) + 10px) 16px calc(var(--safe-bottom) + 12px);background:radial-gradient(120% 70% at 50% 0%, #3a2a18 0%, var(--bg) 60%);flex-direction:column;gap:12px;display:flex;overflow-y:auto}.screen.center{text-align:center;justify-content:center;align-items:center;gap:20px}.btn{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel-2);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:52px;padding:12px 18px;font-size:16px;font-weight:700;transition:transform 80ms,filter .15s;display:flex;position:relative}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn small{opacity:.8;font-size:13px;font-weight:500}.btn-primary{color:#23180b;background:linear-gradient(#e0b83a,#b58e17);border-color:#e7c766}.btn-danger{background:var(--danger);border-color:#e05a4b}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-big{min-height:64px;font-size:18px}.btn-small{min-height:40px;padding:8px 12px;font-size:14px}.icon-btn{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:12px;flex:none;width:44px;height:44px;font-size:20px}.icon-btn.small{width:34px;height:34px;font-size:16px}.row{gap:10px;display:flex}.row>*{flex:1}.home{justify-content:space-between}.home-top{justify-content:space-between;align-items:center;display:flex}.lang-switch{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:3px;display:inline-flex}.lang-switch button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:9px;padding:8px 12px;font-weight:700}.lang-switch button.active{background:var(--brass);color:#23180b}.hero{text-align:center;flex-direction:column;align-items:center;gap:10px;display:flex}.hero h1{letter-spacing:.5px;color:var(--brass);text-shadow:0 2px #00000080,0 0 30px #c9a22744;font-size:34px}.hero-cast{gap:4px;margin-bottom:4px;display:flex}.bob{animation:1.6s ease-in-out infinite bob;display:inline-block}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.home-actions{flex-direction:column;gap:10px;display:flex}.join-row{gap:10px;display:flex}.join-row .btn{min-width:96px}.code-input{border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-2);min-width:0;min-height:52px;color:var(--text);letter-spacing:6px;text-align:center;text-transform:uppercase;-webkit-user-select:text;user-select:text;flex:1;font:800 22px/1 ui-monospace,SF Mono,Menlo,monospace}.code-input::placeholder{color:#6b5a45;letter-spacing:3px}.rules{text-align:left;gap:10px;margin:0 0 14px;padding-left:20px;display:grid}.modal-back{z-index:50;background:#000a;justify-content:center;align-items:flex-end;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--bg-2);border-top:1px solid var(--line);width:100%;max-width:520px;padding:20px 16px calc(var(--safe-bottom) + 16px);border-radius:20px 20px 0 0;gap:12px;animation:.2s ease-out up;display:grid}@keyframes up{0%{opacity:0;transform:translateY(40px)}}.toggle{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;width:100%;min-height:52px;padding:0 14px;display:flex}.toggle .pill{background:var(--line);border-radius:99px;padding:4px 10px;font-size:13px;font-weight:700}.toggle.is-on .pill{background:var(--teal);color:#08201d}.bar{justify-content:space-between;align-items:center;gap:10px;display:flex}.room-code{cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-end;padding:0;display:flex}.room-code small{color:var(--muted);font-size:12px}.room-code b{letter-spacing:4px;color:var(--brass);font:800 26px/1 ui-monospace,SF Mono,Menlo,monospace}.invite-row .btn{width:100%}.seats{gap:8px;margin:0;padding:0;list-style:none;display:grid}.seat{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);align-items:center;gap:10px;min-height:58px;padding:6px 10px;display:flex}.seat.mine{border-color:var(--brass)}.seat.empty{opacity:.7;border-style:dashed}.seat.empty .btn{margin-left:auto}.seat-avatar{border:2px dashed var(--line);border-radius:50%;flex:none;width:44px;height:44px}.seat-name{text-overflow:ellipsis;white-space:nowrap;flex-direction:column;flex:1;min-width:0;font-weight:700;display:flex;overflow:hidden}.tags{gap:6px;display:flex}.tags i,.tag{background:var(--line);color:var(--muted);border-radius:6px;padding:1px 6px;font-size:11px;font-style:normal;font-weight:600}.tags i.warn,.tag.warn{color:#ffd98a;background:#6b4a12}.ready{background:var(--line);border-radius:50%;place-items:center;width:32px;height:32px;font-weight:800;display:grid}.ready.yes{background:var(--teal);color:#08201d}.section-title{color:var(--muted);font-size:15px;font-weight:600}.picker{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.pick{border-radius:var(--radius);background:var(--panel);cursor:pointer;border:2px solid #0000;flex-direction:column;align-items:center;gap:2px;padding:6px 2px 8px;font-size:12px;font-weight:600;display:flex}.pick span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.pick.mine{border-color:var(--brass);background:var(--panel-2)}.pick.taken{opacity:.35}.catchphrase{text-align:center;color:var(--muted);margin:0;font-style:italic}.actions{gap:6px;margin-top:auto;display:grid}.hint{text-align:center;color:var(--muted);margin:0;font-size:13px}.quick-wait{border-radius:var(--radius);background:var(--panel);align-items:center;gap:14px;padding:12px;display:flex}.spinner{border:4px solid var(--line);border-top-color:var(--brass);border-radius:50%;flex:none;width:34px;height:34px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.game{gap:6px;padding-left:10px;padding-right:10px;overflow:hidden}.game-bar{flex:none}.round-info{flex-direction:column;align-items:center;gap:2px;display:flex}.scores{gap:8px;display:flex}.score{align-items:center;gap:2px;display:flex}.score.gone{opacity:.35}.score i{background:var(--line);border-radius:50%;width:7px;height:7px}.score i.won{background:var(--brass);box-shadow:0 0 6px var(--brass)}.stage{background:radial-gradient(60% 45% at 50% 46%,#6b4a22 0%,#3a2814 45%,#0000 75%),radial-gradient(100% 80% at 50% 0,#2a1d10,#120d09);border-radius:20px;flex:1;min-height:260px;position:relative;overflow:hidden;box-shadow:inset 0 0 60px #000c}.game.midnight .stage{background:radial-gradient(60% 45% at 50% 46%,#6b2228 0%,#3a1416 45%,#0000 75%),radial-gradient(100% 80% at 50% 0,#2a1014,#0e0809)}.table{opacity:.85;background:radial-gradient(closest-side,#8a5a2e,#5c3a1c 80%,#3d2612);border-radius:50%;position:absolute;top:32%;bottom:30%;left:8%;right:8%;box-shadow:0 14px 30px #000a,inset 0 -6px #2e1c0d}.stage canvas{position:absolute;top:0;bottom:0;left:0;right:0}.seat-label{z-index:2;text-align:center;cursor:pointer;background:#0009;border-radius:10px;flex-direction:column;align-items:center;gap:2px;min-width:70px;padding:2px 8px;transition:box-shadow .2s;display:flex;position:absolute;transform:translate(-50%)}.seat-label.current{box-shadow:0 0 0 2px var(--brass), 0 0 18px #c9a22788}.seat-label.targeted{box-shadow:0 0 0 2px var(--hot), 0 0 18px #e8452e88}.seat-label.dead{opacity:.55}.label-name{text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-size:13px;font-weight:700;overflow:hidden}.label-name i{color:var(--muted);font-style:normal;font-weight:500}.fallback-avatar{position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.crosshair{font-size:18px;animation:.7s ease-in-out infinite pulse;position:absolute;top:-14px;right:-10px}@keyframes pulse{50%{transform:scale(1.25)}}.feathers{gap:1px;display:flex}.feathers img.lost{opacity:.5}.turn-timer{background:var(--brass);color:#23180b;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:grid;position:absolute;top:-12px;left:-12px}.turn-timer.low{background:var(--hot);color:#fff;animation:.5s ease-in-out infinite pulse}.egg-rack{flex:none;justify-content:center;align-items:center;gap:6px;min-height:36px;display:flex}.eggs{align-items:flex-end;gap:3px;display:flex}.egg.spent{opacity:.2;filter:grayscale()}.count{font-size:18px}.count.hot{color:var(--hot)}.count.dud{color:var(--dud)}.sep{color:var(--muted)}.log{min-height:54px;color:var(--muted);text-align:center;flex:none;margin:0;padding:0;font-size:13px;list-style:none}.log li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;flex:none;align-content:center;gap:8px;height:172px;padding:10px;display:grid;position:relative;overflow:hidden}.panel.mine{border-color:var(--brass)}.panel-title{text-align:center;margin:0;font-size:16px;font-weight:700}.timer-bar{background:var(--brass);transform-origin:0;height:4px;transition:transform .2s linear;position:absolute;top:0;left:0;right:0}.timer-bar.low{background:var(--hot)}.targets{justify-content:center;gap:6px;display:flex}.target{border:2px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:12px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;min-width:0;min-height:50px;padding:4px 8px;font-size:13px;font-weight:700;display:flex}.target span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.target.self{border-style:dashed}.target.selected{border-color:var(--hot);background:#4a1f17}.btn-fire{border-color:var(--hot);touch-action:none;background:#5a1f17;min-height:60px;font-size:18px;overflow:hidden}.btn-fire .fill{transform-origin:0;background:linear-gradient(90deg,#e8452e,#ff8a1f);position:absolute;top:0;bottom:0;left:0;right:0}.btn-fire .label{position:relative}.panel.result{justify-items:center;animation:.25s cubic-bezier(.2,1.6,.4,1) pop-in}.panel.result b{letter-spacing:1px;font-size:26px;font-weight:900}.panel.result span{color:var(--muted);font-weight:600}.panel.result.hot{border-color:var(--hot);background:#3d160f}.panel.result.hot b{color:#ff6a4d;text-shadow:0 0 18px #e8452e}.panel.result.dud b{color:var(--dud)}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}}.dmg{color:#ff6a4d;text-shadow:0 2px #000,0 0 14px #e8452e;pointer-events:none;font-size:26px;font-weight:900;animation:.9s ease-out forwards float-up;position:absolute;top:-34px;left:50%;transform:translate(-50%)}@keyframes float-up{0%{opacity:0;transform:translate(-50%,10px)scale(.6)}20%{opacity:1;transform:translate(-50%)scale(1.2)}to{opacity:0;transform:translate(-50%,-30px)scale(1)}}.banner{z-index:20;pointer-events:none;border:2px solid var(--line);text-align:center;background:#000c;border-radius:18px;flex-direction:column;align-items:center;max-width:92%;padding:14px 22px;animation:.25s cubic-bezier(.2,1.6,.4,1) pop;display:flex;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.banner b{letter-spacing:1px;font-size:26px;font-weight:900}.banner span{color:var(--muted);font-weight:600}.banner.hot{border-color:var(--hot)}.banner.hot b{color:#ff6a4d;text-shadow:0 0 20px #e8452e}.banner.dud b{color:var(--dud)}.banner.midnight{background:#3a0d14ee;border-color:#e05a6b}.banner.midnight b{color:#ff8a9a;font-size:32px}.banner.loaded b,.banner.info b{font-size:20px}@keyframes pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}}.results{z-index:30;background:#000a;justify-content:center;align-items:center;padding:16px;animation:.3s ease-out fade;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes fade{0%{opacity:0}}.results-card{text-align:center;background:var(--bg-2);border:1px solid var(--line);border-radius:22px;flex-direction:column;align-items:center;gap:12px;width:100%;padding:20px 16px;display:flex}.results.final .results-card{border-color:var(--brass);box-shadow:0 0 40px #c9a22744}.results-card h2{color:var(--brass);font-size:24px}.final-scores{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.fs{background:var(--panel);border-radius:99px;align-items:center;gap:6px;padding:4px 10px 4px 4px;font-weight:600;display:flex}.fs.win{background:#4a3a12}.results-actions{gap:8px;width:100%;display:grid}.net-bar{top:calc(var(--safe-top) + 4px);z-index:60;color:#ffd98a;background:#6b4a12;border-radius:99px;padding:6px 14px;font-size:13px;font-weight:700;position:fixed;left:50%;transform:translate(-50%)}.toast{bottom:calc(var(--safe-bottom) + 100px);z-index:60;border:1px solid var(--line);text-align:center;background:#000d;border-radius:12px;max-width:90%;padding:10px 16px;font-weight:600;animation:.2s ease-out fade;position:fixed;left:50%;transform:translate(-50%)}.error-text{max-width:320px;font-size:17px}@media (min-height:760px){.stage{min-height:340px}}@media (prefers-reduced-motion:reduce){.bob,.crosshair,.turn-timer.low{animation:none}}.turn-of{justify-content:center;align-items:center;gap:10px;display:flex}.label-items{letter-spacing:1px;font-size:13px;line-height:1}.label-items .skip{margin-right:3px;font-style:normal;animation:1s ease-in-out infinite pulse}.egg-rack-wrap{flex:none;gap:2px;display:grid}.knowledge{flex-wrap:wrap;justify-content:center;gap:6px;font-size:13px;font-weight:700;display:flex}.knowledge .peek,.knowledge .claim{border-radius:99px;align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.knowledge .peek{border:1px solid var(--teal);color:#bff3ec;background:#123a36}.knowledge .peek small{opacity:.8;font-weight:500}.knowledge .claim{border:1px solid var(--brass);background:#3a2a12}.knowledge img{display:inline-block}.dir{color:var(--teal)}.panel-head{justify-content:center;align-items:center;gap:10px;display:flex}.my-items{gap:6px;display:flex}.item-btn{border:1px solid var(--brass);cursor:pointer;background:#3a2a12;border-radius:12px;place-items:center;width:40px;height:40px;padding:0;font-size:20px;animation:2s ease-in-out infinite item-glow;display:grid}@keyframes item-glow{50%{box-shadow:0 0 12px #c9a22788}}.claim-panel .hint{margin:0}.claim-panel img{vertical-align:middle;display:inline-block}.claim-hot{border-color:var(--hot);background:#5a1f17}.claim-dud{border-color:var(--dud);background:#3a352c}.bio-card{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);gap:4px;padding:12px 14px;display:grid}.bio-card b{color:var(--brass)}.bio-card q{color:var(--muted);font-style:italic}.bio-card p{color:var(--text);opacity:.9;margin:0;font-size:14px}.tabs{gap:6px;display:flex}.tabs button{border:1px solid var(--line);background:var(--panel);cursor:pointer;min-height:40px;color:var(--muted);border-radius:10px;flex:1;font-weight:700}.tabs button.active{background:var(--brass);color:#23180b;border-color:var(--brass)}.codex-list{gap:10px;max-height:58vh;padding-right:2px;display:grid;overflow-y:auto}.codex-row{border-radius:var(--radius);background:var(--panel);grid-template-columns:64px 1fr;align-items:start;gap:10px;padding:10px;display:grid}.codex-row .icon{text-align:center;font-size:40px;line-height:64px}.codex-row h4{margin:0 0 2px;font-size:16px}.codex-row q{color:var(--muted);margin-bottom:4px;font-size:13px;font-style:italic;display:block}.codex-row p{margin:0;font-size:14px}.story p{margin:0 0 10px}
