*{box-sizing:border-box;margin:0;padding:0}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{color:#e8ebf7;background:#05060a;font-family:Segoe UI,system-ui,sans-serif;overflow:hidden}#app,.screen,.playwrap{width:100vw;height:100vh}.screen{padding:24px;overflow-y:auto}button{color:#e8ebf7;cursor:pointer;background:#1b2136;border:1px solid #333b58;border-radius:8px;padding:8px 14px;font-size:14px}button:hover{background:#262e4c}button.primary{background:#2d47c9;border-color:#4a63e6}button.primary:hover{background:#3a55e0}button.danger{color:#ff8a9a;border-color:#8b2635}input,select{color:#e8ebf7;background:#10131f;border:1px solid #333b58;border-radius:6px;padding:6px 8px;font-size:14px}.home-head{text-align:center;padding:24px 0 16px}.home-head h1{letter-spacing:3px;background:linear-gradient(135deg,#fff 20%,#7a8cff 60%,#b14cff);color:#0000;filter:drop-shadow(0 0 24px #7a8cff59);-webkit-background-clip:text;background-clip:text;font-size:46px;font-weight:900}.tagline{color:#8a93bd;margin:8px 0 16px}.home-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.song-list{flex-direction:column;gap:12px;max-width:860px;margin:24px auto;display:flex}.song-card{background:#10131f;border:1px solid #232a44;border-radius:12px;align-items:center;gap:14px;padding:12px 16px;display:flex}.cover{object-fit:cover;border-radius:8px;width:56px;height:56px}.cover.placeholder{background:#1b2136;justify-content:center;align-items:center;font-size:26px;display:flex}.song-info{flex:1;min-width:0}.song-title{text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:600;overflow:hidden}.song-artist{color:#8a93bd;font-size:13px}.song-best{color:#ffdc00;margin-top:2px;font-size:13px}.song-btns{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}#empty-hint{text-align:center;color:#8a93bd;margin-top:40px}.playwrap{position:relative}#gl{width:100%;height:100%;display:block}.hud{pointer-events:none;justify-content:space-between;align-items:flex-start;padding:14px 20px;display:flex;position:absolute;top:0;left:0;right:0}.hud-left{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0d188c;border:1px solid #5a64a059;border-radius:12px;align-items:center;gap:10px;padding:8px 14px;display:flex}#diff-badge{letter-spacing:1px;background:linear-gradient(135deg,#2d47c9,#7a2be2);border-radius:6px;padding:2px 9px;font-size:12px;font-weight:700}.hud-right{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0d188c;border:1px solid #5a64a059;border-radius:12px;min-width:170px;padding:6px 16px}#score{text-align:right;letter-spacing:1px;background:linear-gradient(#fff,#9fb0ff);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:32px;font-weight:800}#combo{color:#ffdc00;text-align:right;min-height:20px;font-size:15px;font-weight:600}#sp-meter{background:#141828;border:1px solid #333b58;border-radius:5px;height:10px;margin-top:6px;position:relative;overflow:visible}#sp-fill{background:linear-gradient(90deg,#1f6feb,#3fd6ff);border-radius:5px;width:0%;height:100%;transition:width .15s linear}#sp-fill.ready{animation:.8s ease-in-out infinite sp-pulse;box-shadow:0 0 10px #3fd6ff}#sp-fill.active{background:linear-gradient(90deg,#3fd6ff,#b7f4ff);box-shadow:0 0 16px #3fd6ff}@keyframes sp-pulse{50%{box-shadow:0 0 18px #3fd6ff}}#sp-label{color:#3fd6ff;white-space:nowrap;font-size:11px;position:absolute;top:12px;right:0}.result-stars{color:#ffdc00;letter-spacing:6px;text-shadow:0 0 16px #ffdc0066;font-size:34px}#judgment{letter-spacing:3px;opacity:0;pointer-events:none;font-size:40px;font-weight:900;position:absolute;top:36%;left:50%;transform:translate(-50%)}#judgment.show{animation:.5s ease-out pop}#judgment.perfect{color:#5dff77;text-shadow:0 0 18px #2ecc40,0 0 40px #2ecc4088,0 2px 8px #000}#judgment.good{color:#ffe95e;text-shadow:0 0 18px #ffdc00,0 0 40px #ffdc0066,0 2px 8px #000}#judgment.miss{color:#ff6a5e;text-shadow:0 0 18px #ff4136,0 2px 8px #000}#fps{color:#626b93;pointer-events:none;text-shadow:0 1px 3px #000;font-family:monospace;font-size:12px;position:absolute;bottom:12px;right:14px}.vignette{pointer-events:none;background:radial-gradient(at 50% 45%,#0000 55%,#0000058c 100%);position:absolute;inset:0}@keyframes pop{0%{opacity:1;transform:translate(-50%)scale(1.3)}70%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0}}#countdown{text-shadow:0 2px 14px #000;font-size:72px;font-weight:800;position:absolute;top:30%;left:50%;transform:translate(-50%)}#keyhint{color:#8a93bd;text-shadow:0 1px 4px #000;pointer-events:none;font-size:13px;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.overlay{background:#030408d1;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}.overlay h2{font-size:30px}.overlay button{min-width:200px;font-size:16px}.bigscore{color:#ffdc00;font-size:46px;font-weight:800}.hidden{display:none!important}.editor{flex-direction:column;height:100vh;display:flex}.ed-toolbar{background:#0b0e18;border-bottom:1px solid #1c2338;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.ed-toolbar label{color:#8a93bd;align-items:center;gap:4px;font-size:13px;display:flex}.ed-toolbar input[type=number]{width:86px}#ed-name{width:180px}#ed-artist{width:140px}#ed-status{color:#ffdc00;margin-left:auto;font-size:13px}.ed-upload{text-align:center;padding:30px}.ed-upload p{color:#8a93bd;margin-bottom:12px}.ed-scroll{background:#0b0e18;flex:1;position:relative;overflow:auto hidden}.ed-inner{height:100%;position:relative}#ed-wave{pointer-events:none}#ed-grid{cursor:crosshair;display:block;position:sticky;left:0}.ed-help{color:#626b93;background:#0b0e18;border-top:1px solid #1c2338;padding:6px 12px;font-size:12px}
