:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d1017;--panel:#151a24;--panel-2:#1c2230;--border:#2a3242;--text:#dfe4ee;--muted:#8f9ab3;--accent:#4fb3ff;--accent-2:#ffcf33;--selected:#1d3448;--danger:#ff6b6b;--radius:10px;--d1:#5fd3ff;--d2:#6ad26a;--d3:#f2c94c;--d4:#ff6b7d;--d5:#b57cff;--d6:#e9d5ff;--d7:#ff8fd1;font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:6px 12px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#06121f;font-weight:600}input[type=text],input[type=password],input[type=search],select,textarea{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:7px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.container{max-width:1200px;margin:0 auto;padding:0 16px}.muted{color:var(--muted)}.error{color:var(--danger)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.site-header{border-bottom:1px solid var(--border);background:var(--panel)}.site-header .container{align-items:center;gap:16px;height:56px;display:flex}.brand{color:var(--text);font-size:18px;font-weight:700}.site-header nav{align-items:center;gap:12px;margin-left:auto;display:flex}.site-footer{border-top:1px solid var(--border);color:var(--muted);margin-top:48px;padding:20px 0 32px;font-size:13px}.site-footer p{margin:4px 0}main.container{padding-top:20px}.diff{text-align:center;color:#0d1017;border-radius:6px;min-width:2.6em;padding:1px 6px;font-size:12px;font-weight:700;display:inline-block}.diff-1{background:var(--d1)}.diff-2{background:var(--d2)}.diff-3{background:var(--d3)}.diff-4{background:var(--d4)}.diff-5{background:var(--d5)}.diff-6{background:var(--d6)}.diff-7{background:var(--d7)}.search-bar{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.search-bar input{flex:1;min-width:200px}.chart-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.chart-card{color:var(--text);align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.chart-card-info{flex:1;min-width:0}.chart-cover{background:var(--bg);border-radius:6px;flex:0 0 72px;width:72px;height:72px;overflow:hidden}.chart-cover img{object-fit:contain;width:100%;height:100%;display:block}.chart-cover-fallback{height:100%;color:var(--muted);place-items:center;font-size:28px;display:grid}.chart-card:hover{border-color:var(--accent);text-decoration:none}.chart-card .title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.chart-card .artist{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.chart-card .levels{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.chart-filters{min-width:0;margin-bottom:16px;padding:12px}.chart-filters summary{cursor:pointer}.filter-fields{flex-wrap:wrap;align-items:end;gap:12px;margin-top:12px;display:flex}.filter-fields>label{flex-direction:column;gap:4px;font-size:13px;display:flex}.filter-fields .filter-check{flex-direction:row;align-self:center;align-items:center}.filter-multi{flex:200px;min-width:0;max-width:100%}.filter-multi summary{border:1px solid var(--border);border-radius:6px;padding:6px 10px}.filter-options{flex-direction:column;gap:6px;max-height:260px;padding-top:8px;display:flex;overflow-y:auto}.filter-options label{overflow-wrap:anywhere;align-items:baseline;gap:6px;display:flex}.filter-fields input[type=checkbox]{flex:none}.chart-meta,.matched-alias{overflow-wrap:anywhere;margin-top:4px;font-size:12px}.type-badge,.alias-chip{border:1px solid var(--border);border-radius:6px;align-items:center;gap:4px;padding:1px 6px;font-size:12px;display:inline-flex}.song-aliases{margin-top:10px;font-size:13px}.alias-list,.alias-form{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.alias-chip{overflow-wrap:anywhere;min-width:0;max-width:100%}.alias-chip button{border:0;flex:none;padding:0 4px}.alias-form{margin-top:8px}.alias-form input{flex:160px;min-width:0}@media (max-width:600px){.search-bar input{width:0;min-width:0}.filter-fields>label{max-width:100%}.filter-fields select{min-width:0;max-width:100%}.filter-multi{flex-basis:100%}.chart-grid{grid-template-columns:minmax(0,1fr)}.chart-card{min-width:0}.song-head h1,.song-head>.muted{overflow-wrap:anywhere}}.pager{justify-content:center;align-items:center;gap:8px;margin-top:20px;display:flex}.song-head h1{margin:0;font-size:22px}.diff-tabs{flex-wrap:wrap;gap:6px;margin:12px 0;display:flex}.diff-tabs button.active{border-color:var(--accent);background:var(--selected)}.song-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:20px;display:grid}@media (max-width:900px){.song-layout{grid-template-columns:minmax(0,1fr)}}.player-box{padding:12px}.player-box canvas{aspect-ratio:1;touch-action:none;width:100%;display:block}.timeline{height:28px;margin-top:6px;position:relative}.timeline input[type=range]{width:100%;margin:0;position:absolute;inset:0}.timeline .marker{background:var(--accent-2);pointer-events:none;border-radius:2px;width:3px;height:8px;position:absolute;top:0;transform:translate(-1px)}.notes-panel{flex-direction:column;gap:10px;max-height:calc(100vh - 120px);padding:12px;display:flex;position:sticky;top:16px}.notes-panel h2{margin:0;font-size:16px}.compose textarea{resize:vertical;width:100%;min-height:70px}.compose .row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:13px;display:flex}.form-card{flex-direction:column;gap:12px;max-width:380px;margin:40px auto;padding:24px;display:flex}.form-card h1{margin:0 0 4px;font-size:20px}.form-card label{flex-direction:column;gap:4px;font-size:14px;display:flex}.stage{position:relative}.canvas-lock{z-index:2;color:#dfe4ee;background:#151a24e6;border-color:#526179;border-radius:9px;place-items:center;width:36px;height:36px;padding:0;display:grid;position:absolute;top:10px;right:10px}.canvas-lock[aria-pressed=true]{color:#8fd0ff;background:#17334ee6;border-color:#4fb3ff}.tutorial{flex-direction:column;gap:10px;display:flex}.tutorial .progress{color:var(--muted);font-size:13px}.tutorial h3{margin:0;font-size:18px}.tutorial .text{white-space:pre-wrap;line-height:1.7}.tutorial .buttons{flex-wrap:wrap;gap:6px;display:flex}.step-dots{flex-wrap:wrap;gap:4px;display:flex}.step-dots button{width:22px;height:22px;padding:0;font-size:11px}.step-dots button.current{background:var(--accent);color:#06121f}button.liked{border-color:var(--danger);color:var(--danger)}.scene-overlay{pointer-events:none;position:absolute;inset:0;overflow:hidden;container-type:size}.scene-overlay svg{width:100%;height:100%;position:absolute;inset:0}.scene-text{white-space:pre-wrap;word-break:break-word;-webkit-user-select:none;user-select:none;border-radius:.4em;padding:.4em .7em;line-height:1.45;position:absolute}.scene-text.bg-card{background:#080a10d1;border:1px solid #ffffff1f}.scene-text.bg-solid{background:#0d1017}.scene-text.bg-none{text-shadow:0 0 6px #000,0 0 2px #000}.scene-text.selected{outline:2px dashed #4fb3ff!important}.player-box.theater{z-index:50;background:#05070b;border:none;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:12px;display:flex;position:fixed;inset:0}.player-box.theater .stage{aspect-ratio:1;height:min(100vh - 160px,100vw - 24px)}.player-box.theater .stage canvas{width:100%;height:100%}.player-box.theater .timeline,.player-box.theater .time-row,.player-box.theater .controls,.player-box.theater .settings,.player-box.theater .notice{display:none}.show-bar{flex-direction:column;gap:8px;width:min(900px,100%);display:flex}.show-bar .row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.show-bar .title{color:var(--muted);margin-right:auto;font-size:14px}.legend{gap:14px;font-size:13px;display:flex}.legend i{vertical-align:-1px;border-radius:50%;width:12px;height:12px;display:inline-block}.lab{flex-direction:column;gap:12px;margin-bottom:32px;display:flex}.lab-top{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.lab-main{grid-template-columns:minmax(280px,520px) 1fr;align-items:start;gap:16px;display:grid}@media (max-width:860px){.lab-main{grid-template-columns:1fr}}.lab-stage{flex-direction:column;gap:8px;display:flex}.lab-board{aspect-ratio:1;-webkit-user-select:none;user-select:none;width:100%;display:block}.lab-sensor{cursor:pointer}.lab-sensor:hover{stroke:#fff9;stroke-width:.05px}.lab-label{text-anchor:middle;dominant-baseline:middle;fill:#ffffff8c;font-size:.24px}.lab-label-order{fill:#fff;font-size:.26px;font-weight:700}.lab-hand-label{text-anchor:middle;dominant-baseline:central;fill:#fff;pointer-events:none;font-size:.4px;font-weight:700}.lab-transport{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.lab-legend{flex-wrap:wrap;gap:4px 14px;font-size:13px;display:flex}.lab-legend i{vertical-align:-1px;box-sizing:border-box;border-radius:3px;width:12px;height:12px;display:inline-block}.lab-side{flex-direction:column;gap:12px;min-width:0;display:flex}.lab-result{flex-direction:column;gap:6px;padding:12px;display:flex}.lab-ok{color:#5adc82;font-weight:700}.lab-wait{color:var(--accent-2)}.lab-queue{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.lab-chip{background:#4fb3ff33;border:2px solid #0000;border-radius:999px;padding:2px 8px;font-size:13px}.lab-chip.on{background:#ffcf3373}.lab-chip.head{border-color:#fff}.lab-chip.cleared{color:var(--muted);background:#5adc8233}.lab-chip.must:not(.head){border-color:#ffa030}.lab-editor{padding:12px;overflow-x:auto}.lab-editor table{border-collapse:collapse;width:100%}.lab-editor th,.lab-editor td{text-align:left;white-space:nowrap;border-bottom:1px solid var(--border);padding:4px 6px}.lab-editor tr.current{background:#4fb3ff14}.lab-cell{cursor:pointer;border-radius:6px}.lab-cell.selected{outline:2px solid var(--accent);outline-offset:-2px}.lab-spot{background:var(--panel-2);border-radius:4px;min-width:3.5em;padding:1px 6px;font-family:ui-monospace,monospace;display:inline-block}.lab-spot.empty{color:var(--muted);font-family:inherit}.lab-hand-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.lab-step-no{min-width:2.2em}.lab-row-tools button{padding:2px 6px}.lab-editor-tools{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.lab-size{display:inline-flex}.lab-size button{border-radius:0;padding:1px 7px}.lab-size button:first-child{border-radius:6px 0 0 6px}.lab-size button:last-child{border-radius:0 6px 6px 0;margin-left:-1px}.lab-size button.on{background:var(--accent);border-color:var(--accent);color:#0b0e14}.score-open{margin:0 0 12px;font-size:13px}.score-dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:min(880px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--text);overscroll-behavior:contain;padding:16px;overflow:auto}.score-dialog::backdrop{background:#0009}.hit-mixer{width:min(560px,100vw - 32px);max-height:min(760px,100dvh - 40px);color:var(--text);background:var(--panel);border:1px solid var(--border);overscroll-behavior:contain;border-radius:14px;padding:0;overflow:auto;box-shadow:0 20px 80px #07122540}.hit-mixer::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#101b2c80}.hit-mixer-head,.hit-mixer-foot{background:var(--panel);z-index:1;align-items:center;gap:12px;padding:14px 20px;display:flex;position:sticky}.hit-mixer-head{border-bottom:1px solid var(--border);top:0}.hit-mixer-head h2{margin:0;font-size:18px}.hit-mixer-head button{width:32px;height:32px;margin-left:auto;padding:0;font-size:21px;line-height:1}.hit-mixer>p{margin:14px 20px;font-size:12px;line-height:1.7}.hit-mixer-list{padding:0 20px}.hit-mixer-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(145px,1fr) minmax(120px,1fr) auto;align-items:center;gap:12px;padding:11px 0;display:grid}.hit-mixer-row:last-child{border-bottom:0}.hit-mixer-row label{overflow-wrap:anywhere;font-size:12px}.hit-mixer-row>button{padding:5px 9px;font-size:12px}.hit-mixer-slider{align-items:center;gap:8px;min-width:0;display:flex}.hit-mixer-slider input{width:100%;min-width:0;accent-color:var(--accent);margin:0}.hit-mixer-slider output{text-align:right;font-variant-numeric:tabular-nums;min-width:3.5em;color:var(--muted);font-size:12px}.hit-mixer-foot{border-top:1px solid var(--border);justify-content:space-between;bottom:0}.hit-mixer-foot button{padding:7px 13px;font-size:13px}.hit-mixer-open{align-self:flex-start;padding:5px 10px;font-size:12px}@media (max-width:480px){.hit-mixer-head,.hit-mixer-foot{padding-left:16px;padding-right:16px}.hit-mixer-list{padding:0 16px}.hit-mixer>p{margin-left:16px;margin-right:16px}.hit-mixer-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:9px 0}.hit-mixer-row label{grid-column:1}.hit-mixer-slider{grid-area:2/1}.hit-mixer-row>button{grid-area:1/2/3}}.score-head{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:8px;margin:-16px -16px 12px;padding:12px 16px;display:flex;position:sticky;top:-16px}.score-head h2{margin:0;font-size:16px}.score-head button{margin-left:auto;padding:2px 10px;font-size:18px;line-height:1}.score-dialog h3{margin:18px 0 8px;font-size:14px}.score-sum,.score-note{margin:8px 0;font-size:12px}.score-counts{flex-wrap:wrap;gap:6px;display:flex}.score-counts span{border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:2px 8px;font-size:12px}.score-counts b{color:var(--text)}.score-scroll{overflow-x:auto}.score-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.score-table th,.score-table td{border:1px solid var(--border);text-align:right;white-space:nowrap;padding:5px 8px}.score-table thead th,.score-table tbody th{text-align:left;background:var(--panel-2);font-weight:600}.score-table th:first-child{z-index:1;position:sticky;left:0}.score-table small{color:var(--muted);font-size:11px;font-weight:400;display:block}.score-table td.ok{color:var(--muted)}.score-table td[colspan]{text-align:center}.score-readout{pointer-events:none;text-align:center;text-shadow:0 2px 6px #000000e6;flex-direction:column;align-items:center;gap:2px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.score-readout .head{letter-spacing:.12em;color:var(--muted);font-size:clamp(9px,1.6cqw,13px)}.score-readout .value{font-variant-numeric:tabular-nums;color:var(--text);font-size:clamp(20px,5cqw,44px);font-weight:700;line-height:1.1}.score-readout.dx .head,.score-readout.dx .value{color:var(--accent-2)}.stage{container-type:inline-size}.explanation-track{--lane-h:22px;height:calc(var(--lanes) * var(--lane-h));margin-top:8px;position:relative}.explanation-track .bubble{top:calc(var(--lane) * var(--lane-h));height:calc(var(--lane-h) - 4px);border:1px solid var(--accent);min-width:30px;color:var(--text);text-align:left;background:#16283a;border-radius:999px;padding:0 6px;font-size:11px;position:absolute;overflow:hidden}.explanation-track .bubble span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.explanation-track .bubble.mine{border-color:var(--accent-2)}.explanation-track .bubble.private{opacity:.8;border-style:dashed}.explanation-track .bubble.selected{background:var(--accent);color:#06121f}@media (pointer:coarse){.explanation-track{--lane-h:44px}.explanation-track .bubble{font-size:13px}}.author-chips{flex-wrap:wrap;gap:6px;display:flex}.author-chips button{border-radius:999px;padding:4px 10px;font-size:13px}.author-chips button.active{border-color:var(--accent);background:var(--selected)}.explanation-list{flex-direction:column;gap:4px;min-height:0;display:flex;overflow-y:auto}.explanation-row{text-align:left;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;font-size:13px;display:grid}.explanation-row .time{color:var(--accent-2);font-variant-numeric:tabular-nums}.explanation-row .label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.explanation-row .muted{grid-column:2;font-size:12px}.explanation-row.selected{border-color:var(--accent);background:#16283a}.explanation-card{border-color:var(--accent);flex-direction:column;gap:8px;padding:12px;display:flex}.explanation-card .head{align-items:flex-start;gap:8px;display:flex}.explanation-card .head strong{flex:1;font-size:15px}.explanation-card .close{padding:0 10px;font-size:18px;line-height:1.6}.explanation-card .facts{font-size:12px}.explanation-card .texts p{white-space:pre-wrap;margin:0 0 4px;line-height:1.6}.explanation-card .actions{flex-wrap:wrap;gap:6px;display:flex}.explanation-card input{width:100%}@media (max-width:900px){.explanation-card{z-index:40;border-radius:12px 12px 0 0;max-height:60vh;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -8px 24px #00000080}.explanation-card .actions button{min-height:44px}}.explanation-bar .progress{background:var(--panel-2);border-radius:3px;height:6px;position:relative;overflow:hidden}.explanation-bar .progress .fill{background:var(--accent);position:absolute;top:0;bottom:0;left:0}.explanation-bar .progress .freeze{background:repeating-linear-gradient(45deg,#ffcf3373 0 4px,#0000 4px 8px);position:absolute;top:0;bottom:0}.explanation-bar .end-bar{border:1px solid var(--accent-2);background:#1f1a0c;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.explanation-bar .end-bar .title{margin-right:auto;font-size:14px}.explanation-bar button{min-height:36px}@media (pointer:coarse){.explanation-bar button{min-height:44px}}@media (max-width:600px){.explanation-bar .row .title,.explanation-bar .end-bar .title{flex-basis:100%}}.explanation-panel .write{border-color:var(--accent-2)}.player-box.theater.editor{justify-content:flex-start;gap:8px;padding:8px}.player-box.theater.editor .stage{height:min(50vh,100vw - 16px)}.overlay-slot{position:absolute;inset:0}.player-box.editor .footer-slot{flex-direction:column;flex:1;width:min(900px,100%);min-height:0;display:flex}@media (min-width:900px){.player-box.theater.editor{grid-template-columns:auto minmax(340px,480px);justify-content:center;align-items:start;gap:16px;padding:12px;display:grid}.player-box.theater.editor .stage{height:min(100vh - 24px,100vw - 530px)}.player-box.editor .footer-slot{width:auto;height:calc(100vh - 24px)}}.explanation-editor{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.explanation-editor .drawer{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex;overflow-y:auto}.pending-bar{border:1px solid var(--accent-2);background:#1f1a0c;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.pending-bar span{margin-right:auto}.note-row{align-items:center;gap:6px;display:flex}.note-row button{min-height:44px}.note-row .time{font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.field-group{flex-direction:column;gap:6px;display:flex}.field-row{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.field-row button.active{border-color:var(--accent);background:var(--selected)}.editor-field{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.muted.small{margin:0;font-size:12px}.ink{vertical-align:-1px;border-radius:50%;width:10px;height:10px;display:inline-block}.action-bar{flex-shrink:0;gap:4px;display:flex;overflow-x:auto}.action-bar button{flex-direction:column;flex:1 0 auto;justify-content:center;align-items:center;gap:2px;min-width:56px;min-height:52px;padding:4px;font-size:12px;display:flex}.action-bar button b{font-size:16px;line-height:1}.action-bar button b i{border-radius:50%;width:8px;height:8px;margin:0 1px;display:inline-block}.action-bar button.active{border-color:var(--accent-2);background:#2a2410}.mini-tl{flex-direction:column;flex-shrink:0;gap:3px;display:flex}.mini-tl .axis{background:var(--panel-2);cursor:pointer;touch-action:none;border-radius:6px;height:28px;position:relative;overflow:hidden}.mini-tl .axis.slowed{background:#183247}.mini-tl .freeze{background:repeating-linear-gradient(45deg,#ffcf3366 0 4px,#0000 4px 8px);position:absolute;top:0;bottom:0}.mini-tl .tick{background:#ffffff59;width:1px;position:absolute;top:18px;bottom:0}.mini-tl .playhead{background:var(--accent-2);width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.mini-tl .rows{flex-direction:column;gap:2px;max-height:100px;display:flex;overflow-y:auto}.mini-tl .row{height:18px;position:relative}.mini-tl .row.picked{height:32px}.mini-tl .bar{border:1px solid var(--accent);white-space:nowrap;cursor:pointer;touch-action:none;background:#16283a;border-radius:4px;padding:0 4px;font-size:11px;position:absolute;top:2px;bottom:2px;overflow:hidden}.mini-tl .row.picked .bar{background:var(--accent);color:#06121f;cursor:grab}.mini-tl .handle{cursor:ew-resize;touch-action:none;width:20px;margin-left:-10px;position:absolute;top:0;bottom:0}.mini-tl .handle:after{content:"";background:var(--accent-2);border-radius:2px;width:4px;position:absolute;top:4px;bottom:4px;left:8px}@media (pointer:coarse){.mini-tl .axis{height:36px}.mini-tl .handle{width:32px;margin-left:-16px}.mini-tl .handle:after{left:14px}}.scene-overlay.editing{pointer-events:auto;touch-action:none}.scene-overlay.pending{cursor:crosshair}.scene-overlay.editing .scene-text{cursor:move;outline:1px dashed #ffffff4d}.scene-text .grip{color:#06121f;cursor:move;touch-action:none;background:#4fb3ff;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex;position:absolute;top:-12px;left:-12px}.scene-text .editable{cursor:text;-webkit-user-select:text;user-select:text;outline:none;min-height:1.45em}.scene-text .editable:empty:before{content:attr(data-placeholder);color:#fff6}.rhythm-strip{background:#05070b;border:1px solid #3a3320;border-radius:10px;margin-top:8px;position:relative;overflow:hidden}.rhythm-strip canvas{cursor:grab;touch-action:pan-y;width:100%;height:96px;display:block}.rhythm-strip canvas:active{cursor:grabbing}.rhythm-strip .zoom{gap:2px;display:flex;position:absolute;bottom:4px;left:4px}.rhythm-strip .zoom button{opacity:.75;width:26px;height:22px;padding:0;font-size:13px;line-height:1}@media (pointer:coarse){.rhythm-strip .zoom button{width:36px;height:30px}}.time-row{font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;font-size:12px;display:flex}.time-row .fine{color:var(--accent-2)}.controls{justify-content:center;gap:8px;margin-top:8px;display:flex}.controls button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;min-width:76px;min-height:44px}.controls .play{min-width:120px}.controls .shuttle{letter-spacing:-2px;min-width:52px}.settings{grid-template-columns:minmax(0,1fr);gap:8px;margin-top:12px;font-size:13px;display:grid}.settings-group{border:1px solid var(--border);background:var(--panel-2);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.settings-group h3{color:var(--muted);margin:0;font-size:12px;font-weight:600}.setting{align-items:center;gap:10px;min-height:36px;display:flex}.setting .name{color:var(--muted);flex:0 0 5.5em;align-items:center;gap:6px;display:flex}.setting>:last-child:not(.name){flex:1;min-width:0}.setting select{max-width:100%}.settings-group .hint{color:var(--muted);margin:-4px 0 0;font-size:12px}.segmented{border:1px solid var(--border);border-radius:8px;display:flex;overflow:hidden}.segmented button{font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:0;flex:1;min-width:0;min-height:34px;padding:4px 2px;font-size:12px}.segmented button+button{border-left:1px solid var(--border)}.segmented button[aria-pressed=true]{background:var(--accent);color:#06121f;font-weight:600}.stepper{align-items:center;gap:4px;display:flex}.stepper button{width:36px;min-height:34px;padding:0;font-size:16px}.stepper input{text-align:center;width:4.5em}.volume{align-items:center;gap:8px;display:flex}.volume input{min-width:0;accent-color:var(--accent);flex:1}.volume output{text-align:right;font-variant-numeric:tabular-nums;width:3em}.file-button{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:8px;align-items:center;min-height:34px;padding:4px 12px;display:inline-flex;position:relative;overflow:hidden}.file-button span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.file-button input{opacity:0;cursor:pointer;position:absolute;inset:0}.toggles{flex-wrap:wrap;gap:6px;display:flex}.toggle{min-height:34px;color:var(--muted);font-size:13px}.toggle[aria-pressed=true]{border-color:var(--accent);background:var(--selected);color:var(--text)}.notice{color:var(--muted);margin:8px 0 0;font-size:12px}@media (pointer:coarse){.notice .keys{display:none}}@media (max-width:600px){.song-layout>.player-box{border-left:0;border-right:0;border-radius:0;margin:0 -16px;padding:8px}.diff-tabs{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.diff-tabs button{white-space:nowrap;text-overflow:ellipsis;text-align:left;min-width:0;min-height:40px;overflow:hidden}}@media (min-width:901px){.song-layout>.player-box:not(.theater) .stage{width:min(100%,max(420px,100vh - 150px));margin:0 auto}.settings{grid-template-columns:minmax(0,1.15fr) minmax(0,1.15fr) minmax(0,.9fr);align-items:start}.settings-group:first-child .setting{flex-direction:column;align-items:stretch;gap:4px}.settings-group:first-child .setting .name{flex:none}.stepper{align-self:flex-start}}.rhythm-drawer{flex-direction:column;align-items:center;display:flex}.rhythm-drawer .body{opacity:0;grid-template-rows:0fr;width:100%;transition:grid-template-rows .32s cubic-bezier(.2,.8,.2,1),opacity .2s;display:grid}.rhythm-drawer.open .body{opacity:1;grid-template-rows:1fr}.rhythm-drawer .inner{min-height:0;overflow:hidden}.rhythm-drawer .inner>*{transition:transform .32s cubic-bezier(.2,.8,.2,1);transform:translateY(-12px)}.rhythm-drawer.open .inner>*{transform:none}.rhythm-drawer .handle{min-height:26px;color:var(--muted);background:0 0;border-radius:999px;align-items:center;gap:6px;margin-top:6px;padding:2px 14px;font-size:12px;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.rhythm-drawer .handle:hover{color:var(--text);background:var(--panel-2)}.rhythm-drawer.open .handle{color:var(--accent-2);border-color:#3a3320}.rhythm-drawer .chevron{transition:transform .32s cubic-bezier(.2,.8,.2,1)}.rhythm-drawer.open .chevron{transform:rotate(180deg)}@media (pointer:coarse){.rhythm-drawer .handle{min-height:36px;padding:4px 18px}}@media (prefers-reduced-motion:reduce){.rhythm-drawer .body,.rhythm-drawer .inner>*,.rhythm-drawer .chevron{transition:none}}.load-overlay{z-index:5;-webkit-backdrop-filter:blur(6px);background:radial-gradient(circle at 50% 45%,#4fb3ff1a,#0000 60%),#0d1017db;border-radius:8px;place-items:center;padding:12px;display:grid;position:absolute;inset:0}.load-overlay.delayed{animation:.25s .18s both load-appear}.load-overlay.leaving{animation:load-leave var(--fade-ms) ease forwards;pointer-events:none}@keyframes load-appear{0%{opacity:0}}@keyframes load-leave{to{opacity:0;transform:scale(1.03)}}.load-card{flex-direction:column;align-items:center;gap:clamp(8px,2.4cqw,14px);width:min(340px,100%);display:flex}.load-title{letter-spacing:.04em;font-size:clamp(15px,3.4cqw,18px);font-weight:600}.load-ring{aspect-ratio:1;width:clamp(84px,22cqw,120px);position:relative}.load-ring svg{width:100%;height:100%;overflow:visible}.load-ring .track{fill:none;stroke:var(--border);stroke-width:3px}.load-ring .arc{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round;transform-origin:50%;filter:drop-shadow(0 0 3px #4fb3ff99);transition:stroke-dashoffset .3s,stroke .3s;transform:rotate(-90deg)}.load-ring .arc.spin{animation:1.1s linear infinite load-spin}.load-ring .dot{fill:var(--panel-2);stroke:var(--border);stroke-width:1.2px;animation:1.2s ease-in-out infinite load-dot}.load-ring.done .arc{stroke:var(--d2);filter:drop-shadow(0 0 3px #6ad26a99)}.load-ring.silent .arc{stroke:var(--accent-2);filter:none}.load-ring.failed .arc{stroke:var(--danger);filter:none}.load-ring:not(.loading) .dot{animation:none}.load-ring.done .dot{fill:var(--d2);stroke:var(--d2)}.load-ring .center{font-variant-numeric:tabular-nums;grid-auto-flow:column;place-content:center;align-items:baseline;font-size:clamp(18px,5cqw,26px);font-weight:700;display:grid;position:absolute;inset:0}.load-ring .center small{color:var(--muted);margin-left:1px;font-size:.5em;font-weight:500}.load-ring.done .center{color:var(--d2)}.load-ring.silent .center{color:var(--accent-2)}.load-ring.failed .center{color:var(--danger)}@keyframes load-spin{to{transform:rotate(270deg)}}@keyframes load-dot{0%,70%,to{fill:var(--panel-2);stroke:var(--border)}20%{fill:var(--accent-2);stroke:var(--accent-2)}}.load-steps{border:1px solid var(--border);border-radius:var(--radius);background:#151a24d9;flex-direction:column;gap:8px;width:100%;margin:0;padding:10px 12px;list-style:none;display:flex}.load-step{grid-template-columns:18px auto minmax(0,1fr) 3.2em;align-items:center;column-gap:8px;font-size:13px;display:grid}.load-step .icon{border-radius:50%;place-items:center;width:16px;height:16px;font-size:11px;font-weight:700;display:grid}.load-step.loading .icon{border:2px solid var(--border);border-top-color:var(--accent);animation:.8s linear infinite load-turn}.load-step.waiting .icon{border:2px dotted var(--border)}.load-step.done .icon{background:var(--d2);color:var(--bg)}.load-step.silent .icon{background:var(--accent-2);color:var(--bg)}.load-step.failed .icon{background:var(--danger);color:var(--bg)}.load-step .name{font-weight:600}.load-step.waiting .name{color:var(--muted)}.load-step .bar{background:var(--panel-2);border-radius:3px;height:6px;position:relative;overflow:hidden}.load-step .bar>span{border-radius:inherit;background:linear-gradient(90deg, var(--accent), #8fd0ff);transition:width .25s;position:absolute;inset:0 auto 0 0}.load-step.done .bar>span{background:var(--d2)}.load-step.silent .bar>span{background:#ffcf3359}.load-step.failed .bar>span{background:#ff6b6b73}.load-step .bar.indeterminate>span{animation:1.2s ease-in-out infinite load-slide;width:35%!important}.load-step .value{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.load-step.done .value{color:var(--d2)}.load-step.silent .value{color:var(--accent-2)}.load-step.failed .value{color:var(--danger)}.load-step .detail{color:var(--muted);font-variant-numeric:tabular-nums;grid-column:3/-1;margin-top:3px;font-size:12px;line-height:1.4}.load-step.silent .detail,.load-step.failed .detail{color:var(--text);grid-column:2/-1}@keyframes load-turn{to{transform:rotate(360deg)}}@keyframes load-slide{0%{left:-35%}to{left:100%}}.load-actions{justify-content:center;align-items:center;gap:14px;min-height:32px;font-size:13px;display:flex;position:relative}.load-actions .link,.inline-link{color:var(--accent);font-size:inherit;background:0 0;border:0;padding:0}.load-actions .link{color:var(--muted);text-underline-offset:3px;text-decoration:underline}.load-actions .link:hover,.inline-link:hover{color:var(--accent);text-decoration:underline}.load-countdown{background:var(--accent-2);transform-origin:0;opacity:.6;border-radius:1px;height:2px;animation:linear forwards load-countdown;position:absolute;bottom:-6px;left:25%;right:25%}@keyframes load-countdown{to{transform:scaleX(0)}}@keyframes load-fade{to{opacity:0}}@media (prefers-reduced-motion:reduce){.load-ring .arc.spin,.load-ring .dot,.load-step.loading .icon,.load-step .bar.indeterminate>span{animation:none}.load-overlay.leaving{animation-name:load-fade}}.stage-placeholder{aspect-ratio:1;background:radial-gradient(circle,#0000 0 44%,#8f9ab32e 44.4% 45%,#0000 45.4%),#0a0c12;border-radius:8px;overflow:hidden}.skeleton .sk{background:linear-gradient(90deg, var(--panel) 0%, var(--panel-2) 50%, var(--panel) 100%);background-size:200% 100%;border-radius:6px;animation:1.4s ease-in-out infinite sk-shine;display:block}.song-head.skeleton .sk-title{width:min(320px,70%);height:26px;margin:4px 0 3px}.skeleton .sk-line{width:min(420px,85%);height:16px;margin:4px 0}.skeleton .sk-chips{width:min(520px,95%);height:26px;margin:14px 0 4px}.skeleton .sk-tab{border-radius:8px;width:140px;height:38px}.skeleton .sk-score{border-radius:8px;width:86px;height:34px;margin-bottom:12px}.skeleton .sk-block{height:64px}.notes-panel.skeleton{min-height:220px}@keyframes sk-shine{0%{background-position:100% 0}to{background-position:-100% 0}}@media (max-width:600px){.skeleton .sk-tab{width:auto}.notes-panel.skeleton{display:none}}@media (prefers-reduced-motion:reduce){.skeleton .sk{animation:none}}
.skip-link{z-index:100;background:var(--panel);border:2px solid var(--accent);border-radius:8px;padding:10px 16px;position:fixed;top:8px;left:16px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}:where(a,button,summary):focus-visible{outline:3px solid var(--accent);outline-offset:4px}.site-header .container{gap:36px;height:auto;min-height:72px}.brand{flex-shrink:0;align-items:center;gap:10px;display:inline-flex}.brand:hover{text-decoration:none}.brand-mark{width:37px;height:37px;color:var(--accent)}.brand-copy{align-items:baseline;gap:10px;display:flex}.brand-copy strong{letter-spacing:-1px;font-size:23px;font-weight:800}.brand-copy>span{letter-spacing:1px;font-size:13px;font-weight:500}.brand-dot{color:var(--accent)}.site-header .main-nav{align-self:stretch;align-items:stretch;gap:28px;margin-left:12px;font-size:14px}.main-nav a{color:var(--muted);white-space:nowrap;align-items:center;display:inline-flex;position:relative}.main-nav a:hover{color:var(--accent);text-decoration:none}.main-nav a[aria-current=page]{color:var(--accent);font-weight:650}.main-nav a[aria-current=page]:after{content:"";background:var(--accent);border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:0;right:0}.header-actions{align-items:center;gap:20px;margin-left:auto;font-size:13px;display:flex}.header-username{white-space:nowrap;text-overflow:ellipsis;max-width:120px;overflow:hidden}.header-register{border:1px solid var(--border);border-radius:8px;align-items:center;gap:12px;padding:8px 14px;display:inline-flex}.theme-switch{background:var(--bg);border:1px solid var(--border);border-radius:9px;align-items:center;gap:2px;padding:3px;display:inline-flex}.theme-option{color:var(--muted);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:5px;min-height:30px;padding:5px 9px;font-size:12px;line-height:1.5;display:inline-flex}.theme-option svg{width:16px;height:16px}:root[data-theme=blue] .theme-blue,:root[data-theme=dark] .theme-dark{background:var(--panel);color:var(--accent);box-shadow:0 1px 5px #142e5012}.library-hero,.library-heading{display:none}.library-section{scroll-margin-top:24px}.search-field{flex:1;align-items:center;min-width:0;display:flex;position:relative}.search-field>svg{width:20px;height:20px;color:var(--muted);pointer-events:none;position:absolute;left:14px}.search-field input{width:100%;min-width:0;padding-left:44px}.search-arrow{margin-left:12px}.filter-summary-label{vertical-align:middle;align-items:center;gap:8px;display:inline-flex}.filter-summary-label svg{width:17px;height:17px}.filter-summary-hint{float:right;color:var(--muted);padding-top:2px;font-size:12px}.library-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:24px 0 16px;display:flex}.type-filters{gap:6px;display:flex}.type-filters button{color:var(--muted);background:0 0;border-color:#0000;font-size:13px}.type-filters button[aria-pressed=true]{background:var(--panel-2);color:var(--accent);font-weight:650}.library-count{overflow-wrap:anywhere;margin:0;font-size:13px}.popular-title{margin:0;font-size:18px;font-weight:650}.popular-title>span{margin-left:10px;font-size:12px;font-weight:400;display:inline-block}.catalog-switch{margin-left:auto;font-size:13px}.popular-rank{color:var(--accent);align-items:baseline;gap:10px;margin-bottom:5px;font-size:13px;font-weight:700;display:flex}.popular-rank>span{color:var(--muted);font-size:11px;font-weight:400}.library-count strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:650}.library-empty{text-align:center;padding:48px 20px}.library-empty>span{color:var(--accent);font-size:38px}.library-empty h3{margin:8px 0}.chart-skeleton{align-items:center;gap:14px;min-height:145px;padding:20px;display:flex}.chart-skeleton>span{background:var(--panel-2);border-radius:8px;width:72px;height:72px}.chart-skeleton>div{flex:1}.chart-skeleton i{background:var(--panel-2);border-radius:4px;height:10px;margin:9px 0;display:block}.chart-skeleton i:nth-child(2){width:70%}.chart-skeleton i:nth-child(3){width:85%}:root[data-theme=blue]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f8fd;--panel:#fff;--panel-2:#f0f5fc;--border:#dce5f2;--text:#1a2c48;--muted:#63748c;--accent:#2864e8;--accent-2:#966000;--danger:#cb364d;--radius:14px;--on-accent:#fff;--selected:#eaf2ff;--shadow:0 4px 18px #284a7d05, 0 1px 3px #284a7d04}:root[data-theme=blue] body{background:radial-gradient(ellipse at 90% 0%, #eaf2ff 0, transparent 40%), var(--bg);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100dvh;display:flex}:root[data-theme=blue] ::selection{color:#163668;background:#cfe1ff}:root[data-theme=blue] input,:root[data-theme=blue] select{accent-color:var(--accent)}:root[data-theme=blue] button{transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s}:root[data-theme=blue] button.primary,:root[data-theme=blue] .step-dots button.current,:root[data-theme=blue] .lab-size button.on{color:var(--on-accent)}:root[data-theme=blue] button.primary:hover:not(:disabled){background:#1954d5;border-color:#1954d5;box-shadow:0 3px 10px #2864e828}:root[data-theme=blue] input:not([type]),:root[data-theme=blue] input[type=number]{background:var(--panel-2);border:1px solid var(--border);border-radius:7px;padding:5px 8px}:root[data-theme=blue] input::placeholder,:root[data-theme=blue] textarea::placeholder{color:#7d8ba0;opacity:1}:root[data-theme=blue] .container{max-width:1240px;padding-left:32px;padding-right:32px}:root[data-theme=blue] main.container{flex:1;width:100%;padding-top:0}:root[data-theme=blue] main.container>:not(.library-hero):first-child{margin-top:28px}:root[data-theme=blue] .site-header{background:#ffffffed;border-bottom-color:#e1e9f5}:root[data-theme=blue] .header-login{color:var(--text)}:root[data-theme=blue] .header-register{color:var(--accent);background:#eef4ff;border-color:#e3edff}:root[data-theme=blue] .header-register:hover{background:#e1ecff;text-decoration:none}:root[data-theme=blue] .panel{box-shadow:var(--shadow)}:root[data-theme=blue] .library-hero{grid-template-columns:1.1fr 1fr;align-items:center;gap:30px;min-height:350px;padding:30px 14px 34px 8px;display:grid;position:relative}.hero-eyebrow{letter-spacing:2px;color:var(--accent);align-items:center;gap:8px;font-size:10px;font-weight:650;display:flex}.hero-eyebrow>span{background:var(--accent);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #2864e80c}.hero-copy h1{letter-spacing:-.04em;margin:18px 0 16px;font-size:clamp(34px,3.7vw,48px);font-weight:800;line-height:1.3}.hero-copy h1 em{color:var(--accent);font-style:normal}.hero-copy>p{color:var(--muted);margin:0;font-size:13px;line-height:1.9}.hero-links{align-items:center;gap:24px;margin-top:23px;font-size:12px;display:flex}.hero-links a{align-items:center;gap:18px;font-weight:550;display:inline-flex}.hero-links a:first-child{background:var(--accent);color:#fff;border-radius:7px;padding:9px 15px;box-shadow:0 4px 10px #2864e81a}.hero-links a:hover{text-decoration:none}.hero-links a:first-child:hover{background:#1954d5}.hero-links a:last-child:hover{text-underline-offset:4px;text-decoration:underline}.hero-art{justify-self:end;width:100%;max-width:480px;position:relative}.rhythm-disc{filter:drop-shadow(0 14px 16px #3861a50c);width:100%;display:block}.art-coordinate{letter-spacing:1.4px;color:#6b86ac;font-family:ui-monospace,Cascadia Code,monospace;font-size:8px;position:absolute}.art-coordinate-top{top:6px;right:0}.art-coordinate-bottom{bottom:-4px;left:0}.art-note{background:#ffffffeb;border:1px solid #fff;border-radius:12px;align-items:center;gap:12px;padding:13px 15px;display:flex;position:absolute;bottom:15px;right:-4px;transform:rotate(-5deg);box-shadow:0 10px 28px #416ca416}.art-note-icon{width:34px;height:34px;color:var(--accent);background:#edf4ff;border-radius:9px;place-items:center;font-size:23px;display:grid}.art-note>span:nth-child(2){letter-spacing:1px;font-size:10px;font-weight:750}.art-note small{color:var(--muted);letter-spacing:0;margin-top:4px;font-size:9px;font-weight:400;display:block}.art-note-wave{align-items:center;gap:3px;height:22px;margin-left:5px;display:flex}.art-note-wave i{background:#6c9cf1;border-radius:2px;width:3px;height:8px}.art-note-wave i:nth-child(2),.art-note-wave i:nth-child(4){height:15px}.art-note-wave i:nth-child(3){height:22px}:root[data-theme=blue] .library-section{border-top:1px solid var(--border);padding-top:26px}:root[data-theme=blue] .library-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px;display:flex}.section-index{color:#6a82a3;letter-spacing:1.5px;font-family:ui-monospace,Cascadia Code,monospace;font-size:9px;font-weight:500}.library-heading h1{letter-spacing:-.6px;margin:0;font-size:24px;font-weight:750}.heading-dot{color:var(--accent);padding-left:3px}.library-heading-note{color:var(--muted);padding-bottom:4px;font-size:11px}.library-heading-note>span{color:var(--accent);margin-left:12px;font-size:20px;display:inline-block}:root[data-theme=blue] .search-bar{background:var(--panel);border:1px solid #ccdcef;border-radius:12px;gap:0;margin-bottom:12px;padding:6px;box-shadow:0 3px 9px #385e8b04}:root[data-theme=blue] .search-bar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #2864e80d}:root[data-theme=blue] .search-field input{background:0 0;border:0;min-height:42px;padding-left:43px;font-size:13px}:root[data-theme=blue] .search-field input:focus{outline:none}:root[data-theme=blue] .search-bar>button{border-radius:8px;min-width:99px;font-size:13px}:root[data-theme=blue] .chart-filters{box-shadow:none;background:#ffffff90;border-color:#e1e8f3;border-radius:10px;padding:13px 18px}:root[data-theme=blue] .chart-filters>summary{color:#536985;font-size:12px;list-style:none}:root[data-theme=blue] .chart-filters>summary::-webkit-details-marker{display:none}:root[data-theme=blue] .chart-filters>summary .filter-summary-label svg{color:var(--accent)}:root[data-theme=blue] .filter-fields{border-top:1px solid #e6edf6;gap:14px 12px;margin-top:13px;padding-top:14px}:root[data-theme=blue] .filter-fields>label{color:var(--muted);gap:6px;font-size:11px}:root[data-theme=blue] .filter-fields select{color:var(--text);background:var(--panel);min-height:36px;padding:7px 9px;font-size:12px}:root[data-theme=blue] .filter-multi{flex-basis:145px;font-size:12px}:root[data-theme=blue] .filter-multi summary{background:var(--panel);padding:8px 10px}:root[data-theme=blue] .filter-options{font-size:12px}:root[data-theme=blue] .filter-fields>button{min-height:36px;color:var(--muted);background:0 0;font-size:12px}:root[data-theme=blue] .type-filters{gap:4px}:root[data-theme=blue] .type-filters button{border-radius:7px;padding:7px 15px}:root[data-theme=blue] .type-filters button[aria-pressed=true]{color:#245bd2;background:#e7effe}:root[data-theme=blue] .type-filters button:hover{background:#eaf1fc}:root[data-theme=blue] .chart-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}:root[data-theme=blue] .chart-card{border-color:#e1e8f3;border-radius:12px;align-items:center;gap:14px;min-width:0;padding:19px 16px;transition:border-color .18s,box-shadow .18s,transform .18s;position:relative}:root[data-theme=blue] .chart-card:hover{border-color:#a9c6f6;transform:translateY(-3px);box-shadow:0 8px 24px #2b5ba512}:root[data-theme=blue] .chart-card:focus-visible{outline-offset:3px}:root[data-theme=blue] .chart-card .title{letter-spacing:-.2px;font-size:14px;font-weight:700}:root[data-theme=blue] .chart-card:hover .title{color:var(--accent)}:root[data-theme=blue] .chart-card .artist{margin-top:3px;font-size:12px}:root[data-theme=blue] .chart-cover{background:#edf3fc;border-radius:9px;flex-basis:76px;width:76px;height:76px;box-shadow:0 3px 8px #182e5112}:root[data-theme=blue] .chart-cover-fallback{color:#88a9dc;background:repeating-linear-gradient(135deg,#eff5ff,#eff5ff 8px,#e9f1fe 8px 9px)}:root[data-theme=blue] .chart-meta{margin-top:5px;font-size:11px}:root[data-theme=blue] .type-badge{color:#7183a0;border-color:#d6e1f1;border-radius:3px;margin-left:3px;padding:0 3px;font-size:9px;line-height:1.4}:root[data-theme=blue] .chart-card .levels{gap:4px;margin-top:9px}:root[data-theme=blue] .diff{border-radius:4px;min-width:2.6em;padding:2px 5px;font-size:11px;line-height:1.4}:root[data-theme=blue] .diff-1{color:#09658a;background:#dff5ff}:root[data-theme=blue] .diff-2{color:#1e7544;background:#e0f5e9}:root[data-theme=blue] .diff-3{color:#895b06;background:#fff1cb}:root[data-theme=blue] .diff-4{color:#b52d52;background:#ffe4e9}:root[data-theme=blue] .diff-5{color:#7540b1;background:#eee5ff}:root[data-theme=blue] .diff-6{color:#8653ab;background:#f5ecff;box-shadow:inset 0 0 0 1px #ddc8f4}:root[data-theme=blue] .diff-7{color:#a93780;background:#ffe4f5}:root[data-theme=blue] .pager{gap:18px;margin-top:32px;font-size:13px}:root[data-theme=blue] .pager button{background:var(--panel);padding:8px 15px}:root[data-theme=blue] .song-head{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:22px 24px}:root[data-theme=blue] .song-head h1{color:#1d3d72}:root[data-theme=blue] .diff-tabs{gap:8px;margin:18px 0}:root[data-theme=blue] .diff-tabs button{background:var(--panel);padding:8px 12px}:root[data-theme=blue] .diff-tabs button.active,:root[data-theme=blue] .guide-card.selected,:root[data-theme=blue] .scene-item.selected,:root[data-theme=blue] .element-row.selected,:root[data-theme=blue] .toolbox button.active{background:var(--selected)}:root[data-theme=blue] .toggle[aria-pressed=true],:root[data-theme=blue] .author-chips button.active,:root[data-theme=blue] .field-row button.active{color:var(--accent);font-weight:600}:root[data-theme=blue] .notes-panel{gap:14px;padding:18px}:root[data-theme=blue] .notes-panel h2{color:#244473}:root[data-theme=blue] .note{background:#f8faff;border-color:#e0e9f5}:root[data-theme=blue] .note.active{background:#fffaf0}:root[data-theme=blue] .form-card{gap:18px;padding:32px;box-shadow:0 15px 50px #254a7d0a;margin-top:68px!important}:root[data-theme=blue] .form-card h1{color:#1d3d72;font-size:26px}:root[data-theme=blue] .form-card label{color:var(--muted);gap:8px;font-size:13px}:root[data-theme=blue] .form-card input{min-height:42px;color:var(--text);background:#f7faff}:root[data-theme=blue] .form-card>button{min-height:44px}:root[data-theme=blue] .form-card>p{font-size:13px}:root[data-theme=blue] .etl-density span{background:#a5bee5}:root[data-theme=blue] .etl-bar.selected{outline-color:var(--accent)}:root[data-theme=blue] .etl-bar.drawing{outline-color:var(--accent);background:#2864e822}:root[data-theme=blue] .etl-point{color:#fff}:root[data-theme=blue] .etl-point.selected{outline-color:#1d3d72}:root[data-theme=blue] .lab-ok{color:#237746}:root[data-theme=blue] .lab-chip.head{border-color:var(--accent)}:root[data-theme=blue] .lab-board{background:#11151d;border-radius:18px}:root[data-theme=blue] .score-dialog{box-shadow:0 24px 100px #132d5433}:root[data-theme=blue] .score-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#162d5066}:root[data-theme=blue] .site-footer{background:#edf3fb;border-top-color:#e0e8f4;margin-top:64px;padding:28px 0 32px;font-size:11px;line-height:1.9}:root[data-theme=blue] .stage,:root[data-theme=blue] .player-box.theater{--bg:#0d1017;--panel:#151a24;--panel-2:#1c2230;--border:#2a3242;--text:#dfe4ee;--muted:#a2aec5;--accent:#4fb3ff;--accent-2:#ffcf33;--on-accent:#06121f;color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=blue] .stage{background:0 0;border-radius:9px;overflow:hidden}:root[data-theme=blue] .player-box.theater .stage{background:#0d1017}:root[data-theme=blue] .stage-placeholder{background:radial-gradient(circle,#0a0c12 0 46.8%,#0000 47%)}:root[data-theme=blue] .load-overlay{clip-path:circle(46.875%);padding:12%}:root[data-theme=blue] .rhythm-strip{background:#fff;border-color:#d6e1f1}:root[data-theme=blue] .player-box.theater button.primary:hover{background:#83caff;border-color:#83caff}@media (max-width:1000px){.site-header .container{gap:20px}.brand-copy{gap:6px}.brand-copy>span{font-size:11px}.site-header .main-nav{gap:20px;margin-left:0}.header-actions{gap:12px}:root[data-theme=blue] .library-hero{gap:12px;min-height:325px}.hero-copy h1{font-size:38px}.hero-links{gap:16px}.art-note{padding:10px;bottom:3px;right:0}.art-note-wave{display:none}}@media (max-width:760px){.site-header .container{flex-wrap:wrap;gap:0 12px;padding-top:12px;padding-bottom:0}.brand-copy>span{display:none}.brand-copy strong{font-size:22px}.site-header .main-nav{flex-basis:100%;order:3;gap:26px;height:42px;font-size:12px}.header-actions{gap:12px}.header-register{padding:6px 10px}.theme-option{padding:5px 7px}:root[data-theme=blue] .container{padding-left:22px;padding-right:22px}:root[data-theme=blue] .library-hero{grid-template-columns:1.15fr 1fr;gap:0;min-height:300px;padding:26px 0}.hero-copy h1{font-size:31px}.hero-copy>p{font-size:11px}.hero-eyebrow{letter-spacing:1px;font-size:8px}.hero-links{gap:13px;font-size:10px}.hero-links a{gap:9px}.hero-links a:first-child{padding:8px 12px}.art-note{gap:8px;font-size:9px;bottom:-14px}.art-note small{font-size:8px}.art-note-icon{width:28px;height:28px}.art-coordinate-top{font-size:7px;top:-14px}.art-coordinate-bottom,.library-heading-note{display:none}:root[data-theme=blue] .chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}:root[data-theme=blue] .chart-card{align-items:flex-start;gap:10px;padding:14px 12px}:root[data-theme=blue] .chart-cover{flex-basis:58px;width:58px;height:58px}}@media (max-width:520px){.brand-mark{width:31px;height:31px}.brand{gap:7px}.brand-copy strong{font-size:20px}.header-actions{gap:10px;font-size:12px}.theme-option span{display:none}.theme-option{min-width:31px;min-height:30px;padding:5px}.header-register{gap:6px;padding:6px 9px}.header-username{max-width:64px}:root[data-theme=blue] .container{padding-left:18px;padding-right:18px}:root[data-theme=blue] .library-hero{min-height:0;padding:30px 0 27px;display:block;overflow:hidden}.hero-copy{z-index:1;position:relative}.hero-copy h1{margin:16px 0 13px;font-size:32px}.hero-copy>p{max-width:220px;font-size:11px}.hero-links{gap:18px;margin-top:19px;font-size:11px}.hero-art{opacity:.38;pointer-events:none;width:235px;position:absolute;top:48px;right:-100px}.art-note,.art-coordinate{display:none}:root[data-theme=blue] .library-section{padding-top:21px}:root[data-theme=blue] .library-heading{margin-bottom:17px}.library-heading h1{font-size:21px}.section-index{font-size:8px}:root[data-theme=blue] .search-bar{padding:5px}:root[data-theme=blue] .search-bar>button{min-width:63px}.search-arrow{display:none}.search-field>svg{width:18px;left:9px}:root[data-theme=blue] .search-field input{padding-left:34px;font-size:12px}:root[data-theme=blue] .chart-filters{padding:11px 13px}:root[data-theme=blue] .filter-fields>label{flex:40%}:root[data-theme=blue] .filter-fields .filter-check{flex-basis:45%}:root[data-theme=blue] .filter-multi{flex-basis:100%}.library-toolbar{gap:10px;margin-top:20px}:root[data-theme=blue] .type-filters button{padding:7px 10px;font-size:11px}.library-count{font-size:11px}:root[data-theme=blue] .chart-grid{grid-template-columns:minmax(0,1fr);gap:11px}:root[data-theme=blue] .chart-card{align-items:center;gap:15px;padding:16px}:root[data-theme=blue] .chart-cover{flex-basis:72px;width:72px;height:72px}:root[data-theme=blue] .chart-card .title{font-size:14px}:root[data-theme=blue] .song-head{padding:18px}:root[data-theme=blue] .form-card{padding:25px;margin-top:36px!important}}@media (prefers-reduced-motion:reduce){:root[data-theme=blue] button,:root[data-theme=blue] .chart-card{transition:none}:root[data-theme=blue] .chart-card:hover{transform:none}}
.lesson-sidebar{flex-direction:column;gap:12px;min-width:0;display:flex;position:sticky;top:16px}.lesson-sidebar>.notes-panel{max-height:none;position:static}.lesson-tabs{background:var(--panel-2);border-radius:var(--radius);gap:4px;padding:4px;display:flex}.lesson-tabs button{background:0 0;border-color:#0000;flex:1;min-height:44px}.lesson-tabs button[aria-pressed=true]{background:var(--panel);border-color:var(--border);color:var(--accent);font-weight:600}.walkthrough-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.walkthrough-heading>strong{overflow-wrap:anywhere;min-width:0}.walkthrough-panel{gap:16px}.walkthrough-panel h3{margin:0;font-size:16px}.walkthrough-panel p{margin:0}.walkthrough-panel button{min-height:44px}.walkthrough-panel input,.walkthrough-panel textarea{width:100%;min-width:0}.walkthrough-preview{text-align:left;flex-direction:column;gap:8px;padding:16px;display:flex}.walkthrough-preview strong{overflow-wrap:anywhere;font-size:16px}.walkthrough-preview .muted{font-size:13px}.walkthrough-excerpt{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;display:-webkit-box;overflow:hidden}.walkthrough-back{background:0 0;border-color:#0000;align-self:flex-start;padding-left:0}.walkthrough-title{overflow-wrap:anywhere;flex-direction:column;gap:4px;display:flex}.walkthrough-title h3{font-size:20px}.walkthrough-title .muted{font-size:13px}.walkthrough-prose{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.8}.walkthrough-directory{min-width:0}.walkthrough-directory h3{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.walkthrough-directory h3 .muted{font-size:12px;font-weight:400}.walkthrough-directory ol{margin:8px 0 0;padding:0;list-style:none}.walkthrough-directory li{border-top:1px solid var(--border)}.walkthrough-directory li:last-child{border-bottom:1px solid var(--border)}.walkthrough-directory li>button,.point-jump{text-align:left;background:0 0;border:none;border-radius:0;align-items:baseline;gap:12px;width:100%;padding:12px 4px;display:flex}.walkthrough-directory time{color:var(--accent);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px}.walkthrough-directory li>button span,.point-jump span{overflow-wrap:anywhere;min-width:0}.walkthrough-directory .current{background:var(--panel-2)}.walkthrough-directory .current button{color:var(--accent);font-weight:600}.walkthrough-summary{flex-direction:column;gap:8px;display:flex}.walkthrough-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.walkthrough-actions button{min-height:44px}.walkthrough-editor fieldset{border:0;flex-direction:column;gap:18px;min-width:0;margin:0;padding:0;display:flex}.walkthrough-editor textarea{resize:vertical;font-size:16px}.walkthrough-editor input{font-size:16px}.walkthrough-editor .editor-field{color:var(--text);gap:8px;font-size:14px}.walkthrough-point-edit{padding-bottom:10px}.walkthrough-point-edit .walkthrough-actions{justify-content:flex-end}.walkthrough-point-edit .walkthrough-actions button{padding:4px 12px;font-size:13px}.walkthrough-add{width:100%;color:var(--accent);border-style:dashed}.walkthrough-recovery{background:var(--panel-2);border-radius:8px;flex-wrap:wrap;gap:8px;padding:12px;display:flex}.walkthrough-recovery>span{flex-basis:100%}.walkthrough-editor-actions{background:var(--panel);border-top:1px solid var(--border);z-index:1;padding:12px 0;position:sticky;bottom:0}.walkthrough-controls{border-top:1px solid var(--border);flex-direction:column;gap:12px;margin-top:12px;padding-top:12px;display:flex}.walkthrough-controls button{min-height:44px}.walkthrough-controls input[type=range]{width:100%;min-height:44px;margin:0}.walkthrough-controls time{font-variant-numeric:tabular-nums;font-size:13px}.walkthrough-controls .walkthrough-heading>span{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.player-box.walkthrough>.timeline,.player-box.walkthrough>.time-row,.player-box.walkthrough>.controls,.player-box.walkthrough>.explanation-track,.player-box.walkthrough>.rhythm-drawer,.player-box.walkthrough .settings-group:first-child .setting:first-of-type{display:none}.player-box.walkthrough .stage canvas{pointer-events:none}.explanation-editor .editor-savebar{border-top:1px solid var(--border);flex-shrink:0;padding-top:8px}.explanation-editor .editor-savebar button{min-height:44px}.explanation-editor .error{margin:0}.explanation-editor textarea{resize:vertical;width:100%;font-size:16px}.song-layout>.player-box.theater{min-width:0;margin:0}.player-box.editor .footer-slot,.explanation-editor{min-width:0;max-width:100%}@media (min-width:901px){.lesson-sidebar{scrollbar-gutter:stable;max-height:calc(100dvh - 32px);overflow-y:auto}}@media (max-width:900px){.lesson-sidebar{position:static}.walkthrough-heading{gap:8px}.walkthrough-panel{padding:16px}.walkthrough-editor-actions{padding-bottom:max(12px, env(safe-area-inset-bottom))}.player-box.theater.editor .stage{height:min(42dvh,100vw - 16px)}}.passage-range{border:1px solid var(--border);background:var(--panel-2);border-radius:8px;flex-direction:column;flex-shrink:0;gap:8px;padding:12px;display:flex}.passage-range>.field-row{justify-content:flex-start}.passage-precise>summary{min-height:32px;color:var(--muted);cursor:pointer;align-items:center;font-size:13px;display:flex}.passage-precise[open]{flex-direction:column;gap:8px;display:flex}.passage-track{flex-direction:column;gap:6px;display:flex}.passage-track-bar{justify-content:space-between}.passage-zoom{gap:4px;display:inline-flex}.track-surface{touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;border:1px solid var(--border);background:var(--bg);border-radius:6px;position:relative}.track-ruler{height:18px;position:relative}.track-ruler>span{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px;position:absolute;top:2px;transform:translate(-50%)}.track-notes{border-bottom:1px solid var(--border);height:20px;position:relative}.track-notes>i{background:var(--muted);opacity:.75;width:2px;position:absolute;bottom:1px}.track-lane{height:48px;position:relative}.track-block,.track-neighbor{white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;font-size:12px;display:flex;position:absolute;overflow:hidden}.track-block{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 22%, transparent);color:var(--text);font-variant-numeric:tabular-nums;top:6px;bottom:6px}.track-block.dragging{background:color-mix(in srgb, var(--accent) 36%, transparent)}.track-neighbor{border:1px dashed var(--muted);color:var(--muted);padding:0 4px;top:11px;bottom:11px}.track-freeze{color:var(--accent-2);pointer-events:none;font-size:11px;position:absolute;top:1px;transform:translate(-50%)}.passage-range .track-handle{z-index:2;cursor:ew-resize;touch-action:none;background:0 0;border:0;width:44px;min-height:44px;padding:0;position:absolute;top:0;bottom:0;transform:translate(-50%)}.passage-range .track-handle:after{content:"";background:var(--accent);border-radius:3px;width:6px;position:absolute;top:6px;bottom:6px;left:calc(50% - 3px)}.passage-range .track-handle:focus-visible{outline:2px solid var(--accent-2);outline-offset:-2px}.track-head,.track-snap{z-index:1;pointer-events:none;position:absolute;top:0;bottom:0}.track-head{background:var(--accent-2);width:2px;margin-left:-1px}.track-snap{border-left:1px dashed var(--text)}.track-say{min-height:1.4em;color:var(--muted);font-variant-numeric:tabular-nums;margin:0}.passage-edge{grid-template-columns:auto minmax(60px,1fr) auto;align-items:center;gap:12px;display:grid}.passage-edge>label{align-items:center;gap:6px;font-size:13px;display:flex}.passage-edge input[type=number]{font-variant-numeric:tabular-nums;width:88px;min-height:44px}.passage-edge input[type=range]{width:100%;min-width:0;min-height:44px;accent-color:var(--accent);margin:0}.passage-range button{min-height:44px}.passage-range button[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}@media (max-width:600px){.passage-edge{grid-template-columns:1fr auto;gap:4px 8px}.passage-edge>input[type=range]{grid-area:2/1/auto/-1}}
