@import "https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700;800&display=swap";:root{--primary:#6b3fa0;--primary-light:#9b7dc8;--primary-dark:#4a2d6e;--primary-xlight:#c8aff0;--secondary:#7ec8e3;--secondary-light:#b8e2f2;--accent:#5dade2;--bg:#fdfcff;--surface:#f7f4fa;--surface-hover:#eee8f4;--border:#dfd8e8;--text:#281b39;--text-secondary:#665875;--text-muted:#91839f;--success:#4caf82;--shadow-sm:0 2px 8px #6b3fa014;--shadow-md:0 4px 20px #6b3fa026;--shadow-lg:0 8px 40px #6b3fa038;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--transition:.15s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;letter-spacing:-.01em;font-family:Onest,system-ui,sans-serif;overflow-x:hidden}#app{flex-direction:column;min-height:100%;display:flex}h1{letter-spacing:-.035em;font-size:clamp(1.65rem,3vw,2.15rem);font-weight:700;line-height:1.2}h2{letter-spacing:-.02em;font-size:1rem;font-weight:650}h3{font-size:.95rem;font-weight:600}p{line-height:1.6}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:8px 16px;font-family:Onest,system-ui,sans-serif;font-size:.875rem;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--primary);border-color:var(--primary-dark);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff;box-shadow:var(--shadow-md)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-hover);color:var(--primary-dark);border-color:var(--primary-light)}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--surface);color:var(--primary-dark);border-color:var(--primary-light)}.btn-lg{border-radius:var(--radius-md);min-height:44px;padding:11px 22px;font-size:.95rem}.btn-sm{border-radius:var(--radius-sm);min-height:30px;padding:5px 12px;font-size:.78rem}.btn:focus-visible,.speed-btn:focus-visible,.player-btn:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--primary-light);outline-offset:2px}input[type=text],textarea{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);background:var(--bg);outline:none;padding:10px 14px;font-family:Onest,system-ui,sans-serif;font-size:.9rem;transition:border-color .15s,box-shadow .15s}input[type=text]:focus,textarea:focus{border-color:var(--primary-light)}input[type=text]::placeholder,textarea::placeholder{color:var(--text-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.setup-chip,.saved-draft-badge,.file-loaded-chip{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;font-weight:600;line-height:1;display:inline-flex}.step-num{background:var(--primary-xlight);border:1px solid var(--primary-light);width:22px;height:22px;color:var(--primary-dark);border-radius:50%;place-items:center;margin-right:6px;font-size:.75rem;font-weight:700;display:inline-grid}.setup-page{background:var(--bg);flex:1;padding:clamp(32px,6vh,64px) 24px}.setup-container{flex-direction:column;gap:28px;max-width:720px;margin:0 auto;display:flex}.setup-title h1{margin-bottom:6px}.setup-title p{color:var(--text-secondary);font-size:.95rem}.setup-section{flex-direction:column;gap:12px;display:flex}.section-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.drop-zone{border:1.5px dashed var(--primary-light);border-radius:var(--radius-md);background:var(--surface);justify-content:center;align-items:center;min-height:110px;padding:20px;transition:background-color .15s,border-color .15s;display:flex;position:relative}.drop-zone:hover,.drop-zone.drag-over{border-color:var(--primary);background:var(--surface-hover)}.drop-zone.has-file{border-style:solid;border-color:var(--border);background:var(--bg)}.drop-zone-prompt{color:var(--text-secondary);flex-direction:column;align-items:center;gap:6px;display:flex}.drop-zone-prompt svg{color:var(--primary)}.drop-zone-text{color:var(--text);font-size:.92rem;font-weight:600}.drop-zone-hint{color:var(--text-muted);font-size:.78rem}.file-loaded-chip{color:var(--primary-dark);font-size:.9rem}.file-loaded-chip svg{color:var(--primary)}.file-loaded-chip .change-hint{color:var(--text-muted);font-size:.78rem;font-weight:500}.lyrics-textarea{resize:vertical;min-height:220px;line-height:1.6}.metadata-section{border-top:1px solid var(--border);padding-top:16px}.metadata-section summary{color:var(--text-secondary);cursor:pointer;font-size:.9rem;font-weight:600}.field-group{gap:16px;margin-top:14px;display:flex}.field-group label{color:var(--text-secondary);flex-direction:column;flex:1;gap:6px;font-size:.85rem;font-weight:600;display:flex}.setup-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding-top:20px;display:flex}.setup-actions-hint{color:var(--text-muted);font-size:.82rem}.sync-page{background:var(--bg);height:100dvh;color:var(--text);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.sync-header{border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:16px;min-height:54px;padding:10px clamp(16px,3vw,32px);display:flex}.sync-progress-bar-wrap{background:var(--border);border-radius:99px;flex:1;height:6px;overflow:hidden}.sync-progress-bar-fill{background:linear-gradient(90deg, var(--primary), var(--primary-light));border-radius:99px;height:100%;transition:width .2s}.sync-progress-text{color:var(--text-muted);font-size:.8rem;font-weight:600}.sync-controls-top{border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:8px;min-height:48px;padding:8px clamp(16px,3vw,32px);display:flex}.sync-time-readout{font-variant-numeric:tabular-nums;color:var(--primary-dark);margin-left:auto;font-size:.85rem;font-weight:650}.sync-status{color:var(--text-secondary);font-size:.85rem}.speed-buttons{background:var(--surface);border:1px solid var(--border);border-radius:6px;gap:4px;padding:3px;display:flex}.speed-btn{min-height:26px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 8px;font-size:.78rem;font-weight:600;transition:background-color .15s,color .15s}.speed-btn:hover{color:var(--primary-dark)}.speed-btn.active{background:var(--primary);color:#fff}.word-display{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;padding:0 clamp(20px,5vw,64px);display:flex;overflow:hidden}.words-past{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.words-past .word-chip{color:var(--primary-light);font-weight:600}.current-word-container{justify-content:center;align-items:center;display:flex}.current-word{color:var(--primary-dark);letter-spacing:-.04em;text-align:center;font-size:clamp(3rem,8vw,5.25rem);font-weight:800;line-height:1.1;transition:transform .15s,color .15s}.current-word.tapped{color:var(--primary);transform:scale(.95)}.words-next{flex-wrap:wrap;justify-content:center;gap:10px 14px;max-width:680px;display:flex}.word-next{color:var(--text-muted);font-size:1.1rem}.word-next:first-child{color:var(--text);font-size:1.35rem;font-weight:650}.tap-zone-wrapper{flex-direction:column;width:100%;display:flex}.tap-zone{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--primary), var(--primary-dark));border:1.5px solid var(--primary-light);cursor:pointer;justify-content:center;align-items:center;width:calc(100% - clamp(32px,6vw,64px));height:clamp(144px,24vh,200px);margin:16px auto 24px;transition:background-color .15s;display:flex;box-shadow:0 4px 20px #6b3fa033}.tap-zone:hover,.tap-zone:active,.tap-zone.tapping{background:var(--primary-dark);box-shadow:0 2px 10px #6b3fa04d}.tap-zone-inner{pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex}.tap-zone-label{letter-spacing:.04em;color:#fff;font-size:clamp(1.35rem,3vw,1.85rem);font-weight:700}.tap-zone-hint{color:#fffffff2;font-size:.95rem;font-weight:650}.tap-zone-subhint{color:var(--primary-xlight);margin-top:4px;font-size:.85rem;font-weight:600}.tap-zone-countdown{background:var(--primary-dark)}.tap-zone-countdown .tap-zone-label{font-size:clamp(3.5rem,9vw,5.5rem)}.sync-done-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:16px 24px 24px;display:flex}.review-page{background:var(--bg);flex:1;padding:clamp(28px,5vw,56px) 24px}.review-container{flex-direction:column;gap:32px;max-width:1180px;margin:0 auto;display:flex}.review-titlebar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;padding-bottom:16px;display:flex}.review-track-name{color:var(--text-secondary);margin-top:4px;font-size:.95rem}.review-track-meta{color:var(--text-muted);align-items:center;gap:6px;margin-top:3px;font-size:.8rem;display:flex}.review-titlebar-right{flex-wrap:wrap;align-items:center;display:flex}.header-actions{align-items:center;gap:8px;display:flex}.review-history-button{width:30px;padding:0}.header-export-control,.header-more-control{position:relative}.header-export-menu{z-index:20;border:1px solid var(--border);background:var(--bg);border-radius:6px;width:280px;padding:4px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 2px 8px #4a2d6e1f}.header-export-menu button{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;flex-direction:column;gap:2px;padding:8px 10px;font:650 .84rem Onest,system-ui,sans-serif;display:flex}.header-export-menu button>span:last-child{color:var(--text-secondary);font-size:.72rem;font-weight:450}.header-export-menu button:hover:not(:disabled),.header-export-menu button:focus-visible{background:var(--surface);outline:none}.header-export-menu button:disabled{color:var(--text-muted);cursor:not-allowed}.header-export-menu button:disabled>span:last-child{color:var(--text-muted)}.header-export-separator{background:var(--border);height:1px;margin:4px 8px}.header-more-button{width:34px;padding-inline:0}.header-more-menu{z-index:20;border:1px solid var(--border);background:var(--bg);border-radius:6px;width:224px;padding:4px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 2px 8px #4a2d6e1f}.header-more-menu button{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:8px 10px;font:550 .86rem Onest,system-ui,sans-serif}.header-more-menu button:hover,.header-more-menu button:focus-visible{background:var(--surface);outline:none}.review-content-layout{min-width:0}.review-content-layout.has-sidebar{grid-template-columns:minmax(0,1fr) minmax(340px,400px);align-items:start;gap:24px;display:grid}.review-result-column{flex-direction:column;gap:24px;min-width:0;display:flex}.result-view-tabs{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.result-view-tabs-list{align-items:center;gap:24px;display:flex}.result-view-tab{appearance:none;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 0 10px;font-family:Onest,system-ui,sans-serif;font-size:.95rem;font-weight:650;transition:color .15s,border-color .15s}.result-view-tab:hover{color:var(--text)}.result-view-tab.active{color:var(--primary-dark);border-bottom-color:var(--secondary)}.result-view-tab:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}.result-edit-action{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-bottom:7px;padding:4px 2px;font:600 .84rem Onest,system-ui,sans-serif;display:inline-flex}.result-edit-action:hover{color:var(--primary-dark)}.result-edit-action:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}.review-workspace{width:100%;position:relative}.video-preview{width:min(100%,720px);margin:0 auto}.spotify-lyrics-panel{border-radius:var(--radius-md);background:#201330;border:1px solid #38234f;flex-direction:column;height:440px;padding:20px 24px;display:flex}.spotify-lyrics-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.spotify-lyrics-header h2{color:#d9c8f5;font-size:.9rem}.autoscroll-resume-btn{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;opacity:0;pointer-events:none;border:none;padding:4px 10px;font-size:.75rem;font-weight:600;transition:opacity .2s,transform .2s;transform:translateY(4px)}.autoscroll-resume-btn.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.spotify-lyrics-scroll{scroll-behavior:smooth;flex:1;padding-right:6px;overflow-y:auto}.spotify-lyrics-line{color:#ffffff59;margin-bottom:18px;font-size:1.25rem;font-weight:700;line-height:1.5;transition:opacity .2s;position:relative}.spotify-lyrics-line.active{opacity:1}.spotify-lyrics-panel.is-editing{height:clamp(320px,100vh - 410px,520px);min-height:320px}.spotify-lyrics-panel.is-editing .spotify-lyrics-line{cursor:pointer;border-left:2px solid #0000;margin-left:0;padding:5px 8px 5px 38px;transition:background-color .15s,border-color .15s}.spotify-lyrics-panel.is-editing .spotify-lyrics-line:hover{background:#ffffff0f}.spotify-lyrics-panel.is-editing .spotify-lyrics-line.selected-for-editing{border-left-color:var(--secondary);background:#7ec8e317}.spotify-lyrics-panel.is-word-focused .spotify-lyrics-line{opacity:.16}.spotify-lyrics-panel.is-word-focused .spotify-lyrics-line.focus-line{opacity:1}.line-select-gutter{color:#ffffff57;text-align:right;cursor:pointer;background:0 0;border:0;width:22px;padding:0;font:600 .72rem Onest,system-ui,sans-serif;position:absolute;top:8px;left:8px}.spotify-lyrics-line:hover .line-select-gutter,.spotify-lyrics-line.selected-for-editing .line-select-gutter{color:var(--secondary-light)}.spotify-lyrics-word{vertical-align:middle;color:#ffffff59;border-radius:4px;align-items:center;max-width:100%;margin:1px;padding:0;transition:background-color .15s,color .15s,text-shadow .15s;display:inline-flex;position:relative}.spotify-lyrics-word-target{appearance:none;color:inherit;font:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 5px}.spotify-lyrics-word:hover:not(.is-inline-editing) .spotify-lyrics-word-target{color:#fff;background:#ffffff26}.spotify-lyrics-word.past{color:#9b7dc8;opacity:.75}.spotify-lyrics-word.current{color:#fff;opacity:1;text-shadow:none;font-weight:800}.spotify-lyrics-word.future{color:#ffffff59}.spotify-lyrics-panel.is-editing .spotify-lyrics-word.selected-for-editing:not(.is-inline-editing){color:#fff;background:#7ec8e31f;box-shadow:inset 0 0 0 1px #b8e2f28c}.spotify-lyrics-panel.is-editing .spotify-lyrics-word.selected-for-editing:not(.is-inline-editing) .spotify-lyrics-word-target{background:0 0}.spotify-lyrics-word.is-inline-editing{box-shadow:none;color:#fff;background:0 0}.inline-word-edit-trigger,.inline-word-action{width:40px;height:40px;color:var(--secondary-light);cursor:pointer;background:#ffffff0a;border:0;border-left:1px solid #b8e2f242;border-radius:0;flex:0 0 40px;place-items:center;padding:0;display:inline-grid}.inline-word-edit-trigger{background:#7ec8e324;border:1px solid #b8e2f285;border-radius:4px;margin-left:2px}.inline-word-edit-trigger:hover,.inline-word-action:hover:not(:disabled){color:#fff;background:#7ec8e33d}.inline-word-edit-trigger:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}.inline-word-action:focus-visible{outline:2px solid var(--secondary);outline-offset:-3px}.inline-word-editor{vertical-align:middle;flex-direction:column;align-items:stretch;max-width:100%;display:inline-flex}.inline-word-control{color:#fff;background:#7ec8e31f;border:1px solid #b8e2f285;border-radius:6px;align-items:stretch;width:fit-content;max-width:100%;transition:border-color .15s,box-shadow .15s;display:inline-flex;overflow:hidden}.inline-word-control:focus-within{border-color:var(--secondary);box-shadow:0 0 0 2px #7ec8e32e}.inline-word-control .inline-word-input{min-width:96px;max-width:220px;height:40px;color:inherit;font:inherit;line-height:inherit;letter-spacing:inherit;box-shadow:none;background:0 0;border:0;border-radius:0;outline:0;flex:0 auto;padding:2px 8px;transition:none}.inline-word-control .inline-word-input:focus,.inline-word-control .inline-word-input:focus-visible{box-shadow:none;background:0 0;border:0;outline:0}.inline-word-control .inline-word-input[aria-invalid=true]{background:#c8aff029}.inline-word-action:disabled{opacity:.38;cursor:default}.inline-word-save{background:var(--secondary);color:var(--primary-dark)}.inline-word-save:hover:not(:disabled){background:var(--secondary-light);color:var(--primary-dark)}.inline-word-cancel{color:#ffffffb8}.inline-word-error{max-width:300px;color:var(--secondary-light);padding:4px 3px 0;font-size:.7rem;font-weight:550;line-height:1.25}.review-editor-timeline{border-radius:var(--radius-md);color:#fff;background:#1a0a2e;border:1px solid #38234f;overflow:hidden}.editor-timeline-toolbar{border-bottom:1px solid #b8e2f229;grid-template-columns:32px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:46px;padding:7px 12px;display:grid}.editor-timeline-toolbar h2{color:#d9c8f5;font-size:.82rem;font-weight:700}.editor-timeline-play{width:32px;height:32px;color:var(--secondary-light);cursor:pointer;background:#7ec8e31f;border:1px solid #b8e2f257;border-radius:50%;place-items:center;padding:0;display:inline-grid}.editor-timeline-play:hover{border-color:var(--secondary);color:#fff;background:#7ec8e338}.editor-timeline-play:focus-visible,.editor-timeline-zoom button:focus-visible,.editor-timeline-word:focus-visible,.editor-timeline-handle:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}.editor-timeline-zoom{border:1px solid #b8e2f23d;border-radius:5px;grid-template-columns:28px 46px 28px;align-items:center;display:grid;overflow:hidden}.editor-timeline-zoom button{width:28px;height:28px;color:var(--secondary-light);cursor:pointer;background:0 0;border:0;padding:0;font:650 1rem Onest,system-ui,sans-serif}.editor-timeline-zoom button:hover:not(:disabled){color:#fff;background:#7ec8e31f}.editor-timeline-zoom button:disabled{opacity:.32;cursor:default}.editor-timeline-zoom output{color:#ffffffad;font-variant-numeric:tabular-nums;text-align:center;font-size:.68rem;font-weight:650}.editor-timeline-time{color:var(--secondary-light);font-variant-numeric:tabular-nums;font-size:.74rem;font-weight:700}.editor-timeline-time span{color:#ffffff61;font-weight:550}.editor-timeline-scroller{overscroll-behavior-x:contain;scrollbar-color:#7ec8e38c transparent;overflow:auto hidden}.editor-timeline-scroller::-webkit-scrollbar{height:8px}.editor-timeline-scroller::-webkit-scrollbar-thumb{background:#7ec8e38c;border:2px solid #1a0a2e;border-radius:8px}.editor-timeline-content{min-width:100%;height:112px;position:relative}.editor-timeline-ruler{cursor:ew-resize;touch-action:none;border-bottom:1px solid #ffffff14;height:31px;position:absolute;inset:0 0 auto}.editor-timeline-tick{color:#ffffff54;font-variant-numeric:tabular-nums;pointer-events:none;width:1px;font-size:.63rem;position:absolute;top:0;bottom:0}.editor-timeline-tick i{background:#ffffff2e;width:1px;height:5px;position:absolute;bottom:0}.editor-timeline-tick:nth-child(5n+1) i{background:#ffffff4d;height:10px}.editor-timeline-tick b{white-space:nowrap;font-weight:550;position:absolute;top:5px;left:4px}.editor-timeline-lane{cursor:ew-resize;touch-action:none;position:absolute;inset:31px 0 0}.editor-timeline-word{z-index:2;color:#ffffff9e;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#201330;border:1px solid #9b7dc861;border-radius:5px;justify-content:center;align-items:center;min-width:8px;height:43px;padding:0 7px;font:650 .76rem Onest,system-ui,sans-serif;display:flex;position:absolute;top:17px;overflow:visible}.editor-timeline-word.from-selected-line{color:#ffffffd1;border-color:#9b7dc8ad}.editor-timeline-word:hover{color:#fff;border-color:#b8e2f294}.editor-timeline-word.selected{z-index:4;border-color:var(--secondary-light);background:var(--secondary);color:var(--primary-dark);cursor:grab;font-weight:750}.editor-timeline-word:active{cursor:grabbing}.editor-timeline-word.disabled{cursor:default;opacity:.6}.editor-timeline-word>span{text-overflow:ellipsis;white-space:nowrap;pointer-events:none;min-width:0;overflow:hidden}.editor-timeline-handle{cursor:col-resize;touch-action:none;background:0 0;border:0;width:12px;padding:0;position:absolute;top:-1px;bottom:-1px}.editor-timeline-handle:after{background:var(--primary-dark);content:"";border-radius:2px;width:2px;position:absolute;top:11px;bottom:11px}.editor-timeline-handle.is-start{left:-5px}.editor-timeline-handle.is-start:after{left:5px}.editor-timeline-handle.is-end{right:-5px}.editor-timeline-handle.is-end:after{right:5px}.editor-timeline-playhead{z-index:5;background:var(--accent);pointer-events:none;width:1px;position:absolute;top:-31px;bottom:0}.editor-timeline-playhead span{background:var(--accent);border-radius:50%;width:9px;height:9px;position:absolute;top:-1px;left:-4px}.video-preview-player{width:min(100%, var(--video-preview-max-width,720px));border-radius:var(--radius-md);border:1px solid var(--border);background:#1a0a2e;margin:0 auto;position:relative;overflow:hidden}.video-preview-badge{z-index:4;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#ffffffd9;pointer-events:none;-webkit-user-select:none;user-select:none;background:#0d071abf;border:1px solid #ffffff26;border-radius:4px;padding:3px 9px;font-size:.7rem;font-weight:600;position:absolute;top:10px;left:10px}.video-preview-canvas{width:100%;aspect-ratio:var(--video-aspect-ratio,16 / 9);cursor:pointer;display:block}.video-player-bar{z-index:5;opacity:0;pointer-events:none;background:linear-gradient(#0000 0%,#0d071ad9 100%);align-items:center;gap:8px;padding:8px 12px;transition:opacity .2s;display:flex;position:absolute;bottom:0;left:0;right:0}.video-preview-player:hover .video-player-bar,.video-preview-player.paused .video-player-bar{opacity:1;pointer-events:auto}.video-player-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:4px;flex-shrink:0;place-items:center;width:28px;height:28px;transition:background-color .15s,border-color .15s;display:inline-grid}.video-player-btn:hover{background:var(--primary);border-color:var(--primary-light)}.video-export-control{flex-shrink:0;position:relative}.video-format-menu{background:#201330;border:1px solid #ffffff2e;border-radius:6px;width:224px;padding:4px;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 2px 8px #0d071a47}.video-format-option{color:#fff;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;flex-direction:column;gap:2px;width:100%;padding:8px 10px;font-family:Onest,system-ui,sans-serif;font-size:.82rem;font-weight:650;display:flex}.video-format-option:hover:not(:disabled),.video-format-option:focus-visible{background:#ffffff1a;outline:none}.video-format-option:disabled{color:#fff6;cursor:not-allowed}.video-format-description{color:#ffffff94;font-size:.7rem;font-weight:450}.video-format-option:disabled .video-format-description{color:#ffffff52}.video-player-time{font-variant-numeric:tabular-nums;color:#ffffffbf;text-align:center;-webkit-user-select:none;user-select:none;flex-shrink:0;min-width:32px;font-size:.72rem;font-weight:600}.video-preview-player:fullscreen{background:#0d1b3e;flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex}.video-preview-player:fullscreen .video-preview-canvas{flex:0 auto;width:auto;max-width:100vw;height:auto;max-height:calc(100vh - 60px)}.video-preview-player:fullscreen .video-player-bar{opacity:1;pointer-events:auto;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0d1b3ee6;border:1px solid #fff3;border-radius:10px;width:min(90vw,800px);margin-bottom:16px;padding:10px 16px;position:relative}.unified-player{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:12px;padding:12px 16px;display:flex}.player-btn{border:1px solid var(--border);background:var(--bg);width:34px;height:34px;color:var(--text);cursor:pointer;border-radius:6px;flex-shrink:0;place-items:center;transition:background-color .15s,border-color .15s,color .15s;display:inline-grid}.player-btn:hover{background:var(--primary);border-color:var(--primary-dark);color:#fff}.player-btn-play{background:var(--primary);border-color:var(--primary-dark);color:#fff;width:38px;height:38px;box-shadow:var(--shadow-sm);border-radius:50%}.player-btn-play:hover{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff;box-shadow:var(--shadow-md)}.player-time{font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:center;-webkit-user-select:none;user-select:none;flex-shrink:0;min-width:36px;font-size:.78rem;font-weight:600}input[type=range]{appearance:none;background:var(--border);cursor:pointer;border-radius:99px;outline:none;width:100%;height:6px;margin:0}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--primary);cursor:pointer;border:2px solid #fff;border-radius:50%;width:16px;height:16px;transition:transform .15s,background-color .15s;box-shadow:0 1px 4px #4a2d6e40}input[type=range]::-moz-range-thumb{background:var(--primary);cursor:pointer;border:2px solid #fff;border-radius:50%;width:16px;height:16px;transition:transform .15s,background-color .15s;box-shadow:0 1px 4px #4a2d6e40}input[type=range]::-webkit-slider-thumb:hover{background:var(--primary-dark);transform:scale(1.2)}input[type=range]::-moz-range-thumb:hover{background:var(--primary-dark);transform:scale(1.2)}.player-seek-wrap{flex:1;align-items:center;height:20px;display:flex;position:relative}.player-seek{z-index:2;position:relative}.player-seek-fill{background:linear-gradient(90deg, var(--primary), var(--primary-light));pointer-events:none;z-index:1;border-radius:99px;height:6px;transition:width .15s linear;position:absolute;top:50%;left:0;transform:translateY(-50%)}progress,.sync-progress-bar-wrap,.render-bar-wrap{background:var(--border);border:none;border-radius:99px;width:100%;height:6px;overflow:hidden}progress::-webkit-progress-bar{background:var(--border);border-radius:99px}progress::-webkit-progress-value{background:linear-gradient(90deg, var(--primary), var(--primary-light));border-radius:99px}progress::-moz-progress-bar{background:linear-gradient(90deg, var(--primary), var(--primary-light));border-radius:99px}.detail-settings{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);transition:border-color .15s;overflow:hidden}.detail-settings[open]{border-color:var(--primary-light)}.detail-summary{background:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text);justify-content:space-between;align-items:center;padding:12px 16px;font-size:.9rem;font-weight:600;list-style:none;transition:background-color .15s;display:flex}.detail-summary::-webkit-details-marker{display:none}.detail-summary::marker{display:none}.detail-summary:hover{background:var(--surface-hover)}.summary-left,.summary-right{align-items:center;gap:8px;display:flex}.summary-left svg{color:var(--primary)}.offset-badge{border-radius:var(--radius-sm);background:var(--bg);border:1px solid var(--border);color:var(--primary-dark);font-variant-numeric:tabular-nums;padding:2px 8px;font-size:.78rem;font-weight:700}.chevron-icon{color:var(--text-muted);transition:transform .2s}.detail-settings[open] .chevron-icon{transform:rotate(180deg)}.timing-editor{border-top:1px solid var(--border);background:var(--bg);flex-direction:column;gap:14px;padding:16px;display:flex}.simple-offset-control{grid-template-columns:48px minmax(120px,1fr) 48px;align-items:center;gap:8px 12px;padding:10px 2px 2px;display:grid}.simple-offset-title{color:var(--text);grid-column:1/-1;font-size:.78rem;font-weight:650}.simple-offset-edge{color:var(--text-muted);font-size:.72rem;font-weight:550}.simple-offset-edge-right{text-align:right}.simple-offset-track{align-items:center;display:flex;position:relative}.simple-offset-track input[type=range]{width:100%}.simple-offset-track input[type=range]:active{cursor:grabbing}.simple-offset-value{z-index:2;border:1px solid var(--border);background:var(--bg);color:var(--primary-dark);font-variant-numeric:tabular-nums;white-space:nowrap;opacity:0;pointer-events:none;border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:700;line-height:1.25;transition:opacity .12s,transform .12s;position:absolute;bottom:calc(100% + 5px);transform:translate(-50%,3px)}.simple-offset-value.visible{opacity:1;transform:translate(-50%)}.track-offset-panel{border-bottom:1px solid var(--border);flex-direction:column;gap:14px;padding:18px 20px 20px;display:flex}.track-offset-header{flex-direction:column;gap:2px;display:flex}.track-offset-header h3{color:var(--text);font-size:.9rem;font-weight:750}.track-offset-slider{grid-template-columns:44px minmax(100px,1fr) 44px;align-items:center;gap:12px;display:grid}.track-offset-slider span{color:var(--text-muted);font-size:.68rem;font-weight:550}.track-offset-slider span:last-child{text-align:right}.track-offset-stepper{border:1px solid var(--border);background:var(--bg);border-radius:6px;grid-template-columns:46px 38px minmax(78px,1fr) 38px 46px;align-items:center;display:grid;overflow:hidden}.track-offset-stepper>button{border:0;border-right:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;padding:0;font:650 .72rem Onest,system-ui,sans-serif}.track-offset-stepper>button:last-child{border-right:0}.track-offset-stepper>button:hover{background:var(--surface);color:var(--primary-dark)}.track-offset-stepper>button:focus-visible{outline:2px solid var(--secondary);outline-offset:-3px;position:relative}.track-offset-number{border-right:1px solid var(--border);background:var(--surface);align-items:center;height:34px;display:flex}.track-offset-number input{width:100%;min-width:0;height:100%;color:var(--text);font-variant-numeric:tabular-nums;text-align:right;appearance:textfield;background:0 0;border:0;outline:0;padding:0 2px 0 8px;font:700 .8rem Onest,system-ui,sans-serif}.track-offset-number input::-webkit-inner-spin-button{appearance:none;margin:0}.track-offset-number input::-webkit-outer-spin-button{appearance:none;margin:0}.track-offset-number:focus-within{box-shadow:inset 0 0 0 2px var(--secondary)}.track-offset-number span{color:var(--text-muted);padding-right:7px;font-size:.7rem;font-weight:600}.track-offset-reset{color:var(--text-muted);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:2px 0;font:550 .72rem Onest,system-ui,sans-serif}.track-offset-reset:hover:not(:disabled){color:var(--primary-dark)}.track-offset-reset:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}.track-offset-reset:disabled{opacity:.42;cursor:default}.render-progress{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:0 0 12px;display:flex}.render-progress>div{justify-content:space-between;font-size:.9rem;font-weight:600;display:flex}.render-progress progress{width:100%;height:5px;accent-color:var(--primary)}.export-notice{border-bottom:1px solid var(--border);color:var(--primary-dark);margin:-16px 0 0;padding-bottom:12px;font-size:.85rem;font-weight:600}.review-footer{align-items:center;gap:12px;display:flex}*{scrollbar-width:thin;scrollbar-color:#9b7dc866 transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#9b7dc866;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--primary-light)}@media (width<=900px){.spotify-lyrics-panel{height:380px}}@media (width<=720px){.setup-page,.review-page{padding:24px 16px}.setup-actions,.review-titlebar{flex-direction:column;align-items:flex-start}.field-group{flex-direction:column}.tap-zone{margin-left:16px;margin-right:16px}.unified-player{gap:8px;padding:10px 12px}.simple-offset-control{grid-template-columns:42px minmax(100px,1fr) 42px;gap:8px}.spotify-lyrics-word.is-inline-editing{width:100%;margin:6px 0;display:flex}.inline-word-editor,.inline-word-control{width:100%}.inline-word-input{flex:auto;max-width:none;width:auto!important}.editor-timeline-time{font-size:.68rem}}.review-editor-sidebar{border:1px solid var(--border);background:var(--bg);scrollbar-gutter:stable;border-radius:10px;flex-direction:column;gap:0;max-height:calc(100vh - 48px);padding:0;display:flex;position:sticky;top:24px;overflow-y:auto}.review-video-style-sidebar{border:1px solid var(--border);background:var(--bg);scrollbar-gutter:stable;border-radius:10px;max-height:calc(100vh - 48px);position:sticky;top:24px;overflow-y:auto}.video-style-section{border-bottom:1px solid var(--border);flex-direction:column;gap:18px;padding:20px;display:flex}.video-style-section-heading{flex-direction:column;gap:3px;display:flex}.video-style-section-heading h2{color:var(--text);margin:0;font-size:.94rem;font-weight:750}.video-style-section-heading p{color:var(--text-muted);margin:0;font-size:.75rem;line-height:1.4}.video-style-colors{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.video-color-control,.video-style-field{color:var(--text-secondary);flex-direction:column;gap:7px;font-size:.76rem;font-weight:650;display:flex}.video-color-value{border:1px solid var(--border);background:var(--bg);border-radius:7px;align-items:center;gap:8px;min-width:0;min-height:40px;padding:5px 9px 5px 5px;transition:border-color .15s;display:flex}.video-color-control:focus-within .video-color-value{border-color:var(--secondary);outline:2px solid color-mix(in srgb, var(--secondary) 24%, transparent)}.video-color-value input[type=color]{cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;width:30px;height:30px;padding:0;overflow:hidden}.video-color-value input[type=color]::-webkit-color-swatch-wrapper{padding:0}.video-color-value input[type=color]::-webkit-color-swatch{border:0;border-radius:5px}.video-color-value input[type=color]::-moz-color-swatch{border:0;border-radius:5px}.video-color-value output{min-width:0;color:var(--text);font-variant-numeric:tabular-nums;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.video-style-field select{border:1px solid var(--border);background-color:var(--bg);width:100%;min-height:40px;color:var(--text);cursor:pointer;border-radius:7px;padding:0 34px 0 11px;font:600 .84rem Onest,system-ui,sans-serif}.video-style-field select:focus-visible{border-color:var(--secondary);outline:2px solid color-mix(in srgb, var(--secondary) 24%, transparent)}.video-style-field-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.video-style-field-row output{color:var(--primary-dark);font-variant-numeric:tabular-nums;font-size:.75rem}.video-style-range{width:100%;height:28px;accent-color:var(--secondary);cursor:pointer;margin:0}.video-style-range::-webkit-slider-runnable-track{background:var(--border);border-radius:2px;height:4px}.video-style-range::-webkit-slider-thumb{appearance:none;border:3px solid var(--bg);background:var(--secondary);width:16px;height:16px;box-shadow:0 0 0 1px var(--secondary);border-radius:50%;margin-top:-6px}.video-style-range::-moz-range-track{background:var(--border);border-radius:2px;height:4px}.video-style-range::-moz-range-thumb{border:3px solid var(--bg);background:var(--secondary);width:12px;height:12px;box-shadow:0 0 0 1px var(--secondary);border-radius:50%}.video-style-footer{padding:14px 20px}.video-style-reset{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;padding:4px 0;font:600 .78rem Onest,system-ui,sans-serif}.video-style-reset:hover:not(:disabled){color:var(--primary-dark)}.video-style-reset:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}.video-style-reset:disabled,.video-style-field select:disabled,.video-style-range:disabled,.video-color-value input:disabled{opacity:.48;cursor:default}.line-context-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.line-context-copy{min-width:0}.line-stepper{border:1px solid var(--border);background:var(--surface);border-radius:6px;flex:none;align-items:center;gap:2px;padding:2px;display:inline-flex}.line-stepper-btn{width:30px;height:30px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;transition:background-color .15s,color .15s;display:inline-grid}.line-stepper-btn svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:16px;height:16px}.line-stepper-btn:hover:not(:disabled){background:var(--bg);color:var(--primary-dark)}.line-stepper-btn:focus-visible{outline:2px solid var(--secondary);outline-offset:-2px}.line-stepper-btn:disabled{opacity:.32;cursor:default}.line-stepper-info{color:var(--text);white-space:nowrap;margin:0;font-size:.94rem;font-weight:750}.line-edit-panel{flex-direction:column;gap:0;display:flex}.line-edit-header{border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;gap:16px;padding:20px;display:flex}.line-edit-title{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:5px 0 0;font-size:.85rem;font-weight:550;line-height:1.45;display:-webkit-box;overflow:hidden}.line-edit-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.line-edit-actions .btn{border-radius:6px;flex:140px;justify-content:center;min-height:34px}.word-chips-container{border-bottom:1px solid var(--border);flex-direction:column;gap:10px;padding:18px 20px;display:flex}.word-chips-label{color:var(--text);font-size:.8rem;font-weight:700}.word-chips-row{flex-wrap:wrap;gap:5px;display:flex}.word-chip{min-height:38px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:5px;flex-direction:column;justify-content:center;align-items:flex-start;padding:5px 8px;font-size:.82rem;font-weight:600;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.word-chip:hover{border-color:var(--border);background:var(--surface);color:var(--primary-dark)}.word-chip.selected{border-color:var(--primary-light);background:var(--surface);color:var(--primary-dark);font-weight:700}.word-chip:focus-visible{outline:2px solid var(--secondary);outline-offset:1px}.word-chip-time{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-top:1px;font-size:.67rem;font-weight:500}.word-inspector-card{flex-direction:column;gap:16px;padding:18px 20px 20px;display:flex}.word-inspector-header{color:var(--text);flex-direction:column;align-items:flex-start;gap:2px;display:flex}.word-inspector-header strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.94rem;font-weight:750;overflow:hidden}.word-inspector-caption{color:var(--text-muted);font-size:.72rem;font-weight:500}.inspector-field-group{flex-direction:column;gap:16px;display:flex}.inspector-field{flex-direction:column;gap:7px;display:flex}.inspector-field-label{color:var(--text-secondary);font-size:.76rem;font-weight:650}.inspector-controls-row{border:1px solid var(--border);background:var(--bg);border-radius:6px;grid-template-columns:46px 40px minmax(96px,1fr) 40px 46px;align-items:center;display:grid;overflow:hidden}.inspector-value{border-right:1px solid var(--border);background:var(--surface);align-items:center;min-width:0;height:34px;display:flex;position:relative}.inspector-input{width:100%;min-width:0;height:100%;color:var(--text);font-variant-numeric:tabular-nums;text-align:right;appearance:textfield;background:0 0;border:0;outline:0;padding:0 2px 0 7px;font:700 .78rem Onest,system-ui,sans-serif}.inspector-input::-webkit-inner-spin-button{appearance:none;margin:0}.inspector-input::-webkit-outer-spin-button{appearance:none;margin:0}.inspector-value:focus-within{z-index:1;box-shadow:inset 0 0 0 1px var(--secondary)}.inspector-value span{min-width:25px;color:var(--text-muted);flex:none;padding-right:6px;font-size:.68rem;font-weight:600}.timing-micro-btn{border:0;border-right:1px solid var(--border);height:34px;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:0;padding:0;font:650 .68rem Onest,system-ui,sans-serif}.timing-micro-btn:last-child{border-right:0}.timing-micro-btn:hover:not(:disabled){background:var(--surface);color:var(--primary-dark)}.timing-micro-btn:focus-visible{outline:2px solid var(--secondary);outline-offset:-3px;position:relative}.timing-micro-btn:disabled{opacity:.42;cursor:default}@media (width<=1020px){.review-content-layout.has-sidebar{grid-template-columns:minmax(0,1fr)}.review-editor-sidebar,.review-video-style-sidebar{border:1px solid var(--border);max-height:none;padding:0;position:static}.spotify-lyrics-panel.is-editing{height:480px;min-height:0}}@media (width<=720px){.review-content-layout.has-sidebar .review-result-column{gap:14px}.spotify-lyrics-panel.is-editing{height:min(48vh,380px);min-height:300px;padding:16px}.review-editor-timeline{z-index:20;position:sticky;bottom:8px;box-shadow:0 2px 8px #0d071a2e}.editor-timeline-toolbar{grid-template-rows:auto auto;grid-template-columns:32px minmax(0,1fr) auto;gap:1px 8px;min-height:58px;padding:6px 10px}.editor-timeline-play{grid-row:1/3}.editor-timeline-toolbar h2{grid-area:1/2}.editor-timeline-zoom{grid-area:1/3/3;grid-template-columns:34px 40px 34px}.editor-timeline-zoom button{width:34px;height:34px}.editor-timeline-time{grid-area:2/2}.editor-timeline-content{height:108px}.editor-timeline-word{height:46px}.editor-timeline-handle{width:18px}.editor-timeline-handle.is-start{left:-8px}.editor-timeline-handle.is-end{right:-8px}.review-editor-sidebar{gap:0;padding:0}.review-video-style-sidebar{padding:0}.line-edit-actions{flex-direction:row;align-items:center}.line-edit-actions .btn{flex:130px;justify-content:center}.inspector-controls-row{grid-template-columns:42px 36px minmax(88px,1fr) 36px 42px}}.retap-modal-overlay{z-index:999;background:#0d071ab8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.retap-modal-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:18px;width:100%;max-width:540px;max-height:calc(100vh - 48px);padding:24px;display:flex;overflow-y:auto;box-shadow:0 8px 24px #1c0e322e}.retap-modal-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.retap-modal-header h2{color:var(--text);margin:0;font-size:1.08rem;line-height:1.35}.retap-modal-header p{color:var(--text-muted);margin:3px 0 0;font-size:.78rem}.retap-close-button{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.retap-close-button:hover:not(:disabled){background:var(--surface);color:var(--text)}.retap-close-button:focus-visible{outline:2px solid var(--secondary);outline-offset:1px}.retap-close-button:disabled{opacity:.4;cursor:default}.retap-line-text{color:var(--text-secondary);margin:0;font-size:.92rem;font-weight:600;line-height:1.5}.retap-session{flex-direction:column;gap:14px;display:flex}.retap-tap-zone{width:100%;margin:0}.retap-tap-zone:disabled{opacity:1;cursor:default}.retap-session{justify-content:center;min-height:220px}.retap-status{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:190px;display:flex}.retap-status p{color:var(--text-muted);margin:0;font-size:.8rem}.retap-session-progress{flex-direction:column;gap:6px;display:flex}.retap-session-progress span{color:var(--text-muted);font-size:.74rem;font-weight:600}.retap-session-progress progress{width:100%;height:4px}.retap-word-context{text-align:center;grid-template-columns:minmax(0,1fr) minmax(120px,1.5fr) minmax(0,1fr);align-items:center;gap:12px;min-height:72px;display:grid}.retap-word-context span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.retap-word-context strong{overflow-wrap:anywhere;color:var(--primary-dark);font-size:1.65rem;line-height:1.2}.retap-status{color:var(--primary-dark)}.retap-status strong{color:var(--text);font-size:.95rem}.retap-status-error{color:var(--primary-dark)}.retap-status-spinner{border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite retap-spin}.retap-cancel-button{color:var(--text-muted);cursor:pointer;background:0 0;border:0;align-self:center;padding:3px 8px;font:600 .78rem Onest,system-ui,sans-serif}.retap-cancel-button:hover:not(:disabled){color:var(--text)}.retap-cancel-button:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}.retap-cancel-button:disabled{opacity:.4;cursor:default}@keyframes retap-spin{to{transform:rotate(360deg)}}@media (width<=560px){.retap-modal-overlay{align-items:flex-end;padding:12px}.retap-modal-card{max-height:calc(100vh - 24px);padding:20px}.retap-word-context{grid-template-columns:minmax(0,.8fr) minmax(100px,1.4fr) minmax(0,.8fr);gap:8px}}
