:root{--bg:#0a1114;--ink:#edf4ef;--ink-dim:rgba(237,244,239,0.62);--ink-faint:rgba(237,244,239,0.4);--glass:rgba(13,21,25,0.72);--glass-strong:rgba(10,17,21,0.86);--glass-border:rgba(255,255,255,0.12);--glass-highlight:rgba(255,255,255,0.06);--accent:#ff7a5c;--accent-soft:rgba(255,122,92,0.16);--gold:#f5b942;--teal:#46d6c4;--danger:#ff5c55;--radius-lg:22px;--radius-md:16px;--radius-sm:10px;--shadow-panel:0 14px 36px rgba(2,6,8,0.32);--shadow-card:0 6px 16px rgba(2,6,8,0.22);--hud-scrim:rgba(5,9,11,0.42)}*{box-sizing:border-box}body,html{width:100%;height:100%}body{margin:0;overflow:hidden;background:var(--bg);color:var(--ink);font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit}.game-shell{position:fixed;inset:0;overflow:hidden;background:var(--bg)}#game-canvas{display:block;width:100vw;height:100vh;touch-action:none}.screen{position:fixed;inset:0;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:radial-gradient(120% 100% at 50% 0,rgba(4,8,10,.18),rgba(4,8,10,.62) 88%);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:20}.screen.is-hidden{display:none}.screen-select{grid-template-rows:auto 1fr;align-items:start;justify-items:center;padding-top:max(32px,5vh)}.title-hero{text-align:center;animation:hero-float 4.2s ease-in-out infinite}.select-flow{display:grid;place-self:start center;justify-items:center;width:min(880px,100%);margin-top:clamp(28px,8vh,84px);padding-bottom:max(24px,6vh)}.select-step{width:100%;animation:step-in .34s cubic-bezier(.2,.9,.3,1)}.select-step.is-hidden{display:none}.step-header{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:14px;gap:14px;align-items:baseline;width:100%;margin-bottom:14px}.step-header .step-count{justify-self:end}.step-header .step-selected{justify-self:start}.step-count{color:var(--teal);font-size:.72rem;font-weight:800;letter-spacing:.24em}.step-title{font-size:clamp(1.1rem,2.4vw,1.5rem);font-weight:900;text-shadow:0 2px 12px rgba(0,0,0,.6)}.step-selected{color:var(--gold);font-size:.78rem;font-weight:900;letter-spacing:.18em}.step-actions{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:4px}.ghost-button{min-height:50px;padding:0 20px;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(5,9,11,.45);color:var(--ink-dim);font-weight:800;cursor:pointer;transition:border-color .16s ease,color .16s ease}.ghost-button:hover{border-color:rgba(255,255,255,.5);color:var(--ink)}.result-panel{width:min(620px,100%);max-height:calc(100vh - 32px);overflow:auto;padding:clamp(18px,3vw,28px);text-align:center}@keyframes hero-float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes step-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.eyebrow{margin:0 0 10px;color:var(--teal);font-size:.74rem;font-weight:800;letter-spacing:.28em;text-transform:uppercase}h1,h2{margin:0;line-height:1.05;letter-spacing:.01em}h1{font-size:clamp(3rem,9vw,6.4rem);font-weight:1000;letter-spacing:.02em;background:linear-gradient(120deg,#fff 30%,rgba(255,189,158,.92) 68%,var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 6px 26px rgba(255,122,92,.35)) drop-shadow(0 2px 6px rgba(0,0,0,.6))}h2{font-size:clamp(1.8rem,5vw,3rem);text-shadow:0 2px 14px rgba(0,0,0,.65)}.title-kana{display:block;margin-top:4px;font-size:clamp(.85rem,1.6vw,1.05rem);font-weight:800;letter-spacing:.5em;color:var(--ink-dim);-webkit-text-fill-color:var(--ink-dim)}.sound-note{margin:12px 0 0;color:var(--ink-dim);font-size:.8rem;font-weight:700}.select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,340px));grid-gap:16px;gap:16px;justify-content:center}.ranking{width:min(700px,100%);margin:18px auto 0}.ranking-title{margin:0 0 8px;color:var(--ink-dim);font-size:.74rem;font-weight:800;letter-spacing:.2em;text-align:center}.ranking-list{display:grid;grid-gap:6px;gap:6px;margin:0;padding:0;list-style:none}.ranking-list li{display:grid;grid-template-columns:28px 96px 26px auto 1fr;grid-gap:10px;gap:10px;align-items:center;padding:7px 14px;border-radius:999px;background:rgba(5,9,11,.5);font-size:.8rem}.ranking-grade{font-size:.9rem;font-weight:1000;text-align:center}.ranking-grade.grade-s{color:var(--gold);text-shadow:0 0 8px rgba(245,185,66,.5)}.ranking-grade.grade-a{color:var(--teal)}.ranking-grade.grade-b{color:#ff9d85}.ranking-grade.grade--,.ranking-grade.grade-c{color:var(--ink-faint)}.ranking-list li:first-child:not(.ranking-empty){background:linear-gradient(90deg,rgba(245,185,66,.16),rgba(5,9,11,.5) 60%)}.ranking-pos{color:var(--ink-dim);font-weight:900;text-align:center}.ranking-list li:first-child .ranking-pos{color:var(--gold)}.ranking-score{font-size:.95rem;font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.ranking-diff{padding:2px 10px;border-radius:999px;font-size:.66rem;font-weight:900;letter-spacing:.06em}.ranking-diff.is-easy{background:rgba(70,214,196,.2);color:var(--teal)}.ranking-diff.is-normal{background:rgba(245,185,66,.2);color:var(--gold)}.ranking-diff.is-hard{background:rgba(255,122,92,.22);color:#ff9d85}.ranking-diff.is-ultimate{background:rgba(198,160,255,.22);color:#d3b5ff}.ranking-diff.is-unknown{background:rgba(255,150,96,.22);color:#ffb98a}.ranking-meta{overflow:hidden;color:var(--ink-faint);font-size:.7rem;text-align:right;text-overflow:ellipsis;white-space:nowrap}.ranking-list li.ranking-empty{display:block;padding:10px 14px;color:var(--ink-faint);text-align:center}.cat-card,.primary-button,.stage-card,.touch-controls button{border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--ink)}.cat-card,.stage-card{display:grid;grid-gap:10px;gap:10px;min-width:0;padding:14px;background:linear-gradient(165deg,rgba(255,255,255,.05),transparent 46%),rgba(9,15,18,.55);text-align:left;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background-color .16s ease}.cat-card:hover,.stage-card:hover:not(:disabled){transform:translateY(-2px);border-color:rgba(255,122,92,.4);box-shadow:var(--shadow-card)}.cat-card.is-selected,.stage-card.is-active{border-color:rgba(255,122,92,.85);box-shadow:0 0 0 1px rgba(255,122,92,.55),0 14px 34px rgba(255,122,92,.14),var(--shadow-card);background:linear-gradient(165deg,rgba(255,122,92,.1),transparent 52%),rgba(9,15,18,.6)}.cat-card:active,.primary-button:active,.settings-button:active,.stage-card:active,.touch-controls button:active{transform:translateY(1px)}.cat-card:focus-visible,.primary-button:focus-visible,.settings-button:focus-visible,.stage-card:focus-visible,.touch-controls button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.cat-card-visual{position:relative;min-height:150px;overflow:hidden;border-radius:var(--radius-sm);background:radial-gradient(120% 110% at 50% 110%,rgba(255,255,255,.24),transparent 55%),linear-gradient(180deg,rgba(10,17,20,.32),rgba(10,17,20,.06)),var(--card-bg,#37423f)}.cat-card-visual img{position:absolute;left:50%;bottom:-2px;width:auto;height:calc(100% + 2px);transform:translateX(-50%);filter:drop-shadow(0 14px 18px rgba(0,0,0,.35))}.cat-card h3{margin:0;font-size:clamp(1.2rem,2.3vw,1.55rem)}.cat-card p{margin:0;color:var(--ink-dim);font-size:.9rem;line-height:1.65}.cat-card-meta{display:flex;flex-wrap:wrap;gap:8px}.cat-card-meta span{padding:4px 10px;border:1px solid var(--glass-border);border-radius:999px;background:rgba(255,255,255,.05);color:var(--ink-dim);font-size:.76rem;font-weight:700}.stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,250px));grid-gap:12px;gap:12px;justify-content:center;margin-bottom:16px}.stage-card{grid-template-columns:auto 1fr;align-items:center;gap:4px 12px}.stage-visual{position:relative;grid-column:1/-1;display:block;height:116px;overflow:hidden;border-radius:var(--radius-sm)}.stage-visual img{position:absolute;left:50%;bottom:-10%;height:118%;transform:translateX(-50%);filter:drop-shadow(0 8px 14px rgba(0,0,0,.45))}.stage-visual-easy{background:linear-gradient(160deg,#2e4a68,#4a6a4e)}.stage-visual-normal{background:linear-gradient(160deg,#1e2c44,#43545a)}.stage-visual-hard{background:linear-gradient(160deg,#3d6ca6,#324a63)}.stage-visual-ultimate{background:linear-gradient(160deg,#3d0b20,#2c1040);animation:ultimate-glow .9s ease-in-out infinite alternate}.stage-visual-unknown{background:linear-gradient(160deg,#141026,#3d2033);animation:unknown-glow .9s ease-in-out infinite alternate}.stage-card:disabled{color:var(--ink-faint);cursor:not-allowed;opacity:.6}.stage-number{grid-row:span 2;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:#06110f;font-weight:900;box-shadow:0 6px 16px rgba(70,214,196,.22)}.stage-number,.stage-number.stage-easy{background:linear-gradient(150deg,rgba(70,214,196,.9),rgba(38,122,116,.9))}.stage-number.stage-normal{background:linear-gradient(150deg,rgba(245,185,66,.95),rgba(176,118,26,.95))}.stage-number.stage-hard{background:linear-gradient(150deg,rgba(255,122,92,.95),rgba(176,51,60,.95));color:#fff}.stage-number.stage-ultimate{background:linear-gradient(150deg,#c6a0ff,#5b2d8f 55%,#1d0f33);color:#fff;animation:ultimate-glow .9s ease-in-out infinite alternate}.stage-number.stage-unknown{background:linear-gradient(150deg,#ffb864,#c73e2e 55%,#401010);color:#fff;animation:unknown-glow .9s ease-in-out infinite alternate}@keyframes unknown-glow{0%{box-shadow:0 0 4px rgba(255,150,96,.4)}to{box-shadow:0 0 18px rgba(255,150,96,.75)}}@keyframes ultimate-glow{0%{box-shadow:0 0 4px rgba(198,160,255,.4)}to{box-shadow:0 0 16px rgba(198,160,255,.85)}}.stage-card.is-locked .stage-number{background:rgba(255,255,255,.12);color:var(--ink-faint);box-shadow:none}.stage-name{font-weight:800}.stage-boss{color:var(--ink-dim);font-size:.8rem}.primary-button{display:inline-grid;place-items:center;min-height:50px;padding:0 28px;border:0;border-radius:999px;background:linear-gradient(135deg,#ff8f68,var(--accent) 55%,#e8543c);color:#fff;font-weight:900;letter-spacing:.04em;cursor:pointer;box-shadow:0 14px 30px rgba(232,84,60,.35),inset 0 1px 0 rgba(255,255,255,.36);transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}.primary-button:hover{filter:brightness(1.06);box-shadow:0 18px 38px rgba(232,84,60,.45),inset 0 1px 0 rgba(255,255,255,.36)}.settings-button{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:24;min-height:38px;padding:0 16px;border:1px solid var(--glass-border);border-radius:999px;background:var(--glass);color:var(--ink);font-size:.8rem;font-weight:800;cursor:pointer;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 8px 22px rgba(2,6,8,.35)}.mute-button{right:calc(max(12px, env(safe-area-inset-right)) + 74px)}.settings-panel{position:fixed;top:calc(max(12px, env(safe-area-inset-top)) + 48px);right:max(12px,env(safe-area-inset-right));z-index:24;display:grid;grid-gap:12px;gap:12px;width:min(270px,calc(100vw - 24px));padding:16px;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-strong);backdrop-filter:blur(18px) saturate(1.25);-webkit-backdrop-filter:blur(18px) saturate(1.25);box-shadow:var(--shadow-panel)}.settings-panel.is-hidden{display:none}.settings-panel label{display:grid;grid-template-columns:48px 1fr 44px;grid-gap:8px;gap:8px;align-items:center;color:var(--ink-dim);font-size:.76rem;font-weight:800}.settings-panel input[type=range]{width:100%;accent-color:var(--teal)}.settings-panel strong{justify-self:end;color:var(--ink);font-size:.74rem}.hud{position:fixed;inset:0;z-index:10;pointer-events:none}.hud.is-hidden{display:none}.hud-top{display:contents}.boss-hud,.meter-group,.player-status-frame{min-width:0}.boss-hud,.player-status-frame{position:relative;border:0;border-radius:var(--radius-md);background:transparent;color:var(--ink)}.player-status-frame{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);display:grid;grid-template-columns:62px minmax(0,1fr) 44px;grid-gap:12px;gap:12px;align-items:center;width:min(400px,calc(100vw - 680px));min-width:320px;padding:6px 16px 6px 6px;border-radius:999px;background:linear-gradient(90deg,rgba(5,9,11,0),var(--hud-scrim) 16%,var(--hud-scrim) 84%,rgba(5,9,11,0))}.player-portrait{position:relative;display:grid;place-items:center;width:58px;height:58px;overflow:hidden;border:1.5px solid rgba(255,255,255,.55);border-radius:50%;background:radial-gradient(circle at 50% 30%,rgba(255,255,255,.22),rgba(9,15,18,.66) 74%),rgba(9,15,18,.8)}.player-portrait img{width:72px;height:72px;object-fit:cover;object-position:center bottom;transform:translateY(5px);filter:drop-shadow(0 6px 8px rgba(0,0,0,.3))}.player-meter-stack{display:grid;grid-gap:7px;gap:7px}.meter-group{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.boss-hud{position:fixed;top:max(14px,env(safe-area-inset-top));left:50%;width:min(500px,calc(100vw - 140px));min-width:300px;padding:4px 12px 8px;transform:translateX(-50%);justify-self:auto}.boss-hud.is-hidden{display:none}.meter-label{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px;color:var(--ink-dim);font-size:.66rem;font-weight:800;letter-spacing:.1em}.meter{position:relative;width:100%;height:6px;overflow:hidden;border:0;border-radius:999px;background:rgba(255,255,255,.16)}.meter-hp{height:7px}.meter-special{height:4px}.meter span{display:block;width:0;height:100%;border-radius:inherit;transition:width .14s ease-out}.meter-hp span{color:rgba(255,92,85,.75);background:linear-gradient(90deg,#c0303a,#ff5c55 55%,#ffab8f)}.meter-special span{color:rgba(70,214,196,.75);background:linear-gradient(90deg,#1c7f78,#46d6c4 58%,#b7fff2)}.meter-group.is-ready{animation:special-ready-pulse .78s ease-in-out infinite alternate}.meter-group.is-ready .meter-special span{color:rgba(245,185,66,.85);background:linear-gradient(90deg,#b57c17,#f5b942 52%,#ffedb1)}.meter-boss span{color:rgba(255,92,85,.6);background:linear-gradient(90deg,#571d26,#b0333c 58%,#ff8d7a)}.stat-chip{display:grid;grid-gap:2px;gap:2px;align-items:center;justify-items:center;min-width:44px;min-height:44px;padding:6px 8px;border:0;border-radius:50%;background:rgba(5,9,11,.4);font-weight:900}.stat-chip span{color:var(--ink-faint);font-size:.6rem;letter-spacing:.08em}.stat-chip strong{color:var(--gold);font-size:1.05rem;line-height:1}.boss-title-row{position:relative;display:grid;grid-template-columns:auto 1fr auto;grid-gap:10px;gap:10px;align-items:center;margin-bottom:6px;color:var(--ink);font-size:.8rem;font-weight:900;text-shadow:0 1px 4px rgba(0,0,0,.5)}.boss-title-row strong{justify-self:center;letter-spacing:.14em}.boss-title-row span:last-child{color:var(--ink-dim);font-size:.72rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.boss-title-mark{display:block;width:9px;height:9px;border-radius:2px;background:linear-gradient(135deg,#ff8d7a,var(--danger));transform:rotate(45deg)}.status-effects{position:absolute;bottom:calc(100% + 8px);left:50%;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;width:max-content;max-width:90vw;transform:translateX(-50%);pointer-events:none}.status-badge{padding:3px 10px;border-radius:999px;font-size:.7rem;font-weight:900;color:#0a1114;animation:status-pop .22s cubic-bezier(.2,.9,.3,1)}.status-badge.is-poison{background:#6ab56f;color:#06130a;animation:status-pop .22s cubic-bezier(.2,.9,.3,1),status-pulse .9s ease-in-out infinite alternate}.status-badge.is-stun{background:var(--gold)}.status-badge.is-slow{background:#7fb4e8}.status-badge.is-seal{background:#9aa4b5}.status-badge.is-matatabi{background:#ff6b57;color:#1c0505}.status-badge.is-burn{background:#ff9d4d;color:#1c0b02;animation:status-pop .22s cubic-bezier(.2,.9,.3,1),status-pulse .9s ease-in-out infinite alternate}@keyframes status-pop{0%{opacity:0;transform:translateY(6px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes status-pulse{0%{filter:brightness(1)}to{filter:brightness(1.25)}}.weapon-row{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(2,150px);grid-gap:8px;gap:8px}.keymap-row{position:fixed;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));z-index:11;display:flex;flex-wrap:wrap;gap:6px;max-width:720px}.keymap-row span{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:4px 10px;border:0;border-radius:999px;background:rgba(5,9,11,.35);color:var(--ink-dim);font-size:.7rem;font-weight:800}kbd{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 5px;border:1px solid rgba(255,255,255,.22);border-radius:5px;background:transparent;color:var(--ink);font:800 .66rem system-ui,sans-serif}.weapon-card{min-width:0;padding:7px 10px 8px;border:0;border-radius:var(--radius-sm);background:rgba(5,9,11,.4);box-shadow:inset 0 -2px 0 rgba(255,255,255,.08);color:var(--ink)}.weapon-card.is-locked{opacity:.42}.weapon-card.is-evolved .weapon-name{color:var(--gold)}.weapon-special.is-ready{background:rgba(5,9,11,.48);box-shadow:inset 0 -2px 0 var(--gold);animation:special-ready-pulse .78s ease-in-out infinite alternate}.weapon-special.is-ready .weapon-name{color:var(--gold)}.weapon-header{display:flex;align-items:center;gap:6px;min-width:0}.key-badge{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:28px;min-height:20px;padding:2px 7px;border:0;border-radius:6px;background:rgba(70,214,196,.16);color:var(--teal);font-size:.68rem;font-weight:900}.weapon-name{display:block;overflow:hidden;font-size:.76rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.weapon-meta{display:flex;justify-content:space-between;gap:6px;margin-top:5px;color:var(--ink-dim);font-size:.68rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.banner{position:fixed;top:42%;left:50%;z-index:15;padding:12px 38px;border:0;border-block:1px solid rgba(255,92,85,.6);background:linear-gradient(90deg,transparent,rgba(28,6,8,.78) 18%,rgba(28,6,8,.78) 82%,transparent);color:#ffe9e4;font-size:clamp(2.2rem,8vw,5.4rem);font-weight:1000;letter-spacing:.18em;text-shadow:0 0 22px rgba(255,92,85,.55);transform:translate(-50%,-50%);animation:banner-pulse .7s ease-in-out infinite alternate;pointer-events:none}.banner.is-hidden{display:none}.banner.is-fatal{border-block-color:rgba(255,60,48,.9);background:linear-gradient(90deg,transparent,rgba(64,4,4,.86) 16%,rgba(64,4,4,.86) 84%,transparent);color:#ffd9d2;font-size:clamp(1.7rem,5.6vw,4rem);letter-spacing:.1em;text-shadow:0 0 26px rgba(255,60,48,.75);animation:fatal-flash .36s steps(2) infinite}@keyframes fatal-flash{0%{opacity:1}to{opacity:.55}}.cutin{position:fixed;inset:0;z-index:16;overflow:hidden;background:radial-gradient(96% 110% at 74% 56%,rgba(70,214,196,.12),transparent 58%),linear-gradient(100deg,rgba(4,7,9,.9) 24%,rgba(10,18,22,.62) 58%,rgba(4,7,9,.86));pointer-events:none}.cutin:before{inset:-20%;background:repeating-linear-gradient(100deg,transparent 0 34px,rgba(255,255,255,.045) 34px 38px);transform:translateX(-12%);animation:cutin-lines 1.2s ease-out forwards}.cutin:after,.cutin:before{content:"";position:absolute}.cutin:after{inset:0;background:linear-gradient(100deg,transparent 26%,rgba(255,255,255,.14) 50%,transparent 74%);transform:translateX(-120%);animation:cutin-sheen .85s ease-out forwards}.cutin.is-hidden{display:none}.cutin img{position:absolute;right:clamp(-30px,4vw,120px);bottom:-6vh;height:min(86vh,720px);filter:drop-shadow(-18px 8px 30px rgba(0,0,0,.5));animation:cutin-slide .9s cubic-bezier(.16,.84,.3,1) forwards}.cutin strong{position:absolute;z-index:2;left:clamp(24px,8vw,160px);top:42%;font-size:clamp(2.4rem,7.5vw,6.6rem);font-weight:1000;letter-spacing:.08em;white-space:nowrap;background:linear-gradient(120deg,#fff 34%,rgba(70,214,196,.95));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;transform:translateY(-50%) skewX(-6deg);animation:cutin-title .8s cubic-bezier(.16,.84,.3,1) forwards}.cutin strong:after{content:"";position:absolute;left:4px;right:-14%;bottom:-12px;height:2px;background:linear-gradient(90deg,rgba(255,255,255,.9),transparent)}.cutin.is-matatabi{background:radial-gradient(96% 110% at 74% 56%,rgba(255,92,85,.16),transparent 58%),linear-gradient(100deg,rgba(14,4,6,.9) 24%,rgba(34,10,14,.66) 58%,rgba(14,4,6,.86))}.cutin.is-matatabi img{filter:drop-shadow(-18px 8px 30px rgba(120,10,20,.55)) saturate(1.15)}.cutin.is-matatabi strong{background:linear-gradient(120deg,#fff 30%,#ff8a7a 70%,#ff5c55);-webkit-background-clip:text;background-clip:text}.cutin.is-boss{background:radial-gradient(96% 110% at 74% 56%,rgba(245,185,66,.12),transparent 58%),linear-gradient(100deg,rgba(9,6,16,.92) 24%,rgba(44,28,57,.7) 58%,rgba(9,6,16,.9))}.cutin.is-boss img{filter:drop-shadow(-18px 8px 32px rgba(245,185,66,.3))}.cutin.is-boss strong{background:linear-gradient(120deg,#fff 26%,var(--gold) 72%);-webkit-background-clip:text;background-clip:text}.result-rank.is-hidden{display:none}.result-rank{margin:14px auto 8px;font-size:clamp(5rem,18vw,9.5rem);font-weight:1000;line-height:1;background:linear-gradient(160deg,#ffd9a8 12%,var(--gold) 48%,var(--accent) 88%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;filter:drop-shadow(0 8px 26px rgba(245,185,66,.3))}.result-rank.is-hidden+.result-score-line{margin-top:26px}.result-score-line{display:inline-flex;align-items:baseline;gap:10px;margin:0 auto 18px;padding:9px 18px;border:1px solid var(--glass-border);border-radius:999px;background:rgba(255,255,255,.05);color:var(--ink-dim);font-size:.8rem;font-weight:800}.result-score-line strong{color:var(--ink);font-size:clamp(1.15rem,4vw,1.7rem);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.result-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin:0 0 18px}.result-stats div{display:grid;grid-gap:4px;gap:4px;padding:12px 8px;border:0;border-radius:var(--radius-sm);background:rgba(5,9,11,.45)}.result-stats dt{color:var(--ink-dim);font-size:.74rem;font-weight:700}.result-stats dd{margin:0;font-size:1.3rem;font-weight:1000;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.touch-controls{position:fixed;right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));z-index:12;display:none;grid-template-columns:repeat(4,52px);gap:8px}.touch-controls button{width:52px;height:52px;padding:0;border-radius:50%;background:rgba(5,9,11,.55);color:var(--ink);font-size:.86rem;font-weight:900;pointer-events:auto}@keyframes special-ready-pulse{0%{filter:drop-shadow(0 0 0 rgba(245,185,66,0))}to{filter:drop-shadow(0 0 10px rgba(245,185,66,.75))}}@keyframes banner-pulse{0%{opacity:.86}to{opacity:1}}@keyframes cutin-sheen{to{transform:translateX(120%)}}@keyframes cutin-lines{0%{transform:translateX(-12%);opacity:1}to{transform:translateX(0);opacity:.5}}@keyframes cutin-slide{0%{transform:translateX(14%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes cutin-title{0%{transform:translateY(-50%) translateX(-6%) skewX(-6deg);opacity:0}to{transform:translateY(-50%) translateX(0) skewX(-6deg);opacity:1}}@media (max-width:980px){.player-status-frame{width:min(340px,calc(100vw - 24px));min-width:0}.weapon-row{bottom:calc(96px + env(safe-area-inset-bottom))}}@media (hover:none),(max-width:760px){.touch-controls{display:grid}.keymap-row{display:none}.player-status-frame{bottom:calc(76px + env(safe-area-inset-bottom))}.weapon-row{bottom:calc(154px + env(safe-area-inset-bottom))}}@media (max-width:720px){.screen{align-items:start;overflow:auto}.result-panel{max-height:none}.select-grid{grid-template-columns:minmax(0,340px)}.stage-grid{grid-template-columns:minmax(0,300px)}.result-stats{grid-template-columns:1fr 1fr}.player-status-frame{grid-template-columns:48px minmax(0,1fr) 38px;gap:8px;width:min(316px,calc(100vw - 24px));padding:6px 12px 6px 6px}.player-portrait{width:44px;height:44px}.player-portrait img{width:54px;height:54px}.stat-chip{min-width:38px;min-height:38px;padding:4px 5px}.stat-chip span{font-size:.56rem}.stat-chip strong{font-size:.88rem}.boss-title-row{font-size:.74rem}.cat-card-visual{min-height:126px}.weapon-row{grid-template-columns:repeat(2,140px)}.weapon-card{padding-inline:8px}.weapon-header{align-items:flex-start}.key-badge{min-width:24px;padding-inline:5px;font-size:.62rem}.weapon-name{overflow:visible;line-height:1.15;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}}.ending-screen{position:fixed;inset:0;z-index:22;overflow:hidden;background:#000}.ending-whiteout{position:absolute;inset:0;background:#fffdf5;animation:ending-whiteout 2.6s ease-out forwards;pointer-events:none}@keyframes ending-whiteout{0%{opacity:1}to{opacity:0}}.ending-roll{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);width:100%}.ending-photo,.ending-roll{position:relative;height:100%}.ending-photo{overflow:hidden}.ending-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s ease}.ending-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 72%,rgba(0,0,0,.9));pointer-events:none}.ending-photo img.is-current{opacity:1}.ending-credits-viewport{position:relative;overflow:hidden;mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent)}.ending-credits{position:absolute;top:100%;right:0;left:0;display:grid;grid-gap:clamp(28px,6vh,56px);gap:clamp(28px,6vh,56px);padding:0 clamp(20px,6vw,72px);text-align:center;animation-name:ending-roll-up;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes ending-roll-up{0%{transform:translateY(0)}to{transform:translateY(calc(-100% - 100vh))}}.ending-credit-role{display:block;margin-bottom:10px;color:var(--ink-dim);font-size:.76rem;font-weight:700;letter-spacing:.26em}.ending-credit strong{display:block;color:var(--ink);font-size:clamp(1rem,2.2vh,1.3rem);font-weight:900;letter-spacing:.04em;line-height:1.9;overflow-wrap:anywhere}.ending-skip{position:absolute;right:24px;bottom:20px;opacity:.72}.ending-thanks{position:absolute;inset:0;display:grid;place-items:center;padding:0;border:0;background:#000;font:inherit;cursor:pointer;animation:ending-thanks-in .9s ease}.ending-thanks-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ending-thanks-body{position:relative;display:grid;grid-gap:12px;gap:12px;justify-items:center;text-shadow:0 2px 18px rgba(0,0,0,.85)}.ending-thanks-title{color:#fffdf5;font-size:clamp(1.4rem,4.4vw,2.6rem);font-weight:900;letter-spacing:.12em}.ending-thanks-note{color:rgba(255,253,245,.78);font-size:.8rem;letter-spacing:.14em}@keyframes ending-thanks-in{0%{opacity:0}to{opacity:1}}@media (max-width:760px){.ending-roll{grid-template-columns:1fr;grid-template-rows:minmax(0,5fr) minmax(0,7fr)}.ending-photo:after{background:linear-gradient(180deg,transparent 72%,rgba(0,0,0,.9))}}.dex-button{right:calc(max(12px, env(safe-area-inset-right)) + 210px)}.dex-overlay{position:fixed;inset:0;z-index:26;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:rgba(4,8,10,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.dex-dialog{display:flex;flex-direction:column;gap:12px;width:min(720px,100%);max-height:calc(100vh - 32px);padding:18px;border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:var(--glass-strong);backdrop-filter:blur(18px) saturate(1.25);-webkit-backdrop-filter:blur(18px) saturate(1.25);box-shadow:var(--shadow-panel);animation:step-in .26s cubic-bezier(.2,.9,.3,1)}.dex-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.dex-title{margin:0;font-size:1.05rem;font-weight:900;letter-spacing:.06em}.dex-close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid var(--glass-border);border-radius:999px;background:var(--glass);color:var(--ink);font-size:1rem;font-weight:800;cursor:pointer}.dex-close:hover{background:var(--glass-highlight)}.dex-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.dex-tab{min-height:38px;border:1px solid var(--glass-border);border-radius:999px;background:var(--glass);color:var(--ink-dim);font-size:.8rem;font-weight:800;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.dex-tab.is-active{border-color:rgba(255,122,92,.55);background:var(--accent-soft);color:var(--ink)}.dex-note{margin:0;color:var(--ink-faint);font-size:.72rem}.dex-list{flex:1 1 auto;min-height:0;display:grid;grid-gap:10px;gap:10px;margin:0;padding:0 4px 0 0;overflow-y:auto;overscroll-behavior:contain;list-style:none}.dex-entry{display:grid;grid-template-columns:76px minmax(0,1fr);grid-gap:14px;gap:14px;align-items:center;padding:12px;border:1px solid var(--glass-highlight);border-radius:var(--radius-md);background:var(--glass)}.dex-visual{display:grid;place-items:center;width:76px;height:76px;overflow:hidden;border-radius:var(--radius-sm);background:radial-gradient(80% 80% at 50% 40%,rgba(255,255,255,.1),rgba(255,255,255,.02))}.dex-visual img{max-width:84%;max-height:84%;object-fit:contain}.dex-visual.is-locked img{filter:brightness(0);opacity:.9}.dex-entry-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.dex-name{margin:0;font-size:.95rem;font-weight:900}.dex-meta{padding:2px 10px;border:1px solid var(--glass-border);border-radius:999px;font-size:.68rem;font-weight:800;white-space:nowrap}.dex-desc,.dex-meta{color:var(--ink-dim)}.dex-desc{margin:6px 0 0;font-size:.78rem;line-height:1.65}@media (max-width:600px){.dex-entry{grid-template-columns:56px minmax(0,1fr);gap:10px}.dex-visual{width:56px;height:56px}}.hud-clock{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));z-index:11;display:grid;grid-gap:2px;gap:2px}.hud-clock-time{color:#fff;font-size:1.05rem;font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.06em;text-shadow:0 2px 8px rgba(0,0,0,.7)}.hud-clock-grade{color:rgba(255,255,255,.85);font-size:.72rem;font-weight:800;letter-spacing:.18em;text-shadow:0 2px 6px rgba(0,0,0,.7)}.status-badge.is-debug{background:#8bd3e0;color:#06232a}.result-actions{display:flex;gap:12px;align-items:center;justify-content:center}.dex-diff.is-easy{background:rgba(70,214,196,.2);color:var(--teal)}.dex-diff.is-normal{background:rgba(245,185,66,.2);color:var(--gold)}.dex-diff.is-hard{background:rgba(255,122,92,.22);color:#ff9d85}.dex-diff.is-ultimate{background:rgba(198,160,255,.22);color:#d3b5ff}.dex-diff.is-unknown{background:rgba(255,150,96,.22);color:#ffb98a}.pause-screen{position:fixed;inset:0;z-index:21;display:grid;place-items:center;background:rgba(4,8,10,.6);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.pause-panel{display:grid;grid-gap:14px;gap:14px;justify-items:center;padding:clamp(20px,4vw,32px) clamp(28px,6vw,56px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);background:var(--glass-strong);text-align:center;box-shadow:var(--shadow-panel);animation:step-in .24s cubic-bezier(.2,.9,.3,1)}.pause-actions{display:grid;grid-gap:10px;gap:10px;justify-items:stretch;min-width:220px}.pause-note{margin:0;color:var(--ink-faint);font-size:.74rem}.result-hint{margin:0 0 16px;padding:10px 16px;border:1px solid rgba(245,185,66,.4);border-radius:var(--radius-md);background:rgba(245,185,66,.12);color:#ffd98a;font-size:.82rem;font-weight:800;line-height:1.7}.loading-screen{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:var(--bg)}.loading-body{display:grid;grid-gap:16px;gap:16px;justify-items:center}.loading-title{margin:0;font-size:clamp(2.2rem,7vw,3.6rem);font-weight:1000;letter-spacing:.02em;background:linear-gradient(120deg,#fff 30%,rgba(255,189,158,.92) 68%,var(--accent));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.loading-kana{display:block;margin-top:2px;color:var(--ink-dim);-webkit-text-fill-color:var(--ink-dim);font-size:.8rem;font-weight:800;letter-spacing:.5em;text-align:center}.loading-bar{overflow:hidden;width:min(280px,70vw);height:10px;border:1px solid var(--glass-border);border-radius:999px;background:rgba(255,255,255,.06)}.loading-bar span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--accent));transition:width .2s ease}.loading-note{margin:0;color:var(--ink-dim);font-size:.78rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}