.frame-page{--frame-ink:#211e29;--frame-dark:#17151d;--frame-muted:#716b79;--frame-line:#ded9e2;--frame-paper:#f7f4ef;--frame-lime:#c9ef72;--frame-violet:#7569ca;background:var(--frame-paper);color:var(--frame-ink)}
.frame-hero{background:var(--frame-dark);color:#fff;overflow:hidden;padding:5.5rem 4vw 4.5rem;position:relative}.frame-hero::before{background:linear-gradient(90deg,transparent 0 8%,rgba(255,255,255,.035) 8% 8.15%,transparent 8.15% 100%);background-size:125px 100%;content:"";inset:0;position:absolute}.frame-hero-inner{align-items:end;display:flex;justify-content:space-between;margin:auto;max-width:1240px;position:relative}.frame-hero .breadcrumbs,.frame-hero .breadcrumbs a{color:#aaa4b2}.frame-hero .tools-kicker{color:var(--frame-lime)}.frame-hero h1{font-size:clamp(3.4rem,8vw,7.5rem);letter-spacing:-.065em;line-height:.82;margin:1.4rem 0 1.5rem}.frame-hero h1 em{color:var(--frame-lime);font-style:normal}.frame-hero-inner>div:first-child>p:last-child{color:#bbb5c3;font-size:1.05rem;line-height:1.65;margin:0;max-width:650px}.frame-hero-strip{align-items:flex-end;display:flex;gap:7px;height:250px;position:relative;width:310px}.frame-hero-strip span{background:linear-gradient(145deg,#524868,#282430);border:1px solid #5c5565;display:block;height:125px;transform:translateY(var(--lift,0)) rotate(var(--tilt,0));width:62px}.frame-hero-strip span:nth-child(1){--lift:-4px;--tilt:-5deg}.frame-hero-strip span:nth-child(2){--lift:-30px}.frame-hero-strip span:nth-child(3){--lift:-12px;--tilt:3deg;background:linear-gradient(145deg,#a9c860,#4d592f)}.frame-hero-strip span:nth-child(4){--lift:-22px;--tilt:6deg}.frame-hero-strip b{bottom:0;color:var(--frame-lime);font-family:var(--font-mono,monospace);font-size:.72rem;letter-spacing:.12em;position:absolute;right:0;text-align:right}
.frame-workspace{padding:4.5rem 4vw 5.5rem}.frame-shell,.frame-page-nav{margin:auto;max-width:1240px}.frame-intro{align-items:end;display:grid;gap:3rem;grid-template-columns:1fr minmax(280px,470px);margin-bottom:2rem}.frame-intro h2{font-size:clamp(2rem,4vw,3.7rem);letter-spacing:-.05em;line-height:1;margin:.4rem 0 0}.frame-intro>p{color:var(--frame-muted);line-height:1.6;margin:0}.frame-drop{align-items:center;background:#fff;border:1px dashed #aaa4b0;cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-height:245px;padding:2rem;text-align:center;transition:border-color .18s,background .18s,transform .18s}.frame-drop:hover,.frame-drop.dragging{background:#fbfff2;border-color:#728f35;transform:translateY(-2px)}.frame-drop input{height:1px;opacity:0;position:absolute;width:1px}.frame-drop>span{align-items:center;border:1px solid var(--frame-line);border-radius:50%;color:var(--frame-violet);display:flex;font-size:1.55rem;height:52px;justify-content:center;margin-bottom:1rem;width:52px}.frame-drop strong{font-size:1.05rem}.frame-drop small{color:var(--frame-muted);margin-top:.45rem}.frame-load-status{color:var(--frame-muted);font-size:.78rem;margin:.7rem 0}.frame-load-status:empty{display:none}.frame-load-status.error{color:#b63845}.frame-file-meta{align-items:center;border-bottom:1px solid var(--frame-line);border-top:1px solid var(--frame-line);display:flex;gap:1rem;margin:0 0 1.5rem;padding:.85rem 0}.frame-file-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frame-file-meta span{color:var(--frame-muted);font-size:.75rem}.frame-file-meta button{margin-left:auto}.frame-studio.revealed{animation:frame-rise .42s ease both}@keyframes frame-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.frame-viewer{aspect-ratio:16/9;background:#09080c;display:grid;overflow:hidden;place-items:center;position:relative}.frame-viewer video{height:100%;object-fit:contain;width:100%}.frame-play-overlay{align-items:center;background:#f8f7f4e8;border:0;border-radius:50%;color:var(--frame-dark);cursor:pointer;display:flex;font-size:1.1rem;height:62px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .18s,transform .18s;width:62px}.frame-play-overlay:hover{transform:translate(-50%,-50%) scale(1.06)}.frame-play-overlay.playing{opacity:0;pointer-events:none}.frame-transport{align-items:center;background:var(--frame-dark);color:#fff;display:grid;gap:.65rem;grid-template-columns:38px 56px 38px 82px minmax(120px,1fr) 82px auto;padding:1rem}.frame-transport button{background:#292631;border:1px solid #403b49;border-radius:4px;color:#fff;cursor:pointer;height:34px}.frame-transport .frame-play{background:var(--frame-lime);border-color:var(--frame-lime);color:#20231b;font-weight:800}.frame-transport>span{font-family:var(--font-mono,monospace);font-size:.68rem;text-align:center}.frame-transport input{accent-color:var(--frame-lime);width:100%}.frame-transport label,.frame-scan-options label{align-items:center;display:flex;font-size:.7rem;font-weight:750;gap:.5rem;white-space:nowrap}.frame-transport select,.frame-scan-options select{background:#fff;border:1px solid var(--frame-line);color:var(--frame-ink);padding:.5rem}.frame-transport select{background:#292631;border-color:#403b49;color:#fff}
.frame-actions{align-items:end;border-bottom:1px solid var(--frame-line);display:flex;justify-content:space-between;padding:2.5rem 0 1.5rem}.frame-actions h3,.candidate-head h3{font-size:1.6rem;letter-spacing:-.025em;margin:.35rem 0}.frame-actions p:last-child,.candidate-head>p{color:var(--frame-muted);font-size:.82rem;line-height:1.5;margin:0;max-width:560px}.frame-action-buttons{display:flex;gap:.6rem}.frame-best{background:var(--frame-dark);border:1px solid var(--frame-dark);color:#fff;cursor:pointer;font-weight:800;padding:.82rem 1rem}.frame-best span{color:var(--frame-lime);margin-right:.4rem}.frame-best:disabled,.frame-action-buttons button:disabled{cursor:wait;opacity:.55}.frame-scan-options{align-items:center;display:flex;gap:1.5rem;padding:1rem 0}.frame-scan-options>span{color:var(--frame-muted);font-family:var(--font-mono,monospace);font-size:.72rem;margin-left:auto}.frame-progress{align-items:center;display:grid;gap:.75rem;grid-template-columns:minmax(120px,1fr) auto;margin:.25rem 0 1.5rem}.frame-progress>span{background:#dedbe1;height:3px;overflow:hidden}.frame-progress i{background:var(--frame-violet);display:block;height:100%;transition:width .16s;width:0}.frame-progress p{color:var(--frame-muted);font-size:.73rem;margin:0}
.candidate-section,.capture-section{border-top:1px solid var(--frame-line);padding-top:2.4rem}.capture-section{margin-top:3rem}.candidate-head{align-items:end;display:flex;justify-content:space-between;margin-bottom:1.25rem}.candidate-strip{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}.candidate{background:#fff;border:1px solid var(--frame-line);cursor:pointer;padding:0;text-align:left;transition:border-color .18s,transform .18s}.candidate:hover,.candidate.selected{border-color:var(--frame-violet);transform:translateY(-3px)}.candidate.best{box-shadow:inset 0 3px 0 var(--frame-lime)}.candidate img{aspect-ratio:16/9;display:block;object-fit:cover;width:100%}.candidate div{align-items:center;display:flex;justify-content:space-between;padding:.65rem}.candidate strong{font-family:var(--font-mono,monospace);font-size:.68rem}.candidate small{color:var(--frame-muted);font-size:.64rem}.candidate.best small{color:#557020;font-weight:850}.capture-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.capture-item{background:#fff;border:1px solid var(--frame-line)}.capture-item img{aspect-ratio:16/9;display:block;object-fit:contain;width:100%}.capture-item-info{align-items:center;display:flex;gap:.5rem;padding:.75rem}.capture-item-info>span{font-family:var(--font-mono,monospace);font-size:.7rem;margin-right:auto}.capture-item-info a,.capture-item-info button{background:transparent;border:0;color:var(--frame-violet);cursor:pointer;font-size:.7rem;font-weight:800;padding:.35rem}.capture-item-info button{color:var(--frame-muted)}.frame-page-nav{align-items:center;display:flex;justify-content:space-between;padding:1.5rem 4vw}.frame-page-nav span{color:var(--frame-muted);font-size:.75rem}.frame-page-nav b{background:#6c8e30;border-radius:50%;display:inline-block;height:7px;margin-right:.4rem;width:7px}
@media(max-width:820px){.frame-hero-strip{display:none}.frame-intro{display:block}.frame-intro>p{margin-top:1rem}.frame-transport{grid-template-columns:38px 56px 38px 1fr 82px}.frame-transport span:first-of-type{grid-column:1/2}.frame-transport input{grid-column:2/5;grid-row:2}.frame-transport span:last-of-type{grid-column:5;grid-row:2}.frame-transport label{grid-column:4/6;grid-row:1;justify-self:end}.frame-actions,.candidate-head{align-items:flex-start;flex-direction:column;gap:1.25rem}.frame-action-buttons{width:100%}.frame-action-buttons button{flex:1}.frame-page-nav span{display:none}}
@media(max-width:520px){.frame-hero{padding-top:4rem}.frame-action-buttons,.frame-scan-options{align-items:stretch;flex-direction:column}.frame-scan-options>span{margin-left:0}.candidate-strip{display:flex;overflow-x:auto;padding-bottom:.6rem;scroll-snap-type:x mandatory}.candidate{flex:0 0 155px;scroll-snap-align:start}.frame-transport{grid-template-columns:36px 52px 36px 1fr}.frame-transport label{display:none}.frame-transport span:first-of-type{grid-column:4;grid-row:1}.frame-transport input{grid-column:1/4;grid-row:2}.frame-transport span:last-of-type{grid-column:4;grid-row:2}.frame-file-meta{align-items:flex-start;flex-wrap:wrap}.frame-file-meta button{margin-left:0}.capture-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.frame-studio.revealed{animation:none}.frame-drop,.candidate,.frame-play-overlay{transition:none}}
.frame-progress p.error{color:#b63845}
