:root{color:#26211e;font-synthesis:none;--ink:#231f1d;--ink-soft:#5c534c;--ink-muted:#82776d;--paper:#fffdf8;--paper-warm:#f8f2e4;--cyan:#2a96b5;--cyan-bright:#41b8d8;--cyan-soft:#e2f5fa;--gold:#f0a832;--gold-bright:#ffd15c;--gold-soft:#fff3cf;--ketchup:#df4d3c;--ketchup-soft:#ffe8e4;--shadow-card:0 12px 30px #231f1d1a, 4px 4px 0 #231f1d;background:radial-gradient(circle at 50% 0,#fffdf8 0%,#f5efe2 55%,#ebe2d0 100%);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Nunito,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{min-height:100dvh;margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{cursor:not-allowed}.app{max-width:1540px;padding:max(0px, var(--toy-safe-top,0px)) 32px max(10px, var(--toy-safe-bottom,0px));margin:auto}.topbar{justify-content:space-between;align-items:center;gap:16px;height:70px;display:flex}.wordmark{color:var(--ink);background:var(--paper);border:2.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:999px;align-items:center;gap:10px;padding:5px 14px 5px 8px;text-decoration:none;transition:transform .14s,box-shadow .14s;display:flex}.wordmark:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-1px,-1px)}.brand-logo{flex-shrink:0;width:34px;height:34px;display:block}.brand-title{letter-spacing:1.5px;color:var(--ink);font-size:20px;font-weight:900}.wordmark small{letter-spacing:1px;color:var(--ink-soft);font-size:12px;font-weight:700}.divider{background:#d8cebe;border-radius:2px;width:2px;height:15px}.topmeta{letter-spacing:1.5px;color:var(--ink-soft);align-items:center;gap:10px;font-size:11px;font-weight:800;display:flex}.live-dot{background:var(--cyan);border:2px solid var(--ink);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 3px #2a96b533}.build-tag{background:var(--gold-soft);color:var(--ink);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:999px;margin-left:4px;padding:3px 11px;font-size:11px;font-weight:800}.icon-button{background:var(--paper);color:var(--ink);letter-spacing:1px;border:2.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:999px;padding:7px 15px;font-size:12px;font-weight:800;transition:transform .12s,background .12s,box-shadow .12s}.icon-button:hover{background:var(--gold-soft);transform:translateY(-1px)}.icon-button:active{box-shadow:1px 1px 0 var(--ink);transform:translate(2px,2px)}.icon-button.muted{color:var(--ink-muted);background:#ece6da}.stage-shell{border:3px solid var(--ink);box-shadow:var(--shadow-card);background:linear-gradient(#fffdf9 0%,#f4ecdc 100%);border-radius:22px;padding:9px}.stage{aspect-ratio:16/9;border:2.5px solid var(--ink);isolation:isolate;background:#f5efe2;border-radius:14px;width:100%;min-width:0;position:relative;overflow:hidden}canvas{width:100%;height:100%;display:block}#edge-cues{pointer-events:none;z-index:4;width:100%;height:100%;position:absolute;inset:0}.overlay{z-index:5;position:absolute;inset:0}.hidden{display:none!important}.loading{z-index:10;background:radial-gradient(circle at 50% 42%,#fffdf9 0%,#f4ebd9 100%);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.loading-logo{width:84px;height:84px;animation:1.6s ease-in-out infinite bunny-bob}.loading-mark{letter-spacing:3px;color:var(--ink);text-shadow:2px 2px 0 var(--gold-bright);font-size:40px;font-weight:900}.loading p{letter-spacing:1.5px;color:var(--ink-soft);margin:2px 0 6px;font-size:14px;font-weight:700}.load-track{border:2.5px solid var(--ink);width:240px;height:12px;box-shadow:2px 2px 0 var(--ink);background:#ebe2d1;border-radius:999px;padding:2px;overflow:hidden}.load-track i{background:linear-gradient(90deg, var(--cyan) 0%, var(--gold) 100%);border-radius:999px;width:0;height:100%;transition:width .15s;display:block}.loading small{letter-spacing:2px;color:var(--ink-muted);margin-top:6px;font-size:11px;font-weight:800}@keyframes bunny-bob{0%,to{transform:translateY(0)rotate(-2deg)}50%{transform:translateY(-7px)rotate(2deg)}}.menu{cursor:default;background:linear-gradient(90deg,#fffdf7e0 0%,#fcf7ecb8 40%,#f8f2e426 64%,#0000 85%)}.menu-content{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:3px solid var(--ink);width:47%;box-shadow:6px 6px 0 var(--ink);background:#fffdf8e0;border-radius:24px;padding:20px 24px;position:absolute;top:5.5%;left:4.2%}.amiya-quote{background:var(--paper);color:var(--ink);border:2.5px solid var(--ink);letter-spacing:.4px;box-shadow:4px 4px 0 var(--ink);overflow-wrap:anywhere;pointer-events:none;z-index:6;border-radius:18px;padding:12px 15px;font-size:clamp(11px,.96vw,13.5px);font-weight:800;line-height:1.55;position:absolute;top:44%;left:76.2%;right:2%}.amiya-quote:after{content:"";background:var(--paper);border-left:2.5px solid var(--ink);border-bottom:2.5px solid var(--ink);width:15px;height:15px;position:absolute;top:24px;left:-10px;transform:rotate(45deg)}.amiya-quote.show{animation:4.2s both quote-pop}@keyframes quote-pop{0%{opacity:0;transform:translateY(8px)scale(.92)}8%,86%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-6px)scale(.96)}}.eyebrow{letter-spacing:1.5px;color:var(--ink);background:var(--gold-soft);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:999px;align-items:center;gap:7px;padding:3px 11px;font-size:clamp(9px,.95vw,11px);font-weight:800;display:inline-flex}.eyebrow i{background:var(--ketchup);border:1.5px solid var(--ink);border-radius:50%;width:7px;height:7px}.menu-title-row{align-items:center;gap:12px;margin:10px 0 4px;display:flex}.menu-badge-icon{filter:drop-shadow(2px 3px #231f1d2e);flex-shrink:0;width:clamp(46px,4.8vw,66px);height:clamp(46px,4.8vw,66px)}h1{letter-spacing:2px;color:var(--ink);text-shadow:3px 3px 0 var(--gold-bright);flex-wrap:wrap;align-items:baseline;gap:10px;margin:0;font-size:clamp(40px,5.2vw,72px);font-weight:900;line-height:1.02;display:flex;position:relative}.title-en{letter-spacing:2px;color:var(--cyan);background:var(--cyan-soft);border:2px solid var(--ink);text-shadow:none;writing-mode:horizontal-tb;border-radius:8px;padding:2px 7px;font-size:clamp(10px,1vw,13px);font-weight:900}h2{letter-spacing:.6px;color:var(--ink);margin:6px 0;font-size:clamp(15px,1.5vw,21px);font-weight:800}.menu-description{color:var(--ink-soft);margin:6px 0 14px;font-size:clamp(11px,.98vw,13px);font-weight:600;line-height:1.65}.mode-selector{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:14px;display:grid}.mode-card{text-align:left;min-width:0;color:var(--ink-soft);background:#f8f2e4bf;border:2.5px solid #b8ae9e;border-radius:14px;align-items:center;gap:10px;padding:10px 12px;transition:transform .12s,background .12s,border-color .12s,box-shadow .12s;display:flex;position:relative}.mode-card:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-1px)}.mode-card.active{background:var(--cyan-soft);border-color:var(--ink);color:var(--ink);box-shadow:3px 3px 0 var(--ink)}#mode-challenge.mode-card.active{background:var(--ketchup-soft)}.mode-icon{color:var(--cyan);flex-shrink:0;font-size:20px;font-weight:900;line-height:1}#mode-challenge .mode-icon{letter-spacing:1px;color:var(--ketchup);font-size:15px}.mode-info{flex-direction:column;gap:2px;min-width:0;display:flex}.mode-info b{color:var(--ink);font-size:13px;font-weight:900}.mode-info small{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:700;overflow:hidden}.mode-check{border:2px solid var(--ink);background:var(--gold-bright);width:20px;height:20px;color:var(--ink);opacity:0;border-radius:50%;justify-content:center;align-items:center;margin-left:auto;font-size:11px;font-style:normal;font-weight:900;transition:opacity .12s,transform .12s;display:flex;transform:scale(.7)}.mode-card.active .mode-check{opacity:1;transform:scale(1)}.menu-cta-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.primary{color:var(--ink);border:2.5px solid var(--ink);letter-spacing:1.5px;width:235px;max-width:100%;box-shadow:4px 4px 0 var(--ink);background:linear-gradient(#ffbe42 0%,#f09826 100%);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;padding:13px 20px;font-size:15px;font-weight:900;transition:transform .12s,box-shadow .12s,filter .12s;display:flex}.primary.challenge-cta{color:#fffdf8;background:linear-gradient(#ff7e62 0%,#df4d3c 100%)}.primary:hover{filter:brightness(1.04);box-shadow:5px 6px 0 var(--ink);transform:translate(-1px,-2px)}.primary:active{box-shadow:2px 2px 0 var(--ink);transform:translate(2px,2px)}.primary span:last-child{font-size:19px;font-weight:900}.menu-best{background:var(--paper);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:12px;flex-direction:column;gap:2px;padding:6px 12px;display:flex}.menu-best small{letter-spacing:1px;color:var(--ink-soft);font-size:9px;font-weight:800}.menu-best b{letter-spacing:1.5px;color:var(--ink);font-variant-numeric:tabular-nums;font-size:18px;font-weight:900}.menu-actions{border-top:2px dashed #d8cebe;flex-wrap:wrap;align-items:center;gap:9px;margin-top:14px;padding-top:12px;display:flex}.menu-actions button,.text-button{background:var(--paper);letter-spacing:.6px;color:var(--ink);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:999px;padding:6px 13px;font-size:12px;font-weight:800;transition:transform .12s,background .12s}.menu-actions button:hover,.text-button:hover{background:var(--cyan-soft);text-decoration:none;transform:translateY(-1px)}.sr-mode-toggle{display:none}.stage-index{color:var(--ink);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);pointer-events:none;background:#fffdf8d1;border-radius:999px;align-items:center;gap:8px;padding:4px 12px;font-size:12px;font-weight:900;display:flex;position:absolute;bottom:3.5%;left:4.5%}.stage-index span{letter-spacing:1.2px;color:var(--ink-soft);font-size:9px;font-weight:700}.hud{--hud-bg:#fffdf8bd;--hud-border:#231f1dc7;--hud-shadow:0 4px 12px #231f1d14, 2px 2px 0 #231f1d85;color:var(--ink);pointer-events:none;z-index:3;background:0 0;justify-content:space-between;align-items:stretch;gap:12px;padding:1.5% 2% 0;display:flex;position:absolute;inset:0 0 auto}.hud-left,.boss-panel,.hud-right{box-sizing:border-box;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffdf8bd;border:2px solid #231f1dc7;border-radius:16px;height:64px;min-height:64px;max-height:64px;padding:7px 13px;box-shadow:0 4px 12px #231f1d14,2px 2px #231f1d85}.hud-left{flex-direction:column;flex:0 0 21.5%;justify-content:space-between;width:21.5%;display:flex}.hud-left-top{justify-content:space-between;align-items:center;gap:6px;display:flex}.overline{letter-spacing:1.2px;color:var(--ink-soft);font-size:9px;font-weight:900;line-height:1.1}.overline span{color:var(--cyan);background:var(--cyan-soft);border:1.5px solid #231f1dc7;border-radius:5px;margin-left:4px;padding:0 5px;font-size:8px}.hearts{color:var(--ketchup);align-items:center;gap:6px;margin-top:0;display:flex}.hearts .heart-pip{color:var(--ketchup);text-shadow:1px 1px #231f1dc7;font-size:18px;line-height:1;transition:transform .2s}.hearts .heart-pip.empty{color:#cfc6b8;text-shadow:none;transform:scale(.85)}.hearts .infinity{color:var(--cyan);text-shadow:1px 1px #231f1dc7;font-size:22px;font-weight:900;line-height:1}.hearts small{letter-spacing:.8px;color:var(--ink);font-size:10px;font-weight:800}.phase{letter-spacing:.6px;color:var(--ink);background:#fff3cfd9;border:1.5px solid #231f1dc7;border-radius:999px;padding:1px 7px;font-size:9px;font-weight:800;line-height:1.2;display:inline-block}.boss-panel{flex:auto;align-items:center;gap:10px;width:auto;min-width:0;display:flex}.boss-avatar{background:#fff4e8;border:2px solid #231f1dc7;border-radius:12px;flex:0 0 44px;width:44px;height:44px;position:relative;overflow:visible;box-shadow:2px 2px #231f1d85}.boss-avatar img{object-fit:cover;border-radius:10px;width:100%;height:100%}.boss-avatar span{text-align:center;color:#fffdf8;background:var(--ketchup);opacity:0;white-space:nowrap;border:2px solid #231f1dc7;border-radius:999px;padding:1px 6px;font-size:14px;font-weight:900;position:absolute;inset:28px -16px auto;box-shadow:2px 2px #231f1d85}.boss-avatar span.pop{animation:.7s both boss-damage}@keyframes boss-damage{0%{opacity:0;translate:0 8px;scale:.8}18%,72%{opacity:1;translate:0;scale:1}to{opacity:0;translate:0 -14px;scale:.95}}.boss-meter{flex-direction:column;flex:1;justify-content:space-between;min-width:0;height:100%;display:flex}.boss-label{letter-spacing:.8px;color:var(--ink);justify-content:space-between;align-items:baseline;font-size:12px;font-weight:900;line-height:1.05;display:flex}.boss-label small{color:var(--ink-soft);font-size:9px;font-weight:700}.boss-label b{color:var(--ketchup);font-variant-numeric:tabular-nums;font-size:14px;font-weight:900;line-height:1}.boss-track{background:#ebe2d2d9;border:2px solid #231f1dc7;border-radius:999px;height:9px;margin-top:0;padding:1px;overflow:hidden}.boss-track>div{background:linear-gradient(90deg, var(--ketchup) 0%, var(--gold) 100%);border-radius:999px;height:100%;transition:width .28s}.boss-caption{color:var(--ink-soft);justify-content:space-between;margin-top:0;font-size:9px;font-weight:700;line-height:1.05;display:flex}#wave-number{color:var(--ink);font-weight:900}.hud-right{text-align:right;flex-direction:column;flex:0 0 22.5%;justify-content:space-between;width:22.5%;display:flex;position:relative}.hud-score-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.hud-score-row>div{align-items:baseline;gap:6px;display:flex}.score{letter-spacing:1.2px;color:var(--ink);font-variant-numeric:tabular-nums;font-size:clamp(18px,1.85vw,24px);font-weight:900;line-height:1}.score-ledgers{color:var(--ink-soft);white-space:nowrap;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:6px;margin-top:0;font-size:9px;font-weight:700;line-height:1.1;display:flex;overflow:hidden}.score-ledgers b{font-variant-numeric:tabular-nums;color:var(--ink);font-weight:900}.score-ledgers small{color:var(--ink-muted);text-overflow:ellipsis;flex:0 auto;font-size:8px;font-weight:700;overflow:hidden}.score-ledgers .earning,.score-ledgers .earning b{color:#c97a10}.pause-button{pointer-events:auto;color:var(--ink);background:#f8f2e4d9;border:2px solid #231f1dc7;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:800;line-height:1.15;box-shadow:2px 2px #231f1d85}.pause-button:hover{background:var(--gold-soft)}.pause-button small{color:var(--ink-soft);margin-left:3px;font-size:8px}.combo-panel{box-sizing:border-box;width:22.5%;height:64px;min-height:64px;max-height:64px;color:var(--ink);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:3;pointer-events:none;background:#fffdf8bd;border:2px solid #231f1dc7;border-radius:16px;flex-direction:column;justify-content:space-between;padding:6px 13px;transition:background .2s,opacity .2s;display:flex;position:absolute;top:auto;bottom:2.6%;right:2%;box-shadow:0 4px 12px #231f1d14,2px 2px #231f1d85}.combo-header{justify-content:space-between;align-items:center;line-height:1;display:flex}.combo-label{letter-spacing:1.2px;color:var(--ink-soft);font-size:8px;font-weight:900}.combo-header strong{color:#b86b11;font-variant-numeric:tabular-nums;font-size:10px;font-weight:900}.combo-main{align-items:baseline;gap:6px;margin:0;line-height:1;display:flex}.combo-main b{color:var(--ink);font-variant-numeric:tabular-nums;font-size:clamp(20px,2.2vw,26px);font-weight:900;line-height:1}.combo-main em{letter-spacing:1px;color:var(--cyan);font-size:9px;font-style:normal;font-weight:900}.combo-pips{align-self:center;gap:3px;margin-left:auto;display:flex}.combo-pips i{background:#e9e1d2d9;border:1.5px solid #231f1dc7;border-radius:999px;width:10px;height:6px}.combo-pips i.on{background:var(--gold);box-shadow:0 0 6px #f0a83299}.combo-footer{border-top:1px dashed #a0948280;justify-content:space-between;align-items:center;padding-top:2px;line-height:1;display:flex}.combo-footer span{color:var(--ink-soft);font-size:9px;font-weight:800}.combo-footer small{color:var(--ink-muted);font-size:8px;font-weight:700}.combo-panel.cool{background:#fff6d6bd;border-color:#231f1dc7}.combo-panel.cool .combo-footer span{color:#8f5300}.skill-dock{z-index:3;align-items:stretch;gap:12px;display:flex;position:absolute;bottom:2.6%;left:2%}.skill-badge{box-sizing:border-box;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);height:64px;min-height:64px;max-height:64px;color:var(--ink);text-align:left;touch-action:none;-webkit-user-select:none;user-select:none;background:#fffdf8bd;border:2px solid #231f1dc7;border-radius:16px;align-items:center;gap:9px;padding:6px 12px 6px 8px;transition:transform .12s,background .15s,border-color .15s,opacity .15s;display:flex;box-shadow:0 4px 12px #231f1d14,2px 2px #231f1d85}.skill-badge:hover:not(:disabled){background:#fffdf8d6;transform:translateY(-1px)}.skill-badge.active{transform:translateY(2px)}.skill-ring-wrap{flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:relative}.skill-ring-svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.ring-track{fill:#fffcf4e0;stroke:#dcd2c0;stroke-width:5px}.ring-progress{fill:none;stroke:var(--cyan);stroke-width:5.5px;stroke-linecap:round;stroke-dasharray:169.65;stroke-dashoffset:0;transition:stroke-dashoffset 60ms linear,stroke .15s}#skill-crouch-card .ring-progress{stroke:var(--gold)}.skill-icon-img{object-fit:contain;z-index:1;border-radius:50%;width:36px;height:36px;transition:filter .15s,opacity .15s,transform .15s;position:relative}.skill-timer{z-index:2;font-variant-numeric:tabular-nums;color:#fffdf8;text-shadow:0 1px 3px #141210,1px 1px #141210,-1px -1px #141210;pointer-events:none;opacity:0;justify-content:center;align-items:center;font-size:12px;font-weight:900;transition:opacity .12s;display:flex;position:absolute;inset:0}.skill-badge.is-active{background:#fff6d6bd;border-color:#231f1dc7;box-shadow:0 4px 12px #f0a83240,2px 2px #231f1d85}.skill-badge.is-active .ring-progress{stroke:#f09826}.skill-badge.is-active .skill-icon-img{transform:scale(1.06)}.skill-badge.is-active .skill-timer{opacity:1;color:#ffe88a;align-items:flex-end;padding-bottom:2px;font-size:10px}.skill-badge.is-cooldown{background:#ece6dabd;border-color:#231f1dc7}.skill-badge.is-cooldown .ring-progress{stroke:var(--ketchup)}.skill-badge.is-cooldown .skill-icon-img{filter:grayscale(.75)brightness(.65);opacity:.55}.skill-badge.is-cooldown .skill-timer{opacity:1;color:#fffdf8;background:#1c18167a;border-radius:50%;margin:5px;font-size:11px}.skill-badge.is-queued{background:#fff6d6bd;border-style:dashed;border-color:#231f1dc7}.skill-meta{flex-direction:column;gap:3px;min-width:72px;display:flex}.skill-title-row{align-items:center;gap:5px;display:flex}.skill-title-row b{color:var(--ink);font-size:12px;font-weight:900}.skill-title-row kbd{background:var(--paper-warm);color:var(--ink-soft);border:1.5px solid #231f1dc7;border-radius:5px;padding:1px 5px;font:800 9px Arial,sans-serif}.skill-state-text{color:var(--cyan);font-size:10px;font-style:normal;font-weight:800}.skill-badge.is-active .skill-state-text{color:#c46d00}.skill-badge.is-cooldown .skill-state-text{color:var(--ketchup)}.feedback{text-align:center;pointer-events:none;color:var(--ink);white-space:nowrap;opacity:0;z-index:3;position:absolute;top:23%;left:50%;transform:translate(-50%)}.feedback.show{opacity:1;animation:1.2s both score-rise}.feedback b{letter-spacing:2px;color:var(--ink);background:#ffd15ce0;border:2px solid #231f1dc7;border-radius:999px;padding:3px 16px;font-size:clamp(17px,2.2vw,28px);font-weight:900;display:inline-block;box-shadow:2px 2px #231f1d85}.feedback small{letter-spacing:1.2px;color:var(--ink);text-shadow:0 1px #fffdf8,0 -1px #fffdf8,1px 0 #fffdf8,-1px 0 #fffdf8;margin-top:5px;font-size:11px;font-weight:800;display:block}.feedback.hit b{color:#fffdf8;background:#df4d3ce6}.feedback.hit small{color:#9e261a}.announcement{color:var(--ink);letter-spacing:4px;white-space:nowrap;pointer-events:none;opacity:0;z-index:3;background:#ffd15ce6;border:2.5px solid #231f1dc7;border-radius:20px;padding:9px 26px;font-size:clamp(20px,3.4vw,44px);font-weight:900;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)rotate(-4deg);box-shadow:4px 4px #231f1d85}.announcement.show{animation:1.6s both announce}.battle-hint{white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fffdf7;letter-spacing:1.2px;pointer-events:none;z-index:3;background:#231f1dbd;border:2px solid #231f1dc7;border-radius:999px;padding:6px 16px;font-size:clamp(10px,.95vw,12px);font-weight:800;position:absolute;bottom:2.6%;left:50%;right:auto;transform:translate(-50%);box-shadow:0 4px 12px #231f1d14,2px 2px #231f1d85}@keyframes score-rise{0%{opacity:0;translate:0 12px;scale:.9}15%,65%{opacity:1;translate:0;scale:1}to{opacity:0;translate:0 -20px}}@keyframes announce{0%{opacity:0;scale:1.35}14%,68%{opacity:1;scale:1}to{opacity:0;scale:1.04}}.modal{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#231f1d85;justify-content:center;align-items:center;display:flex}.modal-card{background:var(--paper);color:var(--ink);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink);text-align:center;border-radius:24px;max-width:88%;padding:30px 34px}.pause-card{width:420px}.pause-card .eyebrow{justify-content:center}.pause-card h2{margin:14px 0 8px}.pause-card p{color:var(--ink-soft);margin-bottom:22px;font-size:13px;font-weight:600}.pause-card .primary{width:100%}.secondary{background:var(--paper-warm);border:2.5px solid var(--ink);width:100%;color:var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:14px;margin:12px 0;padding:12px;font-weight:800;display:block}.secondary:hover{background:var(--cyan-soft)}.pause-card .text-button{margin-top:4px}.intro{z-index:6;background:#181513}.intro video{object-fit:contain;width:100%;height:100%}.intro button{background:var(--paper);color:var(--ink);border:2.5px solid var(--ink);letter-spacing:1.5px;box-shadow:4px 4px 0 var(--ink);border-radius:999px;padding:10px 20px;font-size:13px;font-weight:900;position:absolute;bottom:5%;right:4%}.intro button:hover{background:var(--gold-bright)}.result{background:#1e1b18}.result-art{background:url(../assets/ending.webp) 50%/cover no-repeat;position:absolute;inset:0}.result.lost .result-art{filter:none;opacity:1;background-image:url(../assets/defeat-v2.webp);background-position:50%}.art-view-btn{z-index:4;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--ink);border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);background:#fffdf8d1;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:800;transition:transform .12s,background .12s;position:absolute;top:3%;right:2.5%}.art-view-btn:hover{background:var(--gold-soft);transform:translateY(-1px)}.result.clean-view .result-content{opacity:0;pointer-events:none;transform:translateY(12px)}.result-content,.result.lost .result-content{pointer-events:none;z-index:3;width:100%;transition:opacity .22s,transform .22s;position:absolute;inset:0}.result-banner{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2.5px solid var(--ink);max-width:44%;box-shadow:4px 4px 0 var(--ink);pointer-events:auto;background:#fffdf8d6;border-radius:20px;align-items:center;gap:12px;padding:12px 16px;display:flex;position:absolute;top:3%;left:2.5%}.result.won .result-banner{background:linear-gradient(135deg,#fffdf6e6 0%,#fff4cfe0 100%)}.result-badge{flex-shrink:0;width:56px;height:56px}.result-banner-text h2{margin:5px 0 3px;font-size:clamp(17px,1.8vw,24px)}.result-banner-text p{color:var(--ink-soft);margin:0;font-size:clamp(11px,.95vw,13px);font-weight:600;line-height:1.5}.result-dock{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2.5px solid var(--ink);box-shadow:5px 5px 0 var(--ink);pointer-events:auto;background:#fffdf8db;border-radius:22px;justify-content:space-between;align-items:center;gap:18px;padding:12px 20px;display:flex;position:absolute;bottom:2.8%;left:2.5%;right:2.5%}.result-dock-left{flex-direction:column;flex:1.1;gap:4px;min-width:240px;display:flex}.result-score{align-items:baseline;gap:10px;display:flex}.result-score small{letter-spacing:1.2px;color:var(--ink-muted);font-size:9px;font-weight:900}.result-score>b{letter-spacing:1.5px;color:var(--ink);text-shadow:2px 2px 0 var(--gold-bright);font-variant-numeric:tabular-nums;font-size:clamp(24px,3vw,38px);font-weight:900;line-height:1}.result-breakdown{color:var(--ink-soft);gap:14px;font-size:11px;font-weight:800;display:flex}.result-breakdown b{color:var(--ink);margin-left:3px;font-size:13px}.result-progress-box{margin-top:2px}.result-progress-label{color:var(--ink-soft);justify-content:space-between;align-items:center;margin-bottom:3px;font-size:10px;font-weight:800;display:flex}.result-progress-label b{color:var(--ketchup)}.result.won .result-progress-label b{color:#b87300}.result-progress-track{border:1.5px solid var(--ink);background:#ebe2d2;border-radius:999px;height:7px;overflow:hidden}.result-progress-track i{background:linear-gradient(90deg, var(--cyan) 0%, var(--gold) 65%, var(--ketchup) 100%);border-radius:999px;height:100%;transition:width .4s;display:block}.result-stats{border:2px solid var(--ink);background:#fffdf8d9;border-radius:14px;flex-shrink:0;gap:18px;padding:8px 16px;display:flex}.result-stats>div{flex-direction:column;align-items:center;gap:2px;display:flex}.result-stats b{color:var(--cyan);font-variant-numeric:tabular-nums;font-size:19px;font-weight:900}.result-stats small{color:var(--ink-soft);white-space:nowrap;font-size:10px;font-weight:800}.result-dock-right{flex-direction:column;flex:1.1;align-items:flex-end;gap:6px;display:flex}.result-dock-right #again{width:280px;padding:11px 18px;font-size:14px}.result.lost #again{color:#fffdf8;background:linear-gradient(#ff7a59 0%,#e04a38 100%);animation:1.4s ease-in-out infinite retry-pulse}@keyframes retry-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.result-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.result-actions .text-button{padding:4px 11px;font-size:11px}.result-dock-right #submit-status{color:var(--ink-soft);text-align:right;margin:0;font-size:10px;font-weight:700}.practice-badge{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:2px solid var(--ink);letter-spacing:1px;color:var(--ink);box-shadow:3px 3px 0 var(--ink);z-index:3;background:#fffdf8d9;border-radius:999px;padding:7px 16px;font-size:12px;font-weight:900;position:absolute;top:3%;left:50%;transform:translate(-50%)}.practice-badge button{background:var(--gold-soft);border:1.5px solid var(--ink);color:var(--ink);border-radius:999px;margin-left:12px;padding:3px 10px;font-size:11px;font-weight:800}.game-controls{justify-content:space-between;align-items:center;gap:16px;margin:4px 0 0;padding:10px 18px 4px;display:flex}.control-group{gap:10px;display:flex}.game-controls button{touch-action:none;-webkit-user-select:none;user-select:none;background:var(--paper);width:104px;height:66px;color:var(--ink);border:2.5px solid var(--ink);box-shadow:0 4px 0 var(--ink);border-radius:14px;font-size:19px;font-weight:900;transition:transform 80ms,box-shadow 80ms,background .1s}.game-controls button:hover:not(:disabled){background:var(--gold-soft)}.game-controls button.active{background:var(--cyan);color:#fffdf8;box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}.game-controls button span{line-height:1;display:block}.game-controls button small{justify-content:center;align-items:center;gap:4px;margin-top:3px;font-size:10px;font-weight:800;display:flex}.game-controls button kbd{border:1.5px solid var(--ink);background:var(--paper-warm);min-width:17px;color:var(--ink);border-radius:4px;padding:1px 4px;font:800 9px Arial,sans-serif;display:inline-block}.game-controls button em{color:var(--cyan);margin-top:2px;font-size:9px;font-style:normal;font-weight:800;display:block}.game-controls button.active em{color:#fffdf8}.game-controls button:disabled{opacity:.5;cursor:default}.control-caption{background:var(--paper);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);letter-spacing:.8px;color:var(--ink);text-align:center;border-radius:14px;padding:7px 16px;font-size:12px}.control-caption b{color:var(--ink);font-weight:900}.control-caption small{color:var(--ink-soft);margin-top:3px;font-size:10px;font-weight:700;display:block}footer{letter-spacing:1.5px;color:var(--ink-muted);border-top:2px dashed #d6ccb9;justify-content:space-between;margin:16px 6px 12px;padding-top:12px;font-size:10px;font-weight:800;display:flex}.ranking-dialog{border:3px solid var(--ink);background:var(--paper);width:min(690px,94vw);max-height:90dvh;color:var(--ink);box-shadow:8px 8px 0 var(--ink);border-radius:24px;padding:24px 26px}.ranking-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#231f1d94}.rank-heading{justify-content:space-between;align-items:center;display:flex}.rank-heading h2{margin:8px 0 14px}.rank-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.rank-filters label{color:var(--ink-soft);flex-direction:column;flex:1;gap:6px;min-width:120px;font-size:11px;font-weight:800;display:flex}.rank-filters select{font:inherit;color:var(--ink);background:var(--paper-warm);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--ink);border-radius:10px;padding:8px 10px;font-size:13px;font-weight:800}.rank-table{border:2px solid var(--ink);background:#fffdf9;border-radius:14px;max-height:44dvh;margin:14px 0;overflow:auto}.rank-table table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:13px;font-weight:700}.rank-table th,.rank-table td{text-align:left;overflow-wrap:anywhere;border-bottom:1.5px solid #e6decb;padding:11px 12px}.rank-table th:first-child{width:18%}.rank-table th:last-child{width:28%}.rank-table th:last-child,.rank-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:900}.rank-table th{background:var(--gold-soft);border-bottom:2px solid var(--ink);font-weight:900;position:sticky;top:0}.rank-table tr.rank-1 td{background:#ffd65c38}.rank-table tr.rank-2 td{background:#41b8d81f}.rank-table tr.rank-3 td{background:#f0a8321f}.ranking-dialog p{font-size:12px;font-weight:700;line-height:1.6}.rank-note{color:var(--ink-muted);font-size:11px;font-weight:700;line-height:1.7}@media (width<=960px){.app{padding:0 12px}.topbar{height:60px}.topmeta{display:none}.menu-content{width:56%;padding:14px 16px;top:4%}.menu-description{margin:4px 0 10px}.mode-selector{gap:7px;margin-bottom:10px}.mode-card{padding:7px 9px}.primary{width:195px;padding:10px 14px;font-size:13px}.result-banner{max-width:62%;padding:9px 12px}.result-dock{gap:10px;padding:10px 14px}.result-dock-right #again{width:220px;font-size:12px}}@media (width<=680px){.app{padding:0 6px}.topbar{height:52px}.brand-logo{width:28px;height:28px}.brand-title{font-size:16px}.wordmark small{font-size:10px}.stage-shell{border-radius:14px;padding:4px}.stage{aspect-ratio:16/9;border-radius:10px;min-height:0}.menu-content{border-radius:14px;width:68%;padding:10px 12px;top:4%;left:3%}.menu-badge-icon{width:34px;height:34px}.menu h1{font-size:28px}.title-en{padding:1px 4px;font-size:8px}.menu h2{margin:4px 0 6px;font-size:12px}.menu-description,.stage-index{display:none}.amiya-quote{max-width:220px;padding:8px 11px;font-size:10px;top:10%;right:6%}.amiya-quote:after{display:none}.mode-selector{grid-template-columns:1fr 1fr;gap:5px;margin-bottom:8px}.mode-card{border-radius:10px;gap:5px;padding:5px 7px}.mode-icon{font-size:13px}.mode-info b{font-size:10px}.mode-info small,.mode-check{display:none}.menu-cta-row{gap:8px}.menu .primary{width:145px;padding:7px 10px;font-size:11px}.menu-best{padding:3px 8px}.menu-best small{font-size:7px}.menu-best b{font-size:13px}.menu-actions{gap:5px;margin-top:7px;padding-top:6px}.menu-actions button{padding:4px 8px;font-size:9px}.hud{gap:6px;padding:1.5% 1.5% 0}.hud-left,.boss-panel,.hud-right{border-width:1.5px;border-radius:10px;height:42px;min-height:42px;max-height:42px;padding:4px 7px}.hud-left,.hud-right{flex:0 0 24%;width:24%}.boss-panel{flex:auto;gap:5px;width:auto}.boss-avatar{border-radius:6px;flex-basis:26px;width:26px;height:26px}.boss-label{font-size:8px}.boss-label b{font-size:10px}.boss-track{height:6px;margin-top:0}.boss-caption{margin-top:0;font-size:6px}.hearts .infinity{font-size:16px}.hearts .heart-pip{font-size:12px}.hearts small,.phase,.overline{font-size:6px}.score{font-size:13px}.score-ledgers{gap:1px 4px;font-size:6px}.score-ledgers small{display:none}.pause-button{padding:2px 6px;font-size:8px}.combo-panel{border-width:1.5px;border-radius:10px;width:24%;height:42px;min-height:42px;max-height:42px;padding:4px 6px;top:auto;bottom:2.5%;right:1.5%}.combo-main b{font-size:16px}.combo-label,.combo-main em,.combo-footer span,.combo-footer small,.combo-header strong{font-size:6px}.combo-pips i{width:6px;height:4px}.skill-dock{gap:6px;bottom:2.5%;left:1.5%}.skill-badge{border-width:1.5px;border-radius:10px;gap:5px;height:42px;min-height:42px;max-height:42px;padding:3px 7px 3px 4px}.skill-ring-wrap{width:32px;height:32px}.skill-icon-img{width:22px;height:22px}.skill-title-row b{font-size:9px}.skill-title-row kbd{display:none}.skill-state-text{font-size:7px}.skill-timer{font-size:8px}.battle-hint{padding:4px 10px;font-size:8px;bottom:2.5%;left:50%;right:auto;transform:translate(-50%)}.game-controls{gap:5px;padding:6px 4px 4px}.control-group{gap:5px}.game-controls button{border-radius:10px;width:54px;height:58px;font-size:16px}.game-controls button small{font-size:8px}.game-controls button kbd{display:none}.game-controls button em{font-size:7px}.control-caption{padding:5px 8px;font-size:8px}.control-caption small{font-size:7px}.result-banner{border-radius:12px;gap:8px;max-width:72%;padding:6px 10px;top:2%;left:2%}.result-badge{width:34px;height:34px}.result-banner-text h2{margin:2px 0;font-size:13px}.result-banner-text p{font-size:9px;line-height:1.35}.art-view-btn{padding:4px 9px;font-size:9px;top:2%;right:2%}.result-dock{border-radius:14px;flex-wrap:wrap;gap:8px;padding:7px 10px;bottom:2%;left:2%;right:2%}.result-score>b{font-size:20px}.result-breakdown,.result-progress-label{font-size:8px}.result-stats{gap:10px;padding:4px 8px}.result-stats b{font-size:13px}.result-stats small{font-size:7px}.result-dock-right #again{width:170px;padding:7px 10px;font-size:10px}.result-actions .text-button{padding:3px 7px;font-size:8px}}@media (prefers-reduced-motion:reduce){.primary,.boss-track>div,.loading-logo,.result.lost #again{transition:none;animation:none}.announcement.show,.amiya-quote.show{animation-duration:.8s}}#start:disabled{cursor:not-allowed;opacity:.65;transform:none}#practice[hidden],#life-mode[hidden]{display:none!important}.rank-table tr.is-mine td{box-shadow:inset 0 -2px #2a96b5}.touch-guide{display:none}.amiya-quote{letter-spacing:0;transform-origin:0;width:max-content;min-width:0;padding:10px 14px;line-height:1.6;right:auto}.amiya-quote:after{width:13px;height:13px;top:calc(50% - 7px);left:-9px}.amiya-quote[data-tail=bottom]:after{border-left:0;border-bottom:2.5px solid var(--ink);border-right:2.5px solid var(--ink);display:block;top:auto;bottom:-8px;left:calc(50% - 7px)}@media (prefers-reduced-motion:reduce){.amiya-quote.show{animation:none}}.touch-phone body{overscroll-behavior:none;background:#eee6d6}.touch-phone .app{width:100%;max-width:540px;padding:0 max(7px,env(safe-area-inset-right),var(--toy-safe-right,0px)) max(7px,env(safe-area-inset-bottom),var(--toy-safe-bottom,0px)) max(7px,env(safe-area-inset-left),var(--toy-safe-left,0px));margin:auto}.touch-phone .topbar{height:52px;padding-top:env(safe-area-inset-top);box-sizing:content-box;gap:8px}.touch-phone .wordmark{box-shadow:2px 2px 0 var(--ink);border-width:2px;gap:6px;padding:4px 10px 4px 5px}.touch-phone .brand-logo{width:26px;height:26px}.touch-phone .brand-title{letter-spacing:1px;font-size:16px}.touch-phone .wordmark small,.touch-phone .wordmark .divider,.touch-phone .topmeta,.touch-phone footer{display:none}.touch-phone #sound{box-shadow:2px 2px 0 var(--ink);border-width:2px;padding:7px 11px;font-size:11px}.touch-phone .stage-shell{box-shadow:0 4px 0 var(--ink);background:#faf5e9;border-width:2px;border-radius:22px;padding:3px}.touch-phone .stage{width:100%;height:calc(100dvh - 75px - env(safe-area-inset-top) - env(safe-area-inset-bottom));aspect-ratio:auto;isolation:isolate;border-radius:16px;min-height:470px}.touch-phone #game,.touch-phone #edge-cues{touch-action:none;width:100%;height:100%;position:absolute;top:0;left:0}.touch-phone .stage[data-screen=game] #game,.touch-phone .stage[data-screen=game] #edge-cues,.touch-phone .stage[data-screen=pause] #game,.touch-phone .stage[data-screen=pause] #edge-cues,.touch-phone .stage[data-screen=practice] #game,.touch-phone .stage[data-screen=practice] #edge-cues{height:100%;top:0}.touch-phone .stage[data-screen=game]{background:linear-gradient(#f9f4e9,#e2dcca)}.touch-phone .menu{background:linear-gradient(#fdf8e611 35%,#f6efdcaa 70%)}.touch-phone .menu-content{width:auto;box-shadow:4px 4px 0 var(--ink);background:#fffdf4ed;border-width:2.5px;border-radius:20px;padding:15px;inset:auto 14px 17px}.touch-phone .menu-title-row{gap:8px;margin:5px 0 10px}.touch-phone .menu-badge-icon{width:37px;height:37px}.touch-phone .menu h1{letter-spacing:0;margin:0;font-size:32px;line-height:1.1}.touch-phone .menu h2,.touch-phone .menu-description,.touch-phone .stage-index{display:none}.touch-phone .title-en{letter-spacing:.8px;margin-left:7px;padding:2px 5px;font-size:8px}.touch-phone .menu .eyebrow{letter-spacing:.5px;padding:4px 8px;font-size:10px}.touch-phone .mode-selector{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:8px 0 12px}.touch-phone .mode-card{border-width:2px;border-radius:12px;gap:5px;min-height:52px;padding:8px}.touch-phone .mode-icon{font-size:17px}.touch-phone .mode-info b{white-space:nowrap;font-size:11px}.touch-phone .mode-info small{display:none}.touch-phone .mode-info:after{content:"暂未开放";color:#82776d;font-size:9px}.touch-phone #mode-challenge .mode-info:after{content:"3次机会"}.touch-phone .mode-check{border-width:1.5px;flex:0 0 15px;width:15px;height:15px;font-size:9px;display:flex}.touch-phone .menu-cta-row{flex-wrap:nowrap;gap:8px}.touch-phone .menu .primary{letter-spacing:.5px;border-width:2px;border-radius:13px;flex:1;width:auto;min-height:48px;padding:10px 12px;font-size:13px}.touch-phone .menu-best{border-width:2px;border-radius:10px;flex:0 0 93px;min-width:0;margin:0;padding:6px 8px}.touch-phone .menu-best small{font-size:8px}.touch-phone .menu-best b{font-size:17px}.touch-phone .menu-actions{justify-content:center;margin-top:11px;padding-top:10px}.touch-phone #rank-open{padding:7px 16px;font-size:11px}.touch-phone .amiya-quote{z-index:6;box-shadow:3px 3px 0 var(--ink);transform-origin:bottom;border-width:2.5px;padding:9px 14px;font-size:13px}.touch-phone .hud{background:linear-gradient(#fffaf0ee,#fffaf080,#0000);grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:8px;padding:12px 12px 0;display:grid;inset:0 0 auto}.touch-phone .hud-left,.touch-phone .hud-right,.touch-phone .boss-panel{border-width:2px;border-radius:13px;width:auto;min-width:0;height:auto;min-height:0;max-height:none;padding:8px 10px;box-shadow:2px 2px #231f1d80}.touch-phone .boss-panel{background:#fffdf5e8;grid-area:1/1/auto/-1;align-items:center;gap:9px;height:52px}.touch-phone .boss-avatar{border-radius:9px;flex-basis:34px;width:34px;height:34px}.touch-phone .boss-avatar span{font-size:14px}.touch-phone .boss-label{letter-spacing:.3px;font-size:12px}.touch-phone .boss-label small{font-size:9px}.touch-phone .boss-label b{font-size:15px}.touch-phone .boss-track{height:8px;margin-top:5px}.touch-phone .boss-caption{display:none}.touch-phone .hud-left,.touch-phone .hud-right{align-self:stretch;height:61px}.touch-phone .hud-left-top .overline{font-size:9px}.touch-phone .hud-left-top .overline span,.touch-phone .phase{display:none}.touch-phone .hearts{gap:5px;margin-top:4px}.touch-phone .hearts .heart-pip{font-size:18px}.touch-phone .hearts small{display:none}.touch-phone .hud-score-row{align-items:center;gap:6px}.touch-phone .hud-right .overline{font-size:8px}.touch-phone .score{letter-spacing:1px;margin:0;font-size:21px}.touch-phone .score-ledgers{gap:2px 8px;font-size:8px}.touch-phone .score-ledgers small{display:none}.touch-phone .pause-button{min-height:35px;margin:0;padding:7px 8px;font-size:10px}.touch-phone .pause-button small{display:none}.touch-phone .skill-dock{gap:9px;display:flex;bottom:78px;left:12px;right:12px}.touch-phone .skill-badge{border-width:2px;border-radius:14px;flex:1;gap:8px;width:0;height:56px;min-height:56px;max-height:56px;padding:5px 8px}.touch-phone .skill-ring-wrap{flex:0 0 40px;width:40px;height:40px}.touch-phone .skill-icon-img{width:29px;height:29px}.touch-phone .skill-title-row b{font-size:11px}.touch-phone .skill-title-row kbd{display:none}.touch-phone .skill-state-text,.touch-phone .skill-timer{font-size:10px}.touch-phone .combo-panel{border-width:2px;border-radius:13px;width:43%;height:55px;min-height:55px;max-height:55px;padding:6px 9px;top:auto;bottom:12px;right:12px;transform:none}.touch-phone .combo-label,.touch-phone .combo-footer small{display:none}.touch-phone .combo-header{justify-content:flex-end}.touch-phone .combo-header strong{font-size:9px}.touch-phone .combo-main{gap:5px}.touch-phone .combo-main b{font-size:24px}.touch-phone .combo-main em{font-size:7px}.touch-phone .combo-footer span{font-size:8px}.touch-phone .combo-pips{gap:2px}.touch-phone .combo-pips i{width:9px;height:4px}.touch-phone .touch-guide{color:#4c443c;pointer-events:none;flex-direction:column;justify-content:center;gap:4px;width:48%;height:53px;display:flex;position:absolute;bottom:14px;left:12px}.touch-phone .touch-guide b{font-size:12px}.touch-phone .touch-guide span{font-size:10px}.touch-phone .touch-guide small{color:#817365;font-size:8px}.touch-phone .game-controls{display:none!important}.touch-phone .battle-hint{text-overflow:ellipsis;letter-spacing:.3px;border-width:1.5px;max-width:90%;padding:5px 11px;font-size:10px;inset:auto auto 141px 50%;overflow:hidden;transform:translate(-50%)}.touch-phone .feedback{white-space:normal;width:90%;top:27%}.touch-phone .feedback b{letter-spacing:1px;font-size:23px}.touch-phone .feedback small{font-size:10px}.touch-phone .announcement{letter-spacing:2px;white-space:normal;text-align:center;max-width:92%;font-size:24px;top:40%}.touch-phone .intro{background:#171f24;align-items:center;display:flex}.touch-phone .intro video{object-fit:contain;width:100%;height:100%}.touch-phone #skip-intro{padding:11px 16px;font-size:12px;bottom:24px;right:16px}.touch-phone .modal{z-index:20;padding:18px;position:absolute;inset:0;overflow:auto}.touch-phone .modal-card{border-radius:20px;width:100%;max-width:360px;padding:24px 20px}.touch-phone .modal-card h2{margin:18px 0;font-size:23px}.touch-phone .modal-card p{font-size:12px}.touch-phone .pause-card .primary{width:100%;min-height:48px;font-size:14px}.touch-phone .result-art{background-position:50% 37%;background-repeat:no-repeat;background-size:contain;inset:0}.touch-phone .result{background:#eee8d9}.touch-phone .result-banner{border-width:2px;border-radius:16px;gap:10px;max-width:none;padding:12px;top:56px;left:12px;right:12px}.touch-phone .result-badge{flex:0 0 40px;width:40px;height:40px}.touch-phone .result-banner .eyebrow{letter-spacing:.4px;padding:3px 6px;font-size:8px}.touch-phone .result-banner-text h2{margin:6px 0;font-size:17px;line-height:1.4}.touch-phone .result-banner-text p{font-size:10px;line-height:1.6}.touch-phone .art-view-btn{border-width:2px;min-height:34px;font-size:11px;top:12px;right:12px}.touch-phone .result-dock{border-width:2px;border-radius:18px;grid-template-columns:1fr;gap:12px;padding:14px;display:grid;bottom:16px;left:12px;right:12px}.touch-phone .result-dock-left{gap:5px;width:100%;min-width:0}.touch-phone .result-score{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.touch-phone .result-score small{font-size:8px}.touch-phone .result-score>b{font-size:29px}.touch-phone .result-breakdown{gap:16px;font-size:10px}.touch-phone .result-progress-box{margin-top:3px}.touch-phone .result-progress-label{font-size:9px}.touch-phone .result-stats{border-radius:12px;justify-content:space-between;gap:12px;width:100%;padding:8px 14px}.touch-phone .result-stats b{font-size:18px}.touch-phone .result-stats small{font-size:9px}.touch-phone .result-dock-right{width:100%;min-width:0}.touch-phone .result-dock-right #again{width:100%;min-height:46px;padding:11px 14px;font-size:14px}.touch-phone .result-actions{flex-wrap:wrap;justify-content:center;gap:5px;margin-top:8px}.touch-phone .result-actions .text-button{padding:7px 9px;font-size:9px}.touch-phone #submit-status{margin-top:7px;font-size:9px;line-height:1.6}.touch-phone .ranking-dialog{border-width:2px;border-radius:18px;width:100%;max-width:calc(100vw - 20px);max-height:88dvh;padding:17px}.touch-phone .rank-heading h2{font-size:21px}.touch-phone .rank-filters{grid-template-columns:1fr 1fr;gap:9px;display:grid}.touch-phone .rank-filters label{min-width:0;font-size:10px}.touch-phone .rank-filters select{max-width:100%;padding:10px 6px;font-size:12px}.touch-phone .rank-table th,.touch-phone .rank-table td{padding:10px 6px;font-size:11px}.touch-phone .rank-note{font-size:9px}.touch-phone .pause-button{width:34px;min-width:34px;padding:0;font-size:0}.touch-phone .pause-button:before{content:"Ⅱ";font-size:17px}.touch-phone .announcement{white-space:nowrap;letter-spacing:1px;width:max-content;max-width:88%;padding:12px 18px;font-size:22px;top:31%}.touch-phone{--phone-safe-top:max(env(safe-area-inset-top),var(--toy-safe-top,0px));--phone-safe-bottom:max(env(safe-area-inset-bottom),var(--toy-safe-bottom,0px))}.touch-phone .topbar{padding-top:var(--phone-safe-top)}.touch-phone .stage{height:calc(100dvh - 75px - var(--phone-safe-top) - var(--phone-safe-bottom))}.touch-phone .result-content,.touch-phone .result.lost .result-content{overscroll-behavior:contain;touch-action:pan-y;pointer-events:auto;scrollbar-width:thin;flex-direction:column;gap:80px;padding:56px 12px 16px;display:flex;overflow-y:auto}.touch-phone .result-banner{flex-shrink:0;max-width:100%;position:relative;top:auto;left:auto;right:auto}.touch-phone .result-dock{flex-shrink:0;width:100%;margin-top:auto;position:relative;bottom:auto;left:auto;right:auto}.touch-phone .result.clean-view .result-content{pointer-events:none}.touch-phone .mode-card{gap:5px;padding:8px 7px}.touch-phone .mode-check{flex-basis:13px;width:13px;height:13px;font-size:8px}.touch-phone .menu .primary{gap:6px;font-size:12px}.touch-phone .menu .primary>span:last-child{font-size:18px}.touch-phone .hud-score-row>div{min-width:0}.touch-phone .score{letter-spacing:.4px;white-space:nowrap;font-size:clamp(14px,4.5vw,20px)}.touch-phone .result-score small{flex:0 88px;max-width:88px;line-height:1.5}.touch-phone .result-score>b{letter-spacing:1px;white-space:nowrap;font-size:clamp(24px,7.2vw,31px)}.touch-phone .mode-info b{white-space:nowrap;font-size:11px;line-height:1.4}.touch-phone #mode-challenge .mode-icon{letter-spacing:0;font-size:17px}@media (width<=360px){.touch-phone .title-en{display:none}}.touch-phone .hud-score-row>div{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.touch-phone .score-ledgers>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.touch-phone .touch-guide{width:45%}
