.badge{display:inline-flex;align-items:center;gap:5px;min-height:20px;padding:1px 8px;border-radius:999px;font-size:var(--fs-xs);font-weight:600;line-height:1.3;white-space:nowrap;border:1px solid transparent}.badge-neutral{background:var(--surface-3);color:var(--text-dim);border-color:var(--border-strong)}.badge-pending{background:transparent;color:var(--text);border-color:var(--border-strong)}.badge-pending:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.badge-green{background:var(--green-dim);color:var(--green);border-color:#22c55e59}.badge-amber{background:var(--amber-dim);color:var(--amber);border-color:#f59e0b59}.badge-red{background:var(--red-dim);color:#fca5a5;border-color:#ef444459}.badge-accent{background:var(--accent-dim);color:var(--accent-text);border-color:var(--accent-border)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--text-faint)}.status-dot-in_review{background:var(--accent)}.status-dot-changes_requested{background:var(--amber)}.status-dot-approved{background:var(--green)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-3);box-shadow:inset 0 0 0 1.5px var(--avatar-color, var(--border-strong));color:var(--text);font-weight:700;letter-spacing:.01em;line-height:1;flex-shrink:0;-webkit-user-select:none;user-select:none}.avatar-dot{width:10px;height:10px;box-shadow:inset 0 0 0 2px var(--avatar-color, var(--border-strong));background:transparent}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-family:inherit;font-size:var(--fs-sm);font-weight:600;line-height:1.2;cursor:pointer;white-space:nowrap;text-decoration:none}.btn:hover:not(:disabled){background:var(--surface-hover);border-color:#43434d}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-md{min-height:36px;padding:0 14px}.btn-sm{min-height:32px;padding:0 10px;font-size:var(--fs-xs)}.btn-primary{background:var(--accent-fill);border-color:var(--accent-fill);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-fill-hover);border-color:var(--accent-fill-hover)}.btn-danger{background:var(--red-dim);border-color:#ef444466;color:#fca5a5}.btn-danger:hover:not(:disabled){background:#ef444438;border-color:#ef44448c}.btn-subtle{background:transparent;border-color:transparent;color:var(--text-dim)}.btn-subtle:hover:not(:disabled){background:var(--surface-3);border-color:transparent;color:var(--text)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius-lg);max-width:100%;max-height:calc(100vh - 64px);overflow:auto;box-shadow:0 24px 64px #00000080}.modal:focus{outline:none}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 12px 18px;border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:var(--fs-lg);line-height:1.3}.modal-close{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-dim);cursor:pointer;min-width:32px;min-height:32px;padding:0;border-radius:var(--radius-sm);flex-shrink:0}.modal-close:hover{background:var(--surface-3);color:var(--text)}.modal-body{padding:18px}.modal-body p{margin:0 0 4px;line-height:1.5;color:var(--text-dim)}.modal-body .error-banner{margin-bottom:12px}.modal-field{display:block;width:100%}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.error-banner{display:flex;align-items:center;gap:10px;background:var(--red-dim);border:1px solid rgba(239,68,68,.4);color:#fca5a5;padding:8px 8px 8px 12px;border-radius:var(--radius);font-size:var(--fs-sm);line-height:1.45}.error-banner>span{flex:1;min-width:0}.error-banner .modal-close{color:inherit}.toast-region{position:fixed;left:0;right:0;bottom:var(--toast-bottom, 20px);z-index:95;display:flex;justify-content:center;padding:0 16px;pointer-events:none}body:has(.tour-banner) .toast-region{--toast-bottom: 150px}.toast{display:inline-flex;align-items:center;gap:8px;max-width:min(480px,100%);padding:9px 14px;border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-size:var(--fs-sm);font-weight:600;line-height:1.4;box-shadow:0 12px 32px #00000080;pointer-events:auto}.toast-success .icon{color:var(--green)}.toast-error{border-color:#ef444473;color:#fca5a5}.spinner-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--text-faint);padding:32px}.spinner{width:22px;height:22px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%}.page-message{margin:auto;padding:48px 24px;max-width:520px;text-align:center;display:flex;flex-direction:column;align-items:center}.page-message-glyph{color:var(--text-faint);margin-bottom:14px}.page-message h1{margin:0 0 8px;font-size:var(--fs-xl);line-height:1.3}.page-message p{margin:0 0 22px;color:var(--text-dim);line-height:1.5}input[type=text],input[type=number],textarea,select{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);padding:8px 10px;font-family:inherit;font-size:var(--fs-sm)}input[type=text]:focus,input[type=number]:focus,textarea:focus,select:focus{border-color:var(--accent-border)}textarea{resize:vertical;line-height:1.45}@media (max-width: 900px){input[type=text],input[type=number],textarea,select{font-size:16px}}.inbox-panel{position:absolute;top:calc(100% + 6px);right:12px;width:380px;max-height:min(480px,calc(100vh - 80px));overflow:auto;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 16px 48px #00000080;z-index:50}.inbox-head{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface-1)}.inbox-head h3{margin:0;font-size:var(--fs-md)}.inbox-list{list-style:none;margin:0;padding:8px}.inbox-list li a{display:flex;flex-direction:column;gap:3px;padding:9px 10px;border-radius:var(--radius-sm)}.inbox-list li a:hover{background:var(--surface-3)}.inbox-list li+li{margin-top:2px}.inbox-list li.unread{position:relative;background:var(--surface-2);border-radius:var(--radius-sm)}.inbox-list li.unread:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--accent)}.inbox-text{font-size:var(--fs-sm);line-height:1.45;color:var(--text)}.inbox-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.inbox-kind{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.inbox-time{font-size:var(--fs-xs);color:var(--text-faint)}.inbox-list .empty-note{padding:12px;font-size:var(--fs-sm)}.tour-banner{position:fixed;left:50%;bottom:16px;transform:translate(-50%);z-index:90;width:min(720px,calc(100vw - 32px));display:flex;align-items:flex-start;gap:14px;padding:12px 40px 12px 16px;border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:#111114eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 16px 48px #0000008c}.tour-banner-done{border-color:#22c55e73;align-items:center}.tour-step{flex:1;min-width:0}.tour-progress{display:flex;align-items:center;gap:8px;margin-bottom:4px}.tour-progress-text{font-size:var(--fs-xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);white-space:nowrap}.tour-dots{display:inline-flex;gap:4px}.tour-dot{width:6px;height:6px;border-radius:50%;background:var(--border-strong)}.tour-dot.is-filled{background:var(--accent)}.tour-title{margin:0 0 3px;font-size:var(--fs-md);font-weight:700;line-height:1.35;display:flex;align-items:center;gap:7px}.tour-check{display:inline-flex;color:var(--green)}.tour-body{margin:0;font-size:var(--fs-sm);line-height:1.45;color:var(--text-dim)}.tour-banner-done .tour-body{color:var(--text-dim)}.tour-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;align-self:center;flex-wrap:wrap;justify-content:flex-end}.tour-link{background:none;border:none;padding:4px 6px;border-radius:var(--radius-sm);color:var(--text-dim);font-size:var(--fs-sm);font-weight:600;cursor:pointer;white-space:nowrap}.tour-link:hover{color:var(--text);background:var(--surface-3)}.tour-x{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--text-dim);min-width:32px;min-height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);cursor:pointer}.tour-x:hover{background:var(--surface-3);color:var(--text)}@media (max-width: 700px){.tour-banner{left:0;right:0;bottom:0;transform:none;width:auto;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-left:none;border-right:none;border-bottom:none;flex-direction:column;gap:10px;padding:12px 40px calc(12px + env(safe-area-inset-bottom,0px)) 16px}.tour-actions{align-self:stretch;justify-content:flex-start}}.layout{display:flex;flex-direction:column;height:100%}.header{position:relative;z-index:40;display:flex;align-items:center;gap:14px;height:52px;padding:0 16px;border-bottom:1px solid var(--border);background:var(--surface-1);flex-shrink:0}.logo{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:var(--fs-lg);letter-spacing:.01em;border-radius:var(--radius-sm);white-space:nowrap}.logo:hover{color:var(--accent-text)}.header-spacer{flex:1}.header-demo{display:flex;align-items:center;gap:6px;flex-shrink:0}.local-demo-pill{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-dim);font-size:var(--fs-xs);font-weight:600;white-space:nowrap;cursor:default}.restart-demo-btn{white-space:nowrap}.inbox-wrap{display:flex}.inbox-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-dim);cursor:pointer}.inbox-btn:hover,.inbox-btn[aria-expanded=true]{background:var(--surface-3);color:var(--text)}.inbox-badge{position:absolute;top:1px;right:0;background:#dc2626;color:#fff;font-size:var(--fs-xs);font-weight:700;font-variant-numeric:tabular-nums;line-height:1;border-radius:999px;min-width:17px;height:17px;display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 0 0 2px var(--surface-1)}.user-switch{display:flex;align-items:center;gap:8px}.user-switch-label{color:var(--text-faint);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em}.user-switch select{min-height:32px;padding:5px 8px}.layout-main,.screen{flex:1;min-height:0;display:flex;flex-direction:column}.layout--portfolio-preview .header-demo,.layout--portfolio-preview .inbox-wrap,.layout--portfolio-preview .user-switch,.layout--portfolio-preview .role-badge{display:none}.boot-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px}.boot-logo{display:inline-flex;align-items:center;gap:10px;font-size:26px;font-weight:800;letter-spacing:.01em}.boot-error{max-width:560px;margin:80px auto;padding:24px;border:1px solid rgba(239,68,68,.4);border-radius:var(--radius-lg);background:var(--surface-1)}.boot-error .hint{color:var(--text-faint);font-size:var(--fs-sm)}@media (min-width: 701px) and (max-width: 899px){.role-badge,.user-switch-label{display:none}.user-switch{min-width:0}.user-switch select{max-width:240px}.restart-demo-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.restart-demo-btn{width:36px;min-height:36px;padding:0}}@media (max-width: 700px){.header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-rows:36px 36px;align-items:center;height:auto;padding:8px 12px;gap:6px 4px}.header-spacer,.user-switch-label,.role-badge{display:none}.logo{min-width:0}.header-demo{grid-column:2;grid-row:1;gap:4px}.restart-demo-text{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.restart-demo-btn{width:36px;min-height:36px;padding:0}.inbox-wrap{grid-column:3;grid-row:1}.user-switch{grid-column:1 / -1;grid-row:2;min-width:0}.user-switch select{flex:1;min-width:0;min-height:36px}.inbox-panel{right:8px;width:min(380px,calc(100vw - 16px));max-height:calc(100vh - 120px)}}.projects-screen{flex:1;min-height:0;padding:32px 32px 48px;overflow:auto}.screen-inner{max-width:1120px;margin:0 auto}.screen-head{margin-bottom:24px}.screen-head h1{margin:0;font-size:var(--fs-2xl);font-weight:700;line-height:1.25;letter-spacing:-.01em}.screen-sub{margin:6px 0 0;color:var(--text-dim);font-size:var(--fs-md);line-height:1.5}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.project-card{display:flex;flex-direction:column;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.project-card:hover{border-color:var(--border-strong)}.project-poster{position:relative;aspect-ratio:16 / 9;display:grid;place-items:center;background:var(--surface-3);border-bottom:1px solid var(--border);overflow:hidden}.project-poster img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.thumb-placeholder{color:var(--text-faint)}.project-body{display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px;flex:1}.project-card h2{margin:0;font-size:var(--fs-lg);line-height:1.35}.project-desc{margin:0;color:var(--text-dim);font-size:var(--fs-md);line-height:1.5}.project-meta-line{margin:4px 0 0;color:var(--text-faint);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.project-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.project-meta:empty{display:none}.project-meta .badge{font-size:var(--fs-sm);min-height:22px}.project-open{margin-top:auto;padding-top:8px;color:var(--text-dim);font-size:var(--fs-sm);font-weight:600}.project-card:hover .project-open{color:var(--accent-text)}.asset-open-arrow{display:inline-block}.empty-note{color:var(--text-faint);font-size:var(--fs-md)}@media (min-width: 900px){.projects-grid:has(>.project-card:only-child){grid-template-columns:minmax(0,1fr)}.project-card:only-child{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.project-card:only-child .project-poster{border-bottom:0;border-right:1px solid var(--border)}.project-card:only-child .project-body{justify-content:center;padding:32px 36px;gap:10px}.project-card:only-child h2{font-size:var(--fs-xl)}.project-card:only-child .project-open{margin-top:12px}}@media (max-width: 700px){.projects-screen{padding:20px 16px 32px}.screen-head{margin-bottom:18px}.screen-head h1{font-size:var(--fs-xl)}.projects-grid{grid-template-columns:minmax(0,1fr)}.project-body{padding:16px}}.project-screen{flex:1;min-height:0;padding:24px 32px 48px;overflow:auto}.project-inner{max-width:1200px}.back-link{display:inline-block;color:var(--text-dim);font-size:var(--fs-sm);border-radius:var(--radius-sm)}.project-screen .screen-head h1{margin-top:8px}.project-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.assets-list{display:flex;flex-direction:column;gap:10px}.asset-card{position:relative;display:flex;align-items:center;gap:18px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:12px 18px 12px 12px}.asset-card:hover{border-color:var(--border-strong)}.asset-card-open:before{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.asset-thumb{position:relative;width:128px;aspect-ratio:16 / 9;display:grid;place-items:center;background:var(--surface-3);border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0}.asset-thumb img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.asset-info{flex:1;min-width:0}.asset-info h2{margin:0;font-size:var(--fs-md);line-height:1.35}.asset-meta-line{margin:2px 0 8px;color:var(--text-faint);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.asset-open-count{color:var(--text);font-weight:600}.asset-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.asset-meta .badge{font-size:var(--fs-sm);min-height:22px}.asset-open{color:var(--text-dim);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.asset-card:hover .asset-open{color:var(--accent-text)}.activity-panel{position:sticky;top:0;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px 18px}.activity-panel h2{margin:0 0 12px;font-size:var(--fs-sm);font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.activity-list li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:var(--fs-sm);line-height:1.45}.activity-text{color:var(--text-dim)}.activity-text strong{color:var(--text);font-weight:600}.activity-time{color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums}@media (max-width: 900px){.project-layout{grid-template-columns:minmax(0,1fr)}.activity-panel{position:static}}@media (max-width: 700px){.project-screen{padding:18px 16px 32px}.asset-card{display:grid;grid-template-columns:104px minmax(0,1fr);gap:4px 12px;align-items:start;padding:12px}.asset-thumb{width:104px;grid-row:1 / 3}.asset-info,.asset-open{grid-column:2}.asset-open{justify-self:start;padding-top:4px}.activity-panel{padding:14px}}.player{display:flex;flex-direction:column;min-height:0;background:var(--surface-1);position:relative}.player-stage{position:relative;flex:1;min-height:0;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}.player-stage video{width:100%;height:100%;object-fit:contain;display:block}.player-fullscreen{width:100vw;height:100vh}.player-fullscreen .player-controls{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#000000d9);border:none;z-index:5}.player-error{display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--text-dim);padding:40px;text-align:center;font-size:var(--fs-md);line-height:1.5}.player-error-msg{display:inline-flex;align-items:flex-start;gap:8px;max-width:44ch;text-align:left}.player-error-msg .icon{color:var(--amber);margin-top:2px}.player-error-actions{display:flex;align-items:center;gap:8px}.player-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;background:#00000059;pointer-events:none}.player-loading .spinner-wrap{padding:14px 18px;background:#0a0a0cb8;border:1px solid var(--border);border-radius:var(--radius);font-size:var(--fs-sm)}.player-controls{container-type:inline-size;border-top:1px solid var(--border);padding:8px 12px;flex-shrink:0}.controls-row{display:flex;align-items:center;gap:6px;margin-bottom:8px}.ctl-group{display:flex;align-items:center;gap:4px;flex-shrink:0}.controls-spacer{flex:1;min-width:0}.ctl{background:none;border:1px solid transparent;color:var(--text-dim);width:32px;height:32px;padding:0;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ctl:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.ctl-play{width:40px;color:var(--text);border-color:var(--border-strong);background:var(--surface-2)}.time-readout{display:inline-flex;align-items:baseline;gap:6px;margin-left:8px;font-family:var(--mono);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.timecode{color:var(--text)}.frame-no,.timecode-duration{color:var(--text-faint)}.frame-no{min-width:4ch}.video-size{color:var(--text-faint);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.volume-slider{width:70px;min-height:32px;accent-color:var(--accent)}.rate-select{background:var(--surface-2);border:1px solid var(--border-strong);color:var(--text-dim);border-radius:var(--radius-sm);font-size:var(--fs-sm);min-height:32px;padding:3px 6px;cursor:pointer}.track{position:relative;height:14px;cursor:pointer;touch-action:none;border-radius:4px}.track:before{content:"";position:absolute;left:0;right:0;top:50%;height:4px;margin-top:-2px;border-radius:2px;background:var(--surface-3)}.track-buffered,.track-fill{position:absolute;left:0;width:100%;top:50%;height:4px;margin-top:-2px;border-radius:2px;transform-origin:left center;transform:scaleX(0);pointer-events:none}.track-buffered{background:#ffffff1f}.track-fill{background:var(--accent);z-index:0}.track-head{position:absolute;left:0;top:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0009;pointer-events:none;z-index:3}.track-marker{position:absolute;top:50%;width:10px;height:10px;padding:0;border:0;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1.5px var(--surface-1);cursor:pointer;z-index:1}.track-marker:before{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px}.marker-open{background:var(--accent-text)}.marker-resolved{background:var(--green)}.marker-annotated{width:9px;height:9px;border-radius:1.5px;transform:translate(-50%,-50%) rotate(45deg)}.track-marker.is-selected{box-shadow:0 0 0 1.5px var(--surface-1),0 0 0 3.5px var(--text)}@container (max-width: 780px){.video-size{display:none}}@container (max-width: 620px){.volume-slider{display:none}}@container (max-width: 560px){.controls-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"transport . fs" "readout readout audio";row-gap:2px;column-gap:8px;margin-bottom:0}.ctl-transport{grid-area:transport}.ctl-fullscreen{grid-area:fs}.time-readout{grid-area:readout;margin-left:4px}.ctl-audio{grid-area:audio}.controls-spacer,.video-size{display:none}.rate-select{width:60px}}@media (max-width: 900px){.track{height:28px}.track-marker:before{top:-7px;right:-7px;bottom:-7px;left:-7px}.rate-select{font-size:16px}}@media (max-width: 700px){.player-controls{padding:4px 8px 0}.ctl{width:36px;height:36px}.ctl-audio .ctl{width:32px;height:32px}.ctl-play{width:44px}.rate-select{min-height:32px}.track{height:24px}}.annotation-root{position:absolute;pointer-events:none;z-index:5}.annotation-root.is-armed{touch-action:none}.an-svg{display:block;pointer-events:none}.an-svg.an-drawing{pointer-events:auto;cursor:crosshair;touch-action:none}.an-toolbar{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:2px;max-width:calc(100% - 24px);padding:4px;background:#111114c7;border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 6px 20px #00000059;pointer-events:auto;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.an-tool{width:32px;height:32px;padding:0;display:grid;place-items:center;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-dim);cursor:pointer}.an-tool:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.an-tool.active{background:var(--accent-dim);border-color:var(--accent);color:var(--text)}.an-tool:disabled{cursor:not-allowed;opacity:.5}.an-armed-group{display:flex;align-items:center;gap:4px}.an-divider{width:1px;height:20px;margin:0 4px;background:var(--border-strong)}.an-armed-btn{min-width:32px;height:32px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-dim);font-size:var(--fs-sm);font-weight:600;cursor:pointer;white-space:nowrap}.an-armed-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.an-armed-btn:disabled{opacity:.45;cursor:not-allowed}@media (max-width: 900px){.an-toolbar{top:8px;left:8px;max-width:calc(100% - 16px);gap:4px;background:#111114b8}.an-tool{width:36px;height:36px}.an-armed-btn{height:36px;padding:0 8px}.an-divider{margin:0 2px}}.comments-panel{display:flex;flex-direction:column;min-width:0;min-height:0}.cp-head{padding:12px 12px 10px;border-bottom:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;gap:8px}.cp-head h2{margin:0 0 0 2px;font-size:var(--fs-md);line-height:1.3;display:flex;align-items:center;gap:8px}.cp-count{min-width:22px;text-align:center;background:var(--surface-3);border-radius:999px;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;padding:2px 7px;color:var(--text-dim)}.cp-filters{display:flex;flex-wrap:nowrap;gap:2px;min-width:0}.cp-filter{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:0 9px;background:none;border:1px solid transparent;border-radius:999px;color:var(--text-dim);font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer}.cp-filter-n{font-weight:400;font-variant-numeric:tabular-nums;color:var(--text-faint)}.cp-filter:hover{color:var(--text);background:var(--surface-2)}.cp-filter.active{color:var(--accent-text);background:var(--accent-dim);border-color:var(--accent-border)}.cp-filter.active .cp-filter-n{color:inherit}.cp-scope{display:flex;padding:2px;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg)}.cp-scope-btn{flex:1;min-width:0;height:26px;padding:0 8px;font-size:var(--fs-sm);font-weight:600;border:0;border-radius:6px;background:transparent;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.cp-scope-btn:hover{color:var(--text)}.cp-scope-btn.active{background:var(--surface-3);color:var(--text)}.cp-version-tag{font-size:var(--fs-xs);font-weight:600;padding:1px 6px;border-radius:4px;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);flex-shrink:0}.cp-missing{margin:10px 12px 0;padding:10px 12px;border:1px solid var(--accent-border);border-radius:var(--radius-sm);background:var(--accent-dim);display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex-shrink:0}.cp-missing-text{margin:0;font-size:var(--fs-sm);line-height:1.45;color:var(--text)}.cp-list{flex:1;overflow:auto;padding:10px 12px 14px;display:flex;flex-direction:column;gap:10px;min-height:0;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 8px,#000 calc(100% - 16px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 8px,#000 calc(100% - 16px),transparent 100%)}.cp-empty{padding:28px 8px;text-align:center}.cp-empty-title{margin:0 0 4px;font-size:var(--fs-md);font-weight:600;color:var(--text-dim)}.cp-empty-hint{margin:0;font-size:var(--fs-sm);line-height:1.5;color:var(--text-faint)}.cp-hint-touch{display:none}@media (hover: none) and (pointer: coarse){.cp-hint-keys{display:none}.cp-hint-touch{display:inline}}.cp-empty kbd{display:inline-block;min-width:20px;padding:1px 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;background:var(--surface-2);color:var(--text);font-family:var(--mono);font-size:var(--fs-xs);line-height:1.4}.cp-item{flex-shrink:0;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:12px;transition:border-color .3s,background-color .3s}.cp-item:hover{border-color:var(--border-strong)}.cp-item.resolved>.cp-row>.cp-body>.cp-text{color:var(--text-dim)}.cp-item.highlight{border-color:var(--accent);background:var(--accent-dim)}.cp-row{display:flex;gap:10px}.cp-body{flex:1;min-width:0}.cp-meta{display:flex;align-items:center;gap:6px;min-height:24px;margin-bottom:4px}.cp-author{font-weight:600;font-size:var(--fs-sm);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-meta .cp-author{flex:0 1 auto}.cp-status{margin-left:auto;flex-shrink:0;display:inline-flex}.cp-body{container-type:inline-size}@container (max-width: 250px){.cp-meta{flex-wrap:wrap;row-gap:4px}.cp-status{flex-basis:100%;margin-left:0}}.cp-time{flex-shrink:0;display:inline-flex;align-items:center;height:24px;padding:0 6px;background:var(--surface-3);border:1px solid transparent;border-radius:4px;color:var(--text-dim);font-family:var(--mono);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;cursor:pointer}.cp-time:hover{color:var(--text);border-color:var(--border-strong)}.cp-text{margin:0;font-size:13px;color:var(--text);line-height:1.5;overflow-wrap:anywhere}.mention{color:var(--accent-text);font-weight:600}.cp-actions{display:flex;align-items:center;gap:2px;margin:4px 0 0 -8px;flex-wrap:wrap}.cp-action{display:inline-flex;align-items:center;gap:5px;min-height:28px;min-width:32px;padding:0 8px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-dim);font-size:var(--fs-sm);font-weight:600;line-height:1;cursor:pointer}.cp-action:hover:not(:disabled){color:var(--text);background:var(--surface-2)}.cp-action:disabled{opacity:.45;cursor:not-allowed}.cp-annotate{color:var(--accent-text)}.cp-replies{margin-top:8px;padding-left:10px;border-left:2px solid var(--border-strong);display:flex;flex-direction:column;gap:8px}.cp-reply{display:flex;gap:8px;align-items:baseline;font-size:var(--fs-sm);line-height:1.5}.cp-reply .avatar-dot{position:relative;top:1px}.cp-reply .cp-author{font-size:var(--fs-sm);white-space:normal}.cp-reply .cp-text{font-size:var(--fs-sm);color:var(--text-dim)}.cp-reply-box,.cp-edit{margin-top:8px}.cp-reply-box textarea,.cp-edit textarea{width:100%;box-sizing:border-box}.cp-edit-actions{display:flex;gap:8px;margin-top:6px}.cp-composer{border-top:1px solid var(--border);padding:10px 12px 12px;flex-shrink:0}.cp-composer textarea{display:block;width:100%;box-sizing:border-box;font-size:13px}.cp-composer-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.cp-hint{color:var(--text-faint);font-size:var(--fs-sm)}.cp-readonly{margin:0;color:var(--text-faint);font-size:var(--fs-sm);line-height:1.45}.cp-annotations{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:4px 0 0 -8px}.cp-annotation{display:flex;align-items:center;max-width:100%;min-width:0}.cp-an-link{display:inline-flex;align-items:center;gap:6px;min-width:0;min-height:28px;padding:0 8px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-dim);font-size:var(--fs-sm);cursor:pointer}.cp-an-link:hover{color:var(--text);background:var(--surface-2)}.cp-an-icon{display:inline-flex;flex-shrink:0}.cp-an-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-an-tc{font-family:var(--mono);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.cp-an-del{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;padding:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-faint);cursor:pointer}.cp-an-del:hover:not(:disabled){color:#fca5a5;background:var(--surface-3)}@media (max-width: 900px){.cp-head{padding:10px 12px}.cp-list{padding:10px 12px 14px}.cp-composer{padding:10px 12px calc(12px + env(safe-area-inset-bottom,0px))}.cp-filter,.cp-scope-btn{min-height:36px;height:36px}.cp-filter{padding:0 10px;font-size:var(--fs-sm)}.cp-action,.cp-an-link,.cp-composer .btn{min-height:40px}.cp-time{height:32px;padding:0 9px;font-size:var(--fs-sm)}.cp-an-del{width:40px;height:40px}.cp-action,.cp-text{font-size:var(--fs-md)}.cp-composer textarea{font-size:16px}}.version-sidebar{display:flex;flex-direction:column;min-height:0;flex:1}.vs-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px}.vs-title{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);font-weight:700}.vs-list{list-style:none;margin:0;padding:0 8px;display:flex;flex-direction:column;gap:4px;flex:1}.vs-list>li{position:relative}.vs-item{width:100%;min-height:32px;display:flex;flex-wrap:wrap;align-items:center;gap:5px 8px;padding:8px 30px 8px 10px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;text-align:left;color:var(--text-dim);font-size:var(--fs-sm)}.vs-item:hover{background:var(--surface-2)}.vs-item.active{background:var(--accent-dim);border-color:var(--accent-border);color:var(--text)}.vs-item.active .vs-counts{color:var(--text-dim)}.vs-number{font-weight:700;color:var(--text);font-family:var(--mono);font-size:var(--fs-sm)}.vs-name{flex:1 0 calc(100% - 35px);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm)}.vs-counts{flex:0 0 100%;display:flex;align-items:center;gap:6px;margin-top:2px;font-size:var(--fs-sm);color:var(--text-faint);line-height:1.4;white-space:normal}.vs-counts .icon{flex-shrink:0}.vs-open{color:var(--text);font-weight:700}.vs-fps{font-size:var(--fs-sm);color:var(--text-faint);font-family:var(--mono);white-space:nowrap}.vs-meta-btn{position:absolute;right:6px;top:8px;display:inline-flex;align-items:center;justify-content:center;padding:0;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-dim);width:32px;height:32px;cursor:pointer}@media (hover: hover) and (pointer: fine){.vs-meta-btn{opacity:0;transition:opacity var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out)}.vs-list>li:hover .vs-meta-btn,.vs-meta-btn:focus-visible{opacity:1}}.vs-meta-btn:hover{color:var(--text)}.meta-field{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);color:var(--text-dim)}.meta-field input{min-height:36px;padding:6px 10px;width:120px;font-variant-numeric:tabular-nums}.modal-body .meta-note{color:var(--text-faint);font-size:var(--fs-sm);margin:10px 0 0}.vs-compare{display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;margin:10px 14px 14px;padding:8px 10px;text-align:center;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--fs-sm);font-weight:600;color:var(--text-dim)}.vs-compare:hover{background:var(--surface-2);color:var(--text)}.modal-body .upload-hint{color:var(--text-dim);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;margin:0 0 14px}.upload-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:28px 20px;border:1px dashed var(--border-strong);border-radius:10px;background:var(--surface-2);text-align:center;cursor:pointer}.upload-drop:hover,.upload-drop.is-over{border-color:var(--accent);background:var(--accent-dim)}.upload-drop.is-busy{cursor:progress;opacity:.6}.upload-drop:has(.upload-input:focus-visible){outline:var(--focus-ring);outline-offset:2px}.upload-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}.upload-input:focus-visible{outline:none}.upload-input::file-selector-button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text);font:inherit;padding:6px 10px}.upload-drop-icon{color:var(--text-dim);margin-bottom:4px}.upload-drop-title{font-size:var(--fs-md);font-weight:600;color:var(--text)}.upload-drop-browse{color:var(--accent-text);text-decoration:underline;text-underline-offset:3px}.upload-drop-note{font-size:var(--fs-sm);color:var(--text-faint)}.upload-or{display:flex;align-items:center;gap:12px;margin:14px 0;color:var(--text-faint);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.upload-or:before,.upload-or:after{content:"";flex:1;height:1px;background:var(--border)}.upload-demo-btn{width:100%}.upload-progress{display:flex;align-items:center;gap:10px;margin-top:14px;font-size:var(--fs-sm);color:var(--text-dim)}.upload-bar{flex:1;height:6px;background:var(--surface-3);border-radius:3px;overflow:hidden}.upload-fill{width:100%;height:100%;background:var(--accent);transform-origin:left center;transform:scaleX(var(--p, 0))}@media (max-width: 900px){.version-sidebar{flex:none}.vs-head{padding:10px 12px}.vs-list{flex:none;flex-direction:column;overflow:visible;padding:0 10px 10px;gap:6px}.vs-list>li{width:100%;flex:none}.vs-item{min-height:44px;font-size:var(--fs-md);padding-right:44px}.vs-name,.vs-number,.vs-fps,.vs-counts{font-size:var(--fs-sm)}.vs-meta-btn{width:40px;height:40px;right:4px;top:2px}.vs-compare{min-height:44px;margin:10px 12px 14px;font-size:var(--fs-md)}}.review-bar{position:relative;display:flex;align-items:center;gap:8px;min-height:49px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface-0, var(--bg));flex-shrink:0}.review-actions{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.changes-hint{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--amber);font-size:var(--fs-sm)}.rab-overflow{position:relative;flex-shrink:0;margin-left:auto}.rab-overflow-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-dim);cursor:pointer}.rab-overflow-btn:hover,.rab-overflow-btn[aria-expanded=true]{color:var(--text);background:var(--surface-hover)}.rab-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:232px;max-width:min(320px,calc(100vw - 32px));padding:4px;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 16px 40px #00000080}.rab-menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:32px;padding:8px 10px;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-dim);font-size:var(--fs-sm);font-weight:600;text-align:left;cursor:pointer;white-space:normal;overflow-wrap:anywhere}.rab-menu-item .icon{color:var(--text-faint)}.rab-menu-item:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.rab-menu-item:disabled{opacity:.45;cursor:not-allowed}.approved-banner{display:flex;align-items:center;gap:10px;flex:1;min-width:0;font-size:var(--fs-sm);color:var(--text-dim)}.approved-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.approved-note{color:var(--text-faint)}.simulate-pill{display:inline-flex;align-items:center;gap:8px;min-height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.simulate-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-text)}.decision-history{position:relative;flex-shrink:0}.dh-toggle{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 8px 0 10px;background:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-dim);font-size:var(--fs-sm);font-weight:600;cursor:pointer;white-space:nowrap}.dh-toggle:hover,.dh-toggle[aria-expanded=true]{color:var(--text);background:var(--surface-hover)}.dh-list{position:absolute;top:calc(100% + 6px);right:0;z-index:40;width:min(360px,calc(100vw - 24px));max-height:min(360px,calc(100vh - 160px));overflow:auto;margin:0;padding:10px 12px;list-style:none;display:flex;flex-direction:column;gap:8px;background:var(--surface-1);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 16px 40px #00000080}.dh-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:var(--fs-sm);color:var(--text-dim);padding-bottom:8px;border-bottom:1px solid var(--border)}.dh-list li:last-child{padding-bottom:0;border-bottom:none}.dh-kind{font-weight:600}.dh-approved{color:var(--green)}.dh-changes_requested{color:var(--amber)}.dh-at{color:var(--text-faint)}.dh-note{flex-basis:100%;color:var(--text-dim);font-style:italic}@media (max-width: 900px){.rab-overflow-btn,.rab-menu-item,.dh-toggle,.review-bar .btn{min-height:40px}.rab-menu-item{font-size:var(--fs-md)}.rab-menu{max-width:calc(100vw - 24px)}.rab-overflow-btn{width:40px}}@media (max-width: 700px){.review-bar{min-height:0;padding:6px 8px;gap:6px}.review-actions{gap:6px}.review-bar .btn,.dh-toggle,.rab-overflow-btn{min-height:36px}.rab-overflow-btn{width:36px;height:36px}.review-bar .btn{padding:0 10px}.approved-banner{gap:8px}.decision-history{position:static}.dh-list{right:8px;top:calc(100% + 4px)}}.workspace{display:grid;grid-template-columns:var(--ws-left, 250px) 5px minmax(0,1fr) 5px var(--ws-right, 340px);flex:1;min-height:0;height:100%}.workspace.is-portfolio-preview:not(.workspace-mobile){grid-template-columns:15% 0 minmax(0,60%) 0 25%}.workspace.is-portfolio-preview .ws-resizer{visibility:hidden}.workspace.is-portfolio-preview .review-bar,.workspace.is-portfolio-preview .ws-tabs,.workspace.is-portfolio-preview .ws-hint,.workspace.is-portfolio-preview .an-toolbar,.workspace.is-portfolio-preview .vs-head .btn,.workspace.is-portfolio-preview .vs-fps,.workspace.is-portfolio-preview .vs-counts,.workspace.is-portfolio-preview .vs-meta-btn,.workspace.is-portfolio-preview .vs-compare,.workspace.is-portfolio-preview .vs-item .badge,.workspace.is-portfolio-preview .cp-count,.workspace.is-portfolio-preview .cp-filters,.workspace.is-portfolio-preview .cp-scope,.workspace.is-portfolio-preview .cp-composer,.workspace.is-portfolio-preview .cp-actions,.workspace.is-portfolio-preview .cp-annotations,.workspace.is-portfolio-preview .cp-replies,.workspace.is-portfolio-preview .cp-item .badge,.workspace.is-portfolio-preview .controls-row .ctl:not(.ctl-play),.workspace.is-portfolio-preview .controls-row .frame-no,.workspace.is-portfolio-preview .controls-row .timecode-duration,.workspace.is-portfolio-preview .controls-row .volume-slider,.workspace.is-portfolio-preview .controls-row .rate-select,.workspace.is-portfolio-preview .controls-row .video-size{display:none}.workspace.is-portfolio-preview .cp-list{gap:8px;padding:10px}.workspace.is-portfolio-preview .cp-item{padding:10px}.workspace.is-portfolio-preview .vs-item{min-height:38px;padding:9px 10px}.workspace.is-tour-active{padding-bottom:132px}@media (max-width: 1280px){.workspace{grid-template-columns:min(var(--ws-left, 250px),220px) 5px minmax(0,1fr) 5px min(var(--ws-right, 340px),300px)}}@media (min-width: 901px) and (max-width: 1280px){.workspace:not(.workspace-mobile) .ws-main .player:not(.player-fullscreen) .player-stage{flex:0 1 auto;width:100%;aspect-ratio:16 / 9;margin:auto 0}}.ws-resizer{cursor:col-resize;background:transparent;position:relative;z-index:5;touch-action:none}.ws-resizer:after{content:"";position:absolute;top:0;right:2px;bottom:0;left:2px;background:transparent;transition:background .12s}.ws-resizer:hover:after,.ws-resizer.is-active:after{background:var(--accent)}.workspace-skeleton .sk-side{background:var(--bg);border-right:1px solid var(--border)}.workspace-skeleton .sk-panel{background:var(--bg);border-left:1px solid var(--border)}.sk-main{display:flex;flex-direction:column;min-width:0;min-height:0}.sk-bar{height:49px;flex-shrink:0;border-bottom:1px solid var(--border);background:var(--bg)}.sk-stage{flex:1;min-height:0;background:#000}.sk-controls{height:66px;flex-shrink:0;border-top:1px solid var(--border);background:var(--surface-1)}.workspace-mobile .sk-stage{flex:none;aspect-ratio:16 / 9}.ws-sidebar{border-right:1px solid var(--border);background:var(--surface-0, var(--bg));display:flex;flex-direction:column;min-height:0;min-width:0;overflow:auto}.ws-sidebar-head{padding:14px 14px 10px;border-bottom:1px solid var(--border)}.ws-sidebar-head h1{margin:8px 0 0;font-size:var(--fs-md)}.back-link{font-size:var(--fs-sm);color:var(--text-dim);border-radius:var(--radius-sm)}.back-link:hover{color:var(--accent-text)}.ws-main{display:flex;flex-direction:column;min-width:0;min-height:0}.ws-main .player{flex:1;min-height:0}.ws-tabs{border-top:1px solid var(--border);max-height:210px;overflow:auto;background:var(--surface-0, var(--bg));flex-shrink:0}.ws-panel{border-left:1px solid var(--border);background:var(--surface-0, var(--bg));display:flex;min-height:0;min-width:0}.ws-panel>*{flex:1;min-height:0}.ws-hint{display:flex;align-items:center;height:28px;margin:0;padding:0 12px;font-size:var(--fs-sm);line-height:1;color:var(--text-dim);background:var(--surface-0, var(--bg));border-top:1px solid var(--border);flex-shrink:0;overflow:hidden}.ws-hint.is-quiet{color:var(--text-faint)}.ws-hint-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-feed{padding:0}.af-toggle{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;padding:6px 12px;background:none;border:none;border-radius:0;color:var(--text-dim);font-size:var(--fs-sm);font-weight:600;text-align:left;cursor:pointer}.af-toggle:hover{color:var(--text);background:var(--surface-2)}.af-title{text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);font-size:var(--fs-sm)}.af-count{font-family:var(--mono);font-size:var(--fs-sm);color:var(--text-faint);font-weight:400}.af-chevron{margin-left:auto;color:var(--text-faint)}.af-list{list-style:none;margin:0;padding:2px 12px 12px;display:flex;flex-direction:column;gap:8px}.af-list li{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);line-height:1.45}.af-text{color:var(--text-dim);flex:1;min-width:0}.af-text strong{color:var(--text);font-weight:600}.af-time{color:var(--text-faint);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.workspace-mobile{display:block;height:100%;overflow-x:hidden;overflow-y:auto;scroll-padding-top:calc(var(--ws-sticky-h, 0px) + 8px);padding-bottom:0}.workspace-mobile .cp-item{scroll-margin-top:calc(var(--ws-sticky-h, 0px) + 8px)}.workspace-mobile.is-tour-active{padding-bottom:186px;scroll-padding-bottom:186px}.ws-sticky{position:sticky;top:0;z-index:30;background:var(--surface-1);border-bottom:1px solid var(--border)}.ws-tabbar{display:flex;gap:4px;padding:4px 8px;background:var(--surface-1);border-top:1px solid var(--border)}.ws-tab{flex:1;min-width:0;min-height:32px;padding:4px 6px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-dim);font-size:var(--fs-md);font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-tab:hover{color:var(--text);background:var(--surface-2)}.ws-tab.is-active{color:var(--text);background:var(--surface-3);border-color:var(--border-strong)}.ws-tabpanel{display:flex;flex-direction:column;background:var(--surface-0, var(--bg))}.ws-tabpanel[hidden]{display:none}.ws-tabpanel .comments-panel,.ws-tabpanel .version-sidebar{flex:none;height:auto}.ws-tabpanel .cp-list,.ws-tabpanel .vs-list{overflow:visible;flex:none}.ws-tabpanel .cp-list{-webkit-mask-image:none;mask-image:none}.ws-info{padding:14px 16px 18px;display:flex;flex-direction:column;gap:6px}.ws-info h1{margin:0;font-size:var(--fs-lg)}.ws-info-note{margin:0;font-size:var(--fs-sm);color:var(--text-faint);font-family:var(--mono);word-break:break-all}@media (max-width: 900px){.workspace:not(.workspace-mobile){display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}.workspace:not(.workspace-mobile) .ws-resizer{display:none}.workspace:not(.workspace-mobile) .ws-sidebar,.workspace:not(.workspace-mobile) .ws-main,.workspace:not(.workspace-mobile) .ws-panel{flex:none;width:100%}.workspace:not(.workspace-mobile) .ws-sidebar{overflow:visible;border-right:0;border-bottom:1px solid var(--border)}.workspace:not(.workspace-mobile) .ws-sidebar-head{padding:9px 12px}.workspace:not(.workspace-mobile) .ws-sidebar-head h1{margin-top:4px}.workspace:not(.workspace-mobile) .ws-sidebar .version-sidebar{flex:none}.workspace:not(.workspace-mobile) .ws-sidebar .vs-head{padding:7px 12px}.workspace:not(.workspace-mobile) .ws-sidebar .vs-list{flex:none}.workspace:not(.workspace-mobile) .ws-main .player{flex:none;height:auto}.workspace:not(.workspace-mobile) .ws-main .player-stage{flex:none;width:100%;aspect-ratio:16 / 9}.workspace:not(.workspace-mobile) .ws-main .player.player-fullscreen{width:100vw;height:100vh}.workspace:not(.workspace-mobile) .ws-main .player.player-fullscreen .player-stage{flex:1;aspect-ratio:auto}.workspace:not(.workspace-mobile) .ws-panel{height:min(560px,max(420px,62vh));border-left:0;border-top:1px solid var(--border)}}@media (max-width: 900px){.ws-sticky .player{flex:none;height:auto}.ws-sticky .player-stage{width:100%;aspect-ratio:16 / 9;flex:none}.ws-sticky .player.player-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh}.ws-sticky .player.player-fullscreen .player-stage{flex:1;aspect-ratio:auto}}@media (max-width: 700px){.ws-hint{display:none}}.compare-screen{display:flex;flex-direction:column;height:100%;min-height:0;gap:10px;padding:14px 18px 10px;background:var(--bg);color:var(--text)}.cmp-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.cmp-head h1{margin:0;font-size:var(--fs-xl);font-weight:700;line-height:1.3}.cmp-head-spacer{flex:1}.cmp-sync{display:inline-flex;align-items:center;gap:8px;min-height:32px;font-size:var(--fs-sm);font-weight:600;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none}.cmp-sync input{accent-color:var(--accent-fill);width:16px;height:16px;margin:0;cursor:pointer}.cmp-drift{font-size:12px;font-variant-numeric:tabular-nums;color:var(--text-faint);padding:2px 8px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border)}.cmp-drift-warn{color:var(--amber);background:var(--amber-dim);border-color:#f59e0b66}.cmp-panes{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:14px;min-height:0;flex:none}.cmp-pane{display:flex;flex-direction:column;min-height:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-1);overflow:hidden}.cmp-pane-head{display:flex;align-items:center;gap:8px;min-height:49px;padding:8px 10px;border-bottom:1px solid var(--border);background:var(--surface-2)}.cmp-pane-head .status-dot{display:none}.cmp-version-select{flex:1;min-width:0;min-height:32px;padding:5px 8px;font-size:var(--fs-sm);color:var(--text);background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer}.cmp-meta{font-size:var(--fs-sm);color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap}.cmp-moments{flex:none;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-1)}.cmp-moments-row{display:flex;align-items:center;gap:10px}.cmp-moments-head{display:inline-flex;align-items:center;gap:8px;flex:none;min-height:32px;margin:0;font-size:inherit;font-weight:inherit;color:var(--text-dim)}.cmp-moments-title{font-size:var(--fs-sm);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);white-space:nowrap}.cmp-moments-count{font-size:var(--fs-sm);color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap}.cmp-moment-chips{display:flex;flex-wrap:wrap;gap:6px;min-width:0;max-height:70px;overflow:hidden auto}.cmp-moment{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;font-family:inherit;font-size:var(--fs-sm);color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border-strong);border-radius:999px;cursor:pointer}.cmp-moment:hover{color:var(--text);background:var(--surface-hover)}.cmp-moment.is-active{color:var(--accent-text);background:var(--accent-dim);border-color:var(--accent-border)}.cmp-moment-time{font-family:var(--mono);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:inherit}.cmp-moment-title{white-space:nowrap}.cmp-moment-detail{margin:6px 0 0;min-height:1.4em;font-size:var(--fs-md);line-height:1.4;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmp-pane .player{flex:none}.cmp-pane .player-stage{flex:none;width:100%;aspect-ratio:16 / 9;max-height:calc(100vh - 330px)}.cmp-sk-stage{aspect-ratio:16 / 9;max-height:calc(100vh - 330px);background:#000}.compare-skeleton .cmp-head{height:32px}.cmp-solo{display:flex;align-items:center;gap:8px;padding:6px 10px;border-top:1px solid var(--border);background:var(--surface-2)}.cmp-solo .ctl{flex:none;color:var(--text);background:var(--surface-3);border-color:var(--border-strong)}.cmp-solo .ctl:disabled,.cmp-transport .ctl:disabled{opacity:.45;cursor:default}.cmp-solo input[type=range]{flex:1;min-width:0;accent-color:var(--accent)}.cmp-timecode{flex:none;font-family:var(--mono);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--text-dim)}.cmp-transport{flex:none;padding:8px 12px 6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-1)}.cmp-transport .controls-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}.cmp-readout{display:inline-flex;align-items:baseline;gap:6px;margin-left:8px;font-family:var(--mono);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.cmp-transport .timecode{color:var(--text)}.cmp-transport .timecode b{color:var(--text-faint);font-weight:600;margin-right:2px}.cmp-transport .frame-sep{margin:0 6px;color:var(--text-faint)}.cmp-transport .timecode-duration{color:var(--text-faint)}.cmp-transport .controls-spacer{flex:1}.cmp-pair-note{font-size:var(--fs-sm);color:var(--text-faint);white-space:nowrap}.cmp-track{height:20px}.cmp-track:has(.cmp-seek:focus-visible){outline:var(--focus-ring);outline-offset:2px}.cmp-seek{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.cmp-seek:disabled{cursor:default}.cmp-foot-actions{display:flex;align-items:center;gap:16px;flex:none;padding-bottom:6px}@media (max-width: 900px){.compare-screen{overflow-x:hidden;overflow-y:auto}.cmp-moments-row{flex-direction:column;align-items:stretch;gap:6px}.cmp-moment-chips{flex-wrap:nowrap;max-height:none;overflow:auto hidden;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -12px;padding:0 12px 2px;scroll-padding:0 12px}.cmp-moment-chips::-webkit-scrollbar{display:none}.cmp-moment{flex:none;min-height:40px;scroll-snap-align:start;font-size:var(--fs-md)}.cmp-moment-detail{white-space:normal}.cmp-panes{display:flex;flex-direction:column}.cmp-pane{flex:none}.cmp-pane .player-stage,.cmp-sk-stage{max-height:none}.cmp-transport .ctl{width:36px;height:36px}.cmp-transport .ctl-play{width:44px}.cmp-track{height:28px}}@media (max-width: 700px){.compare-screen{padding:12px 12px 0;gap:10px}.cmp-head{gap:4px 10px}.cmp-head .back-link{flex-basis:100%}.cmp-head h1{font-size:var(--fs-lg)}.cmp-moments{order:1}.cmp-panes{order:2}.cmp-transport{order:3}.cmp-foot-actions{order:4}.cmp-pane-head{min-height:0;padding:6px 8px}.cmp-status-badge,.cmp-meta{display:none}.cmp-pane-head .status-dot{display:inline-block;margin:0 4px}.cmp-transport{position:sticky;bottom:0;z-index:6;margin:0 -12px;padding:6px 12px calc(6px + env(safe-area-inset-bottom,0px));border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:0 -8px 24px #00000059}.cmp-transport .controls-row{flex-wrap:wrap;row-gap:2px}.cmp-transport .controls-spacer,.cmp-pair-note{display:none}.cmp-readout{margin-left:4px}}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/demos/frameflow/fonts/inter-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/demos/frameflow/fonts/inter-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/demos/frameflow/fonts/inter-latin-700-normal.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:800;src:url(/demos/frameflow/fonts/inter-latin-800-normal.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/demos/frameflow/fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/demos/frameflow/fonts/jetbrains-mono-latin-700-normal.woff2) format("woff2")}:root{color-scheme:dark;--bg: #0a0a0c;--surface-1: #111114;--surface-2: #16161a;--surface-3: #1d1d23;--surface-hover: #232329;--border: #26262c;--border-strong: #33333b;--text: #e6e6ea;--text-dim: #9b9ba5;--text-faint: #8b8b97;--accent: #6366f1;--accent-fill: #585bef;--accent-fill-hover: #4f52e0;--accent-text: #818cf8;--accent-dim: rgba(99, 102, 241, .15);--accent-border: rgba(99, 102, 241, .45);--focus-ring: 2px solid #818cf8;--green: #22c55e;--green-dim: rgba(34, 197, 94, .14);--amber: #f59e0b;--amber-dim: rgba(245, 158, 11, .14);--red: #ef4444;--red-dim: rgba(239, 68, 68, .14);--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--fs-xs: 12px;--fs-sm: 12.5px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 24px;--mono: "JetBrains Mono", "Cascadia Code", Consolas, monospace;--dur-1: .12s;--dur-2: .16s;--dur-3: .2s;--ease-out: cubic-bezier(.2, .7, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-md);-webkit-font-smoothing:antialiased}:focus-visible{outline:var(--focus-ring);outline-offset:2px}::placeholder{color:var(--text-faint);opacity:1}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#43434d}a{color:inherit;text-decoration:none}button{font-family:inherit}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.icon{flex-shrink:0;display:block}.btn,.ctl,.vs-item,.vs-meta-btn,.vs-compare,.cp-filter,.cp-scope-btn,.cp-time,.cp-action,.cp-an-link,.cp-an-del,.an-tool,.an-armed-btn,.ws-tab,.rab-overflow-btn,.rab-menu-item,.af-toggle,.dh-toggle,.inbox-btn,.inbox-list a,.modal-close,.cmp-moment,.tour-link,.tour-x,.back-link,.logo,.project-card,.asset-card,.upload-drop{transition:background-color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out)}.ws-hint-text,.an-armed-group{animation:ff-fade-in var(--dur-1) var(--ease-out) both}.toast.is-leaving{opacity:0;transition:opacity var(--dur-1) var(--ease-in)}.asset-thumb img,.project-poster img{opacity:0;transition:opacity var(--dur-2) var(--ease-out)}.asset-thumb img.is-loaded,.project-poster img.is-loaded{opacity:1}[aria-expanded=true]>.chev{transform:rotate(180deg)}@keyframes ff-fade-in{0%{opacity:0}}@keyframes ff-pop-in{0%{opacity:0;transform:translateY(-4px)}}@keyframes ff-dialog-in{0%{opacity:0;transform:translateY(6px) scale(.98)}}@keyframes ff-toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes ff-screen-in{0%{opacity:0;transform:translateY(6px)}}@keyframes ff-item-in{0%{opacity:0;transform:translateY(4px)}}@keyframes ff-pop{0%{opacity:0;transform:scale(.92)}}@keyframes ff-spin{to{transform:rotate(360deg)}}@keyframes ff-pulse{50%{opacity:.4}}@media (prefers-reduced-motion: no-preference){.btn,.ctl,.an-tool{transition:background-color var(--dur-1) var(--ease-out),border-color var(--dur-1) var(--ease-out),color var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out),transform var(--dur-1) var(--ease-out)}.btn:active:not(:disabled),.ctl:active:not(:disabled),.an-tool:active:not(:disabled){transform:scale(.97)}.project-card,.asset-card{transition:background-color .15s var(--ease-out),border-color .15s var(--ease-out),box-shadow .15s var(--ease-out),transform .15s var(--ease-out)}.asset-open-arrow,.track-marker,.chev{transition:transform var(--dur-1) var(--ease-out)}@media (hover: hover) and (pointer: fine){.project-card:hover,.asset-card:hover{transform:translateY(-2px)}.asset-card:hover .asset-open-arrow{transform:translate(3px)}.track-marker:hover{transform:translate(-50%,-50%) scale(1.25)}.track-marker.marker-annotated:hover{transform:translate(-50%,-50%) rotate(45deg) scale(1.25)}}.rab-menu,.inbox-panel,.dh-list{transform-origin:top right;animation:ff-pop-in var(--dur-2) var(--ease-out) both}.modal-backdrop{animation:ff-fade-in var(--dur-2) var(--ease-out) both}.modal{animation:ff-dialog-in var(--dur-3) var(--ease-out) both}.toast{animation:ff-toast-in var(--dur-2) var(--ease-out) both}.screen.is-entering{animation:ff-screen-in var(--dur-3) var(--ease-out) backwards}.cp-item.is-new,.cp-reply.is-new{animation:ff-item-in var(--dur-3) var(--ease-out) backwards}.is-fresh{animation:ff-pop var(--dur-3) var(--ease-out) backwards}.player-loading{animation:ff-fade-in var(--dur-2) var(--ease-out) both}.upload-fill{transition:transform var(--dur-3) var(--ease-out)}.spinner{animation:ff-spin .8s linear infinite}.simulate-dot{animation:ff-pulse 1.4s ease-in-out infinite}}
