:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f3f7ed;background:#142731;font-synthesis:none;--mint:#a8f0ad;--aqua:#16d7ca}body,body *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body:not(.playing) input,body:not(.playing) textarea,body:not(.playing) [contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}body.playing{cursor:url(/game-cursor.svg) 4 3,crosshair}body.queued #footer{display:none}#queue-names{max-width:400px;overflow-wrap:anywhere;color:var(--mint)}#queue .play-button{max-width:350px}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #b8f6ad;outline-offset:5px}button:disabled{cursor:wait;opacity:.65}[hidden]{display:none!important}#game{width:100vw;height:100dvh;display:block;touch-action:none;outline:none}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(12,30,35,.94) 0%,rgba(12,30,35,.83) 23%,rgba(12,30,35,.25) 49%,transparent 70%),linear-gradient(0deg,rgba(12,30,35,.52),transparent 20%)}body.playing .vignette{background:linear-gradient(0deg,rgba(12,30,35,.2),transparent 16%)}#brand{position:fixed;top:35px;left:46px;display:flex;align-items:center;gap:22px}#brand a{color:#f7f8ed;text-decoration:none;display:flex;align-items:center;gap:8px;font-size:32px;font-weight:850;letter-spacing:-1.7px}#brand svg{width:36px;height:40px;fill:none;stroke:var(--mint);stroke-width:3;stroke-linecap:round}.brand-dot{color:var(--mint)}.build-tag{font-size:9px;letter-spacing:1.6px;border:1px solid #a8c9c548;color:#b2c6c2;padding:7px 9px;border-radius:5px}.settings{position:fixed;top:35px;right:40px;display:flex;gap:8px}.icon-button{position:relative;border:1px solid #ffffff29;background:#142731bb;color:#f5f6e9;width:42px;height:42px;border-radius:12px;font-size:23px;backdrop-filter:blur(8px)}.icon-button:hover{background:#345157}.icon-button.active{color:var(--mint);border-color:var(--mint)}.off-line{position:absolute;left:12px;top:21px;width:19px;height:1px;transform:rotate(-45deg);background:#f5f6e9}.panel{position:fixed;top:50%;left:7.4vw;transform:translateY(-47%);width:440px}.eyebrow{display:flex;align-items:center;gap:9px;font-size:10px;font-weight:650;letter-spacing:2.3px;color:var(--mint)}.live-dot{width:6px;height:6px;background:var(--mint);border-radius:50%;box-shadow:0 0 0 4px #a8f0ad13}h1{font-size:clamp(38px,4.2vw,63px);line-height:1.09;letter-spacing:-3px;margin:25px 0 20px;font-weight:760}h1 em{font-style:normal;color:var(--mint)}.intro{font-size:15px;line-height:1.8;color:#b9ceca;margin:0 0 31px}#join-form{max-width:350px}label{display:block;font-size:9px;color:#c7d7d0;letter-spacing:1.8px;font-weight:600;margin-bottom:11px}.name-field{display:flex;align-items:center;border:1px solid #d2e9d433;background:#cee7ce0b;padding:0 17px;gap:12px;border-radius:12px;height:54px}.player-dot{width:9px;height:9px;display:inline-block;flex-shrink:0;background:var(--aqua);border-radius:50%;box-shadow:0 0 12px #16d7ca30}.name-field input{background:none;border:0;color:#f4f8ee;outline:none;min-width:0;flex:1;font-weight:550;font-size:16px}.field-spark{color:#94b5a6;font-size:20px}.play-button{width:100%;border:0;border-radius:12px;background:var(--mint);color:#17372e;height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 21px;font-weight:750;font-size:16px;margin-top:12px;box-shadow:0 5px 24px #090f101c;transition:background .15s,transform .15s}.play-button:hover{background:#c2ffc1;transform:translateY(-2px)}.button-arrow{font-size:25px;font-weight:400}.connection{font-size:10px;color:#a1b9af;margin:13px 0 26px;min-height:15px;max-width:350px}.connection.error{color:#ffb39d}.welcome-details{display:flex;align-items:center;gap:13px;font-size:10px;color:#9fb5af}.welcome-details b{font-weight:600;color:#d2e1d5}.welcome-details i{height:11px;width:1px;background:#ffffff20}#hero-note{position:fixed;right:6vw;bottom:20vh;display:flex;gap:15px;align-items:center;font-size:10px;letter-spacing:2px;line-height:1.8;color:#173b3a;text-shadow:0 1px 6px #ffffff90}#hero-note b{font-weight:800}.note-line{width:29px;height:1px;background:#234844}#footer{position:fixed;bottom:29px;left:46px;right:40px;display:flex;justify-content:space-between;align-items:center}.instructions{display:flex;align-items:center;gap:12px;color:#bdcfca;font-size:11px}.cursor-symbol{font-size:25px;color:#e0edda}.instruction-divider{height:14px;width:1px;background:#c4d7d32c;margin:0 6px}.mouse-symbol{display:inline-block;width:18px;height:26px;border:1.5px solid #d4e4d9;border-radius:8px;position:relative;flex-shrink:0;overflow:hidden}.mouse-symbol:before{content:"";position:absolute;left:0;top:0;width:7px;height:11px;background:var(--mint);border-radius:5px 0 0;border-bottom:1px solid #d4e4d9}.mouse-symbol:after{content:"";position:absolute;left:7px;top:0;width:1px;height:12px;background:#d4e4d9}.footer-city{font-size:9px;font-weight:700;letter-spacing:2px;color:#f2f9ee;text-shadow:0 1px 6px #153935}.footer-city span{margin-left:18px;font-size:17px}#labels{position:fixed;inset:0;pointer-events:none;overflow:hidden}.player-label{position:absolute;transform:translate(-50%,-100%);padding:4px 9px;background:#142731dc;border:1px solid #ffffff20;color:#fff;font-size:11px;font-weight:650;border-radius:6px;white-space:nowrap}.player-label.self{border-color:var(--aqua)}.player-label:after{content:"";position:absolute;left:calc(50% - 3px);bottom:-5px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #142731dc}.score-card,.ranking-card,.timer-card,.mass-card{position:fixed;background:#152f3be8;backdrop-filter:blur(12px);border:1px solid #fff2;border-radius:15px}.score-card{top:104px;left:32px;min-width:159px;padding:17px 21px}.hud-caption{font-size:9px;letter-spacing:2px;color:#b9cdc5}.score-card strong{display:block;font-size:37px;letter-spacing:-1px;line-height:1.25}.score-name{display:flex;align-items:center;gap:7px;font-size:11px;color:#c5dacf;margin-top:8px}.timer-card{top:30px;left:50%;transform:translate(-50%);padding:11px 27px;min-width:172px;text-align:center}.timer-card>span{display:block;font-size:8px;letter-spacing:1.5px;color:#bfcec6}.timer-card strong{font-size:30px;font-variant-numeric:tabular-nums}.timer-card #room-count{font-size:9px;letter-spacing:0;margin-top:3px}.ranking-card{top:102px;right:32px;width:227px;padding:16px}.ranking-title{display:flex;justify-content:space-between;letter-spacing:1.5px;font-size:9px;color:#bccec7;margin-bottom:10px}ol{padding:0;margin:0;list-style:none}.rank-row{display:flex;align-items:center;gap:9px;font-size:11px;padding:8px 0;border-top:1px solid #ffffff0e}.rank-row .place{width:11px;color:#97b3af}.rank-row .rank-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-row b{font-variant-numeric:tabular-nums}.rank-row.me{color:var(--mint)}.mass-card{left:32px;bottom:85px;width:207px;padding:14px 17px}.mass-card>div:first-child{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px}.mass-card #mass-number{color:#b2cfc3;letter-spacing:0}.mass-track{margin:9px 0;height:4px;border-radius:4px;background:#ffffff18;overflow:hidden}.mass-track>span{display:block;height:100%;background:var(--aqua);border-radius:4px;width:0;transition:width .2s}.mass-card small{font-size:9px;color:#b7cec2}.control-pill{position:fixed;left:50%;bottom:32px;transform:translate(-50%);display:flex;gap:12px;align-items:center;border:1px solid #ffffff20;background:#152f3be8;border-radius:12px;padding:13px 19px;font-size:12px;white-space:nowrap}.control-pill kbd{font:inherit;font-size:8px;letter-spacing:1px;color:#a5bcb3;border:1px solid #ffffff22;padding:5px 6px;border-radius:4px}.control-pill.boosting{border-color:var(--mint);color:var(--mint)}.leave-button{position:fixed;right:34px;bottom:36px;color:#e4eee0;background:#15323bcc;border:1px solid #ffffff25;border-radius:8px;padding:10px 13px;font-size:10px}#countdown{position:fixed;inset:0;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;text-shadow:0 3px 24px #123d3a}#countdown strong{font-size:95px;font-weight:800;color:#c5ffc6}#countdown span{font-size:13px;background:#142731d9;padding:9px 16px;border-radius:8px}.results-overlay{position:fixed;inset:0;display:grid;place-items:center;background:#0c232ac9;backdrop-filter:blur(8px)}.result-panel{width:min(420px,90vw);padding:36px;background:#17313a;border:1px solid #cae3cf33;border-radius:22px;box-shadow:0 20px 80px #0005}.result-panel .eyebrow{justify-content:center}h2{font-size:40px;letter-spacing:-2px;margin:15px 0;text-align:center}h2 span{color:var(--mint)}#result-summary{text-align:center;font-size:13px;color:#bdd0c6;line-height:1.7}#result-ranking{margin:22px 0}.result-panel .rank-row{font-size:13px;padding:12px 0}.text-button{display:block;margin:15px auto 0;background:none;border:0;color:#b1c8ba;font-size:11px}#toast{position:fixed;top:110px;left:50%;transform:translate(-50%);max-width:90vw;background:#192f37;border:1px solid #ffbd9c70;color:#ffd4b8;padding:14px 20px;border-radius:12px;font-size:13px;z-index:10}body.playing #brand{top:30px;left:32px}body.playing #brand a{font-size:25px}body.playing #brand svg{width:28px}body.playing .build-tag,body.playing #footer{display:none}#touch-controls{position:fixed;inset:0;pointer-events:none}#joystick{position:absolute;bottom:38px;left:35px;width:116px;height:116px;border-radius:50%;background:#16313b70;border:2px solid #d4ead442;pointer-events:auto;touch-action:none}#joystick span{position:absolute;top:33px;left:33px;width:46px;height:46px;background:#b5f2ae99;border:2px solid #d9ffd4;border-radius:50%;pointer-events:none}#touch-boost{position:absolute;bottom:47px;right:35px;width:88px;height:88px;border-radius:50%;background:#a8f0ad;color:#163e32;border:3px solid #dbffcd;font-size:40px;pointer-events:auto;touch-action:none}#touch-boost:active{background:#e2ffd1}@media(max-width:800px){#brand{top:23px;left:24px}.build-tag{display:none}.settings{top:24px;right:24px}.panel{left:7vw;width:85vw;top:49%}.vignette{background:linear-gradient(90deg,#102b30e8,#102b30b3 65%,#102b3055),linear-gradient(0deg,#102b3066,transparent 30%)}h1{font-size:48px}.intro{font-size:14px}#hero-note{display:none}#footer{left:24px;right:24px;bottom:22px}.footer-city{display:none}.instructions{font-size:10px;gap:8px}.score-card{left:16px;top:83px;min-width:119px;padding:12px 15px}.score-card strong{font-size:29px}.ranking-card{right:16px;top:83px;width:169px;padding:12px}.timer-card{top:21px;min-width:120px;padding:8px 12px}.timer-card strong{font-size:24px}.timer-card>span{font-size:7px}.timer-card #room-count{display:none}body.playing #brand{left:16px;top:20px}body.playing #brand a{font-size:20px}body.playing #brand svg{width:23px}.settings{gap:5px}body.playing .settings{right:16px;top:20px}.icon-button{width:32px;height:32px;font-size:18px}.off-line{left:7px;top:15px}.mass-card{left:16px;bottom:185px;width:160px;padding:12px}.mass-card>div:first-child{font-size:8px}.mass-card small{font-size:8px}.control-pill{display:none}.leave-button{bottom:12px;right:16px;padding:7px 10px}}@media(max-height:650px)and (min-width:801px){.panel{top:53%}h1{font-size:45px;margin:18px 0}.intro{margin-bottom:20px}.connection{margin-bottom:18px}#brand,.settings{top:21px}#footer{bottom:17px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}#pickup-hint{position:fixed;left:50%;bottom:97px;transform:translate(-50%);border:1px solid #f4cb8e55;background:#20313ded;color:#ffe1af;border-radius:9px;padding:9px 15px;font-size:11px;pointer-events:none;white-space:nowrap}#combat-hint{position:fixed;top:135px;left:50%;transform:translate(-50%);max-width:min(420px,90vw);padding:10px 16px;border-radius:10px;background:#15323be8;border:1px solid #a5e9cb55;color:#d2eee1;font-size:11px;text-align:center;pointer-events:none}#combat-hint.danger{background:#572c3aed;border-color:#ff8f9a;color:#ffe0e3}#combat-hint.protected{border-color:#9bdcff;color:#c7eeff}.player-label.protected{outline:2px solid #9bdcff;color:#c7eeff}.player-label.absorbing{outline:2px solid #ff8f9a;color:#ffe0e3}@media(max-width:800px){#pickup-hint{bottom:185px;left:auto;right:16px;transform:none;font-size:9px;max-width:calc(100vw - 195px);white-space:normal;text-align:center}}.player-label.winning{outline:2px solid #ffe178;color:#ffeaa8;box-shadow:0 0 18px #ffdc5577}#combat-hint.winning{border-color:#ffe178;color:#ffeaa8;background:#3c391ded}#combat-hint.danger{border-color:#ff8f9a;color:#ffe0e3;background:#572c3aed}.building-label{font-size:9px!important;opacity:.9;background:#223640e8!important;border:1px solid #c4d4c055}.building-label.eligible{border-color:#ffe178;color:#ffeaa8;box-shadow:0 0 16px #ffdb5877}#victory{position:fixed;left:50%;top:28%;transform:translate(-50%);z-index:12;display:flex;flex-direction:column;align-items:center;gap:9px;pointer-events:none;padding:22px 30px;min-width:260px;max-width:90vw;border:2px solid #ffe178;border-radius:20px;background:linear-gradient(135deg,#52411ff0,#182f3ef2);box-shadow:0 0 70px #ffe17866;color:#fff0ac;animation:victory-enter .45s ease-out}#victory strong{font-size:25px;letter-spacing:2px}#victory-name{font-size:13px;color:#edf0dc}#victory-reward{font-size:19px}.victory-cup{font-size:48px}.battle-won:after{content:"";position:fixed;inset:0;z-index:11;pointer-events:none;animation:victory-flash .75s ease-out forwards}@keyframes victory-enter{0%{opacity:0;scale:.65}to{opacity:1;scale:1}}@keyframes victory-flash{0%{box-shadow:inset 0 0 160px 60px #ffe178a0}to{box-shadow:inset 0 0 0 0 transparent}}.practice-button{margin-top:12px;width:100%;padding:12px 18px;border:1px solid #ffe17866;border-radius:10px;color:#ffeaa8;background:#24393ee8;font:inherit;font-size:12px;cursor:pointer}.practice-button:hover{background:#344b48}#victory{top:auto;bottom:100px}@media(max-width:800px){#victory{bottom:190px;padding:16px 20px;min-width:220px}#victory strong{font-size:20px}}#toast.training-tip{top:auto;bottom:115px;font-size:12px;max-width:min(540px,90vw)}@media(max-width:800px){#toast.training-tip{bottom:185px}}.player-label.available{border-color:#b8ff9b;color:#d8ffbd}.player-label.danger{border-color:#ff667c;color:#ffd3da}.combat-identity,.combat-status{display:block}.combat-status{font-size:9px;margin-top:3px;letter-spacing:.5px}.player-label.matched .combat-status{color:#c5d3d6}.combat-meter{display:block;margin-top:6px;width:100%;height:6px;border-radius:4px;background:#ffffff25;overflow:hidden}.combat-meter>span{display:block;height:100%;background:#ff667c;border-radius:4px;transition:width .07s linear}.player-label.absorbing{background:#4e2233ed;box-shadow:0 0 16px #ff536e55}.battle-reward{position:absolute;transform:translate(-50%,-100%);padding:6px 11px;border:1px solid #ffe178;border-radius:8px;background:#3b321ee8;color:#fff2ad;font-size:12px;font-weight:800;white-space:nowrap;text-shadow:0 1px 4px #0007}#victory{padding:13px 22px;gap:5px;min-width:240px}#victory .victory-cup{font-size:25px}#victory strong{font-size:18px}#victory-reward{font-size:15px}@media(max-width:800px),(pointer:coarse){body.playing #brand,body.playing .ranking-card,body.playing .score-name,body.playing #mass-label{display:none!important}body.playing .score-card{top:calc(12px + env(safe-area-inset-top));left:12px;min-width:74px;padding:5px 10px;border-radius:10px;display:flex;align-items:center;gap:7px;height:38px}body.playing .score-card .hud-caption{font-size:7px;letter-spacing:.5px}body.playing .score-card strong{font-size:19px;line-height:1;letter-spacing:0}body.playing .timer-card{top:calc(12px + env(safe-area-inset-top));padding:4px 12px;min-width:80px;height:38px;border-radius:10px}body.playing .timer-card>span{font-size:6px;letter-spacing:.8px}body.playing .timer-card strong{font-size:18px;line-height:1.15}body.playing .settings{top:calc(12px + env(safe-area-inset-top));right:12px}body.playing .icon-button{width:38px;height:38px;border-radius:10px}body.playing .mass-card{top:calc(60px + env(safe-area-inset-top));bottom:auto;left:12px;width:calc(100vw - 24px);padding:7px 10px;border-radius:9px;display:flex;align-items:center;gap:12px;min-height:34px}body.playing .mass-card>div:first-child{flex-shrink:0}body.playing #mass-number{font-size:12px;color:var(--mint)}body.playing .mass-card small{font-size:10px;line-height:1.25}#combat-hint{top:calc(104px + env(safe-area-inset-top));max-width:calc(100vw - 24px);padding:7px 10px;font-size:10px;line-height:1.35}#combat-hint:not(.danger):not(.winning):not(.protected){display:none!important}#pickup-hint{left:50%;right:auto;bottom:calc(150px + env(safe-area-inset-bottom));transform:translate(-50%);max-width:calc(100vw - 32px);font-size:10px;padding:7px 10px;white-space:normal}#joystick{left:16px;bottom:calc(20px + env(safe-area-inset-bottom));width:116px;height:116px}#touch-boost{right:20px;bottom:calc(30px + env(safe-area-inset-bottom));width:76px;height:76px;font-size:34px}.leave-button{left:50%;right:auto;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%);min-height:44px;max-width:calc(100vw - 250px);font-size:10px;padding:7px 9px}.player-label{font-size:10px;padding:3px 6px;max-width:180px}.combat-status{font-size:8px}.building-label{font-size:8px!important;max-width:155px}#victory{top:calc(104px + env(safe-area-inset-top));bottom:auto;min-width:0;width:calc(100vw - 32px);padding:8px 12px;gap:3px;border-radius:11px}#victory strong{font-size:12px}#victory-reward{font-size:13px}#victory .victory-cup,#victory-name{display:none}body.battle-won #combat-hint{display:none!important}#toast{top:calc(104px + env(safe-area-inset-top));font-size:11px;padding:9px 12px;max-width:calc(100vw - 24px)}#toast.training-tip{top:auto;bottom:calc(150px + env(safe-area-inset-bottom));max-width:calc(100vw - 32px);font-size:10px}.battle-reward{font-size:10px;padding:4px 7px}}@media(max-width:800px)and (max-height:500px),(pointer:coarse)and (max-height:500px){body.playing .mass-card{top:calc(56px + env(safe-area-inset-top));width:auto;max-width:55vw}body.playing .mass-card small{display:none}#combat-hint,#victory,#toast{top:calc(96px + env(safe-area-inset-top))}#joystick{bottom:calc(12px + env(safe-area-inset-bottom));width:100px;height:100px}#joystick span{top:25px;left:25px}#touch-boost{bottom:calc(20px + env(safe-area-inset-bottom));width:68px;height:68px}#pickup-hint,#toast.training-tip{bottom:calc(123px + env(safe-area-inset-bottom))}}@media(pointer:coarse)and (max-height:500px){body:not(.playing) #brand{top:12px;left:16px}body:not(.playing) #brand a{font-size:22px}body:not(.playing) #brand svg{width:25px;height:30px}body:not(.playing) .build-tag{display:none}body:not(.playing) .settings{top:12px;right:12px}body:not(.playing) .panel{top:55px;bottom:12px;left:16px;width:min(430px,60vw);transform:none;overflow-y:auto;padding-right:8px}body:not(.playing) h1{font-size:29px;letter-spacing:-1px;margin:9px 0 12px}body:not(.playing) .intro,body:not(.playing) .eyebrow,body:not(.playing) #hero-note,body:not(.playing) #footer{display:none}body:not(.playing) .name-field{height:44px}body:not(.playing) .play-button{height:44px;margin-top:9px}body:not(.playing) .practice-button{padding:9px 12px;margin-top:9px}body:not(.playing) .connection{margin:9px 0 12px}}@media(max-width:500px)and (max-height:740px){body:not(.playing) h1{font-size:36px;margin:14px 0}.intro{font-size:12px;line-height:1.55;margin-bottom:18px}.name-field{height:46px}.play-button{height:48px}.connection{margin-bottom:12px}}@media(max-width:800px),(pointer:coarse){body.playing .control-pill,body.playing .timer-card #room-count{display:none!important}#joystick span{top:calc(50% - 23px);left:calc(50% - 23px)}}@media(max-width:800px),(pointer:coarse){body.playing .score-card{max-width:calc(50vw - 64px)}body.playing .score-card strong{min-width:0;overflow:hidden;text-overflow:ellipsis}}#connection:empty{display:none}.sandbox-button{max-width:350px;background:#617c73;color:#f0f6ee}.sandbox-button:hover{background:#759187}.sandbox-label{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.sandbox-label small{font-size:10px;font-weight:500;color:#e0ebe4}.absorption-meter{display:block;min-width:100px;width:100%;height:8px;margin-top:7px;border-radius:5px;background:#ffffff26;overflow:hidden}.absorption-meter>span{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#16d7ca,#b8ff9b);box-shadow:0 0 8px #a8f0ad66}.danger .absorption-meter>span{background:linear-gradient(90deg,#ff536e,#ffb39d)}#combat-hint .absorption-meter{height:10px}.player-label.absorbing-target .combat-meter>span{background:linear-gradient(90deg,#16d7ca,#b8ff9b)}.player-heading{display:flex;align-items:center;justify-content:center;gap:6px}.player-rank{display:inline-block;padding:2px 4px;border-radius:4px;background:#ffffff20;color:#e7f0ed;font-size:10px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.player-rank.leader{background:#ffe178;color:#42391f}.pickup-pop{position:fixed;pointer-events:none;transform:translate(-50%,-100%);font-weight:800;font-size:15px;color:#e2ffbd;text-shadow:0 2px 3px #17313a,0 0 12px #17313a;background:#17313abb;border:1px solid #b8ff9b88;border-radius:20px;padding:4px 9px;white-space:nowrap}.player-label.nearby-danger{outline:2px solid #ff536e;box-shadow:0 0 18px #ff536e99}.being-absorbed:after{content:"";position:fixed;inset:0;pointer-events:none;box-shadow:inset 0 0 70px #ff365788;z-index:3}.result-stats{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:20px 0 12px}.result-stats>div{background:#ffffff08;border:1px solid #ffffff14;border-radius:10px;padding:12px;text-align:center}.result-stats span{display:block;font-size:9px;letter-spacing:1px;color:#a7c6ba}.result-stats strong{display:block;font-size:25px;color:var(--mint);margin-top:5px}#result-record-note{display:block;text-align:center;color:#a7c6ba;font-size:10px}.result-panel{max-height:calc(100dvh - 24px);overflow:auto}.result-panel .play-button{width:100%}#result-ranking{max-height:200px;overflow:auto}@media(max-width:800px),(pointer:coarse){body.playing .mass-card{display:grid;grid-template-columns:auto 1fr;gap:3px 12px}body.playing .mass-track{display:block!important;grid-column:1/-1;margin:3px 0 0;height:4px;order:3}body.playing .mass-card small{grid-column:2;grid-row:1}.result-panel{padding:22px}.result-panel h2{font-size:32px;margin:10px 0}.result-stats{margin-top:12px}.result-stats>div{padding:8px}.result-stats strong{font-size:21px}#result-ranking{max-height:150px;margin:15px 0}.pickup-pop{font-size:12px}}@media(prefers-reduced-motion:reduce){.being-absorbed:after{box-shadow:inset 0 0 35px #ff365755}}#speed-bonus{position:fixed;left:50%;bottom:145px;transform:translate(-50%);pointer-events:none;background:#17313aed;border:1px solid #ffe178;color:#ffe178;border-radius:20px;padding:8px 14px;font-size:12px;font-weight:800;white-space:nowrap;box-shadow:0 0 20px #ffe17833}@media(max-width:800px),(pointer:coarse){#speed-bonus{bottom:calc(196px + env(safe-area-inset-bottom));font-size:11px;padding:6px 11px}}@media(max-height:500px){#speed-bonus{bottom:calc(158px + env(safe-area-inset-bottom))}}@media(max-width:800px),(pointer:coarse){body.battle-won #toast{display:none!important}}.district-name{position:fixed;left:32px;top:235px;color:#fff;background:#152f3be8;border-left:3px solid;border-radius:5px;padding:6px 10px;font-size:11px;pointer-events:none}.timer-card.final-stretch{border-color:#ffb75b;background:#592e28ed}.timer-card.final-stretch strong{color:#ffd166;animation:final-pulse .8s ease-in-out infinite}@keyframes final-pulse{50%{opacity:.6}}@media(max-width:800px),(pointer:coarse){.district-name{top:106px;left:12px;font-size:9px;padding:4px 7px}}@media(prefers-reduced-motion:reduce){.timer-card.final-stretch strong{animation:none}}.social-actions{display:flex;gap:8px;margin-top:10px}.social-button{padding:11px 14px;border:1px solid #a9edbb66;border-radius:10px;background:#25434bed;color:#e5ffed;cursor:pointer;font:inherit;font-size:12px;font-weight:650}.social-actions .social-button{flex:1}.invite-welcome{padding:10px 12px;background:#a9edbb22;border-left:3px solid #a9edbb;font-size:13px;color:#ddffe7}#party-invite{margin:18px 0}#party-invite label{font-size:9px;letter-spacing:1.5px}#invite-link,#share-link{display:block;width:100%;padding:12px;margin:8px 0;border:1px solid #a9edbb66;border-radius:8px;background:#17313a;color:#e5ffed;user-select:text!important;font-size:12px}#share-dialog{max-width:420px;width:90%;border:1px solid #a9edbb66;border-radius:18px;background:#17313a;color:#e5ffed;padding:24px}#share-dialog::backdrop{background:#102730bb}#share-dialog p{font-size:13px}#share-result{display:block;width:100%;margin-top:10px}@media(max-width:800px){.social-button{padding:10px 8px;font-size:11px}.panel h1{font-size:clamp(38px,10vw,52px)}}.panel{max-height:calc(100dvh - 160px);overflow-y:auto;padding-right:6px}.panel .social-actions{max-width:350px}@media(max-width:800px){.panel{max-height:calc(100dvh - 135px)}}#queue h1{margin:15px 0}#queue .intro{margin-bottom:16px}#party-invite{margin:12px 0}#share-dialog{max-width:460px;max-height:calc(100dvh - 32px);overflow-y:auto;padding:28px}#share-dialog h2{font-size:28px;line-height:1.1;margin:16px 20px 12px 0}.share-close{position:absolute;right:14px;top:10px;background:none;border:0;color:#ddffe7;font-size:28px;cursor:pointer}.share-channels{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 10px}.share-channels a,#save-card{display:block;text-align:center;text-decoration:none}.whatsapp{background:#acf0b6;color:#173b35}.telegram{background:#a7ddff;color:#173b4c}#share-feedback:empty{display:none}#share-feedback{color:#b0f7aa}#share-qr{border-top:1px solid #a9edbb44;padding-top:16px;margin-top:16px;text-align:center}#share-qr summary{cursor:pointer;font-size:13px}#invite-qr{display:block;margin:18px auto 0;max-width:100%;border-radius:8px}#result-card{display:block;width:100%;height:auto;border-radius:14px}#share-card-section h3{margin:22px 0 12px}#share-card-section .social-actions{align-items:stretch}#share-dialog [hidden]{display:none!important}#first-round-tip{position:fixed;top:116px;left:50%;transform:translate(-50%);width:min(350px,calc(100vw - 32px));padding:12px 38px 12px 16px;background:#15323bf2;border:1px solid #b0f7aa88;border-radius:12px;color:#e5ffed;font-size:12px;line-height:1.5;z-index:8;box-shadow:0 8px 24px #0003}#first-round-tip button{position:absolute;right:8px;top:8px;border:0;background:none;color:#b0f7aa;font-size:22px;cursor:pointer;padding:2px 6px}@media(max-width:800px){#first-round-tip{top:120px;width:min(300px,calc(100vw - 32px));font-size:11px;padding:10px 34px 10px 12px}}#city-event{position:fixed;top:190px;left:50%;transform:translate(-50%);max-width:340px;background:#28392bf2;border:1px solid #ffe17899;border-radius:12px;padding:10px 14px;text-align:center;pointer-events:none}#city-event strong{display:block;color:#ffe178;font-size:12px}#city-event small{display:block;color:#e5f4db;font-size:10px;margin-top:5px}#combo{position:fixed;bottom:92px;left:50%;transform:translate(-50%);width:220px;background:#17333bed;border:1px solid #00e7dd99;border-radius:12px;padding:10px 14px;text-align:center;pointer-events:none}#combo strong{font-size:12px;color:#b0f7aa}.combo-track{height:5px;background:#fff2;margin:7px 0;border-radius:4px;overflow:hidden}#combo-fill{display:block;height:100%;background:#00e7dd}#combo small{font-size:10px;color:#d8ede5}@media(max-width:800px),(pointer:coarse){#city-event{top:184px;width:260px;padding:8px 10px}#combo{bottom:172px;width:200px;padding:8px 12px}}body.playing #brand,body.playing .score-name{display:none!important}body.playing .score-card{top:24px;left:24px;min-width:140px;padding:12px 16px;border-radius:12px}body.playing .score-card strong{font-size:30px;line-height:1.2}body.playing .district-name{top:150px;left:24px;font-size:10px;padding:4px 8px}body.playing .timer-card{top:24px;min-width:120px;padding:8px 12px;border-radius:12px}body.playing .timer-card strong{font-size:26px}body.playing .timer-card #room-count{display:none}body.playing .sandbox-timer{display:flex;align-items:center;justify-content:center;gap:9px}body.playing .sandbox-timer #timer{font-size:24px}body.playing .sandbox-timer #city-event{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:7px;white-space:nowrap}body.playing #city-event{position:static;transform:none;border:0;background:#17333bed;border-radius:8px;padding:6px 8px;margin-top:6px;max-width:none;white-space:nowrap}body.playing #city-event strong,body.playing #city-event small{display:inline;font-size:10px;margin:0}body.playing #city-event small{margin-left:8px;color:#c6dad2}body.playing #combo{position:static;transform:none;width:auto;background:none;border:0;padding:0;margin-top:6px;text-align:left}body.playing #combo strong{font-size:11px}body.playing #combo small{display:none}body.playing .combo-track{height:3px;margin:4px 0 0}body.playing .mass-card{left:24px;bottom:24px;top:auto;width:210px;padding:10px 12px;border-radius:12px;display:block}body.playing .mass-card>div:first-child{font-size:9px;display:flex;justify-content:space-between}body.playing #mass-number{font-size:13px;color:var(--mint)}body.playing .mass-track{height:4px;margin:7px 0}body.playing #next-object{font-size:9px}body.playing #boost-hint{position:static;transform:none;padding:0;margin-top:8px;background:none;border:0;gap:7px;font-size:10px;justify-content:flex-start}body.playing #boost-hint kbd,body.playing #boost-hint .mouse-symbol{display:none}body.playing #pickup-hint,body.playing #speed-bonus{position:static;transform:none;white-space:normal;padding:0;margin:7px 0 0;background:none;border:0;box-shadow:none;font-size:10px;max-width:none;text-align:left}body.playing #combat-hint{top:115px;padding:8px 12px}.player-label.self{display:none!important}@media(max-width:800px),(pointer:coarse){body.playing .score-card{top:calc(12px + env(safe-area-inset-top));left:12px;min-width:84px;max-width:110px;height:auto;display:block;padding:6px 9px}body.playing .score-card .hud-caption{display:none}body.playing .score-card strong{font-size:19px;display:block}body.playing #combo strong{font-size:9px}body.playing #combo{margin-top:3px}body.playing .timer-card{top:calc(12px + env(safe-area-inset-top));min-width:82px;height:auto;padding:6px 8px}body.playing .timer-card strong{font-size:20px}body.playing .sandbox-timer{gap:6px}body.playing #city-event{padding:5px 7px}body.playing #city-event strong,body.playing #city-event small{font-size:9px}body.playing .mass-card{left:12px;top:calc(105px + env(safe-area-inset-top));bottom:auto;width:170px;max-width:50vw;padding:7px 9px;min-height:0}body.playing .mass-card small{display:block;font-size:8px}body.playing #next-object{font-size:8px}body.playing .district-name{display:none}body.playing #combat-hint{top:calc(196px + env(safe-area-inset-top));font-size:10px}body.playing #speed-bonus{font-size:9px}}body.playing #combo strong{letter-spacing:0;line-height:1.3}body.playing #city-event{width:max-content}.result-score{display:block;text-align:center;font-size:38px;letter-spacing:-1px;color:var(--mint)}#result-details{margin:14px 0 18px}#result-details>summary{cursor:pointer;font-size:12px;color:#b7cec2;text-align:center}#result-details #result-ranking{margin-bottom:8px}@media(max-width:800px){.result-score{font-size:30px}}.touch-help{display:none}.touch-device .touch-help{display:inline}.touch-device .desktop-help{display:none}@media(pointer:coarse){.touch-help{display:inline}.desktop-help{display:none}}#footer .touch-help{font-size:11px;color:#d3e9df}.welcome-help{margin:12px 0;font-size:11px;line-height:1.5;color:#b5cbc9}.welcome-help summary{cursor:pointer;color:#d9f5ef;padding:5px 0}.welcome-help p{margin:8px 0}.welcome-help strong{color:#eaffec}.welcome-help a{color:#b2f3b0}.welcome-help[open]{max-height:180px;overflow:auto;padding-right:8px}.early-note{border-top:1px solid #ffffff20;padding-top:9px}.ai-badge{display:inline-block;font-size:8px;padding:2px 4px;border:1px solid #a3c6d166;border-radius:4px;color:#c6e4ef;flex-shrink:0}.player-label.ai-player .combat-identity:after{content:"AI";display:inline-block;font-size:7px;font-weight:700;margin-left:5px;padding:1px 3px;border:1px solid #a3c6d166;border-radius:3px;color:#c6e4ef;vertical-align:middle}body:not(.playing):not(.queued) #welcome{max-height:calc(100dvh - 145px);overflow:auto;padding-right:5px}@media(max-width:800px){.welcome-help{margin:7px 0}.welcome-help[open]{max-height:145px}body:not(.playing):not(.queued) #welcome{max-height:calc(100dvh - 125px)}}body:not(.playing) #game{touch-action:pan-x pan-y pinch-zoom}.welcome-help[open]{max-height:none;overflow:visible}#welcome{scrollbar-width:thin;scrollbar-color:#8ab8aa55 transparent}#welcome::-webkit-scrollbar{width:5px}#welcome::-webkit-scrollbar-track{background:transparent}#welcome::-webkit-scrollbar-thumb{background:#8ab8aa55;border-radius:5px}.unlock-target-label{position:absolute;transform:translate(-50%,-100%);pointer-events:none;background:#15323be8;border:1px solid #b0f7aa;color:#dbffd7;padding:5px 8px;border-radius:7px;font-size:11px;white-space:nowrap;box-shadow:0 3px 12px #0003}@media(max-width:800px){.unlock-target-label{font-size:10px;padding:4px 6px}}.result-highlight{text-align:center;background:#b0f7aa12;border:1px solid #b0f7aa44;border-radius:12px;padding:14px 12px;margin:16px 0 10px}.result-highlight strong{font-size:19px;color:var(--mint);line-height:1.3}.result-highlight p{font-size:12px;color:#bdd0c6;margin:7px 0 0;line-height:1.5}#result-next-goal{text-align:center;font-size:12px;color:#d5eadc;line-height:1.5;margin:10px 0 16px}.info-links{display:flex;gap:16px;margin:10px 0;font-size:10px}.info-links a{color:#b5cbc9;text-decoration:none}.info-links a:hover{color:var(--mint);text-decoration:underline}.info-links a:focus-visible{outline:2px solid var(--mint);outline-offset:4px}:root{--panel:#142e3deb;--panel-line:#d9f5ef24;--muted:#b5cbc9;--mint:#b2f3b0;--aqua:#23dfd1}.score-card,.timer-card,.ranking-card,.mass-card,.result-panel,#share-dialog{background:var(--panel);border-color:var(--panel-line);box-shadow:0 6px 24px #07151f26,inset 0 1px #ffffff08}.hud-caption,.ranking-title{color:var(--muted);letter-spacing:1.4px}.score-card strong,.timer-card strong,.result-score{font-variant-numeric:tabular-nums;font-weight:780}.icon-button{display:grid;place-items:center;background:#142e3dcf;border-color:var(--panel-line);border-radius:11px;color:#d3e4e1;box-shadow:0 3px 12px #07151f20}.icon-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.icon-button.active{background:#244840d9;color:var(--mint);border-color:#b2f3b06b}.icon-button:hover{background:#294954}.off-line{left:10px;top:20px;width:23px;height:2px;background:currentColor;box-shadow:0 0 0 1px #142e3d}.social-button,.name-field,.sandbox-button{border-color:var(--panel-line)}.social-button{color:#d4e6df;background:#183441b8;border-radius:11px}.social-button:hover{background:#294953}.name-field{background:#e4fff007;box-shadow:inset 0 1px #ffffff05}.name-field:focus-within{border-color:#b2f3b08a;background:#e4fff00d}.play-button{box-shadow:0 5px 18px #07151f26;border-radius:11px}.sandbox-button{background:#668e85b3;box-shadow:none}.player-label{background:#102b3ce8;border-color:#d9f5ef2e;border-radius:8px;box-shadow:0 3px 10px #07151f26}.rank-row{border-color:#d9f5ef12}.result-stats>div{background:#ffffff04;border-color:#d9f5ef19;border-radius:11px}.leave-button{background:#142e3dbd;border-color:var(--panel-line);color:#b9d0ca;border-radius:9px}.leave-button:hover{color:#fff;background:#294954}body.playing #city-event{background:#142e3dde;color:#d5e7df}.mass-track{background:#d9f5ef15}#joystick{background:#142e3d57;border-color:#d9f5ef55}#joystick span{background:#b2f3b087}@media(max-width:800px),(pointer:coarse){.icon-button svg{width:18px;height:18px}.off-line{left:6px;top:15px;width:20px}.icon-button{border-radius:9px}}.player-label:not(.building-label){padding:4px 7px;max-width:170px;font-size:10px;transition:opacity .15s}.player-label .combat-identity{max-width:125px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponent-mass{display:block;margin-top:3px;font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;color:#f1f8ee}.player-label.distant{opacity:.68;background:#142e3d99}.player-label .combat-status{letter-spacing:0;font-size:8px}.player-label.distant .player-heading{font-size:9px}
