.ui-seg{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-1);gap:2px;height:40px;padding:3px;display:inline-flex}.ui-seg-item{justify-content:center;align-items:center;gap:var(--space-s);min-height:0;color:var(--text-2);font-family:var(--font);white-space:nowrap;cursor:pointer;transition:background-color var(--motion-fast), color var(--motion-fast);background:0 0;border:0;border-radius:6px;padding:6px 12px;font-size:14px;line-height:1;display:inline-flex}.ui-seg-item:hover{color:var(--text-1)}.ui-seg-item.selected{background:var(--surface-3);color:var(--text-1)}.ui-slider{align-items:center;gap:var(--space-m);color:var(--text-1);font-size:14px;display:flex}.ui-slider-label{color:var(--text-2);flex:none}.ui-slider-value{min-width:3ch;color:var(--text-1);font-size:20px;font-family:var(--font-num);font-variant-numeric:tabular-nums;text-align:right;flex:none}.ui-slider-input{cursor:pointer;appearance:none;background:0 0;flex:1;min-width:0;height:20px;margin:0}.ui-slider-input:disabled{opacity:.4;cursor:not-allowed}.ui-slider-input::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--brand) var(--ui-slider-fill,0%), var(--surface-3) var(--ui-slider-fill,0%));border-radius:4px;height:8px}.ui-slider-input::-webkit-slider-thumb{background:var(--brand);-webkit-appearance:none;width:20px;height:20px;transition:transform var(--motion-fast);border:0;border-radius:50%;margin-top:-6px}.ui-slider-input:hover:not(:disabled)::-webkit-slider-thumb{transform:scale(1.15)}.ui-slider-input::-moz-range-track{background:var(--surface-3);border-radius:4px;height:8px}.ui-slider-input::-moz-range-progress{background:var(--brand);border-radius:4px;height:8px}.ui-slider-input::-moz-range-thumb{background:var(--brand);width:20px;height:20px;transition:transform var(--motion-fast);border:0;border-radius:50%}.ui-slider-input:hover:not(:disabled)::-moz-range-thumb{transform:scale(1.15)}.ui-toggle{border:1px solid var(--line);background:var(--surface-2);cursor:pointer;width:52px;height:28px;min-height:0;transition:background-color var(--motion-fast), border-color var(--motion-fast);border-radius:14px;flex:none;padding:0;position:relative}.ui-toggle.on{background:var(--brand);border-color:var(--brand)}.ui-toggle-knob{background:var(--text-1);width:22px;height:22px;transition:transform var(--motion-fast) var(--ease-out);border-radius:50%;position:absolute;top:2px;left:2px}.ui-toggle.on .ui-toggle-knob{background:var(--brand-on);transform:translate(24px)}.ui-toggle:disabled{opacity:.4;cursor:not-allowed}.metro-panel{top:calc(100% + var(--space-s));z-index:31;gap:var(--space-m);box-sizing:border-box;width:360px;max-width:calc(100vw - 2 * var(--space-m));padding:var(--space-m);background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--radius-panel);box-shadow:var(--shadow-dock);color:var(--text-1);white-space:normal;flex-direction:column;display:flex;position:absolute;right:0}.metro-panel-head{justify-content:space-between;align-items:center;display:flex}.metro-panel-title{color:var(--text-1);margin:0;font-size:16px;font-weight:600}.metro-panel-bpm{justify-content:space-between;align-items:center;display:flex}.metro-panel-step{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-3);width:44px;height:44px;min-height:0;color:var(--text-1);cursor:pointer;place-items:center;padding:0;font-size:22px;line-height:1;display:grid}.metro-panel-step:hover:not(:disabled),.metro-panel-tap:hover:not(:disabled){border-color:var(--line-strong)}.metro-panel-step:disabled,.metro-panel-tap:disabled{opacity:.4;cursor:not-allowed}.metro-panel-bpm-value{align-items:baseline;gap:var(--space-s);display:flex}.metro-panel-bpm-num{font-family:var(--font-num);font-variant-numeric:lining-nums tabular-nums;color:var(--text-1);font-size:36px;font-weight:500;line-height:1.1}.metro-panel-bpm-unit{color:var(--text-3);font-size:14px}.metro-panel-row{align-items:center;gap:var(--space-s);display:flex}.metro-panel-seg{flex:1}.metro-panel-seg.disabled{opacity:.4;pointer-events:none}.metro-panel-tap{height:36px;min-height:0;padding:0 var(--space-m);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-3);color:var(--text-1);cursor:pointer;flex:none;font-size:14px}.metro-panel-note{margin:calc(-1 * var(--space-s)) 0 0;color:var(--brand-text);font-size:12px}.metro-panel-volume .ui-slider-value{min-width:4ch;font-size:14px}.stick-conn-dots{gap:var(--space-s);flex:none;display:inline-flex}.stick-conn-dot{box-sizing:border-box;border:2px solid var(--good);width:32px;height:32px;color:var(--good);font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex}.stick-conn-dot.off{border-style:dashed;border-color:var(--miss);color:var(--miss)}.settings-head{margin-bottom:var(--space-l)}.settings-head h1{margin:0}.settings-head p{margin:var(--space-xs) 0 0;color:var(--text-2);font-size:14px}.settings-cols{gap:var(--space-l);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.settings-col{gap:var(--space-l);flex-direction:column;min-width:0;display:flex}@media (width<=860px){.settings-cols{grid-template-columns:minmax(0,1fr)}}.settings-account{align-items:center;gap:var(--space-m);display:flex}.settings-avatar{border:1px solid var(--line);object-fit:cover;border-radius:50%;flex:none;width:40px;height:40px}.settings-avatar-initial{background:var(--surface-2);color:var(--text-1);justify-content:center;align-items:center;font-size:16px;font-weight:600;display:flex}.settings-account-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.settings-account-name{text-overflow:ellipsis;white-space:nowrap;color:var(--text-1);font-size:16px;font-weight:600;overflow:hidden}.settings-account-sub{color:var(--text-2);font-size:13px}.settings-btn{flex:none;width:160px}.settings-row{justify-content:space-between;align-items:center;gap:var(--space-m);min-height:48px;display:flex}.settings-row+.settings-row{padding-top:var(--space-m);border-top:1px solid var(--line)}.settings-row-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.settings-row-label{color:var(--text-1);font-size:16px}.settings-row-help{color:var(--text-2);font-size:13px}.settings-row-control{align-items:center;gap:var(--space-m);flex:none;display:flex}.settings-row-control.wide{width:260px}.settings-row-control.wide .ui-slider{flex:1;min-width:0}.settings-row-control .ui-slider-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.settings-row-control .ui-slider-value{min-width:5ch;font-size:16px}.settings-value{color:var(--text-1);text-align:right;font-size:14px}.settings-value.good{color:var(--good)}.settings-value.warn{color:var(--miss)}.settings-conn{align-items:center;gap:var(--space-s);display:flex}.settings-note{color:var(--text-3);margin:0;font-size:13px}.settings-help{color:var(--text-2);margin:0;font-size:13px}.settings-danger{border-color:var(--miss)}.settings-desc{color:var(--text-2);margin:0;font-size:14px}.ui-btn{justify-content:center;align-items:center;gap:var(--space-s);border-radius:var(--radius-control);min-height:0;font-family:var(--font);white-space:nowrap;cursor:pointer;transition:background-color var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), transform var(--motion-press);border:1px solid #0000;font-weight:600;line-height:1;text-decoration:none;display:inline-flex}.ui-btn:active:not(:disabled){transform:scale(.98)}.ui-btn-md{height:44px;padding:8px var(--space-m);font-size:16px}.ui-btn-sm{height:32px;padding:8px var(--space-m);font-size:14px}.ui-btn-full{width:100%;display:flex}.ui-btn-icon{flex:none;display:inline-flex}.ui-btn-primary{background:var(--brand);border-color:var(--line);color:var(--brand-on)}.ui-btn-primary:hover:not(:disabled){background:var(--brand-text)}.ui-btn-secondary{background:var(--surface-2);border-color:var(--line);color:var(--text-1)}.ui-btn-secondary:hover:not(:disabled){background:var(--surface-3);border-color:var(--line-strong)}.ui-btn-text{color:var(--brand-text);background:0 0}.ui-btn-text:hover:not(:disabled){background:var(--surface-2)}.ui-btn-danger{background:var(--miss);border-color:var(--miss);color:var(--brand-on)}.ui-btn-danger:hover:not(:disabled){filter:brightness(1.1)}.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.4;cursor:not-allowed}.ui-card{gap:var(--space-m);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);color:var(--text-1);flex-direction:column;display:flex}.ui-card-md{padding:var(--space-m)}.ui-card-lg{padding:var(--space-l)}.ui-card-clickable{cursor:pointer}.ui-card-clickable:hover{border-color:var(--line-strong)}.ui-card-title{margin:0;font-size:20px;font-weight:600;line-height:1.45}.song-meta{color:var(--text-2);margin:0;font-size:14px}.song-level{--song-level-color:var(--level-normal);border:1.5px solid var(--song-level-color);background:var(--surface-3);min-height:0;color:var(--song-level-color);font-family:var(--font-num);letter-spacing:.08em;box-shadow:0 0 8px color-mix(in srgb, var(--song-level-color) 45%, transparent);transition:opacity var(--motion-fast), box-shadow var(--motion-fast);border-radius:6px;align-items:center;padding:3px 8px;font-size:12px;font-weight:700;line-height:1.2;display:inline-flex}.song-level-easy{--song-level-color:var(--level-easy)}.song-level-normal{--song-level-color:var(--level-normal)}.song-level-hard{--song-level-color:var(--level-hard)}button.song-level{cursor:pointer}.song-level-dim{opacity:.45;box-shadow:none}.song-level-dim:hover:not(:disabled){opacity:.8}.song-deleted-chip{padding:var(--space-xs) var(--space-s);border:1px solid var(--line);border-radius:var(--radius-control);color:var(--text-3);white-space:nowrap;flex:none;align-items:center;font-size:12px;line-height:1.45;display:inline-flex}.ui-table{border-collapse:collapse;width:100%;color:var(--text-1);font-size:14px}.ui-table thead th{height:44px;padding:0 var(--space-m);background:var(--surface-2);color:var(--text-2);text-align:left;white-space:nowrap;font-size:12px;font-weight:600}.ui-table tbody td{padding:var(--space-s) var(--space-m);border-bottom:1px solid var(--line);vertical-align:middle}.ui-table tbody tr:last-child td{border-bottom:0}.ui-table .num{font-family:var(--font-num);font-variant-numeric:tabular-nums;text-align:right}.history-page{gap:var(--space-m);flex-direction:column;display:flex}.history-page>*{flex-shrink:0}.history-head{gap:var(--space-s);flex-direction:column;display:flex}.history-title{margin:0;font-size:24px;font-weight:600;line-height:1.45}.history-sub{color:var(--text-2);margin:0;font-size:14px;line-height:1.45}.history-toolbar{justify-content:space-between;align-items:center;gap:var(--space-m);min-height:32px;display:flex}.history-count{margin:0;font-size:14px;line-height:1.45}.history-filters{gap:var(--space-s);display:flex}.history-filters .ui-chip{justify-content:center;width:80px}.history-table-wrap{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);overflow:hidden}.history-table{table-layout:fixed;font-size:12px}.history-table thead th{height:48px;padding-inline:var(--space-m)}.history-table tbody td{height:62px;padding:0 var(--space-m);background:var(--surface-2);font-size:12px}.history-table tbody tr:last-child td{border-bottom:0}.history-col-date{width:19%}.history-col-mode{width:9%}.history-col-song{width:24%}.history-col-result{width:23%}.history-mode,.history-link{color:var(--brand-text)}.history-result{font-family:var(--font-num);font-variant-numeric:tabular-nums}.history-song{align-items:center;gap:var(--space-s);min-width:0;display:flex}.history-song-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.history-song-title.deleted{color:var(--text-3)}.history-link{text-decoration:none}.history-link:hover{text-decoration:underline}.history-visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.history-filter-empty{padding:var(--space-l) var(--space-m);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);color:var(--text-2);text-align:center;margin:0;font-size:14px}.history-pager{justify-content:space-between;align-items:center;gap:var(--space-m);display:flex}.history-range{color:var(--text-3);margin:0;font-size:12px;line-height:1.45}.history-pager-nav{align-items:center;gap:var(--space-s);display:flex}.history-pager-nav .ui-btn:disabled{color:var(--text-3)}.history-page-no{min-width:32px;padding-inline:var(--space-s)}.history-page-no[aria-current=page]{background:var(--surface-2)}.ui-chip{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);height:32px;min-height:0;color:var(--text-2);font-family:var(--font);white-space:nowrap;cursor:pointer;transition:background-color var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), transform var(--motion-press);align-items:center;padding:0 12px;font-size:14px;line-height:1;display:inline-flex}.ui-chip:hover:not(:disabled){border-color:var(--line-strong);color:var(--text-1)}.ui-chip:active:not(:disabled){transform:scale(.97)}.ui-chip.selected{background:var(--surface-3);border-color:var(--brand);color:var(--text-1)}.ui-chip:disabled{opacity:.4;cursor:not-allowed}.ui-empty{align-items:center;gap:var(--space-m);padding:var(--space-l);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);text-align:center;flex-direction:column;display:flex}.ui-empty-icon{color:var(--text-3);display:flex}.ui-empty-title{color:var(--text-1);margin:0;font-size:20px;font-weight:600;line-height:1.45}.ui-empty-desc{color:var(--text-2);margin:0;font-size:14px;line-height:1.45}.ui-empty-action{gap:var(--space-s);display:flex}.setup-page{--setup-px:var(--space-xl);--setup-py:28px;gap:var(--space-m);padding:var(--setup-py) var(--setup-px) 0;flex-direction:column;display:flex}@media (width<=1024px){.setup-page{--setup-px:var(--space-l);--setup-py:var(--space-l)}}.setup-page>*,.setup-steps>*{flex-shrink:0}.setup-head{justify-content:space-between;align-items:baseline;gap:var(--space-m);display:flex}.setup-head h1{font-size:24px;font-weight:600;line-height:1.4}.setup-progress{color:var(--text-3);font-size:12px}.setup-steps{gap:var(--space-m);flex-direction:column;display:flex}.setup-step{scroll-margin-top:148px}.setup-banner{z-index:20;justify-content:space-between;align-items:center;gap:var(--space-m);padding:var(--space-s) var(--space-m);border-radius:var(--radius-panel);background-color:var(--bg-base);border:1px solid;display:flex;position:sticky;top:56px}.setup-banner.blocked{background-image:linear-gradient(color-mix(in srgb, var(--brand) 10%, transparent), color-mix(in srgb, var(--brand) 10%, transparent));border-color:color-mix(in srgb, var(--brand) 60%, transparent)}.setup-banner.ready{background-image:linear-gradient(color-mix(in srgb, var(--good) 10%, transparent), color-mix(in srgb, var(--good) 10%, transparent));border-color:color-mix(in srgb, var(--good) 60%, transparent)}.setup-banner-text{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.setup-banner-text strong{color:var(--text-1);font-size:16px;font-weight:500}.setup-banner-text span{color:var(--text-2);font-size:12px}.setup-banner-action,.setup-step-action{flex:none;width:160px}.setup-step{gap:var(--space-s)}.setup-step.is-needed{border-color:var(--miss)}.setup-step-head{align-items:center;gap:var(--space-m);display:flex}.setup-step-mark{border:1px solid var(--line-strong);width:32px;height:32px;color:var(--text-3);font-family:var(--font-num);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:500;display:grid}.setup-step.is-done .setup-step-mark{border-color:var(--good);color:var(--good)}.setup-step.is-progress .setup-step-mark{border-color:var(--brand-text);color:var(--brand-text)}.setup-step.is-needed .setup-step-mark{border-color:var(--miss);color:var(--miss)}.setup-step-main{gap:var(--space-xs);flex-direction:column;flex:1;min-width:0;display:flex}.setup-step-title-row{align-items:center;gap:var(--space-s);display:flex}.setup-step-title{margin:0;font-size:20px;font-weight:600;line-height:1.4}.setup-step-summary{color:var(--text-2);font-size:14px}.setup-step-body{gap:var(--space-m);padding-top:var(--space-m);flex-direction:column;display:flex}.setup-col{gap:var(--space-m);flex-direction:column;display:flex}.setup-row{align-items:center;gap:var(--space-s);flex-wrap:wrap;display:flex}.setup-note{color:var(--text-2);font-size:14px}.setup-note.faint{color:var(--text-3)}.setup-notice{padding:var(--space-s) var(--space-m);border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface-2);font-size:14px}.setup-notice.error{border-color:var(--miss);color:var(--miss)}.setup-dongle{--stick-on:var(--good);--stick-off:var(--miss);align-items:center;gap:var(--space-s);flex-wrap:wrap;font-size:14px;display:flex}.setup-dongle .stick-dot{box-shadow:none}.setup-dongle-text{min-width:0;color:var(--text-1);flex:auto}.setup-dongle-text.dim{color:var(--text-2)}.setup-stick-cards{gap:var(--space-m);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.stick-card{gap:var(--space-s);padding:var(--space-m);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);flex-direction:column;display:flex}.stick-card-head{align-items:center;gap:var(--space-s);font-size:16px;font-weight:500;display:flex}.stick-card-state{color:var(--text-2);font-size:14px;font-weight:400}.stick-card.on .stick-card-state{color:var(--stick-on)}.stick-card.off .stick-card-state{color:var(--stick-off)}.stick-card-battery{color:var(--text-2);font-size:14px}.stick-card-hint{color:var(--text-3);margin:0;font-size:12px}.setup-sensor-choice{align-items:flex-start;gap:var(--space-s);cursor:pointer;display:flex}.setup-sensor-choice input{margin-top:var(--space-xs)}.setup-sensor-choice strong{font-weight:500}.setup-sensor-choice-text{flex-direction:column;display:flex}.setup-sensor-choice-text span{color:var(--text-2);font-size:12px}.setup-progress-bar{border-radius:var(--radius-control);background:var(--surface-3);height:8px;overflow:hidden}.setup-progress-bar>div{background:var(--brand);height:100%}.setup-preset-list{flex-direction:column;display:flex}.setup-preset-row{justify-content:space-between;align-items:center;gap:var(--space-s);padding:var(--space-s) 0;border-top:1px solid var(--line);flex-wrap:wrap;display:flex}.setup-preset-name{align-items:center;gap:var(--space-s);overflow-wrap:anywhere;min-width:0;display:inline-flex}.setup-preset-star{color:var(--brand-sub)}.setup-preset-state{color:var(--text-3);font-size:12px}.setup-preset-state.on{color:var(--brand-text)}.setup-card-title{margin:0;font-size:20px;font-weight:600;line-height:1.4}.setup-card-desc{color:var(--text-2);font-size:14px}.setup-card-head{justify-content:space-between;align-items:center;gap:var(--space-m);display:flex}.setup-kit{gap:var(--space-s)}.setup-kit-body{gap:var(--space-m);grid-template-columns:minmax(0,720px) minmax(0,336px);align-items:stretch;display:grid}@media (width<=1024px){.setup-kit-body{grid-template-columns:minmax(0,1fr)}}.setup-kit-left{gap:var(--space-s);flex-direction:column;min-width:0;display:flex}.setup-editor{aspect-ratio:16/10;width:100%}.setup-editor .kit-wrap{aspect-ratio:auto;border-radius:var(--radius-control);background:var(--bg-canvas);border-color:var(--line);height:100%}.setup-chips{align-items:center;gap:var(--space-s);flex-wrap:wrap;display:flex}.setup-chips-label{color:var(--text-3);font-size:12px}.setup-padinfo{gap:var(--space-s);padding:var(--space-m);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);flex-direction:column;display:flex}.setup-padinfo-title{padding-bottom:var(--space-s);border-bottom:1px solid var(--line);margin:0;font-size:14px;font-weight:500}.setup-padinfo-values{gap:var(--space-s);flex-direction:column;margin:0;display:flex}.setup-padinfo-values>div{gap:var(--space-m);font-size:14px;display:flex}.setup-padinfo-values dt{width:56px;color:var(--text-2)}.setup-padinfo-values dd{font-family:var(--font-num);font-variant-numeric:tabular-nums;margin:0}.setup-padinfo-foot{gap:var(--space-s);flex-direction:column;margin-top:auto;display:flex}.setup-padinfo-hint{color:var(--text-3);font-size:12px}.setup-hit{gap:var(--space-s);padding-top:var(--space-s);flex-direction:column;display:flex}.setup-hit-title{margin:0;font-size:16px;font-weight:500}.setup-hitlog{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);flex-direction:column;display:flex}.setup-hitlog-list{margin:0;padding:0;list-style:none}.setup-hitlog-row{gap:var(--space-m);min-height:32px;padding:0 var(--space-m);grid-template-columns:1.4fr 1fr .8fr 1fr;align-items:center;font-size:14px;display:grid}.setup-hitlog-list .setup-hitlog-row{border-top:1px solid var(--line)}.setup-hitlog-row.head{color:var(--text-3);font-size:12px}.setup-hitlog-num{font-family:var(--font-num);font-variant-numeric:tabular-nums}.setup-hitlog-ago{color:var(--text-3)}.setup-hitlog-empty{padding:var(--space-m);border-top:1px solid var(--line);color:var(--text-3);font-size:14px}.setup-adv-body{gap:var(--space-m) var(--space-l);padding-top:var(--space-s);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width<=1024px){.setup-adv-body{grid-template-columns:minmax(0,1fr)}}.setup-adv-item{gap:var(--space-s);flex-direction:column;display:flex}.setup-adv-label{color:var(--text-2);font-size:14px}.setup-adv-switch{justify-content:space-between;align-items:center;gap:var(--space-m);font-size:14px;display:flex}.setup-adv-foot{color:var(--text-3);grid-column:1/-1;font-size:12px}.setup-bar{z-index:15;justify-content:space-between;align-items:center;gap:var(--space-m);margin:var(--space-m) calc(-1 * var(--setup-px)) 0;padding:var(--space-m) var(--setup-px);border-top:1px solid var(--line);background:var(--bg-base);display:flex;position:sticky;bottom:0}.setup-bar-text{align-items:center;gap:var(--space-s);min-width:0;color:var(--text-2);font-size:14px;display:flex}.setup-bar.changed .setup-bar-text{color:var(--brand-sub)}.setup-bar.leaving .setup-bar-text{color:var(--miss)}.setup-bar-dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.setup-bar-right{align-items:center;gap:var(--space-m);flex:none;display:flex}.setup-bar-saved{color:var(--good);font-size:14px}.setup-bar-action{width:160px}.setup-bar-action.wide{width:200px}.dialog.setup-leave-dialog{max-width:560px}.dialog.setup-name-dialog{gap:var(--space-m);flex-direction:column;max-width:400px;display:flex}.setup-name-dialog h2{margin:0}.setup-dialog-actions{justify-content:flex-end;gap:var(--space-s);margin-top:var(--space-m);display:flex}.setup-name-dialog .setup-dialog-actions{margin-top:0}.setup-dialog-actions>.ui-btn{min-width:160px}.setup-name-dialog .setup-dialog-actions>.ui-btn{flex:1;min-width:0}.setup-adv-body .ui-slider-value{text-align:right;min-width:80px}.ui-input{gap:var(--space-s);flex-direction:column;display:flex}.ui-input-label{color:var(--text-2);font-size:14px}.ui-input-field{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);height:44px;color:var(--text-1);font-family:var(--font);transition:border-color var(--motion-fast);padding:0 12px;font-size:16px}.ui-input-field::placeholder{color:var(--text-3)}.ui-input-field:hover:not(:disabled){border-color:var(--line-strong)}.ui-input-field:focus{border-color:var(--brand);outline:none}.ui-input-field:disabled{opacity:.4;cursor:not-allowed}.ui-input.error .ui-input-field{border-color:var(--miss)}.ui-input-foot{justify-content:space-between;gap:var(--space-m);min-height:1em;font-size:12px;display:flex}.ui-input-help{color:var(--text-3)}.ui-input-error{color:var(--miss)}.ui-input-counter{color:var(--text-3);font-family:var(--font-num);font-variant-numeric:tabular-nums;margin-left:auto}.ui-pill{align-items:center;gap:var(--space-s);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);height:32px;color:var(--text-1);font-family:var(--font);white-space:nowrap;padding:0 12px;font-size:12px;line-height:1;display:inline-flex}.ui-pill-dot{background:var(--text-3);border-radius:50%;flex:none;width:6px;height:6px}.ui-pill-ok{color:var(--good)}.ui-pill-ok .ui-pill-dot{background:var(--good)}.ui-pill-accent{color:var(--brand-text)}.ui-pill-accent .ui-pill-dot{background:var(--brand)}.ui-pill-neutral{color:var(--text-3)}.ui-pill-neutral .ui-pill-dot{background:var(--text-3)}.ui-pill-amber{color:var(--brand-sub)}.ui-pill-amber .ui-pill-dot{background:var(--brand-sub)}.ui-pill-danger{color:var(--miss)}.ui-pill-danger .ui-pill-dot{background:var(--miss)}.play-st{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);overflow:hidden}.play-st-table{table-layout:fixed}.play-st-table thead th{height:32px}.play-st-table tbody td{padding:var(--space-s) var(--space-m);border-bottom:0}.play-st-row{cursor:pointer;border-top:1px solid var(--line);outline-offset:-2px;transition:background-color var(--motion-fast), outline-color var(--motion-fast);outline:2px solid #0000}.play-st-row:hover:not(.locked){background:var(--surface-2)}.play-st-row.selected{background:var(--surface-2);outline-color:var(--brand)}.play-st-row:focus-visible{outline-color:var(--brand)}.play-st-row.locked{cursor:not-allowed;opacity:.55}.play-st-table .play-st-cover{width:72px}.play-st-cover-img{width:40px;height:40px;display:block}.play-st-name,.play-st-artist{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.play-st-name{color:var(--text-1);font-size:14px;font-weight:600}.play-st-artist{color:var(--text-2);font-size:12px}.play-st-status{margin-left:var(--space-s);color:var(--brand-sub)}.play-st-status.danger{color:var(--miss)}.play-st-table .play-st-num{text-align:left;width:96px;font-family:var(--font-num);font-variant-numeric:tabular-nums}.play-st-foot{min-height:40px;padding:0 var(--space-m);border-top:1px solid var(--line);color:var(--text-2);justify-content:space-between;align-items:center;font-size:12px;display:flex}.play-st-pager{align-items:center;gap:var(--space-xs);display:flex}.play-st-pg{min-width:28px;height:28px;min-height:0;padding:0 var(--space-s);border-radius:var(--radius-control);color:var(--text-2);cursor:pointer;transition:color var(--motion-fast), border-color var(--motion-fast);background:0 0;border:1px solid #0000;font-size:12px}.play-st-pg:hover:not(:disabled){color:var(--text-1)}.play-st-pg.current{border-color:var(--brand);color:var(--text-1)}.play-st-pg:disabled{opacity:.4;cursor:default}.play-st-cover-img .song-cover-disc{height:100%}.play-sd{gap:var(--space-s);width:352px;padding:var(--space-l);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);color:var(--text-1);flex-direction:column;display:flex}.play-sd-caption{color:var(--text-3);font-size:12px}.play-sd-empty{color:var(--text-2);margin:0;font-size:14px}.play-sd .play-sd-cover{width:100%;margin:var(--space-xs) 0}.play-sd .play-sd-cover .song-cover-disc{height:60%}.play-sd-head{gap:var(--space-xs);flex-direction:column;display:flex}.play-sd-title{overflow-wrap:anywhere;margin:0;font-size:24px;font-weight:700;line-height:1.3}.play-sd-artist{color:var(--text-1);margin:0;font-size:16px}.play-sd-best{color:var(--text-2);margin:0;font-size:14px}.play-sd-best strong{color:var(--text-1);font-family:var(--font-num);font-variant-numeric:tabular-nums}.play-sd-line{color:var(--text-2);margin:0;font-size:12px}.play-sd-line.warn{color:var(--brand-sub)}.play-sd-error{color:var(--miss);margin:0;font-size:12px}.play-sd-retry{min-height:0;color:var(--brand-text);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.play-sd .ui-btn{margin-top:var(--space-s)}.play-sp{gap:var(--space-m);color:var(--text-1);flex-direction:column;display:flex}.play-sp-head{gap:var(--space-s);flex-direction:column;display:flex}.play-sp-title{margin:0;font-size:24px;font-weight:700}.play-sp-desc{color:var(--text-2);margin:0;font-size:14px}.play-sp .play-sp-search{width:400px;max-width:100%}.play-sp-search .ui-input-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.play-sp-search .ui-input-foot{display:none}.play-sp-center{padding:var(--space-l);justify-content:center;display:flex}.play-sp-grid{gap:var(--space-l);grid-template-columns:minmax(0,760px) 352px;align-items:start;display:grid}.play-sp-list{gap:var(--space-s);flex-direction:column;min-width:0;display:flex}.play-sp-note{color:var(--text-2);margin:0;font-size:12px}@media (width<=1100px){.play-sp-grid{grid-template-columns:minmax(0,1fr)}.play-sp-grid .play-sd{width:auto}}.play-highway{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);width:100%;height:100%;position:relative;overflow:hidden}.play-highway canvas{width:100%;height:100%;display:block}.stick-disconnect{box-sizing:border-box;border:1px solid var(--brand-sub);border-radius:var(--radius-panel);background:var(--surface-2);text-align:center;width:420px;max-width:100%;font-family:var(--font);flex-direction:column;align-items:center;gap:20px;padding:28px;display:flex}.stick-dots{gap:40px;display:flex}.stick-dot-wrap{flex-direction:column;align-items:center;gap:8px;display:flex}.stick-dot{box-sizing:border-box;border:2px solid var(--good);background:var(--surface-3);width:56px;height:56px;color:var(--good);font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;font-size:30px;line-height:1;display:flex}.stick-dot.off{border-style:dashed;border-color:var(--miss);color:var(--miss)}.stick-dot-label{color:var(--text-2);font-size:12px}.stick-disconnect-title{color:var(--text-1);margin:0;font-size:20px;font-weight:600;line-height:1.45}.stick-disconnect-status{color:var(--brand-sub);margin:0;font-size:14px;line-height:1.45}.stick-disconnect-actions{justify-content:center;gap:var(--space-s);display:flex}.stick-disconnect-btn{width:150px}.stick-disconnect-btn.wide{width:auto;min-width:150px}.play-pause-scrim{z-index:50;padding:var(--space-m);background:color-mix(in srgb, var(--bg-canvas) 55%, transparent);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.play-pause-wrap{justify-content:center;max-width:100%;display:flex}.play-pause{gap:var(--space-m);width:400px;max-width:100%;padding:var(--space-l);box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);text-align:center;font-family:var(--font);flex-direction:column;display:flex}.play-pause-head{flex-direction:column;gap:4px;display:flex}.play-pause-title{color:var(--text-1);margin:0;font-size:24px;font-weight:600;line-height:1.45}.play-pause-sub{color:var(--text-2);margin:0;font-size:14px}.play-pause-warn{border:1px solid var(--brand-sub);border-radius:var(--radius-control);background:var(--surface-2);color:var(--brand-sub);text-align:left;padding:12px 14px}.play-pause-warn .notice.readiness{color:inherit;background:0 0;border:0;padding:0}.play-pause-actions{gap:var(--space-s);flex-direction:column;display:flex}.play-stage{gap:var(--space-m);width:100%;min-height:100vh;padding:72px var(--space-l) var(--space-l);background:var(--bg-base);box-sizing:border-box;flex-direction:column;display:flex;position:relative}.play-stage-hud{flex:none;height:96px}.play-stage.game .play-stage-hud,.play-stage.game .play-stage-divider,.play-stage.game .play-stage-area{width:100%;max-width:1060px;margin-inline:auto}.play-stage-divider{background:var(--line);border:0;flex:none;width:100%;height:1px;margin-block:0}.play-stage-area{flex:none;width:100%;height:420px}@media (height<=899px){.play-stage-area{height:min(420px,100vh - 451px)}}.play-stage-drum{justify-content:center;align-items:center;gap:var(--space-m);flex:none;height:210px;display:flex}.play-stage-guide,.play-stage-readout{flex:none;align-items:center;display:flex}.play-stage-guide{width:220px}.play-stage-readout{width:180px}.play-stage-kit{flex:none;width:532px;height:210px}.play-hud{justify-content:space-between;align-items:center;gap:var(--space-l);box-sizing:border-box;height:96px;font-family:var(--font);display:flex}.play-hud-info{align-items:center;gap:var(--space-m);min-width:0;display:flex}.play-hud-cover{flex:none;width:72px;height:72px}.play-hud.sheet .play-hud-cover{width:64px;height:64px}.play-hud-cover .song-cover{border-radius:var(--radius-control);height:100%}.play-hud-text{flex-direction:column;gap:4px;min-width:0;display:flex}.play-hud-titleline{align-items:center;gap:var(--space-s);min-width:0;display:flex}.play-hud-title{text-overflow:ellipsis;white-space:nowrap;color:var(--text-1);margin:0;font-size:22px;font-weight:700;line-height:1.3;overflow:hidden}.play-hud-title:focus{outline:none}.play-hud-bpm{border:1px solid var(--line);background:var(--surface-2);color:var(--text-2);border-radius:6px;flex:none;padding:2px 8px;font-size:12px;line-height:1.4}.play-hud-artist{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:14px;overflow:hidden}.play-hud-progress{align-items:center;gap:var(--space-s);display:flex}.play-hud-bar{background:var(--surface-3);border-radius:999px;flex:none;width:280px;height:10px;overflow:hidden}.play-hud-bar-fill{background:var(--brand);border-radius:999px;height:100%}.play-hud-time{color:var(--text-2);font-family:var(--font-num);font-feature-settings:"lnum" 1, "tnum" 1;flex:none;font-size:13px}.play-hud-stats{flex:none;justify-content:space-between;align-items:center;width:460px;display:flex}.play-hud.sheet .play-hud-stats{width:420px}.play-hud-stat{color:var(--text-1);flex-direction:column;align-items:center;gap:2px;display:flex}.play-hud-label{color:var(--text-2);font-size:12px;line-height:1.45}.play-hud-value{font-family:var(--font-display);letter-spacing:.02em;font-size:52px;font-weight:400;line-height:1}.play-hud-stat.brand .play-hud-value{color:var(--brand-text)}.play-hud-stat.perfect .play-hud-label,.play-hud-stat.perfect .play-hud-value{color:var(--perfect)}.play-hud-stat.good .play-hud-label,.play-hud-stat.good .play-hud-value{color:var(--good)}.play-hud-stat.miss .play-hud-label,.play-hud-stat.miss .play-hud-value{color:var(--miss)}.play-countdown{z-index:10;background:color-mix(in srgb, var(--bg-canvas) 55%, transparent);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.play-countdown-value{font-family:var(--font-display);color:var(--text-1);font-size:200px;font-weight:400;line-height:1}.guide-slot{width:220px;height:51px;font-family:var(--font);flex-direction:column;justify-content:center;gap:8px;line-height:1.45;display:flex;overflow:visible}.guide-slot-label{font-size:12px}.guide-slot-title{color:var(--text-1);font-size:16px}.guide-slot-sub{color:var(--text-2);font-size:14px}.guide-slot.coach-info .guide-slot-label,.guide-slot.coach-info .guide-slot-title{color:var(--brand-text)}.guide-slot.coach-warn .guide-slot-label,.guide-slot.coach-warn .guide-slot-title{color:var(--brand-sub)}.hit-readout{font-family:var(--font);font-size:14px;line-height:1.45}.hit-readout.stack{flex-direction:column;gap:8px;width:180px;display:flex}.hit-readout-line1{color:var(--text-1)}.hit-readout-line2{color:var(--brand)}.hit-readout.row{gap:24px;display:flex}.hit-readout-cell{flex-direction:column;gap:4px;min-width:72px;display:flex}.hit-readout-key{color:var(--text-3);font-size:12px}.hit-readout-val{color:var(--text-1)}.hit-readout-val.num{font-family:var(--font-num);font-feature-settings:"lnum" 1, "tnum" 1}.drum-kit{-webkit-user-select:none;user-select:none;max-width:100%;display:block;overflow:visible}.drum-kit.fit{width:100%;height:auto}.drum-pad-label{fill:var(--text-2);font-family:var(--font);text-anchor:middle;pointer-events:none;font-weight:400}.drum-pad-judge{font-family:var(--font);text-anchor:middle;pointer-events:none;paint-order:stroke;filter:drop-shadow(0 1px 4px #0009);font-size:16px;font-weight:700}.drum-pad.clickable{cursor:pointer}.drum-pad-ring{fill:none;pointer-events:none}.drum-pad-ring.armed{stroke:var(--brand);filter:drop-shadow(0 0 4px color-mix(in srgb, var(--brand) 50%, transparent)) drop-shadow(0 0 8px color-mix(in srgb, var(--brand) 25%, transparent))}.drum-pad-ring.hit{stroke:var(--brand);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--brand) 90%, transparent)) drop-shadow(0 0 14px color-mix(in srgb, var(--brand) 55%, transparent))}.drum-pad-ring.perfect{stroke:var(--perfect);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--perfect) 90%, transparent)) drop-shadow(0 0 14px color-mix(in srgb, var(--perfect) 55%, transparent))}.drum-pad-ring.good{stroke:var(--good);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--good) 90%, transparent)) drop-shadow(0 0 14px color-mix(in srgb, var(--good) 55%, transparent))}.drum-pad-ring.miss{stroke:var(--miss);filter:drop-shadow(0 0 6px color-mix(in srgb, var(--miss) 90%, transparent)) drop-shadow(0 0 14px color-mix(in srgb, var(--miss) 55%, transparent))}.drum-pad-judge.perfect{fill:var(--perfect)}.drum-pad-judge.good{fill:var(--good)}.drum-pad-judge.miss{fill:var(--miss)}.drum-pad-flash{fill:var(--brand);opacity:.28;pointer-events:none}.drum-pad-badge-bg{fill:var(--surface-3);stroke:var(--line-strong);stroke-width:1px}.drum-pad-badge-bg.highlight{fill:var(--brand);stroke:var(--brand)}.drum-pad-badge-text{fill:var(--text-1);font-family:var(--font-num);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-size:14px;font-weight:500}.drum-pad-badge-text.highlight{fill:var(--brand-on)}.drum-pad-badge.later{opacity:.55}.drum-pad-badge-dot{fill:var(--text-1);stroke:var(--surface-1);stroke-width:1px;pointer-events:none}.play-sl{gap:var(--space-s);padding:var(--space-m);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);color:var(--text-1);flex-direction:column;display:flex}.play-sl-title{margin:0;font-size:18px;font-weight:600}.play-sl-desc{color:var(--text-2);margin:0;font-size:12px}.play-sl-rows{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.play-sl-row{align-items:center;gap:var(--space-s);padding:0 var(--space-s);border-radius:var(--radius-control);cursor:default;border:1px solid #0000;font-size:14px;display:flex}.play-sl-row:hover,.play-sl-row.active{border-color:var(--line-strong);background:var(--surface-2)}.play-sl-staff{flex:none}.play-sl-line,.play-sl-ledger{stroke:var(--text-3);stroke-width:1px}.play-sl-sym{stroke:var(--text-1);stroke-width:1.6px;fill:none}.play-sl-sym.fill{fill:var(--text-1);stroke:none}.play-sl-dot{border-radius:50%;flex:none;width:10px;height:10px}.play-sl-name{flex:auto;min-width:0}.play-sl-tag{color:var(--text-2);font-size:12px}.play-sl-tag.foot{color:var(--brand-sub);font-weight:600}.play-sl-note{color:var(--text-3);margin:0;font-size:11px}.play-rp{gap:var(--space-l);color:var(--text-1);flex-direction:column;display:flex}.play-rp-head{align-items:center;gap:var(--space-l);display:flex}.play-rp-title{margin:0;font-size:24px;font-weight:700}.play-rp-body{align-items:flex-start;gap:var(--space-l);display:flex}.play-rp-main{gap:var(--space-m);flex-direction:column;flex:1 1 0;min-width:0;max-width:748px;display:flex}.play-rp-song{align-items:center;gap:var(--space-l);flex-direction:row}.play-rp .play-rp-cover{flex:none;width:120px}.play-rp .play-rp-cover .song-cover-disc{height:80%}.play-rp-song-info{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.play-rp-song-title{overflow-wrap:anywhere;margin:0;font-size:24px;font-weight:700}.play-rp-song-meta{color:var(--text-2);margin:0;font-size:12px}.play-rp-levels{gap:var(--space-s);margin-top:var(--space-s);display:flex}.play-rp-levels .song-level{padding:6px 16px;font-size:14px}.play-rp-check.need{border-color:var(--brand-sub)}.play-rp-check-head{justify-content:space-between;align-items:center;display:flex}.play-rp-check-title{margin:0;font-size:16px;font-weight:600}.play-rp-state{font-size:12px;font-weight:600}.play-rp-state.ok{color:var(--good)}.play-rp-state.need{color:var(--brand-sub)}.play-rp-rows{gap:var(--space-s);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.play-rp-row{align-items:center;gap:var(--space-s);font-size:14px;display:flex}.play-rp-row-label{width:80px;color:var(--text-2)}.play-rp-row-value{align-items:center;gap:var(--space-m);color:var(--text-1);display:flex}.play-rp-row-value .need{color:var(--brand-sub)}.play-rp-dot{border-radius:50%;flex:none;width:6px;height:6px}.play-rp-dot.ok{background:var(--good)}.play-rp-dot.need{background:var(--brand-sub)}.play-rp-hands{gap:var(--space-s);color:var(--text-2);font-size:12px;display:flex}.play-rp-hand{align-items:center;gap:var(--space-xs);display:inline-flex}.play-rp-hand-dot{border:1px solid var(--text-3);border-radius:50%;width:6px;height:6px}.play-rp-hand-dot.on.l{border-color:var(--left);background:var(--left)}.play-rp-hand-dot.on.r{border-color:var(--right);background:var(--right)}.play-rp-actions{align-items:center;gap:var(--space-l);display:flex}.play-rp-start{align-items:center;gap:var(--space-m);display:flex}.play-rp .play-rp-start-btn{width:200px;height:44px}.play-rp-hint{color:var(--text-2);margin:0;font-size:14px}.play-rp-hint.need{color:var(--brand-sub)}.play-rp-side{gap:var(--space-m);flex-direction:column;flex:none;width:380px;display:flex}.play-rp-preview{gap:var(--space-m)}.play-rp-kit{border-radius:var(--radius-control);background:var(--bg-canvas);width:340px;max-width:100%;overflow:hidden}.play-rp-caption{color:var(--text-2);margin:0;font-size:12px}.free-page{--free-px:var(--space-xl);--free-py:28px;gap:var(--space-m);min-height:calc(100vh - 56px);padding:var(--free-py) var(--free-px);box-sizing:border-box;flex-direction:column;display:flex}@media (width<=1024px){.free-page{--free-px:var(--space-l);--free-py:var(--space-l)}}.free-accomp{align-items:center;gap:var(--space-m);height:60px;padding:0 var(--space-m);box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);flex:none;display:flex}.free-accomp-label{color:var(--text-3);flex:none;font-size:12px}.free-accomp-text{min-width:0;color:var(--text-2);flex:1;margin:0;font-size:14px}.free-canvas{min-height:0;padding:var(--space-m);gap:var(--space-s);flex:1;position:relative}.free-canvas-head{justify-content:space-between;align-items:baseline;gap:var(--space-m);flex:none;display:flex}.free-canvas-title{color:var(--text-1);margin:0;font-size:16px;font-weight:500}.free-canvas-meta{color:var(--text-3);font-size:12px}.free-kit{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.free-kit-inner{width:100%;transition:opacity var(--motion-fade) var(--ease-out)}.free-kit.is-dim .free-kit-inner{opacity:.4}.free-empty-wrap{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.free-empty-wrap>*{pointer-events:auto;background:var(--surface-2);border-color:var(--line-strong)}.free-guide{color:var(--text-2);text-align:center;flex:none;margin:0;font-size:14px}.free-guide.is-wait{color:var(--brand-sub)}.free-guide .kbd{margin-right:2px}.free-guide-pad{margin-right:var(--space-s);white-space:nowrap}.free-band{top:var(--space-m);z-index:2;align-items:center;gap:var(--space-m);width:560px;max-width:calc(100% - 2 * var(--space-m));padding:var(--space-s) var(--space-m);box-sizing:border-box;border:1px solid color-mix(in srgb, var(--brand-sub) 60%, transparent);border-radius:var(--radius-panel);background-color:var(--bg-base);background-image:linear-gradient(color-mix(in srgb, var(--brand-sub) 10%, transparent), color-mix(in srgb, var(--brand-sub) 10%, transparent));display:flex;position:absolute;left:50%;transform:translate(-50%)}.free-band-dots{gap:var(--space-s);flex:none;display:flex}.free-band-dot{box-sizing:border-box;border:2px solid var(--good);width:24px;height:24px;color:var(--good);font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;font-size:13px;line-height:1;display:flex}.free-band-dot.off{border-style:dashed;border-color:var(--miss);color:var(--miss)}.free-band-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.free-band-title{color:var(--text-1);font-size:14px;font-weight:500}.free-band-sub{color:var(--brand-sub);font-size:12px}.free-info{justify-content:space-between;align-items:center;gap:var(--space-l);height:72px;padding:0 var(--space-l);box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);flex:none;display:flex}.free-info-block{align-items:center;gap:var(--space-m);display:flex}.free-info-key{color:var(--text-3);font-size:12px}.free-info-stats{gap:var(--space-l);color:var(--text-1);font-size:14px;display:flex}.free-info-stats .num{font-family:var(--font-num);font-feature-settings:"lnum" 1, "tnum" 1}.result-page{gap:var(--space-l);flex-direction:column;display:flex}.result-page>*,.result-fb-section>*{flex-shrink:0}.result-summary{justify-content:space-between;align-items:center;gap:var(--space-l);min-height:104px;padding:var(--space-l);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);display:flex}.result-summary-song{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.result-summary-title-row{align-items:center;gap:var(--space-s);min-width:0;display:flex}.result-summary-title{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:24px;font-weight:600;line-height:1.45;overflow:hidden}.result-summary-meta{color:var(--text-2);margin:0;font-size:12px;line-height:1.45}.result-summary-block{gap:var(--space-xs);flex-direction:column;flex:none;display:flex}.result-summary-block:last-child{gap:0}.result-summary-label{color:var(--text-2);font-size:12px;line-height:1.45}.result-summary-accuracy{color:var(--brand-text)}.result-cols{gap:var(--space-m);grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.result-panel{gap:var(--space-s);min-width:0}.result-panel-head{justify-content:space-between;align-items:baseline;gap:var(--space-m);display:flex}.result-panel-title{margin:0;font-size:14px;font-weight:600;line-height:1.45}.result-caption{color:var(--text-3);margin:0;font-size:12px;line-height:1.45}.result-judge-rows{gap:var(--space-m);flex-direction:column;display:flex}.result-judge-row{align-items:center;gap:var(--space-m);height:18px;font-size:12px;display:flex}.result-judge-label{flex:none;width:76px}.result-judge-perfect{color:var(--perfect)}.result-judge-good{color:var(--good)}.result-judge-miss{color:var(--miss)}.result-judge-track{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-1);flex:1;min-width:0;height:18px;overflow:hidden}.result-judge-fill{height:100%}.result-judge-bg-perfect{background:var(--perfect)}.result-judge-bg-good{background:var(--good)}.result-judge-bg-miss{background:var(--miss)}.result-judge-count{min-width:2ch;font-family:var(--font-num);font-variant-numeric:tabular-nums;text-align:right;flex:none}.result-hist{align-items:flex-end;gap:var(--space-xs);height:76px;display:flex}.result-hist-bar{background:var(--good);border-radius:2px 2px 0 0;flex:1;min-height:2px}.result-hist-bar.perfect{background:var(--perfect)}.result-hist-axis{color:var(--text-3);justify-content:space-between;font-size:12px;line-height:1.45;display:flex}.result-fb-section{gap:var(--space-m);flex-direction:column;display:flex}.result-fb-list{gap:var(--space-m);grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;display:grid}.result-fb{align-items:flex-start;gap:var(--space-s);min-height:70px;padding:var(--space-s);border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-1);color:var(--text-1);font-family:var(--font);text-align:left;display:flex}.result-fb-icon{color:var(--brand-text);flex:none;margin-top:1px}.result-fb-content{gap:var(--space-xs);flex-direction:column;flex:1;min-width:0;display:flex}.result-fb-title{font-size:14px;line-height:1.45}.result-fb-desc{color:var(--text-2);font-size:12px;line-height:1.45}button.result-fb{height:auto}.result-fb-click{cursor:pointer;transition:border-color var(--motion-fast), background-color var(--motion-fast)}.result-fb-click:hover{border-color:var(--line-strong)}.result-fb-click.active{border-color:var(--brand);background:var(--surface-2)}.result-table-wrap{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);overflow:hidden}.result-table{font-size:12px}.result-table thead th{height:32px}.result-table tbody td{height:24px;padding-block:0;font-size:12px;line-height:1.45}.result-table tbody td,.result-table thead th{padding-inline:var(--space-m)}.result-actions{justify-content:flex-end;gap:var(--space-m);display:flex}.result-actions .ui-btn{min-width:128px}@media (width<=1024px){.result-col-timing{display:none}}@media (width<=800px){.result-cols,.result-fb-list{grid-template-columns:minmax(0,1fr)}.result-summary{flex-wrap:wrap}}.play-opt{gap:var(--space-s);flex-direction:column;display:flex}.play-opt-title{color:var(--text-1);margin:0;font-size:16px;font-weight:600}.play-opt-row{align-items:center;gap:var(--space-s);color:var(--text-1);cursor:pointer;font-size:14px;display:flex}.play-opt-row.disabled{color:var(--text-3);cursor:default}.play-opt-row input{width:16px;height:16px;accent-color:var(--brand);margin:0}.ui-icon-btn{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);min-height:0;color:var(--text-1);cursor:pointer;transition:background-color var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), transform var(--motion-press);flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.ui-icon-btn-md{width:44px;height:44px}.ui-icon-btn-sm{width:32px;height:32px}.ui-icon-btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--line-strong)}.ui-icon-btn:active:not(:disabled){transform:scale(.96)}.ui-icon-btn.active{background:var(--surface-3);border-color:var(--brand);color:var(--brand-text)}.ui-icon-btn:disabled{opacity:.4;cursor:not-allowed}.studio-page{color:var(--text-1);flex-direction:column;gap:20px;display:flex}.studio-page.roomy{gap:var(--space-l)}.studio-head{justify-content:space-between;align-items:center;gap:var(--space-m);display:flex}.studio-head-title{min-width:0}.studio-head-title h2{margin:0}.studio-summary{margin:var(--space-xs) 0 0;color:var(--text-2);font-size:14px;line-height:1.45}.studio-upload-btn{flex:none;width:160px}.studio-body{display:block}.studio-body.split{gap:var(--space-l);grid-template-columns:minmax(0,1fr) 300px;align-items:start;display:grid}.studio-main-col{flex-direction:column;gap:20px;min-width:0;display:flex}.studio-body.split .studio-main-col{gap:var(--space-m)}.studio-toolbar{justify-content:space-between;align-items:center;gap:var(--space-m);min-height:44px;display:flex}.studio-sortnote{color:var(--text-3);margin:0;font-size:12px;line-height:1.45}.studio-badge{--badge-color:var(--good);align-items:center;gap:var(--space-s);padding:var(--space-xs) var(--space-m);background:color-mix(in srgb, var(--badge-color) 16%, transparent);color:var(--badge-color);white-space:nowrap;border-radius:999px;flex:none;font-size:12px;line-height:1.45;display:inline-flex}.studio-badge-active{--badge-color:var(--brand-text)}.studio-badge-danger{--badge-color:var(--miss)}.studio-badge-dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.studio-chip{padding:var(--space-xs) var(--space-s);border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--text-2);white-space:nowrap;align-items:center;font-size:12px;line-height:1.45;display:inline-flex}.studio-job{padding:var(--space-m);border:1px solid var(--brand);border-radius:var(--radius-panel);background:var(--surface-1);align-items:center;gap:20px;display:flex}.studio-job-cover{flex:none;width:96px;height:96px}.studio-job-body{flex-direction:column;flex:1 1 0;gap:12px;min-width:0;display:flex}.studio-job-title-row{align-items:center;gap:var(--space-s);min-width:0;display:flex}.studio-job-title{text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:600;line-height:1.45;overflow:hidden}.studio-job-steps{gap:var(--space-s);margin:0;padding:0;list-style:none;display:flex}.studio-job-step{gap:var(--space-s);flex-direction:column;flex:1 1 0;min-width:0;display:flex}.studio-job-bar{background:var(--surface-3);border-radius:3px;height:6px;display:block}.studio-job-step.done .studio-job-bar{background:var(--good)}.studio-job-step.active .studio-job-bar{background:var(--brand);animation:studio-pulse 1.2s var(--ease-in-out) infinite}.studio-job-step-label{color:var(--text-3);white-space:nowrap;font-size:12px;line-height:1.45}.studio-job-step.done .studio-job-step-label,.studio-job-step.active .studio-job-step-label{color:var(--text-1)}.studio-job-elapsed{align-items:flex-end;gap:var(--space-xs);white-space:nowrap;flex-direction:column;flex:none;display:flex}.studio-job-elapsed-label{color:var(--text-3);font-size:12px;line-height:1.45}.studio-job-elapsed-time{font-size:16px;line-height:1.45}@keyframes studio-pulse{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.studio-job-step.active .studio-job-bar,.studio-skeleton-bar{animation:none}}.studio-grid{gap:var(--space-l);grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin:0;padding:0;list-style:none;display:grid}.studio-card{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);min-width:0;color:var(--text-1);transition:background-color var(--motion-fast), border-color var(--motion-fast), box-shadow var(--motion-fast);flex-direction:column;gap:12px;padding:12px;display:flex;position:relative}.studio-card:hover{border-color:var(--line-strong);background:var(--surface-2)}.studio-card:has(:focus-visible){border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.studio-card.just-done,.studio-row.just-done{animation:studio-just-done 2s var(--ease-out)}@keyframes studio-just-done{0%{border-color:var(--brand-sub);background-color:color-mix(in srgb, var(--brand-sub) 16%, transparent);box-shadow:0 0 0 1px var(--brand-sub), 0 0 8px color-mix(in srgb, var(--brand-sub) 35%, transparent)}}.studio-card-cover{position:relative}.studio-card.failed .song-cover{opacity:.45}.studio-card .studio-card-menu{top:var(--space-s);right:var(--space-s);position:absolute}.studio-card-title{text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:600;line-height:1.45;overflow:hidden}.studio-card-artist{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.45;overflow:hidden}.studio-card-badges{align-items:center;gap:var(--space-s);display:flex}.studio-card-reason{color:var(--miss);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;line-height:1.45;overflow:hidden}.studio-card-actions{margin-top:auto;display:flex}.song-card-play{background:var(--brand);width:52px;height:52px;color:var(--brand-on);box-shadow:var(--shadow-dock);opacity:0;transition:opacity var(--motion-fade), transform var(--motion-move), background-color var(--motion-fast);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;bottom:12px;right:12px;transform:translateY(6px)}.song-card-play:hover{background:var(--brand-text)}.studio-card:hover .song-card-play,.studio-card:focus-within .song-card-play{opacity:1;transform:none}@media (hover:none){.song-card-play{opacity:1;transform:none}}.song-menu{position:relative}.song-menu-btn{border-radius:var(--space-m);background:0 0;border-color:#0000}.song-menu-list{z-index:5;width:180px;padding:var(--space-xs) 0;border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface-2);box-shadow:var(--shadow-dock);flex-direction:column;display:flex;position:absolute;top:36px;right:0}.song-menu-item{min-height:0;padding:var(--space-s) var(--space-m);color:var(--text-1);text-align:left;background:0 0;border:0;border-radius:0;font-size:14px;line-height:1.45}.song-menu-item:hover,.song-menu-item:focus-visible{background:var(--surface-3)}.song-menu-item.danger{color:var(--miss)}.song-menu-item.danger:not(:first-child){border-top:1px solid var(--line)}.studio-list{border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);margin:0;padding:0;list-style:none;overflow:hidden}.studio-row{align-items:center;gap:var(--space-m);box-sizing:border-box;height:64px;padding:var(--space-s) 12px;border-bottom:1px solid var(--line);color:var(--text-1);display:flex}.studio-row:last-child{border-bottom:0}.studio-row-cover{flex:none;width:44px;height:44px}.studio-row.failed .song-cover{opacity:.45}.studio-row-info{gap:var(--space-xs);flex-direction:column;flex:1 1 0;min-width:0;display:flex}.studio-row-title,.studio-row-sub{text-overflow:ellipsis;white-space:nowrap;line-height:1.45;overflow:hidden}.studio-row-title{font-size:14px}.studio-row-sub{color:var(--text-3);font-size:12px}.studio-row.failed .studio-row-sub{color:var(--miss)}.studio-row-date{width:80px;color:var(--text-3);flex:none;font-size:12px;line-height:1.45}.studio-row-actions{justify-content:flex-end;align-items:center;gap:var(--space-s);flex:none;width:220px;display:flex}.studio-row-stage{color:var(--brand-text);white-space:nowrap;font-size:12px;line-height:1.45}.studio-row-more{flex:none;width:32px;height:32px}.studio-skeleton-grid{gap:var(--space-l);grid-template-columns:repeat(auto-fill,260px);margin:0;padding:0;list-style:none;display:grid}.studio-skeleton-card{gap:var(--space-s);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);flex-direction:column;padding:12px;display:flex}.studio-skeleton-bar{border-radius:var(--radius-control);background:var(--surface-2);animation:studio-pulse 1.2s var(--ease-in-out) infinite;display:block}.studio-skeleton-bar.cover{aspect-ratio:1;width:100%}.studio-skeleton-bar.title{width:160px;height:20px}.studio-skeleton-bar.artist{width:100px;height:16px}.studio-skeleton-bar.action{width:100%;height:32px}.studio-error{padding:80px var(--space-l);border-radius:var(--radius-panel);background:var(--surface-1);text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.studio-error-title{margin:0;font-size:20px;font-weight:600;line-height:1.45}.studio-error-desc{color:var(--text-2);margin:0;font-size:14px;line-height:1.45}.studio-error-btn{width:160px}.studio-howto{box-sizing:border-box;gap:var(--space-m);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);flex-direction:column;padding:20px;display:flex}.studio-howto-title{margin:0;font-size:20px;font-weight:600;line-height:1.45}.studio-howto-list{gap:var(--space-m);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.studio-howto-step{gap:12px;display:flex}.studio-howto-num{background:color-mix(in srgb, var(--brand) 16%, transparent);width:24px;height:24px;color:var(--brand-text);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:12px;line-height:1;display:flex}.studio-howto-text{flex-direction:column;min-width:0;display:flex}.studio-howto-h{font-size:14px;line-height:1.45}.studio-howto-d{color:var(--text-3);font-size:12px;line-height:1.45}.studio-policy-note,.studio-howto-note{color:var(--text-3);margin:0;font-size:12px;line-height:1.45}.studio-steps4{gap:var(--space-m);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.studio-steps4-item{gap:var(--space-s);padding:var(--space-m);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);flex-direction:column;display:flex}.studio-steps4-n{color:var(--brand-text)}.studio-steps4-h{font-size:14px;line-height:1.45}.studio-steps4-d{color:var(--text-3);font-size:12px;line-height:1.45}.studio-first-card{gap:20px}.studio-panel{flex-direction:column;gap:20px;display:flex}.studio-tabs{gap:var(--space-s);display:flex}.studio-tab{justify-content:center;width:96px}.studio-form{flex-direction:column;gap:20px;display:flex}.studio-drop{justify-content:center;align-items:center;gap:var(--space-s);padding:28px var(--space-m);border:1.5px dashed var(--line-strong);border-radius:var(--radius-panel);background:var(--bg-base);text-align:center;cursor:pointer;transition:border-color var(--motion-fast);flex-direction:column;display:flex}.studio-drop.large{padding:40px var(--space-m)}.studio-drop:hover,.studio-drop.over{border-color:var(--brand)}.studio-drop.disabled{cursor:default;opacity:.6}.studio-drop-icon{color:var(--text-2);display:flex}.studio-drop-title{overflow-wrap:anywhere;font-size:14px;line-height:1.45}.studio-drop-title.large{font-size:16px}.studio-drop-btn{width:160px}.studio-drop-limits{color:var(--text-3);font-size:12px;line-height:1.45}.studio-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.studio-first-card .studio-fields{gap:var(--space-m)}.studio-form-footer,.studio-dialog-footer{justify-content:flex-end;gap:var(--space-s);display:flex}.studio-footer-btn{width:160px}.studio-busy{padding:12px var(--space-m);border:1px solid var(--brand);border-radius:var(--radius-control);color:var(--text-2);margin:0;font-size:14px;line-height:1.45}.studio-reupload{padding:var(--space-s) 12px;border:1px solid var(--brand);border-radius:var(--radius-control);justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.dialog.studio-dialog{box-sizing:border-box;max-height:calc(100vh - 32px);padding:var(--space-l);border:1px solid var(--line-strong);border-radius:var(--radius-panel);background:var(--surface-1);box-shadow:var(--shadow-dock);flex-direction:column;gap:20px;display:flex;overflow-y:auto}.dialog.studio-dialog-upload{max-width:560px}.dialog.studio-dialog-info{max-width:480px}.dialog.studio-dialog-cover{max-width:400px}.dialog.studio-dialog-delete{max-width:420px}.studio-dialog-head{justify-content:space-between;align-items:center;gap:var(--space-m);display:flex}.studio-dialog-head h2{margin:0;font-size:20px;font-weight:600;line-height:1.45}.studio-dialog-close{border-radius:var(--space-m);background:0 0;border-color:#0000}.studio-dialog-form{flex-direction:column;gap:20px;display:flex}.studio-dialog-body{gap:var(--space-s);flex-direction:column;display:flex}.studio-delete-question{margin:0;font-size:16px;line-height:1.45}.studio-delete-detail{color:var(--text-2);margin:0;font-size:14px;line-height:1.45}.studio-cover-preview{justify-content:center;display:flex}.studio-cover-preview .song-cover{border-radius:var(--radius-panel);width:240px;max-width:100%;height:auto}.studio-cover-buttons{justify-content:center;gap:var(--space-s);display:flex}.studio-cover-btn{width:160px}.studio-cover-note{color:var(--text-3);text-align:center;margin:0;font-size:12px;line-height:1.45}.studio-toast-region{left:50%;bottom:var(--space-l);z-index:60;pointer-events:none;width:max-content;max-width:calc(100vw - 32px);position:fixed;transform:translate(-50%)}@media (width<=900px){.studio-steps4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.studio-body.split{grid-template-columns:minmax(0,1fr)}.studio-row-date{display:none}.studio-row-actions{width:auto}.studio-job{flex-wrap:wrap}}@media (width<=560px){.studio-fields,.studio-steps4{grid-template-columns:minmax(0,1fr)}.studio-head{flex-wrap:wrap}}.ui-toast{align-items:center;gap:var(--space-s);box-sizing:border-box;width:max-content;max-width:400px;min-height:64px;padding:var(--space-m);border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface-1);color:var(--text-1);font-size:14px;display:flex;box-shadow:0 8px 24px #0006}.ui-toast-dot{background:var(--brand);border-radius:50%;flex:none;width:8px;height:8px}.ui-toast-success .ui-toast-dot{background:var(--good)}.ui-toast-error .ui-toast-dot{background:var(--miss)}@font-face{font-family:Space Grotesk;src:url(/fonts/SpaceGrotesk-VariableFont_wght.ttf)format("truetype");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Bebas Neue;src:url(/fonts/BebasNeue-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--bg-canvas:#050607;--bg-base:#090a0c;--surface-1:#12151a;--surface-2:#1a1f26;--surface-3:#1f242c;--line:#ffffff14;--line-strong:#3a4250;--text-1:#f2f5f8;--text-2:#98a2b1;--text-3:#828d9e;--brand:#35a3d4;--brand-text:#52b2dd;--brand-on:#04141c;--brand-sub:#ffc83d;--perfect:#8fceea;--good:#4cd07d;--miss:#ff6b70;--level-easy:#3df5a0;--level-normal:#3db8ff;--level-hard:#ff4d6d;--fx-perfect:#3de8ff;--fx-good:#3df5a0;--fx-miss:#ff4d6d;--fx-combo:#ffd23d;--radius-control:8px;--radius-panel:14px;--radius-dock:20px;--space-xs:4px;--space-s:8px;--space-m:16px;--space-l:24px;--space-xl:40px;--space-dock-gap:12px;--shadow-dock:0 12px 16px #00000073;--shadow-lift:0 8px 20px #00000059;--motion-press:80ms;--motion-fast:.12s;--motion-base:.2s;--ease-out:cubic-bezier(0, 0, .58, 1);--ease-in-out:cubic-bezier(.42, 0, .58, 1);--motion-move:var(--motion-base);--motion-fade:var(--motion-base);--font:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;--font-num:"Space Grotesk", var(--font);--font-display:"Bebas Neue", var(--font);--left:var(--brand-sub);--right:var(--brand)}.t-display-64{font-family:var(--font-display);letter-spacing:2px;font-size:64px;font-weight:400;line-height:1}.t-display-20{font-family:var(--font-num);font-variant-numeric:lining-nums tabular-nums;font-size:20px;font-weight:500;line-height:1.1}.t-title-24{font-family:var(--font);font-size:24px;font-weight:600;line-height:1.45}.t-title-20{font-family:var(--font);font-size:20px;font-weight:600;line-height:1.45}.t-body-16{font-family:var(--font);font-size:16px;font-weight:400;line-height:1.45}.t-body-14{font-family:var(--font);font-size:14px;font-weight:400;line-height:1.45}.t-caption-12{font-family:var(--font);font-size:12px;font-weight:400;line-height:1.45}@media (prefers-reduced-motion:reduce){:root{--motion-press:0s;--motion-fast:0s;--motion-move:0s}}@keyframes motion-fade-in{0%{opacity:0}}@keyframes motion-pop-in{0%{transform:scale(.96)}}@keyframes motion-drop-in{0%{transform:translateY(-4px)}}@keyframes motion-rise-in{0%{transform:translateY(8px)}}.route-fade,.motion-overlay{animation:motion-fade-in var(--motion-fade) var(--ease-out)}.motion-dialog{animation:motion-fade-in var(--motion-fade) var(--ease-out), motion-pop-in var(--motion-move) var(--ease-out)}.motion-menu{animation:motion-fade-in var(--motion-fade) var(--ease-out), motion-drop-in var(--motion-move) var(--ease-out)}.motion-toast{animation:motion-fade-in var(--motion-fade) var(--ease-out), motion-rise-in var(--motion-move) var(--ease-out)}.motion-lift{transition:transform var(--motion-move) var(--ease-out), box-shadow var(--motion-move) var(--ease-out), border-color var(--motion-fast)}@media (hover:hover){.motion-lift:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-base);color:var(--text-1);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5;overflow-x:hidden}a{color:inherit}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line);background:var(--surface-1);border-radius:var(--radius-control);min-height:44px;transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), transform var(--motion-press);padding:8px 16px}button.small{min-height:32px;padding:4px 12px}button:hover{background:var(--surface-2)}button:active:not(:disabled),.dock-icon-btn:active:not(:disabled),.side-foot-btn:active,a.btn-primary:active,a.btn-ghost.as-button:active{transform:scale(.98)}a.btn-primary,a.btn-ghost.as-button,.side-item,.side-foot-btn{transition:background var(--motion-fast), border-color var(--motion-fast), color var(--motion-fast), transform var(--motion-press)}.chip:active:not(:disabled),.dock-pill:active:not(:disabled){transform:none}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-on);font-weight:700}.btn-primary:hover{background:var(--brand-text)}.btn-lg{border-radius:var(--radius-control);padding:14px 24px;font-size:17px}.btn-ghost{background:0 0}.btn-danger{border-color:var(--miss);color:var(--miss)}input[type=text],input[type=number],select{background:var(--bg-canvas);border:1px solid var(--line);border-radius:var(--radius-control);padding:7px 10px}input[type=range]{accent-color:var(--brand);width:100%}h1,h2,h3{letter-spacing:-.01em;margin:0;line-height:1.2}h1{font-size:34px;font-weight:800}h2{font-size:22px;font-weight:700}h3{font-size:16px;font-weight:700}p{margin:0}.dim{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:13px}.kbd{border:1px solid var(--line);background:var(--bg-canvas);text-align:center;min-width:26px;color:var(--text-1);border-bottom-width:3px;border-radius:6px;padding:2px 7px;font-size:12px;font-weight:600;display:inline-block}.shell{--side-w:240px;background:var(--bg-canvas);min-height:100%;display:flex}.workarea{flex-direction:column;flex:1;min-width:0;min-height:100vh;display:flex}.route-view{flex-direction:column;flex:1;min-width:0;display:flex}.route-view:focus,.topbar-title:focus{outline:none}.sidebar{box-sizing:border-box;width:240px;height:100vh;padding:var(--space-l);align-self:flex-start;align-items:center;gap:var(--space-xl);background:var(--bg-base);z-index:20;transition:width var(--motion-move) var(--ease-in-out), padding var(--motion-move) var(--ease-in-out);flex-direction:column;flex:none;display:flex;position:sticky;top:0;overflow:hidden auto;container-type:inline-size}.sidebar.collapsed{width:80px;padding:var(--space-m) 14px}.side-header{justify-content:space-between;align-items:center;gap:var(--space-s);width:100%;height:32px;transition:height var(--motion-move) var(--ease-in-out);display:flex}.sidebar.collapsed .side-header{height:68px}.sidebar.collapsed .side-header:not(:has(.side-toggle)){height:28px}@container (width<=60px){.side-header{flex-direction:column;justify-content:flex-start}}.side-toggle{border:1px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface-1);width:32px;height:32px;min-height:0;color:var(--text-2);flex:none;place-items:center;padding:0;display:grid}.side-toggle:hover{background:var(--surface-2);border-color:var(--brand);color:var(--text-1)}.side-toggle-arrow{transform-box:fill-box;transform-origin:50%;transition:transform var(--motion-move) var(--ease-in-out), translate var(--motion-fast)}.side-toggle-arrow.collapsed{transform:rotate(180deg)}.side-toggle:hover .side-toggle-arrow{translate:-2px}.sidebar.collapsed .side-toggle:hover .side-toggle-arrow{translate:2px}.side-logo{flex:1;min-width:0;line-height:28px;text-decoration:none;display:grid;overflow:hidden}.side-logo-full,.side-logo-short{white-space:nowrap;grid-area:1/1}.side-logo-full{font-family:var(--font-num);color:var(--text-1);transition:opacity var(--motion-press) var(--ease-out) var(--motion-fast);font-size:20px;font-weight:500}.side-logo-short{font-family:var(--font-display);color:var(--brand-text);opacity:0;transition:opacity var(--motion-press) var(--ease-out) 0s;justify-self:center;font-size:28px;font-weight:400}.sidebar.collapsed .side-logo-full{opacity:0;transition-delay:0s}.sidebar.collapsed .side-logo-short{opacity:1;transition-delay:var(--motion-fast)}@container (width<=60px){.side-logo{flex:none;width:100%}}.side-menu{gap:var(--space-s);flex-direction:column;width:100%;display:flex}.side-item{align-items:center;gap:var(--space-s);height:46px;padding:0 var(--space-m);box-sizing:border-box;border-radius:var(--radius-control);color:var(--text-2);white-space:nowrap;font-size:14px;text-decoration:none;display:flex;position:relative;overflow:hidden}.side-item:hover{color:var(--text-1)}.side-item.active{background:var(--surface-3);color:var(--text-1)}.side-item.active:before{content:"";background:var(--brand);width:3px;height:46px;position:absolute;top:0;left:0}.side-label{transition:opacity var(--motion-press) var(--ease-out) var(--motion-fast)}.sidebar.collapsed .side-label{opacity:0;transition-delay:0s}.side-icon{flex:none}.side-badge{background:var(--brand-sub);border-radius:50%;width:8px;height:8px;position:absolute;top:10px;right:12px}.side-footer{box-sizing:border-box;width:100%;padding:0 0 var(--space-l) var(--space-m);transition:padding-bottom var(--motion-move) var(--ease-in-out);flex-direction:column;gap:12px;margin-top:auto;display:flex}.sidebar.collapsed .side-footer{padding-bottom:var(--space-xl)}.side-foot-btn{align-items:center;gap:var(--space-s);height:28px;color:var(--text-2);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:0;padding:0;font-size:14px;text-decoration:none;display:flex}.side-foot-btn:hover,.side-foot-btn.active{color:var(--text-1);background:0 0}.topbar{z-index:20;box-sizing:border-box;height:56px;padding:0 var(--space-l);background:var(--bg-base);flex:none;align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar-title{letter-spacing:0;color:var(--text-1);white-space:nowrap;margin:0}.topbar-sensor{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.shell-dock{transform:translateX(calc(-50% + var(--side-w) / 2));transition:transform var(--motion-move) var(--ease-in-out);z-index:30;position:fixed;top:4px;left:50%}.shell.immersive .shell-dock{top:12px}.shell-right{top:12px;right:var(--space-l);z-index:30;align-items:center;gap:var(--space-m);height:32px;display:flex;position:fixed}.shell.immersive .shell-right{top:18px}.main{padding:28px var(--space-xl);box-sizing:border-box;flex:1;width:100%;max-width:1240px;margin:0 auto}.main.wide{max-width:none;padding:12px 16px 20px}@media (width<=1024px){.main,.main.wide{padding:var(--space-l)}}.stick-status,.stick-card{--stick-on:#67d58a;--stick-off:var(--miss);--stick-low:var(--brand-sub)}.stick-dot{background:var(--stick-off);border-radius:50%;flex:none;width:8px;height:8px}.stick-dot.on{background:var(--stick-on);box-shadow:0 0 8px var(--stick-on)}.stick-status{box-sizing:border-box;border:1px solid var(--line);background:var(--surface-2);height:32px;color:var(--text-1);white-space:nowrap;--stick-on:var(--good);--stick-off:var(--miss);--stick-low:#f59e0a;border-radius:16px;flex-shrink:0;align-items:center;gap:10px;padding:0 12px;font-size:12px;text-decoration:none;display:inline-flex}.stick-status:hover{border-color:var(--line-strong)}.stick-status .stick-dot{width:6px;height:6px;box-shadow:none}.stick-status-hand{color:var(--text-2);align-items:center;gap:5px;display:inline-flex}.stick-status-hand.off{opacity:.55}.stick-batt.low{color:var(--stick-low)}.stick-batt.critical{color:var(--stick-off);font-weight:600}.stick-batt.unknown{color:var(--text-3)}.card{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-panel);padding:18px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.col{flex-direction:column;gap:10px;display:flex}.grid-2{grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:20px;display:grid}@media (width<=900px){.grid-2{grid-template-columns:1fr}}.field{flex-direction:column;gap:4px;display:flex}.field label{color:var(--text-2);font-size:13px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);color:var(--text-2);background:0 0;border-radius:999px;padding:6px 12px}.chip:hover:not(.active){border-color:var(--line-strong);color:var(--text-1)}.chip.active{background:var(--brand);border-color:var(--brand);color:#1a1408;font-weight:700}.notice{border-radius:var(--radius-control);background:#e6b85c1f;border:1px solid #e6b85c66;padding:10px 14px;font-size:14px}.notice.error{background:#e05a5a1f;border-color:#e05a5a80}.hero{max-width:720px;padding:40px 0 30px}.hero h1{font-size:44px}.hero p{color:var(--text-2);margin-top:12px;font-size:17px}.steps{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}@media (width<=860px){.steps{grid-template-columns:1fr}}.step{min-height:190px;transition:border-color var(--motion-fast), transform var(--motion-fast);flex-direction:column;gap:10px;padding:22px;text-decoration:none;display:flex;position:relative}.step:hover{border-color:var(--brand);transform:translateY(-2px)}.step .num{color:var(--brand);font-size:13px;font-weight:700}.step h2{font-size:24px}.step .status{color:var(--text-2);margin-top:auto;font-size:13px}.step .status.ok{color:#67d58a}.keyhelp{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.keyhelp div{border:1px solid var(--line);border-radius:var(--radius-control);justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;display:flex}.kit-wrap{aspect-ratio:16/10;border-radius:var(--radius-panel);background:radial-gradient(600px 300px at 50% 110%, #2a3652 0%, var(--bg-canvas) 70%);border:1px solid var(--line);-webkit-user-select:none;user-select:none;touch-action:none;width:100%;position:relative;overflow:hidden}.kit-wrap canvas{width:100%;height:100%;display:block}.keymap-list{flex-direction:column;gap:6px;display:flex}.keymap-row{border-radius:var(--radius-control);border:1px solid #0000;grid-template-columns:14px 1fr auto auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.keymap-row.active{border-color:var(--brand);background:#e6b85c14}.keymap-row .swatch{border-radius:50%;width:14px;height:14px}.keymap-row .keys{flex-wrap:wrap;gap:4px;display:flex}.keymap-row .keys button{background:0 0;border:0;padding:0}.cal-layout{grid-template-columns:minmax(0,1.6fr) 320px;gap:20px;display:grid}@media (width<=960px){.cal-layout{grid-template-columns:1fr}}.cal-steps{flex-direction:column;gap:4px;display:flex}.cal-step{border-radius:var(--radius-control);color:var(--text-2);border:1px solid #0000;grid-template-columns:14px 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.cal-step.current{border-color:var(--brand);color:var(--text-1);background:#e6b85c14}.cal-step.done{color:var(--text-1)}.cal-step .swatch{border-radius:50%;width:14px;height:14px}.cal-step .meta{color:var(--text-3);font-size:12px}.cal-instruction{font-size:20px;font-weight:700}.progress{background:var(--bg-canvas);border:1px solid var(--line);border-radius:999px;height:10px;overflow:hidden}.progress>div{background:var(--brand);height:100%;transition:width var(--motion-press) linear}.chart-list{flex-direction:column;gap:6px;width:100%;max-width:420px;display:flex}.chart-item{text-align:left;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.chart-item.active{border-color:var(--brand);background:#e6b85c1a}.chart-item.disabled,.chart-item.disabled:hover{opacity:.5;cursor:default;border-color:var(--line);background:0 0}.chart-item strong .my-badge{vertical-align:middle;margin-left:8px}.diff{border:1px solid var(--line);color:var(--text-2);border-radius:999px;padding:2px 8px;font-size:12px}.result-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.stat{flex-direction:column;gap:4px;display:flex}.stat .v{font-variant-numeric:tabular-nums;font-size:32px;font-weight:800;line-height:1.1}.stat .k{color:var(--text-2);font-size:13px}.hist{align-items:flex-end;gap:2px;height:120px;padding-top:10px;display:flex}.hist>div{background:var(--good);border-radius:3px 3px 0 0;flex:1;min-height:2px}.hist>div.p{background:var(--perfect)}.hist-axis{color:var(--text-3);justify-content:space-between;font-size:12px;display:flex}.report-entry{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}a.btn-primary,a.btn-ghost.as-button{border:1px solid var(--brand);border-radius:var(--radius-control);padding:8px 14px;text-decoration:none;display:inline-block}a.btn-ghost.as-button{border-color:var(--line)}.pad-acc{flex-direction:column;gap:10px;display:flex}.pad-acc-row{grid-template-columns:72px minmax(0,1fr) 56px;align-items:center;column-gap:10px;display:grid}.pad-acc-name{font-size:14px}.pad-acc-bar{background:var(--bg-canvas);border-radius:999px;height:10px;overflow:hidden}.pad-acc-bar>div{border-radius:999px;height:100%}.pad-acc-v{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.pad-acc-meta{grid-column:2/4}.timeline svg{width:100%;display:block}.timeline .dot{vertical-align:middle;border-radius:50%;width:8px;height:8px;display:inline-block}.debug{border:1px solid var(--line);border-radius:var(--radius-panel);z-index:50;background:#0e1320eb;width:440px;max-height:50vh;padding:12px;font-size:12px;position:fixed;bottom:12px;right:12px;overflow:auto}.debug table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}.debug td,.debug th{text-align:right;border-bottom:1px solid var(--line);padding:2px 4px}.debug th:first-child,.debug td:first-child{text-align:left}.tuning{border-bottom:1px solid var(--line);margin-bottom:8px;padding-bottom:6px}.tuning-body{margin-top:6px}.tuning-group{flex-direction:column;gap:4px;display:flex}.glass-dock{justify-content:center;align-items:center;gap:var(--space-dock-gap);box-sizing:border-box;height:48px;padding:0 var(--space-m);background:color-mix(in srgb, var(--surface-1) 72%, transparent);-webkit-backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:var(--radius-dock);box-shadow:var(--shadow-dock);color:var(--text-1);white-space:nowrap;display:flex}.glass-dock.collapsed{border-radius:18px;height:36px;padding:0}.dock-divider{background:var(--line);flex:none;width:1px;height:28px}.dock-divider.short{height:14px}.dock-icon-btn{border-radius:var(--space-m);width:32px;height:32px;min-height:0;color:var(--text-2);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.dock-icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text-1)}.dock-icon-btn:disabled{opacity:.4;cursor:not-allowed}.dock-icon-btn.sound-toggle.on{color:var(--text-1)}.dock-icon-btn.sound-toggle:not(.on){color:var(--text-3)}.dock-collapse{width:24px}.dock-metro-chip{align-items:center;gap:var(--space-s);flex:none;width:120px;height:32px;display:flex}.dock-metro-body{align-items:center;gap:var(--space-s);border-radius:var(--radius-control);width:80px;height:32px;min-height:0;color:var(--text-2);cursor:pointer;background:0 0;border:0;padding:0;display:flex}.dock-metro-body:hover{background:var(--surface-3)}.dock-metro-body svg{flex:none;margin:0 6px}.dock-bpm{width:40px;font-family:var(--font-num);font-variant-numeric:lining-nums tabular-nums;text-align:center;color:var(--text-1);font-size:20px;font-weight:500;line-height:1.1}.dock-metro-chip.locked .dock-bpm{color:var(--brand-text)}.dock-switch{border:1px solid var(--line);background:var(--surface-3);cursor:pointer;border-radius:10px;flex:none;width:32px;height:20px;min-height:0;padding:0;position:relative}.dock-switch-knob{background:var(--text-3);width:14px;height:14px;transition:transform var(--motion-fast);border-radius:50%;position:absolute;top:2px;left:2px}.dock-switch.on{background:var(--brand);border-color:var(--brand)}.dock-switch.on .dock-switch-knob{background:var(--brand-on);transform:translate(12px)}.dock-preset{text-overflow:ellipsis;border:1px solid var(--line);background:var(--surface-3);max-width:140px;height:32px;min-height:0;color:var(--text-1);cursor:pointer;border-radius:999px;flex:none;padding:0 12px;font-size:12px;overflow:hidden}.dock-preset:hover{border-color:var(--line-strong)}.dock-preset.needs-ready{align-items:center;gap:var(--space-xs);border-color:var(--brand-sub);max-width:none;display:inline-flex}.dock-hand-dot{background:var(--miss);border-radius:50%;flex:none;width:6px;height:6px}.dock-hand-dot.on{background:var(--good)}.dock-pill{align-items:center;gap:var(--space-s);height:100%;min-height:0;color:var(--text-1);cursor:pointer;background:0 0;border:0;border-radius:18px;padding:0 10px;display:flex}.dock-pill:hover{background:var(--surface-3)}.dock-pill-metro{color:var(--text-2);display:flex}.dock-pill-metro.on{color:var(--brand-text)}.dock-pill-bpm{font-family:var(--font-num);font-variant-numeric:lining-nums tabular-nums;font-size:14px;font-weight:500}.dock-pill-dot{background:var(--text-3);border-radius:50%;width:6px;height:6px}.dock-pill-dot.on{background:var(--brand)}.public{background:var(--bg-canvas);flex-direction:column;min-height:100%;display:flex}.public-body{flex:1;justify-content:center;align-items:center;padding:24px 20px;display:flex}.public-caption{text-align:center;padding:0 20px 20px}.login{grid-template-columns:1fr;place-items:center;gap:32px;width:100%;max-width:1100px;display:grid}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.login-wordmark{letter-spacing:.06em;color:var(--brand);font-size:40px;font-weight:800}.login-slogan{color:var(--text-2);margin:0;font-size:17px}.login-kit{opacity:.55;pointer-events:none;width:100%;max-width:520px;margin-top:20px;display:none}.login-card{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-panel);width:100%;max-width:400px;padding:28px 24px 22px}.login-card h1{margin:0 0 8px;font-size:24px}.login-card .dim{margin:0 0 18px;font-size:14px}.login-card .notice{margin:0 0 14px}.login-buttons{gap:10px}.login-btn{justify-content:center;align-items:center;width:100%;height:44px;padding:0 16px 0 44px;font-size:15px;display:flex;position:relative}.login-mark{background:#0e13202e;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;margin-top:-11px;font-size:13px;font-weight:800;display:flex;position:absolute;top:50%;left:14px}.login-caption{color:var(--text-3);text-align:center;margin:16px 0 0;font-size:12px}@media (width>=960px){.login{grid-template-columns:1fr 400px;gap:64px}.login-brand{text-align:left;align-items:flex-start}.login-wordmark{font-size:56px}.login-kit{display:block}}.auth-wait{color:var(--text-2);justify-content:center;align-items:center;gap:10px;padding:40px 0;display:flex}.spinner{border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner,.weak-spinner{animation:none}}.profile-wrap{position:relative}.profile-trigger{border-radius:var(--radius-panel);cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:flex}.profile-trigger:hover .profile-avatar,.profile-trigger[aria-expanded=true] .profile-avatar{border-color:var(--brand)}.profile-avatar{border-radius:var(--radius-panel);border:1px solid var(--line);object-fit:cover;width:28px;height:28px;display:block}.profile-initial{background:var(--surface-2);color:var(--text-1);text-transform:uppercase;justify-content:center;align-items:center;font-size:12px;font-weight:400;display:flex}.profile-menu{z-index:20;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-control);flex-direction:column;align-items:flex-start;gap:8px;min-width:180px;padding:12px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 24px #0006}.profile-name{text-overflow:ellipsis;white-space:nowrap;max-width:220px;color:var(--text-1);font-size:14px;font-weight:600;overflow:hidden}.profile-badge{border:1px solid var(--line);color:var(--text-2);border-radius:999px;padding:2px 8px;font-size:11px}.profile-menu hr{border:0;border-top:1px solid var(--line);width:100%;margin:2px 0}.profile-menu [role=menuitem]{text-align:left;border-radius:var(--radius-control);width:100%;color:var(--text-2);font:inherit;cursor:pointer;background:0 0;border:0;padding:6px 8px;font-size:13px}.profile-menu [role=menuitem]:hover,.profile-menu [role=menuitem]:focus-visible{background:var(--surface-2);color:var(--text-1)}.dialog-backdrop{z-index:50;animation:motion-fade-in var(--motion-fade) var(--ease-out);background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-panel);width:100%;max-width:420px;animation:motion-fade-in var(--motion-fade) var(--ease-out), motion-pop-in var(--motion-move) var(--ease-out);padding:20px}.dialog h2{margin:0 0 12px;font-size:18px}.dialog ul{color:var(--text-2);flex-direction:column;gap:6px;margin:0 0 16px;padding-left:18px;font-size:14px;display:flex}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.my-badge{border:1px solid var(--line);color:var(--text-2);border-radius:999px;flex:none;padding:2px 8px;font-size:12px}.my-badge.active{border-color:var(--brand);color:var(--brand)}.my-badge.danger{border-color:var(--miss);color:var(--miss)}.notice.readiness{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.readiness-list{margin:0;padding-left:18px}.notice.readiness.compact{padding:8px 12px;font-size:13px}.sheet-strip{background:var(--surface-1);border-radius:12px;height:220px;display:block;position:relative;overflow:hidden}.sheet-snippet{background:var(--surface-1);border-radius:12px;height:200px;display:block;position:relative;overflow:hidden}.sheet-strip-canvas{width:100%;height:100%;position:absolute;inset:0}.sheet-pager{width:100%;height:100%;position:relative}.weak-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.weak-card{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius-control);background:var(--bg-canvas);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.weak-card.severe{border-left-color:var(--miss)}.weak-badge{border:1px solid var(--line);color:var(--text-2);border-radius:999px;padding:2px 8px;font-size:12px}.weak-badge.severe{border-color:var(--miss);color:var(--miss)}.weak-spinner{border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;width:12px;height:12px;margin-right:6px;animation:.9s linear infinite weak-spin;display:inline-block}@keyframes weak-spin{to{transform:rotate(360deg)}}.song-cover{aspect-ratio:1;border-radius:var(--radius-control);background:var(--bg-canvas);width:100%;display:block;overflow:hidden}.song-cover img{object-fit:cover;width:100%;height:100%;display:block}.song-cover.default{background:radial-gradient(120% 120% at 30% 20%, var(--surface-2) 0%, var(--surface-1) 45%, var(--bg-canvas) 100%);justify-content:center;align-items:center;display:flex}.song-cover-disc{filter:drop-shadow(0 6px 14px #00000073);width:86%;height:86%}.song-cover-disc .disc-body{fill:#b9c0cf}.song-cover-disc .disc-groove{fill:none;stroke:#0e13202e;stroke-width:.6px}.song-cover-disc .disc-label{fill:var(--brand)}.song-cover-disc .disc-hole{fill:var(--bg-canvas)}
