*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--panel:#181b24;--panel-2:#1f232f;--border:#2a2f3d;--text:#e8eaf0;--muted:#9aa1b2;--accent:#4f7cff;--accent-hover:#6b91ff;--green:#34c98e;--red:#ef5f6b}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;min-height:100vh}.container{max-width:640px;margin:0 auto;padding:48px 20px 80px}header.hero{text-align:center;margin-bottom:36px}.topbar{border-bottom:1px solid var(--border);padding:12px 20px}.topbar a{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:650;font-size:1.02rem;letter-spacing:-.01em}.topbar img{display:block}header.hero h1{font-size:1.9rem;letter-spacing:-.02em;margin-bottom:10px}header.hero p{color:var(--muted);font-size:.98rem;line-height:1.5}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:24px}.dropzone{border:2px dashed var(--border);border-radius:12px;padding:36px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;color:var(--muted)}.dropzone.dragover,.dropzone:hover{border-color:var(--accent);background:var(--panel-2)}.dropzone .filename{color:var(--text);font-weight:600;word-break:break-all}.dropzone .sub{font-size:.85rem;margin-top:6px}.section-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:22px 0 10px}.fps-row{display:flex;flex-wrap:wrap;gap:8px}.fps-chip{border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:8px;padding:8px 16px;font-size:.95rem;cursor:pointer;transition:border-color .15s,background .15s}.fps-chip.active,.fps-chip:hover{border-color:var(--accent)}.fps-chip.active{background:var(--accent);font-weight:600}.fps-custom{width:92px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:8px;padding:8px 10px;font-size:.95rem}.fps-custom:focus{outline:1px solid var(--accent)}.toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer;color:var(--text);font-size:.95rem;line-height:1.4}.toggle input{margin-top:3px;accent-color:var(--accent)}.toggle .hint{color:var(--muted);font-size:.85rem;display:block}.btn{width:100%;margin-top:24px;border:none;border-radius:10px;padding:14px;font-size:1.05rem;font-weight:600;cursor:pointer;background:var(--accent);color:#fff;transition:background .15s}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.download{background:var(--green);color:#08251a}.progress-wrap{margin-top:24px}.progress-bar{height:10px;border-radius:5px;background:var(--panel-2);border:1px solid var(--border);overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .4s ease}.progress-fill.indeterminate{width:30%!important;animation:slide 1.2s ease-in-out infinite}@keyframes slide{0%{transform:translateX(-100%)}to{transform:translateX(350%)}}.progress-label{margin-top:10px;font-size:.9rem;color:var(--muted);text-align:center}.error-box{margin-top:20px;border:1px solid var(--red);background:rgba(239,95,107,.08);color:var(--red);border-radius:10px;padding:12px 14px;font-size:.92rem;word-break:break-word}.reset-link{display:block;margin-top:16px;text-align:center;color:var(--muted);font-size:.9rem;background:none;border:none;cursor:pointer;text-decoration:underline;width:100%}.reset-link:hover{color:var(--text)}.badges{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:14px}.badges span{font-size:.78rem;color:var(--muted);border:1px solid var(--border);background:var(--panel);border-radius:999px;padding:4px 11px;white-space:nowrap}.steps{list-style:none;counter-reset:step}.steps li{counter-increment:step;position:relative;padding:0 0 14px 40px;color:var(--muted);line-height:1.55;font-size:.95rem}.steps li strong,.steps li:before{color:var(--text)}.steps li:before{content:counter(step);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:var(--panel-2);border:1px solid var(--border);font-size:.85rem;font-weight:600;display:flex;align-items:center;justify-content:center}.usecases{list-style:none}.usecases li{position:relative;padding:0 0 10px 24px;color:var(--muted);line-height:1.55;font-size:.95rem}.usecases li:before{content:"✓";position:absolute;left:2px;color:var(--green);font-weight:700}table.tech{width:100%;margin-top:16px;border-collapse:collapse;font-size:.9rem}table.tech td,table.tech th{text-align:left;padding:9px 12px;border:1px solid var(--border);vertical-align:top}table.tech th{color:var(--text);background:var(--panel);white-space:nowrap;width:1%;font-weight:600}table.tech td{color:var(--muted);line-height:1.5}.crumbs{font-size:.85rem;margin-bottom:14px}.crumbs,.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--text)}.crumbs span{margin:0 2px}.tip{margin-top:14px;font-size:.9rem;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 14px;line-height:1.5}.prose{margin-top:36px}.prose h2{font-size:1.25rem;margin-bottom:12px;letter-spacing:-.01em}.prose p{color:var(--muted);line-height:1.65;font-size:.97rem}.prose details{border:1px solid var(--border);background:var(--panel);border-radius:10px;padding:12px 16px;margin-bottom:10px}.prose summary{cursor:pointer;font-weight:600;font-size:.95rem}.prose details p{margin-top:10px;font-size:.92rem}.link-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:8px;gap:8px}.link-grid a{display:block;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:10px 12px;font-size:.9rem;text-decoration:none;transition:border-color .15s,background .15s}.link-grid a:hover{border-color:var(--accent);background:var(--panel-2)}footer.note{margin-top:28px;text-align:center;color:var(--muted);font-size:.85rem;line-height:1.6}.site-footer{border-top:1px solid var(--border);margin-top:24px;padding:28px 20px 36px;text-align:center}.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin-bottom:14px}.site-footer nav a{color:var(--muted);font-size:.88rem;text-decoration:none}.site-footer nav a:hover{color:var(--text);text-decoration:underline}.site-footer p{color:var(--muted);font-size:.8rem;line-height:1.6;max-width:560px;margin:0 auto}