:root{--color-bg:#0a0614;--color-panel-navy:#140b2e;--color-magenta:#ff2bd6;--color-cyan:#22e4ff;--color-yellow:#ffe14a;--color-purple:#9b5cff;--color-orange:#ff8a1f;--color-green:#3dff8b;--color-accent:var(--color-magenta);--color-text:#f4f0ff;--color-text-dim:#f4f0ffad;--color-panel:#140b2ed1;--color-panel-strong:#140b2ef0;--color-border:#22e4ff59;--color-border-strong:#ff2bd699;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--font-display:"Impact", "Haettenschweiler", "Arial Narrow Bold", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--shadow-panel:0 20px 60px #0009;--glow-magenta:0 0 10px #ff2bd6b3, 0 0 26px #ff2bd659;--glow-cyan:0 0 10px #22e4ffb3, 0 0 26px #22e4ff59;--ease-standard:cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;height:100%;min-height:100dvh;margin:0;overflow:hidden}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased}input,textarea,select{-webkit-user-select:text;user-select:text}h1,h2,p,dl,dd{margin:0}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-cyan);outline-offset:2px;border-radius:var(--radius-sm)}.game-canvas{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:fixed;inset:0}.app-root{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:relative}.overlay-layer{pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:fixed;inset:0}.overlay-layer>*{pointer-events:auto}.neon-panel{background:var(--color-panel);-webkit-backdrop-filter:blur(20px);border:1px solid var(--color-border);box-shadow:var(--shadow-panel);position:relative;overflow:hidden}.neon-panel:after{content:"";pointer-events:none;mix-blend-mode:overlay;opacity:.5;background:repeating-linear-gradient(#ffffff0d 0 1px,#0000 1px 3px);position:absolute;inset:0}.primary-button,.secondary-button,.icon-button{cursor:pointer;border-radius:var(--radius-sm);transition:transform .15s var(--ease-standard), background .15s var(--ease-standard), border-color .15s var(--ease-standard);border:1px solid #0000}.primary-button,.secondary-button{min-height:48px}.primary-button{background:var(--color-accent);color:#180a17;border-radius:var(--radius-md);box-shadow:var(--glow-magenta);padding:14px 28px;font-size:1.05rem;font-weight:700}.primary-button:hover{filter:brightness(1.1)}.primary-button:active{transform:scale(.97)}.secondary-button{border-color:var(--color-border);color:var(--color-text);border-radius:var(--radius-md);background:0 0;padding:12px 20px}.secondary-button:hover{border-color:var(--color-cyan)}.secondary-button:active{transform:scale(.97)}.icon-button{border-color:var(--color-border);background:#f4f0ff0f;flex:none;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.2rem;display:inline-flex}.icon-button:hover{border-color:var(--color-cyan);background:#f4f0ff24}.icon-button:active{transform:scale(.93)}.icon-button[aria-pressed=true]{border-color:var(--color-yellow);color:var(--color-yellow)}@media (pointer:coarse){.primary-button,.secondary-button,.icon-button{min-height:44px}.icon-button{min-width:44px}}.touch-only{display:none}@media (pointer:coarse),(hover:none){.pointer-only{display:none}.touch-only{display:initial}.legend-touch-list.touch-only{display:block}}.menu-screen{pointer-events:none;align-items:stretch;display:flex;position:fixed;inset:0}.menu-panel{pointer-events:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;width:100%;max-width:420px;height:100%;padding:max(28px, calc(env(safe-area-inset-top) + 12px)) 28px 28px;border-right:1px solid var(--color-border);animation:panel-in .4s var(--ease-standard);border-top:none;border-bottom:none;border-left:none;flex-direction:column;gap:22px;display:flex;overflow-y:auto}.menu-top-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.menu-top-actions{flex:none;align-items:center;gap:10px;display:flex}.menu-title{font-family:var(--font-display);letter-spacing:.03em;color:var(--color-cyan);text-shadow:var(--glow-cyan);font-size:clamp(2.1rem,7vw,2.8rem);animation:4.5s infinite neon-flicker}.menu-tagline{color:var(--color-yellow);letter-spacing:.08em;font-size:.85rem;font-weight:600}.play-button{margin-top:4px}.how-to-line{color:var(--color-text-dim);font-size:.8rem}.panel-section{flex-direction:column;gap:10px;display:flex}.panel-heading{letter-spacing:.12em;text-transform:uppercase;color:var(--color-purple);font-size:.75rem;font-weight:700}.score-table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:.9rem}.score-table td{padding:3px 0}.score-rank{color:var(--color-text-dim);width:1.4em}.score-initials{color:var(--color-yellow);letter-spacing:.06em;padding-right:12px;font-weight:700}.score-value{text-align:right;color:var(--color-text)}.legend-list{grid-template-columns:auto 1fr;gap:4px 12px;font-size:.85rem;display:grid}.legend-row{display:contents}.legend-row dt{color:var(--color-text-dim)}.legend-row dd{font-family:var(--font-mono);text-align:right;color:var(--color-text)}.legend-touch-list{color:var(--color-text-dim);margin:0;padding-left:18px;font-size:.78rem}.legend-touch-list li+li{margin-top:6px}.menu-credit{color:var(--color-text-dim);margin-top:auto;font-size:.75rem}.menu-credit a{color:var(--color-cyan)}@keyframes panel-in{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes neon-flicker{0%,19%,21%,23%,54%,56%,to{opacity:1}20%,22%,55%{opacity:.55}}@media (width<=720px){.menu-panel{border-right:none;border-top:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-width:none;height:auto;max-height:46dvh;padding-bottom:max(20px, env(safe-area-inset-bottom));animation:sheet-in .35s var(--ease-standard);gap:14px;margin-top:auto}.menu-tagline{display:none}.panel-section{gap:6px}.score-table td{padding:2px 0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (height<=480px) and (orientation:landscape){.menu-panel{width:min(340px,42vw);max-width:min(340px,42vw);height:100%;max-height:none;padding:max(16px, env(safe-area-inset-top)) 18px max(16px, env(safe-area-inset-bottom)) 18px;border-right:1px solid var(--color-border);animation:panel-in .4s var(--ease-standard);border-top:none;border-radius:0;gap:10px;margin-top:0}.menu-title{font-size:1.5rem}.menu-tagline{display:none}.panel-section{gap:4px}}.hud-top-bar{top:max(16px, env(safe-area-inset-top));left:max(16px, env(safe-area-inset-left));right:max(16px, env(safe-area-inset-right));padding:calc(10px + env(safe-area-inset-top)) 14px 10px;border-radius:var(--radius-md);animation:drop-in .3s var(--ease-standard);align-items:center;gap:12px;display:flex;position:fixed}.hud-score-block{flex-direction:column;gap:2px;min-width:0;display:flex}.hud-score{font-family:var(--font-mono);letter-spacing:.02em;color:var(--color-yellow);text-shadow:0 0 8px #ffe14a99;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.3rem;font-weight:700}.hud-ball-line{font-family:var(--font-mono);color:var(--color-text-dim);white-space:nowrap;font-size:.75rem}.hud-bonus{color:var(--color-orange)}.hud-badges{flex-wrap:wrap;flex:1;justify-content:center;gap:6px;display:flex}.hud-badge{letter-spacing:.05em;white-space:nowrap;border:1px solid;border-radius:999px;padding:3px 9px;font-size:.7rem;font-weight:700}.badge-ballsave{color:var(--color-cyan)}.badge-multiball{color:var(--color-purple)}.badge-tilt{color:var(--color-orange);animation:.9s ease-in-out infinite badge-pulse}.badge-extra{color:var(--color-green)}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.5}}.hud-actions{flex:none;gap:8px;display:flex}.hud-message{top:max(76px, calc(env(safe-area-inset-top) + 66px));min-height:1.2em;color:var(--color-cyan);font-family:var(--font-mono);letter-spacing:.04em;text-align:center;text-shadow:0 0 8px #22e4ff80;white-space:nowrap;text-overflow:ellipsis;max-width:calc(100vw - 32px);padding:6px 16px;font-size:.85rem;position:fixed;left:50%;overflow:hidden;transform:translate(-50%)}@keyframes drop-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@media (width<=640px){.hud-top-bar{flex-wrap:wrap}.hud-actions{gap:8px}.hud-actions .icon-button{width:44px;height:44px}.hud-badges{order:3;justify-content:flex-start;width:100%}}@media (width<=380px){.hud-ball-line{display:none}}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .25s var(--ease-standard);background:#0a061499;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.pause-card{border-radius:var(--radius-lg);text-align:center;width:min(320px,100%);animation:card-in .3s var(--ease-standard);flex-direction:column;gap:16px;padding:32px 28px;display:flex}.pause-title{font-family:var(--font-display);letter-spacing:.04em;color:var(--color-cyan);font-size:1.6rem}.game-over-card{border-radius:var(--radius-lg);text-align:center;width:min(380px,100%);animation:card-in .35s var(--ease-standard);flex-direction:column;gap:14px;padding:32px 28px;display:flex}.game-over-title{font-family:var(--font-display);letter-spacing:.04em;color:var(--color-magenta);text-shadow:var(--glow-magenta);font-size:1.8rem}.game-over-score{font-family:var(--font-mono);color:var(--color-yellow);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:700}.initials-form{border:1px dashed var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:10px;padding:12px;display:flex}.initials-label{color:var(--color-text-dim);font-size:.85rem}.initials-row{justify-content:center;gap:10px;display:flex}.initials-input{text-align:center;text-transform:uppercase;letter-spacing:.3em;width:5.5em;font-family:var(--font-mono);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#f4f0ff0f;padding:10px;font-size:1.3rem;font-weight:700}.initials-input:focus-visible{border-color:var(--color-cyan)}.initials-saved{color:var(--color-green);font-weight:700}.game-over-actions{flex-direction:column;gap:10px;margin-top:6px;display:flex}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes card-in{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.touch-controls{display:none}@media (pointer:coarse),(hover:none){.touch-controls{display:block}}.touch-zone,.touch-launch,.touch-nudge{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.touch-zone{top:calc(90px + env(safe-area-inset-top));background:0 0;border:none;border-radius:0;width:50%;margin:0;padding:0;position:fixed;bottom:0}.touch-zone-left{left:0}.touch-zone-right{right:0}.touch-zone:after{content:"";opacity:0;pointer-events:none;width:240px;height:240px;transition:opacity .15s var(--ease-standard);border-radius:50%;position:absolute;bottom:0}.touch-zone-left:after{background:radial-gradient(circle,#22e4ff66,#0000 70%);left:0;transform:translate(-40%,40%)}.touch-zone-right:after{background:radial-gradient(circle,#ff2bd666,#0000 70%);right:0;transform:translate(40%,40%)}.touch-zone[data-pressed=true]:after{opacity:1}.touch-chip{bottom:max(16px, env(safe-area-inset-bottom));pointer-events:none;font-family:var(--font-mono);letter-spacing:.08em;color:var(--color-text);opacity:.28;transition:opacity .15s var(--ease-standard);font-size:.75rem;position:fixed}.touch-chip-left{left:max(16px, env(safe-area-inset-left))}.touch-chip-right{right:max(16px, env(safe-area-inset-right))}.touch-chip[data-pressed=true]{opacity:.85}.touch-launch{right:max(16px, env(safe-area-inset-right));bottom:calc(40px + max(16px, env(safe-area-inset-bottom)));background:var(--color-accent);border:1px solid var(--color-magenta);color:#180a17;letter-spacing:.04em;min-height:64px;box-shadow:var(--glow-magenta);border-radius:999px;padding:0 28px;font-weight:700;animation:1.4s ease-in-out infinite launch-pulse;position:fixed}@keyframes launch-pulse{0%,to{box-shadow:var(--glow-magenta)}50%{box-shadow:0 0 18px #ff2bd6e6,0 0 42px #ff2bd68c}}.touch-nudge{top:calc(max(16px, env(safe-area-inset-top)) + 58px);right:max(16px, env(safe-area-inset-right));border:1px solid var(--color-purple);width:48px;height:48px;color:var(--color-text-dim);font-family:var(--font-mono);letter-spacing:.05em;z-index:1;background:#f4f0ff0f;border-radius:50%;margin:0;padding:0;font-size:.55rem;position:fixed}.touch-nudge:active{background:#9b5cff33}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=380px){.menu-panel{gap:16px;padding:20px}.modal-backdrop{padding:16px}.game-over-card,.pause-card{padding:24px 18px}.hud-top-bar{gap:8px;padding:8px 10px}}
