:root{--ink: #172235;--panel: rgba(18, 27, 48, .95);--panel-edge: #ffd24a;--accent: #ff5470;--accent2: #65d4ff;--good: #7fe08a;--danger: #ff5a5a;--gold: #ffd24a;font-family:Segoe UI,Hiragino Sans,Yu Gothic UI,system-ui,sans-serif}.ranking-open{pointer-events:auto;align-self:flex-start;min-height:40px;padding:8px 16px;border:2px solid #ffd24a;border-radius:10px;background:#172a45;color:#ffe38a;font-family:inherit;font-size:14px;font-weight:700;line-height:1.3;flex-shrink:0;cursor:pointer}.ranking-dialog{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;touch-action:pan-y;overscroll-behavior:contain;padding:20px;border:2px solid #ffd24a;border-radius:16px;background:#122238;color:#f5f8ff;font-size:16px;line-height:1.5}.ranking-dialog::backdrop{background:#000814d9}.ranking-dialog header{display:flex;align-items:center;gap:12px;justify-content:space-between}.ranking-dialog h2{margin:0;font-size:22px}.ranking-dialog button{min-height:44px;padding:8px 12px;border:1px solid #7998b7;border-radius:8px;background:#233c59;color:#fff;font:inherit;cursor:pointer}.ranking-dialog button:disabled{opacity:.6;cursor:wait}.ranking-dialog button:focus-visible,.ranking-dialog input:focus-visible{outline:3px solid #ffe38a;outline-offset:3px}.ranking-dialog button[aria-pressed=true],.ranking-dialog button[type=submit]{background:#ffda68;color:#182238;border-color:#ffda68;font-weight:700}.ranking-modes,.ranking-actions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.ranking-modes button{flex:1;font-size:14px}.ranking-note{color:#bdcfe1;font-size:14px}.ranking-dialog table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.ranking-dialog th,.ranking-dialog td{padding:12px 6px;text-align:left;border-bottom:1px solid #39506b;overflow-wrap:anywhere}.ranking-dialog th{font-size:14px;color:#b8d7f3}.ranking-dialog td:last-child,.ranking-dialog th:last-child{text-align:right;white-space:nowrap}.ranking-dialog tbody tr:first-child{color:#ffe38a;font-weight:700}.ranking-dialog label{display:block;margin-bottom:8px}.ranking-dialog input{display:block;width:100%;padding:12px;border:2px solid #94aac3;border-radius:8px;background:#fff;color:#172235;font:inherit;user-select:text;touch-action:auto}.ranking-dialog [role=alert]{color:#ffbaba}.ranking-empty{padding:24px 0}.record-registration{width:100%;text-align:center}.record-registration .menu-btn{width:100%}.menu-panel{max-height:98%;max-width:98%;overflow-y:auto;touch-action:pan-y}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(circle at 50% 30%,#183b56,#08111f 72%);overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;color:#fff}.app-root{width:100%;height:100dvh;display:flex;align-items:center;justify-content:center}.stage{position:relative;aspect-ratio:640 / 384;width:min(100vw,calc(100dvh * 640 / 384));max-height:100dvh;container-type:size;background:#0a0814;box-shadow:0 8px 28px #0000007a;overflow:hidden}@media (min-width: 720px){.stage{border-radius:12px}}.game-canvas{width:100%;height:100%;display:block;image-rendering:auto}.overlay{position:absolute;inset:0;pointer-events:none;font-size:3.6cqmin;z-index:2}button:focus-visible{outline:.7cqmin solid #fff3a0;outline-offset:.5cqmin}.hud{position:absolute;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;padding:2.2cqmin 2.6cqmin;gap:1cqmin;text-shadow:0 .35cqmin 0 rgba(0,0,0,.8),0 0 1cqmin rgba(0,0,0,.65);font-weight:800}.hud-left,.hud-right{display:flex;align-items:center;gap:1.6cqmin}.hud-center{position:absolute;left:50%;transform:translate(-50%);top:2.2cqmin;opacity:.92}.hearts{display:inline-flex;gap:.4cqmin}.heart{color:#ff4d6d;font-size:4.4cqmin;filter:drop-shadow(0 0 .6cqmin rgba(255,80,110,.6));line-height:1}.heart.empty{color:#ffffff6b;filter:none}.power-badge{font-size:2.6cqmin;padding:.3cqmin 1.1cqmin;border-radius:999px;background:#ff7a3c;color:#321;letter-spacing:.05em}.power-badge.claw{background:linear-gradient(#dff4ff,#4fc9ff);color:#06283a}.power-badge.big{background:#7fe08a}.mode-badge{font-size:2.4cqmin;padding:.3cqmin 1.1cqmin;border-radius:.6cqmin;letter-spacing:.08em;color:#fff}.mode-badge.time{background:#2f7fa8;box-shadow:inset 0 0 0 .3cqmin #ffffff80}.mode-badge.hard{background:#a8243c;box-shadow:inset 0 0 0 .3cqmin #ffffff80}.runtime{font-variant-numeric:tabular-nums;font-family:Consolas,SFMono-Regular,monospace;font-weight:800;color:#bfeaff}.hud-item{display:inline-flex;align-items:center;gap:.7cqmin;font-size:3.2cqmin}.lives .cat-icon{font-size:3.4cqmin}.coin-dot{width:3cqmin;height:3cqmin;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3b0,#ffcf3f 60%,#d99a1e);box-shadow:inset 0 0 0 .4cqmin #b4781499;display:inline-block}.time[data-low=true]{color:#ff6a6a;animation:blink .6s steps(2) infinite}.score{flex-direction:column;align-items:flex-end;line-height:1.05}.score small,.stage-label small{font-size:2.2cqmin;font-weight:600;opacity:.75}.stage-label{font-size:3cqmin}.combo{position:absolute;top:13cqmin;right:3cqmin;text-align:right;pointer-events:none;animation:comboPop .18s ease-out}.combo-num{font-size:calc(7cqmin + var(--heat) * 5cqmin);font-weight:900;line-height:.95;color:hsl(calc(52 - var(--heat) * 52) 100% 66%);text-shadow:0 .5cqmin 0 rgba(0,0,0,.85),0 0 calc(1cqmin + var(--heat) * 3cqmin) hsl(calc(52 - var(--heat) * 52) 100% 60%)}.combo-label{font-size:2.5cqmin;font-weight:800;letter-spacing:.08em;color:#ffffffeb;text-shadow:0 .35cqmin 0 rgba(0,0,0,.8)}.combo-track{margin-top:.6cqmin;margin-left:auto;width:22cqmin;height:1.1cqmin;border-radius:1cqmin;background:#0000008c;overflow:hidden}.combo-fill{height:100%;border-radius:1cqmin;background:hsl(calc(52 - var(--heat) * 52) 100% 62%);transition:width .08s linear}.combo[data-hot=true] .combo-num{animation:pulse .5s ease-in-out infinite}@keyframes comboPop{0%{transform:scale(1.45)}}.boss-bar{position:absolute;bottom:max(4cqmin,env(safe-area-inset-bottom));left:50%;transform:translate(-50%);width:70%;text-align:center}.boss-name{font-size:3cqmin;font-weight:800;text-shadow:0 .4cqmin 0 #000;margin-bottom:.6cqmin;display:flex;gap:1.4cqmin;justify-content:center;align-items:center}.boss-phase{font-size:2.2cqmin;background:var(--danger);padding:.1cqmin 1cqmin;border-radius:999px;animation:blink .5s steps(2) infinite}.boss-bar-track{height:2.6cqmin;background:#0000008c;border:.4cqmin solid rgba(255,255,255,.5);border-radius:999px;overflow:hidden}.boss-bar-fill{height:100%;background:linear-gradient(90deg,#ff3b6b,#ff8a3c);transition:width .25s ease}.center-banner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;animation:bannerIn .4s ease}.banner-title{font-size:9cqmin;font-weight:900;letter-spacing:.04em;color:#fff;text-shadow:0 .8cqmin 0 var(--accent),0 1.6cqmin 2cqmin rgba(0,0,0,.5)}.center-banner.clear .banner-title{color:var(--gold);text-shadow:0 .8cqmin 0 #b8860b,0 1.6cqmin 2cqmin rgba(0,0,0,.5)}.banner-sub{margin-top:1.4cqmin;font-size:4.4cqmin;font-weight:700;opacity:.95}.menu-panel{position:absolute;inset:0;margin:auto;width:max-content;height:max-content;display:flex;flex-direction:column;align-items:center;gap:1.6cqmin;padding:5cqmin 7cqmin;background:var(--panel);border:.6cqmin solid var(--panel-edge);border-radius:2.6cqmin;pointer-events:auto;animation:pop .3s ease}.menu-title{font-size:7cqmin;font-weight:900;letter-spacing:.05em}.menu-title.danger{color:var(--danger)}.menu-title.gold{color:var(--gold);text-shadow:0 .6cqmin 0 #b8860b}.menu-sub{font-size:3.2cqmin}.menu-sub.small{font-size:2.6cqmin;opacity:.75}.menu-record{font-size:4cqmin;font-weight:900;color:#ffe680;text-shadow:0 0 2cqmin rgba(255,220,100,.8);animation:pulse .7s ease-in-out infinite}.splits{display:flex;flex-direction:column;gap:.4cqmin;min-width:46cqmin;font-variant-numeric:tabular-nums}.split-row{display:flex;justify-content:space-between;gap:3cqmin;font-size:2.9cqmin;font-weight:800}.split-stage{opacity:.8}.split-time.best{color:#7fe08a}.split-row.penalty{color:#ff9aa8}.split-row.total{margin-top:.6cqmin;padding-top:.8cqmin;border-top:.3cqmin solid rgba(255,255,255,.35);font-size:3.6cqmin;color:var(--gold)}.menu-score{font-size:4cqmin;font-weight:800;color:var(--gold)}.menu-score.small{font-size:2.8cqmin;color:#fff;opacity:.8}.menu-hint{font-size:2.4cqmin;opacity:.7}.menu-btn{pointer-events:auto;font:inherit;font-size:3.6cqmin;font-weight:800;color:var(--ink);background:#fff6d2;border:.4cqmin solid #ffd24a;border-radius:2cqmin;padding:1.4cqmin 4cqmin;min-height:11cqmin;cursor:pointer;box-shadow:0 .6cqmin #c9476f;transition:transform .06s ease,box-shadow .06s ease}.menu-btn:active{transform:translateY(.5cqmin);box-shadow:0 .1cqmin #c9476f}.menu-btn.ghost{background:transparent;color:#fff;border-color:#fff9;box-shadow:none}.title-screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:1cqmin;overflow-y:auto;text-align:left;pointer-events:auto;padding:max(4cqmin,env(safe-area-inset-top)) max(4cqmin,env(safe-area-inset-right)) max(3cqmin,env(safe-area-inset-bottom)) max(4cqmin,env(safe-area-inset-left));background-image:linear-gradient(90deg,#081f37a8,#081f375c 38%,#081f3700 73%),url(../assets/title/shironeko-title-key-art.png);background-size:cover;background-position:center}.title-logo{display:flex;flex-direction:column;align-items:flex-start}.title-main{font-size:9.5cqmin;font-weight:900;color:#fff;-webkit-text-stroke:.6cqmin var(--ink);text-shadow:0 .9cqmin 0 #247ba0,0 1.5cqmin 1.5cqmin rgba(0,0,0,.5)}.title-sub{margin-top:.6cqmin;font-size:4cqmin;font-weight:800;color:var(--gold);text-shadow:0 .4cqmin 0 #00000080}.mode-list{display:flex;flex-direction:column;gap:1cqmin;width:min(84cqmin,54%);pointer-events:auto}.mode-btn{display:flex;flex-direction:column;align-items:stretch;gap:.1cqmin;font:inherit;font-weight:900;text-align:left;color:var(--ink);background:#ffd24a;border:.4cqmin solid #fff3a0;border-radius:2cqmin;padding:.9cqmin 2.4cqmin;min-height:max(10cqmin,44px);cursor:pointer;box-shadow:0 .7cqmin #a56f00}.mode-btn-top{display:flex;align-items:baseline;justify-content:space-between;gap:2cqmin}.mode-btn.normal{background:#ffd24a}.mode-btn.time{background:#7fd4f0;border-color:#d8f4ff;box-shadow:0 .8cqmin #2f7fa8}.mode-btn.hard{background:#ff8a9a;border-color:#ffd8de;box-shadow:0 .8cqmin #a8243c}.mode-btn:active{transform:translateY(.6cqmin);box-shadow:none}.mode-btn-label{font-size:3.8cqmin;white-space:nowrap}.mode-btn-sub{font-size:clamp(11px,2.7cqmin,13px);font-weight:700;opacity:.78}.mode-btn-rec{font-size:clamp(10px,2.7cqmin,13px);font-weight:800;opacity:.9;white-space:nowrap;font-variant-numeric:tabular-nums}.title-controls{width:100%;padding:1cqmin 2.2cqmin;border-radius:1.6cqmin;background:#0c0a1cb8;font-size:clamp(11px,2.8cqmin,14px);line-height:1.45;color:#ffffffeb}.pc-keys,.sp-keys{display:flex;flex-wrap:wrap;justify-content:center;gap:.6cqmin 2cqmin}.pc-keys b,.sp-keys b{color:#fff}.pc-keys .hot,.sp-keys .hot,.pc-keys .hot b,.sp-keys .hot b{color:var(--accent2)}.title-tip{margin-top:.6cqmin;font-size:clamp(11px,2.7cqmin,13px);color:var(--gold)}@media (pointer: coarse){.pc-keys{display:none}}@media (pointer: fine){.sp-keys{display:none}}.hi-score{margin-top:1.2cqmin;font-size:3cqmin;font-weight:800;color:var(--gold)}.title-tap-hint{margin:0;font-size:2.6cqmin;opacity:.7}@container (max-width: 500px){.title-screen{background-position:57% center}.title-logo{max-width:calc(100% - 44px)}.title-main{font-size:clamp(19px,9cqmin,34px)}.title-sub{font-size:clamp(11px,3.7cqmin,15px)}.mode-list{width:min(72%,280px)}.mode-btn-top{flex-wrap:wrap}.mode-btn-label{font-size:clamp(12px,3.8cqmin,16px)}.mode-btn-rec,.mode-btn-sub{font-size:clamp(10px,2.7cqmin,12px)}.title-tap-hint{display:none}}.pwa-actions{display:flex;gap:1.5cqmin;margin-top:.6cqmin}.utility-btn{pointer-events:auto;min-height:10cqmin;padding:1cqmin 2.4cqmin;border:.35cqmin solid rgba(255,255,255,.78);border-radius:1.8cqmin;background:#0e1e32d6;color:#fff;font:inherit;font-size:clamp(12px,2.8cqmin,15px);font-weight:800;cursor:pointer}.utility-btn.share{background:#1f8f55;border-color:#9ff0bf}.utility-btn:disabled{color:#ffffffad;cursor:default;opacity:.75}.share-status{min-height:3.2cqmin;margin-top:.5cqmin;font-size:2.4cqmin;font-weight:700;color:#fff3a0}.install-dialog{width:min(720px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:3px solid #ffd24a;border-radius:16px;background:#121b30;color:#fff}.install-dialog::backdrop{background:#040810cc}.install-dialog-body{max-height:calc(100dvh - 30px);overflow-y:auto;padding:22px;font-size:15px;line-height:1.55}.install-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.install-dialog h2{margin:0;font-size:24px;text-wrap:balance}.install-dialog ol{margin:10px 0 0;padding-left:22px}.install-dialog li+li{margin-top:7px}.install-dialog p{margin:0;color:#ffffffd1;text-wrap:pretty}.install-alert{margin-top:16px!important;padding:12px 14px;border-radius:10px;background:#27385a;color:#fff!important}.install-platforms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.install-platforms section{padding:14px;border-radius:12px;background:#1a2742}.install-platforms h3{margin:0;font-size:18px;color:#ffd24a}.dialog-install{width:100%;min-height:44px;margin-top:14px;border:0;border-radius:10px;background:#ffd24a;color:#182033;font:inherit;font-weight:900;cursor:pointer}.install-finish{margin-top:14px!important;text-align:center}@media (max-width: 620px){.install-platforms{grid-template-columns:1fr}}.dialog-close{width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:var(--ink);font:inherit;font-size:26px;line-height:1;cursor:pointer}.iconbtn{pointer-events:auto;font:inherit;font-size:3.4cqmin;width:11.5cqmin;height:11.5cqmin;display:flex;align-items:center;justify-content:center;color:#fff;background:#00000059;border:.4cqmin solid rgba(255,255,255,.4);border-radius:50%;cursor:pointer}.mute-top{position:absolute;top:max(3cqmin,env(safe-area-inset-top));right:max(3cqmin,env(safe-area-inset-right))}.touch{position:absolute;inset:0;pointer-events:none}.touch[data-dim=true]{opacity:.4}.touch-top{position:absolute;top:max(2.4cqmin,env(safe-area-inset-top));right:max(2.4cqmin,env(safe-area-inset-right));display:flex;gap:1.6cqmin}.touch-dpad{position:absolute;left:max(3cqmin,env(safe-area-inset-left));bottom:max(4cqmin,env(safe-area-inset-bottom));display:flex;align-items:center;gap:1.4cqmin}.dpad-btn,.tbtn{pointer-events:auto;touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;padding:0;font:inherit;font-weight:900;color:#fff;border:.5cqmin solid rgba(255,255,255,.55);background:#140e2480;display:flex;align-items:center;justify-content:center;cursor:pointer}.dpad-btn{width:clamp(72px,19cqmin,92px);height:clamp(72px,19cqmin,92px);border-radius:3cqmin;font-size:clamp(28px,6cqmin,38px)}.touch-actions{position:absolute;right:max(3cqmin,env(safe-area-inset-right));bottom:max(4cqmin,env(safe-area-inset-bottom));display:flex;align-items:flex-end;gap:clamp(10px,2.4cqmin,16px)}.tbtn{flex-direction:column;width:clamp(76px,20cqmin,96px);height:clamp(76px,20cqmin,96px);border-radius:50%;font-size:6cqmin;line-height:1}.tbtn-label{font-size:clamp(26px,6cqmin,38px);font-weight:900}.tbtn-caption{margin-top:.3cqmin;font-size:clamp(11px,2.4cqmin,15px);font-weight:700;opacity:.85}.tbtn.a{background:#ff5a828c;width:clamp(88px,23cqmin,112px);height:clamp(88px,23cqmin,112px)}.tbtn.a .tbtn-label{font-size:clamp(32px,7cqmin,44px)}.tbtn.b{background:#5aa0ff80}.tbtn.c{background:#78d2ff59;opacity:.6;transition:opacity .1s linear,box-shadow .1s linear}.tbtn.c.ready{background:#78d2ff9e;opacity:1;box-shadow:0 0 2.4cqmin #a0e6ffe6}.tbtn.c.locked{background:#3c465a80;opacity:.45;box-shadow:none}.tbtn.c.locked .tbtn-label{font-size:4.4cqmin}.touch-tip{position:absolute;right:max(3cqmin,env(safe-area-inset-right));bottom:calc(max(4cqmin,env(safe-area-inset-bottom)) + clamp(100px,26cqmin,124px));font-size:2.4cqmin;font-weight:700;color:#ffffffb8;text-shadow:0 .35cqmin 0 rgba(0,0,0,.8);pointer-events:none}.dpad-btn:active,.tbtn:active{filter:brightness(1.4);transform:scale(.94)}@media (orientation: portrait) and (pointer: coarse){.touch-dpad{gap:8px}.dpad-btn{width:64px;height:64px}.touch-actions{width:158px;height:152px;display:block}.tbtn{position:absolute}.tbtn.a{right:0;bottom:42px;width:88px;height:88px}.tbtn.b{right:72px;bottom:0;width:74px;height:74px}.tbtn.c{right:0;bottom:0;width:68px;height:68px}.touch-tip{display:none}}.orientation-hint{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));z-index:5;width:min(92vw,420px);transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:12px;border-radius:14px;background:#10182d;color:#fff;box-shadow:0 6px #00000047;text-align:left}.orientation-hint span{flex:0 0 auto;font-size:34px;color:#ffd24a}.orientation-hint div{min-width:0;display:grid;gap:2px}.orientation-hint b{font-size:16px}.orientation-hint small{font-size:12px;color:#ffffffd1}.orientation-hint button{flex:0 0 auto;min-height:44px;padding:8px 12px;border:0;border-radius:10px;background:#ffd24a;color:#182033;font:inherit;font-size:13px;font-weight:900;cursor:pointer}@keyframes blink{50%{opacity:.25}}@keyframes bannerIn{0%{opacity:0;transform:scale(1.15)}}@keyframes pop{0%{opacity:0;transform:scale(.85)}}@keyframes pulse{50%{transform:scale(1.05)}}@keyframes float{50%{transform:translateY(-1.5cqmin)}}.title-screen{padding:4cqmin 5cqmin 3cqmin;gap:1.3cqmin;justify-content:flex-start;background-image:linear-gradient(90deg,#07192deb,#07192dc7 36%,#07192d14 72%),url(../assets/title/shironeko-title-key-art.png);touch-action:pan-y}.title-main{font-size:clamp(24px,8.3cqmin,64px);-webkit-text-stroke:0;letter-spacing:-.025em;text-shadow:0 3px 0 #102a43}.title-sub{font-size:clamp(14px,2.9cqmin,22px);font-weight:600;color:#c9e8f7;text-shadow:none}.edition-label{color:#ffda73;font-size:clamp(12px,2cqmin,14px);font-weight:700;margin-bottom:1cqmin}.title-logo{flex-shrink:0;margin-bottom:1cqmin}.mode-list{width:min(77cqmin,48%);gap:1cqmin;flex-shrink:0}.mode-btn{min-height:max(9cqmin,44px);border:0;border-radius:10px;box-shadow:none;padding:1.3cqmin 2.6cqmin;transition:background .18s ease-out,transform .18s ease-out}.mode-btn.normal{background:#ffda68;box-shadow:none}.mode-btn.time,.mode-btn.hard{background:#153b54;color:#f6fbff;box-shadow:none}.mode-btn.continue{background:#b9ebdb;color:#102a34}.mode-btn:hover{filter:brightness(1.08)}.mode-btn:active{transform:translateY(2px)}.mode-btn:disabled{opacity:.6;cursor:wait}.mode-btn-label{font-size:clamp(14px,3.3cqmin,26px)}.mode-btn-sub{font-size:clamp(12px,2.1cqmin,15px);opacity:1;font-weight:500}.mode-btn-rec{font-size:clamp(12px,2cqmin,14px);opacity:.9}.title-tools{display:flex;flex-wrap:wrap;gap:8px;width:53%}.adventure-tool,.title-tools .ranking-open{pointer-events:auto;min-height:44px;padding:8px 12px;border:1px solid #6d9ab5;border-radius:8px;background:#112f46;color:#f5fbff;font:600 14px/1.3 inherit;cursor:pointer}.adventure-tool{font-family:inherit;font-size:14px}.title-tools .ranking-open{font-size:14px;font-family:inherit}.save-notice{font-size:clamp(12px,1.8cqmin,14px);color:#d3e7f4;max-width:54%}.save-notice small{display:block;font-size:12px;margin-top:4px;color:#c8e0ee}.save-notice button{margin-left:8px;background:none;color:#ffe29a;border:0;text-decoration:underline;font:inherit;min-height:32px;cursor:pointer}.pwa-actions{gap:8px;flex-wrap:wrap;max-width:55%}.utility-btn{font-size:14px;min-height:44px;border-radius:8px;padding:8px 12px}.utility-btn.fullscreen{display:none}.share-status{max-width:55%;font-size:14px}@media (pointer:coarse),(max-width:900px){.utility-btn.fullscreen{display:inline-flex}}.title-controls{margin-top:auto;flex-shrink:0;width:100%;border-radius:8px;padding:1.1cqmin 2cqmin;background:#0c2239e8}.title-tap-hint{display:none}.adventure-sheet{width:min(640px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;background:#112c42;color:#f6fbff;padding:24px;border:1px solid #6c95b0;border-radius:16px;font:16px/1.6 Segoe UI,Hiragino Sans,Yu Gothic UI,system-ui,sans-serif;touch-action:pan-y;overscroll-behavior:contain}.adventure-sheet::backdrop{background:#041323d9}.adventure-sheet header{display:flex;justify-content:space-between;align-items:center;gap:16px}.adventure-sheet h2{margin:0;font-size:24px}.adventure-sheet button{min-height:44px;border:1px solid #7399b3;border-radius:8px;padding:8px 14px;background:#204762;color:#fff;font:inherit;cursor:pointer}.adventure-sheet button[aria-pressed=true],.adventure-sheet .sheet-done{background:#ffda68;color:#142a36;border-color:#ffda68;font-weight:700}.adventure-sheet button:focus-visible,.adventure-sheet input:focus-visible{outline:3px solid #ffe29a;outline-offset:3px}.adventure-sheet fieldset{border:0;padding:0;margin:24px 0}.adventure-sheet legend{font-weight:700;margin-bottom:10px}.adventure-sheet p,.sheet-note{color:#d2e5f0}.adventure-sheet fieldset p,.sheet-note{font-size:14px}.setting-options{display:flex;flex-wrap:wrap;gap:8px}.effects-toggle{display:flex;align-items:center;gap:10px;min-height:44px}.effects-toggle input{width:22px;height:22px;accent-color:#ffda68}.sheet-done{margin-top:16px}.adventure-map{list-style:none;padding:0;display:flex;flex-direction:column;gap:12px}.adventure-map button{width:100%;display:flex;align-items:center;gap:16px;text-align:left;padding:0;overflow:hidden}.adventure-map img{width:112px;height:82px;object-fit:cover;flex-shrink:0}.adventure-map span{display:flex;flex-direction:column;padding:8px 8px 8px 0}.adventure-map small{color:#d2e5f0;font-size:14px}.adventure-map button:disabled{opacity:.5;cursor:not-allowed}.pause-save{max-width:300px;font-size:14px;text-align:center;color:#cfe4ef}.hud{background:linear-gradient(#081c31d9,#081c3100);padding-bottom:6cqmin}.center-banner{background:linear-gradient(transparent,#071c3544,transparent)}.banner-title{text-shadow:0 3px 0 #102b45}.center-banner.clear .banner-title{text-shadow:0 3px 0 #573d13}.touch-dpad,.touch-actions{opacity:var(--control-opacity,.85)}.touch-top{top:max(12cqmin,env(safe-area-inset-top))}.touch-top .iconbtn{width:44px;height:44px;font-size:20px}.touch[data-size=large] .dpad-btn{width:clamp(80px,22cqmin,104px);height:clamp(80px,22cqmin,104px)}.touch[data-size=large] .tbtn{width:clamp(84px,23cqmin,108px);height:clamp(84px,23cqmin,108px)}.touch[data-size=large] .tbtn.a{width:clamp(96px,26cqmin,124px);height:clamp(96px,26cqmin,124px)}@media (max-width:600px) and (orientation:portrait){.stage{width:100vw;height:100dvh;aspect-ratio:auto;border-radius:0;background:#102c43}.game-canvas{position:absolute;top:max(72px,env(safe-area-inset-top));width:100%;height:auto;aspect-ratio:5/3}.hud{top:max(72px,env(safe-area-inset-top))}.boss-bar{bottom:auto;top:calc(36px + 60vw)}.title-screen{background-color:#0c2b42;background-size:100% 100%,100% auto;background-position:center,center bottom;background-repeat:no-repeat}.title-screen .title-controls{margin-top:auto}.touch-dpad,.touch-actions{bottom:max(40px,env(safe-area-inset-bottom))}.touch-actions{width:172px;height:220px}.touch .tbtn.a{right:0;bottom:104px}.touch .tbtn.b{right:88px;bottom:12px}.touch .tbtn.c{right:0;bottom:12px}.touch-top{top:16px}.orientation-hint{top:calc(88px + 60vw);bottom:auto}.center-banner{bottom:auto;top:72px;height:60vw}.center-banner .banner-title{font-size:26px}.center-banner .banner-sub{font-size:18px}.title-screen .utility-actions{flex-wrap:wrap}.pwa-actions,.share-status{max-width:100%}.title-screen{background-position:65% center;gap:10px;padding:16px}.title-main{font-size:26px}.title-logo{margin-bottom:0}.mode-list{width:100%}.mode-btn{padding:10px 12px}.mode-btn-label{font-size:16px}.title-tools{width:100%}.title-tools>*{flex:1 1 auto}.save-notice{max-width:100%}.title-controls{font-size:12px}.adventure-sheet{padding:18px}.adventure-sheet h2{font-size:22px}.touch[data-size=large] .dpad-btn{width:70px;height:70px}.touch[data-size=large] .tbtn.a{width:92px;height:92px}.touch[data-size=large] .tbtn.b{width:78px;height:78px}.touch[data-size=large] .tbtn.c{width:72px;height:72px}}@media (max-height:500px) and (orientation:landscape){.title-screen{padding:12px 18px;gap:8px}.title-logo{margin-bottom:0}.title-sub,.edition-label{font-size:12px}.title-main{font-size:30px}.mode-list{width:55%}.mode-btn{padding:7px 12px}.title-tools{width:60%}.title-tools .ranking-open,.adventure-tool{padding:6px 10px}.mode-btn-label{font-size:16px}.title-controls{padding:8px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
