:root{--bg:#f6f6f5;--surface:#fff;--surface-2:#eeeeec;--border:#e4e4e2;--text:#181818;--text-dim:#6b6b6b;--accent:#e8590c;--accent-dim:#fde4d3;--accent-ink:#9c3a06;--good:#9a9a97;--on-accent:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-family:Figtree,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{background:var(--bg)}a{color:var(--accent);text-decoration:none}h1,h2,h3,.brand-name,.title-edit{color:var(--text);letter-spacing:-.01em;font-family:Bricolage Grotesque,Figtree,system-ui,sans-serif}.title-display{align-items:center;gap:.4rem;display:inline-flex}.rename-btn{opacity:.6;border-radius:6px;padding:.2rem .4rem;font-size:.75em;line-height:1}.rename-btn:hover{opacity:1}.title-edit{min-width:12rem;max-width:100%;padding:.2rem .4rem;font-size:1.5rem;font-weight:600}button{font:inherit;cursor:pointer;background:var(--surface-2);color:var(--text);border:1px solid #0000;border-radius:10px;padding:.5rem .8rem;font-weight:500;transition:background-color .12s,color .12s}button:hover:not(:disabled){background:color-mix(in srgb, var(--surface-2) 88%, var(--text))}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}button.active,button.primary:hover:not(:disabled),button.active:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}input,select,textarea{font:inherit;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.5rem .6rem}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:1.4rem;width:240px;height:100vh;padding:1.2rem .8rem;display:flex;position:sticky;top:0}.app-main{flex:auto;min-width:0}.brand{flex-direction:column;gap:.4rem;padding:0 .6rem;display:flex}.brand-name{letter-spacing:.02em;color:var(--text);font-size:1.2rem;font-weight:700}.badge{color:var(--text-dim);border:1px solid var(--border);border-radius:999px;align-self:flex-start;padding:.1rem .5rem;font-size:.65rem}.nav-group{flex-direction:column;gap:.25rem;display:flex}.nav-group-bottom{border-top:1px solid var(--border);margin-top:auto;padding-top:1rem}.nav-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:.4rem;padding:0 .7rem;font-size:.65rem}.nav-item{color:var(--text-dim);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:.7rem;width:100%;padding:.6rem .7rem;font-size:.9rem;font-weight:500;display:flex}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active,.nav-item.active:hover{background:var(--accent-dim);color:var(--accent-ink);font-weight:600}.nav-item svg{flex-shrink:0}.bottom-nav{display:none}.bottom-item{cursor:pointer;min-width:0;color:var(--text-dim);background:0 0;border:none;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:.3rem .2rem;font-size:.6rem;font-weight:600;text-decoration:none;display:flex}.bottom-item.active{color:var(--accent)}.add-clips-fab{flex:none}.add-fab{border:3px solid var(--surface);background:var(--accent);width:56px;height:56px;color:var(--on-accent);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;margin-top:-22px;font-size:2rem;font-weight:300;line-height:1;display:flex;box-shadow:0 4px 14px #00000040}.add-menu.add-menu-up{top:auto;bottom:calc(100% + 14px);right:50%;transform:translate(50%)}.bottom-sheet{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.2rem;min-width:210px;padding:.5rem;display:flex;position:absolute;bottom:calc(100% + 8px);right:8px;box-shadow:0 12px 30px #00000047}@media (width<=860px){.sidebar{display:none}.app-main{padding-bottom:78px}.bottom-nav{z-index:30;padding:.3rem .5rem calc(.3rem + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border);justify-content:space-around;align-items:center;gap:.2rem;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #00000014}.page-head .add-clips{display:none}}.container{max-width:1600px;margin:0 auto;padding:1.5rem 2rem}.muted{color:var(--text-dim)}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.page-head{align-items:center;gap:.5rem;min-height:2.75rem;display:flex}.page-head h1{flex:1;min-width:0;margin:0;font-size:1.6rem;line-height:1.1}.feed-open{align-items:center;gap:.3rem;display:inline-flex}.filter-menu,.filter-btn{position:relative}.filter-btn.open{background:var(--surface-2)}.filter-dot{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 2px var(--bg);border-radius:50%;position:absolute;top:9px;right:9px}.filter-overlay{z-index:55;position:fixed;inset:0}.filter-panel{z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:.9rem;width:260px;padding:.8rem;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 14px 34px #00000029}.filter-grabber{display:none}.filter-section{flex-direction:column;gap:.35rem;display:flex}.filter-options{flex-direction:column;gap:2px;display:flex}.filter-options button{text-align:left;background:0 0;align-items:center;gap:.6rem;padding:.55rem .6rem;display:flex}.filter-options button.active,.filter-options button.active:hover:not(:disabled){background:var(--accent-dim);color:var(--accent-ink);border-color:#0000;font-weight:600}@media (width<=860px){.page-head h1{font-size:1.45rem}.filter-overlay{background:#00000059}.filter-panel{width:auto;padding:.6rem 1rem calc(1.2rem + env(safe-area-inset-bottom,0px));border:none;border-radius:18px 18px 0 0;max-height:80vh;position:fixed;inset:auto 0 0;overflow-y:auto}.filter-grabber{background:var(--border);border-radius:99px;align-self:center;width:40px;height:4px;display:block}.filter-options button{padding:.8rem .7rem;font-size:1rem}}.section-title{align-items:baseline;gap:.6rem;margin:1.6rem 0 .8rem;display:flex}.card-chips{gap:.3rem}.add-clips{position:relative}.add-overlay{z-index:15;position:fixed;inset:0}.add-menu{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.4rem;min-width:250px;padding:.5rem;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 28px #00000073}.add-menu>button{text-align:left}.modal-overlay{z-index:50;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:1rem;width:100%;max-width:460px;max-height:90vh;padding:1.2rem;display:flex;overflow:auto;box-shadow:0 18px 50px #0000004d}.modal-card h2{margin:0;font-size:1.1rem}.setup-section{flex-direction:column;gap:.4rem;display:flex}.setup-section>.label{color:var(--text-dim);font-size:.75rem}.rename-card{max-width:380px}.setup-actions{justify-content:flex-end;gap:.5rem;display:flex}.video-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;display:grid}.video-grid.cols-2{grid-template-columns:repeat(2,1fr);gap:.6rem}.video-grid.cols-3{grid-template-columns:repeat(3,1fr);gap:.4rem}.video-grid.cols-3 .meta{padding:.35rem .4rem}.video-grid.cols-3 .meta .title{font-size:.8rem}.video-grid.cols-3 .card-chips,.video-grid.cols-3 .card-del{display:none}.video-table-wrap{overflow-x:auto}.video-table{border-collapse:collapse;width:100%}.video-table th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-bottom:1px solid var(--border);padding:.4rem;font-size:.72rem;font-weight:600}.video-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.5rem .4rem}.video-table .vt-empty{color:var(--text-dim)}.video-table .vt-fav-cell{text-align:center;width:32px}.video-table .vt-thumb-cell{width:56px}.video-table .vt-thumb{background-color:var(--surface-2);width:56px;height:56px;color:var(--text-dim);background-position:50% 30%;background-size:cover;border-radius:8px;justify-content:center;align-items:center;display:flex}.video-table .vt-title{color:var(--text);margin-bottom:.3rem;font-weight:600;display:block}.video-table .vt-title:hover{text-decoration:underline}.video-table .vt-actions{text-align:right;white-space:nowrap}.video-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;display:flex;position:relative;overflow:hidden}.card-del{color:var(--text-dim);opacity:.55;background:0 0;border:none;justify-content:center;align-items:center;padding:.15rem;display:inline-flex;position:absolute;bottom:.6rem;right:.7rem}.card-del:hover{opacity:1;color:var(--accent)}.video-card.favourite{border-color:color-mix(in srgb, var(--accent) 50%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 50%, transparent)}.card-title-row{align-items:center;gap:.4rem;display:flex}.card-title-row .title{flex:1;min-width:0}.fav-star{color:var(--text-dim);cursor:pointer;opacity:.4;transform-origin:100%;background:0 0;border:none;justify-content:center;align-items:center;padding:.15rem;transition:opacity .15s,transform .15s,color .15s;display:inline-flex;transform:scale(.85)}.fav-star:hover{opacity:.8}.fav-star.active{color:var(--accent);opacity:1;background:0 0;transform:scale(1)}.video-card .thumb{aspect-ratio:1;background:var(--surface-2);color:var(--text-dim);background-position:50% 30%;background-size:cover;justify-content:center;align-items:center;font-size:2rem;display:flex}.video-card .meta{flex-direction:column;gap:.3rem;padding:.6rem .7rem;display:flex}.video-card .meta .title{text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:600;overflow:hidden}.breakdown{grid-template-columns:minmax(0,1fr) 320px;gap:1.2rem;display:grid}@media (width<=860px){.container{padding:1rem}.clip-title{display:none}.breakdown{grid-template-columns:1fr}.breakdown .player-col:not(.fullscreen) .stage{border-radius:0;max-height:none;margin-inline:-1rem}}.stage{aspect-ratio:var(--ar,16 / 9);touch-action:pan-y;background:#000;border-radius:12px;justify-content:center;align-items:center;max-height:78vh;display:flex;position:relative;overflow:hidden}@media (width>=861px){.breakdown.portrait{grid-template-columns:auto minmax(320px,1fr)}.breakdown.portrait .player-col:not(.fullscreen){width:calc(78vh * var(--ar));min-width:360px}}.stage-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.stage-btn{z-index:2;color:#fff;background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;padding:0;display:flex;position:absolute;bottom:10px}.stage-btn:hover:not(:disabled){background:#000000c7;border:none}.stage-mute{left:10px}.stage-fs{right:10px}.player-col.fullscreen{z-index:999;background:#000;flex-direction:column;gap:.4rem;padding:.5rem;display:flex;position:fixed;inset:0;overflow:auto}.player-col.fullscreen .stage{aspect-ratio:auto;border-radius:0;flex:auto;min-height:0;max-height:none}.adv-menu{position:relative}.stage video{object-fit:contain;width:100%;height:100%}.note-overlay{z-index:2;pointer-events:none;flex-direction:column;align-items:center;gap:.4rem;max-width:80%;display:flex;position:absolute;bottom:8%;left:50%;transform:translate(-50%)}.note-caption{color:#b0b0b0;text-align:center;text-transform:capitalize;white-space:pre-wrap;background:#0009;border-radius:10px;padding:.35rem .7rem;font-size:.85rem;line-height:1.3}.stage video.mirrored{transform:scaleX(-1)}.controls{flex-direction:column;gap:.7rem;margin-top:.8rem;display:flex}.controls .group{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.controls .group>.label{color:var(--text-dim);width:3.5rem;font-size:.75rem}.controls .group-center{justify-content:center}.icon-btn{background:0 0;border-radius:50%;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;padding:0;display:inline-flex}.icon-btn.active,.icon-btn.active:hover:not(:disabled){color:var(--accent);background:0 0;border-color:#0000}.icon-btn svg{display:block}.icon-btn.play-btn,.icon-btn.play-btn:hover:not(:disabled){background:var(--accent);width:3.5rem;height:3.5rem;color:var(--on-accent)}.controls .group-center{gap:.6rem}.speed-seg{background:var(--surface-2);border-radius:10px;flex:14rem;padding:3px;display:flex}.speed-seg button{color:var(--text-dim);font-variant-numeric:tabular-nums;background:0 0;border-radius:8px;flex:1;padding:.45rem 0;font-size:.85rem;font-weight:600}.speed-seg button:hover:not(:disabled){color:var(--text);background:0 0}.speed-seg button.active,.speed-seg button.active:hover:not(:disabled){background:var(--surface);color:var(--text);box-shadow:0 1px 3px #00000024}.soft-toggle{white-space:nowrap;align-items:center;gap:.35rem;font-size:.85rem;font-weight:600;display:inline-flex}.soft-toggle.active,.soft-toggle.active:hover:not(:disabled){background:var(--accent-dim);color:var(--accent-ink);border-color:#0000}.count-badge{z-index:2;background:color-mix(in srgb, var(--surface) 92%, transparent);color:var(--text);font-variant-numeric:tabular-nums;pointer-events:none;border-radius:10px;padding:.35rem .65rem;font-size:1.5rem;font-weight:700;line-height:1;position:absolute;top:10px;left:10px}.count-badge.downbeat{color:var(--accent)}.count-badge small{color:var(--text-dim);margin-left:1px;font-size:.55em;font-weight:500}.moves-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.section-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:.68rem;font-weight:700}.moves-strip{scrollbar-width:thin;gap:.6rem;margin:0 -4px;padding:4px 4px 2px;display:flex;overflow-x:auto}.move-tile{flex-direction:column;flex:none;gap:.3rem;width:92px;display:flex;position:relative}.move-tile .move-load{text-align:left;background:0 0;flex-direction:column;gap:.3rem;padding:0;display:flex}.move-tile .move-load:hover:not(:disabled){background:0 0}.move-thumb{aspect-ratio:1;background-color:var(--surface-2);background-position:50% 30%;background-size:cover;border-radius:12px;position:relative}.move-thumb .time{color:#fff;background:#0000008c;border-radius:4px;padding:2px 4px;font-size:.62rem;font-weight:600;position:absolute;bottom:5px;right:5px}.move-tile.active .move-thumb{box-shadow:0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}.move-name{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:600;line-height:1.2;overflow:hidden}.move-tile .move-del{color:#fff;opacity:.8;background:#00000080;border-radius:50%;place-items:center;width:22px;height:22px;padding:0;display:grid;position:absolute;top:4px;right:4px}.move-tile .move-del:hover:not(:disabled){opacity:1;background:#000000bf}.scrubber{height:34px;margin-top:1.6rem;position:relative}.scrubber .track{background:var(--surface-2);border-radius:99px;height:6px;position:absolute;top:14px;left:0;right:0;overflow:hidden}.scrubber .played{background:var(--accent);height:100%;position:absolute}.scrubber .loop-region{background:color-mix(in srgb, var(--accent) 22%, transparent);border-left:2px solid var(--accent);border-right:2px solid var(--accent);height:14px;position:absolute;top:10px}.scrubber input[type=range]{appearance:none;z-index:1;background:0 0;border:none;width:100%;margin:0;padding:0;position:absolute;inset:0}.scrubber .marker{background:var(--good);opacity:.45;cursor:pointer;z-index:2;width:2px;height:10px;position:absolute;top:8px}.scrubber .marker .marker-label{color:var(--good);white-space:nowrap;font-size:.58rem;position:absolute;top:-13px;left:50%;transform:translate(-50%)}.scrubber .marker.primary{opacity:1;background:var(--accent);width:3px;height:18px;top:1px}.scrubber .marker.primary .marker-label{color:var(--accent);font-size:.72rem;font-weight:700;top:-15px}.auth-screen{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-card{max-width:360px}.auth-error{color:var(--accent);font-size:.8rem}.auth-switch{color:var(--secondary,var(--text));cursor:pointer;text-align:center;background:0 0;border:none;padding:0;font-size:.8rem}.trim-card{max-width:640px}.trim-video{cursor:pointer;background:#000;border-radius:8px;width:100%;max-height:50vh}.trim-scrubber{flex-direction:column;gap:.5rem;display:flex}.trim-scrubber .track{background:var(--surface-2);cursor:pointer;touch-action:none;border-radius:6px;height:26px;position:relative}.trim-scrubber .trim-region{background:color-mix(in srgb, var(--accent) 22%, transparent);border-left:2px solid var(--accent);border-right:2px solid var(--accent);position:absolute;top:0;bottom:0}.trim-scrubber .playhead{background:var(--secondary,var(--text));pointer-events:none;width:2px;position:absolute;top:-3px;bottom:-3px}.trim-scrubber .trim-handle{background:var(--accent);cursor:ew-resize;touch-action:none;z-index:2;border-radius:4px;width:14px;margin-left:-7px;position:absolute;top:-4px;bottom:-4px}.trim-scrubber .trim-handle:after{content:"";background:var(--on-accent);opacity:.7;width:2px;height:12px;margin:auto;position:absolute;inset:0}.trim-times{justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.trim-controls{gap:.5rem;display:flex}.trim-progress{flex-direction:column;gap:.3rem;display:flex}.trim-progress .track{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.trim-progress .fill{background:var(--accent);height:100%;transition:width .2s}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.9rem}.panel h3{margin:0 0 .6rem;font-size:.95rem}.panel+.panel{margin-top:1rem}.queue-states{grid-template-columns:repeat(3,1fr);gap:.4rem;margin-bottom:.7rem;display:grid}.queue-states button{text-align:center}.tag-chips{margin-bottom:.6rem}.disclosure{text-align:left;border:1px dashed var(--border);width:100%;color:var(--text-dim);background:0 0;padding:.4rem .6rem;font-size:.85rem}.tag-editor{flex-direction:column;gap:.7rem;margin-top:.6rem;display:flex}.tag-section .label{color:var(--text-dim);margin-bottom:.35rem;font-size:.75rem;display:block}.context-pick{flex-wrap:wrap;gap:.4rem;display:flex}.context-pick button{flex:auto;min-width:5rem}.beats-collapsed{justify-content:center;display:flex}.beats-collapsed button{min-width:60%;padding:.6rem 1.5rem}.beat-counts{grid-template-columns:repeat(8,1fr);gap:.3rem;display:grid}.beat-counts button{text-align:center;padding:.45rem 0}.list{flex-direction:column;gap:.35rem;max-height:220px;display:flex;overflow:auto}.list-item{background:var(--surface-2);border-radius:8px;align-items:center;gap:.5rem;padding:.35rem .5rem;font-size:.85rem;display:flex}.list-item .ts{color:var(--accent);font-variant-numeric:tabular-nums;cursor:pointer}.list-item button.del{margin-left:auto;padding:.1rem .4rem;font-size:.75rem}.chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .55rem;font-size:.75rem;display:inline-flex}.segmented{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{background:var(--surface-2);border:none;border-radius:0;padding:.35rem .7rem;font-size:.8rem}.segmented button+button{border-left:1px solid var(--border)}.tap-pad{letter-spacing:.1em;background:var(--accent-dim);border-color:var(--accent);flex-direction:column;align-items:center;gap:.2rem;width:100%;padding:1.1rem;font-size:1.4rem;font-weight:700;display:flex}.tap-pad:active{background:var(--accent);color:var(--on-accent);transform:scale(.99)}.tap-pad .tap-sub{letter-spacing:normal;color:var(--text-dim);font-size:.75rem;font-weight:400}@media (width>=861px){.tap-pad{padding:.45rem .9rem;font-size:1rem}}.time{font-variant-numeric:tabular-nums}.feed{z-index:1000;color:#fff;background:#000;position:fixed;inset:0}.feed-scroller{scroll-snap-type:y mandatory;overscroll-behavior:contain;scrollbar-width:none;height:100%;overflow-y:auto}.feed-scroller::-webkit-scrollbar{display:none}.feed-item{scroll-snap-align:start;scroll-snap-stop:always;background:#000 50%/contain no-repeat;height:100dvh;position:relative;overflow:hidden}.feed-item video{object-fit:contain;background:#000;width:100%;height:100%;position:absolute;inset:0}.feed-item video.mirrored{transform:scaleX(-1)}.feed-item .count-badge{top:calc(12px + env(safe-area-inset-top,0px));left:12px}.feed-paused{pointer-events:none;color:#ffffffd9;place-items:center;display:grid;position:absolute;inset:0}.feed-meta{padding:3rem 5rem calc(1.4rem + env(safe-area-inset-bottom,0px)) 1rem;pointer-events:none;background:linear-gradient(#0000,#000000a6);position:absolute;bottom:0;left:0;right:0}.feed-meta h2{color:#fff;margin:0;font-size:1.35rem}.feed-meta p{color:#ffffffc7;margin:.2rem 0 0;font-size:.85rem}.feed-actions{right:12px;bottom:calc(1.4rem + env(safe-area-inset-bottom,0px));z-index:2;flex-direction:column;gap:.7rem;display:flex;position:absolute}.feed-btn,.feed-btn:hover:not(:disabled){color:#fff;background:#00000073;border:none;border-radius:50%;place-items:center;width:46px;height:46px;padding:0;display:grid}.feed-btn.on{color:var(--accent)}.feed-close{top:calc(12px + env(safe-area-inset-top,0px));z-index:3;position:absolute;right:12px}.feed-pos{top:calc(24px + env(safe-area-inset-top,0px));z-index:3;color:#ffffffbf;font-variant-numeric:tabular-nums;pointer-events:none;font-size:.75rem;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.feed-progress{height:3px;padding-bottom:env(safe-area-inset-bottom,0px);box-sizing:content-box;background:#fff3;position:absolute;bottom:0;left:0;right:0}.feed-progress>div{background:var(--accent);width:0;height:3px}
