:root{--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px)}*{box-sizing:border-box}html,body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;height:100%;margin:0;overflow:hidden}#app,#app canvas{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}.hidden{display:none!important}#loading{z-index:50;place-items:center;transition:opacity .5s;display:grid;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}.gp-focus{outline-offset:3px}.screen#title{padding:calc(16px + var(--safe-t)) calc(16px + var(--safe-r)) calc(16px + var(--safe-b)) calc(16px + var(--safe-l));pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}#title>*{position:relative}#title .menu{pointer-events:auto;flex-direction:column;display:flex}#title .copyright{left:0;right:0;bottom:calc(10px + var(--safe-b));text-align:center;position:absolute}.modal{z-index:10;padding:calc(12px + var(--safe-t)) calc(12px + var(--safe-r)) calc(12px + var(--safe-b)) calc(12px + var(--safe-l));place-items:center;display:grid;position:absolute;inset:0}.card{flex-direction:column;align-items:stretch;width:min(26em,100%);max-height:100%;display:flex;overflow:auto}.row{justify-content:space-between;align-items:center;gap:1em;display:flex}.keys{grid-template-columns:auto 1fr;align-items:center;gap:.5em 1em;display:grid}.keys dt{text-align:right}.keys dd{margin:0}#hud{pointer-events:none;position:absolute;inset:0}#hud .score{top:calc(12px + var(--safe-t));left:calc(16px + var(--safe-l));position:absolute}#hud .hints{bottom:calc(12px + var(--safe-b));left:calc(16px + var(--safe-l));gap:1em;display:flex;position:absolute}#hud .hints span{align-items:center;gap:.35em;display:flex}[data-device=touch] #hud .hints{display:none}.gl{vertical-align:middle;border-radius:6px;justify-content:center;align-items:center;min-width:1.7em;height:1.7em;margin:0 .08em;padding:0 .35em;font:700 .8em/1 system-ui,sans-serif;display:inline-flex}.gl svg{width:1.3em;height:1.3em}.gl-face{border-radius:50%;width:1.7em;padding:0}.gl-pill{border-radius:999px;padding:0 .6em}.gl-stick b{margin-left:.1em;font-size:.7em}.gl-mouse{padding:0 .15em}.gl-or{opacity:.7;margin:0 .15em}#touch{pointer-events:none;touch-action:none;position:absolute;inset:0}#touch .stick{width:120px;height:120px;left:calc(40px + var(--safe-l));bottom:calc(40px + var(--safe-b));border-radius:50%;position:absolute}#touch .stick.on{bottom:auto}#touch .knob{border-radius:50%;width:50px;height:50px;position:absolute;top:35px;left:35px}#touch .tbtn{pointer-events:auto;border-radius:50%;width:76px;min-width:0;height:76px;padding:0;position:absolute}#touch .slot-0{width:92px;height:92px;right:calc(24px + var(--safe-r));bottom:calc(32px + var(--safe-b))}#touch .slot-1{right:calc(130px + var(--safe-r));bottom:calc(24px + var(--safe-b))}#touch .slot-2{right:calc(36px + var(--safe-r));bottom:calc(138px + var(--safe-b))}#touch .slot-3{right:calc(124px + var(--safe-r));bottom:calc(118px + var(--safe-b))}#touch .tbtn.pause{width:46px;height:46px;top:calc(10px + var(--safe-t));bottom:auto;right:calc(12px + var(--safe-r))}:root{--ink:#f6efe2;--ink-dim:#f6efe2a8;--sumi:#120f1c;--panel:#0e0c1abd;--panel-edge:#ffd69647;--shu:#e8443a;--kin:#f2c25c;--kitsune:#7fd2ff;--accent:#e8443a;--accent-ink:#fff;--shade:#0806109e;--font:"Zen Maru Gothic", "Hiragino Maru Gothic ProN", "M PLUS Rounded 1c", system-ui, sans-serif;--mincho:"Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif}html,body{color:var(--ink);font:16px/1.5 var(--font);background:#07060c}#loading{color:var(--ink);font-family:var(--mincho);letter-spacing:.1em;background:#07060c}#focus-hint{left:50%;bottom:calc(6vh + var(--safe-b,0px));pointer-events:none;border:1px solid var(--panel-edge);color:var(--ink);letter-spacing:.04em;text-align:center;background:#07060cb8;border-radius:999px;max-width:min(90vw,36em);padding:.5em 1.2em;font-size:clamp(13px,1.6vw,16px);animation:2.4s ease-in-out infinite focus-blink;position:absolute;transform:translate(-50%)}#focus-hint.hidden{display:none}@keyframes focus-blink{50%{opacity:.5}}#paddiag{pointer-events:none;z-index:60;color:#fff;white-space:pre-wrap;background:#000000b3;max-width:92vw;margin:0;padding:6px 8px;font:11px/1.4 ui-monospace,Menlo,monospace;position:absolute;top:8px;left:8px}button{font:inherit;color:var(--ink);border:1px solid var(--panel-edge);cursor:pointer;letter-spacing:.06em;background:#1e1830db;border-radius:6px;min-width:12em;padding:.55em 1.6em;font-weight:700}button:hover,button.gp-focus{color:#fff;background:linear-gradient(90deg,#b52a2a,#e8443a);border-color:#ffd28a}button:disabled{opacity:.38;cursor:default}button:disabled:hover{border-color:var(--panel-edge);background:#1e1830db}.gp-focus{outline:2px solid var(--kin)}input[type=range]{width:10em;accent-color:var(--shu)}select{font:inherit;border:1px solid var(--panel-edge);color:var(--ink);background:#1d1830;border-radius:6px;padding:.25em .5em}select:disabled{opacity:.6}.card .autoshot-note{text-align:right;margin-top:-.2em;font-size:.8em}.screen#title{padding-left:calc(7vw + var(--safe-l));padding-top:calc(4vh + var(--safe-t));justify-content:center;align-items:flex-start}#title .logo{margin-bottom:1.6em}#title h1{font-family:var(--mincho);color:#fff;letter-spacing:.08em;text-shadow:0 0 18px #7fd2ff8c,0 3px #78141499;margin:0;font-size:clamp(40px,8.5vw,96px);font-weight:800;line-height:1.05}#title .sub{font-family:var(--mincho);letter-spacing:.5em;color:var(--kin);margin:.2em 0 0;font-size:clamp(12px,1.6vw,18px)}#title .tagline{color:var(--ink-dim);font-family:var(--mincho);text-shadow:0 1px 3px #000;margin:.6em 0 0;font-size:clamp(13px,1.5vw,17px)}#title .menu{align-items:stretch;gap:.5em}#title .menu button{text-align:left;background:#0e0c1a8c;min-width:14em}#title .menu button:hover,#title .menu button.gp-focus{background:linear-gradient(90deg,#b52a2af2,#e8443a33)}#title .copyright{color:var(--ink-dim);text-shadow:0 1px 2px #000;letter-spacing:.04em;text-align:right;padding-right:16px;font-size:12px}#title .copyright .build{opacity:.7;letter-spacing:.06em;font-variant-numeric:tabular-nums;margin-top:2px;font-size:10px;display:block}.modal{background:var(--shade)}.card{border:1px solid var(--panel-edge);background:linear-gradient(#1c162cf5,#100d1cf5);border-radius:10px;gap:.55em;padding:1.2em 1.4em;box-shadow:0 10px 40px #00000080}.card h2{text-align:center;font-family:var(--mincho);letter-spacing:.12em;color:var(--kin);margin:0 0 .3em}.card button{min-width:0}.card .note,.card p{color:var(--ink-dim);margin:.2em 0;font-size:.88em}.keys{margin:.4em 0 .8em}.diffcard button{text-align:left;flex-direction:column;align-items:flex-start;gap:.1em;display:flex}.diffcard button b{font-family:var(--mincho);letter-spacing:.12em;font-size:1.15em}.diffcard button small{opacity:.78;font-size:.8em;font-weight:500}.diffcard .diff-easy b{color:#8fe3a8}.diffcard .diff-normal b{color:#8fd0ff}.diffcard .diff-hard b{color:#ffb070}.diffcard .diff-lunatic b{color:#ff7ab8}.diffcard button:hover b,.diffcard button.gp-focus b{color:#fff}.resultcard dl{grid-template-columns:auto 1fr;gap:.3em 1.2em;margin:.4em 0 .8em;display:grid}.resultcard dt{color:var(--ink-dim)}.resultcard dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:700}[data-device=touch] .keys,html:not([data-device=touch]) .touch-only{display:none}#hud{color:var(--ink)}#hud .fieldframe{left:var(--fx);top:var(--fy);width:var(--fw);height:var(--fh);pointer-events:none;border-radius:2px;position:absolute;box-shadow:0 0 0 1px #ffd69659,0 0 0 4px #0a0812a6,0 0 40px #0009}#hud .side{top:var(--fy);height:var(--fh);width:calc((100vw - var(--fw)) / 2 - 28px);gap:calc(var(--u) * 9);max-width:300px;padding:calc(var(--u) * 10) 0;font-size:calc(var(--u) * 13);flex-direction:column;display:flex;position:absolute}#hud .side-l{right:calc(var(--fx) + var(--fw) + 14px);text-align:right;align-items:flex-end}#hud .side-r{left:calc(var(--fx) + var(--fw) + 14px);align-items:flex-start}#hud .side:before{content:"";inset:calc(var(--u) * -4) -10px;background:linear-gradient(180deg, var(--panel), #0e0c1a59);z-index:-1;border-radius:8px;position:absolute}#hud .stat{flex-direction:column;line-height:1.15;display:flex}#hud .stat .lbl{color:var(--kin);letter-spacing:.14em;font-size:.78em;font-family:var(--mincho)}#hud .stat b{font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:1.25em}#hud .stat.big b{font-size:1.55em}#hud .icons{min-height:calc(var(--u) * 20);flex-wrap:wrap;gap:2px;display:flex}#hud .side-l .icons{justify-content:flex-end}#hud .icons img{width:calc(var(--u) * 20);height:calc(var(--u) * 20);filter:drop-shadow(0 1px 1px #000)}#hud .icons em{align-self:center;margin-left:4px;font-style:normal;font-weight:700}#hud .diff{font-family:var(--mincho);letter-spacing:.2em;color:#ffd28a;font-size:1.2em}#hud .stage{color:var(--ink-dim);font-family:var(--mincho);letter-spacing:.1em;margin-top:auto}#hud .topbar,[data-layout=tall] #hud .side{display:none}[data-layout=tall] #hud .topbar{left:var(--fx);width:var(--fw);top:calc(var(--fy) - max(34px, 8.5vw));justify-content:space-between;align-items:center;height:max(34px,8.5vw);padding:0 8px;font-size:clamp(12px,3.4vw,16px);display:flex;position:absolute}[data-layout=tall] #hud .topbar .lbl{color:var(--kin);font-size:.8em;font-family:var(--mincho);margin-right:.4em}[data-layout=tall] #hud .topbar b{font-variant-numeric:tabular-nums}[data-layout=tall] #hud .topbar .tb-res{gap:8px;display:flex}[data-layout=tall] #hud .topbar .icons{min-height:0}[data-layout=tall] #hud .topbar .icons img{width:clamp(12px,3.6vw,18px);height:clamp(12px,3.6vw,18px)}#fieldui{left:var(--fx);top:var(--fy);width:var(--fw);height:var(--fh);pointer-events:none;font-size:calc(var(--u) * 12);position:absolute;overflow:hidden}#fieldui .boss{left:calc(var(--u) * 8);right:calc(var(--u) * 8);top:calc(var(--u) * 6);position:absolute}#fieldui .boss-row{font-family:var(--mincho);text-shadow:0 1px 2px #000,0 0 6px #000;align-items:baseline;gap:.6em;display:flex}#fieldui .boss-name{color:#ffe2b8;font-weight:800}#fieldui .boss-stars{color:var(--kin);letter-spacing:.1em;font-size:.9em}#fieldui .boss-timer{font-family:var(--font);font-variant-numeric:tabular-nums;margin-left:auto;font-size:1.3em;font-weight:700}#fieldui .boss-timer.warn{color:#ff6a6a}#fieldui .boss-bar{height:calc(var(--u) * 5);margin-top:calc(var(--u) * 2);background:#00000073;border-radius:3px;overflow:hidden;box-shadow:0 0 0 1px #fff3}#fieldui .boss-bar i{background:linear-gradient(90deg,#ff9a6a,#fff2c8);width:100%;height:100%;display:block}#fieldui .boss-bar i.sp{background:linear-gradient(90deg,#ff4a6a,#ffd0e0)}#fieldui .spell{right:calc(var(--u) * 6);top:calc(var(--u) * 30);text-align:right;max-width:86%;font-family:var(--mincho);text-shadow:0 1px 2px #000,0 0 8px #000;position:absolute}#fieldui .spell-name{color:#fff;background:linear-gradient(270deg,#961e469e,#961e4600);padding:.12em .5em .12em 2.2em;font-size:.95em;font-weight:800}#fieldui .spell-bonus{color:var(--ink-dim);font-size:.85em;font-family:var(--font);margin-top:.2em}#fieldui .center-msg{text-align:center;font-family:var(--mincho);letter-spacing:.2em;color:#fff;text-shadow:0 0 14px #7fd2ffcc,0 2px 2px #000;font-size:2.2em;font-weight:800;position:absolute;top:34%;left:0;right:0}#fieldui .sub-msg{text-align:center;font-family:var(--mincho);letter-spacing:.15em;color:var(--kin);text-shadow:0 2px 3px #000;font-size:1.3em;position:absolute;top:calc(34% + 3.4em);left:0;right:0}#fieldui .enemy-marker{color:#ff9aa8;letter-spacing:.1em;background:#28000a99;border-radius:3px 3px 0 0;padding:0 .4em;font-size:.7em;font-weight:700;position:absolute;bottom:0;transform:translate(-50%)}#fieldui .dialogue{left:calc(var(--u) * 10);right:calc(var(--u) * 10);bottom:calc(var(--u) * 16);min-height:calc(var(--u) * 70);padding:calc(var(--u) * 10) calc(var(--u) * 14);border:1px solid var(--panel-edge);font-family:var(--mincho);background:#0c0a18d1;border-radius:6px;font-size:1.15em;position:absolute}#fieldui .dialogue .speaker{color:var(--kin);letter-spacing:.15em;margin-bottom:.2em;font-size:.8em}#fieldui .dialogue[data-side=r] .speaker{color:#ffb0c8;text-align:right}#fieldui .dialogue .next{color:var(--ink-dim);font-size:.7em;position:absolute;bottom:.2em;right:.6em}#fieldui .popup{white-space:nowrap;text-shadow:0 1px 2px #000,0 0 6px #000;font-size:1em;font-weight:700;position:absolute}#fieldui .popup.big{font-family:var(--mincho);color:#ffd0e0;font-size:1.6em}#fieldui .popup.power{color:#ffd27a}#fieldui .popup.bonus{font-family:var(--mincho);color:#fff2b0;font-size:1.5em}#fieldui .popup.bonus-n{color:#fff;font-size:1.3em}#fieldui .popup.fail{font-family:var(--mincho);color:#c8c0d8;font-size:1.2em}#fieldui .popup.tool{color:#ffc2a0;text-shadow:none;background:#100c14b8;border:1px solid #d67d5f8c;border-radius:4px;padding:.05em .5em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85em;font-weight:600}#title .menu button.extra-btn{color:#ffbe9a}.gl{color:#fff;background:#282040e6}.card .gl{background:#2a2440}#touch .tbtn{pointer-events:auto;min-width:0;font-size:14px;font-family:var(--mincho);color:var(--ink);background:#1e183099;border:1px solid #ffd69673;border-radius:50%;padding:0;position:absolute}#touch .tbtn.on{color:#fff;background:#e8443ad9}#touch .tb-bomb{width:76px;height:76px;right:calc(16px + var(--safe-r));bottom:calc(18px + var(--safe-b))}#touch .tb-focus{width:64px;height:64px;left:calc(16px + var(--safe-l));bottom:calc(22px + var(--safe-b))}#touch .tbtn.pause{width:44px;height:44px;top:calc(8px + var(--safe-t));right:calc(10px + var(--safe-r));font-family:var(--font)}[data-layout=wide] #touch .tb-bomb{right:calc((var(--fx) - 76px) / 2)}[data-layout=wide] #touch .tb-focus{left:calc((var(--fx) - 64px) / 2)}@media (max-height:480px){#title{padding-bottom:calc(4vh + var(--safe-b))}#title .logo{margin-bottom:.6em}#title .menu{gap:.3em}button{padding:.4em 1.4em}}[data-layout=tall] .screen#title{padding-bottom:calc(9vh + var(--safe-b));padding-left:calc(6vw + var(--safe-l));justify-content:flex-end}[data-layout=tall] #title .logo{margin-bottom:1em}[data-layout=tall] #title h1{font-size:clamp(36px,12vw,64px)}[data-layout=tall] #title .menu button{width:min(78vw,22em);min-width:0;padding:.5em 1.4em}#fieldui .center-msg.credit{letter-spacing:.12em;padding:0 .6em;font-size:1.5em;top:30%}#fieldui .sub-msg.credit{padding:0 1em;font-size:1.05em;line-height:1.5;top:calc(30% + 3em)}[data-layout=tall] #hud .topbar{padding-right:52px}[data-layout=tall] #touch .tbtn.pause{top:calc(var(--safe-t) + 3px);right:calc(6px + var(--safe-r));border-radius:8px;width:40px;height:28px;font-size:13px}#fieldui .music{right:calc(var(--u) * 8);bottom:calc(var(--u) * 8);font-family:var(--mincho);color:var(--ink);text-shadow:0 1px 2px #000,0 0 6px #000;letter-spacing:.06em;font-size:.9em;position:absolute}.recordcard{width:min(30em,100%)}.recordcard h3{font-family:var(--mincho);color:var(--kin);letter-spacing:.1em;margin:.6em 0 .2em;font-size:1em}.recordcard .rec-best{grid-template-columns:auto 1fr;gap:.2em 1em;margin:0;display:grid}.recordcard .rec-best dt{font-family:var(--mincho)}.recordcard .rec-best dd{text-align:right;font-variant-numeric:tabular-nums;margin:0;font-weight:700}.recordcard .clear{color:var(--kin)}.recordcard .rec-spells{margin:0;padding:0;font-size:.86em;list-style:none}.recordcard .rec-spells li{font-family:var(--mincho);border-bottom:1px solid #ffd6961f;justify-content:space-between;gap:1em;padding:.2em 0;display:flex}.recordcard .rec-spells li.unknown{color:var(--ink-dim)}.recordcard .rec-spells b{font-family:var(--font);font-variant-numeric:tabular-nums}#hud .side-r .deco{writing-mode:vertical-rl;font-family:var(--mincho);letter-spacing:.25em;color:#ffeccd29;text-shadow:0 0 18px #7fd2ff2e;align-self:flex-start;margin-top:auto;font-size:2.6em;font-weight:800}html[lang=en] #hud .side-r .deco{writing-mode:horizontal-tb;letter-spacing:.08em;font-size:1.4em}#hud .side-r .stage{margin-top:.4em}#fieldui .bosstitle{right:calc(var(--u) * 10);text-align:right;font-family:var(--mincho);text-shadow:0 1px 3px #000,0 0 10px #000;position:absolute;top:38%}#fieldui .bosstitle small{color:var(--kin);letter-spacing:.15em;font-size:.95em;display:block}#fieldui .bosstitle b{letter-spacing:.3em;color:#fff;margin-top:.1em;font-size:2.1em;display:block}.musiccard{width:min(30em,100%)}.musiccard .mr-list{flex-direction:column;gap:.3em;display:flex}.musiccard .mr-track{text-align:left;grid-template-columns:2.2em 1fr;align-items:baseline;column-gap:.4em;padding:.45em .9em;display:grid}.musiccard .mr-no{font-variant-numeric:tabular-nums;color:var(--kin);grid-row:span 2;font-size:.85em}.musiccard .mr-name{font-family:var(--mincho);letter-spacing:.06em}.musiccard .mr-scene{opacity:.72;letter-spacing:.02em;grid-column:2;font-size:.78em;font-weight:500}.musiccard .mr-track.locked .mr-name{color:var(--ink-dim)}.musiccard .mr-track.playing{border-color:var(--kitsune);box-shadow:inset 3px 0 0 var(--kitsune)}.musiccard .mr-track.playing .mr-name:before{content:"♪ ";color:var(--kitsune)}.musiccard .mr-track:hover .mr-no,.musiccard .mr-track.gp-focus .mr-no,.musiccard .mr-track:hover .mr-name:before,.musiccard .mr-track.gp-focus .mr-name:before{color:#fff}
