.timeline-word{padding-right:10px;cursor:grab}.timeline-word:active{cursor:grabbing}.timeline-word-end{position:absolute;top:0;right:0;width:8px;height:100%;border-right:2px solid #a8a8a0;cursor:ew-resize}.waveform svg{display:block;width:100%;height:100%}.waveform path{fill:#b8b8b1}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#202020;background:#fafaf9;font-synthesis:none;font-size:13px;--muted:#858581;--line:#e7e7e3;--paper:#fff;--soft:#f3f3f0;--ink:#202020}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;border:0;background:none}button:disabled{opacity:.35;cursor:default}input,textarea,select{min-width:0}input[type=range]{accent-color:var(--ink);height:3px;cursor:pointer}input[type=checkbox]{accent-color:var(--ink)}input[type=number]{font-variant-numeric:tabular-nums}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #777;outline-offset:3px}button:hover:not(:disabled){background:var(--soft)}h2,h3,p{margin:0}h2,h3{font-size:13px;font-weight:550}svg{flex-shrink:0}kbd{font-family:inherit;color:var(--muted);font-size:11px;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{height:100dvh;min-height:460px;display:flex;flex-direction:column;overflow:hidden}.app-header{height:68px;flex-shrink:0;display:flex;align-items:center;gap:28px;padding:0 28px;border-bottom:1px solid var(--line);background:var(--paper)}.brand{font-size:23px;font-weight:650;letter-spacing:-1.1px;display:flex;align-items:baseline;white-space:nowrap}.version{margin-left:8px;font-size:9px;letter-spacing:0;font-weight:400;color:#999}.project-title{display:flex;align-items:center;gap:6px;min-width:0}.project-title input{background:none;border:0;width:160px;max-width:100%;padding:5px 0;font-size:12px}.save-status{color:#aaa;font-size:20px}.save-status.failed{color:#a3382a;font-size:11px;white-space:nowrap}.header-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.icon-button{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;flex-shrink:0}.text-button,.secondary-button,.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:7px 12px;white-space:nowrap;border-radius:4px;font-size:12px}.primary-button{background:var(--ink);color:#fff}.primary-button:hover:not(:disabled){background:#393939}.secondary-button{border:1px solid var(--line);background:var(--paper)}.text-button.selected{background:var(--soft)}.audio-button{max-width:210px;color:#666}.audio-button span{overflow:hidden;text-overflow:ellipsis}.export-button{margin-left:5px;padding-inline:16px}.more-menu{position:relative}.menu-dismiss{position:fixed;top:0;right:0;bottom:0;left:0;z-index:8;cursor:default}.menu-dismiss:hover:not(:disabled){background:transparent}.menu-items{position:absolute;right:0;top:40px;z-index:9;width:205px;padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 30px #0000000d}.menu-items button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;padding:10px 9px;font-size:12px;border-radius:3px}.menu-items button span{color:var(--muted);font-size:11px}.menu-items hr{border:0;border-top:1px solid var(--line);margin:4px 0}.mobile-tabs{display:none}.workspace{display:grid;grid-template-columns:284px minmax(0,1fr);flex:1;min-height:0;min-width:0}.workspace.with-style{grid-template-columns:284px minmax(0,1fr) 252px}.lyrics-panel{background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow:hidden}.lyrics-tabs{display:flex;gap:22px;padding:12px 22px 0;min-height:53px;border-bottom:1px solid var(--line)}.lyrics-tabs button{position:relative;color:var(--muted);padding:6px 0 15px;min-width:25px}.lyrics-tabs button:hover:not(:disabled){background:none;color:var(--ink)}.lyrics-tabs .selected{color:var(--ink)}.lyrics-tabs .selected:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--ink)}.lyrics-toolbar{padding:16px 18px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.lyrics-toolbar .secondary-button{border:0;padding:7px 4px}.reflow-field select{border:0;background:none;font-size:11px;color:var(--muted);max-width:112px;padding:6px 0;cursor:pointer}.lyric-rows{flex:1;overflow-y:auto;min-height:120px;padding:7px 16px 24px;scrollbar-width:thin;scrollbar-color:#ddd transparent}.lyric-row{display:flex;gap:12px;min-height:60px;padding:8px 4px;position:relative}.line-number{font-variant-numeric:tabular-nums;font-size:10px;color:#adada8;min-width:17px;padding-top:6px}.line-main{min-width:0;flex:1}.word-chips{display:flex;gap:1px 4px;flex-wrap:wrap;align-items:flex-start}.word-chip{font-size:15px;line-height:1.4;padding:2px 3px;border-radius:2px;display:flex;flex-direction:column;align-items:flex-start;text-align:left}.word-chip.selected{background:#eeeee9}.word-chip.current{color:var(--ink)}.word-chip small{font-size:9px;color:#999;font-variant-numeric:tabular-nums;line-height:1.8}.line-actions{height:25px;display:flex;gap:1px;opacity:0;pointer-events:none}.line-actions .icon-button{width:25px;height:25px;color:#888}.lyric-row:hover .line-actions,.lyric-row:focus-within .line-actions,.lyric-row.has-selection .line-actions{opacity:1;pointer-events:auto}.gap-row{align-items:center;min-height:55px}.gap-row .line-number{padding-top:0}.gap-content{display:flex;align-items:center;gap:5px;flex:1;color:#999;font-size:11px}.gap-content label{display:flex;gap:3px;align-items:center;margin-left:auto}.gap-content input{width:46px;border:0;background:none;text-align:right;padding:3px;color:#777}.gap-row>.icon-button{color:#aaa;width:25px;height:25px}.sync-controls{padding:0 22px 15px;border-bottom:1px solid var(--line)}.sync-controls>p{font-size:11px;color:var(--muted);margin:0 0 9px}.sync-start-button,.sync-stamp-button{display:flex;align-items:center;justify-content:space-between;gap:7px;width:100%;height:40px;padding:0 12px;background:var(--ink);color:#fff;border-radius:4px}.sync-start-button:hover:not(:disabled),.sync-stamp-button:hover:not(:disabled){background:#393939}.sync-stamp-button kbd{color:#ccc}.sync-options{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px}.loop-toggle{display:flex;align-items:center;gap:4px;font-size:10px;color:#777}.loop-toggle input{margin:0}.ai-sync-button{font-size:11px;padding:5px 7px;border-radius:3px}.auto-sync-progress{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;font-size:11px;color:#777}.auto-sync-progress button{font-size:11px;flex-shrink:0}.selected-word-editor{flex-shrink:0;border-top:1px solid var(--line);padding:16px 22px 20px}.selected-word-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.selected-word-heading strong{font-weight:500}.selected-word-heading span{color:var(--muted);font-size:11px}.stack-field{display:flex;flex-direction:column;gap:6px;font-size:10px;color:#888}.stack-field input{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:7px 8px;color:var(--ink);width:100%;font-size:12px}.word-time-fields{display:flex;gap:10px;margin-top:10px}.word-time-fields label{flex:1;min-width:0}.timing-nudges{display:flex;gap:8px;margin-top:10px}.timing-nudges button{flex:1;font-size:10px;padding:5px;min-height:28px}.center-workspace{min-width:0;min-height:0;display:flex;flex-direction:column;padding:26px 32px 20px;gap:20px}.preview-section{min-height:0;min-width:0;flex:1;display:flex;flex-direction:column;gap:18px}.canvas-stage{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.canvas-stage canvas{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}.canvas-stage:fullscreen{background:#151515;padding:0}.canvas-error{position:absolute;bottom:12px;background:#fff;color:#a3382a;padding:9px 12px;font-size:12px}.transport{min-height:40px;display:flex;align-items:center;gap:14px;flex-shrink:0}.playback-buttons{display:flex;align-items:center;gap:4px}.playback-buttons>.icon-button{color:#777;width:26px}.play-button{width:33px;height:33px;display:flex;align-items:center;justify-content:center;border-radius:50%}.play-button svg{width:15px;height:15px}.time-code{font-variant-numeric:tabular-nums;font-size:10px;white-space:nowrap}.time-code span{color:#999}.playback-seek{flex:1;min-width:40px;width:100%}.transport select{border:0;background:none;font-size:11px;width:46px;padding:4px 0}.fullscreen-button{color:#777}.timeline-section{flex-shrink:0;height:168px;border-top:1px solid var(--line);padding-top:10px;min-width:0}.timeline-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;height:25px}.timeline-heading h2{font-size:11px;font-weight:400;color:#888}.zoom-control{display:flex;align-items:center;gap:4px;font-size:10px;color:#888}.zoom-control .icon-button{width:24px;height:24px}.timeline-scroll{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#ccc transparent;padding-bottom:8px}.timeline-track{position:relative;min-width:100%;height:112px}.timeline-ruler{height:23px;border-bottom:1px solid var(--line);position:relative;cursor:crosshair;touch-action:none}.timeline-ruler span{position:absolute;top:1px;font-size:9px;color:#aaa;font-variant-numeric:tabular-nums}.waveform{height:37px;display:flex;align-items:center;gap:1px;cursor:crosshair;touch-action:none;overflow:hidden}.waveform i{background:#c9c9c3;flex:1;min-width:1px}.waveform.empty{height:15px}.word-lane{height:26px;position:relative;margin-top:3px}.timeline-word{position:absolute;height:24px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left;padding:3px 5px;font-size:10px;background:#e9e9e4;border-right:2px solid #fafaf9;border-radius:2px;touch-action:none}.timeline-word.selected{background:#d3d3cc}.timeline-word.current{background:#e7e4a1}.line-lane{position:relative;height:18px;margin-top:4px}.line-lane button{position:absolute;overflow:hidden;white-space:nowrap;text-align:left;font-size:9px;color:#aaa;height:17px;padding:1px 4px;border-left:1px solid #ddd}.playhead{position:absolute;top:19px;bottom:0;width:1px;background:#65655e;pointer-events:none}.playhead i{position:absolute;width:5px;height:5px;left:-2px;top:-2px;background:#65655e}.inspector{display:none;min-width:0;overflow-y:auto;border-left:1px solid var(--line);background:var(--paper);scrollbar-width:thin}.with-style .inspector{display:block}.panel-heading{height:53px;display:flex;align-items:center;padding:0 22px;border-bottom:1px solid var(--line)}.panel-heading h2{font-weight:500}.inspector-section{padding:20px 22px;border-bottom:1px solid var(--line)}.inspector-section:last-child{border-bottom:0}.inspector-section h3{font-size:11px;color:#8d8d87;font-weight:400;margin-bottom:17px}.slider-field{display:block;margin-top:17px}.slider-field>span{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin-bottom:11px}.slider-field output{font-size:10px;color:#999;font-variant-numeric:tabular-nums}.slider-field input{width:100%;display:block;margin:0}.layout-details{margin-top:23px}.layout-details summary{font-size:11px;cursor:pointer;color:#888}.label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;font-size:11px}.segmented{display:flex;border:1px solid var(--line);border-radius:4px;padding:2px}.segmented button{padding:5px 8px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:12px}.segmented .selected{background:var(--soft)}.color-field{display:flex;justify-content:space-between;align-items:center;margin:14px 0;font-size:11px}.color-field>div{display:flex;align-items:center;gap:7px;font-size:9px;color:#999}.color-field input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:21px;height:21px;padding:0;border:1px solid #ddd;border-radius:50%;overflow:hidden;background:none;cursor:pointer}.color-field input::-webkit-color-swatch-wrapper{padding:0}.color-field input::-webkit-color-swatch{border:0;border-radius:50%}.image-upload{width:100%;margin-top:4px;font-size:11px}.inspector-section>.text-button{font-size:11px;color:#888;margin-top:10px;padding:4px 0}.ratio-grid{display:flex;gap:6px}.ratio-grid button{flex:1;min-height:32px;font-size:11px;border:1px solid var(--line);border-radius:3px;display:flex;justify-content:center;align-items:center;gap:7px;color:#888}.ratio-grid button.selected{color:var(--ink);border-color:#999}.ratio-icon{display:none}.dimensions{display:flex;align-items:center;gap:7px;margin-top:14px}.dimensions>span{color:#aaa;font-size:10px;margin-top:17px}.dimensions label{font-size:10px;color:#999;display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}.dimensions input{width:100%;border:1px solid var(--line);border-radius:3px;padding:6px;color:var(--ink);font-size:11px}.modal{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:0;width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 48px);color:var(--ink);box-shadow:0 18px 80px #00000016}.modal::backdrop{background:#00000030}.modal-inner{padding:26px}.modal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal-heading h2{font-size:17px;font-weight:500;letter-spacing:-.3px}.modal-heading .icon-button{margin:-7px;color:#777}.dialog-description{font-size:12px;line-height:1.8;margin-bottom:16px;color:#777}.field-hint{font-size:11px;color:#8c8c86;line-height:1.7;margin-top:13px}.lyrics-textarea{display:block;width:100%;min-height:280px;max-height:45dvh;resize:vertical;padding:15px;border:1px solid var(--line);border-radius:4px;line-height:1.8;background:#fafaf9;font-size:14px}.dialog-options{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.dialog-options>.text-button{padding-left:0;color:#777}.dialog-options label{font-size:11px;color:#888;display:flex;align-items:center;gap:6px}.dialog-options input{width:64px;padding:6px;border:1px solid var(--line);border-radius:3px;color:var(--ink);text-align:right}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:25px}.export-summary{display:flex;flex-direction:column;gap:14px}.export-summary>div{display:flex;gap:24px;justify-content:space-between;font-size:12px}.export-summary span{color:#888;flex-shrink:0}.export-summary strong{font-weight:400;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.export-progress{margin-top:22px}.export-progress>div{display:flex;align-items:center;justify-content:space-between;color:#777;margin-bottom:10px}.export-progress progress{width:100%;height:5px;accent-color:var(--ink)}.export-complete{display:flex;align-items:center;gap:8px;margin:20px 0 12px;font-size:12px}.export-video{width:100%;max-height:240px;background:#111;display:block}.error-message{font-size:12px;line-height:1.7;color:#a3382a;margin-top:16px}.shortcut-list{display:flex;flex-direction:column;gap:19px}.shortcut-list>span{display:flex;justify-content:space-between;gap:20px;font-size:12px}.ai-progress{display:flex;gap:10px;align-items:center;font-size:12px;color:#666;margin:22px 0;line-height:1.6}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:15px;background:#222;color:#fff;border-radius:5px;padding:10px 12px 10px 17px;max-width:calc(100vw - 32px);z-index:20;font-size:12px;line-height:1.6;box-shadow:0 6px 20px #00000014}.toast .icon-button{width:24px;height:24px}.toast button:hover:not(:disabled){background:#444}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.latency-mode{display:flex;gap:4px;margin-bottom:20px}.latency-mode button{flex:1;min-height:34px}.latency-value{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.latency-value span{font-size:12px;color:#888}.latency-value output{font-size:24px;font-weight:400;letter-spacing:-.5px}.latency-field{display:flex;flex-direction:column;gap:14px;font-size:12px;color:#888}.latency-field input{width:100%;margin:0}.latency-run{margin-top:20px;display:flex;align-items:center;gap:8px}.latency-tap{flex:1;border:1px solid var(--line);border-radius:4px;min-height:36px;padding:7px 12px;display:flex;gap:10px;align-items:center;justify-content:space-between;font-size:12px}.latency-status{font-size:11px;color:#777;line-height:1.7;margin-top:15px}.latency-status.error{color:#a3382a}.latency-note{font-size:11px;color:#999;line-height:1.7;margin-top:14px}@media(min-width:1600px){.workspace{grid-template-columns:310px minmax(0,1fr)}.workspace.with-style{grid-template-columns:310px minmax(0,1fr) 266px}.center-workspace{padding:36px 48px 26px}.app-header{padding-inline:32px}}@media(max-width:1100px){.app-header{gap:20px;padding-inline:20px}.project-title input{width:120px}.audio-button{max-width:145px}.workspace{grid-template-columns:260px minmax(0,1fr)}.workspace.with-style{grid-template-columns:240px minmax(0,1fr) 224px}.center-workspace{padding:20px;gap:15px}.transport{gap:8px}.playback-buttons>.icon-button:last-child{display:none}.time-code span{display:none}.inspector-section{padding:20px 18px}}@media(max-width:800px){.app-shell{min-height:0}.app-header{height:59px;padding:0 16px;gap:15px}.brand{font-size:21px}.version{font-size:8px;margin-left:5px}.project-title{display:none}.header-actions{gap:4px}.audio-button{max-width:120px;font-size:11px;padding-inline:7px}.style-toggle{display:none}.export-button{font-size:11px;min-height:31px;padding:7px 11px}.mobile-tabs{display:flex;flex-shrink:0;min-height:45px;border-bottom:1px solid var(--line);background:var(--paper);justify-content:center;gap:32px}.mobile-tabs button{font-size:12px;color:#999;position:relative;padding:10px 0}.mobile-tabs .selected{color:var(--ink)}.mobile-tabs .selected:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--ink)}.workspace,.workspace.with-style{display:flex;min-height:0;flex:1}.lyrics-panel,.center-workspace,.inspector,.with-style .inspector{display:none}.app-shell[data-mobile-tab=lyrics] .lyrics-panel{display:flex;width:100%;border:0}.app-shell[data-mobile-tab=preview] .center-workspace{display:flex;width:100%;padding:20px 16px 16px;gap:15px}.app-shell[data-mobile-tab=style] .inspector{display:block;width:100%;border:0}.lyrics-tabs{justify-content:flex-start;padding-inline:24px}.lyrics-toolbar,.lyric-rows{padding-inline:24px}.lyric-row{min-height:68px}.line-actions{opacity:1;pointer-events:auto;height:28px}.line-actions .icon-button{width:30px;height:28px}.word-chip{font-size:17px}.word-chip small{font-size:10px}.line-number{padding-top:8px}.selected-word-editor{padding:12px 24px 17px}.selected-word-editor>.stack-field{max-width:100%}.word-time-fields,.timing-nudges{margin-top:8px}.sync-controls{padding-inline:24px}.sync-options{margin-top:12px}.loop-toggle{font-size:11px}.ai-sync-button{font-size:12px}.canvas-stage{flex:1}.transport{gap:8px;flex-wrap:wrap}.playback-buttons>.icon-button:last-child{display:flex}.time-code span{display:inline}.playback-seek{order:5;flex:1 0 100%;margin:10px 0 3px}.transport select{margin-left:auto}.preview-section{gap:12px}.timeline-section{height:152px}.timeline-track{height:106px}.timeline-heading{margin-bottom:5px}.inspector .panel-heading{display:none}.inspector-section{padding:22px 26px;max-width:560px;margin:auto}.slider-field{margin-top:22px}.slider-field>span{font-size:12px}.color-field{font-size:12px}.modal{max-height:calc(100dvh - 30px)}.modal-inner{padding:22px}.lyrics-textarea{min-height:220px}.toast{bottom:16px;min-width:min(340px,calc(100vw - 32px))}.latency-value output{font-size:22px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.spin{animation-duration:2s}}.word-edit-hint{margin:5px 0 0;color:var(--muted);font-size:10px}.word-edit-actions{display:flex;gap:5px;margin-top:10px}.word-edit-actions button{display:flex;align-items:center;justify-content:center;gap:3px;flex:1;font-size:10px;padding:5px 3px;min-height:28px}.word-edit-actions .danger-button{color:#a33}.latency-input{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.latency-input .latency-value{gap:12px}.latency-input .latency-value output{font-size:18px}.latency-input .latency-note{margin-bottom:12px}
