:root{--ink-0: #16171b;--ink-1: #1c1e23;--ink-2: #23262c;--ink-3: #2c3037;--rule: #30343c;--rule-strong: #434852;--fg: #e9e6df;--fg-2: #a9abb1;--fg-3: #767982;--amber: #f0a63a;--amber-hi: #ffbb57;--amber-dim: rgba(240, 166, 58, .14);--amber-ink: #1d1405;--rec: #e2574c;--rec-dim: rgba(226, 87, 76, .16);--ok: #86bb93;--ok-dim: rgba(134, 187, 147, .14);--warn: #d9bf68;--r1: #7ea6dd;--r2: #d38bb0;--r3: #8cc79d;--r4: #d9bf68;--r5: #ad97e6;--r6: #69bfc4;--r7: #e09673;--r8: #a7b06a;--font: "Archivo", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius-s: 6px;--radius-m: 10px;--radius-l: 14px;--sidebar: 220px;--transport-h: 68px;--tabbar-h: 58px;--mini-h: 54px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--ease: cubic-bezier(.2, .7, .2, 1);color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--ink-0);color:var(--fg);font-family:var(--font);font-size:15px;line-height:1.5;font-variation-settings:"wdth" 100;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}#root{height:100%}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit}::selection{background:#f0a63a59}:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.num{font-variant-numeric:tabular-nums;font-variation-settings:"wdth" 78}.cond{font-variation-settings:"wdth" 80}h1,h2,h3,h4{margin:0;font-weight:640;letter-spacing:-.01em;line-height:1.2}h1{font-size:26px;font-variation-settings:"wdth" 84}h2{font-size:19px;font-variation-settings:"wdth" 88}h3{font-size:16px}h4{font-size:14px;color:var(--fg-2);font-weight:560}p{margin:0}.muted{color:var(--fg-2)}.faint{color:var(--fg-3)}.small{font-size:13px}.tiny{font-size:12px}.prose{max-width:68ch}.prose p+p{margin-top:.6em}.app{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);grid-template-rows:minmax(0,1fr) var(--transport-h);grid-template-areas:"side main" "side transport";height:100%;min-height:0}.sidebar{grid-area:side;border-right:1px solid var(--rule);background:var(--ink-0);display:flex;flex-direction:column;padding:18px 12px 14px;gap:4px;min-height:0;overflow-y:auto}.wordmark{font-weight:800;font-size:22px;letter-spacing:.06em;font-variation-settings:"wdth" 125;padding:2px 10px 18px;display:flex;align-items:center;gap:10px;text-decoration:none}.wordmark .bars{display:inline-flex;gap:2px;align-items:center;height:18px}.wordmark .bars i{display:block;width:3px;border-radius:2px;background:var(--fg);opacity:.85}.wordmark .bars i:first-child{background:var(--amber);opacity:1}.nav-item{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--radius-s);color:var(--fg-2);text-decoration:none;font-weight:520;transition:background .15s,color .15s}.nav-item:hover,.nav-item[aria-current=page]{background:var(--ink-2);color:var(--fg)}.nav-item[aria-current=page] svg{color:var(--amber)}.nav-item svg{flex:none}.sidebar .spacer{flex:1}.sidebar .local-note{padding:10px;font-size:12px;color:var(--fg-3);border-top:1px solid var(--rule);margin-top:8px;display:flex;gap:8px;align-items:flex-start}.main{grid-area:main;min-height:0;overflow-y:auto;overflow-x:hidden;position:relative}.page{padding:28px 32px 40px;max-width:1280px;margin:0 auto}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-head .sub{margin-top:4px;color:var(--fg-2)}.page-head .actions{display:flex;gap:8px;flex-wrap:wrap}.mobile-top,.tabbar{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 14px;border-radius:var(--radius-s);border:1px solid var(--rule-strong);background:var(--ink-2);color:var(--fg);font-weight:560;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,transform .08s;text-decoration:none;-webkit-user-select:none;user-select:none}.btn:hover{background:var(--ink-3)}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.btn.primary{background:var(--amber);border-color:var(--amber);color:var(--amber-ink)}.btn.primary:hover{background:var(--amber-hi)}.btn.ghost{background:transparent;border-color:transparent;color:var(--fg-2)}.btn.ghost:hover{background:var(--ink-2);color:var(--fg)}.btn.outline{background:transparent}.btn.danger{color:var(--rec);border-color:#e2574c66;background:transparent}.btn.danger:hover{background:var(--rec-dim)}.btn.small{height:30px;padding:0 10px;font-size:13px}.btn.large{height:46px;padding:0 20px;font-size:16px}.btn.icon{width:38px;padding:0}.btn.icon.small{width:30px}.btn.active{border-color:var(--amber);color:var(--amber);background:var(--amber-dim)}.btn.rec-on{background:var(--rec);border-color:var(--rec);color:#fff}.seg{display:inline-flex;border:1px solid var(--rule-strong);border-radius:var(--radius-s);padding:2px;background:var(--ink-1);gap:2px;flex-wrap:wrap}.seg button{border:0;background:transparent;color:var(--fg-2);height:30px;padding:0 11px;border-radius:4px;cursor:pointer;font-weight:540;font-size:13.5px}.seg button:hover{color:var(--fg)}.seg button[aria-pressed=true],.seg button[aria-selected=true]{background:var(--ink-3);color:var(--fg);box-shadow:inset 0 -2px 0 var(--amber)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-size:13px;color:var(--fg-2);font-weight:520}.input,.select,.textarea{height:40px;padding:0 12px;border-radius:var(--radius-s);border:1px solid var(--rule-strong);background:var(--ink-1);color:var(--fg);outline:none;width:100%;transition:border-color .15s,background .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--amber);background:var(--ink-2)}.textarea{height:auto;padding:10px 12px;resize:vertical;min-height:90px;line-height:1.55}.select{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--fg-2) 50%),linear-gradient(135deg,var(--fg-2) 50%,transparent 50%);background-position:calc(100% - 16px) 17px,calc(100% - 11px) 17px;background-size:5px 5px;background-repeat:no-repeat;padding-right:30px}.input.big{height:52px;font-size:20px;padding:0 16px}.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;color:var(--fg-2)}.switch input{-webkit-appearance:none;appearance:none;width:34px;height:20px;border-radius:10px;background:var(--ink-3);border:1px solid var(--rule-strong);position:relative;cursor:pointer;transition:background .15s;margin:0;flex:none}.switch input:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--fg-2);transition:transform .15s var(--ease),background .15s}.switch input:checked{background:var(--amber-dim);border-color:var(--amber)}.switch input:checked:after{transform:translate(14px);background:var(--amber)}.range{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:var(--ink-3);outline:none}.range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--fg);border:0;cursor:pointer}.range::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--fg);border:0;cursor:pointer}.panel{background:var(--ink-1);border:1px solid var(--rule);border-radius:var(--radius-m)}.panel-pad{padding:18px}.rule{border:0;border-top:1px solid var(--rule);margin:18px 0}.stack{display:flex;flex-direction:column;gap:12px}.stack-s{display:flex;flex-direction:column;gap:6px}.stack-l{display:flex;flex-direction:column;gap:24px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row.nowrap{flex-wrap:nowrap}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:11px;font-size:12px;font-weight:560;background:var(--ink-3);color:var(--fg-2);white-space:nowrap}.badge.amber{background:var(--amber-dim);color:var(--amber)}.badge.ok{background:var(--ok-dim);color:var(--ok)}.badge.rec{background:var(--rec-dim);color:var(--rec)}.badge.outline{background:transparent;border:1px solid var(--rule-strong)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.list{display:flex;flex-direction:column;border-top:1px solid var(--rule)}.list-row{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--rule);min-height:56px}.list-row .title{font-weight:560;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row .meta{color:var(--fg-3);font-size:13px}.list-row.clickable{cursor:pointer;border-radius:0}.list-row.clickable:hover{background:var(--ink-1)}.empty{border:1px dashed var(--rule-strong);border-radius:var(--radius-m);padding:28px 20px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}.empty h3{font-size:16px}.empty p{color:var(--fg-2);max-width:52ch}.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius-s);background:var(--ink-2);border-left:3px solid var(--fg-3);font-size:14px;color:var(--fg-2)}.notice.warn{border-left-color:var(--warn)}.notice.error{border-left-color:var(--rec);color:var(--fg)}.notice.info{border-left-color:var(--amber)}.notice svg{flex:none;margin-top:2px}.kbd{display:inline-block;padding:1px 6px;border-radius:4px;border:1px solid var(--rule-strong);font-size:11.5px;color:var(--fg-2);background:var(--ink-1)}.dialog-backdrop{position:fixed;inset:0;background:#08090b9e;z-index:95;display:grid;place-items:center;padding:20px;animation:fade .15s var(--ease)}.dialog{width:min(520px,100%);max-height:min(86dvh,760px);overflow:auto;background:var(--ink-1);border:1px solid var(--rule-strong);border-radius:var(--radius-l);padding:22px;box-shadow:0 24px 60px #00000073;animation:pop .18s var(--ease)}.dialog.wide{width:min(760px,100%)}.dialog h2{margin-bottom:6px}.dialog .foot{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;flex-wrap:wrap}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.985)}}.toast-host{position:fixed;z-index:100;right:20px;bottom:calc(var(--transport-h) + 16px);display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;background:var(--ink-3);border:1px solid var(--rule-strong);border-radius:var(--radius-s);padding:10px 14px;font-size:14px;max-width:380px;box-shadow:0 10px 30px #00000059;animation:pop .18s var(--ease);display:flex;gap:10px;align-items:center}.toast.error{border-color:#e2574c8c}.toast.success{border-color:#86bb9380}.transport{grid-area:transport;border-top:1px solid var(--rule);background:var(--ink-1);display:flex;align-items:center;gap:14px;padding:0 16px;min-width:0}.transport .group{display:flex;align-items:center;gap:8px;flex:none}.play-btn{width:44px;height:44px;border-radius:50%;border:0;background:var(--fg);color:var(--ink-0);display:grid;place-items:center;cursor:pointer;flex:none;transition:transform .08s,background .15s}.play-btn:hover{background:#fff}.play-btn:active{transform:scale(.96)}.play-btn.playing{background:var(--amber)}.pos{display:flex;align-items:baseline;gap:8px;min-width:112px}.pos .barbeat{font-size:26px;font-weight:720;font-variation-settings:"wdth" 70;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.01em}.pos .time{color:var(--fg-3);font-size:12px}.leds{display:flex;gap:4px;align-items:center}.leds i{width:7px;height:22px;border-radius:2px;background:var(--ink-3);transition:background .05s}.leds i.on{background:var(--fg)}.leds i.on.one{background:var(--amber)}.leds.counting i.on{background:var(--rec)}.bpm-box{display:flex;align-items:center;gap:2px;border:1px solid var(--rule-strong);border-radius:var(--radius-s);height:38px;padding:0 2px;background:var(--ink-0)}.bpm-box input{width:54px;border:0;background:transparent;text-align:center;font-weight:700;font-size:17px;font-variation-settings:"wdth" 75;font-variant-numeric:tabular-nums;outline:none;padding:0;-moz-appearance:textfield}.bpm-box input::-webkit-inner-spin-button{display:none}.bpm-box .unit{font-size:11px;color:var(--fg-3);margin-right:4px}.bpm-box button{width:26px;height:30px;border:0;background:transparent;color:var(--fg-2);cursor:pointer;border-radius:4px;display:grid;place-items:center}.bpm-box button:hover{background:var(--ink-3);color:var(--fg)}.timeline{position:relative;flex:1;min-width:120px;height:44px;border-radius:var(--radius-s);background:var(--ink-0);border:1px solid var(--rule);overflow:hidden;cursor:pointer;touch-action:none}.timeline canvas{position:absolute;inset:0;width:100%;height:100%}.timeline .label{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:12.5px;color:var(--fg-3);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 20px)}.transport .owner{font-size:12px;color:var(--fg-3);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.countin-overlay{position:fixed;inset:0;pointer-events:none;display:grid;place-items:center;z-index:70}.countin-overlay span{font-size:120px;font-weight:800;font-variation-settings:"wdth" 65;color:var(--rec);opacity:.9;text-shadow:0 6px 40px rgba(0,0,0,.6)}.popover{position:absolute;bottom:calc(100% + 8px);right:0;width:320px;background:var(--ink-2);border:1px solid var(--rule-strong);border-radius:var(--radius-m);padding:16px;box-shadow:0 18px 50px #00000073;z-index:60;animation:pop .15s var(--ease)}.popover-wrap{position:relative}.studio{display:grid;grid-template-columns:minmax(0,1fr) 340px;height:100%;min-height:0}.studio-main{min-height:0;overflow-y:auto;display:flex;flex-direction:column}.studio-side{border-left:1px solid var(--rule);min-height:0;overflow-y:auto;background:var(--ink-0);display:flex;flex-direction:column}.studio-toolbar{position:sticky;top:0;z-index:5;background:#16171bf0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);padding:10px 20px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.title-input{background:transparent;border:0;font-size:21px;font-weight:680;font-variation-settings:"wdth" 86;color:var(--fg);outline:none;padding:4px 6px;border-radius:6px;min-width:0;width:100%}.title-input:hover{background:var(--ink-1)}.title-input:focus{background:var(--ink-2)}.save-state{font-size:12px;color:var(--fg-3);white-space:nowrap;display:flex;align-items:center;gap:6px}.editor{padding:16px 20px 80px}.section{margin-bottom:26px}.section-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;padding-left:74px}.section-head .kind{font-weight:640;font-size:13.5px;color:var(--amber)}.section-head input{background:transparent;border:0;color:var(--fg-2);font-size:13.5px;outline:none;padding:2px 6px;border-radius:4px;min-width:60px}.section-head input:focus{background:var(--ink-2);color:var(--fg)}.section-head .line{flex:1;height:1px;background:var(--rule)}.lyric-line{display:grid;grid-template-columns:34px 34px minmax(0,1fr) auto;align-items:start;gap:0 6px;padding:1px 0;border-radius:6px;position:relative}.lyric-line:hover .line-tools,.lyric-line.focused .line-tools{opacity:1}.lyric-line.current{background:var(--amber-dim)}.lyric-line.current .gutter-bar{color:var(--amber)}.gutter-bar,.gutter-syl{font-size:12px;color:var(--fg-3);text-align:right;padding-top:11px;font-variant-numeric:tabular-nums;font-variation-settings:"wdth" 80;-webkit-user-select:none;user-select:none}.gutter-syl{text-align:center}.gutter-syl .letter{display:block;font-weight:700;font-size:11px;margin-top:-2px}.line-field{position:relative;min-width:0}.line-mirror,.line-input{font-family:var(--font);font-size:18px;line-height:1.6;letter-spacing:0;padding:6px 8px;margin:0;border:0;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;font-variation-settings:"wdth" 100}.line-mirror{position:absolute;inset:0;color:var(--fg);pointer-events:none}.line-input{position:relative;display:block;width:100%;resize:none;overflow:hidden;background:transparent;color:transparent;caret-color:var(--amber);outline:none;border-radius:6px;min-height:41px}.line-input:hover{background:#ffffff05}.line-input:focus{background:#ffffff09}.line-input::placeholder{color:var(--fg-3)}.line-mirror .rw{border-radius:3px;box-shadow:inset 0 -2px 0 var(--rc);background:color-mix(in srgb,var(--rc) 16%,transparent)}.line-mirror .rw.weak{box-shadow:inset 0 -2px color-mix(in srgb,var(--rc) 55%,transparent);background:transparent}.line-mirror .rw.internal{background:transparent;box-shadow:inset 0 -1.5px 0 var(--rc)}.line-tools{opacity:0;display:flex;gap:2px;padding-top:5px;transition:opacity .12s}.line-tools .btn.icon.small{width:28px;height:28px}.line-version-note{grid-column:3 / 5;font-size:12px;color:var(--fg-3);padding:0 8px 4px}.add-line{margin-left:74px}.side-tabs{display:flex;border-bottom:1px solid var(--rule);padding:0 8px;position:sticky;top:0;background:var(--ink-0);z-index:3}.side-tabs button{flex:1;border:0;background:transparent;color:var(--fg-3);padding:12px 4px 10px;cursor:pointer;font-weight:560;font-size:13.5px;border-bottom:2px solid transparent}.side-tabs button[aria-selected=true]{color:var(--fg);border-bottom-color:var(--amber)}.side-body{padding:16px;display:flex;flex-direction:column;gap:14px}.rhyme-results{display:flex;flex-direction:column}.rhyme-hit{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:7px 4px;border-bottom:1px solid var(--rule);font-size:14.5px}.rhyme-hit button.word{background:none;border:0;text-align:left;padding:0;cursor:pointer;color:var(--fg);font-size:15px}.rhyme-hit button.word:hover{color:var(--amber)}.type-perfekt{color:var(--ok)}.type-unrein{color:var(--r1)}.type-assonanz{color:var(--r5)}.type-nebenton{color:var(--r4)}.hint{padding:10px 12px;border-radius:var(--radius-s);background:var(--ink-1);border:1px solid var(--rule);font-size:13.5px}.hint .k{font-size:12px;color:var(--amber);font-weight:600;margin-bottom:2px;display:block}.flow-grid{display:flex;flex-direction:column;gap:10px}.flow-bar{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;align-items:stretch}.flow-bar-head{display:flex;flex-direction:column;gap:4px;align-items:flex-start;padding-top:4px}.flow-bar-head .n{font-weight:720;font-variation-settings:"wdth" 72;font-size:18px;font-variant-numeric:tabular-nums}.flow-cells{display:grid;gap:3px;position:relative;padding:18px 0 0}.flow-cells .beat-label{position:absolute;top:0;font-size:11px;color:var(--fg-3);transform:translate(2px);font-variant-numeric:tabular-nums}.cell{height:54px;min-width:0;border-radius:5px;border:1px solid var(--rule);background:var(--ink-1);display:grid;place-items:center;font-size:13.5px;font-weight:560;cursor:pointer;position:relative;user-select:none;-webkit-user-select:none;touch-action:none;overflow:hidden;transition:background .08s,border-color .08s;padding:0 2px}.cell span{overflow:hidden;text-overflow:clip;white-space:nowrap;max-width:100%}.cell.beat{background:var(--ink-2)}.cell.beat-start{margin-left:4px}.cell.filled{background:#2f333b;border-color:var(--rule-strong);color:var(--fg)}.cell.filled.accent{background:var(--amber);border-color:var(--amber);color:var(--amber-ink);font-weight:700}.cell.rest:after{content:"";width:8px;height:2px;border-radius:1px;background:var(--rule-strong)}.cell.selected{outline:2px solid var(--fg);outline-offset:-2px}.cell.drop-target{border-color:var(--amber);background:var(--amber-dim)}.cell.playing{box-shadow:inset 0 -3px 0 var(--fg)}.cell.filled.playing{background:#474c56}.cell.filled.accent.playing{background:var(--amber-hi)}.cell.dragging{opacity:.35}.drag-ghost{position:fixed;pointer-events:none;z-index:100;padding:6px 10px;border-radius:5px;background:var(--fg);color:var(--ink-0);font-weight:700;font-size:14px;transform:translate(-50%,-120%)}.check-item{display:flex;gap:10px;align-items:flex-start;font-size:14px}.check-item .box{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--rule-strong);flex:none;display:grid;place-items:center;margin-top:2px}.check-item.ok .box{background:var(--ok);border-color:var(--ok);color:var(--ink-0)}.ch-target{font-size:clamp(34px,6vw,58px);font-weight:780;font-variation-settings:"wdth" 76;letter-spacing:-.01em;line-height:1.05}.timer{font-size:30px;font-weight:720;font-variation-settings:"wdth" 70;font-variant-numeric:tabular-nums}.timer.low{color:var(--rec)}.attempts{display:flex;flex-wrap:wrap;gap:8px}.attempt{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 12px;border-radius:18px;border:1px solid var(--rule-strong);background:var(--ink-1);font-size:15px;animation:pop .2s var(--ease)}.attempt.ok{border-color:#86bb9380}.attempt.bad{opacity:.65;text-decoration:line-through;text-decoration-color:var(--fg-3)}.attempt small{color:var(--fg-3);font-size:12px}.ending-row{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--rule)}.ending-row .letter{font-weight:760;font-variation-settings:"wdth" 72;font-size:18px;color:var(--fg-3);padding-top:9px;text-align:center}.ending-input{display:flex;align-items:stretch;border:1px solid var(--rule-strong);border-radius:var(--radius-s);background:var(--ink-1);min-width:0}.ending-input:focus-within{border-color:var(--amber)}.ending-input textarea{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:17px;padding:9px 12px;resize:none;line-height:1.45;min-height:44px;overflow:hidden}.ending-input .fixed{flex:none;padding:9px 12px;font-size:17px;line-height:1.45;color:var(--amber);font-weight:640;border-left:1px dashed var(--rule-strong);background:var(--ink-2);border-radius:0 var(--radius-s) var(--radius-s) 0;white-space:nowrap;align-self:stretch;display:flex;align-items:center}.ending-row.done .ending-input{border-color:#86bb9380}.fb{font-size:13px;color:var(--fg-2);padding:6px 2px 0;display:flex;flex-direction:column;gap:3px}.choice-list{display:flex;flex-direction:column;border-top:1px solid var(--rule)}.choice{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 6px;border-bottom:1px solid var(--rule);text-decoration:none;cursor:pointer}.choice:hover{background:var(--ink-1)}.choice .ic{width:40px;height:40px;border-radius:var(--radius-s);background:var(--ink-2);display:grid;place-items:center;color:var(--fg-2)}.choice:hover .ic{color:var(--amber)}.choice .t{font-weight:600}.choice .d{color:var(--fg-2);font-size:13.5px}.path{display:flex;flex-direction:column}.path-step{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--rule);text-decoration:none}.path-step .n{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--rule-strong);display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--fg-3);font-variant-numeric:tabular-nums}.path-step.done .n{background:var(--ok);border-color:var(--ok);color:var(--ink-0)}.path-step.next .n{border-color:var(--amber);color:var(--amber)}.path-step:hover{background:var(--ink-1)}.home-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;margin-bottom:28px}.continue{padding:22px;border-radius:var(--radius-l);background:var(--ink-1);border:1px solid var(--rule);display:flex;flex-direction:column;gap:14px;min-height:210px}.continue .excerpt{font-size:19px;line-height:1.55;color:var(--fg);max-width:46ch}.continue .excerpt .ln{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.continue .excerpt .ln:nth-child(n+2){color:var(--fg-2)}.stat-line{display:flex;gap:28px;flex-wrap:wrap}.stat .v{font-size:30px;font-weight:740;font-variation-settings:"wdth" 70;font-variant-numeric:tabular-nums;line-height:1.05}.stat .l{font-size:12.5px;color:var(--fg-2)}.goal-bar{height:6px;border-radius:3px;background:var(--ink-3);overflow:hidden}.goal-bar i{display:block;height:100%;background:var(--amber);border-radius:3px;transition:width .4s var(--ease)}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:end;height:70px}.week .d{display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}.week .d i{width:100%;max-width:26px;border-radius:3px 3px 1px 1px;background:var(--ink-3);min-height:3px}.week .d i.has{background:var(--fg-2)}.week .d i.today{background:var(--amber)}.week .d span{font-size:11px;color:var(--fg-3)}.section-title{display:flex;align-items:baseline;justify-content:space-between;margin:30px 0 10px;gap:12px}.section-title h2{font-size:17px}.beat-row canvas{width:140px;height:32px;display:block}.session-steps{display:flex;gap:6px;margin-bottom:18px}.session-steps i{flex:1;height:4px;border-radius:2px;background:var(--ink-3)}.session-steps i.done{background:var(--fg-2)}.session-steps i.cur{background:var(--amber)}.meter{height:6px;border-radius:3px;background:var(--ink-3);overflow:hidden;width:120px}.meter i{display:block;height:100%;background:var(--ok);transition:width .05s}.tap-pad{width:100%;min-height:180px;border-radius:var(--radius-l);border:1px solid var(--rule-strong);background:var(--ink-1);display:grid;place-items:center;font-size:18px;color:var(--fg-2);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:background .06s}.tap-pad:active,.tap-pad.hit{background:var(--ink-3);color:var(--fg)}.dev-strip{position:relative;height:54px;border:1px solid var(--rule);border-radius:var(--radius-s);background:var(--ink-0)}.dev-strip .center{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--amber)}.dev-strip .tick{position:absolute;top:12px;width:3px;height:30px;border-radius:2px;background:var(--fg-2);transform:translate(-50%)}.dev-strip .lab{position:absolute;bottom:2px;font-size:10.5px;color:var(--fg-3)}.word-drop{font-size:clamp(40px,9vw,84px);font-weight:800;font-variation-settings:"wdth" 72;line-height:1;animation:pop .25s var(--ease)}@media(max-width:1180px){.studio{grid-template-columns:minmax(0,1fr) 300px}.transport .owner{display:none}}@media(max-width:1023px){:root{--sidebar: 64px}.sidebar{padding:14px 8px;align-items:center}.wordmark span.txt,.nav-item span,.sidebar .local-note span{display:none}.wordmark{padding:2px 0 16px}.nav-item{justify-content:center;padding:11px}.sidebar .local-note{justify-content:center;padding:10px 0}.studio{grid-template-columns:minmax(0,1fr)}.studio-side{display:none}.studio.side-open .studio-side{display:flex;position:fixed;right:0;top:0;bottom:var(--transport-h);width:min(360px,92vw);z-index:40;box-shadow:-20px 0 50px #0006}.home-hero{grid-template-columns:1fr}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.transport{gap:8px;padding:0 10px}.transport .tt-extra,.transport .stop-btn,.pos .time{display:none}.transport .timeline{min-width:60px}}@media(max-width:639px){body{font-size:15.5px}.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-areas:"top" "main" "transport" "tabs"}.sidebar{display:none}.mobile-top{grid-area:top;display:flex;align-items:center;gap:10px;padding:calc(var(--safe-t) + 10px) 14px 10px;border-bottom:1px solid var(--rule);background:var(--ink-0);min-height:52px}.mobile-top .wordmark{padding:0;font-size:17px}.mobile-top .wordmark .bars{height:15px}.mobile-top .title{font-weight:640;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variation-settings:"wdth" 88}.tabbar{grid-area:tabs;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--rule);background:var(--ink-1);padding-bottom:var(--safe-b)}.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:var(--tabbar-h);color:var(--fg-3);text-decoration:none;font-size:11px;font-weight:560}.tabbar a[aria-current=page]{color:var(--fg)}.tabbar a[aria-current=page] svg{color:var(--amber)}.app.typing .tabbar{display:none}.transport{height:var(--mini-h);gap:10px;padding:0 12px}.transport .timeline{display:none}.transport .mobile-expand{display:inline-flex}.play-btn{width:40px;height:40px}.pos{min-width:0}.pos .barbeat{font-size:22px}.pos .time{display:none}.leds i{width:5px;height:18px}.page{padding:18px 16px 32px}.page-head{margin-bottom:16px}.page-head h1{font-size:22px}.grid-2,.grid-3{grid-template-columns:1fr}.toast-host{left:12px;right:12px;bottom:calc(var(--mini-h) + var(--tabbar-h) + var(--safe-b) + 12px)}.dialog-backdrop{place-items:end center;padding:0}.dialog{width:100%;border-radius:var(--radius-l) var(--radius-l) 0 0;max-height:88dvh;padding:20px 18px calc(18px + var(--safe-b));animation:slideup .22s var(--ease)}@keyframes slideup{0%{transform:translateY(30px);opacity:0}}.popover{position:fixed;left:8px;right:8px;width:auto;bottom:calc(var(--mini-h) + var(--tabbar-h) + var(--safe-b) + 8px)}.studio-toolbar{padding:8px 12px}.editor{padding:12px 10px 60px}.lyric-line{grid-template-columns:26px minmax(0,1fr)}.lyric-line .gutter-bar{display:none}.lyric-line .line-tools{grid-column:2;display:none;padding:0 0 6px 4px}.lyric-line.focused .line-tools{display:flex}.line-version-note{grid-column:2}.section-head{padding-left:32px}.add-line{margin-left:32px}.line-mirror,.line-input{font-size:17px}.line-tools{opacity:1}.row.nowrap:has(>.input.big){flex-wrap:wrap}.row.nowrap>.input.big{flex-basis:100%}.studio.side-open .studio-side{bottom:calc(var(--mini-h) + var(--tabbar-h) + var(--safe-b));width:100%;top:auto;height:min(70dvh,calc(100dvh - 180px));border-radius:var(--radius-l) var(--radius-l) 0 0;z-index:45;border-top:1px solid var(--rule-strong)}.app.typing .studio.side-open .studio-side{bottom:var(--mini-h)}.flow-bar{grid-template-columns:1fr;gap:4px}.flow-bar-head{flex-direction:row;align-items:center}.cell{height:48px;font-size:12px}.flow-cells.dense .cell span{font-size:10.5px}.continue .excerpt{font-size:17px}.choice{grid-template-columns:36px minmax(0,1fr) auto;gap:10px}.ending-input{flex-direction:column}.ending-input .fixed{border-left:0;border-top:1px dashed var(--rule-strong);border-radius:0 0 var(--radius-s) var(--radius-s);white-space:normal}}.mobile-expand{display:none}@media(orientation:landscape)and (max-height:500px){.app{grid-template-rows:auto 1fr auto;grid-template-areas:"top" "main" "transport"}.tabbar{display:none!important}.mobile-top{padding-top:6px;padding-bottom:6px;min-height:40px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}@media(max-width:639px){.hide-mobile{display:none!important}}.stack-xs{display:flex;flex-direction:column;gap:4px}.row.wrap{flex-wrap:wrap}.beat-grid{position:relative;height:150px;border-radius:var(--radius-s);background:var(--ink-0);border:1px solid var(--rule);overflow:hidden;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.beat-grid canvas{position:absolute;inset:0;width:100%;height:100%}.beat-grid:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.density-dot{display:block;width:9px;height:9px;border-radius:50%;border:0;padding:0;margin:4px auto 0;cursor:pointer;background:var(--fg-3)}.density-dot.info{background:#7d8db8}.density-dot.hinweis{background:var(--amber)}.density-dot.konflikt{background:var(--rec)}.density-dot:after{content:"";position:absolute;inset:-10px}.density-dot{position:relative}.density-issue{border-left:3px solid var(--fg-3);padding:2px 0 2px 8px}.density-issue.info{border-color:#7d8db8}.density-issue.hinweis{border-color:var(--amber)}.density-issue.konflikt{border-color:var(--rec)}.line-density{grid-column:3 / 5;padding:2px 8px 8px}@media(max-width:639px){.beat-grid{height:136px}.line-density{grid-column:1 / -1}}.density-details{min-width:0;max-width:100%;overflow-wrap:anywhere}.density-details .btn{white-space:normal;height:auto;min-height:30px;padding-top:5px;padding-bottom:5px;text-align:left;line-height:1.25}.list-row>div[style*=flex-basis]{min-width:0}.offline-banner{display:flex;gap:8px;align-items:flex-start;margin:10px 16px 0;padding:8px 12px;border-radius:var(--radius-s);background:var(--ink-1);border:1px solid var(--rule);font-size:13px;color:var(--fg-2, var(--fg))}.app{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);box-sizing:border-box}@media(display-mode:standalone){body{overscroll-behavior:none}}
