:root{--bg: #000000;--card: #141b2e;--elevated: #1b2438;--inset: #0a0e18;--text: #eaeff8;--text-soft: #aeb8cd;--text-muted: #828da6;--rule: rgba(255, 255, 255, .14);--rule-light: rgba(255, 255, 255, .07);--brand: #8f99fb;--brand-hover: #a7affc;--brand-deep: #4d59ce;--brand-soft: rgba(143, 153, 251, .15);--on-brand: #0a0e18;--green: #6ee7b7;--green-soft: rgba(34, 197, 94, .15);--red: #fca5a5;--red-soft: rgba(239, 68, 68, .15);--shadow-card: 0 1px 2px rgba(0, 0, 0, .4);--shadow-elevated: 0 16px 40px -16px rgba(0, 0, 0, .7);--mono: "Space Mono", ui-monospace, Menlo, monospace;--sans: "Schibsted Grotesk", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.55;-webkit-font-smoothing:antialiased;border-top:6px solid var(--brand);background-image:repeating-linear-gradient(90deg,transparent 0 46px,rgba(143,153,251,.05) 46px 48px)}.masthead{display:flex;align-items:baseline;gap:14px;max-width:880px;margin:0 auto;padding:18px 20px 0}.wordmark{font-size:17px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--text);text-decoration:none}.wordmark span{color:var(--brand)}.masthead-note{font-family:var(--mono);font-size:11px;color:var(--text-muted);letter-spacing:.04em}main{max-width:880px;margin:0 auto;padding:0 20px 40px}.hero{padding:44px 0 26px;border-bottom:1px solid var(--rule);margin-bottom:26px}.kicker{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);margin:0 0 10px}h1{font-size:clamp(30px,4.6vw,44px);line-height:1.06;margin:0 0 14px;font-weight:800;letter-spacing:-.035em;color:var(--text)}.lede{font-size:17px;color:var(--text-soft);max-width:60ch;margin:0}.card{background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:22px;margin-bottom:22px;box-shadow:var(--shadow-card),var(--shadow-elevated)}#dropzone{border:1.5px dashed var(--rule);border-radius:10px;padding:26px 18px;text-align:center;color:var(--text-soft);cursor:pointer;transition:border-color .15s ease,background-color .15s ease,transform .15s ease}#dropzone:hover,#dropzone:focus-visible,#dropzone.drag{border-color:var(--brand);background:var(--brand-soft);outline:none}#dropzone.drag{transform:scale(1.005)}#dropzone svg{color:var(--brand)}#dropzone p{margin:6px 0 0}#dropzone .hint{font-size:13px;color:var(--text-muted)}.paste-label{display:block;margin:18px 0 6px;font-size:13px;color:var(--text-soft)}textarea{width:100%;font-family:var(--mono);font-size:13px;padding:10px 12px;border:1px solid var(--rule);border-radius:10px;background:var(--inset);color:var(--text);resize:vertical}textarea::placeholder{color:var(--text-muted)}textarea:focus{outline:2px solid var(--brand);outline-offset:1px}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:16px}.chip{font-family:var(--mono);font-size:12.5px;background:var(--brand-soft);color:var(--brand);border:1px solid color-mix(in srgb,var(--brand) 30%,transparent);padding:4px 10px;border-radius:999px}.check{font-size:13.5px;color:var(--text-soft);display:inline-flex;align-items:center;gap:7px;-webkit-user-select:none;user-select:none}.check input{accent-color:var(--brand)}.actions{margin-left:auto;display:flex;gap:10px}.btn{font-family:var(--sans);font-size:14.5px;font-weight:500;padding:9px 18px;border-radius:10px;border:1px solid var(--rule);background:transparent;color:var(--text);cursor:pointer;transition:transform .1s ease,box-shadow .15s ease,background-color .15s ease,border-color .15s ease}.btn:hover:not(:disabled){border-color:var(--brand);background:var(--brand-soft)}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand);font-weight:600}.btn.primary:hover:not(:disabled){background:var(--brand-hover);border-color:var(--brand-hover)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 3px 10px -4px #0009}.btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.btn:disabled{opacity:.4;cursor:not-allowed}.progress-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;font-size:14px}#turbine{color:var(--brand)}#turbine .rotor{transform-origin:20px 20px}.running #turbine .rotor{animation:spin 1.6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#progress-text{font-family:var(--mono);font-size:13px}.summary{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;font-family:var(--mono);font-size:12px}.summary span{padding:2px 9px;border-radius:999px;background:var(--elevated);color:var(--text-soft)}.summary .s-ok{background:var(--green-soft);color:var(--green)}.summary .s-warn{background:var(--brand-soft);color:var(--brand)}.summary .s-err{background:var(--red-soft);color:var(--red)}.bar{height:6px;border-radius:999px;background:var(--elevated);overflow:hidden;margin-bottom:14px}#bar-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--brand-deep),var(--brand));border-radius:999px;transition:width .25s ease}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13.5px}th{text-align:left;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);border-bottom:1px solid var(--rule);padding:6px 10px}td{padding:7px 10px;border-bottom:1px solid var(--rule-light);vertical-align:top}td.asn{font-family:var(--mono);font-size:12.5px;white-space:nowrap}tr{animation:rise .25s ease both}@keyframes rise{0%{opacity:0;transform:translateY(3px)}}.pill{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;padding:2.5px 9px;border-radius:999px;white-space:nowrap}.pill.ok{background:var(--green-soft);color:var(--green)}.pill.warn{background:var(--brand-soft);color:var(--brand)}.pill.err{background:var(--red-soft);color:var(--red)}.pill.muted{background:var(--elevated);color:var(--text-muted)}.status-note{display:block;font-size:12px;color:var(--text-muted);margin-top:3px}td .file-link{color:var(--brand);text-decoration:underline;text-underline-offset:2px;display:block;font-size:12.5px}.notes{font-size:13px;color:var(--text-soft);border-top:1px solid var(--rule);padding-top:18px}.notes code{font-family:var(--mono);font-size:12px;background:var(--elevated);color:var(--text);padding:1px 5px;border-radius:4px}footer{max-width:880px;margin:0 auto;padding:8px 20px 34px;font-size:13px;color:var(--text-muted)}footer a{color:var(--brand)}@media(prefers-reduced-motion:reduce){.running #turbine .rotor,tr{animation:none}.btn{transition:none}}@media(max-width:640px){.actions{margin-left:0;width:100%}.btn{flex:1}}
