:root{color-scheme:dark;font-family:Geist,PingFang HK,Microsoft JhengHei,system-ui,sans-serif;color:#ede6e3;background:#100e19;--mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--gold: #f6c784;--muted: #b9acbd;--line: #4b4059;--inset: inset 0 2px #c1a8d321, inset 0 -2px #0b0915}*{box-sizing:border-box}[hidden]{display:none!important}body{min-height:100svh;display:grid;align-items:center;margin:0;background:radial-gradient(ellipse at 50% 35%,#251c30,#100e19 78%)}button{font:inherit;color:inherit}button:not(:disabled){cursor:pointer}button:focus-visible{outline:2px solid #f5d39d;outline-offset:3px}button:disabled{opacity:.58}.shell{width:min(1216px,calc(100% - 54px),calc((100svh - 205px)*1.918));min-width:min(520px,calc(100% - 30px));margin:21px auto}.titlebar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}h1{display:flex;align-items:center;gap:11px;margin:0;color:#f5dcc2;font-size:clamp(17px,2vw,24px);letter-spacing:.18em}.title-gem{width:17px;height:22px;background:linear-gradient(132deg,#fce0a4 0 45%,#c98850 46% 75%,#7c4b3d 76%);clip-path:polygon(40% 0,60% 0,60% 13%,78% 13%,78% 30%,100% 30%,100% 69%,78% 69%,78% 87%,60% 87%,60% 100%,40% 100%,40% 87%,22% 87%,22% 69%,0 69%,0 30%,22% 30%,22% 13%,40% 13%)}.toolbar{display:flex;gap:8px}.icon-button{width:38px;height:34px;display:grid;place-items:center;border:1px solid var(--line);background:#241d30;box-shadow:var(--inset)}.icon-button:not(:disabled):hover{background:#3a2d46;border-color:#8b7297}.sound-button{width:auto;min-width:48px;padding-inline:8px;font-size:12px;font-weight:650}.sound-button[aria-pressed=false]{color:var(--muted);text-decoration:line-through}.pause-icon{width:11px;height:13px;border-inline:3px solid #c7b1cd}.is-paused .pause-icon{background:#c7b1cd;border:0;clip-path:polygon(0 0,100% 50%,0 100%)}.expand-icon{width:14px;height:14px;border:2px solid #c7b1cd;clip-path:polygon(0 0,35% 0,35% 30%,65% 30%,65% 0,100% 0,100% 35%,70% 35%,70% 65%,100% 65%,100% 100%,65% 100%,65% 70%,35% 70%,35% 100%,0 100%,0 65%,30% 65%,30% 35%,0 35%)}.game{container-type:inline-size;overflow:hidden;border:2px solid var(--line);outline:1px solid #0b0811;background:#191423;box-shadow:0 15px 60px #0a0716a0,inset 0 2px #9580a627}.hud{min-height:63px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:clamp(12px,5vw,68px);padding:8px 20px}.hud-stat{width:min(100%,246px)}.xp-stat{justify-self:end}.hud-label{display:flex;justify-content:space-between;gap:6px;margin-bottom:6px;font:700 clamp(9px,1.3vw,12px)/1.2 var(--mono);white-space:nowrap}.hud-label span:last-child{color:var(--muted)}.xp-stat .hud-label span:first-child{color:#aadcf8}.meter{height:9px;padding:1px;border:1px solid #53475f;background:#0c0a14}.meter span{display:block;height:100%;transform:scaleX(var(--fill));transform-origin:left center}.health{--fill: 1}.health span{background:linear-gradient(#ff927c 0 34%,#cc4d60 35%)}.xp{--fill: 0}.xp span{background:linear-gradient(#b2e9ff 0 34%,#569acd 35%)}.timer{min-width:3.35em;color:#ffe5bb;text-align:center;font:700 clamp(22px,3.3vw,35px)/1 var(--mono);text-shadow:2px 2px #6b432d}.stage{position:relative;width:100%;aspect-ratio:1120 / 584;overflow:hidden;background:#20283a;outline:none;touch-action:none}#canvas,#canvas canvas{display:block;width:100%;height:100%}#canvas canvas{object-fit:contain}.overlay{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(ellipse at center,#100c22ae,#09081550 48%,#09081522)}.dialog{width:min(390px,82%);padding:clamp(13px,2.9vw,31px) clamp(10px,2.7vw,26px);border:2px solid #89708b;background:#21182af5;box-shadow:var(--inset),0 0 0 3px #100d1c,6px 8px #08071388;text-align:center}.dialog h2{margin:0 0 9px;color:#ffebc7;font-size:clamp(20px,3.9vw,34px);letter-spacing:.035em;text-shadow:2px 2px #58393a}.dialog p{margin:0 0 18px;color:#d6c4cf;font-size:clamp(12px,1.6vw,15px);line-height:1.55}.primary{min-height:42px;padding:6px 20px;border:2px solid #e5aa70;background:#7b493c;box-shadow:inset 0 2px #ffda955c,inset 0 -2px #442b38,2px 3px #110c1a;color:#fff2cd;font-weight:750}.primary:not(:disabled):hover{background:#9a6149}.controls{min-height:78px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:11px;padding:8px 18px}.move-hint,.run-stat{color:var(--muted);font:600 clamp(10px,1.3vw,12px) var(--mono);white-space:nowrap}.run-stat{justify-self:end}.run-stat strong{margin-left:3px;color:#f5d1a5}.touch-hint{display:none}.skills{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.skill{--charge: 1;position:relative;min-height:52px;min-width:102px;padding:5px 8px 7px;display:grid;grid-template-columns:30px 1fr;grid-template-rows:auto auto;gap:2px 7px;align-items:center;overflow:hidden;text-align:left;border:1px solid #63536c;background:#241b30;box-shadow:var(--inset)}.skill img{grid-row:1 / span 2;image-rendering:pixelated;width:30px;height:25px}.skill:hover:not(:disabled){background:#39273c;border-color:var(--skill-color)}.skill:after{content:"";position:absolute;inset:auto 0 0;height:2px;background:var(--skill-color);transform:scaleX(var(--charge));transform-origin:left center}.skill-name{color:#eee1df;font-size:12px;font-weight:700;white-space:nowrap}.skill-state{color:var(--skill-color);font:700 10px var(--mono);white-space:nowrap}.skill.is-cooling img{opacity:.55}.skill.is-combo{border-color:var(--skill-color);background:#39273c}.skill[data-skill=ultimate]{background:#2b1d29;border-color:#8e653e}.skill[data-skill=ultimate]:disabled{opacity:.84}.skill[data-skill=ultimate].is-ready{background:#473023;border-color:#ffd58a;box-shadow:var(--inset),0 0 10px #ffb65f56}.skill[data-skill=ultimate].is-casting{border-color:#ffcf76}.skill[data-skill=ultimate]:after{height:3px}.notice{position:absolute;top:14%;left:50%;transform:translate(-50%);padding:6px 11px;border:1px solid #ab8861;background:#20182aed;color:#ffe2a7;font-size:13px;white-space:nowrap;pointer-events:none}.joystick{position:absolute;width:56px;height:56px;transform:translate(-50%,-50%);border:1px solid #f6c78488;border-radius:50%;background:#1d162ba0;pointer-events:none}.joystick span{display:block;width:24px;height:24px;margin:15px;transform:translate(var(--joy-x),var(--joy-y));border:1px solid #f6c784;border-radius:50%;background:#f6c78455}.shell:fullscreen{width:100%;height:100%;padding:9px;overflow:auto;background:#100e19}.shell:fullscreen .titlebar,.shell:fullscreen .game{max-width:min(100%,calc((100svh - 185px)*1.918));margin-inline:auto}@media(max-width:750px){.shell{width:calc(100% - 20px);min-width:0;margin:12px auto}.titlebar{margin-bottom:7px}.hud{min-height:49px;padding:6px 9px}.dialog h2{margin-bottom:5px}.dialog p{margin-bottom:10px}}@container (max-width: 970px){.controls{grid-template-columns:1fr auto;gap:6px 8px;padding:6px 8px 8px}.move-hint,.run-stat{grid-row:1}.skills{grid-column:1 / -1;gap:4px}.skill{min-width:0;min-height:44px;gap:1px 4px;padding:4px 4px 6px;grid-template-columns:21px 1fr}.skill img{width:21px;height:18px}.skill-name{font-size:clamp(10px,2.9vw,12px)}.skill-state{font-size:9px}}@container (max-width: 640px){.skills{grid-template-columns:repeat(3,minmax(0,1fr))}.skill[data-skill=ultimate]{grid-column:1 / -1}}@media(pointer:coarse){.key-hint{display:none}.touch-hint{display:inline}.skill:not(.is-cooling,.is-combo,[data-skill=ultimate]) .skill-state{visibility:hidden}}@media(max-height:520px)and (orientation:landscape){.shell{width:min(calc(100% - 18px),calc((100svh - 148px)*1.918));min-width:0;margin:6px auto}.titlebar{margin-bottom:5px}.hud{min-height:39px}.controls{min-height:53px;padding-block:4px}.icon-button{height:28px}.shell:fullscreen .titlebar,.shell:fullscreen .game{max-width:min(100%,calc((100svh - 143px)*1.918))}}.move-pad{display:none}.joystick{--joy-x: 0px;--joy-y: 0px}@media(max-width:640px)and (orientation:portrait){html,body{overscroll-behavior:none}body{display:block}.shell{display:flex;flex-direction:column;width:100%;height:100dvh;min-height:440px;min-width:0;max-width:520px;margin:0 auto;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.shell:fullscreen{padding:0}.shell:fullscreen .titlebar,.shell:fullscreen .game{max-width:none;margin-inline:0}.titlebar{min-height:52px;flex-shrink:0;margin:0;padding-inline:12px}.titlebar h1{font-size:17px}.toolbar{gap:5px}.icon-button{height:44px;min-width:44px}.game{flex:1;min-height:0;display:flex;flex-direction:column}.hud{min-height:44px;flex-shrink:0;gap:10px;padding:6px 10px}.hud-label{font-size:10px}.stage{flex:1;min-height:0;aspect-ratio:auto;background:#141923}#canvas{position:absolute;inset:0}.notice{top:8px}.primary{min-height:44px}.controls{flex:0 0 auto;min-height:0;grid-template-columns:minmax(85px,.42fr) minmax(0,1fr);grid-template-rows:auto auto;gap:4px 8px;padding:5px 8px 8px;border-top:1px solid var(--line);background:#1b1526;-webkit-user-select:none;user-select:none}.move-hint{display:none}.run-stat{grid-area:1 / 1;justify-self:center}.move-pad{grid-area:2 / 1;align-self:stretch;display:grid;place-content:center;justify-items:center;gap:5px;touch-action:none}.fixed-stick{position:static;display:grid;place-items:center;width:clamp(70px,22vw,99px);height:auto;aspect-ratio:1;transform:none;border:2px solid #91718b;background:radial-gradient(circle,#241b32 45%,#342642 46% 60%,#271d33 61%);box-shadow:inset 0 2px 6px #090610}.fixed-stick span{width:36%;height:36%;margin:0;background:#a07f76;border-color:#e5bf93;box-shadow:0 2px 5px #0f0b13}.move-pad.is-active .fixed-stick{border-color:var(--gold)}.pad-label{color:var(--muted);font-size:11px}.skills{grid-area:1 / 2 / 3;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;touch-action:manipulation}.skill{min-height:49px;padding:3px 1px 5px;grid-template-columns:1fr;grid-template-rows:18px auto;justify-items:center;align-content:center;gap:1px;touch-action:manipulation}.skill img{grid-row:1;width:22px;height:18px}.skill[data-skill=attack],.skill[data-skill=dodge]{background:#35283d;border-color:#927187}.skill:active:not(:disabled){background:#533a50}.skill[data-skill=attack].is-combo{background:#473023;border-color:var(--gold)}.skill-name{font-size:11px;line-height:14px}.skill-state{position:absolute;top:3px;right:3px;font-size:9px}.skill:not(.is-cooling,.is-combo,[data-skill=ultimate]) .skill-state{visibility:hidden}.skill[data-skill=ultimate]{grid-column:1 / -1;min-height:44px;grid-template-columns:22px auto auto;grid-template-rows:auto;justify-content:center;gap:8px}.skill[data-skill=ultimate] .skill-state{position:static;font-size:10px}}@media(max-width:640px)and (orientation:portrait)and (max-height:620px){.titlebar{min-height:46px}.hud{min-height:38px}.skill{min-height:44px}}
