:root{color-scheme:dark;--night: #0a0710;--night-soft: #15101d;--plum: #241628;--ink: #050409;--paper: #f6ead5;--paper-dim: #b9a995;--gold: #ffbd45;--gold-hot: #ffe69a;--crimson: #d7475e;--crimson-dark: #641f38;--teal: #79d8d0;--line: rgba(255, 198, 94, .28);--serif: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;--sans: "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", sans-serif}*{box-sizing:border-box}html,body{width:100%;min-height:100%;margin:0;background:var(--ink);color:var(--paper);overscroll-behavior:none}body{min-height:100dvh;overflow:hidden;font-family:var(--serif);-webkit-font-smoothing:antialiased}#app,.screen,.game-frame{-webkit-touch-callout:none;user-select:none}#game-canvas,.touch-controls,.touch-controls button{-webkit-touch-callout:none;touch-action:none}button{color:inherit;font:inherit}button:focus-visible,dialog:focus-visible{outline:2px solid var(--gold-hot);outline-offset:4px}.screen{position:fixed;inset:0;visibility:hidden;opacity:0;transition:opacity .6s ease,visibility 0s linear .6s}.screen.is-active{visibility:visible;opacity:1;transition-delay:0s}#title-screen{overflow:hidden;background:#09070d;isolation:isolate}.key-art{position:absolute;inset:-2%;z-index:-4;width:104%;height:104%;object-fit:cover;object-position:center 45%;image-rendering:auto;filter:saturate(.92) contrast(1.06) brightness(.84);animation:key-art-breathe 12s ease-in-out infinite alternate}@keyframes key-art-breathe{0%{transform:scale(1.015) translate3d(-.25%,0,0)}to{transform:scale(1.045) translate3d(.45%,-.6%,0)}}.title-vignette{position:absolute;inset:0;z-index:-3;background:linear-gradient(90deg,#050409f7,#050409db 27%,#05040924 58%,#0504095c),linear-gradient(0deg,rgba(5,4,9,.93) 0%,transparent 34%,rgba(5,4,9,.5) 100%),radial-gradient(circle at 29% 31%,transparent 0 18%,rgba(5,4,9,.25) 66%)}.title-vignette:after,.canvas-glass:after{position:absolute;inset:0;content:"";pointer-events:none;opacity:.19;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.36'/%3E%3C/svg%3E");mix-blend-mode:soft-light}.title-rain{position:absolute;inset:-30% 0;z-index:-2;pointer-events:none;opacity:.18;background-image:repeating-linear-gradient(105deg,transparent 0 34px,rgba(170,225,235,.65) 35px,transparent 36px 67px);background-size:120px 180px;animation:title-rain 1.1s linear infinite}@keyframes title-rain{to{transform:translate3d(-32px,128px,0)}}.title-content{position:absolute;left:clamp(28px,7vw,120px);bottom:clamp(28px,8vh,112px);width:min(530px,calc(100vw - 56px));text-shadow:0 3px 20px #030208}.eyebrow,.panel-kicker{display:flex;align-items:center;gap:10px;margin:0 0 16px;color:var(--paper-dim);font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.24em;text-transform:uppercase}.eyebrow span{padding:4px 8px;border:1px solid rgba(255,189,69,.58);color:var(--gold-hot);letter-spacing:.12em}h1{margin:0;line-height:.87}.title-kicker{display:block;margin:0 0 13px 3px;color:var(--paper);font-size:clamp(19px,2.2vw,32px);font-weight:500;letter-spacing:.42em}h1 strong{display:block;position:relative;width:max-content;color:#fff6e6;font-size:clamp(54px,7.2vw,114px);font-weight:700;letter-spacing:-.075em;filter:drop-shadow(0 8px 25px rgba(0,0,0,.76))}h1 strong:after{position:absolute;right:-15px;bottom:.04em;width:57%;height:2px;content:"";background:linear-gradient(90deg,transparent,var(--gold),transparent);box-shadow:0 0 13px var(--gold)}h1 strong span{margin-left:.08em;color:var(--gold);font-family:Georgia,serif;font-size:1.12em;font-style:italic}h1 em{display:block;margin:16px 0 0 5px;color:var(--gold-hot);font-size:clamp(13px,1.3vw,19px);font-style:normal;font-weight:500;letter-spacing:.54em}.title-copy{margin:24px 0 22px 4px;color:#f6ead5db;font-size:clamp(13px,1.2vw,17px);letter-spacing:.13em}.title-actions,.result-actions{display:flex;align-items:center;gap:18px}.primary-button{display:inline-flex;align-items:center;gap:15px;min-width:260px;padding:13px 20px;border:1px solid rgba(255,214,123,.76);background:linear-gradient(115deg,#592d16f0,#20141df2 57%,#5d1c33e6);box-shadow:inset 0 0 0 1px #0000008c,0 10px 38px #00000061,0 0 20px #ffbd4514;cursor:pointer;font-size:16px;letter-spacing:.08em;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.primary-button:hover{transform:translateY(-2px);border-color:var(--gold-hot);background:linear-gradient(115deg,#763f1bfa,#2c1925fa 57%,#731f39f2);box-shadow:inset 0 0 0 1px #0000008c,0 14px 42px #0000006b,0 0 25px #ffbd452e}.primary-button:active{transform:translateY(1px) scale(.985)}.button-glyph{color:var(--gold);font-size:23px;text-shadow:0 0 12px var(--gold)}.primary-button small{display:block;margin-bottom:3px;color:var(--paper-dim);font-family:var(--sans);font-size:8px;letter-spacing:.24em}.primary-button.compact{justify-content:center;min-width:190px;padding:11px 18px;font-size:14px}.quiet-button,.icon-button,.setting-row button{padding:8px 3px;border:0;border-bottom:1px solid rgba(255,255,255,.35);background:transparent;cursor:pointer;color:#f6ead5cc;font-size:12px;letter-spacing:.12em;transition:color .16s ease,border-color .16s ease}.quiet-button:hover,.icon-button:hover,.setting-row button:hover{border-color:var(--gold);color:var(--gold-hot)}.title-meta{display:flex;gap:22px;margin:18px 0 0 4px;color:#f6ead573;font-family:var(--sans);font-size:9px;letter-spacing:.08em}.title-corner{position:absolute;right:clamp(20px,4vw,64px);bottom:clamp(18px,4vh,54px);margin:0;padding-right:13px;border-right:1px solid rgba(255,189,69,.55);color:#f6ead585;font-size:10px;line-height:1.9;letter-spacing:.23em;text-align:right}#game-screen{display:grid;grid-template-rows:auto minmax(0,1fr) auto;place-items:center;gap:8px;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:radial-gradient(ellipse at 50% 50%,#231624,#0c0811 56%,#050409)}#game-screen:fullscreen,#game-screen:-webkit-full-screen{width:100vw;height:100dvh;padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}#game-screen:fullscreen .game-frame,#game-screen:-webkit-full-screen .game-frame{width:min(100%,calc((100dvh - 104px) * 16 / 9),1600px)}#game-screen:before{position:absolute;inset:0;z-index:-1;content:"";opacity:.24;background-image:linear-gradient(rgba(255,189,69,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,189,69,.05) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(circle,#000 0%,transparent 73%)}.game-topbar{display:flex;align-items:center;justify-content:space-between;width:min(100%,1280px);min-height:32px;padding:0 3px}.chapter-label{display:flex;align-items:center;gap:10px;color:#f6ead5b8;font-size:11px;letter-spacing:.18em}.chapter-label span{color:var(--gold);font-size:9px}.topbar-actions{display:flex;gap:16px}.icon-button{padding:5px 1px;font-family:var(--sans);font-size:9px}.game-frame{position:relative;width:min(100%,calc((100dvh - 104px) * 16 / 9),1280px);aspect-ratio:16 / 9;overflow:hidden;border:1px solid rgba(255,198,94,.55);background:#050409;box-shadow:0 0 0 1px #050409,0 0 0 3px #ffbd4524,0 22px 80px #000000bf}.game-stage{display:contents}.game-frame:before,.game-frame:after{position:absolute;z-index:20;width:26px;height:26px;content:"";pointer-events:none;border-color:var(--gold);opacity:.72}.game-frame:before{top:6px;left:6px;border-top:1px solid;border-left:1px solid}.game-frame:after{right:6px;bottom:6px;border-right:1px solid;border-bottom:1px solid}#game-canvas{display:block;width:100%;height:100%;background:#100b16;image-rendering:auto}.canvas-glass{position:absolute;inset:0;z-index:4;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}.canvas-glass:after{opacity:.11}.controls-strip{display:flex;gap:clamp(12px,2vw,30px);width:min(100%,1280px);margin:0;color:#f6ead57a;font-family:var(--sans);font-size:9px;letter-spacing:.06em}kbd{display:inline-grid;min-width:18px;height:18px;margin:0 2px;place-items:center;border:1px solid rgba(255,189,69,.36);border-radius:2px;background:#0504097a;color:var(--gold-hot);font-family:var(--sans);font-size:8px;font-weight:700}.overlay{position:absolute;z-index:10;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .24s ease,visibility 0s linear .24s}.overlay.is-visible,.boss-title.is-visible{visibility:visible;opacity:1;pointer-events:auto;transition-delay:0s}.story-overlay{right:6%;bottom:7%;left:6%;display:flex;align-items:stretch;min-height:66px;border:1px solid rgba(255,198,94,.48);background:linear-gradient(90deg,#07050bf0,#180e1be3);box-shadow:0 12px 45px #00000094;cursor:pointer}.speaker-mark{display:grid;width:74px;flex:0 0 74px;place-items:center;border-right:1px solid rgba(255,198,94,.28);background:radial-gradient(circle,rgba(255,189,69,.19),transparent 70%);color:var(--gold-hot);font-family:Georgia,serif;font-size:38px;font-style:italic;text-shadow:0 0 20px rgba(255,189,69,.65)}.story-copy{position:relative;padding:9px 18px 11px}#story-speaker{margin:0 0 4px;color:var(--gold);font-size:10px;letter-spacing:.18em}#story-text{margin:0;color:var(--paper);font-size:clamp(11px,1.4vw,16px);line-height:1.7;letter-spacing:.05em}#story-hint{position:absolute;right:11px;bottom:5px;color:#f6ead561;font-family:var(--sans);font-size:7px}.full-overlay{inset:0;display:grid;place-items:center;overflow:auto;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:#050409d1;backdrop-filter:blur(6px)}.overlay-panel,.results-panel{width:min(88%,760px);padding:clamp(20px,4vw,42px);border:1px solid rgba(255,198,94,.38);background:linear-gradient(135deg,#221526fa,#09070efa),#0c0812;box-shadow:0 22px 80px #000000bd,inset 0 0 70px #802b3d14;text-align:center}.overlay-panel h2,.results-panel h2,.howto-dialog h2{margin:0 0 8px;color:var(--paper);font-size:clamp(22px,3.4vw,38px);font-weight:500;letter-spacing:.14em}.overlay-panel>p:not(.panel-kicker){margin:0;color:var(--paper-dim);font-size:11px}.overlay-panel .panel-kicker,.results-panel .panel-kicker,.howto-dialog .panel-kicker{justify-content:center;margin-bottom:8px;color:var(--gold)}.upgrade-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:25px}.upgrade-card{position:relative;min-height:174px;padding:15px 12px 28px;border:1px solid rgba(255,198,94,.23);background:#0504098f;cursor:pointer;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.upgrade-card:hover,.upgrade-card:focus-visible{transform:translateY(-5px);border-color:var(--gold);background:#59222847;box-shadow:0 12px 35px #0006,inset 0 0 28px #ffbd450f}.upgrade-icon{display:grid;width:52px;height:52px;margin:0 auto 10px;place-items:center;border:1px solid rgba(255,198,94,.5);border-radius:50%;color:var(--gold-hot);font-size:24px;box-shadow:inset 0 0 18px #ffbd451a,0 0 20px #ffbd4512}.upgrade-card small,.upgrade-card strong,.upgrade-card em{display:block}.upgrade-card small{color:var(--crimson);font-family:var(--sans);font-size:8px;letter-spacing:.1em}.upgrade-card strong{margin:5px 0 7px;color:var(--paper);font-size:18px;letter-spacing:.14em}.upgrade-card em{color:var(--paper-dim);font-size:9px;font-style:normal;line-height:1.6}.upgrade-card kbd{position:absolute;right:7px;bottom:7px}.pause-panel{width:min(86%,430px)}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08);color:var(--paper-dim);font-size:11px}.setting-row button{min-width:54px;color:var(--gold-hot)}.pause-panel .primary-button{margin:22px auto 9px}.pause-panel>.quiet-button{display:block;margin:6px auto 0}.cinema-bars{position:absolute;inset:0;z-index:7;pointer-events:none}.cinema-bars i{position:absolute;left:0;width:100%;height:0;background:#030205;transition:height .42s cubic-bezier(.22,1,.36,1)}.cinema-bars i:first-child{top:0}.cinema-bars i:last-child{bottom:0}.cinema-bars.is-visible i{height:11%}.boss-title{position:absolute;top:50%;left:50%;z-index:9;visibility:hidden;width:100%;opacity:0;transform:translate(-50%,-50%);color:#fff5e5;text-align:center;text-shadow:0 2px 14px #000;transition:opacity .28s ease}.boss-title span,.boss-title strong,.boss-title em{display:block}.boss-title span{color:var(--crimson);font-size:9px;letter-spacing:.28em}.boss-title strong{margin:8px 0;font-size:clamp(20px,4vw,40px);font-weight:500;letter-spacing:.2em}.boss-title em{color:var(--paper-dim);font-family:var(--sans);font-size:8px;font-style:normal;letter-spacing:.35em}.results-panel{position:relative;width:min(90%,620px)}.result-rank{position:absolute;top:22px;right:8%;color:var(--gold-hot);font-size:clamp(58px,9vw,112px);line-height:1;opacity:.15;text-shadow:0 0 30px var(--gold)}.result-epilogue{max-width:480px;margin:12px auto 18px;color:var(--paper-dim);font-size:11px;line-height:1.7;letter-spacing:.05em}.result-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:0 0 18px;border-top:1px solid rgba(255,198,94,.18);border-bottom:1px solid rgba(255,198,94,.18)}.result-stats>div{padding:13px 6px}.result-stats>div+div{border-left:1px solid rgba(255,198,94,.18)}.result-stats dt{color:var(--paper-dim);font-size:8px;letter-spacing:.12em}.result-stats dd{margin:5px 0 0;color:var(--gold-hot);font-family:Georgia,serif;font-size:19px}.best-score{margin:0 0 14px;color:var(--gold);font-family:var(--sans);font-size:9px;letter-spacing:.1em}.result-actions{justify-content:center}.subscribe-cta{display:grid;position:relative;grid-template-columns:1fr auto;width:min(100%,390px);margin:0 auto 16px;padding:11px 44px 11px 16px;overflow:hidden;border:1px solid rgba(121,216,208,.48);background:linear-gradient(105deg,#12383db8,#07080ee6 52%,#4d1a2fa8);box-shadow:inset 0 0 30px #79d8d00d,0 8px 28px #0000004d;color:var(--paper);text-align:left;text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.subscribe-cta:before{position:absolute;inset:0 auto 0 0;width:3px;content:"";background:var(--teal);box-shadow:0 0 14px var(--teal)}.subscribe-cta span,.subscribe-cta strong{grid-column:1;display:block}.subscribe-cta span{color:var(--paper-dim);font-family:var(--sans);font-size:8px;letter-spacing:.08em}.subscribe-cta strong{margin-top:3px;color:#d9fffa;font-size:14px;letter-spacing:.1em}.subscribe-cta i{position:absolute;right:15px;top:50%;color:var(--teal);font-size:20px;font-style:normal;transform:translateY(-50%)}.subscribe-cta:hover{transform:translateY(-2px);border-color:var(--teal);box-shadow:inset 0 0 35px #79d8d01a,0 12px 34px #00000061}.touch-controls{display:none}.game-stage:has(.story-overlay.is-visible,.full-overlay.is-visible,.boss-title.is-visible,.cinema-bars.is-visible) .touch-left,.game-stage:has(.story-overlay.is-visible,.full-overlay.is-visible,.boss-title.is-visible,.cinema-bars.is-visible) .touch-right{visibility:hidden;opacity:0;pointer-events:none}.touch-left,.touch-right{display:grid;position:relative;z-index:6;min-width:0;height:100%;align-content:end;justify-content:center;overflow:hidden;background:linear-gradient(180deg,#0504098f,#0d0811f5),radial-gradient(circle at 50% 82%,rgba(255,189,69,.08),transparent 48%);pointer-events:auto;transition:opacity .18s ease,visibility 0s linear 0s}.touch-left{padding:10px 6px max(10px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));border-right:1px solid rgba(255,198,94,.2);box-shadow:inset -12px 0 28px #ffbd4506}.touch-right{padding:10px max(6px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) 6px;border-left:1px solid rgba(255,198,94,.2);box-shadow:inset 12px 0 28px #ffbd4506}.touch-rail-label{display:block;margin-bottom:8px;color:#f6ead557;font-family:var(--sans);font-size:7px;font-weight:800;letter-spacing:.18em;text-align:center}.touch-dpad,.touch-action-cluster{display:grid;grid-template-columns:repeat(2,var(--touch-button));gap:var(--touch-gap);align-items:center;justify-content:center}.touch-dpad .move-left{grid-column:1;grid-row:1}.touch-dpad .move-right{grid-column:2;grid-row:1}.touch-dpad .down{grid-column:1 / -1;grid-row:2;justify-self:center}.touch-action-cluster{grid-template-areas:"ultimate charm" "jump dash" ". attack"}.touch-controls button{display:grid;width:var(--touch-button);height:var(--touch-button);min-width:48px;min-height:48px;grid-template-rows:1fr auto;gap:0;place-items:center;padding:7px 3px 5px;border:1px solid rgba(255,214,123,.42);border-radius:50%;background:radial-gradient(circle at 42% 34%,#33232ff5,#08060cfa);box-shadow:inset 0 0 18px #ffbd450f,0 3px 14px #00000061;color:#ffefced1;font-family:var(--serif);line-height:1;touch-action:none;user-select:none;transition:transform 80ms ease,border-color 80ms ease,background 80ms ease,box-shadow 80ms ease,opacity .12s ease}.touch-controls button>span{align-self:end;font-size:clamp(15px,2.2vw,20px)}.touch-controls button>small{align-self:start;color:#f6ead585;font-family:var(--sans);font-size:5px;font-weight:800;letter-spacing:.04em}.touch-controls button.is-pressed{transform:scale(.9);border-color:var(--gold-hot);background:radial-gradient(circle,#984e21eb,#36131dfa);box-shadow:inset 0 0 16px #ffe69a47,0 0 20px #ffbd45c7;color:#fff}.touch-left .down{color:var(--teal)}.touch-controls .charm{grid-area:charm;color:var(--teal)}.touch-controls .jump{grid-area:jump}.touch-controls .dash{grid-area:dash;color:#bedddc}.touch-controls .attack{grid-area:attack;justify-self:center;width:min(calc(var(--touch-button) + 8px),62px);height:min(calc(var(--touch-button) + 8px),62px);border-color:#ffbd45b8;background:radial-gradient(circle at 42% 34%,#70371ef5,#200d12fa)}.touch-controls .ultimate{grid-area:ultimate;grid-template-rows:1fr auto;border-color:#d7475e99;color:#ffb4bd}.touch-controls .ultimate span{font-family:var(--sans);font-size:10px;font-weight:900;letter-spacing:.02em}.touch-controls .ultimate small{color:#ffe4b7b8;font-size:6px}.touch-controls .ultimate.is-ready{border-color:var(--gold-hot);background:radial-gradient(circle,#d7475edb,#481026c2);box-shadow:inset 0 0 18px #ffe69a4d,0 0 18px #ffbd45b8;color:#fff8db;animation:ultimate-ready .85s ease-in-out infinite alternate}.touch-controls .ultimate.is-ready.is-pressed{animation:none;transform:scale(.9)}.touch-controls .ultimate.is-ready small{color:var(--gold-hot)}@keyframes ultimate-ready{0%{transform:scale(1);filter:brightness(1)}to{transform:scale(1.08);filter:brightness(1.24)}}.howto-dialog{width:min(92vw,720px);padding:0;border:1px solid rgba(255,198,94,.46);background:linear-gradient(145deg,#241628,#09070e 72%);color:var(--paper);box-shadow:0 30px 100px #000000d1}.howto-dialog::backdrop{background:#030205c7;backdrop-filter:blur(8px)}.howto-dialog form{position:relative;padding:clamp(25px,5vw,52px);text-align:center}.dialog-close{position:absolute;top:12px;right:15px;border:0;background:transparent;cursor:pointer;color:var(--paper-dim);font-size:24px}.howto-list{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:26px 0;background:#ffc65e29}.howto-list>div{position:relative;min-height:154px;padding:25px 17px 16px;background:#0e0a13;text-align:left}.howto-list>div>span{position:absolute;top:8px;right:10px;color:#ffbd452b;font-family:Georgia,serif;font-size:38px}.howto-list strong{color:var(--gold-hot);font-size:16px;letter-spacing:.1em}.howto-list p{margin:13px 0 0;color:var(--paper-dim);font-size:10px;line-height:1.8}.howto-note{margin:0 0 22px;color:#f6ead573;font-family:var(--sans);font-size:8px}.rotate-hint{display:none;position:fixed;inset:0;z-index:100;place-items:center;background:#050409f0;color:var(--paper-dim);font-size:13px;line-height:1.8;letter-spacing:.13em;text-align:center}.rotate-hint span:before{display:block;margin-bottom:16px;content:"↻";color:var(--gold);font-size:40px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(pointer:coarse),(hover:none)and (any-pointer:coarse){.controls-strip{display:none}.icon-button,.dialog-close,.setting-row button{min-width:44px;min-height:44px}.game-topbar button,.story-overlay,.upgrade-card,.overlay-panel button{touch-action:manipulation}}@media(orientation:landscape)and (pointer:coarse),(orientation:landscape)and (hover:none)and (any-pointer:coarse){#game-screen{--touch-button: clamp(48px, min(6.2dvw, 13.5dvh), 54px);--touch-gap: clamp(6px, 1dvw, 10px);--touch-rail: clamp(116px, 15dvw, 132px);grid-template-rows:44px minmax(0,1fr);gap:0;padding:max(0px,env(safe-area-inset-top)) 0 max(0px,env(safe-area-inset-bottom));place-items:stretch}#game-screen:fullscreen,#game-screen:-webkit-full-screen{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.game-topbar{position:relative;z-index:30;grid-row:1;width:100%;min-height:44px;padding:0 max(8px,calc(env(safe-area-inset-right) + 8px)) 0 max(8px,calc(env(safe-area-inset-left) + 8px));border-bottom:1px solid rgba(255,198,94,.18);background:linear-gradient(90deg,#050409fa,#110a14f5,#050409fa)}.chapter-label{min-width:0;overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{flex:0 0 auto;gap:8px}#sound-button{display:none}.icon-button{min-width:58px;min-height:38px;padding:4px 8px;border:1px solid rgba(255,198,94,.24);background:#0c080fdb;font-size:8px}.game-stage{display:grid;grid-row:2;grid-template-columns:calc(var(--touch-rail) + env(safe-area-inset-left)) minmax(0,1fr) calc(var(--touch-rail) + env(safe-area-inset-right));width:100%;height:100%;min-height:0;overflow:hidden}.touch-controls{display:contents}.touch-left{grid-column:1;grid-row:1}.touch-right{grid-column:3;grid-row:1}#game-screen .game-stage .game-frame,#game-screen:fullscreen .game-stage .game-frame,#game-screen:-webkit-full-screen .game-stage .game-frame{grid-column:2;grid-row:1;place-self:center;width:min(100%,calc((100svh - 44px - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 8px) * 16 / 9));max-width:none;max-height:calc(100svh - 52px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}#game-screen:fullscreen .game-stage .game-frame,#game-screen:-webkit-full-screen .game-stage .game-frame{width:min(100%,calc((100dvh - 44px - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 8px) * 16 / 9));max-height:calc(100dvh - 52px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}#game-screen:has(.story-overlay.is-visible,.full-overlay.is-visible,.boss-title.is-visible,.cinema-bars.is-visible) .game-topbar{visibility:hidden;opacity:0;pointer-events:none}}@media(max-width:760px){.title-vignette{background:linear-gradient(0deg,#050409fa,#050409cc 42%,#05040914 72%,#05040940),linear-gradient(90deg,rgba(5,4,9,.62),transparent 70%)}.key-art{object-position:60% center}.title-content{right:max(24px,calc(env(safe-area-inset-right) + 12px));bottom:max(28px,calc(env(safe-area-inset-bottom) + 16px));left:max(24px,calc(env(safe-area-inset-left) + 12px));width:auto}.title-kicker{font-size:17px}h1 strong{font-size:clamp(48px,15vw,76px)}.title-copy{margin:17px 0}.title-actions{flex-wrap:wrap;gap:10px 16px}.title-corner{display:none}.title-meta{flex-wrap:wrap;gap:8px 16px;font-size:8px}.upgrade-grid{grid-template-columns:1fr;max-height:56vh;overflow:auto}.upgrade-card{min-height:92px;padding:11px 10px 11px 82px;text-align:left}.upgrade-icon{position:absolute;top:18px;left:15px}.upgrade-card kbd{display:none}.result-stats{grid-template-columns:repeat(2,1fr)}.result-stats>div:nth-child(3){border-left:0;border-top:1px solid rgba(255,198,94,.18)}.result-stats>div:nth-child(4){border-top:1px solid rgba(255,198,94,.18)}.howto-list{grid-template-columns:1fr;max-height:52vh;overflow:auto}.howto-list>div{min-height:110px}}@media(orientation:portrait)and (pointer:coarse),(orientation:portrait)and (hover:none)and (any-pointer:coarse){#game-screen.is-active~.rotate-hint,body.game-active .rotate-hint{display:grid}.touch-controls{display:none}}@media(max-height:520px){.overlay-panel,.results-panel{max-height:calc(100dvh - max(20px,env(safe-area-inset-top)) - max(20px,env(safe-area-inset-bottom)));overflow:auto;padding:12px 15px}.overlay-panel h2,.results-panel h2{font-size:clamp(18px,5vw,26px)}.upgrade-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:none;margin-top:10px;overflow:visible}.upgrade-card{min-height:112px;padding:9px 6px 20px;text-align:center}.upgrade-icon{position:static;width:36px;height:36px;margin:0 auto 4px;font-size:17px}.upgrade-card strong{margin:3px 0;font-size:13px}.upgrade-card em{font-size:7px;line-height:1.35}.upgrade-card kbd{display:none}.story-overlay{right:4%;bottom:max(5%,env(safe-area-inset-bottom));left:4%}.story-copy{padding:7px 12px 9px}.speaker-mark{width:54px;flex-basis:54px;font-size:28px}.howto-dialog{max-height:calc(100dvh - max(12px,env(safe-area-inset-top)) - max(12px,env(safe-area-inset-bottom)));overflow:auto}.howto-dialog form{padding:18px 24px}.howto-list{grid-template-columns:repeat(3,1fr);max-height:none;margin:12px 0;overflow:visible}.howto-list>div{min-height:114px;padding:21px 11px 10px}}@media(orientation:landscape)and (pointer:coarse)and (max-width:700px)and (min-height:311px),(orientation:landscape)and (hover:none)and (any-pointer:coarse)and (max-width:700px)and (min-height:311px){#game-screen{--touch-button: 48px;--touch-gap: 4px;--touch-rail: 60px}.touch-left,.touch-right{padding-top:6px;padding-bottom:max(6px,env(safe-area-inset-bottom))}.touch-rail-label{display:none}.touch-dpad,.touch-action-cluster{grid-template-columns:var(--touch-button);grid-auto-rows:var(--touch-button);gap:var(--touch-gap)}.touch-dpad .move-left{grid-column:1;grid-row:1}.touch-dpad .move-right{grid-column:1;grid-row:2}.touch-dpad .down{grid-column:1;grid-row:3}.touch-action-cluster{grid-template-areas:none}.touch-action-cluster .charm{grid-column:1;grid-row:1}.touch-action-cluster .ultimate{grid-column:1;grid-row:2}.touch-action-cluster .jump{grid-column:1;grid-row:3}.touch-action-cluster .dash{grid-column:1;grid-row:4}.touch-action-cluster .attack{grid-column:1;grid-row:5;width:var(--touch-button);height:var(--touch-button)}}@media(orientation:landscape)and (pointer:coarse)and (max-height:310px),(orientation:landscape)and (hover:none)and (any-pointer:coarse)and (max-height:310px){#game-screen{--touch-button: 48px;--touch-gap: 6px;--touch-rail: 118px}.touch-left,.touch-right{padding-top:4px;padding-bottom:max(4px,env(safe-area-inset-bottom))}.touch-rail-label{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.title-rain{display:none}}
