:root{--ink:#0b0713;--ink-2:#150c1e;--violet:#3a2648;--ember:#ff9a4d;--lava:#ff4f28;--mint:#7dfcd6;--paper:#f6ede1;--muted:#a291a8;--font:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, -apple-system, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--ink);width:100%;height:100%;color:var(--paper);font-family:var(--font);-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:none;overscroll-behavior:none;margin:0;padding:0;overflow:hidden}#app{background:radial-gradient(120% 80% at 50% 100%,#2a0f18 0%,#0b0713 60%);position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}#game{touch-action:none;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.hud{padding:calc(14px + env(safe-area-inset-top)) clamp(12px, 4vw, 26px) 0;pointer-events:none;opacity:0;transition:opacity .35s;position:absolute;top:0;bottom:auto;left:0;right:0}.hud.is-on{opacity:1}.hud-row{align-items:center;gap:max(8px,min(2.5vw,18px));display:flex}.stat{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;background:#0c07139e;border:1px solid #ff9a4d2e;border-radius:10px;align-items:baseline;gap:4px;padding:6px 10px;transition:border-color .2s,background .2s;display:flex}.stat-right{border-color:#7dfcd629}.stat-label{letter-spacing:.18em;color:var(--muted);font-size:10px}.stat-value{font-variant-numeric:tabular-nums;color:var(--paper);letter-spacing:.02em;font-size:16px;font-weight:700}.stat-unit{color:var(--muted);font-size:10px}.stat.danger{background:#7816088c;border-color:#ff4f28d9;animation:.7s ease-in-out infinite pulse-danger}.stat.danger .stat-value,.stat.danger .stat-label{color:#ffd7a8}@keyframes pulse-danger{0%,to{box-shadow:0 0 #ff4f2800}50%{box-shadow:0 0 18px #ff4f288c}}.track{background:#ffffff14;border-radius:99px;flex:1;min-width:40px;height:6px;position:relative;overflow:hidden}.track-fill{background:linear-gradient(90deg, var(--ember), var(--mint));border-radius:99px;width:0%;height:100%;transition:width .18s linear}.touch{left:0;right:0;bottom:calc(14px + env(safe-area-inset-bottom));pointer-events:none;opacity:0;justify-content:space-between;align-items:flex-end;padding:0 max(8px,min(2.5vw,24px));transition:opacity .3s;display:flex;position:absolute}.touch.is-on{opacity:1;pointer-events:none}.touch:not(.is-on) .tbtn{pointer-events:none}.touch-pad{gap:calc(clamp(16px, 4.5vw, 30px) * var(--ui-gap-scale,1));pointer-events:auto;display:flex}.tbtn{pointer-events:auto;width:calc(clamp(96px, 26vw, 148px) * var(--ui-btn-scale,1));height:calc(clamp(96px, 26vw, 148px) * var(--ui-btn-scale,1));color:#f6ede1d1;font-family:var(--font);font-size:calc(clamp(22px, 6vw, 30px) * var(--ui-btn-scale,1));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);touch-action:none;background:#100a1880;border:1px solid #7dfcd638;border-radius:50%;place-items:center;font-weight:700;transition:transform 80ms,background .12s,border-color .12s;display:grid}.tbtn:active,.tbtn.is-held{color:#fff;background:#7dfcd638;border-color:#7dfcd6d9;transform:scale(.94)}.tbtn-jump{width:calc(clamp(112px, 32vw, 192px) * var(--ui-btn-scale,1));height:calc(clamp(112px, 32vw, 192px) * var(--ui-btn-scale,1));font-size:calc(clamp(20px, 5.4vw, 26px) * var(--ui-btn-scale,1));background:#78280e6b;border-color:#ff9a4d66}.tbtn-jump:active,.tbtn-jump.is-held{background:#ff9a4d6b;border-color:#ffdca0f2}.icon-btn{right:max(12px,min(4vw,26px));top:calc(56px + env(safe-area-inset-top));z-index:25;color:#f6ede199;cursor:pointer;opacity:0;background:#0c07138c;border:1px solid #f6ede129;border-radius:50%;place-items:center;width:34px;height:34px;font-size:14px;transition:color .15s,border-color .15s,opacity .2s;display:grid;position:absolute}.icon-btn.is-on{opacity:1}.icon-btn.is-muted{color:#f6ede147;text-decoration:line-through}.icon-btn.icon-btn-pause{letter-spacing:.5px;color:#f6ede1bf;font-size:10px;left:max(12px,min(4vw,26px));right:auto}.icon-btn.icon-btn-pause:active{background:#ff9a4d4d;border-color:#ffc896cc}.icon-btn:focus{outline:none}.icon-btn:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.icon-btn.icon-btn-editor{top:calc(98px + env(safe-area-inset-top));display:none}.icon-btn.icon-btn-editor.is-on{opacity:1;color:var(--mint);border-color:#7dfcd666;display:grid}.toast{left:50%;top:calc(14px + env(safe-area-inset-top));color:var(--paper);letter-spacing:.06em;opacity:0;pointer-events:none;z-index:30;background:#0c0713eb;border:1px solid #7dfcd666;border-radius:99px;padding:8px 16px;font-size:12px;transition:opacity .2s,transform .2s;position:absolute;transform:translate(-50%,-12px)}.toast.is-on{opacity:1;transform:translate(-50%)}.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:radial-gradient(90% 70% at 50% 55%,#0b07138c,#0b0713e0);place-items:center;padding:24px;animation:.25s both fade-in;display:none;position:absolute;top:0;bottom:0;left:0;right:0}.overlay.is-on{display:grid}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.card{text-align:center;background:linear-gradient(#1e1228eb,#0f0916f2);border:1px solid #ff9a4d38;border-radius:20px;width:min(420px,100%);padding:max(20px,min(5vw,34px)) max(18px,min(5vw,30px));animation:.3s cubic-bezier(.2,.9,.3,1.1) both card-in;box-shadow:0 24px 60px #0009,inset 0 1px #ffffff0f}@keyframes card-in{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:none}}.card-kicker{letter-spacing:.34em;text-transform:uppercase;color:var(--ember);margin:0 0 10px;font-size:11px}.card h1{letter-spacing:.08em;background:linear-gradient(180deg, #fff3e0, var(--ember) 70%, #ff6a2e);color:#0000;filter:drop-shadow(0 2px 14px #ff6a2e59);-webkit-background-clip:text;background-clip:text;margin:0;font-size:max(28px,min(8vw,40px));font-weight:800}.card h2{letter-spacing:.06em;margin:0 0 4px;font-size:max(22px,min(6.4vw,30px))}.card p{color:var(--muted);margin:10px 0 0;font-size:13px;line-height:1.75}.card p.strong{color:var(--paper);font-size:14px}.keys{flex-wrap:wrap;justify-content:center;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:flex}.keys li{letter-spacing:.06em;color:var(--muted);background:#ffffff08;border:1px solid #ffffff17;border-radius:7px;padding:5px 9px;font-size:11px}.keys b{color:var(--mint);font-weight:700}.btn{color:#2a0d05;width:100%;font-family:var(--font);letter-spacing:.16em;cursor:pointer;background:linear-gradient(#ff9a4d,#e0551f);border:1px solid #ffc38c80;border-radius:12px;margin-top:22px;padding:14px 18px;font-size:15px;font-weight:800;transition:transform .1s,filter .15s;box-shadow:0 10px 26px #e0551f52}.btn:hover{filter:brightness(1.07)}.btn:active{transform:translateY(2px)scale(.99)}.btn.ghost{color:var(--paper);box-shadow:none;letter-spacing:.1em;background:#ffffff0a;border-color:#ffffff24;margin-top:10px;font-weight:600}.btn.ghost.danger{color:#ff9a86;background:#ff4f2814;border-color:#ff6b5a61}.btn.ghost.danger:hover{background:#ff4f282e}.result-grid{justify-content:center;gap:10px;margin-top:18px;display:flex}.result-cell{background:#ffffff0a;border:1px solid #ffffff12;border-radius:10px;flex:1;padding:10px 8px}.result-cell span{letter-spacing:.16em;color:var(--muted);font-size:10px;display:block}.result-cell strong{font-variant-numeric:tabular-nums;color:var(--mint);margin-top:4px;font-size:17px;display:block}.record-line{letter-spacing:.14em;color:var(--muted);margin:14px 0 0;font-size:12px}.record-line b{color:var(--mint);letter-spacing:.02em;font-variant-numeric:tabular-nums;font-size:16px}.new-record{letter-spacing:.24em;color:var(--ember);text-shadow:0 0 14px #ff9a4d8c;margin:10px 0 0;font-size:12px;font-weight:700}
