:root{--color-bg:#fff;--color-surface:#fff;--color-surface-sunken:#f6f7fb;--color-surface-alt:#eef0f8;--color-text:#0f172a;--color-text-muted:#475569;--color-text-subtle:#5c6a7f;--color-border:#e6e8f2;--color-border-strong:#b8bdd0;--color-brand:#6d28d9;--color-brand-strong:#5b21b6;--color-brand-fg:#fff;--color-brand-tint:#f4f1ff;--color-brand-tint-border:#e4dcff;--color-brand-bright:#7c5cff;--color-focus:#6d28d9;--color-ok-text:#15803d;--color-ok-bg:#f0fdf4;--color-ok-border:#15803d;--color-warn-text:#b45309;--color-warn-bg:#fffbeb;--color-warn-border:#b45309;--color-neutral-text:#334155;--color-neutral-bg:#f4f5fa;--color-neutral-border:#64748b;--color-error-text:#b91c1c;--color-error-bg:#fef2f2;--color-error-border:#b91c1c;--thread:linear-gradient(90deg,#04d4de,#4a9ef1 22%,#6842ff 52%,#b660ff 68%,#ff6537 88%,#ff3a52);--radius-lg:18px;--radius:12px;--radius-sm:9px;--shadow-card:0 1px 2px rgba(15,23,42,.04),0 8px 24px -12px rgba(15,23,42,.12);--shadow-pop:0 12px 40px -12px rgba(109,40,217,.28);--control-h:38px;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--space-5:3rem;--maxw:44rem;--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Helvetica Neue",sans-serif}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:#0e1016;--color-surface:#171a22;--color-surface-sunken:#12141b;--color-surface-alt:#1e222c;--color-text:#f6f8fc;--color-text-muted:#cbd5e1;--color-text-subtle:#97a2b4;--color-border:#262b36;--color-border-strong:#4a5262;--color-brand:#c4b5fd;--color-brand-strong:#ddd6fe;--color-brand-fg:#0f172a;--color-brand-tint:#1b1730;--color-brand-tint-border:#322a52;--color-brand-bright:#8b5cf6;--color-focus:#c4b5fd;--color-ok-text:#86efac;--color-ok-bg:#14271a;--color-ok-border:#4ade80;--color-warn-text:#fcd34d;--color-warn-bg:#2a2410;--color-warn-border:#fbbf24;--color-neutral-text:#e2e8f0;--color-neutral-bg:#1e293b;--color-neutral-border:#94a3b8;--color-error-text:#fca5a5;--color-error-bg:#2a1414;--color-error-border:#f87171;--shadow-card:0 1px 2px rgba(0,0,0,.4),0 12px 30px -14px rgba(0,0,0,.6);--shadow-pop:0 14px 44px -14px rgba(124,92,255,.45)}}:root[data-theme=dark]{--color-bg:#0e1016;--color-surface:#171a22;--color-surface-sunken:#12141b;--color-surface-alt:#1e222c;--color-text:#f6f8fc;--color-text-muted:#cbd5e1;--color-text-subtle:#97a2b4;--color-border:#262b36;--color-border-strong:#4a5262;--color-brand:#c4b5fd;--color-brand-strong:#ddd6fe;--color-brand-fg:#0f172a;--color-brand-tint:#1b1730;--color-brand-tint-border:#322a52;--color-brand-bright:#8b5cf6;--color-focus:#c4b5fd;--color-ok-text:#86efac;--color-ok-bg:#14271a;--color-ok-border:#4ade80;--color-warn-text:#fcd34d;--color-warn-bg:#2a2410;--color-warn-border:#fbbf24;--color-neutral-text:#e2e8f0;--color-neutral-bg:#1e293b;--color-neutral-border:#94a3b8;--color-error-text:#fca5a5;--color-error-bg:#2a1414;--color-error-border:#f87171;--shadow-card:0 1px 2px rgba(0,0,0,.4),0 12px 30px -14px rgba(0,0,0,.6);--shadow-pop:0 14px 44px -14px rgba(124,92,255,.45)}*{box-sizing:border-box}html{color-scheme:light dark;font-family:var(--font);line-height:1.6;-webkit-font-smoothing:antialiased}body{background:var(--color-bg);background-image:radial-gradient(1200px 480px at 50% -8%,color-mix(in srgb,var(--color-brand-bright) 9%,transparent),transparent 70%);background-repeat:no-repeat;color:var(--color-text);font-size:1rem;margin:0}h1,h2,h3{line-height:1.15}a{color:var(--color-brand);text-underline-offset:2px}a:hover{color:var(--color-brand-strong)}:where(a,button,input,label,[tabindex],[role=button]):focus-visible{border-radius:6px;outline:3px solid var(--color-focus);outline-offset:2px}.btn:focus-within{outline:3px solid var(--color-focus);outline-offset:2px}.visually-hidden{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}.skip-link{background:var(--color-bg);border:2px solid var(--color-focus);border-radius:var(--radius);color:var(--color-brand);left:var(--space-1);padding:var(--space-1) var(--space-2);position:absolute;top:-3rem;transition:top .15s ease;z-index:100}.skip-link:focus{top:var(--space-1)}.page{display:flex;flex-direction:column;min-height:100vh}.container{margin:0 auto;max-width:var(--maxw);padding:0 var(--space-3);width:100%}main:focus{outline:none}.site-header{backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);background:color-mix(in srgb,var(--color-bg) 82%,transparent);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:20}.site-header:after{background:var(--thread);bottom:-1px;content:"";height:2px;left:0;opacity:.9;position:absolute;right:0}.header-inner{gap:var(--space-2);justify-content:space-between;min-height:64px}.brand,.header-inner{align-items:center;display:flex}.brand{color:var(--color-text);gap:.6rem;text-decoration:none}.brand__mark{display:block;flex:0 0 auto;height:28px;width:26px}.brand__word{font-size:1.22rem;font-weight:800;letter-spacing:-.02em}.brand__sep{background:var(--color-border-strong);height:20px;margin:0 .2rem;opacity:.8;width:1px}.brand__label{color:var(--color-text-muted);font-size:.82rem;font-weight:500}@media(max-width:560px){.brand__label,.brand__sep{display:none}}.header-actions{align-items:center;display:flex;gap:var(--space-1)}.seg{align-items:center;background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:999px;display:inline-flex;gap:2px;height:var(--control-h);padding:3px}.seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;border-radius:999px;color:var(--color-text-muted);cursor:pointer;font:inherit;font-size:.85rem;font-weight:600;height:100%;line-height:1;padding:0 .8rem}.seg button[aria-pressed=true]{background:var(--color-brand);color:var(--color-brand-fg)}.icon-btn{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:999px;color:var(--color-text);cursor:pointer;display:inline-grid;height:var(--control-h);place-items:center;width:var(--control-h)}.icon-btn:hover{background:var(--color-surface-alt)}.icon-btn svg{height:18px;width:18px}.hero{padding:var(--space-5) 0 var(--space-3);text-align:center}.eyebrow{align-items:center;background:var(--color-brand-tint);border:1px solid var(--color-brand-tint-border);border-radius:999px;color:var(--color-brand);display:inline-flex;font-size:.8rem;font-weight:600;gap:.45rem;padding:.32rem .7rem}.eyebrow svg{height:14px;width:14px}.hero h1{font-size:clamp(2rem,5.2vw,2.9rem);font-weight:800;letter-spacing:-.03em;line-height:1.06;margin:var(--space-3) 0 0}.hero p.tagline{color:var(--color-text-muted);font-size:1.125rem;margin:var(--space-2) auto 0;max-width:34rem}.upload-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin:var(--space-4) 0 0;padding:var(--space-4);position:relative}.section-label{color:var(--color-text);font-size:.95rem;font-weight:700;margin:0 0 var(--space-3)}.dropzone{align-items:center;background:var(--color-surface-sunken);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5) var(--space-3);text-align:center;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.dropzone--active{background:var(--color-brand-tint);border-color:var(--color-brand);border-style:solid;box-shadow:var(--shadow-pop)}.drop-badge{background:var(--color-brand-tint);border:1px solid var(--color-brand-tint-border);border-radius:16px;color:var(--color-brand);display:grid;height:56px;place-items:center;width:56px}.drop-badge svg{height:26px;width:26px}.drop-title{font-size:1.05rem;font-weight:600;margin:0}.drop-hint{color:var(--color-text-subtle);font-size:.9rem;margin:0}.btn{align-items:center;background:var(--color-brand);border:1px solid var(--color-brand);border-radius:var(--radius-sm);box-shadow:0 1px #0f172a0a;color:var(--color-brand-fg);cursor:pointer;display:inline-flex;font:inherit;font-size:1rem;font-weight:650;gap:.5rem;padding:.7rem 1.3rem}.btn:hover{background:var(--color-brand-strong);border-color:var(--color-brand-strong)}.btn svg{height:18px;width:18px}.btn[disabled]{cursor:not-allowed;opacity:.6}.btn-secondary{background:transparent;border-color:var(--color-border-strong);box-shadow:none;color:var(--color-brand)}.btn-secondary:hover{border-color:var(--color-brand);color:var(--color-brand-strong)}.btn-secondary:hover,.privacy{background:var(--color-surface-sunken)}.privacy{align-items:flex-start;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text-muted);display:flex;font-size:.9rem;gap:.6rem;margin-top:var(--space-3);padding:.75rem .9rem}.privacy svg{color:var(--color-brand);flex:0 0 auto;height:18px;margin-top:1px;width:18px}.privacy b{color:var(--color-text);font-weight:650}.busy{align-items:center;color:var(--color-text-muted);display:flex;gap:.75rem;margin-top:var(--space-3)}.spinner{animation:spin .8s linear infinite;border:3px solid var(--color-border-strong);border-radius:50%;border-top-color:var(--color-brand);display:inline-block;height:1.25rem;width:1.25rem}@keyframes spin{to{transform:rotate(1turn)}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin-block:var(--space-4);overflow:hidden;padding:var(--space-4);position:relative}.card:before{background:var(--thread);content:"";height:3px;left:0;position:absolute;right:0;top:0}.card h2{font-size:1.15rem;margin:0 0 var(--space-3)}.card h3{color:var(--color-text-muted);font-size:.85rem;letter-spacing:.05em;margin:var(--space-4) 0 var(--space-2);text-transform:uppercase}.banner{align-items:flex-start;background:var(--color-neutral-bg);border:1px solid var(--color-neutral-border);border-radius:var(--radius);color:var(--color-text);display:flex;gap:var(--space-2);padding:var(--space-2) 1.1rem}.banner__icon{color:var(--color-neutral-text);flex:0 0 auto;height:1.5rem;width:1.5rem}.banner--ok{background:var(--color-ok-bg);border-color:var(--color-ok-border)}.banner--ok .banner__icon{color:var(--color-ok-text)}.banner--warn{background:var(--color-warn-bg);border-color:var(--color-warn-border)}.banner--warn .banner__icon{color:var(--color-warn-text)}.banner--neutral .banner__icon{color:var(--color-neutral-text)}.banner--error{background:var(--color-error-bg);border-color:var(--color-error-border)}.banner--error .banner__icon{color:var(--color-error-text)}.tech-list{display:flex;flex-direction:column;gap:var(--space-2);list-style:none;margin:0;padding:0}.tech-row{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-2) 1.1rem}.tech-row__head{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem}.tech-icon{flex:0 0 auto;height:1.25rem;width:1.25rem}.tag{align-items:center;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:999px;color:var(--color-text-muted);display:inline-flex;font-size:.8rem;font-weight:600;gap:.25rem;padding:.18rem .6rem}dl.manifest{display:grid;gap:.25rem var(--space-2);grid-template-columns:max-content 1fr;margin:0}dl.manifest dt{color:var(--color-text-muted);font-weight:600}dl.manifest dd{margin:0}code{background:var(--color-surface-sunken);border:1px solid var(--color-border);border-radius:6px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.85em;padding:.08em .36em}.mono-wrap{display:inline-block;max-width:100%;overflow-wrap:anywhere;word-break:break-word}dl.info{display:grid;gap:.35rem var(--space-2);grid-template-columns:max-content 1fr;margin:var(--space-2) 0 0}dl.info dt{color:var(--color-text-muted);font-weight:600}dl.info dd{margin:0;min-width:0}@media(max-width:560px){dl.info{gap:.15rem;grid-template-columns:1fr}dl.info dd{margin:0 0 .4rem}}.label-mapping{background:var(--color-brand-tint);border:1px solid var(--color-brand-tint-border);border-radius:var(--radius);margin-top:var(--space-2);padding:.85rem 1rem}.label-mapping h3{margin:0 0 .5rem}.label-mapping ul{display:flex;flex-direction:column;gap:.4rem;margin:.5rem 0 0;padding-left:1.1rem}.info-note{font-size:.92rem;margin:var(--space-2) 0 0}.card>.card-lead,.info-note{color:var(--color-text-muted)}.card>.card-lead{margin:0 0 var(--space-2)}.site-footer{background:var(--color-surface-sunken);border-top:1px solid var(--color-border);margin-top:var(--space-5)}.footer-inner{padding:var(--space-4) 0 var(--space-3)}.footer-top{align-items:start;display:grid;gap:var(--space-4);grid-template-columns:1.5fr 1fr 1fr}.footer-brand{display:flex;flex-direction:column;gap:.8rem;max-width:20rem}.footer-brand .brand__word{font-size:1.12rem}.footer-tagline{color:var(--color-text-subtle);font-size:.88rem;line-height:1.5;margin:0}.footer-col h2{color:var(--color-text-subtle);font-size:.76rem;font-weight:700;letter-spacing:.07em;margin:0 0 .85rem;text-transform:uppercase}.footer-col ul{display:flex;flex-direction:column;gap:.6rem;list-style:none;margin:0;padding:0}.footer-col a{color:var(--color-text-muted);font-size:.92rem;text-decoration:none}.footer-col a:hover{color:var(--color-brand)}.footer-socials{display:flex;gap:.5rem;margin-top:.2rem}.social{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;color:var(--color-text-muted);display:inline-grid;height:var(--control-h);place-items:center;width:var(--control-h)}.social:hover{border-color:var(--color-brand);color:var(--color-brand)}.social svg{height:18px;width:18px}.footer-bottom{border-top:1px solid var(--color-border);color:var(--color-text-subtle);font-size:.84rem;margin-top:var(--space-4);padding-top:var(--space-3)}.footer-bottom p{margin:0;max-width:44rem}@media(max-width:720px){.hero{padding:var(--space-4) 0 var(--space-2)}.card,.upload-card{padding:var(--space-3)}.dropzone{padding:var(--space-4) var(--space-2)}.footer-top{gap:var(--space-4) var(--space-3);grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1;max-width:none}}@media(max-width:420px){.hero h1{font-size:1.9rem}.seg button{padding:0 .6rem}.brand__word{font-size:1.08rem}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.spinner{animation:none}}
