:root,[framestack-theme=light]{--brand: rgb(70, 67, 62);--brand-hover: rgb(52, 50, 46);--brand-active: rgb(36, 34, 32);--brand-tint: rgb(245, 242, 237);--brand-06: rgba(70, 67, 62, .06);--brand-10: rgba(70, 67, 62, .1);--brand-18: rgba(70, 67, 62, .18);--brand-35: rgba(70, 67, 62, .35);--code-accent: rgb(158, 129, 112);--app-bg: rgb(247, 240, 235);--white: rgb(245, 242, 237);--text-primary: rgba(0, 0, 0, .85);--text-secondary: rgba(0, 0, 0, .67);--text-placeholder: rgba(0, 0, 0, .4);--text-muted: rgba(0, 0, 0, .5);--gray-50: rgba(70, 67, 62, .05);--gray-100: rgba(70, 67, 62, .07);--gray-150: rgba(70, 67, 62, .11);--gray-200: rgba(70, 67, 62, .09);--gray-border: rgba(70, 67, 62, .18);--border: rgba(0, 0, 0, .1);--shadow-xs: 0px 2px 4px 0px rgba(70, 67, 62, .1);--shadow-sm: 0 2px 8px rgba(70, 67, 62, .12);--shadow-md: 0 4px 16px rgba(70, 67, 62, .15);--shadow-elev2: 0px 1px 5px 0px rgba(70,67,62,.1), 0px 2px 2px 0px rgba(70,67,62,.12), 0px 3px 1px -2px rgba(70,67,62,.18);--shadow-brand-soft: 0 4px 16px rgba(70, 67, 62, .18);--shadow-focus-ring: 0 0 0 3px rgba(70, 67, 62, .18);--success-bg: #edf7ed;--success-fg: #1b5e20;--success-icon: #4CAF50;--destructive: #d4183d;--destructive-bg: rgba(212, 24, 61, .04);--destructive-border: rgba(212, 24, 61, .2);--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-card: 14px;--radius-btn: 14px;--radius-xl: 12px;--radius-pill: 100px;--radius-full: 9999px;--t-fast: .15s ease;--t-default: .2s cubic-bezier(.4, 0, .2, 1);--t-spring: .3s cubic-bezier(.34, 1.56, .64, 1)}[framestack-theme=dark]{--brand: rgb(158, 129, 112);--brand-hover: rgb(180, 150, 130);--brand-active: rgb(200, 170, 150);--brand-tint: rgb(36, 34, 32);--brand-06: rgba(158, 129, 112, .06);--brand-10: rgba(158, 129, 112, .1);--brand-18: rgba(158, 129, 112, .18);--brand-35: rgba(158, 129, 112, .35);--code-accent: rgb(245, 241, 237);--app-bg: rgb(28, 25, 23);--white: rgb(36, 34, 32);--text-primary: rgba(245, 241, 237, .85);--text-secondary: rgba(184, 176, 168, .67);--text-placeholder: rgba(184, 176, 168, .4);--text-muted: rgba(184, 176, 168, .5);--gray-50: rgba(158, 129, 112, .06);--gray-100: rgba(158, 129, 112, .09);--gray-150: rgba(158, 129, 112, .14);--gray-200: rgba(158, 129, 112, .1);--gray-border: rgba(158, 129, 112, .22);--border: rgba(255, 255, 255, .1);--shadow-xs: 0px 2px 4px 0px rgba(28, 27, 26, .25);--shadow-sm: 0 2px 8px rgba(28, 27, 26, .3);--shadow-md: 0 4px 16px rgba(28, 27, 26, .4);--shadow-elev2: 0px 1px 5px 0px rgba(28,27,26,.25), 0px 2px 2px 0px rgba(28,27,26,.3);--shadow-brand-soft: 0 4px 16px rgba(28, 27, 26, .35);--shadow-focus-ring: 0 0 0 3px rgba(158, 129, 112, .25)}@font-face{font-family:Macklin Text;src:url(/fonts/MacklinText-Regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Macklin Text;src:url(/fonts/MacklinText-Light.otf) format("opentype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Macklin Sans;src:url(/fonts/MacklinSans-Variable.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Macklin Sans;src:url(/fonts/MacklinSans-LightItalic.otf) format("opentype");font-weight:300;font-style:italic;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--app-bg);color:var(--text-primary);font-family:Macklin Sans,DM Sans,sans-serif;font-size:14px;line-height:1.66;min-height:100vh}h1{font-family:Macklin Text,Playfair Display,serif;font-size:56px;font-weight:400;line-height:1;letter-spacing:-.04em;color:var(--text-primary)}h2{font-family:Macklin Text,Playfair Display,serif;font-size:32px;font-weight:400;line-height:1.2;letter-spacing:-.04em;color:var(--text-primary)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-150);border-radius:var(--radius-full);border:2px solid var(--app-bg)}::-webkit-scrollbar-thumb:hover{background:var(--gray-border)}::selection{background:var(--brand-18);color:var(--text-primary)}.navbar{position:sticky;top:0;z-index:100;background:var(--app-bg);border-bottom:1px solid var(--border);height:56px;display:flex;align-items:center;padding:0 24px;gap:16px}.navbar-divider{width:1px;height:22px;background:var(--border)}.navbar-breadcrumb{font-size:13px;color:var(--text-secondary);letter-spacing:.17px}.navbar-breadcrumb strong{color:var(--text-primary);font-weight:500}.navbar-actions{margin-left:auto;display:flex;gap:4px;align-items:center}.icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--text-secondary);border:none;border-radius:var(--radius-full);cursor:pointer;transition:var(--t-fast)}.icon-btn:hover{background:#0000000d;color:var(--text-primary)}.icon-btn:active{background:#00000014}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:auto;padding:10px 16px;font-family:Macklin Sans,DM Sans,sans-serif;font-size:14px;font-weight:300;line-height:1.2;letter-spacing:0;text-transform:uppercase;border-radius:var(--radius-btn);border:none;cursor:pointer;transition:var(--t-fast);white-space:nowrap;text-decoration:none;-webkit-user-select:none;user-select:none}.btn-primary{background:var(--brand);color:var(--app-bg)}.btn-primary:hover:not(:disabled){opacity:.82}.btn-primary:active:not(:disabled){opacity:.68}.btn-primary:disabled{background:#46433e59;cursor:not-allowed;color:var(--app-bg)}.btn-secondary{background:var(--app-bg);color:var(--brand);border:1px solid var(--border)}.btn-secondary:hover{background:var(--brand-tint);border-color:var(--brand-35)}.btn-secondary:active{background:var(--brand-10)}.btn-ghost{background:transparent;color:var(--text-primary);border:none}.btn-ghost:hover{background:#0000000d}.btn-block{width:100%}.card{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-xs)}.card-header{padding:16px 20px 10px;display:flex;justify-content:space-between;align-items:center;gap:12px}.card-title{font-family:Macklin Sans,DM Sans,sans-serif;font-size:12px;font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);line-height:24px}.card-meta{font-size:12px;color:var(--text-secondary);font-variant-numeric:tabular-nums;font-family:JetBrains Mono,SF Mono,monospace}.card-body{padding:10px 20px 20px}.dropzone{background:var(--white);border:1px dashed var(--gray-border);border-radius:var(--radius-card);padding:64px 24px;text-align:center;cursor:pointer;transition:var(--t-fast),border-color var(--t-fast);box-shadow:var(--shadow-xs)}.dropzone:hover,.dropzone.dragover{border-color:var(--brand-35);background:var(--brand-tint)}.dropzone-icon{width:56px;height:56px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;background:var(--brand-tint);color:var(--brand);border-radius:var(--radius-full);transition:var(--t-default)}.dropzone:hover .dropzone-icon{transform:translateY(-2px);box-shadow:var(--shadow-brand-soft)}.dropzone-title{font-family:Macklin Text,Playfair Display,serif;font-size:20px;font-weight:400;color:var(--text-primary);margin-bottom:6px;letter-spacing:-.02em}.dropzone-hint{font-size:12px;color:var(--text-secondary);letter-spacing:.4px}.dropzone-hint .sep{opacity:.3;margin:0 4px}.field{margin-bottom:18px}.field:last-of-type{margin-bottom:24px}.field-label{display:block;font-size:12px;font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:8px}.seg{display:grid;grid-template-columns:1fr 1fr;background:var(--gray-100);padding:3px;border-radius:var(--radius-md)}.seg input{display:none}.seg label{text-align:center;padding:7px 10px;font-size:14px;font-weight:300;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:var(--t-fast);letter-spacing:0;-webkit-user-select:none;user-select:none;text-transform:uppercase}.seg label:hover{color:var(--text-primary)}.seg input:checked+label{background:var(--white);color:var(--brand);box-shadow:var(--shadow-xs)}input[type=number]{width:100%;height:36px;background:var(--gray-100);border:1px solid transparent;border-radius:var(--radius-sm);padding:0 12px;font-family:Roboto,sans-serif;font-size:14px;color:var(--text-primary);transition:var(--t-fast);-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}input[type=number]:hover{background:var(--gray-200)}input[type=number]:focus{outline:none;background:var(--white);border-color:var(--brand);box-shadow:var(--shadow-focus-ring)}.range-row{display:flex;align-items:center;gap:14px}input[type=range]{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;height:24px;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:4px;background:var(--gray-150);border-radius:var(--radius-full)}input[type=range]::-moz-range-track{height:4px;background:var(--gray-150);border-radius:var(--radius-full)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:var(--brand);border-radius:var(--radius-full);margin-top:-7px;border:2px solid var(--white);box-shadow:0 1px 3px #0003;cursor:pointer;transition:var(--t-fast)}input[type=range]::-moz-range-thumb{width:18px;height:18px;background:var(--brand);border-radius:var(--radius-full);border:2px solid var(--white)}input[type=range]:focus{outline:none}input[type=range]:focus::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--brand-18)}.range-value{font-family:JetBrains Mono,SF Mono,monospace;font-size:13px;color:var(--text-primary);min-width:36px;text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.progress{margin-top:16px}.progress-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--text-secondary);margin-bottom:8px}.progress-meta .count{color:var(--brand);font-weight:500;font-variant-numeric:tabular-nums;font-family:JetBrains Mono,SF Mono,monospace}.progress-bar{height:4px;background:var(--gray-150);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;background:var(--brand);border-radius:var(--radius-full);transition:width .2s ease}.alert{padding:12px 14px;border-radius:var(--radius-lg);margin-bottom:16px;display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.5}.alert-info{background:var(--brand-tint);border:1px solid var(--brand-18);color:var(--brand)}.alert-error{background:var(--destructive-bg);border:1px solid var(--destructive-border);color:var(--destructive)}.alert-body{flex:1}video{width:100%;display:block;background:#000;border-radius:var(--radius-lg);aspect-ratio:16/9;object-fit:contain}.video-placeholder{width:100%;aspect-ratio:16/9;background:var(--app-bg);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.video-placeholder-icon{width:56px;height:56px;background:var(--brand-tint);color:var(--brand);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.video-placeholder-text{font-size:14px;font-weight:500;color:var(--text-primary)}.video-placeholder-caption{font-size:11px;color:var(--text-placeholder);letter-spacing:.4px;text-transform:uppercase}.hero-badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px 0 8px;background:var(--brand-tint);color:var(--brand);border-radius:var(--radius-full);font-size:11px;font-weight:500;letter-spacing:.4px}.hero-badge .dot{width:6px;height:6px;border-radius:50%;background:var(--brand)}.results-count-chip{display:inline-flex;align-items:center;height:24px;padding:0 10px;background:var(--brand-tint);color:var(--brand);font-size:12px;font-weight:500;border-radius:var(--radius-full);font-variant-numeric:tabular-nums}.frame-card{position:relative;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:var(--t-default);box-shadow:var(--shadow-xs)}.frame-card:hover{box-shadow:var(--shadow-brand-soft);transform:translateY(-2px);border-color:var(--brand-35)}.frame-card:hover .frame-dl-btn{opacity:1;pointer-events:auto}.frame-img-wrap{aspect-ratio:16/9;background:#000;overflow:hidden}.frame-img-wrap img{width:100%;height:100%;display:block;object-fit:cover}.frame-meta{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;gap:8px}.frame-num-chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;background:var(--gray-50);color:var(--text-primary);font-size:11px;font-weight:500;border-radius:var(--radius-md);font-variant-numeric:tabular-nums;font-family:JetBrains Mono,SF Mono,monospace}.frame-time{font-size:11px;color:var(--text-secondary);font-variant-numeric:tabular-nums;font-family:JetBrains Mono,SF Mono,monospace}.frame-dl-btn{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 12px;background:var(--white);color:var(--brand);font-size:11px;font-weight:500;letter-spacing:.4px;border:1px solid var(--border);border-radius:var(--radius-pill);opacity:0;pointer-events:none;transition:var(--t-fast);box-shadow:var(--shadow-elev2);cursor:pointer}.solution-panel{background:var(--white);border:1px solid var(--border);border-radius:var(--radius-card);padding:24px;margin-bottom:24px;box-shadow:var(--shadow-xs)}.solution{background:var(--app-bg);border-left:3px solid var(--brand);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:14px 16px;margin-bottom:12px}.solution:last-child{margin-bottom:0}.solution-title{font-size:11px;font-weight:500;color:var(--brand);text-transform:uppercase;letter-spacing:.4px;margin-bottom:10px}.solution code{display:block;background:#242220;color:var(--code-accent);padding:10px 14px;border-radius:var(--radius-sm);font-family:JetBrains Mono,SF Mono,Menlo,monospace;font-size:12px;overflow-x:auto;margin:8px 0;line-height:1.5}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}footer{width:80%;margin:64px auto 0;padding:24px 0 40px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--text-placeholder)}.footer-left{display:flex;align-items:center;gap:8px;color:var(--text-secondary)}.footer-right{display:flex;align-items:center;gap:16px}.footer-status{display:inline-flex;align-items:center;gap:6px}.footer-status .dot{width:6px;height:6px;border-radius:50%;background:var(--success-icon)}.jv-logo{display:block}@media(max-width:768px){main{width:92%!important;padding:24px 0 16px!important}h1{font-size:36px;letter-spacing:-.03em}.workspace-grid{grid-template-columns:1fr!important}.dropzone{padding:40px 20px}.results-section{max-width:100%!important;margin-left:0!important;margin-right:0!important}.results-actions{flex-wrap:wrap;gap:6px}.frames-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))!important;gap:10px!important}.navbar-name{display:none}.btn{min-height:44px}.btn-block{min-height:48px}footer{flex-direction:column;align-items:flex-start;gap:10px}}@media(max-width:480px){main{width:94%!important}h1{font-size:28px}.navbar{padding:0 16px}.dropzone{padding:32px 16px}}
