:root{color-scheme:dark;--bg:#11111a;--paper:#f2edf9;--muted:#9693aa;--purple:#c8affb;--gold:#edbe7d;--line:#ffffff13;font-family:"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;background:var(--bg);color:var(--paper)}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 65% 5%,#29203855,transparent 55%),var(--bg)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button{border:0}button:hover{filter:brightness(1.12)}button:active{transform:translateY(1px)}.hidden{display:none!important}.shell{max-width:1660px;margin:auto;padding:0 48px}.masthead{height:111px;display:flex;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:18px;text-decoration:none;color:var(--paper)}.brand-symbol{font:700 38px Georgia,serif;letter-spacing:-3px}.brand-symbol>span{color:var(--purple)}.brand-name{font-size:16px;letter-spacing:3px;border-left:1px solid #ffffff25;padding-left:20px}.brand-name small{display:block;font-size:9px;letter-spacing:4px;color:var(--muted);margin-top:5px}.edition{font-size:10px;letter-spacing:1px;margin-left:auto;display:flex;align-items:center;gap:8px;color:#afabc1}.edition i,.scene-label i{width:5px;height:5px;border-radius:50%;background:#d1b4ff;box-shadow:0 0 9px #caaaee}.edition>span{color:#6f6b82;margin-left:4px}.text-button{background:none;font-size:12px;padding:13px 0 13px 28px;border-left:1px solid var(--line)}.text-button span{color:var(--purple);margin-left:14px}.stage{position:relative;width:100%;aspect-ratio:16/9;max-height:calc(100svh - 176px);min-height:420px;isolation:isolate;overflow:hidden;border:1px solid #ffffff19;background:#182232;box-shadow:0 26px 70px #0004;border-radius:3px;touch-action:none;user-select:none;-webkit-user-select:none}.stage:fullscreen{width:100vw;height:100dvh;max-height:none;border:0;border-radius:0}.stage:fullscreen .title-screen{padding:6%}canvas{display:block;width:100%;height:100%;touch-action:none}.overlay{position:absolute;inset:0}.title-screen{padding:4.6% 5%;background:linear-gradient(90deg,#101323eb 0%,#111322af 35%,#0d112522 68%,transparent 100%);display:flex;flex-direction:column;pointer-events:none}.title-screen button{pointer-events:auto}.chapter-label{font-size:9px;letter-spacing:4px;color:#b9acd0;display:flex;align-items:center;gap:12px}.chapter-label>span{width:27px;height:1px;background:var(--gold)}.title-copy{margin:auto 0}.title-overline{font:italic 12px Georgia,serif;color:#aea7c4;letter-spacing:.2px}h1{margin:8px 0 14px;line-height:1}.title-re{font:700 clamp(62px,7.9vw,132px)/.93 Georgia,serif;letter-spacing:-9px;display:block;color:#f6f2fb;text-shadow:0 6px 40px #0003}.title-re>span{color:var(--purple)}.title-cn{display:block;font-size:clamp(25px,3vw,45px);letter-spacing:7px;font-weight:650;margin-top:17px}.title-cn>span{font-family:Georgia,serif;letter-spacing:1px;color:var(--gold);font-size:1.15em;margin-left:9px}.title-copy>p{font-size:12px;letter-spacing:2px;color:#c5becf;margin:21px 0 28px}.primary-button{height:52px;min-width:222px;padding:0 23px;display:flex;align-items:center;justify-content:space-between;gap:50px;background:#d6c1f8;color:#241936;font-size:14px;font-weight:700;letter-spacing:2px;box-shadow:0 6px 28px #9973d82b;border-radius:2px}.primary-button>span:last-child{font-size:24px;font-weight:400}.start-hint{display:flex;gap:9px;align-items:center;margin-top:17px;font-size:9px;letter-spacing:.5px;color:#9391a7}kbd{font-family:inherit;padding:3px 6px;border:1px solid #ffffff25;border-radius:3px;font-size:9px}.start-hint>span{margin:0 3px}.title-footer{display:flex;align-items:center;gap:36px;font-size:10px;color:#888398;letter-spacing:1px}.title-footer b{font-family:Georgia,serif;font-size:17px;color:#e3dcea;font-weight:400;margin:0 6px}.scene-label{position:absolute;right:5%;bottom:5%;font-size:10px;letter-spacing:2px;display:flex;align-items:center;gap:10px}.scene-label small{position:absolute;right:0;bottom:22px;color:#a9a7bd;white-space:nowrap;font-size:9px;letter-spacing:2px}.below-stage{height:64px;display:flex;align-items:center;justify-content:space-between;color:#858199;font-size:10px;letter-spacing:1px}.below-stage>div{display:flex;align-items:center;gap:8px}.below-stage i{height:9px;width:1px;background:#ffffff1a;margin:0 14px}.key-dot{font-size:14px;color:#c8badf}.footer-cross{padding:0 15px;color:#756386}
.hud{position:absolute;inset:0;pointer-events:none;padding:26px 30px}.hud-top{display:flex;align-items:flex-start;gap:30px}.eyebrow{color:#b2a2ca;font-size:9px;letter-spacing:3px}.distance-block>div{margin:2px 0;white-space:nowrap}.distance-block b{font:500 36px/1.15 Georgia,serif;font-variant-numeric:tabular-nums}.distance-block>div>span{font:italic 16px Georgia,serif;color:#a8a2b7}.distance-block>small{font-size:9px;letter-spacing:2px;color:#b8b6ce}.chase{position:absolute;left:50%;transform:translateX(-50%);width:220px;font-size:10px;padding-top:2px}.chase>div:first-child{display:flex;justify-content:space-between;color:#dcd0f0}.chase b{font-weight:500;font-variant-numeric:tabular-nums}.chase-track{height:3px;margin:9px 0;background:#ffffff25;overflow:hidden}.chase-track>span{display:block;height:100%;width:75%;background:#c2a3e8;transition:width .15s,background .5s}.chase>small{display:block;text-align:center;color:#aaa0ba;font-size:8px;letter-spacing:1px}.hud-actions{margin-left:auto;display:flex;gap:8px;pointer-events:auto}.icon-button{background:#14182788;border:1px solid #ffffff25;height:33px;width:33px;border-radius:50%;font-size:15px;backdrop-filter:blur(8px)}.boss-hud{position:absolute;top:94px;left:50%;transform:translateX(-50%);width:min(320px,43%);font-size:10px;text-shadow:0 1px 6px #000}.boss-hud>div:first-child{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;gap:10px}.boss-hud b{letter-spacing:3px;font-size:13px;color:#ffe0dc}.boss-hud span{color:#d9a0b1;font-size:9px}.boss-track{height:4px;background:#2b1526;border:1px solid #ffffff20}.boss-track i{display:block;width:100%;height:100%;background:#e68eab;transition:width .3s}.boss-hud>small{display:block;text-align:center;font-size:9px;color:#d2c1d8;margin-top:7px}.toast{position:absolute;top:27%;left:50%;transform:translateX(-50%) translateY(-8px);opacity:0;transition:opacity .15s,transform .15s;color:#f7edff;font-size:13px;letter-spacing:2px;text-align:center;background:#171a2ccc;border:1px solid #c8b5ff44;padding:10px 20px;border-radius:3px;white-space:nowrap}.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}.hud-bottom{position:absolute;bottom:25px;left:30px;right:140px;display:flex;gap:18px;align-items:flex-end}.party{display:flex;gap:6px}.party-slot{position:relative;border:1px solid #ffffff26;border-radius:3px;background:#101722a6;min-width:83px;padding:8px 10px 7px;box-shadow:inset 0 2px var(--partner,#c7b0ee)}.party-slot>b{display:block;font-size:11px;color:#ede9f8;font-weight:500}.party-slot small{display:block;font-size:8px;color:#b3b2c4;margin-top:5px}.party-slot.empty{border-style:dashed;box-shadow:none;min-width:105px}.party-slot.empty b{color:#b3adbe;font-size:10px}.run-status{font-size:9px;color:#cec1e4;margin-left:auto;line-height:1.8;text-align:right;white-space:nowrap}.run-status small{display:block;font-size:9px;color:#8d94b0}.jump-button{pointer-events:auto;position:absolute;right:27px;bottom:24px;border:1px solid #e1cbff77;border-radius:50%;height:86px;width:86px;background:#1d2639ba;box-shadow:inset 0 0 22px #b58efc18,0 0 25px #c6a3fc12;display:flex;flex-direction:column;justify-content:center;align-items:center;backdrop-filter:blur(4px)}.jump-button>span{font:26px/1.1 Georgia,serif;color:var(--purple)}.jump-button b{font-size:11px;font-weight:500;letter-spacing:2px}.jump-button small{font-size:7px;color:#ada4bc;margin-top:5px}.jump-button.ready{border-color:#ffe3a3;box-shadow:0 0 26px #ffd98e66;background:#64563799}.jump-button.ready span{color:#ffe3a3}.whisper-caption{position:absolute;left:8px;top:48%;font:italic 13px Georgia,"Microsoft YaHei",serif;letter-spacing:7px;color:#d0a6e4;writing-mode:vertical-rl;opacity:0;transition:opacity .2s;text-shadow:0 0 15px #ce58ff}
.modal-layer{position:absolute;inset:0;background:#090b1dd9;display:flex;align-items:center;justify-content:center;padding:25px;backdrop-filter:blur(9px)}.modal{width:430px;max-width:100%;text-align:center;position:relative}.modal h2{font-family:Georgia,"Microsoft YaHei",serif;font-size:30px;letter-spacing:4px;font-weight:500;margin:14px 0}.modal>p{font-size:11px;color:#aaa3bd;line-height:1.7}.modal .primary-button{margin:27px auto 0}.secondary-button{margin-top:18px;color:#b9aecb;background:none;font-size:11px;letter-spacing:2px;padding:8px 20px}.result-distance{margin:22px 0;color:#dec4ff}.result-distance b{font:68px Georgia,serif;font-variant-numeric:tabular-nums}.result-distance span{font:italic 20px Georgia,serif;margin-left:10px;color:#a998c1}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);margin:25px 0;color:#a39bb2;font-size:10px}.result-stats>span+span{border-left:1px solid #ffffff15}.result-stats b{display:block;color:#e8ddf6;font:20px Georgia,serif;margin-top:9px}.guide{width:610px;text-align:left;max-height:100%;overflow-y:auto;padding:10px 14px}.guide h2{font-size:26px;margin-bottom:24px}.close-button{position:absolute;right:10px;top:0;background:#ffffff10;border-radius:50%;width:32px;height:32px;font-size:21px;color:#bdafcf}.guide-list{display:grid;grid-template-columns:1fr 1fr;gap:20px 25px}.guide-list p{margin:0;font-size:11px;line-height:1.8}.guide-list b{color:#dfcef9;font-size:12px;font-weight:500;display:block;margin-bottom:5px}.guide-list span{color:#b6afc5}.guide-controls{margin:24px 0 18px;padding-top:18px;border-top:1px solid #ffffff18;color:#a9a0bc;font-size:10px;line-height:2}.guide-controls kbd{margin-right:5px}.guide-controls kbd:not(:first-child){margin-left:15px}.guide-controls span{display:block;margin-top:8px}.prototype-note{display:block;color:#7e788e;font-size:9px;line-height:1.8}.load-error{position:absolute;bottom:0;left:0;right:0;padding:12px;background:#521e35;color:white;font-size:12px}
@media(min-width:1700px){.title-copy>p{margin:28px 0 35px}.primary-button{height:57px;min-width:240px}}
@media(max-width:1000px){.shell{padding:0 22px}.masthead{height:85px}.stage{max-height:calc(100svh - 143px);min-height:380px}.title-screen{padding:4%}.title-re{font-size:80px}.title-cn{font-size:30px}.title-copy>p{font-size:10px;margin:17px 0 22px}.chapter-label{font-size:8px}.primary-button{height:45px;min-width:205px;font-size:12px}.start-hint{margin-top:13px;font-size:8px}.title-footer{gap:18px;font-size:9px}.hud{padding:19px 21px}.hud-bottom{left:21px;bottom:20px;right:115px}.party-slot{min-width:68px;padding:7px}.party-slot>b{font-size:10px}.run-status{display:none}.jump-button{width:74px;height:74px;right:21px;bottom:20px}.below-stage{height:57px;font-size:9px}.below-stage>span{font-size:8px}}
@media(max-width:600px) and (orientation:portrait){.shell{padding:0 12px}.masthead{height:80px;gap:14px}.brand-symbol{font-size:33px}.brand{gap:12px}.brand-name{font-size:12px;padding-left:13px;letter-spacing:2px}.brand-name small{font-size:7px;letter-spacing:2px}.edition{display:none}.text-button{margin-left:auto;font-size:10px;padding:8px 0;border:0}.text-button span{margin-left:4px}.stage{aspect-ratio:4/5;min-height:470px;max-height:none;height:calc(100svh - 137px)}.title-screen{padding:7%}.chapter-label{letter-spacing:2px;font-size:7px}.title-copy{margin:40px 0 auto}.title-overline{font-size:9px}.title-re{font-size:88px}.title-cn{font-size:31px;letter-spacing:4px}.title-copy>p{font-size:10px;letter-spacing:1px;max-width:240px;line-height:1.8;margin:20px 0}.primary-button{width:205px}.start-hint{display:block;line-height:2;max-width:225px}.start-hint>span{display:none}.start-hint kbd{margin-right:5px}.title-footer{font-size:8px;gap:18px;flex-wrap:wrap}.scene-label{right:7%;bottom:21%;font-size:8px;letter-spacing:1px}.scene-label small{font-size:8px}.below-stage{font-size:8px;height:51px}.below-stage>span{display:none}.below-stage>div{width:100%;justify-content:center}.below-stage i{margin:0 10px}.hud{padding:16px 15px}.distance-block b{font-size:30px}.distance-block .eyebrow{font-size:8px;letter-spacing:2px}.hud-actions{gap:5px}.icon-button{height:29px;width:29px;font-size:13px}.fullscreen-button{display:none}.chase{top:93px;width:calc(100% - 32px)}.chase>small{font-size:8px}.boss-hud{top:148px;width:70%}.toast{top:38%;font-size:10px;letter-spacing:.5px;max-width:95%;white-space:normal;padding:9px 14px}.hud-bottom{left:15px;bottom:17px;right:15px}.party-slot{min-width:63px;padding:7px 6px}.party-slot>b{font-size:9px}.party-slot small{font-size:7px}.jump-button{right:17px;bottom:88px;width:76px;height:76px}.guide{padding:8px}.guide h2{font-size:21px;letter-spacing:2px}.guide-list{grid-template-columns:1fr;gap:12px}.guide-list p{font-size:10px}.guide-list b{font-size:11px;margin-bottom:3px}.guide-controls{margin:15px 0}.modal-layer{padding:20px}.modal h2{font-size:26px}.result-distance b{font-size:57px}.whisper-caption{font-size:10px}}
@media(max-height:550px) and (orientation:landscape){.shell{padding:0}.masthead,.below-stage{display:none}.stage{height:100svh;max-height:none;min-height:0;aspect-ratio:auto;border:0}.title-screen{padding:4% 6%}.chapter-label{font-size:7px}.title-re{font-size:74px}.title-cn{font-size:27px;margin-top:10px}.title-copy>p{margin:14px 0 18px}.title-overline{font-size:9px}.start-hint{margin-top:10px}.title-footer{font-size:8px}.hud{padding:15px 22px}.boss-hud{top:80px}.distance-block b{font-size:28px}.guide-list{gap:10px 20px}.guide h2{font-size:22px;margin-bottom:16px}.guide-controls{margin:14px 0}.modal h2{font-size:25px}.result-distance{margin:12px 0}.result-distance b{font-size:45px}.result-stats{margin:15px 0}.modal .primary-button{margin-top:18px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.inline-help{background:none;color:#c7b1e9;font-size:9px;padding:4px 0 4px 12px;white-space:nowrap}
@media(max-width:600px) and (orientation:portrait){.hud-actions{gap:3px}.icon-button{width:44px;height:44px;font-size:16px}.jump-button{bottom:24px}.hud-bottom{right:109px}.chase{top:101px}.boss-hud{top:161px}.inline-help{padding-left:0;display:block;margin-top:4px;min-height:32px}}
@media(max-height:550px) and (orientation:landscape){.icon-button{width:40px;height:40px}}

/* 通知留在道路下方，恐惧层另行避开实际 HUD 边界。 */
.toast{top:auto;bottom:24px;max-width:44%;padding:9px 14px;font-size:11px;letter-spacing:1px;white-space:normal}
.toast:not(.visible){visibility:hidden}
.jump-button.ready{border-color:#b6e9ff;box-shadow:0 0 24px #9cdcff45;background:#345772a0}
.jump-button.ready span{color:#b6e9ff}
.jump-button.perfect{border-color:#ffe5a8;box-shadow:0 0 30px #f3d48877;background:#6a5a34ba}
.jump-button.perfect span{color:#ffe5a8}
@media(max-width:600px) and (orientation:portrait){.toast{top:auto;bottom:120px;max-width:90%;width:max-content;font-size:10px}.title-copy>p{max-width:260px}.start-hint{max-width:240px}.boss-hud{top:164px}.party-slot{min-width:63px}.stage{min-height:470px}}
@media(max-height:550px) and (orientation:landscape){.toast{top:auto;bottom:24px;font-size:10px;max-width:43%;padding:8px 12px}.icon-button{width:44px;height:44px}}

/* 操作键固定放在右侧天空区，避免下坡延伸到屏幕下缘时遮住兔群。 */
.jump-button{top:25%;bottom:auto}
@media(max-width:600px) and (orientation:portrait){.jump-button{top:33%;bottom:auto}}
@media(max-height:550px) and (orientation:landscape){.jump-button{top:25%;bottom:auto}}
.boss-hud{left:60%}
@media(max-width:600px) and (orientation:portrait){.boss-hud{left:50%}}

.attack-button{right:128px;--charge:100%;border-color:#bf9bdb;background:radial-gradient(circle at center,#202336 66%,transparent 68%),conic-gradient(#a988c8 var(--charge),#303348 0);box-shadow:0 0 22px #ac78c522}
.attack-button>span{font-size:24px;color:#d3b0ec}
.party-slot.active-skill{background:#423455d9;box-shadow:inset 0 3px var(--partner),0 0 18px color-mix(in srgb,var(--partner) 40%,transparent);border-color:var(--partner)}
.party-slot.active-skill small{color:#fff0dc}
@media(max-width:1000px){.attack-button{right:109px}}
@media(max-width:600px) and (orientation:portrait){.attack-button{right:105px}}
@media(max-height:550px) and (orientation:landscape){.attack-button{right:109px}}

.achievement-badge{color:#827b94;letter-spacing:.4px}.achievement-badge.unlocked{color:#ecc87c}
.achievement-toast{position:absolute;top:22%;left:60%;transform:translateX(-50%);display:flex;align-items:center;gap:16px;min-width:270px;padding:16px 22px;background:linear-gradient(120deg,#38273c,#181b2b);border:1px solid #dcbe7c99;border-radius:5px;box-shadow:0 0 32px #c1934727;pointer-events:none}
.achievement-icon{color:#f5d289;font:30px Georgia,serif}.achievement-toast small{display:block;color:#d7b975;letter-spacing:3px;font-size:9px}.achievement-toast b{display:block;margin:5px 0 6px;font-size:17px;font-weight:500;color:#f6e3b6}.achievement-toast div>span{font-size:10px;color:#c8bcc8}
.result-achievement{font-size:10px;color:#8c829a;line-height:1.6;margin:10px 0}.result-achievement.unlocked{color:#e3bd73}
@media(max-width:600px) and (orientation:portrait){.achievement-toast{top:32%;left:50%;width:88%;min-width:0;padding:12px 16px;gap:12px}.achievement-toast b{font-size:15px}.title-footer .achievement-badge{width:100%;font-size:9px;line-height:1.5}.title-footer{row-gap:8px}}
@media(max-height:550px) and (orientation:landscape){.achievement-toast{top:25%;padding:10px 16px}.achievement-toast b{font-size:14px}.title-footer{gap:22px}.title-footer .achievement-badge{font-size:8px}}

.guest-hud{position:absolute;left:22px;bottom:96px;width:205px;pointer-events:none;padding:10px 12px;background:#131b2cdd;border-left:2px solid #e2c58d;border-radius:3px}.guest-row+ .guest-row{margin-top:12px}.guest-row b{font-size:11px;font-weight:500;color:#eee1bf}.guest-row>div{height:3px;margin-top:7px;background:#4c4c69}.guest-row i{display:block;height:3px;background:linear-gradient(90deg,#78b4ea,#f5dea2)}
@media(max-width:600px) and (orientation:portrait){.guest-hud{left:16px;bottom:150px;width:185px;padding:8px 10px}.guest-row b{font-size:10px}}

@media(max-width:600px) and (orientation:portrait){.achievement-toast{top:calc(33% + 88px)}}

/* 网页发行入口只在菜单、暂停与结算出现，避开跑酷操作区。 */
.creator-links{display:flex;gap:8px;max-width:420px;margin-top:16px;pointer-events:auto}.creator-link{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 11px;flex:1;white-space:nowrap;text-decoration:none;font-size:10px;letter-spacing:.3px;color:#ddd4e9;background:#171c2ad9;border:1px solid #b4a0d32e;border-radius:3px;pointer-events:auto}.creator-link:hover{background:#352944;border-color:#cdb4e899}.creator-mark{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#bb9edf14;color:#d1b4f0;font-size:12px}.creator-support{color:#efcf9f;border-color:#b79b673d}.creator-support .creator-mark{color:#eac998}.creator-bilibili .creator-mark{color:#b8d7ed}.modal .creator-links{margin:18px auto 0}.title-bottom{position:relative}.title-screen .scene-label{bottom:6%}.modal-layer .modal{max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y}.not-found{max-width:500px;margin:15vh auto;padding:30px;text-align:center}.not-found h1{font-size:28px}.not-found a{display:inline-block;padding:16px;color:#d6c1f8}
@media(max-width:600px) and (orientation:portrait){.creator-links{gap:5px;margin-top:12px;width:100%}.creator-link{padding:7px 5px;font-size:9px;gap:4px}.creator-mark{width:18px;height:18px;font-size:11px}.title-screen .scene-label{bottom:23%}.title-footer{gap:12px}.title-copy{flex-shrink:0}.title-bottom{flex-shrink:0}}
@media(max-width:600px) and (max-height:720px) and (orientation:portrait){.title-copy{margin:18px 0 auto}.title-re{font-size:70px}.title-cn{font-size:26px;margin-top:10px}.title-copy>p{margin:13px 0}.start-hint{margin-top:8px}.title-bottom{margin-top:16px}.title-screen .scene-label{display:none}}
@media(max-height:550px) and (orientation:landscape){.title-bottom{position:static}.title-bottom .creator-links{position:absolute;right:4%;bottom:18px;width:38%;max-width:360px;margin:0}.title-bottom .title-footer{max-width:49%;gap:10px;flex-wrap:wrap}.title-bottom .title-footer .achievement-badge{flex-basis:100%}.creator-link{font-size:9px;padding:6px 7px;gap:4px}.title-screen .scene-label{display:none}.modal.result .creator-links{margin-top:10px}.modal.result h2{margin:9px 0;font-size:22px}.modal.result .result-distance{margin:8px 0}.modal.result .result-distance b{font-size:37px}.modal.result .result-stats{margin:10px 0}.modal.result .primary-button{height:42px;margin-top:9px}.modal.result .result-achievement{margin:6px 0}}

/* 触屏设备从打开页面起铺满可用视口，原生全屏在开始按钮手势内申请。 */
html.mobile-play{height:100%;overflow:hidden;--touch-safe-top:env(safe-area-inset-top,0px);--touch-safe-right:env(safe-area-inset-right,0px);--touch-safe-bottom:env(safe-area-inset-bottom,0px);--touch-safe-left:env(safe-area-inset-left,0px)}
.mobile-play body{height:100%;min-width:0;overflow:hidden;overscroll-behavior:none}.mobile-play .shell{padding:0;max-width:none}.mobile-play .masthead,.mobile-play .below-stage{display:none}
.mobile-play .stage,.mobile-play .stage:fullscreen{position:fixed;inset:auto;top:var(--mobile-top,0px);left:var(--mobile-left,0px);width:var(--mobile-width,100vw);height:var(--mobile-height,100dvh);min-height:0;max-height:none;aspect-ratio:auto;border:0;border-radius:0;box-shadow:none}
.mobile-play .hud{padding:calc(12px + var(--touch-safe-top)) calc(14px + var(--touch-safe-right)) 12px calc(14px + var(--touch-safe-left))}.mobile-play .fullscreen-button{display:inline-flex;align-items:center;justify-content:center}
.mobile-play #jumpButton,.mobile-play #attackButton{top:auto;bottom:calc(16px + var(--touch-safe-bottom));width:clamp(76px,14vmin,96px);height:clamp(76px,14vmin,96px);background:rgba(33,37,62,.30);border:1.5px solid #d6c2f080;box-shadow:0 3px 16px #0b102522;backdrop-filter:none;touch-action:none;user-select:none;-webkit-user-select:none;color:#f5efff}
.mobile-play #jumpButton{left:calc(16px + var(--touch-safe-left));right:auto}.mobile-play #attackButton{right:calc(16px + var(--touch-safe-right));left:auto}.mobile-play .jump-button b{font-size:14px}.mobile-play .jump-button small{font-size:9px;color:#e0d5ed}.mobile-play .jump-button.ready{background:rgba(57,126,163,.35)}.mobile-play .jump-button.perfect{background:rgba(163,126,56,.38)}.mobile-play .jump-button:active{background:rgba(118,92,153,.42)}
.mobile-play .hud-bottom{left:calc(16px + var(--touch-safe-left));right:calc(16px + var(--touch-safe-right));bottom:calc(128px + var(--touch-safe-bottom))}.mobile-play .party-slot{min-width:62px;padding:7px 8px}.mobile-play .guest-hud{left:calc(16px + var(--touch-safe-left));bottom:calc(192px + var(--touch-safe-bottom));width:180px;padding:8px 10px}
.mobile-play .toast{top:auto;bottom:calc(24px + var(--touch-safe-bottom));max-width:calc(100% - 216px - var(--touch-safe-left) - var(--touch-safe-right));width:max-content;font-size:10px;letter-spacing:0;padding:7px 9px}.mobile-play .title-screen{padding-top:calc(24px + var(--touch-safe-top));padding-bottom:calc(24px + var(--touch-safe-bottom));padding-left:calc(24px + var(--touch-safe-left));padding-right:calc(24px + var(--touch-safe-right))}.mobile-play .modal-layer{padding-top:calc(18px + var(--touch-safe-top));padding-bottom:calc(18px + var(--touch-safe-bottom));padding-left:calc(18px + var(--touch-safe-left));padding-right:calc(18px + var(--touch-safe-right))}
@media(orientation:portrait){.mobile-play .chase{top:calc(91px + var(--touch-safe-top))}.mobile-play .boss-hud{top:calc(148px + var(--touch-safe-top))}.mobile-play .achievement-toast{top:calc(218px + var(--touch-safe-top));left:50%;width:88%}.mobile-play .title-copy{margin-top:35px}.mobile-play .hud-actions{gap:3px}.mobile-play .icon-button{width:40px;height:40px}.mobile-play .title-screen .scene-label{bottom:24%}}
@media(orientation:landscape){.mobile-play .chase{top:calc(16px + var(--touch-safe-top))}.mobile-play .boss-hud{top:calc(79px + var(--touch-safe-top))}.mobile-play .guest-hud{width:170px}.mobile-play .toast{max-width:40%;left:60%;bottom:calc(128px + var(--touch-safe-bottom))}.mobile-play .title-bottom .creator-links{bottom:calc(18px + var(--touch-safe-bottom));right:calc(18px + var(--touch-safe-right))}.mobile-play .title-copy{margin:8px 0 auto}.mobile-play .achievement-toast{top:25%}.mobile-play .run-status{display:none}}

.mobile-play #attackButton.ready{background:rgba(57,126,163,.35);border-color:#b6e9ff}.mobile-play #attackButton.perfect{background:rgba(163,126,56,.38);border-color:#ffe3a1}.mobile-play #jumpButton:active,.mobile-play #attackButton:active{background:rgba(118,92,153,.42)}

@media(orientation:landscape){
 .mobile-play .hud-bottom{left:calc(112px + var(--touch-safe-left));right:calc(112px + var(--touch-safe-right));bottom:calc(18px + var(--touch-safe-bottom));justify-content:center}
 .mobile-play .hud-bottom .party{gap:5px;justify-content:center}.mobile-play .hud-bottom .party-slot{min-width:55px;padding:6px 5px}.mobile-play .hud-bottom .party-slot b{font-size:9px}.mobile-play .hud-bottom .party-slot small{font-size:7px}
 .mobile-play .guest-hud{left:calc(112px + var(--touch-safe-left));bottom:calc(18px + var(--touch-safe-bottom));width:150px;padding:6px 8px}.mobile-play .guest-row b{font-size:9px}.mobile-play .guest-row+ .guest-row{margin-top:6px}.mobile-play .guest-row>div{margin-top:4px}
 .mobile-play .has-guest .hud-bottom{left:calc(272px + var(--touch-safe-left))}
}

.orientation-hint{display:none}.mobile-play .orientation-hint{display:block;color:#d8c5ed;font-size:11px;letter-spacing:.5px;margin:8px 0;flex-shrink:0}
.mobile-play .title-screen{overflow-y:auto;pointer-events:auto;touch-action:pan-y;overscroll-behavior:contain;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:6px}.mobile-play .title-copy{margin:0;min-height:0;align-self:center}.mobile-play .title-bottom{position:relative;min-width:0}.mobile-play .title-bottom .creator-links{position:static;width:100%;max-width:420px;margin-top:10px}.mobile-play .title-bottom .title-footer{max-width:none}.mobile-play .title-screen .scene-label{pointer-events:none}
.compact-mobile .title-screen{grid-template-columns:minmax(260px,52%) 1fr;grid-template-rows:auto auto minmax(0,1fr);padding:calc(12px + var(--touch-safe-top)) calc(16px + var(--touch-safe-right)) calc(12px + var(--touch-safe-bottom)) calc(16px + var(--touch-safe-left));column-gap:22px;row-gap:3px}
.compact-mobile .chapter-label{grid-column:1;font-size:7px}.compact-mobile .orientation-hint{grid-column:1;font-size:9px;margin:2px 0}.compact-mobile .title-copy{grid-column:1;grid-row:3;align-self:center}.compact-mobile .title-re{font-size:clamp(42px,17dvh,68px);letter-spacing:-4px}.compact-mobile .title-cn{font-size:clamp(18px,7dvh,25px);letter-spacing:3px;margin-top:7px}.compact-mobile .title-overline{display:none}.compact-mobile h1{margin:0 0 7px}.compact-mobile .title-copy>p{margin:6px 0 10px;font-size:9px;letter-spacing:.5px}.compact-mobile .title-copy .primary-button{height:44px;min-width:210px;font-size:12px}.compact-mobile .start-hint{margin-top:7px;font-size:8px;flex-wrap:wrap;gap:4px}.compact-mobile .start-hint kbd,.compact-mobile .start-hint>span{display:none}.compact-mobile .title-bottom{grid-column:2;grid-row:1/4;align-self:end}.compact-mobile .title-footer{display:none}.compact-mobile .title-bottom .creator-links{display:flex;flex-wrap:wrap;gap:5px}.compact-mobile .creator-link{min-height:40px;flex:1 1 100%;font-size:10px}.compact-mobile .title-screen .scene-label{display:none}
@media(max-height:285px) and (orientation:landscape){.compact-mobile .title-copy>p,.compact-mobile .start-hint{display:none}.compact-mobile .title-re{font-size:39px}.compact-mobile .title-cn{font-size:18px}.compact-mobile .creator-link{min-height:34px}.compact-mobile .orientation-hint{font-size:8px}}

.ranking-open{pointer-events:auto;background:#191d2ddd;border:1px solid #baa1df55;border-radius:3px;color:#d8c2f4;padding:10px 15px;min-height:40px;font-size:11px;margin:8px 0}.title-bottom>.ranking-open{margin-bottom:12px}.rank-panel{width:560px;max-height:100%;overflow-y:auto;text-align:left;padding:24px;background:#131828;border:1px solid #c6a6e944;border-radius:6px}.rank-panel h2{text-align:left;letter-spacing:1px;font-size:25px}.rank-panel p{font-size:11px;line-height:1.7;color:#c5bdd3}.rank-actions{display:flex;gap:8px;flex-wrap:wrap}.rank-actions button,#rankSubmit{min-height:40px;padding:9px 14px;background:#362942;border:1px solid #b696d955;border-radius:3px;font-size:11px}#rankSubmit{background:#d4baf0;color:#241a32}#rankSubmit:disabled{opacity:.4;cursor:default}.rank-columns,#rankRows li{display:grid;grid-template-columns:45px 1fr 110px;gap:12px;align-items:center;padding:12px 6px;font-size:12px}.rank-columns{color:#ac9fb9;font-size:10px;border-bottom:1px solid #9983b344}#rankRows{list-style:none;padding:0;margin:0;max-height:240px;overflow-y:auto}#rankRows li{border-bottom:1px solid #9983b322}#rankRows span:last-child,.rank-columns span:last-child{text-align:right}#rankRows .rank-empty{display:block;color:#948a9f}.rank-demo{color:#f2ce89!important}.rank-note{color:#9c92ad!important}#rankStatus{min-height:36px;color:#e4c8fa}.compact-mobile .title-bottom>.ranking-open{width:100%;margin:3px 0;min-height:34px;font-size:10px}.compact-mobile .title-bottom .creator-links{margin-top:5px}.mobile-play .rank-panel{padding:18px}.mobile-play .rank-panel h2{font-size:22px}.mobile-play .rank-panel .close-button{right:5px;top:5px}.mobile-play .rank-panel #rankRows{max-height:none}

.rank-columns,#rankRows li{grid-template-columns:36px minmax(80px,1fr) 105px 60px;gap:8px}.rank-tabs{display:flex;gap:8px;margin:12px 0}.rank-tabs button{padding:9px 12px;border:1px solid #ad8ed74d;background:#191f30;border-radius:4px;color:#bdb1cf;font-size:11px}.rank-tabs button[aria-pressed=true]{background:#4a335f;color:#f7e7ff}.rank-columns span:nth-child(3),#rankRows span:nth-child(3){text-align:right}
@media(max-width:600px){.rank-columns,#rankRows li{grid-template-columns:28px minmax(75px,1fr) 76px 42px;gap:5px;font-size:10px}.rank-panel{padding:14px}.rank-tabs button{font-size:10px}.rank-panel h2{margin-top:8px}}

.rank-panel{width:640px}.rank-columns,#rankRows li{grid-template-columns:32px minmax(90px,1fr) 105px 58px 76px;gap:8px}.todd-badge{color:#efc48a;font-size:10px}.rank-columns span:nth-child(4),#rankRows span:nth-child(4){text-align:right}
@media(max-width:600px){.rank-columns,#rankRows li{grid-template-columns:22px minmax(64px,1fr) 67px 35px 49px;gap:4px;font-size:9px}.todd-badge{font-size:8px}.mobile-play .rank-panel{padding:12px}.rank-columns{font-size:8px}}

/* 较矮的电脑窗口为首页底部的排行与外链留出空间。 */
@media(min-width:901px) and (max-height:800px){html:not(.mobile-play) .title-screen{padding:24px 5%}}

/* HUD 图标使用独立矢量路径，不由特殊字符或字体生成。文字与图标共用按钮命中区。 */
.hud-actions>.icon-button{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:0;line-height:1;appearance:none;-webkit-appearance:none}
.hud-action-icon{display:block;width:16px;height:16px;flex:none;pointer-events:none}
.hud-action-label{display:block;font:500 8px/1.1 "Microsoft YaHei",sans-serif;letter-spacing:0;white-space:nowrap;pointer-events:none}
.hud-action-icon .sound-muted{display:none}.is-muted .hud-action-icon .sound-waves{display:none}.is-muted .hud-action-icon .sound-muted{display:block}
.mobile-play .hud-action-icon{width:19px;height:19px}.mobile-play .hud-action-label{font-size:9px}
