*{box-sizing:border-box;margin:0}html,body,#app{height:100%}body{font-family:Nunito,sans-serif;background:#140c16;color:#fff8f0;overflow:hidden;touch-action:manipulation}#stage{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;pointer-events:none}#chrome,#chrome *,.vignette,.rails,.bolt{pointer-events:none!important}#chrome{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1}.vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 45%,transparent 45%,#140c1688 100%),linear-gradient(180deg,#140c1640 0%,transparent 22%,transparent 70%,#140c1699 100%)}#chrome:after{display:none;content:"";position:absolute;left:50%;top:44%;width:min(78vw,560px);height:min(52vh,380px);transform:translate(-50%,-50%);background:radial-gradient(ellipse,#140c16f2,#140c1600 74%)}.rails{position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:2px solid #ffd00055;border-radius:28px;box-shadow:inset 0 0 40px #ff2d6a22,0 0 28px #ffd00022}.bolt{position:absolute;width:28px;height:28px;border:4px solid #ffd000;box-shadow:0 0 16px #ffd000aa}.bolt.tl{top:16px;left:16px;border-right:0;border-bottom:0}.bolt.tr{top:16px;right:16px;border-left:0;border-bottom:0}.bolt.bl{bottom:16px;left:16px;border-right:0;border-top:0}.bolt.br{bottom:16px;right:16px;border-left:0;border-top:0}#app{position:relative;z-index:4;height:100%;display:flex;flex-direction:column;pointer-events:auto}#toast{position:fixed;left:50%;bottom:calc(28px + env(safe-area-inset-bottom));z-index:8;transform:translate(-50%) rotate(-2deg);font-family:Lilita One,sans-serif;font-size:22px;letter-spacing:.12em;background:#ffd000;color:#1a0d12;padding:10px 18px 6px;border-radius:14px;box-shadow:0 6px #9a7400,0 0 24px #ffd00088}#toast[hidden]{display:none}.gate,.play{flex:1;display:flex;flex-direction:column;padding:22px 18px calc(18px + env(safe-area-inset-bottom))}.gate{max-width:520px;margin:0 auto;width:100%;justify-content:center;gap:6px;text-align:center;background:#1a0e20;border:3px solid #ffd000;border-radius:36px 16px;box-shadow:0 14px #9a7400,0 0 64px #ff2d6a55,inset 0 0 48px #ff2d6a1f;padding:28px 22px 26px;transform:none;backdrop-filter:none;-webkit-backdrop-filter:none}h1,h2,.kicker,.sub,.invite,.invite a,.invite strong,.invite em,label{text-shadow:none;-webkit-text-stroke:0;filter:none}.kicker{letter-spacing:.14em;font-size:13px;font-weight:900;color:#ff2d6a}h1{font-family:Lilita One,sans-serif;font-size:clamp(48px,12vw,80px);line-height:.95;color:#ffd000;transform:none}.sub{font-weight:800;opacity:.92;margin:8px 0 12px}label{display:block;text-align:left;font-size:11px;letter-spacing:.2em;font-weight:900;color:#ffd000;opacity:.9;margin-top:10px}input,textarea{width:100%;border:3px solid #ffd000;border-radius:18px;padding:14px 16px;font:900 22px Nunito,sans-serif;background:#fff8e8;color:#140c16;box-shadow:0 6px #9a7400}.gate #name{text-align:center;letter-spacing:.04em}.gate #code{font-family:Lilita One,sans-serif;font-size:clamp(40px,11vw,58px);letter-spacing:.28em;text-align:center;text-transform:uppercase;padding:10px 12px 6px}.gate #code::placeholder{font-family:Nunito,sans-serif;font-size:16px;letter-spacing:.04em;font-weight:800}.btn{border:0;border-radius:18px;padding:16px;font:900 20px Nunito,sans-serif;cursor:pointer;background:#ffd000;color:#1a0d12;width:100%;margin-top:12px;box-shadow:0 7px #9a7400;transform:rotate(-1deg)}.btn:active{transform:translateY(4px);box-shadow:0 3px #9a7400}.btn.ghost{background:#3de0ff;color:#102028;box-shadow:0 7px #1a6a7a;transform:rotate(1deg)}.err{color:#ff8aa8;min-height:1.2em;font-weight:800}.play{gap:10px}.bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0 6px}.play:has(#start) .bar{flex-direction:column;justify-content:center;text-align:center;gap:14px;padding-top:6px}.code{font-family:Lilita One,sans-serif;font-size:28px;letter-spacing:.14em;background:#ffd000;color:#1a0d12;padding:6px 14px 4px;border-radius:14px;box-shadow:0 5px #9a7400;position:relative;text-shadow:none;-webkit-text-stroke:0;filter:none}.play:has(#start) .code{font-size:clamp(52px,14vw,96px);letter-spacing:.16em;line-height:1;padding:14px 22px 8px;border-radius:22px;box-shadow:0 8px #9a7400;transform:none}.play:has(#start) .code:before{content:attr(data-room);position:absolute;top:-14px;left:50%;transform:translate(-50%);font-family:Nunito,sans-serif;font-size:12px;letter-spacing:.28em;background:#ff2d6a;color:#fff8f0;padding:4px 10px 3px;border-radius:8px;box-shadow:0 3px #8b1038;text-shadow:none}.invite{font-family:Nunito,sans-serif;font-size:15px;font-weight:800;opacity:1;word-break:break-all;max-width:min(92vw,520px);text-align:center;background:#fff8e8;color:#140c16;padding:12px 16px 10px;border-radius:16px;box-shadow:0 4px #9a7400;transform:none}.play:has(#start) .invite{max-width:min(92vw,520px)}.invite a{display:block;font-family:Nunito,sans-serif;font-weight:900;color:#140c16;text-decoration:none}.invite a strong{display:block;font-family:Nunito,sans-serif;font-size:clamp(16px,3.8vw,24px);letter-spacing:.01em;font-weight:900;color:#140c16}.invite a em{display:block;font-family:Nunito,sans-serif;font-style:normal;font-size:13px;font-weight:800;margin-top:2px;color:#5a3040}.invite:after{content:attr(data-hint);display:block;margin-top:4px;font-family:Nunito,sans-serif;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#8b1038}.people{display:flex;flex-wrap:wrap;gap:8px}.play:has(#start) .people{justify-content:center}.pill{display:flex;align-items:center;gap:6px;background:#000a;border-radius:999px;padding:7px 12px;font-weight:900;font-size:14px;box-shadow:0 3px #0005;border:2px solid #ffd00044}.dot{width:12px;height:12px;border-radius:50%;box-shadow:0 0 8px currentColor}.arena{grid-template-columns:minmax(0,1fr)}.arena :where(div,button,svg,canvas){max-width:100%}.play.ingame .invite{display:none}.arena{min-width:0;flex:1;display:grid;place-items:center;text-align:center;pointer-events:auto;position:relative;z-index:5}.arena .copy{background:#160a18;border:3px solid #ffd000;border-radius:24px;padding:18px 22px 16px;box-shadow:0 8px #9a7400;max-width:min(92vw,560px);isolation:isolate}.arena h2{font-family:Lilita One,sans-serif;font-size:clamp(32px,7vw,56px);line-height:1;color:#ffd000;transform:none}.arena p{font-size:20px;font-weight:800;margin-top:10px}.arena .hint{font-size:16px;opacity:.82}.play:has(#start) .arena h2{font-size:clamp(32px,7vw,52px);color:#ffd000}.live-err{min-height:1em;text-align:center;color:#ff8aa8;font-weight:800;text-shadow:none}.bot-tag{font-size:10px;letter-spacing:.08em;background:#3de0ff;color:#102028;border-radius:999px;padding:1px 6px}.pill.bot{border-color:#3de0ff88}.wait,.go{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:Lilita One,sans-serif;font-size:clamp(40px,9vw,80px);cursor:pointer;z-index:3}.wait{background:radial-gradient(circle at 50% 40%,#3b1458,#140c16 70%);color:#c46bff}.go{background:radial-gradient(circle at 50% 35%,#ffe566,#ff2d6a 68%);color:#1a0d12;animation:slam .18s cubic-bezier(.2,1.6,.3,1)}.grid{display:grid;gap:12px;width:min(92vw,400px)}.cell{aspect-ratio:1;border:0;border-radius:22px 8px;background:#2a1236;cursor:pointer;box-shadow:0 6px #0007,inset 0 0 0 2px #ff2d6a33;transform:rotate(-3deg);position:relative;z-index:7;pointer-events:auto}.cell:nth-child(2n){transform:rotate(3deg);border-radius:8px 22px}.cell.on{background:#ff2d6a;box-shadow:0 0 24px #ff2d6aaa,0 6px #8b1038}.cell.pick{background:#ffd000;box-shadow:0 0 20px #ffd00088,0 6px #9a7400}.aim-arena{position:relative;width:min(96vw,720px);height:min(58vh,420px);background:radial-gradient(circle at 50% 50%,#2a1450,#0c0814);border-radius:28px;overflow:hidden;box-shadow:0 10px #0007,inset 0 0 80px #ff2d6a22}.target{position:absolute;width:64px;height:64px;border:0;background:#ffd000;clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);transform:translate(-50%,-50%);filter:drop-shadow(0 0 12px #ffd000aa)}.num{font-family:Lilita One,sans-serif;font-size:clamp(52px,15vw,110px);letter-spacing:.1em;color:#ffd000;text-shadow:0 8px 0 #9a7400,0 0 28px #ffd00077;transform:rotate(-3deg)}.ticket{background:#fff8e8;color:#140c16;padding:18px 22px;border-radius:8px;box-shadow:0 10px #0006}.locked{font-family:Lilita One,sans-serif;font-size:42px;color:#3de0ff}.row{display:flex;gap:10px;width:100%}.play:has(#start) .row{max-width:560px;margin:0 auto}.tiny{font-size:13px;opacity:.7;font-weight:800}.party{width:100%;max-width:520px;display:grid;gap:12px;place-items:center;position:relative;z-index:6;pointer-events:auto}.mash{border:0;width:min(92vw,420px);min-height:120px;border-radius:28px;background:#ffd000;color:#1a0d12;font:900 42px Lilita One,sans-serif;box-shadow:0 10px #9a7400;cursor:pointer;position:relative;z-index:7;pointer-events:auto}.mash:active{transform:translateY(6px);box-shadow:0 4px #9a7400}.rope{position:relative;width:100%;height:22px;border-radius:999px;background:#2a1236;box-shadow:inset 0 0 0 3px #ffd00066}.rope i{position:absolute;top:-10px;width:28px;height:40px;margin-left:-14px;border-radius:8px;background:#ff2d6a;box-shadow:0 4px #8b1038}.grid.paint .cell.taken{background:#3de0ff55}.hole{aspect-ratio:1;border:0;border-radius:50%;background:#1a0c14;box-shadow:inset 0 8px #0008,0 4px #0005;cursor:pointer;position:relative;z-index:7;pointer-events:auto}.hole.on{background:#ff2d6a;box-shadow:0 0 24px #ff2d6aaa,0 6px #8b1038}.lane{position:relative;width:100%;height:36px;border-radius:18px;background:#2a1236;overflow:hidden;box-shadow:inset 0 0 0 3px #ffd00055}.goldzone{position:absolute;top:0;bottom:0;background:#ffd000;opacity:.92}#needle{position:absolute;top:-4px;width:8px;height:44px;margin-left:-4px;background:#fff8f0;border-radius:4px;box-shadow:0 0 0 3px #140c16}.goal{position:relative;width:100%;height:90px;border:4px solid #fff8f0;border-bottom:0;border-radius:18px 18px 0 0;background:#1a3040}.keeper{position:absolute;bottom:8px;left:50%;width:36px;height:48px;margin-left:-18px;border-radius:12px 12px 6px 6px;background:#3de0ff;transition:left .16s ease}.keeper.d0{left:18%}.keeper.d1{left:50%}.keeper.d2{left:82%}.kicks{width:100%}.kick{flex:1;border:0;border-radius:16px;padding:18px 8px;font:900 16px Nunito,sans-serif;background:#ffd000;color:#1a0d12;box-shadow:0 6px #9a7400;cursor:pointer;position:relative;z-index:7;pointer-events:auto}.kick.pick{background:#3de0ff;box-shadow:0 6px #1a6a7a}.meter{width:100%;height:22px;border-radius:999px;background:#2a1236;overflow:hidden;box-shadow:inset 0 0 0 3px #ffd00055}.meter>i{display:block;height:100%;width:0;background:#ff2d6a}.chip{min-width:72px;min-height:72px;border:0;border-radius:18px;font:900 16px Nunito,sans-serif;background:#ffd000;color:#1a0d12;box-shadow:0 6px #9a7400;cursor:pointer;position:relative;z-index:7;pointer-events:auto}.chip.pick{background:#3de0ff;box-shadow:0 6px #1a6a7a}.chip.on{background:#ff2d6a;color:#fff8f0;box-shadow:0 6px #8b1038}.clock{font:900 20px Nunito,sans-serif;color:#ffd000;min-width:3ch;align-self:center}.lang-switch{display:flex;gap:6px;justify-content:center;margin-bottom:6px}.lang{border:2px solid #ffd000;background:transparent;color:#ffd000;border-radius:10px;padding:4px 10px;font:900 13px Nunito,sans-serif;cursor:pointer;pointer-events:auto}.lang.on{background:#ffd000;color:#1a0d12}.lang:disabled{opacity:.5;cursor:default}.ranking{width:min(100%,440px)}.rk-after{font-size:14px!important;margin-top:2px!important;opacity:.8}.rk-list{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:6px}.rk-row{display:grid;grid-template-columns:28px 14px 1fr auto auto 52px;align-items:center;gap:8px;padding:8px 12px;border-radius:14px;background:#000a;border-left:5px solid var(--c);text-align:left;font-weight:900;animation:rk-in .35s ease-out both;animation-delay:calc(var(--i) * 70ms)}.rk-row.me{background:#ffd00026;box-shadow:inset 0 0 0 2px #ffd000}.rk-row.first .rk-pos{color:#ffd000;font-size:22px}.rk-pos{font-family:Lilita One,sans-serif;font-size:18px;text-align:center}.rk-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rk-name small{font-size:10px;color:#ffd000;letter-spacing:.1em}.rk-gain{color:#7dff3c;font-size:13px}.rk-total{font-family:Lilita One,sans-serif;font-size:20px;text-align:right;color:#ffd000}.rk-up,.rk-down,.rk-same{font-style:normal;font-size:12px}.rk-up{color:#7dff3c}.rk-down{color:#ff2d6a}.rk-same{opacity:.4}.rk-next{font-size:15px!important;color:#3de0ff;margin-top:12px!important}@keyframes rk-in{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:none}}.gate-avatar{position:absolute;top:18px;right:66px}.avatar-btn{background:#c46bff;color:#fff8f0;box-shadow:0 7px #6a2a88;transform:rotate(.5deg)}.avatar-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;background:#140c16cc;padding:12px}.avatar-menu[hidden]{display:none}.avatar-card{width:min(100%,440px);max-height:100%;overflow-y:auto;background:#1a0e20;border:3px solid #c46bff;border-radius:24px;padding:16px;display:grid;gap:10px;box-shadow:0 10px #6a2a88}.avatar-preview{width:100%;height:190px;border-radius:18px;background:radial-gradient(circle at 50% 60%,#3b1458,#140c16 75%);display:block}.avatar-kind{font:900 11px Nunito,sans-serif;letter-spacing:.2em;color:#ffd000;margin-top:4px}.avatar-opts{display:flex;flex-wrap:wrap;gap:6px}.avatar-opt{border:2px solid #ffd00055;background:#000a;color:#fff8f0;border-radius:12px;padding:7px 10px;font:900 12px Nunito,sans-serif;cursor:pointer}.avatar-opt.on{background:#ffd000;color:#140c16;border-color:#ffd000}.avatar-swatch{width:34px;height:34px;border-radius:50%;border:3px solid transparent;cursor:pointer}.avatar-swatch.on{border-color:#fff8f0;box-shadow:0 0 0 3px #ffd000}.avatar-swatch:disabled{opacity:.25;cursor:not-allowed}.avatar-note{font-size:12px;opacity:.75;text-align:center}.avatar-actions{display:flex;gap:8px}.avatar-actions .btn{margin-top:4px}.play:not(.ingame)>.people,.play:has(.ranking)>.people{display:none}.play:has(#start) .code,.play:not(.ingame) .code{font-size:clamp(40px,11vw,64px);padding:10px 18px 6px}.play:not(.ingame) .invite{padding:8px 14px 6px}.arena:has(.lobby-stage),.arena:has(.ranking){align-content:end}.lobby-stage{display:grid;gap:2px;text-align:center;padding-bottom:4px}.lobby-stage .lobby-count{font:900 22px Nunito,sans-serif;color:#ffd000;margin:0;text-shadow:0 2px 8px #000}.lobby-stage .hint{font-size:13px;margin:0;text-shadow:0 2px 6px #000}.play:not(.ingame) .row{flex-direction:row}.play:not(.ingame) .row .btn{font-size:16px;padding:13px 8px;margin-top:6px}.play:not(.ingame) .lang-switch{margin:0}.bot-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:4px}.bot-chip{display:inline-flex;align-items:center;gap:4px;background:#000a;border:2px solid var(--c);border-radius:999px;padding:3px 4px 3px 10px;font:900 12px Nunito,sans-serif}.bot-chip .bot-drop{margin-left:2px;width:20px;height:20px;font-size:11px}.ranking{background:#160a18e6;padding:12px 14px}.ranking .rk-row{padding:5px 10px}.gate #code.pulse{animation:code-pulse .9s ease-out 2}@keyframes code-pulse{50%{box-shadow:0 0 0 6px #ffd000,0 6px #9a7400}}.avatar-card{max-height:calc(100dvh - 24px);padding-bottom:0}.avatar-actions{position:sticky;bottom:0;background:#1a0e20;padding:8px 0 14px}.avatar-swatch{position:relative}.avatar-swatch:disabled{opacity:.35}.avatar-swatch:disabled:after{content:"✕";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff;font:900 16px Nunito,sans-serif;text-shadow:0 1px 3px #000}.play:not(.ingame) .invite{max-width:calc(100% - 96px)}.play:not(.ingame) .invite a strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.play:not(.ingame) .invite a em{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gate.menu{background:transparent;border:0;box-shadow:none;max-width:460px;padding:20px 18px calc(18px + env(safe-area-inset-bottom));justify-content:space-between;gap:8px}.menu-logo{text-align:center}.menu-logo h1{font-size:clamp(44px,13vw,76px);line-height:.9;text-shadow:0 6px 0 #9a7400,0 0 28px #ffd00055}.menu-logo h1 b{color:#ff2d6a;font-weight:inherit;text-shadow:0 6px 0 #8b1038,0 0 28px #ff2d6a55}.menu-logo .sub{font-size:14px;margin:8px 0 0;text-shadow:0 2px 6px #000}.menu-stage{flex:1;min-height:180px}.menu-actions{display:grid;gap:8px}.menu-actions .btn{margin-top:2px}.menu-main{font-size:22px;padding:18px}.menu-row{display:flex;gap:8px}.menu-small{font-size:16px;padding:12px 8px}.options-btn{background:#fff8e8;color:#140c16;box-shadow:0 7px #9a7400}.menu-name,.menu-code{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;margin:0;background:#140c16cc;border:2px solid #ffd00066;border-radius:16px;padding:6px 6px 6px 14px}.menu-name span,.menu-code span{font-size:11px;letter-spacing:.16em;color:#ffd000}.menu-name input,.menu-code input{box-shadow:none;border-width:2px;padding:8px 12px;font-size:20px}.menu-code input{font-family:Lilita One,sans-serif;letter-spacing:.3em;text-align:center;font-size:30px;text-transform:uppercase}.gate.menu .err{min-height:1.2em;text-align:center;text-shadow:0 2px 6px #000}.play:not(.ingame) .sound-btn{top:8px;right:8px}.row.kicks{flex-direction:row!important}.goal{flex-shrink:0}.copy .people .pill{max-width:100%;white-space:nowrap;overflow:hidden}.copy .people .pill .tiny{overflow:hidden;text-overflow:ellipsis}.sound-btn{border:0;background:#000a;border-radius:12px;font-size:20px;padding:4px 8px;cursor:pointer;pointer-events:auto}.play:not(.ingame) .sound-btn,.gate-sound{position:absolute;top:18px;right:18px}.gate{position:relative}.sound-menu{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;background:#140c16cc;padding:18px}.sound-menu[hidden]{display:none}.sound-card{width:min(100%,380px);background:#1a0e20;border:3px solid #ffd000;border-radius:24px;padding:20px;display:grid;gap:14px;box-shadow:0 10px #9a7400}.sound-row{display:grid;grid-template-columns:90px 1fr 36px;align-items:center;gap:10px;margin:0;font-size:14px;letter-spacing:.08em}.sound-row input{width:100%;accent-color:#ffd000;box-shadow:none;border:0;padding:0;background:transparent}.sound-row b{text-align:right;color:#ffd000}.bot-drop{margin-left:6px;border:0;border-radius:50%;width:22px;height:22px;background:#ff2d6a;color:#fff8f0;font:900 12px Nunito,sans-serif;cursor:pointer;pointer-events:auto}.tug-field{display:flex;align-items:center;gap:10px;width:100%}.tug-side{display:flex;flex-wrap:wrap;gap:4px;width:56px;justify-content:center;opacity:.6}.tug-side.mine{opacity:1;filter:drop-shadow(0 0 8px #ffd000)}.tug-dot{width:18px;height:18px;border-radius:50%;box-shadow:0 3px #0007}.tug-rope{flex:1}.tug-rope i{transition:left .12s ease-out}.tug-mid{position:absolute;left:50%;top:-8px;bottom:-8px;width:3px;margin-left:-1px;background:#fff8f0aa}.paint-cell{transition:background .12s}.cell.paint-mine{box-shadow:0 0 0 4px #fff8f0,0 6px #0007}.cell.paint-locked{filter:brightness(1.35)}.hole{font-size:clamp(30px,10vw,54px);line-height:1}.hole.mole-gold{background:#ffd000;box-shadow:0 0 28px #ffd000cc,0 6px #9a7400}.hole.mole-bomb{background:#2b2b2b;box-shadow:0 0 22px #ff3b30aa,0 6px #000}.hole.mole-hit{transform:scale(.9)}.bull-lane{overflow:visible}.bull-fade{position:absolute;top:0;bottom:0;background:#ffd00044}.bull-mark{position:absolute;top:-10px;width:12px;height:12px;margin-left:-6px;border-radius:50%;box-shadow:0 0 0 2px #140c16}.keeper{transition:left .22s ease,transform .15s ease}.keeper.lean0{transform:translate(-10px) rotate(-12deg)}.keeper.lean1{transform:translateY(-6px)}.keeper.lean2{transform:translate(10px) rotate(12deg)}#kick-flash{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font:900 40px Lilita One,sans-serif;pointer-events:none}#kick-flash.kick-goal{color:#7dff3c}#kick-flash.kick-saved{color:#ff2d6a}.kick:disabled{opacity:.5}@keyframes slam{0%{transform:scale(1.2)}to{transform:none}}@media(max-width:520px){.gate{padding:22px 16px 20px}.row{flex-direction:column}.invite{max-width:min(92vw,520px)}}
