@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap";:root{--background: #05030b;--foreground: #fbfaff;--font-geist-mono: "Press Start 2P", ui-monospace, monospace}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;overflow:hidden;background:radial-gradient(circle at 20% 15%,#35134b 0,transparent 30%),radial-gradient(circle at 80% 80%,#0c3450 0,transparent 32%),#05030b;color:var(--foreground);font-family:Arial,Helvetica,sans-serif;overscroll-behavior:none}button{font:inherit}.loading-overlay{position:fixed;inset:0;z-index:30000;display:grid;place-items:center;background:#000;color:#fff}.tunnel-loading-content{display:grid;justify-items:center;gap:22px;width:min(88vw,620px);padding:24px;text-align:center}.tunnel-loading-dots{display:flex;align-items:center;gap:9px;height:24px}.tunnel-loading-dots i{width:9px;height:9px;border-radius:50%;background:var(--dot-color);animation:tunnel-loading-wave 1s ease-in-out infinite;animation-delay:calc(var(--dot-index) * .15s);will-change:transform}.tunnel-loading-message{display:grid;gap:4px;width:100%;margin:0;color:#ffffffb8;font:500 clamp(12px,2.8vw,15px)/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.025em}.tunnel-loading-message span{display:block}.tunnel-loading-message .loading-message-en{color:#ffffff85;font-size:.9em}@keyframes tunnel-loading-wave{0%,to{transform:translateY(4px)}50%{transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.tunnel-loading-dots i{animation:tunnel-loading-pulse 1.2s ease-in-out infinite}}@keyframes tunnel-loading-pulse{0%,to{opacity:.35}50%{opacity:1}}.game-page{min-height:100svh;display:grid;place-items:center;padding:clamp(10px,2vw,28px)}.game-shell{position:relative;width:min(1480px,100%);overflow:hidden;border:1px solid rgba(255,255,255,.18);background:#07050ff0;box-shadow:0 32px 100px #000000ad,inset 0 0 0 1px #ffffff08}.portrait-handheld,.portrait-control{display:none}.start-stickers{position:absolute;z-index:8;inset:0;display:block;overflow:hidden;pointer-events:none}.start-stickers.is-in-game{display:none}.start-stickers img{width:100%;height:100%;display:block;object-fit:contain;object-position:center}.hud{min-height:54px;display:flex;align-items:center;padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,#100a1efa,#07050ef5)}.brand-block{display:flex;align-items:center;gap:11px;min-width:0}.brand-block strong{font:900 12px/1.15 var(--font-geist-mono),monospace;letter-spacing:.13em;white-space:nowrap}.brand-gem{width:16px;height:16px;flex:0 0 auto;transform:rotate(45deg);border:2px solid #fff;background:#cf55ff;box-shadow:0 0 18px #c851ff}.mode-chip{--chip-color: #b86cff;min-width:210px;padding:7px 14px;text-align:center;border:1px solid color-mix(in srgb,var(--chip-color),transparent 35%);background:color-mix(in srgb,var(--chip-color),transparent 88%)}.mode-chip span{font:900 12px/1 var(--font-geist-mono),monospace;letter-spacing:.22em}.mode-chip small{display:block;max-width:240px;margin-top:5px;overflow:hidden;color:#bbb4c6;font:8px/1 var(--font-geist-mono),monospace;letter-spacing:.1em;text-overflow:ellipsis;white-space:nowrap}.hud-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.hud-actions button,.practice button{cursor:pointer;border:1px solid rgba(255,255,255,.14);background:#ffffff06;color:#8f8999;padding:7px 9px;font:8px/1 var(--font-geist-mono),monospace;letter-spacing:.08em}.hud-actions button:hover,.practice button:hover{color:#fff;border-color:#ffffff6b}.coin-count,.combo-count,.score-count,.accuracy-count{white-space:nowrap;font:900 9px/1 var(--font-geist-mono),monospace;letter-spacing:.07em}.coin-count{color:#ffe265;text-shadow:0 0 10px rgba(255,220,70,.35)}.combo-count{color:#8dff9b}.score-count{color:#fff}.accuracy-count{color:#bca8ff}.canvas-wrap{position:relative;width:100%;aspect-ratio:16 / 8.25;min-height:370px;max-height:calc(100svh - 106px);overflow:hidden;cursor:crosshair;touch-action:none;user-select:none}.canvas-stage{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;image-rendering:pixelated}.progress-track{position:absolute;inset:0 0 auto;height:4px;background:#ffffff21}.progress-track span{display:block;height:100%;box-shadow:0 0 14px currentColor;transition:width 80ms linear}.progress-label{position:absolute;top:14px;left:50%;transform:translate(-50%);text-shadow:0 2px 10px #000;font:800 11px/1 var(--font-geist-mono),monospace;letter-spacing:.1em}.attempt-label{position:absolute;top:14px;left:16px;color:#a59eaf;font:10px/1 var(--font-geist-mono),monospace}.attempt-label b{color:#fff;font-size:12px}.mobile-stats{display:none;position:absolute;top:14px;right:12px;gap:9px;color:#ffe265;font:900 9px/1 var(--font-geist-mono),monospace;text-shadow:0 2px 8px #000}.mobile-stats span:last-child{color:#8dff9b}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:#04020a94;backdrop-filter:blur(4px)}.start-overlay{padding:28px;background:radial-gradient(circle at 50% 46%,#661f9180,#04020ae0 72%)}.eyebrow{color:#d9aaff;font:800 9px/1 var(--font-geist-mono),monospace;letter-spacing:.25em}.five-mark{display:flex;gap:7px;margin:14px 0 10px}.five-mark i{display:block;width:14px;height:14px;transform:rotate(45deg);border:1px solid #fff;box-shadow:0 0 14px currentColor}.start-overlay h1{margin:8px 0 10px;font:900 clamp(40px,7.7vw,96px)/.79 Arial Black,Impact,sans-serif;letter-spacing:-.075em;filter:drop-shadow(0 12px 35px rgba(183,71,255,.28))}.start-overlay h1 span{color:transparent;-webkit-text-stroke:2px #e35cff}.start-overlay p{max-width:590px;margin:10px 0 18px;color:#c0b8ca;font-size:12px;line-height:1.65}.primary-button{min-width:176px;cursor:pointer;border:2px solid #fff;background:#f8f5ff;color:#0b0612;padding:12px 22px;box-shadow:7px 7px #cf50ff;font:900 11px/1 var(--font-geist-mono),monospace;letter-spacing:.14em;transition:transform .12s ease,box-shadow .12s ease}.primary-button:hover{transform:translate(3px,3px);box-shadow:4px 4px #cf50ff}.controls-line{display:flex;align-items:center;gap:8px;margin-top:19px;color:#918a9b;font:9px/1 var(--font-geist-mono),monospace}.controls-line kbd{border:1px solid #6e6578;background:#171020;color:#fff;padding:5px 7px}.controls-line i{width:1px;height:13px;margin:0 3px;background:#554c60}.death-overlay{animation:overlay-in .16s ease both}.death-card{width:min(320px,calc(100% - 32px));display:flex;flex-direction:column;align-items:center;padding:24px;border:2px solid #f6f1ff;background:#170c29;box-shadow:10px 10px #663499,0 22px 70px #000000b3}.dead-mark{width:38px;height:38px;display:grid;place-items:center;transform:rotate(45deg);border:2px solid #ff638f;color:#ff638f;font:900 25px/1 monospace}.dead-mark:first-letter{transform:rotate(-45deg)}.dead-art{width:68px;aspect-ratio:308 / 320;display:block;background:var(--sw-death-bunny) center / contain no-repeat;filter:drop-shadow(0 0 12px rgba(53,255,214,.3))}.death-card p{margin:16px 0 5px;color:#c4bdce;font:800 11px/1 var(--font-geist-mono),monospace;letter-spacing:.18em}.death-card strong{font:900 43px/1 Arial Black,sans-serif}.score-death-card>strong{margin-bottom:18px}.death-card small{margin:8px 0 18px;color:#978fa2;font:9px/1.4 var(--font-geist-mono),monospace}.death-card .bilingual-note{display:grid;gap:3px}.bilingual-note span:last-child{color:#746d80;font-size:7px;letter-spacing:.06em}.button-en{display:block;margin-top:5px;font-size:9px;letter-spacing:.1em;opacity:.76}.respawn-button{background:#8cff7c;box-shadow:6px 6px #248f46}.respawn-button:hover{box-shadow:3px 3px #248f46}.death-card .primary-button{font-size:13px;line-height:1.05}.text-button{margin-top:16px;cursor:pointer;border:0;background:transparent;color:#aaa1b5;font:11px/1 var(--font-geist-mono),monospace;text-decoration:underline}.finish-hand{width:58px;aspect-ratio:246 / 256;display:block;background:var(--sw-final-hand) center / contain no-repeat;filter:drop-shadow(0 0 14px rgba(244,201,77,.48))}.complete-card{border-color:#eaff62;box-shadow:10px 10px #6c7e14}.complete-card>strong{font-size:32px}.result-grid{width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:15px}.result-grid span{display:flex;justify-content:space-between;padding:8px;border:1px solid rgba(255,255,255,.12);color:#92899e;font:8px/1 var(--font-geist-mono),monospace}.result-grid b{color:#fff;font-size:10px}.game-footer{min-height:52px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:8px 16px;border-top:1px solid rgba(255,255,255,.1);color:#a49dab;font:8px/1 var(--font-geist-mono),monospace;letter-spacing:.08em}.live-dot{display:inline-block;width:6px;height:6px;margin-right:8px;border-radius:50%;background:#71ff88;box-shadow:0 0 10px #71ff88}.game-footer p{margin:0;color:#d0c9d8}.practice{display:flex;justify-content:flex-end;gap:5px}.practice span{align-self:center;margin-right:3px;color:#5f5967}.practice button{padding:5px 6px}@keyframes overlay-in{0%{opacity:0;transform:scale(1.025)}}@media(max-width:760px){.game-page{padding:0}.game-shell{min-height:100svh;display:flex;flex-direction:column;border:0}.hud{min-height:54px;grid-template-columns:1fr auto;padding:8px 10px}.brand-block strong{font-size:9px}.brand-block span:not(.brand-gem),.hud-actions,.practice{display:none}.mobile-stats{display:flex}.mode-chip{min-width:112px;padding:6px 8px}.mode-chip small{max-width:108px}.canvas-wrap{flex:1;min-height:0;max-height:none;aspect-ratio:auto}.game-footer{min-height:44px;grid-template-columns:1fr auto;padding:7px 10px}.start-overlay h1{font-size:clamp(42px,17vw,76px)}.start-overlay p{max-width:360px;font-size:10px}}@media(max-height:650px)and (orientation:landscape){.game-page{padding:0}.game-shell{width:100%;height:100svh;display:flex;flex-direction:column;border:0}.hud{min-height:46px;padding:6px 11px}.canvas-wrap{flex:1;min-height:0;max-height:none;aspect-ratio:auto}.game-footer{min-height:38px;padding:5px 11px}.start-overlay h1{font-size:58px}.start-overlay p{margin:6px 0 10px}.controls-line{margin-top:10px}}@media(orientation:portrait){html,body{width:100%;height:100%;overflow:hidden;background:#05020d}.game-page{--device-w: min(100vw, calc(100svh / 1.77683));--device-h: calc(var(--device-w) * 1.77683);position:relative;width:100vw;height:100svh;min-height:0;padding:0;overflow:hidden;background:#000}.game-shell{position:absolute;top:50%;left:50%;width:var(--device-w);height:var(--device-h);min-height:0;display:block;overflow:hidden;transform:translate(-50%,-50%);border:0;background:#080414;box-shadow:0 0 56px #000000b8}.hud{display:none}.portrait-handheld{position:absolute;inset:0;display:block;pointer-events:none}.portrait-handheld>span{position:absolute;background-position:center;background-repeat:no-repeat;image-rendering:pixelated}.portrait-body-middle{z-index:0;top:calc(var(--device-w) * .2572);bottom:calc(var(--device-w) * .1722);left:0;width:100%;background-image:var(--sw-portrait-body);background-repeat:repeat-y!important;background-size:100% auto}.portrait-base-top{z-index:1;top:0;left:0;width:100%;height:calc(var(--device-w) * .2572);background-image:var(--sw-portrait-base-top);background-size:100% 100%}.portrait-screen-bezel{z-index:3;top:calc(var(--device-w) * .2572);left:0;width:100%;height:calc(var(--device-w) * .9246);background-image:var(--sw-portrait-screen);background-size:100% 100%}.portrait-base-bottom{z-index:1;bottom:0;left:0;width:100%;height:calc(var(--device-w) * .1722);background-image:var(--sw-portrait-base-bottom);background-size:100% 100%}.portrait-decor{z-index:4;height:auto;background-size:contain}.portrait-decor-title{top:calc(var(--device-w) * .0808);left:29.44%;width:41.34%;aspect-ratio:389 / 69;background-image:var(--sw-portrait-title)}.portrait-decor-njz{top:calc(var(--device-w) * .2104);left:28.37%;width:43.46%;aspect-ratio:409 / 57;background-image:var(--sw-portrait-njz)}.portrait-decor-top-light{top:calc(var(--device-w) * .1403);left:9.25%;width:5.53%;aspect-ratio:52 / 44;background-image:var(--sw-portrait-light)}.portrait-decor-top-speaker{top:calc(var(--device-w) * .1201);right:11.48%;width:13.39%;aspect-ratio:126 / 81;background-image:var(--sw-portrait-speaker)}.portrait-decor-est{left:38.79%;bottom:calc(var(--device-w) * .5228);width:22.64%;aspect-ratio:213 / 70;background-image:var(--sw-portrait-est)}.portrait-decor-bottom-left{left:8.08%;bottom:calc(var(--device-w) * .1509);width:10.41%;aspect-ratio:98 / 263;background-image:var(--sw-portrait-bottom-left)}.portrait-decor-bottom-right{right:8.18%;bottom:calc(var(--device-w) * .1509);width:9.99%;aspect-ratio:94 / 174;background-image:var(--sw-portrait-bottom-right)}.canvas-wrap{position:absolute;z-index:2;left:11.1%;top:calc(var(--device-w) * .324);width:77.8%;height:calc(var(--device-w) * .797);min-height:0;max-height:none;flex:none;overflow:hidden;border-radius:clamp(12px,calc(var(--device-w) * .035),25px);cursor:default}.canvas-stage{inset:-6% auto auto -25%;width:222.5%;height:112%}.portrait-control{position:absolute;z-index:6;left:50%;bottom:calc(var(--device-w) * .1435);width:47.61%;aspect-ratio:448 / 343;display:block;transform:translate(-50%);touch-action:none;user-select:none;cursor:pointer;border:0;padding:0;background:transparent;-webkit-tap-highlight-color:transparent}.portrait-control span{position:absolute;inset:0;display:block;background-position:center bottom;background-repeat:no-repeat;background-size:contain;image-rendering:pixelated;transition:opacity 35ms linear}.portrait-control-up{background-image:var(--sw-control-up);opacity:1}.portrait-control-down{background-image:var(--sw-control-down);opacity:0}.portrait-control.is-pressed .portrait-control-up{opacity:0}.portrait-control.is-pressed .portrait-control-down{opacity:1}.start-overlay{padding:10px}.start-overlay h1{margin:4px 0 8px;font-size:clamp(24px,8vw,34px);line-height:.84}.start-overlay p,.start-overlay .controls-line{display:none}.eyebrow{font-size:6px;letter-spacing:.12em}.five-mark{margin:8px 0 6px}.five-mark i{width:8px;height:8px}.primary-button{min-width:132px;padding:9px 14px;font-size:8px}.dead-art{width:clamp(48px,calc(var(--device-w) * .092),64px)}.start-stickers.is-in-game{display:block}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}
