@font-face{font-family:Dela Gothic One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dela-gothic-one-japanese-400-normal-De8ccvZQ.woff2)format("woff2"),url(/assets/dela-gothic-one-japanese-400-normal-B8vM98KW.woff)format("woff")}@font-face{font-family:Dela Gothic One;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dela-gothic-one-latin-400-normal-AgyGD05y.woff2)format("woff2"),url(/assets/dela-gothic-one-latin-400-normal-qxqiosUh.woff)format("woff")}:root{--bg-rgb:2 1 8;--text-rgb:238 240 255;--cyan-rgb:94 242 255;--magenta-rgb:255 92 225;--gold-rgb:255 207 92;--score-rgb:255 246 221;--bg:rgb(var(--bg-rgb));--surface:#0a0619;--line:rgb(var(--text-rgb) / .25);--line-strong:rgb(var(--text-rgb) / .8);--text:rgb(var(--text-rgb));--muted:#9a98c4;--cyan:rgb(var(--cyan-rgb));--magenta:rgb(var(--magenta-rgb));--gold:rgb(var(--gold-rgb));--score:rgb(var(--score-rgb));--on-accent:#05030d;--display:"Dela Gothic One", system-ui, sans-serif;--body:system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;--radius:10px;--radius-lg:12px;--gutter:16px;--content-width:440px;--touch:52px;--touch-sm:44px;--z-overlay:10;--z-dev:40;--z-modal:50;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--body);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0}html[data-route=breakout],html[data-route=breakout] body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:fixed;inset:0;overflow:hidden}button{color:inherit;font:inherit;text-align:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;margin:0;padding:0}button:disabled{cursor:default}[hidden]{display:none!important}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}a{color:var(--cyan)}h1,h2,p{margin:0}.muted{color:var(--muted)}.small{font-size:12px}.btn{min-height:var(--touch);border-radius:var(--radius);border:2px solid var(--line-strong);background:rgb(var(--bg-rgb) / .4);width:100%;color:var(--text);font-family:var(--display);letter-spacing:.08em;text-align:center;justify-content:center;align-items:center;padding:0 18px;font-size:16px;text-decoration:none;transition:transform 80ms,background 80ms;display:inline-flex}.btn:active{background:rgb(var(--text-rgb) / .12);transform:translateY(2px)}.btn[data-variant=primary]{border-color:var(--cyan);background:var(--cyan);color:var(--on-accent)}.icon-btn{width:var(--touch-sm);height:var(--touch-sm);border-radius:var(--radius);border:2px solid rgb(var(--text-rgb) / .5);background:rgb(var(--bg-rgb) / .5);flex:none;place-items:center;display:grid}.icon-btn[aria-disabled=true]{opacity:.35;cursor:default}.pause-icon{border-left:4px solid var(--text);border-right:4px solid var(--text);width:14px;height:16px}.gear-icon{border:3px dotted var(--text);width:20px;height:20px;box-shadow:inset 0 0 0 3px var(--text);border-radius:50%}.back{min-height:var(--touch-sm);color:var(--muted);font-family:var(--body);align-items:center;font-size:15px;text-decoration:none;display:inline-flex}.panel{border-radius:var(--radius-lg);background:var(--surface);border:2px solid var(--line);gap:12px;width:100%;max-width:360px;padding:22px 18px;display:grid}.panel-title{text-align:center;font-family:var(--display);letter-spacing:.2em;margin-bottom:6px;font-size:22px;font-weight:400}.panel p{line-height:1.6}.panel-message{text-align:center;color:var(--muted)}.not-found .panel-title,.not-found .panel-message{word-break:keep-all;overflow-wrap:anywhere}.panel-actions{gap:10px;margin-top:10px;display:grid}.action-list{gap:10px;width:100%;max-width:320px;display:grid}.screen-title{font-family:var(--display);letter-spacing:.2em;margin-right:-.2em;font-size:clamp(28px,9vw,40px);font-weight:400}.setting{border:0;min-width:0;margin:0;padding:0}.setting-label{color:var(--muted);margin-bottom:6px;padding:0;font-size:13px}.segmented{grid-template-columns:1fr 1fr;gap:6px;display:grid}.segmented label{cursor:pointer;display:grid;position:relative}.segmented input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented span{border-radius:var(--radius);border:2px solid rgb(var(--text-rgb) / .35);min-height:46px;font-family:var(--display);text-align:center;place-items:center;font-size:15px;display:grid}.segmented input:checked+span{border-color:var(--cyan);background:var(--cyan);color:var(--on-accent)}.segmented input:focus-visible+span{outline:2px solid var(--text);outline-offset:2px}.overlay{z-index:var(--z-overlay);overscroll-behavior:contain;padding:calc(var(--gutter) + var(--safe-top)) calc(var(--gutter) + var(--safe-right)) calc(var(--gutter) + var(--safe-bottom)) calc(var(--gutter) + var(--safe-left));flex-direction:column;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden auto}.overlay[data-tone=solid]{background:var(--bg)}.overlay[data-tone=dim]{background:rgb(var(--bg-rgb) / .72);-webkit-backdrop-filter:blur(3px)}.overlay[data-tone=clear]{background:rgb(var(--bg-rgb) / .3)}.overlay[data-layer=modal]{z-index:var(--z-modal);position:fixed}.overlay-top{width:100%;max-width:var(--content-width);min-height:var(--touch-sm);flex:none;justify-content:space-between;align-items:center;gap:12px;display:flex}.overlay-body{width:100%;max-width:var(--content-width);text-align:center;flex-direction:column;flex:none;align-items:center;gap:14px;margin-block:auto;padding-block:12px;display:flex}.overlay-body>*{flex:none;max-width:100%}.portal{width:100%;min-height:100dvh;max-width:calc(var(--content-width) + 40px + var(--safe-left) + var(--safe-right));padding:calc(56px + var(--safe-top)) calc(20px + var(--safe-right)) calc(28px + var(--safe-bottom)) calc(20px + var(--safe-left));flex-direction:column;gap:48px;margin:0 auto;display:flex}.portal-logo{font-family:var(--display);flex-direction:column;align-items:flex-start;margin:0;font-weight:400;line-height:.92;display:flex}.portal-logo-main{color:#fff;text-shadow:0 0 14px rgb(var(--cyan-rgb) / .35);font-size:clamp(36px,12.3vw,62px)}.portal-logo-sub{letter-spacing:.6em;color:var(--cyan);margin-top:.35em;font-size:clamp(16px,5vw,24px)}.portal-games{border-top:2px solid var(--line);margin:0;padding:0;list-style:none}.portal-games li{border-bottom:2px solid var(--line)}.portal-game{min-height:88px;color:var(--text);grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:16px 4px;text-decoration:none;transition:transform 80ms;display:grid}.portal-game:active{transform:translateY(2px)}.portal-game-no{font-family:var(--display);letter-spacing:.1em;color:var(--muted);font-size:14px}.portal-game-title{min-width:0;font-family:var(--display);font-size:clamp(24px,7.5vw,32px);line-height:1.2}.portal-game-arrow{font-family:var(--display);color:var(--cyan);font-size:24px;transition:transform .15s}@media (hover:hover){.portal-game:hover .portal-game-arrow{transform:translate(4px)}}.screen{background:var(--bg);position:fixed;inset:0;overflow:hidden}.stage{touch-action:none;position:absolute;inset:0}.stage canvas{position:absolute;inset:0}.hud{padding:calc(6px + var(--safe-top)) calc(12px + var(--safe-right)) 2px calc(12px + var(--safe-left));grid-template-columns:minmax(var(--touch-sm), 1fr) auto minmax(var(--touch-sm), 1fr);pointer-events:none;font-family:var(--display);grid-template-rows:auto 18px;grid-template-areas:".score pause""chain chain chain";column-gap:8px;transition:opacity .25s;display:grid;position:absolute;top:0;left:0;right:0}.hud[data-visible=false],.hud-lives[data-visible=false]{opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}.hud-pause{pointer-events:auto;grid-area:pause;place-self:start end}.hud-label{letter-spacing:.24em;color:var(--muted);font-size:10px}.hud-score-row{flex-direction:column;grid-area:score;align-items:center;min-width:0;display:flex}.hud-score{--bump:0;--glow:0;font-variant-numeric:tabular-nums;min-height:1lh;color:var(--score);white-space:nowrap;transform:scale(calc(1 + .14 * var(--bump)));transform-origin:50% 60%;will-change:transform;text-shadow:0 0 calc(3px + 6px * var(--glow)) rgb(var(--score-rgb) / .7), 0 0 calc(8px + 18px * var(--glow)) rgb(var(--gold-rgb) / .6), 0 0 calc(12px + 32px * var(--glow)) rgb(var(--magenta-rgb) / calc(.15 + .45 * var(--glow)));font-size:clamp(28px,9vw,36px);line-height:1.05}.hud-best{color:var(--muted);letter-spacing:.08em;white-space:nowrap;margin-top:2px;font-size:10px}.hud-newbest{color:var(--gold);margin-left:6px;display:none}.hud-newbest[data-active=true]{animation:.4s cubic-bezier(.2,1.8,.4,1) pop-in;display:inline}.hud-chain{text-align:center;letter-spacing:.1em;color:var(--gold);opacity:0;font-variant-numeric:tabular-nums;white-space:nowrap;grid-area:chain;font-size:13px;transition:opacity .2s}.hud-chain[data-active=true]{opacity:1}.hud-bottom-probe{width:0;height:var(--safe-bottom);visibility:hidden;pointer-events:none;position:absolute;top:0;left:0}@media (pointer:coarse){.hud-bottom-probe{height:calc(var(--safe-bottom) + 80px)}}.hud-lives{right:calc(12px + var(--safe-right));bottom:calc(10px + var(--safe-bottom));border-radius:var(--radius);background:rgb(var(--bg-rgb) / .6);border:1px solid var(--line);font-family:var(--display);pointer-events:none;align-items:center;gap:8px;padding:6px 12px;transition:opacity .25s;display:flex;position:absolute}.hud-lives-dots{gap:7px;display:flex}.hud-lives-dots span{border:2px solid rgb(var(--magenta-rgb) / .35);border-radius:50%;width:11px;height:11px;transition:background .2s,box-shadow .2s,border-color .2s}.hud-lives-dots span[data-on=true]{border-color:var(--magenta);background:var(--magenta);box-shadow:0 0 6px var(--magenta)}.loading-text{font-family:var(--display);letter-spacing:.2em;color:var(--muted)}.title-logo{font-family:var(--display);color:#fff;text-shadow:0 0 6px #ffffffb3, 0 0 16px var(--cyan), 0 0 38px rgb(var(--cyan-rgb) / .4);flex-direction:column;align-items:center;margin-bottom:20px;font-size:clamp(40px,14vw,88px);font-weight:400;line-height:1;display:flex}.title-logo span:last-child{text-shadow:0 0 6px #ffffffb3, 0 0 16px var(--magenta), 0 0 38px rgb(var(--magenta-rgb) / .45);font-size:1.2em}.choice-list{gap:14px;width:100%;display:grid}.choice{--accent:var(--cyan);border-radius:var(--radius-lg);border:2px solid var(--accent);background:rgb(var(--bg-rgb) / .7);text-align:left;gap:6px;width:100%;min-width:0;padding:16px 18px;transition:transform 80ms;display:grid}.choice[data-accent=magenta]{--accent:var(--magenta)}.choice:active{transform:translateY(2px)}.choice-name{font-family:var(--display);letter-spacing:.1em;font-size:clamp(22px,7vw,28px)}.choice-desc{color:var(--muted);word-break:keep-all;overflow-wrap:anywhere;font-size:13px;line-height:1.5}.choice-meta{font-family:var(--display);color:var(--gold);font-size:13px}.stage-list{gap:10px;width:100%;margin:0;padding:0;list-style:none;display:grid}.stage-row{border-radius:var(--radius-lg);border:2px solid rgb(var(--magenta-rgb) / .7);background:rgb(var(--bg-rgb) / .7);text-align:left;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 16px;transition:transform 80ms;display:grid}.stage-row:active{transform:translateY(2px)}.stage-row:disabled{opacity:.4}.stage-row[data-cleared=true]{border-color:var(--gold)}.stage-row-no{font-family:var(--display);text-align:center;font-size:26px}.stage-row-name{font-family:var(--display);letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.stage-row-meta{font-family:var(--display);color:var(--gold);white-space:nowrap;font-size:11px}.ready-title{font-family:var(--display);letter-spacing:.08em;text-shadow:0 0 8px #fffc, 0 0 24px var(--cyan);font-size:clamp(34px,11vw,44px);animation:.5s cubic-bezier(.2,1.6,.4,1) pop-in}.ready-sub{font-family:var(--display);letter-spacing:.3em;color:var(--muted);margin-right:-.3em}.ready-cta{min-height:var(--touch-sm);font-family:var(--display);letter-spacing:.12em;margin-top:20px;padding:0 12px;font-size:20px;animation:1.6s ease-in-out infinite breathe}.result-heading{font-family:var(--display);color:#fff;text-shadow:0 0 8px #ffffffb3, 0 0 22px var(--magenta), 0 0 50px rgb(var(--magenta-rgb) / .5);animation:slam var(--result-heading-duration) cubic-bezier(.2, 1.5, .35, 1) both;font-size:clamp(40px,13vw,80px);font-weight:400;line-height:1}[data-cleared=true] .result-heading{text-shadow:0 0 8px #ffffffb3, 0 0 22px var(--gold), 0 0 50px rgb(var(--gold-rgb) / .55)}.result-stage{font-family:var(--display);color:var(--muted);letter-spacing:.16em;margin-top:-6px;font-size:13px}.result-score{animation:pop-in var(--result-pop-duration) var(--result-score-delay) cubic-bezier(.2, 1.6, .4, 1) both;gap:4px;display:grid}.result-label{font-family:var(--display);letter-spacing:.3em;color:var(--muted);font-size:12px}.result-total{font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--score);text-shadow:0 0 16px rgb(var(--gold-rgb) / .45);font-size:clamp(36px,12vw,64px)}.result-newbest{font-family:var(--display);color:var(--gold);animation:pop-in var(--result-pop-duration) var(--result-newbest-delay) cubic-bezier(.2, 1.8, .4, 1) both;font-size:18px}.result-best{font-family:var(--display);color:var(--muted);font-size:13px}.dev{left:calc(6px + var(--safe-left));bottom:calc(6px + var(--safe-bottom));z-index:var(--z-dev);max-width:calc(100% - 12px);font:11px/1.4 ui-monospace,monospace;position:absolute}.dev-toggle{border:1px solid var(--line);background:#0009;border-radius:8px;padding:4px 8px}.dev-body{border-radius:var(--radius);border:1px solid var(--line);background:#000000d1;max-height:55vh;margin-top:4px;padding:8px;overflow:auto}.dev-body p{margin:0 0 4px}.dev-row{gap:6px;margin:6px 0;display:flex}.dev-row button{border:1px solid var(--line);background:#ffffff14;border-radius:6px;padding:4px 8px}.dev fieldset{border:1px solid var(--line);border-radius:8px;margin:6px 0;padding:4px 6px}.dev label{justify-content:space-between;gap:8px;display:flex}.dev input{color:#fff;width:80px;font:inherit;background:#111;border:1px solid #333}@keyframes pop-in{0%{opacity:0;transform:scale(2.2)}to{opacity:1;transform:scale(1)}}@keyframes breathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.97)}}@keyframes slam{0%{opacity:0;transform:scale(3.2)rotate(-4deg)}60%{opacity:1;transform:scale(.94)rotate(.5deg)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation:none!important}.hud-score{transform:none}}
