:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1020;--panel:#141b2d;--panel-2:#1b2438;--text:#fff8f2;--muted:#aab4c8;--line:#26324a;--cyan:#27d9d1;--coral:#ff5f7e;--gold:#ff9b71;--green:#45d6a3;--purple:#8b5cf6;--lane-width:minmax(34px, 1fr)}*{box-sizing:border-box}body{background:radial-gradient(circle at 8% -8%, #27d9d11f, transparent 28rem), var(--bg);min-height:100vh;color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,select,input,textarea{font:inherit}button,select{border:0}button{cursor:pointer}#root{min-height:100vh}.app-shell{width:min(1220px,100vw - 32px);min-height:100vh;margin:0 auto;padding:18px 0}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;display:flex}.brand{align-items:center;gap:12px;min-width:0;display:flex}.brand h1,.brand p,.editor-header h2,.editor-header p{margin:0}.brand h1{letter-spacing:-.04em;font-size:clamp(1.45rem,2.4vw,2.15rem);line-height:1}.brand p,.editor-header p,.phase-copy span,.editor-meta label,.metric span{color:var(--muted)}.octo-mark{object-fit:contain;flex:0 0 74px;width:74px;height:74px}.octo-mark:after{content:"";border-bottom:3px solid #111111b3;border-radius:0 0 16px 16px;width:16px;height:8px;position:absolute;top:35px;left:21px}.octo-mark span{background:var(--coral);transform-origin:top;border-radius:999px;width:9px;height:22px;position:absolute;bottom:-12px}.octo-mark span:first-child{left:2px;transform:rotate(35deg)}.octo-mark span:nth-child(2){left:10px;transform:rotate(18deg)}.octo-mark span:nth-child(3){left:19px;transform:rotate(5deg)}.octo-mark span:nth-child(4){left:27px;transform:rotate(-5deg)}.octo-mark span:nth-child(5){left:36px;transform:rotate(-18deg)}.octo-mark span:nth-child(6){left:45px;transform:rotate(-35deg)}.octo-mark span:nth-child(7){background:#d64b9f;bottom:-17px;left:17px}.octo-mark span:nth-child(8){background:#d64b9f;bottom:-17px;left:33px}.view-tabs,.stage-toolbar,.editor-actions,.phase-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tab,.primary-action,.ghost-action,.file-button,.select-label,.record-lanes button{border-radius:8px;min-height:40px}.tab{color:var(--muted);background:var(--panel);border:1px solid #0000;padding:0 16px}.tab.is-active{color:var(--text);background:var(--coral);border-color:#ff5f7e8c}.screen-grid{grid-template-columns:220px minmax(0,1fr);align-items:stretch;gap:16px;display:grid}.score-panel,.stage-wrap,.editor-wrap,.music-wrap,.settings-wrap{border:1px solid var(--line);background:var(--panel);box-shadow:0 18px 48px #0003}.score-panel{border-radius:8px;align-content:start;gap:12px;padding:14px;display:grid}.metric{background:var(--panel-2);border:1px solid #26324ab3;border-radius:8px;padding:12px}.metric span{margin-bottom:5px;font-size:.82rem;display:block}.metric strong{overflow-wrap:anywhere;min-height:31px;font-size:clamp(1.1rem,2vw,1.55rem);line-height:1.15;display:block}.stage-wrap,.editor-wrap,.music-wrap,.settings-wrap{border-radius:8px;min-width:0;padding:14px;display:none}.stage-wrap.is-visible,.editor-wrap.is-visible,.music-wrap.is-visible,.settings-wrap.is-visible{display:block}.music-wrap{min-height:610px;padding:clamp(22px,5vw,64px)}.settings-wrap{min-height:610px;padding:clamp(24px,4vw,54px)}.settings-header{max-width:680px;margin-bottom:24px}.settings-header h2{margin:8px 0 5px;font-size:clamp(1.55rem,3vw,2.3rem)}.settings-header p,.setting-card p{color:var(--muted);margin:0}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.setting-card{border:1px solid var(--line);background:#10182a;border-radius:10px;justify-content:space-between;align-items:center;gap:20px;min-height:120px;padding:18px;display:flex}.setting-card p{margin-top:5px;font-size:.84rem;line-height:1.45}.setting-card-wide{flex-direction:column;grid-column:1/-1;align-items:flex-start}.hand-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;width:100%;display:grid}.hand-options label{border:1px solid var(--line);color:var(--muted);background:var(--panel);cursor:pointer;border-radius:8px;gap:4px;padding:13px;display:grid}.hand-options label.is-selected{border-color:var(--cyan);background:#27d9d114}.hand-options input{opacity:0;position:absolute}.hand-options b{color:var(--text)}.hand-options small{font-family:ui-monospace,monospace}.settings-volume input{width:min(220px,30vw)}.music-hero{background:radial-gradient(circle at 90% 0%, #ff5f7e24, transparent 18rem), var(--panel);border:1px solid #27d9c442;border-radius:12px;justify-items:start;gap:14px;max-width:690px;margin:0 auto;padding:clamp(24px,5vw,52px);display:grid}.eyebrow{color:var(--cyan);letter-spacing:.11em;font-size:.76rem;font-weight:850}.music-hero h2,.music-hero p{margin:0}.music-hero h2{font-size:clamp(1.55rem,4vw,2.6rem);line-height:1.06}.music-hero p,.music-hero small,.import-status{color:var(--muted);line-height:1.55}.music-file-button{min-height:50px;padding:0 20px;font-size:1rem}.music-file-button input{display:none}.music-entry-actions{flex-wrap:wrap;align-items:stretch;gap:9px;display:flex}.demo-song-action{border-color:#ff5f7e66;min-height:50px}.demo-song-action:hover{border-color:var(--coral)}.music-wrap>.song-inspector,.import-status{max-width:690px;margin:20px auto 0}.stage-toolbar{justify-content:space-between;margin-bottom:12px}.phase-panel{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:12px;padding:12px;display:grid}.phase-copy{gap:3px;min-width:0;display:grid}.phase-copy strong,.phase-copy span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.primary-action,.ghost-action,.file-button{color:#111;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-weight:750;display:inline-flex}.primary-action{background:var(--cyan);box-shadow:0 6px 18px #27d9d124}.ghost-action,.file-button{color:var(--text);border:1px solid var(--line);background:var(--panel-2)}button:disabled{cursor:not-allowed;opacity:.48}.select-label{color:var(--muted);background:var(--panel-2);align-items:center;gap:8px;padding-left:12px;display:inline-flex}select{height:40px;color:var(--text);background:var(--panel-2);border-radius:0 8px 8px 0;padding:0 10px}.editor-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.editor-meta label{gap:6px;font-size:.88rem;display:grid}.editor-meta input{border:1px solid var(--line);width:100%;min-height:40px;color:var(--text);background:#0e1525;border-radius:8px;padding:0 10px}.track{grid-template-columns:repeat(8, var(--lane-width));border:1px solid var(--line);background:linear-gradient(#27d9d10f,#0000 28%),#0e1525;border-radius:8px;height:min(70vh,680px);min-height:460px;display:grid;position:relative;overflow:hidden}.lane{border-left:1px solid #26324ab8;position:relative}.lane:first-child{border-left:0}.lane span{z-index:5;width:34px;height:34px;color:var(--bg);background:var(--text);border-radius:8px;place-items:center;font-weight:850;display:grid;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.hit-line{background:var(--cyan);height:4px;position:absolute;bottom:74px;left:0;right:0;box-shadow:0 0 22px #27d9c48c}.note{left:calc((100% / 8) * var(--lane) + 8px);background:linear-gradient(180deg, #ffffff47, transparent 40%), var(--note-color,var(--coral));border-radius:7px;width:calc(12.5% - 16px);height:28px;position:absolute;transform:translateY(-50%);box-shadow:0 8px 18px #00000047}.note.is-hit{animation:.15s ease-out forwards pop}@keyframes pop{to{opacity:0;transform:translateY(-50%)scale(1.35)}}.editor-wrap{min-height:610px}.song-importer{border:1px solid var(--line);background:#27d9c40e;border-radius:8px;margin-bottom:16px;padding:14px}.importer-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.importer-heading h3,.importer-heading p{margin:0}.importer-heading p,.song-track small,details{color:var(--muted)}.song-inspector{gap:10px;margin-top:14px;display:grid}.midi-controls{background:#ff9b7114;border-radius:7px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px;display:flex}.midi-controls label{color:var(--muted);align-items:center;gap:7px;display:flex}.midi-controls small{width:100%;color:var(--muted)}.track-list-detailed .song-track{grid-template-columns:auto auto 1fr;display:grid}.track-legend{color:var(--muted);gap:16px;font-size:.78rem;display:flex}.gameplay-source{border:1px solid var(--line);background:#10182a;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:12px;display:flex}.gameplay-source>strong{margin-right:auto}.gameplay-source label{color:var(--muted);cursor:pointer;align-items:center;gap:6px;display:flex}.gameplay-source input{accent-color:var(--coral)}.gameplay-source small{color:var(--cyan)}.quick-play-panel{background:#27d9d112;border:1px solid #27d9d16b;border-radius:10px;justify-content:space-between;align-items:center;gap:18px;padding:16px;display:flex}.quick-play-panel>div{gap:4px;display:grid}.quick-play-panel span{color:var(--muted);font-size:.84rem}.play-now-action{min-width:170px;min-height:48px}.track-selection{border:1px solid var(--line);background:#0e1525;border-radius:8px;padding:11px}.track-selection summary{cursor:pointer;color:var(--text);font-weight:750}.track-selection .track-list{margin-top:11px}.track-selection .track-legend{margin-top:8px}.song-track em{color:var(--bg);background:var(--cyan);border-radius:999px;margin-left:5px;padding:2px 5px;font-size:.66rem;font-style:normal}.song-track em.warning{color:var(--text);background:var(--danger,#ff5263)}.song-track.is-essence{outline:1px solid #27d9d185}.song-track.is-suspicious{opacity:.72}.analysis-panel{border:1px solid var(--line);background:#0e1525;border-radius:8px;padding:12px}.analysis-panel summary{cursor:pointer;color:var(--text);font-weight:750}.analysis-ranking{gap:8px;margin-top:12px;display:grid}.analysis-ranking article{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:10px}.analysis-ranking article.is-suspicious{border-color:#ff52637a}.analysis-ranking header{color:var(--text);justify-content:space-between;gap:10px;display:flex}.analysis-ranking header>b{color:var(--cyan)}.analysis-ranking p{margin:5px 0 0;font-size:.8rem}.analysis-ranking code{color:var(--muted);white-space:normal;margin-top:7px;font-size:.75rem;display:block}.empty-track-note{color:var(--muted);margin:12px 0 0;font-size:.8rem}.song-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.song-metrics span,.song-track{background:var(--panel-2);border-radius:6px;padding:9px}.song-metrics b,.song-track b,.song-track small{display:block}.song-metrics b{color:var(--muted);text-transform:uppercase;margin-bottom:3px;font-size:.72rem}.track-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:190px;display:grid;overflow:auto}.song-track{cursor:pointer;align-items:flex-start;gap:9px;display:flex}.song-track input{accent-color:var(--cyan);margin-top:3px}details code{max-height:180px;color:var(--text);white-space:pre;background:#0e1525;border-radius:6px;margin-top:8px;padding:10px;display:block;overflow:auto}.editor-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.file-button input{display:none}audio{width:100%;accent-color:var(--cyan);margin-bottom:12px;display:block}.game-audio{grid-column:1/-1;margin:0}.game-audio:not([controls]){display:none}.record-lanes{grid-template-columns:repeat(8,1fr);gap:8px;margin:12px 0;display:grid}.record-lanes button{color:#111;background:var(--gold);font-weight:850}.record-lanes button.is-flash{background:var(--green)}textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:330px;color:var(--text);background:#0e1525;border-radius:8px;padding:12px}@media (width<=820px){.topbar,.editor-header{flex-direction:column;align-items:stretch}.phase-panel,.editor-meta,.song-metrics,.track-list,.screen-grid{grid-template-columns:1fr}.score-panel{grid-template-columns:repeat(4,1fr)}.track{height:62vh;min-height:430px}}@media (width<=560px){.app-shell{width:min(100vw - 18px,1180px);padding-top:10px}.brand p{display:none}.score-panel,.record-lanes{grid-template-columns:repeat(2,1fr)}.stage-toolbar,.editor-actions,.phase-actions{flex-direction:column;align-items:stretch}.primary-action,.ghost-action,.file-button,.select-label{width:100%}.track{min-height:390px}.lane span{width:27px;height:30px;font-size:.82rem}}.app-shell{width:min(96vw,1700px);padding:22px 0 28px}.screen-grid{grid-template-columns:260px minmax(0,1fr);gap:20px}.topbar{padding:0 4px}.brand h1{font-size:clamp(1.65rem,2.5vw,2.35rem)}.brand p{margin-top:4px;font-size:.9rem}.view-tabs{border:1px solid var(--line);background:var(--panel);border-radius:11px;padding:4px}.tab{transition:background .12s,border-color .12s,transform .12s}.tab:hover{border-color:#ff5f7e59;transform:translateY(-1px)}.tab.is-active{box-shadow:0 5px 14px #ff5f7e2b}.score-panel{align-self:start;gap:9px;padding:12px;position:sticky;top:16px}.score-panel:before{content:"PERFORMANCE";color:var(--muted);letter-spacing:.12em;padding:6px 7px 3px;font-size:.7rem;font-weight:800}.metric{min-height:82px;padding:13px}.metric span{align-items:center;gap:7px;margin-bottom:7px;display:flex}.metric span b{color:var(--cyan);font-size:.9rem}.metric:nth-child(2) span b{color:var(--warm)}.metric:nth-child(3) span b{color:var(--purple)}.metric:nth-child(4) span b{color:var(--cyan)}.metric:nth-child(5) span b{color:var(--green)}.metric strong{font-size:clamp(1.35rem,2vw,1.8rem)}.stage-wrap{padding:18px}.stage-toolbar{gap:14px;padding:0 2px}.playback-controls{flex-wrap:wrap;gap:8px;display:flex}.stage-toolbar>.select-label{margin-left:auto}.volume-control{border:1px solid var(--line);min-height:40px;color:var(--muted);background:var(--panel-2);border-radius:8px;align-items:center;gap:8px;padding:0 11px;font-size:.82rem;display:inline-flex}.volume-control input{width:104px;accent-color:var(--cyan);cursor:pointer}.volume-control b{min-width:34px;color:var(--text);text-align:right;font-size:.76rem}.midi-loading{background:#27d9d114;border:1px solid #27d9d16b;border-radius:8px;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;display:flex}.midi-loading div{gap:2px;display:grid}.midi-loading small{color:var(--muted)}.loading-spinner{border:2px solid #27d9d138;border-top-color:var(--cyan);border-radius:50%;flex:0 0 19px;width:19px;height:19px;animation:.7s linear infinite loading-spin}.inline-loading{width:100%;color:var(--cyan);align-items:center;gap:8px;font-size:.8rem;display:flex}@keyframes loading-spin{to{transform:rotate(360deg)}}.primary-action,.ghost-action,.file-button{transition:transform .12s,background .12s,border-color .12s,box-shadow .12s}.primary-action:hover{background:var(--accent-light,#6cebe5);transform:translateY(-1px)}.ghost-action:hover,.file-button:hover{background:var(--surface-hover,#1b2438);border-color:#27d9d180;transform:translateY(-1px)}.stop-action:hover{border-color:var(--danger);color:var(--danger)}.phase-panel{background:#10182a;grid-template-columns:minmax(0,1fr) auto;padding:15px 16px}.phase-copy{gap:5px}.phase-copy strong{font-size:1.08rem}.song-summary{font-size:.88rem;color:var(--text)!important}.song-summary i{color:var(--cyan);padding:0 4px;font-style:normal}.song-status,.audio-status{font-size:.82rem}.chart-metrics{font-size:.78rem;color:var(--warm)!important}.audio-status{color:var(--cyan)!important}.track{background:linear-gradient(#27d9d109,#0000 32%),#0b1020;border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr)) 14px repeat(4,minmax(0,1fr));height:min(74vh,790px);min-height:540px}.track:before{content:"";z-index:1;pointer-events:none;background:#080d19;border-left:1px solid #ff5f7e29;border-right:1px solid #27d9d129;width:14px;position:absolute;top:0;bottom:0;left:calc(50% - 7px)}.lane-0,.lane-2,.lane-5,.lane-7{background:#10182a85}.lane-4{grid-column:6}.lane{transition:background 90ms}.lane.is-pressed{background:#27d9d129!important}.lane span{border:1px solid #fff8f259;border-bottom:4px solid #cfd5df;border-radius:9px;width:43px;height:40px;transition:transform 90ms,background 90ms,box-shadow 90ms;bottom:17px;box-shadow:0 5px #26324a}.lane.is-pressed span{background:var(--cyan);transform:translate(-50%)translateY(4px);box-shadow:0 1px #168b87}.hit-line{background:var(--cyan);height:3px;box-shadow:0 0 12px #27d9d159}.note{z-index:2;left:calc(((100% - 14px) / 8) * var(--lane) + var(--hand-offset) + 8px);border-radius:8px;width:calc(12.5% - 17.75px);height:30px}.countdown-mini{width:28px;height:28px;color:var(--bg);background:var(--cyan);border-radius:50%;place-items:center;font-weight:900;display:grid}.countdown-overlay{z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#0b1020b8;place-content:center;justify-items:center;gap:8px;display:grid;position:absolute;inset:0}.countdown-overlay strong{color:var(--cyan);text-shadow:0 5px 24px #27d9d12e;font-size:clamp(4rem,12vw,9rem);line-height:.9}.countdown-overlay span{color:var(--text);font-weight:750}.hand-mode-left .lane-4,.hand-mode-left .lane-5,.hand-mode-left .lane-6,.hand-mode-left .lane-7,.hand-mode-right .lane-0,.hand-mode-right .lane-1,.hand-mode-right .lane-2,.hand-mode-right .lane-3{opacity:.28}@media (width<=1000px){.screen-grid{grid-template-columns:1fr}.score-panel{grid-template-columns:repeat(4,1fr);position:static}.score-panel:before{grid-column:1/-1}.settings-grid{grid-template-columns:1fr}.setting-card-wide{grid-column:auto}}@media (width>=1001px){.app-shell.view-game{height:100dvh;min-height:680px;padding-top:10px;padding-bottom:10px;overflow:hidden}.view-game .topbar{min-height:62px;margin-bottom:10px}.view-game .octo-mark{width:58px;height:58px}.view-game .brand h1{font-size:2rem}.view-game .screen-grid{height:calc(100dvh - 92px);min-height:588px}.view-game .score-panel{max-height:100%;overflow:auto}.view-game .stage-wrap.is-visible{flex-direction:column;height:100%;min-height:0;padding:12px;display:flex;overflow:hidden}.view-game .stage-toolbar{flex:none;min-height:40px;margin-bottom:8px}.view-game .phase-panel{flex:none;min-height:0;margin-bottom:10px;padding:9px 12px}.view-game .phase-copy{gap:2px}.view-game .phase-copy strong{font-size:1rem}.view-game .song-summary,.view-game .song-status,.view-game .audio-status,.view-game .chart-metrics{font-size:.73rem;line-height:1.15}.view-game .track{flex:auto;height:auto;min-height:0}}@media (width>=1001px) and (height<=760px){.app-shell.view-game{min-height:600px}.view-game .topbar{min-height:50px;margin-bottom:7px}.view-game .octo-mark{width:48px;height:48px}.view-game .brand p{display:none}.view-game .screen-grid{height:calc(100dvh - 77px);min-height:523px}.view-game .phase-panel{margin-bottom:7px;padding-block:7px}}
