.app{position:relative;max-width:960px;margin:0 auto;padding:2rem 1.25rem 3rem}.app-menu-wrap{position:absolute;top:1.25rem;right:1rem;z-index:30}.app-menu-trigger{display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);font-size:1.35rem;line-height:1;letter-spacing:.02em;cursor:pointer;transition:color .15s ease,background .15s ease,border-color .15s ease}.app-menu-trigger:hover{color:var(--text);background:var(--surface2);border-color:var(--border)}.app-menu-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:15rem;padding:.35rem 0;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px #00000059}.app-menu-item{display:block;width:100%;padding:.55rem 1rem;border:none;background:none;text-align:left;font-size:.88rem;color:var(--text);cursor:pointer}.app-menu-item:hover{background:var(--surface2)}.cookies-modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem}.cookies-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.cookies-modal{position:relative;z-index:1;width:min(100%,32rem);max-height:min(90vh,36rem);display:flex;flex-direction:column;padding:1.25rem 1.35rem;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 50px #00000073}.cookies-modal-title{margin:0 0 .5rem;font-size:1.1rem;font-weight:600}.cookies-modal-hint{margin:0 0 .75rem}.cookies-modal-textarea{flex:1;min-height:12rem;margin-bottom:.75rem;padding:.65rem .75rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.72rem;line-height:1.35;background:var(--surface2);border:1px solid var(--border);border-radius:10px;color:var(--text);resize:vertical}.cookies-modal-textarea:focus{outline:2px solid var(--accent-dim);outline-offset:1px}.cookies-modal-msg{margin:0 0 .65rem}.cookies-modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}header{margin-bottom:2rem}header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .35rem;background:linear-gradient(120deg,var(--accent),#a5b4fc);-webkit-background-clip:text;background-clip:text;color:transparent}header p{margin:0;color:var(--muted);font-size:.95rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.25rem 1.35rem;margin-bottom:1.25rem}.row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.field{display:flex;flex-direction:column;gap:.35rem;flex:1;min-width:200px}.field label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.field input,.field select{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:.65rem .85rem;color:var(--text)}.field input:focus,.field select:focus{outline:2px solid var(--accent-dim);outline-offset:1px}.btn{border:none;border-radius:10px;padding:.65rem 1.1rem;font-weight:600;transition:transform .08s ease,filter .15s ease}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--accent),#4ade80);color:#042f1e}.btn-primary:hover:not(:disabled){filter:brightness(1.06)}.btn-secondary{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--muted)}.meta{display:grid;gap:.35rem;font-size:.9rem}.meta strong{color:var(--accent);font-weight:600}.video-wrap{position:relative;border-radius:12px;overflow:visible;background:#000;aspect-ratio:16 / 9;max-height:52vh;margin:0 auto 1rem}.video-wrap video{width:100%;height:100%;object-fit:contain;vertical-align:middle;display:block;border-radius:12px}.video-crop-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;border-radius:12px}.video-crop-shade{position:absolute;pointer-events:none;background:#00000085}.video-crop-box{position:absolute;box-sizing:border-box;border:2px solid rgba(250,204,21,.95);pointer-events:none;touch-action:none}.video-crop-grip{position:absolute;left:50%;top:-30px;transform:translate(-50%);padding:.2rem .55rem;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#1a1a1a;background:#facc15;border:2px solid var(--surface, #111);border-radius:8px;cursor:grab;pointer-events:auto;touch-action:none;white-space:nowrap}.video-crop-grip:active{cursor:grabbing}.video-crop-handle{position:absolute;width:12px;height:12px;background:#facc15;border:2px solid var(--surface, #111);border-radius:2px;pointer-events:auto;box-sizing:border-box;touch-action:none}.video-crop-handle--nw{top:-6px;left:-6px;cursor:nwse-resize}.video-crop-handle--n{top:-6px;left:calc(50% - 6px);cursor:ns-resize}.video-crop-handle--ne{top:-6px;right:-6px;cursor:nesw-resize}.video-crop-handle--e{top:calc(50% - 6px);right:-6px;cursor:ew-resize}.video-crop-handle--se{bottom:-6px;right:-6px;cursor:nwse-resize}.video-crop-handle--s{bottom:-6px;left:calc(50% - 6px);cursor:ns-resize}.video-crop-handle--sw{bottom:-6px;left:-6px;cursor:nesw-resize}.video-crop-handle--w{top:calc(50% - 6px);left:-6px;cursor:ew-resize}.timeline-wrap{-webkit-user-select:none;user-select:none;touch-action:none}.timeline-toolbar{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.5rem 1rem;margin-bottom:.35rem}.timeline-toolbar-actions{display:flex;flex-wrap:wrap;gap:.4rem}.btn-small{padding:.4rem .75rem;font-size:.8rem}.timeline-labels{display:flex;justify-content:space-between;gap:1rem;font-variant-numeric:tabular-nums;font-size:.8rem;color:var(--muted);flex:1;min-width:min(100%,220px)}.timeline-scroll-row{display:flex;align-items:center;gap:.5rem;margin-top:.4rem}.timeline-scroll-label{font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--muted);flex:0 0 auto;min-width:4.5rem}.timeline-scroll-label--start{text-align:left}.timeline-scroll-label--end{text-align:right}.timeline-scroll-range{flex:1;min-width:100px;width:100%;height:1.35rem;accent-color:var(--accent-dim);touch-action:pan-x}.timeline-track{position:relative;height:56px;background:var(--track);border-radius:10px;overflow:hidden;border:1px solid var(--border)}.timeline-selection{position:absolute;top:0;bottom:0;background:var(--selection);border-left:2px solid var(--handle);border-right:2px solid var(--handle);pointer-events:none}.timeline-handle{position:absolute;top:0;bottom:0;width:14px;margin-left:-7px;cursor:ew-resize;z-index:2;display:flex;align-items:center;justify-content:center}.timeline-handle:after{content:"";width:4px;height:70%;background:var(--handle);border-radius:2px;box-shadow:0 0 0 1px #00000059}.timeline-ghost{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;z-index:1}.timeline-playhead{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px #000000d9,0 0 6px #ffffff59;pointer-events:none;z-index:3}.download-progress{margin-top:.75rem;height:8px;border-radius:6px;background:var(--surface2);border:1px solid var(--border);overflow:hidden}.download-progress-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--accent-dim),var(--accent));transition:width .2s ease-out;min-width:0}.download-progress-fill--pulse{width:100%;opacity:.4;animation:dl-indet 1s ease-in-out infinite}@keyframes dl-indet{50%{opacity:.95}}.hint{font-size:.85rem;color:var(--muted);margin-top:.75rem}.error{color:var(--danger);font-size:.9rem;margin-top:.5rem}.success{margin-top:.75rem;padding:.75rem;background:#34d3991f;border:1px solid rgba(52,211,153,.35);border-radius:10px;font-size:.9rem}.success a{color:var(--accent);font-weight:600}.exports-list{list-style:none;padding:0;margin:.5rem 0 0;max-height:220px;overflow:auto}.exports-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem 0;border-bottom:1px solid var(--border);font-size:.85rem}.exports-list a{color:var(--accent);word-break:break-all}.scrub-row{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.scrub-row input[type=range]{flex:1;min-width:120px;accent-color:var(--accent-dim)}.timeline-preview-src{position:fixed;width:160px;height:90px;left:-9999px;top:0;opacity:0;pointer-events:none;z-index:-1}.timeline-nudge-row{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;margin-bottom:.45rem;font-size:.8rem;color:var(--muted)}.timeline-nudge-group{display:inline-flex;align-items:center;gap:.35rem}.timeline-nudge-thumb{flex:0 0 auto;border-radius:6px;overflow:hidden;border:1px solid var(--border);background:#000;line-height:0;box-shadow:0 1px 4px #00000040}.timeline-nudge-thumb-canvas{display:block;width:88px;height:auto;aspect-ratio:16 / 9;vertical-align:middle}.timeline-nudge-label{font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;min-width:2.5rem}.timeline-nudge-btn{min-width:2.25rem;padding-left:.5rem;padding-right:.5rem;font-variant-numeric:tabular-nums}.timeline-nudge-btn-lg{min-width:auto;padding-left:.45rem;padding-right:.45rem;font-size:.72rem}.timeline-preview-zone{position:relative}.timeline-preview-zone .scrub-row{touch-action:pan-x}.timeline-nudge-hint{font-size:.75rem;opacity:.85}.timeline-hover-popover{position:fixed;z-index:100;transform:translate(-50%,calc(-100% - 14px));pointer-events:none;border-radius:10px;overflow:hidden;box-shadow:0 10px 28px #00000080;border:1px solid var(--border);background:#000}.timeline-hover-canvas{display:block;width:160px;height:auto;vertical-align:middle}.timeline-hover-time{padding:.25rem .5rem .4rem;font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--text);background:#000000eb;border-top:1px solid var(--border);text-align:center}:root{--bg: #0c0d10;--surface: #16181d;--surface2: #1e2128;--border: #2a2f38;--text: #e8eaef;--muted: #8b93a1;--accent: #6ee7b7;--accent-dim: #34d399;--danger: #f87171;--track: #2d3340;--selection: rgba(110, 231, 183, .25);--handle: #fbbf24;font-family:DM Sans,system-ui,sans-serif;line-height:1.5;font-weight:450;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}
