:root{--night: #14123a;--night-2: #1d1a4d;--night-3: #2a2566;--ink: #fff6e6;--mute: #b9b3d9;--gold: #ffd36b;--gold-2: #f4a93a;--pink: #ff8fb1;--lav: #c3a8ff;--mint: #8ff0dc;--red: #ff6b6b;--outline: #0c0a24;--shadow: 0 6px 0 var(--outline), 0 12px 30px rgba(0, 0, 0, .45);--font: "Fredoka", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{margin:0;height:100%;background:var(--night);color:var(--ink);font-family:var(--font);overflow:hidden}body{overscroll-behavior:none;user-select:none;-webkit-user-select:none}h1{margin:0;font-weight:700;letter-spacing:.01em}p{margin:0;color:var(--mute)}img{-webkit-user-drag:none}[hidden]{display:none!important}.sky{background:radial-gradient(1.5px 1.5px at 12% 18%,#fff9 50%,transparent 52%),radial-gradient(1px 1px at 72% 12%,#fff8 50%,transparent 52%),radial-gradient(2px 2px at 86% 64%,#fff7 50%,transparent 52%),radial-gradient(1px 1px at 33% 78%,#fff6 50%,transparent 52%),radial-gradient(1.5px 1.5px at 55% 40%,#fff5 50%,transparent 52%),radial-gradient(1px 1px at 22% 52%,#fff7 50%,transparent 52%),radial-gradient(120% 90% at 50% 0%,var(--night-3),var(--night) 60%,#0c0b26)}button{font:inherit;cursor:pointer}.pillow{font-size:clamp(18px,1.6vw,30px);font-weight:700;color:#3a2207;background:linear-gradient(#ffe39a,var(--gold) 55%,var(--gold-2));border:3px solid var(--outline);border-radius:999px;padding:.6em 1.6em;box-shadow:0 6px 0 var(--outline),inset 0 -6px #0002,inset 0 4px #fff8;transition:transform .12s,box-shadow .12s}.pillow:hover:not(:disabled){transform:translateY(-2px)}.pillow:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px 0 var(--outline),inset 0 -4px #0002,inset 0 4px #fff8}.pillow:disabled{background:#4a4578;color:#9e98c6;cursor:default;box-shadow:0 6px 0 var(--outline)}#commit{position:fixed;right:12px;bottom:8px;font:12px ui-monospace,monospace;color:#8a84b8;z-index:50}.mute{position:fixed;left:14px;bottom:12px;z-index:50;width:44px;height:44px;border-radius:50%;border:2px solid #ffffff30;background:#0006 no-repeat center/22px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff6e6'%3E%3Cpath d='M4 9h4l5-4v14l-5-4H4z'/%3E%3Cpath d='M16 8.5a5 5 0 0 1 0 7M18.5 6a8.5 8.5 0 0 1 0 12' stroke='%23fff6e6' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")}.mute.off{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff6e6'%3E%3Cpath d='M4 9h4l5-4v14l-5-4H4z'/%3E%3Cpath d='M16 9l6 6M22 9l-6 6' stroke='%23ff8fb1' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E")}.menu{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;text-align:center}.menu img{width:min(520px,90vw);filter:drop-shadow(0 10px 24px #0008);animation:bob 4s ease-in-out infinite}.menu .pillow{width:min(320px,100%)}#game{position:absolute;inset:0;background:#07061a}#game canvas{display:block;width:100%!important;height:100%!important}.gate{position:absolute;inset:0;z-index:40;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4vh;background:linear-gradient(#0c0b2699,#0c0b26dd),center/cover url(../ui/title.webp);transition:opacity .6s;cursor:pointer}.gate.gone{opacity:0}.gate-logo{width:min(62vw,980px);filter:drop-shadow(0 14px 30px #000a);animation:pop .9s cubic-bezier(.2,1.6,.4,1) both,bob 4s 1s ease-in-out infinite}.gate-press{font-size:clamp(18px,1.8vw,32px);font-weight:600;color:var(--ink);animation:blink 1.6s ease-in-out infinite}.panel{position:absolute;inset:0;z-index:20}.panel.lobby,.panel.results{display:grid;grid-template-columns:1fr minmax(320px,30vw);grid-template-rows:auto 1fr;gap:2vh 3vw;padding:3vh 3vw 5vh;background:linear-gradient(180deg,#0c0b2699,#0c0b2633,#0c0b26cc 70%,#0c0b26f2),center/cover url(../ui/title.webp)}.lobby-logo{grid-column:1;grid-row:1;width:min(40vw,640px);filter:drop-shadow(0 10px 22px #000b);animation:bob 5s ease-in-out infinite}.lobby-roster{grid-column:1;grid-row:2;align-self:end;display:grid;grid-template-columns:repeat(3,1fr);gap:1.6vw}.lobby-side{grid-column:2;grid-row:1 / 3;align-self:end;display:flex;flex-direction:column;align-items:stretch;gap:2vh;text-align:center}.lobby-hint{font-size:clamp(14px,1.15vw,22px);color:var(--ink);display:flex;align-items:center;justify-content:center;gap:.4em;min-height:1.6em}.lobby-hint img{width:1.8em;height:1.8em}.lobby-hint b{color:var(--lav)}.lobby-small{font-size:clamp(12px,.85vw,16px)}.card{position:relative;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:.9vw;padding:1vh 1vw;border-radius:22px;background:#1d1a4dd9;border:3px solid var(--outline);box-shadow:var(--shadow);animation:pop .5s cubic-bezier(.2,1.5,.4,1) both}.card-face{grid-row:1 / 3;width:clamp(48px,5vw,96px);aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--night-3);border:4px solid var(--me, #ffffff20)}.card-face img{width:100%;height:100%;object-fit:cover}.card-name{font-size:clamp(16px,1.45vw,28px);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-kind{grid-column:2;font-size:clamp(11px,.9vw,17px);color:var(--mute)}.card-score{grid-column:3;grid-row:1 / 3;font-size:clamp(20px,2vw,38px);font-weight:700;color:var(--gold);display:flex;flex-direction:column;align-items:center;line-height:1}.card-score em{font-style:normal;font-size:.5em;color:var(--mint);animation:rise 1.4s ease-out both}.card.empty{background:#1d1a4d66;border-style:dashed;border-color:#ffffff30;box-shadow:none;animation:none}.card.empty .card-face{border-style:dashed;background:transparent}.card.empty .card-name{color:#fff5;font-weight:500}.card.won{background:linear-gradient(#3b3480e6,#1d1a4de6)}.card.won:after{content:"★";position:absolute;top:-.7em;right:.6em;font-size:clamp(18px,1.8vw,32px);color:var(--gold);text-shadow:0 3px 0 var(--outline)}.joincard{display:flex;gap:1.2vw;align-items:center;padding:1.4vh 1.2vw;border-radius:26px;background:#fff6e6;color:#2a2150;border:3px solid var(--outline);box-shadow:var(--shadow);text-align:left}.qr{width:clamp(110px,10vw,200px);flex:none}.qr svg{display:block;width:100%;height:auto}.joincard-text{display:flex;flex-direction:column;gap:.3em;font-size:clamp(12px,.95vw,18px);color:#6a6190}.joincard-text b{color:#2a2150;font-size:1.05em;word-break:break-all}.code{display:flex;gap:.3em;margin-top:.2em}.code i{font-style:normal;font-weight:700;font-size:clamp(24px,2.4vw,46px);width:1.25em;text-align:center;color:#2a2150;background:var(--gold);border:3px solid var(--outline);border-radius:12px;box-shadow:0 4px 0 var(--outline)}.results-banner{grid-column:1 / 3;grid-row:1;justify-self:center;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.4vh;margin-top:2vh}.results-banner img{width:clamp(80px,9vw,170px);filter:drop-shadow(0 8px 0 var(--outline));animation:pop .7s cubic-bezier(.2,1.6,.4,1) both,bob 3s .7s ease-in-out infinite}.results-banner h1{font-size:clamp(40px,6vw,110px);line-height:1;color:var(--gold);-webkit-text-stroke:3px var(--outline);text-shadow:0 8px 0 var(--outline);animation:pop .6s .15s cubic-bezier(.2,1.6,.4,1) both}.ghostwon .results-banner h1{color:var(--lav)}.results-banner p{font-size:clamp(16px,1.6vw,30px);color:var(--ink)}.results .lobby-roster{grid-column:1 / 3;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.results-next{position:absolute;right:3vw;bottom:4.5vh;font-size:clamp(14px,1.2vw,22px)}.results-next b{color:var(--gold)}.hud{position:absolute;top:0;left:0;right:0;height:64px;z-index:10;display:flex;align-items:center;padding:0 16px;pointer-events:none;background:linear-gradient(#0c0b26f0,#0c0b2600)}.hud-center{position:absolute;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:22px}.clock{display:flex;align-items:center;gap:8px;padding:4px 16px 4px 8px;border-radius:999px;background:#1d1a4d;border:3px solid var(--outline)}.clock .moon{width:26px;height:26px;border-radius:50%;box-shadow:inset -7px -3px 0 0 var(--gold);transform:rotate(-20deg)}.clock b{font-size:26px;font-variant-numeric:tabular-nums}.clock b.late{color:var(--pink);animation:blink 1s ease-in-out infinite}.ghostbar{display:flex;align-items:center;gap:8px}.ghostbar img{width:40px;height:40px;filter:drop-shadow(0 2px 0 var(--outline))}.ghostbar-track{width:200px;height:18px;border-radius:999px;background:#1d1a4d;border:3px solid var(--outline);overflow:hidden}.ghostbar-track i{display:block;height:100%;background:linear-gradient(90deg,#9d7dff,var(--lav));transition:width .2s}.ghostbar span{font-weight:600;color:var(--lav)}.hud-chips{display:flex;gap:8px}.chip{display:flex;align-items:center;gap:6px;padding:3px 12px 3px 3px;border-radius:999px;background:#1d1a4dd9;border:2px solid var(--me);font-weight:600;font-size:15px;transition:filter .3s,opacity .3s}.chip img{width:30px;height:30px;border-radius:50%;background:var(--night-3)}.chip.down{filter:grayscale(1);opacity:.55}.chip.down span:after{content:" zzz";color:var(--lav)}.intro{position:absolute;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;pointer-events:none;background:radial-gradient(circle,#0c0b2680,#0c0b26e6)}.intro-card{display:flex;flex-direction:column;align-items:center;gap:2vh;text-align:center;animation:pop .6s cubic-bezier(.2,1.4,.4,1) both}.intro-small{font-size:clamp(20px,2.4vw,44px);color:var(--mute);font-weight:500}.intro-big{font-size:clamp(36px,5vw,96px);font-weight:700;color:var(--ink);text-shadow:0 6px 0 var(--outline)}.intro-looks{display:flex;gap:3vw}.intro-looks img{width:clamp(90px,9vw,180px);filter:brightness(0) drop-shadow(0 0 20px #c3a8ff80);animation:bob 2.4s ease-in-out infinite}.intro-looks img:nth-child(2){animation-delay:-.8s}.intro-looks img:nth-child(3){animation-delay:-1.6s}.intro-left{font-size:clamp(28px,3.4vw,64px);color:var(--gold);font-weight:700}.looks{display:flex;flex-direction:column;gap:10px;width:min(380px,92vw)}.looks button{display:grid;grid-template-columns:64px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;text-align:left;padding:8px 12px;border-radius:18px;border:3px solid #3a3580;background:#1d1a4d;color:inherit;font-family:inherit;cursor:pointer;transition:transform .12s,border-color .12s}.looks button img{grid-row:span 2;width:64px;height:64px;border-radius:50%;object-fit:cover}.looks button b{font-size:20px}.looks button small{font-size:13px;color:var(--mute);line-height:1.25}.looks button:active{transform:scale(.96)}.looks button.mine{border-color:var(--lav, var(--gold));background:#2c2870;box-shadow:0 4px 0 var(--outline)}.pick-left{font-size:22px;color:var(--gold);font-weight:700;margin:0}.intro-ghost{display:flex;flex-direction:column;align-items:center;gap:1vh}.intro-ghost img{width:clamp(120px,14vw,260px);filter:brightness(0) drop-shadow(0 0 20px #c3a8ff80);transition:filter .5s}.intro-ghost b{font-size:clamp(40px,5.5vw,104px);color:var(--lav);-webkit-text-stroke:3px var(--outline);text-shadow:0 7px 0 var(--outline)}.intro-ghost.shown img{filter:drop-shadow(0 8px 0 var(--outline));animation:wobble .6s ease-out}.intro-ghost.shown b{animation:pop .5s cubic-bezier(.2,1.7,.4,1) both}.count{position:absolute;inset:0;z-index:15;display:flex;align-items:center;justify-content:center;pointer-events:none}.count span{font-size:clamp(120px,18vw,340px);font-weight:700;color:var(--gold);-webkit-text-stroke:6px var(--outline);text-shadow:0 14px 0 var(--outline);animation:count 1s ease-out both}.toasts{position:absolute;left:50%;bottom:4vh;transform:translate(-50%);z-index:12;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:6px 20px 6px 6px;border-radius:999px;background:#1d1a4df2;border:3px solid var(--outline);box-shadow:0 0 0 3px var(--me) inset,var(--shadow);font-size:clamp(16px,1.4vw,26px);font-weight:600;animation:pop .4s cubic-bezier(.2,1.6,.4,1) both;transition:opacity .5s,transform .5s}.toast img{width:2em;height:2em;border-radius:50%;background:var(--night-3)}.toast.out{opacity:0;transform:translateY(10px)}.phone{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));text-align:center}.phone-logo{width:min(320px,82vw);filter:drop-shadow(0 8px 18px #000a);animation:bob 4s ease-in-out infinite}.field{width:min(340px,100%);display:flex;flex-direction:column;gap:6px;text-align:left;font-weight:600;color:var(--mute);font-size:15px}.field input{font:inherit;font-size:22px;font-weight:600;color:var(--ink);background:#0c0b26;border:3px solid var(--outline);box-shadow:inset 0 3px #0006,0 0 0 2px #ffffff14;border-radius:16px;padding:12px 14px;width:100%;user-select:text;-webkit-user-select:text}.field input:focus{outline:none;box-shadow:inset 0 3px #0006,0 0 0 3px var(--gold)}.field #code{text-transform:uppercase;letter-spacing:.35em;text-align:center;font-size:30px}.phone .pillow{width:min(340px,100%);font-size:22px}.err{color:var(--pink);font-size:15px;min-height:20px}.me-face{width:min(180px,46vw);aspect-ratio:1;border-radius:50%;overflow:hidden;border:6px solid var(--me, var(--gold));background:var(--night-3);box-shadow:0 8px 0 var(--outline);animation:pop .6s cubic-bezier(.2,1.6,.4,1) both,bob 3.5s .6s ease-in-out infinite}.me-face img{width:100%;height:100%;object-fit:cover}.phone h1{font-size:clamp(26px,8vw,40px);line-height:1.1}.phone h1 em{font-style:normal;color:var(--gold)}.pick{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:360px}.pick button{width:92px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 4px 8px;border-radius:18px;border:3px solid #3a3580;background:#1d1a4d;color:inherit;font:600 14px/1.1 inherit;font-family:inherit;cursor:pointer;transition:transform .12s,border-color .12s}.pick button img{width:64px;height:64px;border-radius:50%;object-fit:cover}.pick button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pick button:active:not([disabled]){transform:scale(.94)}.pick button.mine{border-color:var(--me, var(--gold));background:#2c2870;box-shadow:0 4px 0 var(--outline)}.pick button[disabled]{opacity:.4;filter:grayscale(.8);cursor:default}.pick button[disabled] span{font-size:12px}.phone-map{position:absolute;inset:0}.pad{position:absolute;inset:0;touch-action:none;background:radial-gradient(120% 80% at 50% 110%,var(--night-3),var(--night) 70%)}.pad:after{content:"";position:absolute;inset:0;pointer-events:none;transition:box-shadow .3s}.pad[data-danger="1"]:after{box-shadow:inset 0 0 60px #ff6b6b44}.pad[data-danger="2"]:after{box-shadow:inset 0 0 90px #ff6b6b88}.pad[data-danger="3"]:after{box-shadow:inset 0 0 130px #ff4b4bcc;animation:throb .45s infinite alternate}.pad.monster{background:transparent}.pad-top{position:absolute;top:max(12px,env(safe-area-inset-top));left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;padding:0 16px}.pad-me{display:flex;align-items:center;gap:8px;padding:4px 16px 4px 4px;border-radius:999px;background:#1d1a4de6;border:3px solid var(--outline);font-weight:700;font-size:18px}.pad-me img{width:40px;height:40px;border-radius:50%;background:var(--night-3)}.hearts{display:flex;gap:10px;height:34px;align-items:center}.hearts i{width:28px;height:26px;background:#ffffff1c;clip-path:path("M14 25 C 5 18 0 13 0 7.5 A 7 7 0 0 1 14 5 A 7 7 0 0 1 28 7.5 C 28 13 23 18 14 25 Z");transition:background .2s,transform .2s}.hearts i.on{background:var(--red);animation:beat .5s infinite}.note{min-height:22px;font-size:16px;font-weight:600;color:var(--ink);text-shadow:0 2px 0 var(--outline)}.stick{position:absolute;width:140px;height:140px;margin:-70px 0 0 -70px;border-radius:50%;border:3px solid #ffffff40;background:#ffffff0d;pointer-events:none}.stick i{position:absolute;left:40px;top:40px;width:60px;height:60px;border-radius:50%;background:linear-gradient(#fff,#d9d2ff);border:3px solid var(--outline);box-shadow:0 4px 0 var(--outline)}.pad-hint{position:absolute;left:0;bottom:calc(max(30px,env(safe-area-inset-bottom)) + 120px);width:50%;text-align:center;font-size:14px;color:#fff5;pointer-events:none}.act{position:absolute;right:max(26px,env(safe-area-inset-right));bottom:max(30px,env(safe-area-inset-bottom));width:132px;height:132px;border-radius:50%;pointer-events:none;font:700 20px var(--font);color:#3a2207;border:3px solid var(--outline);box-shadow:0 7px 0 var(--outline);background:radial-gradient(circle at 50% 40%,#ffe9a8,var(--gold) 60%,var(--gold-2));display:grid;place-items:center;transition:transform .08s}.act:before{content:"";position:absolute;inset:-12px;border-radius:50%;background:conic-gradient(var(--mint) calc(var(--battery, 100) * 1%),#ffffff18 0);-webkit-mask:radial-gradient(circle,transparent 66px,#000 67px);mask:radial-gradient(circle,transparent 66px,#000 67px)}.act.held{transform:translateY(5px) scale(.96);box-shadow:0 2px 0 var(--outline),0 0 50px #ffe9a8aa}.act.locked{background:#4a4578;color:#9e98c6}.pad.monster .act{background:radial-gradient(circle at 50% 40%,#e6dbff,var(--lav) 60%,#8e6ff0);color:#2a1a55}.pad.monster .act:before{display:none}.act:disabled{opacity:.55}.alt{position:absolute;right:calc(max(26px,env(safe-area-inset-right)) + 150px);bottom:calc(max(30px,env(safe-area-inset-bottom)) + 8px);width:92px;height:92px;border-radius:50%;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font:700 18px/1 inherit;font-family:inherit;background:radial-gradient(circle at 50% 38%,#ffd9a3,var(--gold) 60%,#d08a2a);color:#3a2208;border:4px solid var(--outline);box-shadow:0 6px 0 var(--outline);transition:transform .1s}.alt small{font-size:12px;font-weight:600;opacity:.8;margin-top:3px}.alt.held{transform:translateY(4px) scale(.94);box-shadow:0 2px 0 var(--outline)}.alt:disabled{opacity:.45;filter:grayscale(.6)}.pad.monster .alt{background:radial-gradient(circle at 50% 38%,#ffc4dc,var(--pink) 60%,#c43d6b);color:#3a0a1e}@keyframes bob{50%{transform:translateY(-8px)}}@keyframes pop{0%{transform:scale(.6);opacity:0}}@keyframes blink{50%{opacity:.45}}@keyframes rise{0%{transform:translateY(10px);opacity:0}}@keyframes wobble{30%{transform:rotate(-8deg) scale(1.1)}60%{transform:rotate(6deg)}}@keyframes count{0%{transform:scale(1.8);opacity:0}25%{transform:scale(1);opacity:1}to{transform:scale(.85);opacity:.1}}@keyframes throb{to{box-shadow:inset 0 0 170px #ff3b3b}}@keyframes beat{30%{transform:scale(1.25)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important}}.ghostbar-track.lives{position:relative}.ghostbar-track.lives i{background:linear-gradient(90deg,var(--pink),var(--lav))}.ghostbar-track.lives:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(100% / var(--lives, 3) - 3px),var(--outline) 0 calc(100% / var(--lives, 3)))}.shrieking #game{animation:shriek .09s linear infinite alternate}@keyframes shriek{0%{transform:translate(-3px,1px);filter:hue-rotate(-20deg) saturate(1.4)}to{transform:translate(3px,-2px);filter:none}}.bots{display:flex;align-items:center;gap:8px;font-weight:600;font-size:clamp(13px,.95vw,18px);flex-wrap:wrap;justify-content:center}.bots button{font:inherit;font-family:inherit;color:var(--ink);background:#1d1a4d;border:2px solid #3a3580;border-radius:999px;padding:3px 12px;cursor:pointer;text-transform:capitalize}.bots>button{width:34px;padding:3px 0;font-weight:700}.bots button:disabled{opacity:.35;cursor:default}.bots button.on{background:var(--gold);color:#3a2207;border-color:var(--outline)}.bots-level{display:inline-flex;gap:4px;margin-left:6px}.fullscreen{position:fixed;z-index:50;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:var(--ink);background:#1d1a4dd9;border:2px solid #3a3580;cursor:pointer;touch-action:manipulation}.fullscreen.on svg{transform:rotate(180deg)}.fstip{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:#07061acc}.fstip>div{max-width:340px;padding:22px;border-radius:22px;background:var(--night-2);border:3px solid var(--outline);text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center;font-size:17px}.fstip p{margin:0;line-height:1.4;color:var(--mute)}.fstip .share{display:inline-block;width:14px;height:18px;border:2px solid currentColor;border-top:none;border-radius:0 0 3px 3px;vertical-align:-3px;position:relative}.fstip .share:before{content:"↑";position:absolute;left:50%;top:-9px;transform:translate(-50%);font-size:13px;font-weight:700}.fstip .pillow{width:auto;padding:10px 28px;font-size:18px}.card-ready{display:inline-block;margin-left:4px;padding:0 8px;border-radius:999px;font-size:.85em;background:#ffffff1a;color:var(--mute)}.card-ready.on{background:var(--mint);color:#0f3a33}.card-kick{position:absolute;top:-8px;right:-8px;width:26px;height:26px;border-radius:50%;border:2px solid var(--outline);background:#3a3580;color:var(--ink);font:700 16px/1 inherit;font-family:inherit;cursor:pointer;opacity:.5;transition:opacity .15s}.card:hover .card-kick,.card-kick:focus{opacity:1}.rounds{display:flex;align-items:center;gap:6px;font-weight:600;font-size:clamp(13px,.95vw,18px);flex-wrap:wrap;justify-content:center}.rounds button{font:inherit;font-family:inherit;color:var(--ink);background:#1d1a4d;border:2px solid #3a3580;border-radius:999px;min-width:36px;padding:3px 10px;cursor:pointer}.rounds button.on{background:var(--gold);color:#3a2207;border-color:var(--outline)}.rounds.maps{max-width:100%}.rounds .maker{color:var(--mint);font-size:.9em;text-decoration:none;border:2px dashed #3a3580;border-radius:999px;padding:3px 10px}.rounds .maker:hover{border-color:var(--mint)}.rounds-ready{margin-left:8px;color:var(--mute);font-weight:500}.results-count{margin-left:12px;color:var(--mute)}.pillow.small{font-size:clamp(13px,1vw,18px);padding:6px 16px;margin-left:12px}.final{position:absolute;left:50%;bottom:13vh;transform:translate(-50%);font-size:clamp(18px,1.8vw,34px);font-weight:700;padding:10px 26px;border-radius:999px;background:#1d1a4de6;border:3px solid var(--gold);white-space:nowrap}.final b{color:var(--gold)}.phone .pillow.ready{background:linear-gradient(#c8fff2,var(--mint) 60%,#4fcfb4)}.phone .small{font-size:14px;color:var(--mute);margin:0}.site-note{max-width:320px;text-align:center;line-height:1.4}.zoombtn{position:absolute;z-index:5;left:max(12px,env(safe-area-inset-left));bottom:calc(max(30px,env(safe-area-inset-bottom)) + 110px);padding:8px 14px;border-radius:999px;font:700 15px/1 inherit;font-family:inherit;color:var(--ink);background:#1d1a4de6;border:2px solid #3a3580}.intro-ghost b small{display:block;font-size:.42em;text-align:center;color:var(--ink);-webkit-text-stroke:2px var(--outline)}.pad.villager{background:linear-gradient(180deg,#0c0b2633 0%,transparent 25%,transparent 60%,#0c0b26cc 100%)}.minihud{position:absolute;top:0;left:0;right:0;height:64px;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 20px;pointer-events:none;font-size:clamp(16px,1.3vw,26px);font-weight:700;color:var(--ink);text-shadow:0 3px 0 var(--outline)}.minihud #mininame{color:var(--gold)}.minihud #minibanner{position:absolute;left:50%;transform:translate(-50%);white-space:nowrap;background:#1d1a4de6;border:3px solid var(--outline);border-radius:999px;padding:4px 18px;text-shadow:none}.intro-how{max-width:60vw;color:var(--ink)}.intro-keys{font-size:clamp(14px,1.4vw,26px)}.intro-keys b{color:var(--gold)}.lobby-how{font-size:clamp(13px,1vw,19px);color:var(--mute);text-align:center;max-width:36em;margin:0}.rounds.games button.on{background:var(--mint)}.pad.mini .act:before{display:none}.pad.mini .act:disabled,.pad.mini .alt:disabled{opacity:.45}.pad.mini.monster{background:radial-gradient(120% 80% at 50% 110%,#3a2a6e,var(--night) 70%)}.rounds.songs button{font-size:.85em}.games{display:grid;grid-template-columns:repeat(4,1fr);gap:.6vw}.games button{position:relative;padding:0;border:3px solid var(--outline);border-radius:14px;overflow:hidden;cursor:pointer;background:#1d1a4d;aspect-ratio:8 / 5;box-shadow:0 3px 0 var(--outline);transition:transform .15s,box-shadow .15s,filter .15s;filter:saturate(.75) brightness(.8)}.games button img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.games button span{position:absolute;left:0;right:0;bottom:0;padding:2px 4px 3px;font:inherit;font-weight:700;font-size:clamp(10px,.7vw,15px);color:var(--ink);background:linear-gradient(transparent,#0c0b26e6 45%);text-shadow:0 2px 0 var(--outline);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.games button:hover{filter:none;transform:translateY(-2px)}.games button.on{filter:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold),0 4px 0 var(--outline);transform:translateY(-2px)}.games button.on span{color:var(--gold)}.games.picking button:not(.on){filter:grayscale(1) brightness(.5)}.games.picking button.on:after{content:"✓";position:absolute;top:4px;right:6px;width:1.5em;height:1.5em;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:var(--outline);font-weight:800;font-size:clamp(10px,.8vw,16px);border:2px solid var(--outline)}.pad.mini,.pad.mini.monster{background:linear-gradient(180deg,#0c0b26aa 0%,transparent 18%,transparent 62%,#0c0b26b3 100%)}.pad.mini .pad-hint{display:none}.soundbtn{position:absolute;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));z-index:3;font:600 13px/1 inherit;font-family:inherit;color:var(--ink);background:#1d1a4de6;border:2px solid #3a3580;border-radius:999px;padding:7px 12px}.soundbtn.on{border-color:var(--mint);color:var(--mint)}.compact .panel.lobby,.compact .panel.results{display:flex;flex-direction:column;align-items:stretch;gap:14px;padding:14px 16px 28px;overflow-y:auto;-webkit-overflow-scrolling:touch}.compact .lobby-logo{width:min(70vw,320px);align-self:center}.compact .lobby-roster{grid-template-columns:repeat(2,1fr);gap:8px;align-self:stretch}.compact .results .lobby-roster{grid-template-columns:repeat(2,1fr)}.compact .lobby-side{gap:12px}.compact .lobby-side .lobby-small,.compact .lobby-hint{font-size:13px}.compact .games{gap:6px}.compact .games button span{font-size:11px}.compact .joincard .qr{width:96px}.compact .results-next{position:static;text-align:center}.compact .results-banner h1{font-size:40px}.compact .card{min-height:0}.selfbtns{display:flex;gap:10px}.selfbtns button{flex:1}.selfview{position:fixed;inset:0;z-index:60;background:var(--night, #14112e)}.selfview[hidden],.selfmenu[hidden]{display:none}.selfmenu{position:fixed;z-index:61;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%)}.scoreboard{width:100%;max-width:440px;display:flex;flex-direction:column;gap:12px;text-align:left}.sb-top{display:flex;align-items:center;gap:14px}.sb-me{width:84px;height:84px;border-radius:50%;border:5px solid var(--gold);background:var(--night-3);box-shadow:0 6px 0 var(--outline);flex:none;animation:pop .6s cubic-bezier(.2,1.6,.4,1) both}.sb-top h1{margin:0}.sb-top p{margin:4px 0 0;color:var(--ink);font-size:15px}.sb-top small{color:var(--mute)}.sb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.sb-list li{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;background:var(--night-3, #2a2560);border:3px solid var(--outline);box-shadow:0 3px 0 var(--outline)}.sb-list li.mine{border-color:var(--me);box-shadow:0 0 0 2px var(--me),0 3px 0 var(--outline)}.sb-list li.won .sb-name:after{content:" ★";color:var(--gold)}.sb-rank{width:1.4em;font-weight:800;color:var(--mute);text-align:center}.sb-list li:first-child .sb-rank{color:var(--gold)}.sb-list img{width:40px;height:40px;border-radius:50%;background:#0003;flex:none}.sb-name{flex:1;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-name small{font-weight:500;color:var(--mute)}.sb-score{font-weight:800;font-size:20px;color:var(--gold)}.sb-score em{font-style:normal;font-size:13px;color:var(--mint, #8ff0dc);margin-left:4px}.sb-champ{text-align:center;font-size:18px;color:var(--ink)}.sb-champ b{color:var(--gold)}
