:root{font-family:Inter,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR',sans-serif;color:#153446;background:#e6eee7;font-synthesis:none;--ink:#153446;--mint:#6cddc5;--coral:#ff836a;--paper:#f7f5e9;--app-height:100dvh}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{min-width:280px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #ffb330;outline-offset:2px}[hidden]{display:none!important}.arcade{width:min(1220px,100%);height:var(--app-height);max-height:1120px;margin:auto;padding:12px max(16px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));display:grid;grid-template-rows:48px minmax(0,1fr) 26px;gap:10px}.masthead{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.wordmark{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font:900 17px ui-monospace,monospace;letter-spacing:-.6px;white-space:nowrap}.wordmark small{display:block;font-size:7px;letter-spacing:1.4px;margin-top:4px}.brand-mark{display:grid;place-items:center;position:relative;width:32px;height:34px;background:var(--ink);color:var(--paper);font-size:26px;box-shadow:3px 3px 0 #68c7b5}.brand-mark span{position:absolute;top:-4px;right:3px;color:var(--coral);font-size:19px}.edition{display:flex;align-items:center;gap:10px;font:10px ui-monospace,monospace;letter-spacing:1.4px;color:#5b746d}.edition i{background:#6bb79b;width:5px;height:5px}.utility{display:flex;align-items:center;gap:4px}.icon-button,.mode-button{height:44px;min-width:44px;border:0;border-radius:6px;color:var(--ink);background:transparent;display:flex;align-items:center;justify-content:center;gap:6px}.icon-button{font-size:24px}.mode-button{font-size:11px;font-weight:750;background:#d3e3d8;padding:0 12px}.mode-button>span:first-child{font-size:20px}.icon-button:hover,.mode-button:hover{background:#c2d9ce}.cabinet{width:min(100%,calc((var(--app-height) - 152px)*2.5));min-width:0;min-height:0;justify-self:center;border:3px solid var(--ink);box-shadow:5px 5px 0 #adc7bb;display:grid;grid-template-rows:58px minmax(0,1fr) 25px;background:var(--ink);overflow:hidden}.hud{display:grid;grid-template-columns:1fr 1.35fr 1fr;align-items:center;padding:8px 20px;gap:16px;color:var(--paper)}.eyebrow{display:block;font:8px ui-monospace,monospace;letter-spacing:1.6px;color:#a7c2c7;margin-bottom:4px}.hud-score strong{font:800 24px ui-monospace,monospace;letter-spacing:1px}.hud-route .eyebrow{text-align:center;font-size:10px;letter-spacing:.6px}.route-track{height:4px;background:#35566a;margin-top:9px;overflow:hidden}.route-track i{height:100%;display:block;background:var(--mint);width:0}.hud-life{text-align:right}.hud-life strong{display:flex;justify-content:flex-end;gap:5px;font:22px ui-monospace,monospace;color:var(--coral)}.hud-life .lost{color:#406072}.stage{position:relative;min-height:0;overflow:hidden;isolation:isolate;background:#95d6e5;container-type:size}canvas{display:block;width:100%;height:100%;image-rendering:pixelated;touch-action:none;user-select:none;-webkit-user-select:none}.screen-texture{position:absolute;inset:0;background:repeating-linear-gradient(transparent 0 3px,#112e3c08 3px 4px);opacity:.35;pointer-events:none;z-index:2}.overlay{position:absolute;inset:0;z-index:6}.start-screen{display:grid;grid-template-columns:1fr 300px;gap:25px;align-items:center;padding:5% 6%;background:linear-gradient(90deg,#bfe5e327,transparent 80%)}.title-block{align-self:start;padding-top:4%;text-shadow:0 1px #f7ffea70}.game-kicker{font:800 8px ui-monospace,monospace;letter-spacing:1.5px;margin:0 0 14px}.title-block h1{position:relative;display:inline-block;margin:0;font:1000 clamp(50px,8vw,104px)/.86 ui-monospace,'Courier New',monospace;letter-spacing:-7px;color:#fff8de;text-shadow:4px 0 var(--ink),-4px 0 var(--ink),0 -4px var(--ink),0 5px var(--ink),6px 9px #35738a;transform:rotate(-3deg)}.title-block h1>span{color:#ffd174}.title-block h1>i{position:absolute;right:-35px;bottom:14px;font-size:27px;font-style:normal;letter-spacing:0}.game-subtitle{font-size:18px;font-weight:800;letter-spacing:-.6px;margin:23px 0 14px}.title-badge{font:7px ui-monospace,monospace;letter-spacing:1.1px}.launch-card{background:#f7f5e9f5;border:2px solid var(--ink);box-shadow:5px 5px 0 #17394b59;padding:18px;align-self:end}.stage-picker{width:100%;display:flex;align-items:center;gap:10px;border:0;padding:0;background:transparent;text-align:left;color:var(--ink);min-height:48px}.stage-number{font:800 31px ui-monospace,monospace;color:#248278;padding-right:11px;border-right:1px solid #b3c6b9}.stage-picker small{display:block;font-size:8px;letter-spacing:.5px;color:#5f786d;margin-bottom:4px}.stage-picker strong{font-size:19px;letter-spacing:-.7px}.stage-picker>b{margin-left:auto;font-size:20px}.stage-feature{font-size:11px;line-height:1.55;margin:12px 0;color:#476357;min-height:17px}.course-spec{font:9px ui-monospace,monospace;display:flex;justify-content:space-between;border-top:1px solid #c1d1c6;padding:12px 0 14px;color:#61736b}.button{border:0;min-height:46px;width:100%;display:flex;align-items:center;justify-content:center;gap:12px;font-size:13px;font-weight:850;border-radius:3px}.primary{color:#102f3b;background:#ffbc79;box-shadow:0 3px 0 #c88756}.primary:hover{background:#ffd395}.secondary{background:#dbe8df;color:var(--ink);margin-top:10px}.text-button{background:transparent;color:#466359;font-size:11px}.text-button:hover{text-decoration:underline}.input-instruction{margin:5px 0 0;font-size:10px;line-height:1.6;color:#5e766a;text-align:center}.play-topline{position:absolute;top:12px;left:16px;right:16px;display:flex;justify-content:space-between;font:800 11px ui-monospace,monospace;color:#16384b;pointer-events:none;z-index:3}.play-topline>span{padding:5px 8px;background:#effaeaaf;border-radius:2px}.combo{position:absolute;right:23px;top:51px;display:grid;grid-template-columns:auto auto;column-gap:6px;align-items:end;color:var(--ink);text-shadow:1px 1px #faffef;pointer-events:none;z-index:3}.combo>b{font:900 32px ui-monospace,monospace;grid-row:span 2;line-height:1}.combo>span{font:700 8px ui-monospace,monospace;letter-spacing:1px}.combo>small{font:800 14px ui-monospace,monospace}.toast{position:absolute;top:19%;left:50%;transform:translateX(-50%);max-width:90%;width:max-content;background:#153446e8;color:#fff3bb;padding:9px 15px;box-shadow:3px 3px #38758d66;font-size:12px;font-weight:800;text-align:center;pointer-events:none;z-index:5}.fever-status{position:absolute;left:17px;bottom:90px;width:95px;color:#163347;pointer-events:none;text-shadow:1px 1px #fff6be;z-index:3}.fever-status>span{font:900 italic 19px ui-monospace,monospace}.fever-status>div{height:5px;margin-top:5px;background:#345d69}.fever-status i{display:block;height:100%;background:#ffe193}.jump-hint{position:absolute;bottom:27%;left:50%;transform:translateX(-50%);max-width:90%;padding:7px 12px;background:#f7f8e6e8;color:var(--ink);font-size:11px;text-align:center;pointer-events:none;z-index:3}.gesture-guide{position:absolute;bottom:12px;left:0;right:0;display:flex;justify-content:center;gap:20px;color:#1d4c59;text-shadow:0 1px #fff;font-size:10px;font-weight:700;pointer-events:none;z-index:3}.controls{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:12px;right:12px;display:flex;justify-content:space-between;align-items:end;pointer-events:none;z-index:4;user-select:none;-webkit-user-select:none}.move-controls{display:flex;gap:7px}.control-key{pointer-events:auto;touch-action:none;min-width:54px;height:52px;border:2px solid #264a59;border-radius:8px;background:#eef7e4da;box-shadow:0 3px 0 #264a5970;color:var(--ink);font:700 25px ui-monospace,monospace}.jump-key{min-width:104px;font-size:13px;background:#ffce98ea}.jump-key span{font-size:20px;margin-left:5px}.control-key.held,.control-key:active{background:#88d3bd;transform:translateY(2px);box-shadow:0 1px 0 #264a5970}.cabinet-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 16px;color:#aac4c6;font:9px ui-monospace,monospace}.footer{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;color:#587566}.modal-screen{background:#112e46b3;display:grid;place-items:center;padding:16px;backdrop-filter:blur(3px)}.result-card{width:min(345px,100%);max-height:100%;overflow:auto;overscroll-behavior:contain;border:2px solid var(--ink);background:var(--paper);padding:22px;box-shadow:5px 5px 0 #0a24376b;text-align:center}.result-card .game-kicker{font-size:7px;color:#57786f;margin-bottom:9px}.result-card h2{margin:0 0 8px;font-size:23px;letter-spacing:-1px}.result-card>p:not(.game-kicker){font-size:11px;line-height:1.6;color:#557166;margin:0 0 12px}.result-stars{color:#ba7626;font-size:22px;letter-spacing:7px;margin:0 0 8px}.result-score{display:flex;flex-direction:column;align-items:center;margin:10px 0 12px}.result-score>span{font-size:9px;color:#5c796a}.result-score strong{font:900 40px ui-monospace,monospace;letter-spacing:-2px}.result-score small{font:800 8px ui-monospace,monospace;color:#b75f42;background:#ffe4c2;padding:4px 7px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #becfc2;border-bottom:1px solid #becfc2;padding:10px 0;margin:0 0 10px}.result-stats>div{display:flex;flex-direction:column;gap:5px}.result-stats span{font-size:9px;color:#607d6f}.result-stats strong{font:700 14px ui-monospace,monospace}.result-card .personal-best{font-size:9px}.pause-controls{background:#e5eee3;padding:10px;line-height:1.7}.journey-card{display:flex;flex-direction:column;background:var(--paper);border:2px solid var(--ink);width:min(720px,100%);max-height:100%;padding:20px;box-shadow:5px 5px 0 #0a24376b}.journey-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.journey-heading .game-kicker{font-size:7px;margin-bottom:7px;color:#57796d}.journey-heading h2{font-size:24px;letter-spacing:-1px;margin:0}.journey-tip{font-size:10px;line-height:1.5;color:#587766;margin:10px 0 14px;flex-shrink:0}.stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;overflow:auto;overscroll-behavior:contain;min-height:0;padding:3px;scrollbar-width:thin}.stage-card{min-height:96px;display:flex;flex-direction:column;align-items:flex-start;border:1px solid #b7cbbd;border-left:4px solid var(--stage-color,#62ac9e);background:#edf2e8;color:var(--ink);padding:10px;text-align:left;gap:4px;border-radius:3px;position:relative}.stage-card:hover{background:#dbeadf}.stage-card[aria-current=true]{outline:2px solid #1d756c;outline-offset:-2px;background:#dbeae0}.stage-card:disabled{opacity:.58;background:#e7ede5}.stage-card .stage-card-top{display:flex;justify-content:space-between;align-items:center;width:100%;font:800 10px ui-monospace,monospace;color:#548073}.stage-card strong{font-size:13px;letter-spacing:-.3px}.stage-card small{font:8px ui-monospace,monospace;color:#577368}.stage-card .stars{color:#a8712a;font-size:11px;letter-spacing:1px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.noscript{position:absolute;inset:0;display:grid;place-items:center;background:var(--paper);z-index:10}.stage.hit:after{content:'';position:absolute;inset:0;border:5px solid #ff906d99;pointer-events:none;z-index:4}.arcade:fullscreen{max-height:none;width:100%;background:#e6eee7}
@media(max-width:800px){.edition{display:none}.arcade{padding:8px 10px max(6px,env(safe-area-inset-bottom));grid-template-rows:44px minmax(0,1fr) 20px;gap:7px}.cabinet{width:100%;grid-template-rows:52px minmax(0,1fr) 23px;border-width:2px;box-shadow:3px 3px #adc7bb}.wordmark{font-size:14px}.wordmark small{font-size:6px;letter-spacing:.7px}.utility{gap:0}.mode-button{padding:0 8px}.hud{padding:8px 12px;gap:10px}.hud-score strong{font-size:20px}.hud-route .eyebrow{font-size:9px}.hud-life strong{font-size:20px}.start-screen{padding:5%;grid-template-columns:1fr 260px;gap:18px}.title-block h1{font-size:70px;letter-spacing:-5px}.game-subtitle{font-size:15px}.launch-card{padding:15px}.footer{font-size:8px}.cabinet-bottom{padding:0 10px;font-size:8px}.journey-card{padding:14px}}
@media(max-width:500px){.arcade{padding:5px 6px max(5px,env(safe-area-inset-bottom));grid-template-rows:44px minmax(0,1fr) 16px;gap:5px}.wordmark{font-size:12px;gap:6px}.wordmark small{display:none}.brand-mark{width:24px;height:26px;font-size:21px}.brand-mark span{font-size:16px;top:-5px}.expand{display:none}.mode-button{font-size:9px;padding:0 7px}.mode-button>span:first-child{font-size:17px}.icon-button{min-width:40px}.hud{grid-template-columns:1fr 1.25fr .75fr;padding:7px 10px;gap:8px}.hud-score strong{font-size:18px;letter-spacing:0}.eyebrow{font-size:7px;letter-spacing:1px}.hud-route .eyebrow{font-size:8px;letter-spacing:0}.hud-life strong{font-size:17px;gap:3px}.start-screen{display:flex;flex-direction:column;justify-content:space-between;gap:12px;padding:7% 7% 5%;text-align:center}.title-block{padding:0;align-self:center}.title-block h1{font-size:clamp(58px,19vw,86px)}.title-block h1>i{font-size:22px;right:-27px}.game-kicker{font-size:6px;letter-spacing:.9px;margin-bottom:14px}.game-subtitle{font-size:14px;margin:19px 0 9px}.title-badge{font-size:6px}.launch-card{align-self:center;width:min(290px,100%);padding:13px;text-align:left}.stage-picker{min-height:43px}.stage-number{font-size:27px}.stage-picker strong{font-size:17px}.stage-feature{font-size:10px;margin:7px 0;min-height:15px}.course-spec{font-size:8px;padding:8px 0 10px}.input-instruction{font-size:9px;margin-top:0}.button{min-height:44px;font-size:12px}.text-button{font-size:10px}.cabinet-bottom{font-size:7px}.footer>span:first-child{display:none}.footer{justify-content:center;font-size:7px}.play-topline{left:9px;right:9px;top:9px;font-size:10px}.combo{right:14px;top:47px}.combo>b{font-size:27px}.toast{font-size:10px;padding:8px 11px}.controls{left:9px;right:9px;bottom:10px}.control-key{min-width:51px;height:48px}.jump-key{min-width:91px}.gesture-guide{font-size:8px;gap:16px}.modal-screen{padding:9px}.result-card{padding:16px}.result-card h2{font-size:21px}.journey-card{padding:12px}.journey-heading h2{font-size:20px}.journey-tip{font-size:9px}.stage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.stage-card{min-height:85px;padding:8px}.stage-card strong{font-size:12px}}
@media(max-height:620px){.arcade{padding-top:4px;padding-bottom:4px;grid-template-rows:44px minmax(0,1fr);gap:4px}.footer{display:none}.cabinet{width:min(100%,calc((var(--app-height) - 102px)*2.5));grid-template-rows:44px minmax(0,1fr) 20px}.hud{padding-block:4px}.hud-score strong{font-size:18px}.hud-life strong{font-size:18px}.eyebrow{font-size:7px;margin-bottom:2px}.route-track{margin-top:6px}.title-block h1{font-size:62px}.game-kicker{margin-bottom:10px}.game-subtitle{margin:19px 0 10px}.start-screen{padding:4%;align-items:center}.launch-card{padding:12px}.stage-feature{margin:7px 0;font-size:10px}.course-spec{padding:8px 0 10px}.stage-picker strong{font-size:16px}.input-instruction{font-size:9px}.controls{bottom:9px}.control-key{height:46px;min-width:48px}.jump-key{min-width:90px}.journey-card{padding:12px}.stage-card{min-height:83px}.fever-status{bottom:68px}}
@media(max-height:620px) and (max-width:500px){.start-screen{padding:5% 7% 3%;gap:5px}.title-block h1{font-size:50px;line-height:.88;letter-spacing:-4px}.game-subtitle{font-size:12px;margin:14px 0 0}.title-badge,.title-block .game-kicker{display:none}.launch-card{padding:10px}.stage-feature{display:none}.stage-picker{min-height:38px}.course-spec{padding:7px 0 8px}.input-instruction{font-size:8px}.launch-card .text-button{min-height:36px}.cabinet-bottom{font-size:6px}.result-card{padding:12px}.result-card h2{font-size:18px}.result-card .result-score strong{font-size:28px}.result-stats{padding:7px 0}.result-stars{font-size:18px;margin-bottom:3px}.result-card>p:not(.game-kicker){font-size:10px;margin-bottom:8px}}
@media(max-height:420px) and (min-width:501px){.cabinet{grid-template-rows:39px minmax(0,1fr);width:min(100%,calc((var(--app-height) - 95px)*2.6))}.cabinet-bottom{display:none}.masthead .wordmark small{display:none}.brand-mark{width:25px;height:27px;font-size:21px}.wordmark{font-size:12px}.start-screen{grid-template-columns:1fr 235px;padding:10px 5%;gap:18px}.title-block{align-self:center;padding:0}.title-block h1{font-size:53px;letter-spacing:-4px}.title-block .game-kicker,.title-badge{display:none}.game-subtitle{font-size:12px;margin:14px 0 0}.launch-card{padding:8px 11px;align-self:center}.stage-picker{min-height:34px}.stage-picker small{font-size:7px;margin-bottom:2px}.stage-number{font-size:22px}.stage-picker strong{font-size:14px}.stage-feature{display:none}.course-spec{font-size:7px;padding:5px 0 7px}.launch-card .button{min-height:44px;font-size:11px}.launch-card .text-button{position:absolute;width:auto;left:6%;bottom:10px;color:#133c47}.input-instruction{font-size:8px;margin-top:7px}.play-topline{top:7px;font-size:9px}.combo{top:39px}.combo>b{font-size:23px}.gesture-guide{bottom:6px;font-size:8px}.toast{font-size:10px;padding:6px 10px}.modal-screen{padding:7px}.result-card{width:min(520px,100%);padding:10px 14px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:5px 14px}.result-card .game-kicker,.result-card>p.personal-best{display:none}.result-card h2{font-size:18px;grid-column:1;margin:0}.result-card>p:not(.game-kicker){font-size:9px;margin:0;grid-column:1}.result-card .result-score{grid-column:1;margin:0}.result-score>span{display:none}.result-score strong{font-size:28px}.result-score small{font-size:7px;padding:2px 4px}.result-card .result-stats{grid-column:1;padding:5px 0;margin:0}.result-stars{grid-column:1;font-size:17px;margin:0}.result-card>.button{grid-column:2;min-height:44px;font-size:11px;margin:0}.result-card>#retry,.pause-card>#resume{grid-row:1 / span 2}.result-card>#next-mode,.pause-card>#restart-paused{grid-row:3 / span 2}.result-card>#home-result,.pause-card>#home-paused{grid-row:5 / span 2}.journey-heading h2{font-size:18px}.journey-tip{font-size:8px;margin:5px 0 8px}.journey-heading .game-kicker{display:none}.stage-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.stage-card{min-height:77px;padding:7px}.stage-card strong{font-size:11px}.stage-card small{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.screen-texture{display:none}}
/* Dialogs use the actual available stage height; only their content may scroll. */
.modal-screen{min-height:0;grid-template-rows:minmax(0,1fr);overflow:hidden}
.journey-card{height:100%;min-height:0;overflow:hidden}
.stage-grid{flex:1 1 0}
@media(max-height:620px) and (min-width:501px){
  .result-card{width:min(520px,100%);padding:12px 16px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6px 16px}
  .result-card .game-kicker,.result-card>p.personal-best{display:none}
  .result-card h2{font-size:19px;grid-column:1;margin:0}
  .result-card>p:not(.game-kicker){font-size:10px;margin:0;grid-column:1}
  .result-card .result-score{grid-column:1;margin:0}
  .result-score>span{display:none}.result-score strong{font-size:30px}.result-score small{font-size:7px;padding:2px 4px}
  .result-card .result-stats{grid-column:1;padding:6px 0;margin:0}
  .result-stars{grid-column:1;font-size:18px;margin:0}
  .result-card>.button{grid-column:2;min-height:44px;font-size:11px;margin:0}
  .result-card>#retry,.pause-card>#resume{grid-row:1 / span 2}
  .result-card>#next-mode,.pause-card>#restart-paused{grid-row:3 / span 2}
  .result-card>#home-result,.pause-card>#home-paused{grid-row:5 / span 2}
}
