:root{--color-bg: #0a0e17;--color-panel: rgba(10, 20, 40, .85);--color-border: #2a4060;--color-accent: #4488aa;--color-text: #c0d8e8;--color-text-bright: #ffffff;--color-success: #27AE60;--color-danger: #E74C3C;--color-warning: #F1C40F;--font-title: "Orbitron", "Trebuchet MS", "Segoe UI", sans-serif;--font-display: "Bebas Neue", "Impact", sans-serif;--font-body: "Trebuchet MS", "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Consolas", "Courier New", monospace;--radius: 6px;--xg-bg: #0a0e17;--xg-panel-solid: #0d1626;--xg-well: rgba(5, 10, 20, .55);--xg-cyan: #44ccdd;--xg-cyan-mid: #4488aa;--xg-cyan-wash: rgba(68, 204, 221, .08);--xg-cyan-glow: rgba(68, 204, 221, .45);--xg-border: rgba(68, 204, 221, .18);--xg-border-muted: rgba(68, 204, 221, .1);--xg-text-bright: #e8f2fa;--xg-text: #c0d2e0;--xg-text-muted: #8ea0b8;--xg-text-faint: #5a6c84;--xg-text-accent: #6aafc4;--xg-r-xs: 3px;--xg-r-pill: 999px;--xg-ease: cubic-bezier(.16, 1, .3, 1);--xg-t-fast: .15s}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:var(--color-bg);font-family:var(--font-body);color:var(--color-text);-webkit-font-smoothing:antialiased;touch-action:manipulation;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}input,textarea,select{font-size:16px}#game-canvas{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}#game-canvas canvas{display:block}#ui-root{position:absolute;top:env(safe-area-inset-top,0);right:env(safe-area-inset-right,0);bottom:env(safe-area-inset-bottom,0);left:env(safe-area-inset-left,0);pointer-events:none;z-index:10}#ui-root>*{pointer-events:auto}h1,h2,h3,h4{color:var(--color-text-bright);font-weight:600;letter-spacing:2px}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.2rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 24px;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-panel);color:var(--color-text);font-family:var(--font-body);font-size:14px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s ease;user-select:none}.btn:hover{background:#142846e6;border-color:var(--color-accent);color:var(--color-text-bright)}.btn:active{transform:scale(.97)}.btn--primary{border-color:var(--color-accent);background:#48a3;color:var(--color-text-bright)}.btn--primary:hover{background:#48a6}.btn--danger{border-color:var(--color-danger);color:var(--color-danger)}.btn--danger:hover{background:#e74c3c33}.panel{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px}.modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius);padding:24px;min-width:300px;max-width:90vw}.modal__title{margin-bottom:16px;font-size:1.2rem;color:var(--color-text-bright);letter-spacing:2px}.modal__actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}#rotate-overlay{display:none;position:fixed;inset:0;z-index:999998;flex-direction:column;align-items:center;justify-content:center;gap:24px;background:var(--color-bg)}#rotate-overlay.rotate-overlay--show{display:flex}.rotate-overlay__icon{font-size:72px;color:var(--color-accent);animation:rotate-hint 2s ease-in-out infinite;display:block;line-height:1}.rotate-overlay__text{font-size:1.1rem;letter-spacing:3px;text-transform:uppercase;color:var(--color-text)}@media(orientation:portrait){#rotate-overlay{display:flex}}@keyframes rotate-hint{0%{transform:rotate(0)}30%{transform:rotate(-90deg)}70%{transform:rotate(-90deg)}to{transform:rotate(0)}}html[data-locale=zh]{--font-title: "ZCOOL QingKe HuangYou", "Orbitron", "Noto Sans SC", sans-serif;--font-display: "Noto Sans SC", "Bebas Neue", sans-serif;--font-body: "Noto Sans SC", "Trebuchet MS", sans-serif;--font-mono: "JetBrains Mono", "Noto Sans SC", "Consolas", monospace}html[data-locale=ko]{--font-title: "Black Han Sans", "Orbitron", "Noto Sans KR", sans-serif;--font-display: "Noto Sans KR", "Bebas Neue", sans-serif;--font-body: "Noto Sans KR", "Trebuchet MS", sans-serif;--font-mono: "JetBrains Mono", "Noto Sans KR", "Consolas", monospace}.menu-bg-root{position:fixed;inset:0;z-index:0;pointer-events:none;background:#000;overflow:hidden}.menu-bg-layer{position:absolute;user-select:none;-webkit-user-drag:none}.menu-bg-layer--blurred-backdrop{inset:-8%;width:116%;height:116%;object-fit:cover;filter:blur(var(--bg-blur-px, 72px)) brightness(var(--bg-brightness, .35))}.menu-bg-layer--centered-image{top:50%;left:50%;transform:translate(-50%,-50%);height:var(--center-img-height, 100vh);aspect-ratio:1 / 1;object-fit:cover;box-shadow:0 0 80px #0009}.menu-bg-layer--cover-image{top:50%;left:50%;width:min(max(100vw,100vh),2560px);height:min(max(100vw,100vh),2560px);transform:translate(-50%,-50%);object-fit:cover;-webkit-mask-image:linear-gradient(to right,transparent 0%,black 6%,black 94%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,black 6%,black 94%,transparent 100%)}.menu-bg-layer--floating-element{transform:translate(-50%,-50%);object-fit:contain}@media(prefers-reduced-motion:reduce){body:not(.accessibility-motion-override) *,body:not(.accessibility-motion-override) *:before,body:not(.accessibility-motion-override) *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}body.reduce-motion *,body.reduce-motion *:before,body.reduce-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}body.reduce-motion .sp-option--pulse{outline:2px solid var(--color-accent, #aaddff);outline-offset:2px}body.reduce-flashing .sp-glitch--subtle,body.reduce-flashing .sp-glitch--medium,body.reduce-flashing .sp-glitch--heavy,body.reduce-flashing .sp-glitch-aberr{animation:none!important;opacity:1!important}body.reduce-flashing .sp-glitch-aberr{display:none!important}.pwa-install-button{position:fixed;left:calc(16px + env(safe-area-inset-left));bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;display:flex;align-items:stretch;gap:4px;font-family:var(--font-body)}.pwa-install-button__main{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;background:#0000008c;border:1px solid var(--color-accent, #4488aa);color:var(--color-accent, #aaddff);border-radius:6px;cursor:pointer;font-family:var(--font-body);font-size:14px;letter-spacing:.02em}.pwa-install-button__main:hover,.pwa-install-button__main:focus-visible{background:#48a3;outline:none}.pwa-install-button__icon{font-size:16px;line-height:1}.pwa-install-button__label{white-space:nowrap}.pwa-install-button__dismiss{width:28px;background:#0000008c;border:1px solid var(--color-accent, #4488aa);color:var(--color-accent, #aaddff);border-radius:6px;cursor:pointer;font-size:16px;line-height:1}.pwa-install-button__dismiss:hover,.pwa-install-button__dismiss:focus-visible{background:#48a3;outline:none}.pwa-install-modal-backdrop{position:fixed;inset:0;background:#000000b3;z-index:100;display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.pwa-install-modal{background:var(--color-panel, rgba(10, 14, 23, .97));border:1px solid var(--color-accent, #4488aa);border-radius:8px;padding:24px;max-width:480px;width:100%;color:var(--color-text, #e8eef7);font-family:var(--font-body)}.pwa-install-modal__title{font-family:var(--font-title);font-size:18px;margin:0 0 16px;color:var(--color-accent, #aaddff)}.pwa-install-modal__steps{margin:0 0 16px;padding-left:24px}.pwa-install-modal__step{margin-bottom:8px;line-height:1.5}.pwa-install-modal__note{margin:12px 0 0;font-size:13px;opacity:.75;line-height:1.4}.pwa-install-modal__body{margin:0 0 16px;line-height:1.5}.pwa-install-modal__close{margin-top:8px;padding:8px 16px;background:transparent;border:1px solid var(--color-accent, #4488aa);color:var(--color-accent, #aaddff);border-radius:6px;cursor:pointer;font-family:var(--font-body);font-size:14px}.pwa-install-modal__close:hover,.pwa-install-modal__close:focus-visible{background:#48a3;outline:none}@media(max-width:600px){.pwa-install-button__label{display:none}}.nim-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}.nim-panel{background:#0d1320;border:1px solid var(--color-accent, #aaddff);padding:24px;min-width:320px;max-width:90vw;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:14px;font-family:var(--font-body);color:var(--color-text, #e6e6e6)}.nim-icon{max-width:96px;max-height:96px;object-fit:contain;align-self:center}.nim-title{margin:0;font-family:var(--font-title);font-size:1.4rem;color:var(--color-accent, #aaddff)}.nim-body{margin:0;font-size:.95rem;line-height:1.5;color:var(--color-text-muted, #aac)}.nim-counter-label{font-size:.85rem;color:var(--color-text-muted, #888);text-transform:uppercase;letter-spacing:.05em;text-align:center}.nim-panel .nc-wrap{display:flex;align-items:center;justify-content:center;gap:16px}.nim-panel .nc-minus,.nim-panel .nc-plus{width:40px;height:40px;background:transparent;border:1px solid var(--color-accent, #aaddff);color:var(--color-accent, #aaddff);font-family:var(--font-mono);font-size:1.4rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.nim-panel .nc-minus:hover:not(:disabled),.nim-panel .nc-plus:hover:not(:disabled){background:#aaddff1a}.nim-panel .nc-minus:disabled,.nim-panel .nc-plus:disabled{opacity:.3;cursor:not-allowed}.nim-panel .nc-num{min-width:3em;text-align:center;font-family:var(--font-mono);font-size:1.6rem;color:var(--color-accent, #aaddff)}.nim-preview{margin:0;font-family:var(--font-mono);font-size:1rem;color:var(--color-accent, #aaddff);text-align:center}.nim-actions{display:flex;justify-content:center;gap:12px;margin-top:8px}.nim-cancel,.nim-confirm{padding:10px 18px;background:transparent;border:1px solid var(--color-accent, #aaddff);color:var(--color-accent, #aaddff);font-family:var(--font-body);font-size:.95rem;cursor:pointer}.nim-cancel:hover,.nim-confirm:hover{background:#aaddff1a}.nim-confirm{background:#aaddff26;font-weight:600}.nim-confirm:hover{background:#aaddff40}.urgent-modal-backdrop{position:fixed;inset:0;z-index:95000;background:#0a0c14b3;display:flex;align-items:center;justify-content:center;font-family:var(--font-body)}.urgent-modal{background:#1a1d28;border:1px solid #4a3040;border-radius:6px;padding:32px;max-width:480px;width:90%;box-shadow:0 0 60px #c850641f}.urgent-modal-title{font-family:var(--font-title);font-size:18px;color:#f0a0a0;letter-spacing:2px;margin:0 0 16px}.urgent-modal-body{color:#cdd;font-size:13px;line-height:1.6;margin:0 0 24px;white-space:pre-wrap}.urgent-ack-btn{background:#2e1e28;border:1px solid #a8506a;color:#f0ccd4;font-family:inherit;font-size:13px;padding:10px 24px;cursor:pointer;border-radius:4px;width:100%;transition:background .15s}.urgent-ack-btn:hover{background:#3a2632}.player-notif-banner-stack{position:fixed;top:12px;right:12px;z-index:10000;display:flex;flex-direction:column;gap:8px;max-width:320px;font-family:var(--font-body)}.player-notif-banner{background:#1a2030;border:1px solid #3a5070;border-radius:4px;padding:10px 28px 10px 12px;position:relative;box-shadow:0 2px 12px #0000004d}.player-notif-banner-title{color:#7eb8f7;font-size:12px;font-weight:600;margin:0 0 4px}.player-notif-banner-body{color:#aab;font-size:11px;line-height:1.5;margin:0}.player-notif-banner-dismiss{position:absolute;top:6px;right:8px;background:none;border:none;color:#556;cursor:pointer;font-size:14px;padding:2px 6px}.player-notif-banner-dismiss:hover{color:#7eb8f7}.player-notif-more-link{display:block;text-align:center;padding:6px;color:#556;font-size:11px;cursor:pointer}.player-notif-more-link:hover{color:#7eb8f7}.toaster-stack{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translate(-50%);width:min(360px,calc(100vw - 32px));display:flex;flex-direction:column;gap:8px;pointer-events:none;z-index:90}.toast{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;padding:10px 14px;background:#0d1320eb;border:1px solid var(--color-accent, #aaddff);border-radius:6px;color:var(--color-text, #e6e6e6);font-family:var(--font-body);pointer-events:none;box-shadow:0 0 #adf0;opacity:0;transform:translateY(12px);animation:toast-in .3s ease-out forwards,toast-pulse 1.4s ease-out .2s}.toast--leaving{animation:toast-out .3s ease-in forwards}.toast__icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--color-accent, #aaddff);filter:drop-shadow(0 0 4px rgba(170,221,255,.6))}.toast__icon svg,.toast__icon img{width:100%;height:100%;object-fit:contain}.toast__label{font-size:.95rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast__value{font-family:var(--font-mono);font-size:1rem;color:var(--color-accent, #aaddff);font-weight:600;min-width:3em;text-align:right}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@keyframes toast-pulse{0%{box-shadow:0 0 #adf0}30%{box-shadow:0 0 24px 4px #aaddff8c}to{box-shadow:0 0 #adf0}}@media(prefers-reduced-motion:reduce){.toast{animation:toast-in-reduced .2s linear forwards}.toast--leaving{animation:toast-out-reduced .2s linear forwards}@keyframes toast-in-reduced{0%{opacity:0;transform:none}to{opacity:1;transform:none}}@keyframes toast-out-reduced{0%{opacity:1;transform:none}to{opacity:0;transform:none}}}.dev-probe-button{position:fixed;right:calc(8px + env(safe-area-inset-right));top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:22px;background:#141e32b3;border:1px solid var(--color-accent, #aaddff);color:var(--color-accent, #aaddff);font-family:var(--font-mono, "Share Tech Mono", monospace);font-size:11px;letter-spacing:1px;z-index:5000;cursor:pointer;user-select:none}.dev-probe-button:hover{background:#283c64d9}.dev-probe-modal{position:relative;background:var(--color-bg-panel, #1a1f2e);border:1px solid var(--color-accent, #aaddff);border-radius:6px;padding:16px;width:min(480px,92vw);max-height:80vh;overflow-y:auto;font-family:var(--font-mono, monospace);color:var(--color-text, #c8dff7)}.dev-probe-modal h2{margin:0 0 12px;font-size:14px}.dev-probe-modal__slot{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;margin-bottom:6px;background:#00000040;border:1px solid rgba(255,255,255,.08);border-radius:4px;cursor:pointer;font-size:12px}.dev-probe-modal__slot[disabled]{opacity:.5;cursor:not-allowed}.dev-probe-modal__slot:hover:not([disabled]){background:#5078ff26}.dev-probe-modal__custom-preview{background:#0000004d;padding:8px;border-radius:4px;font-size:10px;margin-bottom:12px}.dev-probe-modal__result{margin-top:12px;padding:10px;background:#00502833;border:1px solid rgba(80,200,140,.3);border-radius:4px;font-size:11px;word-break:break-all}.dev-probe-modal__result--error{background:#50000033;border-color:#c850504d}.splash{position:fixed;inset:0;z-index:9999;background:#0a0e17;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);cursor:pointer;opacity:1;transition:opacity .4s ease;font-family:var(--font-title, "Orbitron", system-ui, sans-serif);color:#adf;overflow:hidden}.splash--hidden{opacity:0;pointer-events:none}.splash__stars{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.splash__streak{transform-origin:0 0;opacity:0;filter:drop-shadow(0 0 4px rgba(255,255,255,.65));will-change:transform,opacity}.splash__streak--1{animation:splash-streak-1 9s linear infinite;animation-delay:0s}.splash__streak--2{animation:splash-streak-2 11s linear infinite;animation-delay:3.2s}.splash__streak--3{animation:splash-streak-3 8s linear infinite;animation-delay:6.5s}.splash__streak--4{animation:splash-streak-4 10s linear infinite;animation-delay:4.1s}.splash__dot{fill:#fff;opacity:.25}.splash__logo{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:16px;animation:splash-pulse 3s infinite ease-in-out}.splash__logo img{width:120px;height:120px;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 0 24px rgba(170,221,255,.45))}.splash__title{font-size:36px;letter-spacing:8px;font-weight:900;text-shadow:0 0 24px rgba(170,221,255,.65)}.splash__hint{position:relative;z-index:1;height:22px;width:320px;text-align:center}.splash__hint-line{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;letter-spacing:3px;text-transform:uppercase;opacity:0;animation:splash-cycle 10s infinite}.splash__hint-line--0{animation-delay:0s}.splash__hint-line--1{animation-delay:2.5s}.splash__hint-line--2{animation-delay:5s}.splash__hint-line--3{animation-delay:7.5s}.splash__loading{position:relative;z-index:1;font-size:13px;letter-spacing:3px;text-transform:uppercase;opacity:.6;animation:splash-pulse 2s infinite ease-in-out}.splash__progress{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;width:240px}.splash__progress[hidden]{display:none}.splash__progress-track{width:100%;height:4px;border-radius:2px;background:#aaddff26;overflow:hidden}.splash__progress-fill{height:100%;width:0%;border-radius:2px;background:#adf;box-shadow:0 0 8px #adf9;transition:width .24s ease}.splash__progress-label{font-size:11px;letter-spacing:2px;text-transform:uppercase;opacity:.7}@keyframes splash-pulse{0%,to{opacity:.7}50%{opacity:1}}@keyframes splash-cycle{0%{opacity:0}5%{opacity:.95}20%{opacity:.95}25%{opacity:0}to{opacity:0}}@keyframes splash-streak-1{0%{transform:translate(-100px,200px) rotate(22deg);opacity:0}2%{opacity:1}8%{opacity:1}12%{transform:translate(549px,462px) rotate(22deg);opacity:0}to{transform:translate(549px,462px) rotate(22deg);opacity:0}}@keyframes splash-streak-2{0%{transform:translate(900px,50px) rotate(38deg);opacity:0}2%{opacity:1}8%{opacity:1}12%{transform:translate(1373px,419px) rotate(38deg);opacity:0}to{transform:translate(1373px,419px) rotate(38deg);opacity:0}}@keyframes splash-streak-3{0%{transform:translate(300px,700px) rotate(-18deg);opacity:0}2%{opacity:1}8%{opacity:1}12%{transform:translate(918px,499px) rotate(-18deg);opacity:0}to{transform:translate(918px,499px) rotate(-18deg);opacity:0}}@keyframes splash-streak-4{0%{transform:translate(1100px,300px) rotate(28deg);opacity:0}2%{opacity:1}8%{opacity:1}12%{transform:translate(1762px,651px) rotate(28deg);opacity:0}to{transform:translate(1762px,651px) rotate(28deg);opacity:0}}@media(max-width:600px){.splash__title{font-size:28px;letter-spacing:6px}.splash__logo img{width:96px;height:96px}.splash__hint{width:280px}}
