:root{--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);color-scheme:dark;font-family:Inter,system-ui,sans-serif;background-color:#060b13;background-image:repeating-linear-gradient(135deg,transparent 0,transparent 26px,rgba(53,244,255,.11) 26px,rgba(53,244,255,.11) 28px);color:#f3fcff}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100dvh;min-height:100dvh;overflow:hidden;position:fixed;top:0;left:0}body{display:grid;place-items:center;background:radial-gradient(circle at 50% 0,rgba(255,58,158,.08),transparent 30rem),#05070d}.app-shell{position:fixed;top:0;left:0;width:100vw;height:100dvh;margin:0;padding:0}button{border:1px solid #2c3d4b;border-radius:.75rem;background:#0c141e;color:#f3fcff;padding:.65rem .9rem;font:inherit;cursor:pointer}.game-frame{position:relative;width:100%;height:100%;overflow:hidden;border:0;border-radius:0;background:#000}.game-controls{position:absolute;right:calc(.9rem + 5px);bottom:calc(var(--safe-area-bottom) + .7rem + 5px);z-index:10;display:flex;gap:.35rem;opacity:.72;transition:opacity .14s ease}.game-controls:hover,.game-controls:focus-within{opacity:1}.game-controls button{display:grid;width:2.6rem;height:2.6rem;place-items:center;border-color:#35f4ff55;border-radius:50%;background:#07101be8;padding:0;color:#dffcff;font-size:1.25rem;line-height:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.game-controls button[aria-pressed=true]{border-color:#ff3a9e88;color:#ffb4d8}.game-controls #pause{border-width:2px;color:#35f4ff;font-weight:800;-webkit-text-stroke:.35px rgba(239,254,255,.39);box-shadow:inset 0 0 .7rem #35f4ff1f,0 0 .5rem #35f4ff4d,0 0 1.25rem #35f4ff24;text-shadow:0 0 .12rem rgba(255,255,255,.25),0 0 .3rem rgba(53,244,255,.238),0 0 .62rem rgba(53,244,255,.155)}.music-loading{position:absolute;z-index:22;bottom:calc(var(--safe-area-bottom) + 1rem);left:50%;display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:center;min-width:11.5rem;border:1px solid rgba(53,244,255,.52);border-radius:.8rem;background:#050d17eb;padding:.58rem .8rem;box-shadow:inset 0 1px #ffffff0f,0 .8rem 2.4rem #00000073,0 0 1.2rem #35f4ff1f;opacity:1;transform:translate(-50%);transition:opacity .14s ease,transform .14s ease;pointer-events:none}.music-loading[hidden]{display:none}.music-loading-spinner{width:1.55rem;height:1.55rem;border:2px solid rgba(53,244,255,.18);border-top-color:#35f4ff;border-right-color:#ff3a9e;border-radius:50%;animation:music-loading-spin .72s linear infinite;box-shadow:0 0 .6rem #35f4ff33}.music-loading-copy{display:grid;gap:.1rem;font-family:monospace;line-height:1}.music-loading-copy strong{color:#effeff;font-size:.68rem;letter-spacing:.14em}.music-loading-copy small{color:#7faab7;font-size:.52rem;letter-spacing:.1em}@keyframes music-loading-spin{to{transform:rotate(360deg)}}.reduced-motion .music-loading-spinner{animation-duration:1.8s}.sound-glyph{width:1.2rem;height:1.2rem;display:block;background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2335f4ff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9v6h4l5 4V5L8 9H4Z' fill='%2335f4ff' stroke='none'/%3E%3Cpath d='M17 9.5a4 4 0 0 1 0 5M19.5 7a7.5 7.5 0 0 1 0 10'/%3E%3C/svg%3E")}.settings-glyph{width:1.2rem;height:1.2rem;display:block;transform:translateY(1px);background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2335f4ff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9.6 3-.5 2a7.8 7.8 0 0 0-1.7 1l-2-.7-1.5 2.6 1.6 1.3a7.5 7.5 0 0 0 0 2l-1.6 1.3 1.5 2.6 2-.7a7.8 7.8 0 0 0 1.7 1l.5 2h3l.5-2a7.8 7.8 0 0 0 1.7-1l2 .7 1.5-2.6-1.6-1.3a7.5 7.5 0 0 0 0-2l1.6-1.3-1.5-2.6-2 .7a7.8 7.8 0 0 0-1.7-1l-.5-2h-3Z' fill='%2307101b'/%3E%3Ccircle cx='11.1' cy='10.2' r='2.5'/%3E%3C/svg%3E")}.leaderboard-glyph{width:1.2rem;height:1.2rem;display:block;background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2335f4ff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19V9m7 10V5m7 14v-7'/%3E%3Cpath d='M3 19h18' opacity='.55'/%3E%3C/svg%3E")}.game-controls button.is-muted .sound-glyph{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffb4d8' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9v6h4l5 4V5L8 9H4Z' fill='%23ffb4d8' stroke='none'/%3E%3Cpath d='m18 9-5 6m0-6 5 6'/%3E%3C/svg%3E")}.game-controls button[hidden]{display:none}.pause-overlay{position:absolute;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:calc(var(--safe-area-top) + 1rem) 1rem calc(var(--safe-area-bottom) + 1rem);background:radial-gradient(circle at 50% 43%,rgba(53,244,255,.08),transparent 18rem),#01030880;-webkit-backdrop-filter:blur(2px) saturate(.8);backdrop-filter:blur(2px) saturate(.8)}.pause-overlay[hidden]{display:none}.pause-card{position:relative;display:grid;gap:.8rem;width:min(21.5rem,88vw);overflow:hidden;border:1px solid rgba(108,234,255,.58);border-radius:1.15rem;background:linear-gradient(145deg,#111e2cf5,#050a13f7),#080e18;padding:1.15rem;box-shadow:inset 0 1px #ffffff14,0 0 0 4px #02070ead,0 1.4rem 4rem #000000ad,0 0 2rem #35f4ff1f}.pause-card:before{position:absolute;top:0;right:2rem;left:2rem;height:2px;background:linear-gradient(90deg,transparent,#35f4ff,#ff3a9e,transparent);content:""}.pause-card-header{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;min-height:3.6rem;text-align:left}.pause-status-light{width:.62rem;height:.62rem;border-radius:50%;background:#ff3a9e;box-shadow:0 0 0 4px #ff3a9e1f,0 0 .9rem #ff3a9e}.pause-status-code{display:grid;width:2.3rem;height:2.3rem;place-items:center;border:1px solid rgba(53,244,255,.25);border-radius:.65rem;background:#02070f8c;color:#35f4ff;font-size:1rem}.pause-track{width:100%;margin:0;border:1px solid rgba(91,135,151,.24);border-radius:.75rem;background:#01060d7a;padding:.75rem}.pause-track h3{display:flex;justify-content:space-between;margin:0 0 .65rem;color:#8db9c6;font-family:monospace;font-size:.67rem;letter-spacing:.16em}.pause-track h3 b{color:#58f5aa;font-size:.55rem;font-weight:700;letter-spacing:.12em}.pause-track-title{display:block;overflow:hidden;color:#eefcff;font-family:monospace;font-size:.86rem;line-height:1.2;text-overflow:ellipsis;text-shadow:0 0 .45rem #35f4ff66;white-space:nowrap}.pause-upgrade-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem .7rem;text-align:left}.pause-upgrade{min-width:0;border-left:2px solid rgba(53,244,255,.55);padding:.12rem 0 .12rem .48rem;font-family:monospace;line-height:1.15}.pause-upgrade span,.pause-upgrade strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pause-upgrade span{color:#8db9c6;font-size:.58rem;letter-spacing:.06em}.pause-upgrade strong{margin-top:.12rem;color:#eefcff;font-size:.72rem;font-weight:700;text-shadow:0 0 .45rem #35f4ff88}.pause-kicker{margin:0 0 .15rem;color:#8db9c6;font-family:monospace;font-size:.7rem;letter-spacing:.18em}.pause-card h2{margin:0;color:#f4fdff;font-family:monospace;font-size:1.65rem;letter-spacing:.08em;text-shadow:0 0 .7rem rgba(53,244,255,.55)}.pause-card button{min-width:0;border-color:#74a6b847;border-radius:.65rem;background:#050d17cc;color:#b8d4dc;font-family:monospace;font-size:.7rem;font-weight:700;letter-spacing:.08em}.pause-card .pause-primary{width:100%;border-color:#35f4ff;background:linear-gradient(90deg,#35f4ff24,#35f4ff0a);padding-block:.82rem;color:#effeff;font-size:.8rem;box-shadow:inset 0 0 1.2rem #35f4ff14}.pause-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.pause-actions button{width:100%}#game{display:grid;width:100%;height:100%;place-items:center;touch-action:none}#game canvas{display:block;max-width:100%;max-height:100%;image-rendering:auto;touch-action:none}@media(min-aspect-ratio:3/4){.app-shell{left:50%;width:min(100vw,56.25dvh);transform:translate(-50%)}.game-frame{border:1px solid #243440;border-radius:1rem}}@media(display-mode:standalone),(display-mode:fullscreen){html,body,.app-shell{top:0;left:0;width:100vw;height:100dvh;max-width:none;transform:none}.game-frame{width:100%;height:100%;border:0;border-radius:0}body{overscroll-behavior:none;-webkit-user-select:none;user-select:none}}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffdc3e;outline-offset:3px}dialog{border:0;padding:0;background:transparent;color:#f3fcff}dialog::backdrop{background:#02050cc2;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.settings-panel{display:grid;gap:.9rem;min-width:min(22rem,85vw);border:1px solid #35f4ff;background:#07101bf2;padding:1.5rem;box-shadow:0 0 0 4px #07101bcc,0 0 2rem #35f4ff33;font-family:monospace}.settings-card{width:min(21.5rem,88vw);max-height:90dvh;overflow-y:auto;min-width:0;gap:.8rem;border-color:#6ceaff94;border-radius:1.15rem;background:linear-gradient(145deg,#111e2cfa,#050a13fa),#080e18;padding:1.15rem}.settings-card h2{margin:0;color:#f4fdff;font-size:1.65rem;text-shadow:0 0 .7rem rgba(53,244,255,.55)}.settings-status-light{background:#35f4ff;box-shadow:0 0 0 4px #35f4ff1f,0 0 .9rem #35f4ff}.settings-status-code{color:#ff3a9e}.settings-module{border:1px solid rgba(91,135,151,.24);border-radius:.75rem;background:#01060d7a;padding:.75rem}.settings-module h3{display:flex;justify-content:space-between;margin:0 0 .65rem;color:#8db9c6;font:.67rem monospace;letter-spacing:.16em}.settings-module h3 b{color:#58f5aa;font-size:.55rem;letter-spacing:.12em}.settings-toggle-grid,.settings-select-grid,.settings-volume-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.settings-card .settings-toggle-grid label,.settings-card .settings-select-grid label,.settings-card .settings-volume-grid label{min-width:0;justify-content:space-between;border:1px solid rgba(116,166,184,.2);border-radius:.55rem;background:#050d17b8;padding:.55rem .6rem;color:#b8d4dc;font-size:.67rem;line-height:1.15}.settings-card .setting-volume{display:grid;gap:.5rem}.settings-card .setting-volume>span{display:flex;justify-content:space-between;align-items:center}.settings-card .setting-volume output{color:#35f4ff;font:700 .62rem monospace}.settings-card input[type=range]{width:100%;height:.3rem;margin:.25rem 0;border-radius:999px;background:#35f4ff2e;accent-color:#35f4ff}.settings-card input[type=checkbox]{width:1.05rem;height:1.05rem;flex:0 0 auto;accent-color:#35f4ff}.settings-card .setting-select{display:grid;gap:.4rem}.settings-card select{width:100%;min-width:0;border-color:#35f4ff61;border-radius:.4rem;background:#02070feb;padding:.45rem .5rem;font-size:.65rem}.settings-card #close-settings{width:100%;justify-self:stretch;border-radius:.65rem;color:#effeff}.settings-panel h2{margin:0 0 .65rem;color:#ff3a9e;font-size:2.25rem;letter-spacing:.08em;text-align:left;text-shadow:0 0 .6rem #ff3a9e99}.settings-panel label{display:flex;align-items:center;gap:.75rem;color:#eefcff;letter-spacing:.04em}.settings-panel input{width:1.25rem;height:1.25rem}.settings-panel .setting-select{justify-content:space-between}.settings-panel select{min-width:8.5rem;border:1px solid #35f4ff;border-radius:0;background:#02050c;padding:.45rem .65rem;color:#eefcff;font:inherit;text-transform:uppercase}.settings-panel button,.settings-panel .button-link{min-width:9rem;justify-self:center;border-color:#ffdc3e;border-radius:0;color:#ffdc3e;font-family:monospace;font-weight:700;letter-spacing:.1em}.settings-panel .button-link{box-sizing:border-box;border:2px solid #ffdc3e;padding:.55rem .8rem;text-align:center;text-decoration:none}.settings-panel.settings-card h2{margin:0;color:#f4fdff;font-size:1.65rem;text-shadow:0 0 .7rem rgba(53,244,255,.55)}.settings-panel.settings-card select{width:100%;min-width:0;border-color:#35f4ff61;border-radius:.4rem;background:#02070feb;padding:.45rem .5rem;font-size:.65rem}.settings-panel.settings-card #close-settings{border-color:#35f4ff;border-radius:.65rem;background:linear-gradient(90deg,#35f4ff24,#35f4ff0a);color:#effeff;box-shadow:inset 0 0 1.2rem #35f4ff14}.debug-panel{width:min(34rem,90vw)}.debug-panel pre{max-height:min(22rem,48vh);overflow:auto;margin:0;border:1px solid #243440;background:#000;padding:.8rem;color:#ffb4d8;font:.75rem/1.45 monospace;-webkit-user-select:text;user-select:text;white-space:pre-wrap}.debug-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.high-contrast{filter:contrast(1.3) saturate(1.15)}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.game-frame{transition:none}}.reduced-motion .game-frame{filter:none}@media(max-width:420px){.app-shell{padding:0}.game-frame{border:0;border-radius:0}}
