:root{--bg-base: #08090d;--bg-sunken: #060710;--bg-card: #0e1018;--bg-raised: #14182a;--bg-raised-hi: #181d32;--bg-input: #090b12;--border-subtle: rgba(255, 255, 255, .05);--border-default: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .14);--text-primary: #e2e4ec;--text-secondary: #8890a8;--text-muted: #5a6080;--text-dim: #3a4060;--accent: #00d4ff;--accent-soft: rgba(0, 212, 255, .08);--accent-line: rgba(0, 212, 255, .22);--success: #00e676;--warning: #ffab00;--danger: #ff3d57;--danger-text: #ff6b7a;--info: #82aaff;--decoder: #34d399;--wf-bg: #0b0d16;--wf-label-bg: #0b0d16;--wf-grid: rgba(60, 68, 104, .28);--wf-separator: rgba(60, 68, 104, .22);--wf-tick: #5a6080;--wf-empty: rgba(0, 212, 255, .14);--wf-marker: #ffd93d;--wf-marker-fill: rgba(255, 217, 61, .08);--wf-marker-rule: rgba(255, 217, 61, .32);--wf-marker-border: rgba(255, 217, 61, .42);--wf-tooltip-bg: rgba(8, 10, 18, .92);--ann-data-fill: rgba(0, 212, 255, .15);--ann-data-stroke: rgba(0, 212, 255, .42);--ann-data-text: rgba(140, 231, 255, .95);--ann-error-fill: rgba(255, 80, 112, .18);--ann-error-stroke: rgba(255, 80, 112, .52);--ann-error-text: rgba(255, 138, 160, .95);--ann-framing-fill: rgba(180, 190, 210, .07);--ann-framing-stroke: rgba(180, 190, 210, .17);--ann-framing-text: rgba(190, 199, 219, .72);--ch-0: #00d4ff;--ch-1: #ff6b9d;--ch-2: #c084fc;--ch-3: #34d399;--ch-4: #fbbf24;--ch-5: #f97316;--ch-6: #60a5fa;--ch-7: #a78bfa;--dec-0: #c084fc;--dec-1: #34d399;--dec-2: #fbbf24;--dec-3: #ff6b9d;--dec-4: #60a5fa;--dec-5: #f97316;--dec-6: #00d4ff;--dec-7: #a78bfa;--font-ui: "Outfit", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", "Fira Code", monospace;--ease: cubic-bezier(.2, .7, .3, 1);--dur-fast: .12s;--dur: .2s;--r-sm: 5px;--r-md: 8px;--r-lg: 14px;font-family:var(--font-mono);font-size:16px;line-height:1.5;color-scheme:dark;color:var(--text-primary);background-color:var(--bg-base);-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-width:320px;min-height:100svh;background-color:var(--bg-base);background-image:radial-gradient(circle at 50% -10%,rgba(0,212,255,.05) 0%,transparent 55%),radial-gradient(circle,rgba(255,255,255,.022) 1px,transparent 1px);background-size:100% 100%,26px 26px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:8px;z-index:200;padding:.55em 1em;border-radius:var(--r-md);background:var(--bg-raised);border:1px solid var(--accent-line);color:var(--accent);font-family:var(--font-mono);font-size:.8rem;text-decoration:none;transform:translateY(-160%);transition:transform var(--dur) var(--ease)}.skip-link:focus-visible{transform:translateY(0)}:where(button,select,input,a,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}:where(button,select,input,a,[tabindex]):focus:not(:focus-visible){outline:none}#app{min-height:100svh}.logo-icon{flex-shrink:0;filter:drop-shadow(0 0 8px rgba(0,212,255,.28))}#status{display:flex;align-items:center;gap:9px;padding:.5em 1em;border-radius:var(--r-md);font-family:var(--font-mono);font-size:.78rem;font-weight:500;margin-bottom:1.25rem;letter-spacing:.02em;border:1px solid transparent;transition:background-color var(--dur),color var(--dur),border-color var(--dur)}#status:before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 7px currentColor}.status.disconnected{background:#ff3d5712;color:var(--danger-text);border-color:#ff3d5729}.status.connecting{background:#ffab0012;color:#ffbf40;border-color:#ffab0029}.status.connected{background:#00e67612;color:#40e88a;border-color:#00e67629}.status.uploading{background:var(--accent-soft);color:#40d8ff;border-color:var(--accent-line)}.status.connecting:before,.status.uploading:before{animation:pulse-dot 1.1s ease-in-out infinite}h2{display:flex;align-items:center;font-family:var(--font-ui);font-size:.72rem;font-weight:600;color:var(--text-secondary);margin:0;text-transform:uppercase;letter-spacing:.1em}h2 .section-icon{font-size:1.35em;margin-right:.55em;vertical-align:0}.hint{font-size:.74rem;color:var(--text-muted);margin:.85rem 0 0;line-height:1.6}button{border-radius:var(--r-md);border:1px solid var(--border-default);padding:.55em 1.1em;font-size:.8rem;font-weight:500;font-family:var(--font-mono);background:linear-gradient(180deg,var(--bg-raised) 0%,#0e1120 100%);color:#b0b6d0;cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast),color var(--dur-fast),transform var(--dur-fast);display:inline-flex;align-items:center;gap:7px;line-height:1.4}button:hover:not(:disabled){border-color:var(--border-hover);background:linear-gradient(180deg,var(--bg-raised-hi) 0%,#121628 100%);color:var(--text-primary)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.35;cursor:not-allowed}.hgi-stroke{flex:none;font-size:1.05em;vertical-align:-.12em}button>.hgi-stroke,summary>.hgi-stroke{font-size:1.2em;opacity:.72;transition:opacity var(--dur-fast)}button:hover:not(:disabled)>.hgi-stroke{opacity:1}button:disabled>.hgi-stroke{opacity:.5}button.is-icon-only{gap:0;justify-content:center}button.is-icon-only>.hgi-stroke{font-size:1.05rem}.section-icon{margin-right:.6em;opacity:.55;vertical-align:-.15em}button.btn-primary{background:linear-gradient(180deg,#00d4ff21,#00d4ff0d);border-color:var(--accent-line);color:var(--accent)}button.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#00d4ff36,#00d4ff14);border-color:#00d4ff6b;box-shadow:0 0 18px #00d4ff1f;color:var(--accent)}.btn-row{display:flex;gap:.5em;align-items:center;flex-wrap:wrap}:root{--select-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%235a6080' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.75 6 6.5 11 1.75'/%3E%3C/svg%3E");--select-chevron-hi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%2300d4ff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.75 6 6.5 11 1.75'/%3E%3C/svg%3E")}select,input[type=number]{appearance:none;-webkit-appearance:none;background:linear-gradient(180deg,var(--bg-raised) 0%,var(--bg-input) 100%);color:var(--text-secondary);border:1px solid var(--border-default);border-radius:var(--r-sm);padding:.38em .65em;font-family:var(--font-mono);font-size:.78rem;line-height:1.4;cursor:pointer;transition:border-color var(--dur-fast),color var(--dur-fast),background var(--dur-fast)}select{padding-right:2em;background-image:var(--select-chevron);background-repeat:no-repeat;background-position:right .6em center;background-size:9px 6px;text-overflow:ellipsis}select:hover:not(:disabled),input[type=number]:hover:not(:disabled){border-color:var(--border-hover);color:var(--text-primary)}select:hover:not(:disabled){background-image:var(--select-chevron-hi)}select:focus-visible,input[type=number]:focus-visible{border-color:var(--accent-line);color:var(--text-primary)}select:focus-visible{background-image:var(--select-chevron-hi)}select:disabled,input[type=number]:disabled{opacity:.4;cursor:not-allowed}select:disabled{background-image:var(--select-chevron)}select optgroup{font-family:var(--font-ui);font-weight:600;color:var(--text-muted)}select option{color:var(--text-primary);background:var(--bg-card)}input[type=number]{cursor:text;-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}label{font-size:.72rem;color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;font-family:var(--font-mono)}input[type=file]{width:100%;font-family:var(--font-mono);font-size:.76rem;color:var(--text-muted)}input[type=file]::file-selector-button{font-family:var(--font-mono);font-size:.74rem;font-weight:500;padding:.4em .9em;border-radius:var(--r-sm);border:1px solid var(--border-default);background:linear-gradient(180deg,var(--bg-raised) 0%,#0e1120 100%);color:var(--text-secondary);cursor:pointer;margin-right:.75em;transition:border-color var(--dur-fast),color var(--dur-fast)}input[type=file]::file-selector-button:hover{border-color:var(--border-hover);color:var(--text-primary)}details{margin-top:.75rem}summary{font-family:var(--font-mono);font-size:.74rem;color:var(--text-muted);cursor:pointer;padding:.3em 0;-webkit-user-select:none;user-select:none;list-style:none;transition:color var(--dur-fast);border-radius:var(--r-sm)}summary::-webkit-details-marker{display:none}summary:before{content:"›";display:inline-block;margin-right:7px;transition:transform var(--dur) var(--ease)}details[open] summary:before{transform:rotate(90deg)}summary:hover{color:var(--text-secondary)}.details-body{margin-top:.55rem;padding:.8rem;background:#00000038;border-radius:var(--r-md);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}progress{width:100%;height:3px;margin-top:.8rem;border-radius:2px;appearance:none;border:none;background:#ffffff0d}progress::-webkit-progress-bar{background:#ffffff0d;border-radius:2px}progress::-webkit-progress-value{background:linear-gradient(90deg,var(--accent),#00e5ff);border-radius:2px;box-shadow:0 0 9px #00d4ff73}progress::-moz-progress-bar{background:linear-gradient(90deg,var(--accent),#00e5ff);border-radius:2px}#firmware-panel{margin-top:1rem;padding:1rem 1.2rem;border-radius:10px;background:#ffab000e;border:1px solid rgba(255,171,0,.18)}#firmware-panel p{color:#ffc75a;margin:0 0 .85rem;font-size:.78rem;line-height:1.6}#fw-version{font-family:var(--font-mono);font-size:.73rem;color:var(--text-muted);margin-top:.65rem}#fw-version:empty{display:none}.about-body p{font-size:.79rem;color:var(--text-secondary);margin:0 0 .85rem;line-height:1.7}.about-body ul{margin:0;padding-left:1.1em;list-style:none}.about-body li{font-size:.77rem;color:var(--text-muted);line-height:1.85;position:relative;padding-left:.4em}.about-body li:before{content:"";position:absolute;left:-.85em;top:.82em;width:4px;height:4px;border-radius:50%;background:var(--accent);opacity:.55}.history-grid::-webkit-scrollbar,.log-modal-content::-webkit-scrollbar{width:6px;height:6px}.log-modal-content::-webkit-scrollbar-track{background:transparent}.log-modal-content::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.log-modal-content::-webkit-scrollbar-thumb:hover{background:#ffffff2e}code{background:#ffffff0d;padding:.12em .4em;border-radius:4px;font-size:.9em;font-family:var(--font-mono);color:var(--text-secondary)}body.drop-target:after{content:"Drop a .sr capture to open it";position:fixed;inset:12px;z-index:300;display:grid;place-items:center;border:2px dashed var(--accent-line);border-radius:var(--r-lg);background:#080a12b8;color:var(--accent);font-family:var(--font-mono);font-size:.9rem;letter-spacing:.04em;pointer-events:none}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.35}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:620px){.btn-row>button{flex:1 1 auto;justify-content:center}}.home{position:relative;display:none;flex-direction:column;min-height:100svh}.home[hidden]{display:none}body.home-active .home{display:flex}.home-aurora{position:fixed;inset:0 0 auto;height:620px;pointer-events:none;z-index:0;background:radial-gradient(900px 420px at 50% -120px,rgba(0,212,255,.11),transparent 70%),radial-gradient(600px 300px at 12% -60px,rgba(192,132,252,.06),transparent 70%)}.masthead{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem clamp(1rem,4vw,2.5rem);border-bottom:1px solid var(--border-subtle);background:#08090db8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.masthead-brand{display:flex;align-items:center;gap:11px;min-width:0}.wordmark{font-family:var(--font-ui);font-size:1.05rem;font-weight:600;letter-spacing:-.02em;color:var(--text-primary)}.masthead #status{margin-bottom:0;font-size:.72rem;padding:.4em .85em}.home-main{position:relative;z-index:1;flex:1;width:100%;max-width:1180px;margin:0 auto;padding:clamp(2.5rem,7vw,5rem) clamp(1rem,4vw,2.5rem) 4rem}.hero{position:relative;padding-bottom:clamp(3rem,8vw,5.5rem);animation:home-rise .5s var(--ease) both}.hero-kicker{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--text-muted);margin:0 0 1.1rem;display:flex;align-items:center;gap:.75em}.hero-kicker:before{content:"";width:26px;height:1px;background:var(--accent);opacity:.6}.hero h1{font-family:var(--font-ui);font-size:clamp(2.2rem,6.6vw,4.1rem);font-weight:700;line-height:1.02;letter-spacing:-.045em;margin:0;color:var(--text-primary);max-width:16ch}.hero h1 em{font-style:normal;color:var(--accent);text-shadow:0 0 34px rgba(0,212,255,.28)}.hero-lede{max-width:56ch;margin:1.4rem 0 0;font-family:var(--font-ui);font-size:clamp(.92rem,1.6vw,1.02rem);line-height:1.7;color:var(--text-secondary)}.hero-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2rem}.hero-actions button{padding:.72em 1.35em;font-size:.84rem}.hero .hint{max-width:60ch}.hero-trace{position:absolute;left:0;right:0;bottom:0;width:100%;height:clamp(60px,9vw,110px);pointer-events:none;z-index:-1;mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}.hero-trace path{fill:none;stroke:var(--accent);stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:.18;animation:trace-drift 90s linear infinite}.hero-trace .hero-trace-b{stroke:var(--ch-2);opacity:.12;animation-duration:140s;animation-direction:reverse}.spec-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border-default);border-radius:var(--r-lg);background:linear-gradient(180deg,#14182a80,#0a0d1680);overflow:hidden}.spec{display:flex;flex-direction:column;gap:.35rem;padding:1.15rem 1.35rem;border-left:1px solid var(--border-subtle)}.spec-icon{font-size:1.15rem;color:var(--accent);opacity:.6;margin-bottom:.4rem;vertical-align:0}.spec:first-child{border-left:0}.spec-value{font-family:var(--font-mono);font-size:clamp(1.25rem,3vw,1.7rem);font-weight:500;color:var(--text-primary);letter-spacing:-.02em;line-height:1}.spec-value em{font-style:normal;font-size:.5em;color:var(--text-muted);margin-left:.25em;letter-spacing:.04em}.spec-label{font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted)}.history,.about{margin-top:clamp(3rem,7vw,4.5rem)}.section-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-bottom:.85rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border-subtle)}.section-bar-title{display:flex;align-items:baseline;gap:.75rem}.section-bar-count{font-family:var(--font-mono);font-size:.72rem;color:var(--text-dim)}.history-tools{display:flex;align-items:center;gap:1rem}.btn-quiet{padding:.35em .8em;font-size:.72rem;background:transparent;border-color:transparent;color:var(--text-muted)}.btn-quiet:hover:not(:disabled){background:#ff3d5714;border-color:#ff3d5738;color:var(--danger-text)}.storage-meter{display:flex;align-items:center;gap:.6rem}.storage-meter[hidden]{display:none}.storage-icon{font-size:.95rem;color:var(--text-dim);vertical-align:0}.storage-track{width:86px;height:4px;border-radius:2px;background:#ffffff12;overflow:hidden}.storage-fill{height:100%;width:0;border-radius:2px;background:linear-gradient(90deg,var(--accent),#00e5ff);transition:width var(--dur) var(--ease),background var(--dur)}.storage-fill.is-full{background:linear-gradient(90deg,var(--warning),#ff7043)}.storage-text{font-family:var(--font-mono);font-size:.68rem;color:var(--text-muted);white-space:nowrap}.history-notice{margin:0 0 1.25rem;padding:.7rem .95rem;border-radius:var(--r-md);border:1px solid rgba(255,171,0,.18);background:#ffab000e;color:#ffc75a;font-size:.76rem;line-height:1.6}.history-notice[hidden]{display:none}.history-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:1rem}.session-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--border-default);border-radius:var(--r-lg);background:linear-gradient(180deg,#0f121e,#0a0d16);transition:border-color var(--dur-fast),transform var(--dur-fast),box-shadow var(--dur-fast);animation:home-rise .35s var(--ease) both}.session-card.menu-open{z-index:5}.session-card:hover{border-color:var(--accent-line);transform:translateY(-2px);box-shadow:0 14px 34px #00000073}.session-card:focus-within{border-color:var(--accent-line)}.session-card.is-empty{border-style:dashed}.session-card.is-empty:hover{transform:none;box-shadow:none}.session-card.is-empty .session-thumb-fallback{color:var(--text-dim);opacity:.7}.session-card.is-empty .session-name{color:var(--text-secondary)}.session-open{position:absolute;inset:0;z-index:1;padding:0;border:0;border-radius:var(--r-lg);background:transparent;cursor:pointer}.session-card .session-open,.session-card .session-open:hover,.session-card .session-open:active{background:transparent;transform:none}.session-open:focus-visible{outline-offset:-3px}.session-thumb{position:relative;display:block;width:100%;aspect-ratio:8 / 3;object-fit:cover;background:var(--wf-bg);border-bottom:1px solid var(--border-subtle);border-radius:calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0 0}.session-thumb-fallback{display:grid;place-items:center;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.session-body{display:flex;flex-direction:column;gap:.5rem;padding:.9rem 1rem 1rem}.session-title-row{display:flex;align-items:flex-start;gap:.5rem;justify-content:space-between}.session-name{font-family:var(--font-ui);font-size:.88rem;font-weight:500;color:var(--text-primary);margin:0;line-height:1.35;overflow-wrap:anywhere}.session-pin{flex:none;margin-top:1px;font-size:.95rem;color:var(--accent);opacity:.85;vertical-align:0}.session-pin[hidden]{display:none}.session-meta{display:flex;flex-wrap:wrap;gap:.35rem .7rem;font-family:var(--font-mono);font-size:.69rem;color:var(--text-muted)}.session-meta .sep{color:var(--text-dim)}.session-note{margin:0;font-size:.73rem;line-height:1.55;color:var(--text-secondary);overflow-wrap:anywhere}.session-note:empty{display:none}.session-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.15rem;font-family:var(--font-mono);font-size:.66rem;color:var(--text-dim);letter-spacing:.04em}.session-source{display:inline-flex;align-items:center;gap:.4em;padding:.15em .5em;border-radius:999px;border:1px solid var(--border-subtle);text-transform:uppercase;letter-spacing:.1em}.session-menu-btn{position:absolute;top:.55rem;right:.55rem;z-index:2;width:30px;height:30px;padding:0;justify-content:center;border-radius:var(--r-sm);background:#080a12b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:var(--text-secondary);opacity:0;transition:opacity var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast)}.session-menu-btn>.hgi-stroke{font-size:1rem;opacity:1}.session-card:hover .session-menu-btn,.session-card:focus-within .session-menu-btn,.session-menu-btn[aria-expanded=true]{opacity:1}@media(hover:none){.session-menu-btn{opacity:1}}.session-menu{position:absolute;top:2.55rem;right:.55rem;z-index:3;min-width:168px;padding:.3rem;border-radius:var(--r-md);border:1px solid var(--border-hover);background:#11141f;box-shadow:0 18px 40px #0000008c;display:flex;flex-direction:column;gap:1px;animation:menu-in .14s var(--ease) both}.session-menu[hidden]{display:none}.session-menu button{width:100%;justify-content:flex-start;gap:.65em;border:0;border-radius:var(--r-sm);background:transparent;padding:.5em .7em;font-size:.75rem;color:var(--text-secondary)}.session-menu button>.hgi-stroke{width:1.2em;font-size:1.05rem;text-align:center}.session-menu button:hover:not(:disabled){background:var(--bg-raised);color:var(--text-primary)}.session-menu button.is-danger:hover:not(:disabled){background:#ff3d571f;color:var(--danger-text)}.session-menu hr{border:0;border-top:1px solid var(--border-subtle);margin:.25rem .2rem}.session-edit{width:100%;font-family:var(--font-ui);font-size:.85rem;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--accent-line);border-radius:var(--r-sm);padding:.4em .55em;resize:vertical}textarea.session-edit{font-family:var(--font-ui);font-size:.76rem;line-height:1.5;min-height:4.5em}.history-empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:flex-start;gap:.9rem;padding:clamp(2rem,6vw,3.25rem);border:1px dashed var(--border-default);border-radius:var(--r-lg);background:#0e101880}.history-empty-icon{font-size:1.9rem;color:var(--accent);opacity:.4;vertical-align:0}.history-empty h3{font-family:var(--font-ui);font-size:1rem;font-weight:600;color:var(--text-primary);margin:0;letter-spacing:-.02em}.history-empty p{margin:0;max-width:54ch;font-size:.8rem;line-height:1.7;color:var(--text-muted)}.about-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem)}.about-protocols h3{display:flex;align-items:center;font-family:var(--font-mono);font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);margin:0 0 .9rem}.about-protocols h3 .section-icon{font-size:1.3em;vertical-align:0}.protocol-list{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none}.protocol-list li{font-family:var(--font-mono);font-size:.68rem;color:var(--text-secondary);padding:.26em .6em;border-radius:var(--r-sm);border:1px solid var(--border-subtle);background:#ffffff06}.home-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem clamp(1rem,4vw,2.5rem);border-top:1px solid var(--border-subtle);background:#06070e99}.home-log{flex:1;min-width:0;justify-content:flex-start;gap:.6rem;border:0;background:transparent;padding:.3em 0;font-size:.7rem;color:var(--text-muted)}.home-log:hover:not(:disabled){background:transparent;color:var(--text-secondary)}.home-log-icon{flex:none;font-size:1rem;color:var(--text-dim);vertical-align:0;transition:color var(--dur-fast)}.home-log:hover .home-log-icon{color:var(--text-secondary)}.home-log[data-level=warn] .home-log-icon,.home-log[data-level=warn]:hover .home-log-icon{color:var(--warning)}.home-log[data-level=error] .home-log-icon,.home-log[data-level=error]:hover .home-log-icon{color:var(--danger-text)}.home-log-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes home-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@keyframes trace-drift{0%{transform:translate(0)}to{transform:translate(-160px)}}@media(max-width:900px){.about-grid{grid-template-columns:1fr}}@media(max-width:620px){.spec-strip{grid-template-columns:repeat(2,1fr)}.spec:nth-child(3){border-left:0}.spec:nth-child(n+3){border-top:1px solid var(--border-subtle)}.hero h1{max-width:none}.hero-actions button{flex:1 1 auto;justify-content:center}.history-grid{grid-template-columns:1fr}.masthead #status{font-size:.66rem;padding:.35em .7em}}.config-dialog{position:fixed;z-index:40;inset:58px 12px 12px auto;width:min(620px,calc(100vw - 24px));max-width:none;max-height:none;height:auto;margin:0;padding:0;overflow:hidden;display:none;flex-direction:column;border:1px solid var(--border-hover);border-radius:var(--r-lg);background:linear-gradient(180deg,#11141f,#0b0e17);color:var(--text-primary);box-shadow:0 28px 70px #0000009e,0 0 0 1px #00d4ff0d inset;animation:config-in .22s var(--ease) both}.config-dialog[open]{display:flex}.config-dialog::backdrop{background:none}.config-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .9rem .75rem 1.1rem;border-bottom:1px solid var(--border-subtle);background:#ffffff04}.config-head h2{font-size:.73rem;color:var(--text-secondary)}.config-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;gap:0;border-color:transparent;background:transparent;color:var(--text-muted)}.config-close:hover:not(:disabled){background:#ff3d571a;border-color:#ff3d5738;color:var(--danger-text)}.config-close>.hgi-stroke{opacity:1}.config-body{display:grid;grid-template-columns:minmax(0,250px) minmax(0,1fr);flex:1;min-height:0}.config-rail{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border-subtle);background:#0000002e}.config-rail-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;padding:.7rem .85rem .55rem;font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim)}.config-rail-count{text-transform:none;letter-spacing:.04em}.config-rows{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 .45rem .45rem;display:flex;flex-direction:column;gap:2px}.config-row{position:relative;display:flex;align-items:center;gap:7px;padding:7px 8px;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;touch-action:none;transition:background var(--dur-fast),border-color var(--dur-fast),opacity var(--dur-fast)}.config-row:hover{background:#ffffff09}.config-row.is-selected{background:var(--accent-soft);border-color:var(--accent-line)}.config-row.is-off .config-row-label,.config-row.is-off .config-row-sub{opacity:.4}.config-row.is-off .config-row-dot{opacity:.28}.config-row.dragging{opacity:.45;border-color:var(--accent-line)}.config-row.drop-above{box-shadow:inset 0 2px 0 var(--decoder)}.config-row.drop-below{box-shadow:inset 0 -2px 0 var(--decoder)}.config-row-handle{flex:none;font-size:.9rem;color:var(--text-dim);cursor:grab;vertical-align:0;opacity:0;transition:opacity var(--dur-fast)}.config-row:hover .config-row-handle,.config-row.is-selected .config-row-handle{opacity:1}.config-row.dragging .config-row-handle{cursor:grabbing}@media(hover:none){.config-row-handle{opacity:1}}.config-row-dot{flex:none;width:8px;height:8px;border-radius:50%;transition:opacity var(--dur-fast)}.config-row-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.config-row-label{font-family:var(--font-mono);font-size:.73rem;font-weight:600;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-row.is-selected .config-row-label{color:var(--text-primary)}.config-row-sub{font-family:var(--font-mono);font-size:.62rem;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.config-row-sub.is-warning{color:var(--warning)}.config-row-eye{flex:none;width:24px;height:22px;padding:0;border-color:transparent;background:transparent;color:var(--text-dim)}.config-row-eye:hover:not(:disabled){background:#ffffff0d;border-color:var(--border-default)}.config-row-eye>.hgi-stroke{font-size:.88rem;opacity:1}.config-add{margin:0 .45rem .55rem;justify-content:center;font-size:.74rem;border-color:var(--accent-line);background:linear-gradient(180deg,#00d4ff1a,#00d4ff0a);color:var(--accent)}.config-add:hover:not(:disabled){background:linear-gradient(180deg,#00d4ff2e,#00d4ff0f);border-color:#00d4ff6b;color:var(--accent)}.config-detail{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:1.1rem 1.2rem 1.4rem}.detail-head{display:flex;align-items:flex-start;gap:.7rem;padding-bottom:.9rem;margin-bottom:.4rem;border-bottom:1px solid var(--border-subtle)}.detail-swatch{flex:none;width:10px;height:10px;margin-top:6px;border-radius:50%;box-shadow:0 0 9px currentColor}.detail-head-text{min-width:0}.detail-head h2{display:block;font-family:var(--font-ui);font-size:1.02rem;font-weight:600;letter-spacing:-.02em;text-transform:none;color:var(--text-primary);margin:0}.detail-head p{margin:.3rem 0 0;font-size:.75rem;line-height:1.55;color:var(--text-muted)}.detail-section{margin-top:1.15rem}.detail-section h3{margin:0 0 .6rem;font-family:var(--font-mono);font-size:.62rem;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem .75rem}.detail-field{display:flex;flex-direction:column;gap:.28rem;min-width:0}.detail-field label{font-size:.62rem;color:var(--text-dim)}.detail-field select,.detail-field input{width:100%;padding:.42em .6em;font-size:.76rem;color:var(--text-primary)}.detail-field select:focus-visible,.detail-field input:focus-visible{border-color:var(--accent-line)}.detail-toggle{width:100%;justify-content:flex-start;font-size:.76rem}.detail-toggle.is-on{border-color:var(--accent-line);color:var(--accent);background:linear-gradient(180deg,#00d4ff1a,#00d4ff08)}.detail-toggle.is-on>.hgi-stroke{opacity:1}.detail-note{margin:0 0 .6rem;font-size:.75rem;line-height:1.6;color:var(--text-muted)}.detail-reader-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.detail-link{width:100%;justify-content:flex-start;gap:.55em;padding:.45em .6em;font-size:.75rem;border-color:transparent;background:#ffffff06;color:var(--text-secondary)}.detail-link:hover:not(:disabled){background:#ffffff0e;border-color:var(--border-default);color:var(--text-primary)}.detail-link strong{font-weight:600}.detail-reader-signal{margin-left:auto;font-family:var(--font-mono);font-size:.66rem;color:var(--text-dim)}.detail-remove{width:100%;justify-content:center;font-size:.74rem;border-color:#ff3d5738;background:transparent;color:var(--danger-text)}.detail-remove:hover:not(:disabled){background:#ff3d571a;border-color:#ff3d576b;color:var(--danger-text)}.detail-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;height:100%;min-height:220px;text-align:center}.detail-empty-icon{font-size:1.9rem;color:var(--text-dim);vertical-align:0}.detail-empty p{margin:0;max-width:28ch;font-size:.78rem;line-height:1.6;color:var(--text-muted)}.picker-search{width:100%;margin:.9rem 0 .8rem;padding:.55em .75em;font-family:var(--font-mono);font-size:.78rem;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border-default);border-radius:var(--r-md);transition:border-color var(--dur-fast)}.picker-search:hover{border-color:var(--border-hover)}.picker-search:focus-visible{border-color:var(--accent-line)}.picker-search::placeholder{color:var(--text-dim)}.picker-group{margin-bottom:.9rem}.picker-group-title{position:sticky;top:0;z-index:1;padding:.35rem 0;font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim);background:linear-gradient(180deg,#0e111b 70%,transparent)}.picker-item{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;align-items:baseline;gap:.7rem;width:100%;text-align:left;padding:.5em .65em;margin-bottom:2px;border-color:transparent;background:transparent}.picker-item:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent-line)}.picker-item-name{font-family:var(--font-mono);font-size:.76rem;font-weight:600;color:var(--text-secondary);white-space:nowrap}.picker-item:hover .picker-item-name{color:var(--accent)}.picker-item.is-common .picker-item-name:after{content:"";display:inline-block;width:4px;height:4px;margin-left:.5em;border-radius:50%;background:var(--accent);opacity:.6;vertical-align:.15em}.picker-item-desc{font-size:.68rem;line-height:1.4;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-item-add{align-self:center;font-size:.85rem;color:var(--text-dim);opacity:0;vertical-align:0;transition:opacity var(--dur-fast)}.picker-item:hover .picker-item-add{opacity:1;color:var(--accent)}.config-rows::-webkit-scrollbar,.config-detail::-webkit-scrollbar{width:6px}.config-rows::-webkit-scrollbar-track,.config-detail::-webkit-scrollbar-track{background:transparent}.config-rows::-webkit-scrollbar-thumb,.config-detail::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}.config-rows::-webkit-scrollbar-thumb:hover,.config-detail::-webkit-scrollbar-thumb:hover{background:#ffffff2e}@keyframes config-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:none}}@media(max-width:860px){.config-dialog{inset:8px;width:auto}.config-body{grid-template-columns:minmax(0,200px) minmax(0,1fr)}}@media(max-width:620px){.config-body{grid-template-columns:1fr;grid-template-rows:minmax(0,40%) minmax(0,1fr)}.config-rail{border-right:0;border-bottom:1px solid var(--border-subtle)}.config-detail{padding:.9rem}}body.waveform-active #app{max-width:none;padding:0;display:flex;flex-direction:column;height:100svh}body.home-active #waveform-section{display:none}#waveform-section{display:none;flex-direction:column;flex:1;min-height:0;background:var(--wf-bg)}#waveform-section.active{display:flex}.waveform-toolbar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:linear-gradient(180deg,#101220,#0c0e18);border-bottom:1px solid var(--border-default);flex-shrink:0;min-height:46px;flex-wrap:wrap}.waveform-toolbar .toolbar-group{display:flex;align-items:center;gap:5px}.waveform-toolbar .toolbar-separator{width:1px;align-self:stretch;margin:4px 3px;background:var(--border-default)}.toolbar-readouts{display:flex;align-items:center;gap:10px;margin-left:auto;min-width:0}.waveform-toolbar button{border-radius:var(--r-sm);border:1px solid var(--border-default);padding:5px 12px;font-size:.71rem;font-weight:600;font-family:var(--font-mono);background:linear-gradient(180deg,var(--bg-raised) 0%,#0e1120 100%);color:var(--text-secondary);cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast),color var(--dur-fast),transform var(--dur-fast);letter-spacing:.05em;text-transform:uppercase;line-height:1.5;white-space:nowrap}.waveform-toolbar button:hover:not(:disabled){border-color:var(--border-hover);color:var(--text-primary);background:linear-gradient(180deg,var(--bg-raised-hi) 0%,#121628 100%)}.waveform-toolbar button:active:not(:disabled){transform:translateY(1px)}.waveform-toolbar button:disabled{opacity:.3;cursor:not-allowed}.waveform-toolbar .btn-icon{padding:2px;border-color:transparent;background:none;display:grid;place-items:center;flex:none}.waveform-toolbar .btn-icon svg{width:26px;height:26px}.waveform-toolbar .btn-icon:hover:not(:disabled){background:none;border-color:var(--accent-line)}.waveform-toolbar button.btn-record{border-color:#ff3d5738;color:#ff5070;position:relative;padding-left:26px}.waveform-toolbar button.btn-record:before{content:"";position:absolute;left:10px;top:50%;transform:translateY(-50%);width:7px;height:7px;border-radius:50%;background:var(--danger);box-shadow:0 0 5px #ff3d5780}.waveform-toolbar button.btn-record:hover:not(:disabled){border-color:#ff3d576b;background:linear-gradient(180deg,#ff3d571f,#ff3d570a);color:#ff6b80}.waveform-toolbar button.btn-record.recording{background:linear-gradient(180deg,#ff3d5724,#ff3d570d);border-color:#ff3d5773;color:#ff7d90}.waveform-toolbar button.btn-record.recording:before{animation:pulse-record 1.2s ease-in-out infinite}@keyframes pulse-record{0%,to{opacity:1;box-shadow:0 0 4px #ff3d5773}50%{opacity:.45;box-shadow:0 0 11px #ff3d57b3}}.waveform-toolbar button.btn-stop{border-color:#ffa04038;color:#ffa040}.waveform-toolbar button.btn-stop:hover:not(:disabled){border-color:#ffa0406b;background:linear-gradient(180deg,#ffa0401f,#ffa0400a);color:#ffa040}.waveform-toolbar button.btn-channels{border-color:#34d39938;color:var(--decoder)}.waveform-toolbar button.btn-channels:hover:not(:disabled),.waveform-toolbar button.btn-channels[aria-expanded=true]{border-color:#34d39973;background:linear-gradient(180deg,#34d3991f,#34d3990a);color:var(--decoder)}.waveform-toolbar button.btn-disconnect-small{color:var(--text-muted);font-size:.68rem;border-color:transparent;background:transparent}.waveform-toolbar button.btn-disconnect-small:hover:not(:disabled){color:#ff5070;border-color:#ff3d5738;background:#ff3d570d}.waveform-toolbar select{padding:4px 1.85em 4px 7px;font-size:.71rem;letter-spacing:.02em;background-position:right .5em center}.waveform-toolbar label{font-family:var(--font-mono);font-size:.64rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em}.toolbar-status{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);letter-spacing:.03em;white-space:nowrap;font-variant-numeric:tabular-nums}.toolbar-status.recording{color:#ff5070}.toolbar-status .sample-count{color:var(--text-dim);margin-left:6px}.readout{font-family:var(--font-mono);font-size:.68rem;color:var(--text-dim);letter-spacing:.02em;white-space:nowrap;font-variant-numeric:tabular-nums;padding:2px 7px;border:1px solid var(--border-subtle);border-radius:4px;background:#00000040}.readout:empty{display:none}.readout.is-custom{color:var(--warning);border-color:#ffab0040}.waveform-container{flex:1;position:relative;min-height:0;overflow:hidden;background:var(--wf-bg)}.waveform-canvas,.overlay-canvas{display:block;position:absolute;top:0;left:0}.overlay-canvas{cursor:crosshair}.overlay-canvas:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.waveform-scrollbar{position:absolute;left:0;right:0;bottom:0;height:12px;background:var(--bg-base);border-top:1px solid var(--border-subtle);cursor:pointer}.waveform-scroll-thumb{position:absolute;top:2px;left:0;height:8px;background:#ffffff1c;border-radius:4px;cursor:grab;transition:background var(--dur-fast);min-width:24px;will-change:transform}.waveform-scroll-thumb:hover{background:#ffffff2e}.waveform-scroll-thumb:active{background:var(--accent-line);cursor:grabbing}#waveform-log{display:none;background:var(--bg-base);border-top:1px solid var(--border-subtle);padding:4px 14px;font-family:var(--font-mono);font-size:.65rem;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;cursor:pointer;transition:color var(--dur-fast),background var(--dur-fast)}body.waveform-active #waveform-log{display:block}#waveform-log:before{content:"";display:inline-block;width:5px;height:5px;margin-right:8px;border-radius:50%;background:currentColor;vertical-align:middle;opacity:.6}#waveform-log:hover{color:var(--text-muted);background:#0a0c14}#waveform-log[data-level=warn]{color:#c8912f}#waveform-log[data-level=error]{color:var(--danger-text)}.log-modal-overlay{position:fixed;inset:0;background:#04050ab8;z-index:100;display:none;align-items:center;justify-content:center;padding:1.5rem}.log-modal-overlay.visible{display:flex}.log-modal{background:#0e1020;border:1px solid var(--border-default);border-radius:var(--r-md);width:min(760px,100%);max-height:80svh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0009}.log-modal-header{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);font-size:.73rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.log-modal-close{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-muted);font-size:1.05rem;cursor:pointer;padding:2px 6px;line-height:1;border-radius:4px;transition:color var(--dur-fast)}.log-modal-close>.hgi-stroke{opacity:1;vertical-align:0}.log-modal-close:hover{color:#ff5070}.log-modal-content{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:12px 16px;margin:0;font-family:var(--font-mono);font-size:.68rem;line-height:1.7;color:var(--text-muted);white-space:pre-wrap;word-break:break-word}.log-modal-content .log-warn{color:#ffa040}.log-modal-content .log-error{color:#ff5070}#measure-bar-host{flex:none}.measure-action-bar{display:none;max-width:100%}.measure-action-bar.visible{display:flex;align-items:center;gap:5px;padding:6px 12px;background:linear-gradient(180deg,#ffd93d0d,#0a0b1099);border-bottom:1px solid var(--wf-marker-border);font-family:var(--font-mono);flex-wrap:wrap;justify-content:flex-end;animation:actionbar-in .16s var(--ease)}.measure-action-bar.visible:before{content:"Selection";margin-right:auto;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--wf-marker);opacity:.75}.measure-action-group{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end;min-width:0}.measure-action-group[hidden]{display:none}@keyframes actionbar-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.measure-action-bar button{border:1px solid var(--wf-marker-border);border-radius:4px;padding:4px 10px;font-size:.67rem;font-weight:600;font-family:var(--font-mono);background:#ffd93d12;color:var(--wf-marker);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;transition:background var(--dur-fast),border-color var(--dur-fast)}.measure-action-bar button:hover:not(:disabled){background:#ffd93d29;border-color:#ffd93d8c}.measure-action-bar button:disabled{opacity:.4;cursor:not-allowed}.measure-action-bar button.action-save{border-color:#82aaff47;background:#82aaff12;color:var(--info)}.measure-action-bar button.action-save:hover:not(:disabled){background:#82aaff29;border-color:#82aaff80}@media(max-width:860px){.waveform-toolbar{padding:5px 8px;gap:5px}.waveform-toolbar .toolbar-separator{display:none}.toolbar-readouts{margin-left:auto;gap:6px}.waveform-toolbar label{display:none}}@media(max-width:620px){.waveform-toolbar{padding:4px 6px;gap:4px;min-height:0}.waveform-toolbar button{padding:5px 8px;font-size:.64rem;letter-spacing:.03em}.waveform-toolbar button.btn-record{padding-left:22px}.waveform-toolbar button.btn-record:before{left:8px;width:6px;height:6px}.waveform-toolbar select{font-size:.66rem;padding:3px 1.7em 3px 5px}.waveform-toolbar .btn-icon{display:none}.waveform-toolbar .toolbar-group{gap:4px}.toolbar-readouts{order:10;flex-basis:100%;margin-left:0;justify-content:space-between;gap:4px}.toolbar-status{font-size:.64rem}.readout{font-size:.62rem;padding:1px 5px}.measure-action-bar.visible{padding:5px 6px;justify-content:stretch}.measure-action-bar.visible:before{display:none}.measure-action-group{flex:1 1 100%;justify-content:stretch}.measure-action-bar button{flex:1 1 auto;justify-content:center;font-size:.62rem;padding:5px 6px}}
