:root{--bg-base: #fdfcfa;--bg-surface: #f7f5f1;--bg-panel: #ffffff;--bg-hover: #f2efe9;--border-subtle: #ece8e0;--border-default: #ddd7cb;--border-strong: #b9b1a2;--text-primary: #1a1a18;--text-secondary: #4a4a44;--text-tertiary: #6b6b63;--text-muted: #9a9a90;--accent: #3d4f8a;--accent-hover: #2e3d6f;--accent-wash: #eceef6;--good: #2f8f4e;--good-wash: #e4f4e8;--warn: #a9700c;--warn-wash: #fbf1da;--bad: #b32828;--bad-wash: #fbe6e6;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Helvetica, Arial, sans-serif;--font-serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-mono: "SF Mono", "Fira Code", "Cascadia Code", Consolas, monospace;--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--space-2xl: 2.25rem;--radius-sm: 5px;--radius-md: 9px;--radius-lg: 14px;--shadow-panel: 0 1px 2px rgba(26, 26, 24, .04), 0 6px 20px rgba(26, 26, 24, .05);--transition: .15s ease}[hidden]{display:none!important}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:1rem;line-height:1.6}body.overlay-open{overflow:hidden}#app{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1 0 auto;width:100%;max-width:60rem;margin:0 auto;padding:0 var(--space-lg) var(--space-2xl)}.site-footer{flex-shrink:0}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}.mono{font-family:var(--font-mono);font-size:.9em}.quiet{color:var(--text-tertiary)}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.site-header{border-bottom:1px solid var(--border-subtle);background:var(--bg-panel)}.header-inner{max-width:60rem;margin:0 auto;padding:var(--space-lg);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-lg);flex-wrap:wrap}.brand{display:flex;gap:var(--space-md);align-items:center}.brand-mark{width:38px;height:38px;color:var(--accent);flex-shrink:0}.brand h1{margin:0;font-size:1.2rem;letter-spacing:-.015em;font-weight:640}.brand p{margin:.1rem 0 0;font-size:.85rem;color:var(--text-tertiary);max-width:34rem}.header-nav{display:flex;gap:var(--space-xs);flex-wrap:wrap}.ghost-button,.primary-button,.sample-button{font:inherit;font-size:.85rem;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition);min-height:38px;padding:0 var(--space-md)}.ghost-button{background:transparent;border:1px solid transparent;color:var(--text-secondary)}.ghost-button:hover{background:var(--bg-hover);color:var(--text-primary)}.primary-button{background:var(--accent);border:1px solid var(--accent);color:#fff;font-weight:560;padding:0 var(--space-xl);min-height:44px}.primary-button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.primary-button:disabled{background:var(--bg-surface);border-color:var(--border-default);color:var(--text-muted);cursor:not-allowed}.sample-button{background:var(--bg-panel);border:1px dashed var(--border-strong);color:var(--accent);min-height:44px}.sample-button:hover:not(:disabled){background:var(--accent-wash);border-style:solid}.link-button{background:none;border:0;padding:0;font:inherit;font-size:inherit;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.icon-button{background:transparent;border:0;cursor:pointer;color:var(--text-tertiary);width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.icon-button:hover{background:var(--bg-hover);color:var(--text-primary)}.icon-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.badge{display:inline-block;min-width:17px;padding:0 5px;margin-left:3px;background:var(--accent);color:#fff;border-radius:9px;font-size:.68rem;line-height:17px;text-align:center}.trust-banner{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin:var(--space-xl) 0 var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--accent-wash);border-radius:var(--radius-md);font-size:.875rem;color:var(--text-secondary)}.trust-banner svg{width:17px;height:17px;flex-shrink:0;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linejoin:round}.intake{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}@media(max-width:46rem){.intake{grid-template-columns:1fr}}.drop{position:relative;border:1.5px dashed var(--border-default);border-radius:var(--radius-lg);background:var(--bg-panel);padding:var(--space-xl);cursor:pointer;transition:border-color var(--transition),background var(--transition);min-height:170px}.drop:hover,.drop:focus-visible{border-color:var(--accent);background:var(--accent-wash)}.drop.over{border-color:var(--accent);background:var(--accent-wash);border-style:solid}.drop-step{position:absolute;top:var(--space-md);right:var(--space-md);width:22px;height:22px;border-radius:50%;background:var(--bg-surface);color:var(--text-tertiary);font-size:.72rem;display:grid;place-items:center;font-variant-numeric:tabular-nums}.drop h2{margin:0 0 var(--space-xs);font-size:1rem;letter-spacing:-.01em}.drop-hint{margin:0;font-size:.85rem;color:var(--text-secondary)}.drop-formats{margin:var(--space-xs) 0 0;font-size:.75rem;color:var(--text-muted);font-family:var(--font-mono)}kbd{font-family:var(--font-mono);font-size:.8em;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:3px;padding:0 4px}.file-list{list-style:none;margin:var(--space-md) 0 0;padding:0;font-size:.8rem;max-height:9rem;overflow-y:auto}.file-list li{padding:2px 0;color:var(--text-secondary);overflow-wrap:anywhere}.tick{color:var(--good);margin-right:6px}.actions{display:flex;align-items:flex-start;gap:var(--space-md);flex-wrap:wrap;margin:var(--space-xl) 0}.online-toggle{display:flex;gap:var(--space-sm);align-items:flex-start;flex:1 1 22rem;cursor:pointer;padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-panel)}.online-toggle input{margin-top:3px;flex-shrink:0;width:17px;height:17px;accent-color:var(--accent)}.online-toggle strong{display:block;font-size:.85rem;font-weight:560}.online-toggle small{display:block;font-size:.75rem;color:var(--text-tertiary);line-height:1.5}.progress{margin:var(--space-lg) 0}.progress-bar{height:5px;background:var(--bg-surface);border-radius:3px;overflow:hidden}.progress-fill{height:100%;width:0;background:var(--accent);transition:width .12s linear}.progress-label{margin:var(--space-sm) 0 0;font-size:.82rem;color:var(--text-tertiary);font-variant-numeric:tabular-nums}.error{margin:var(--space-lg) 0;padding:var(--space-md) var(--space-lg);background:var(--bad-wash);border-radius:var(--radius-md);color:var(--bad);font-size:.875rem}.panel{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-xl);margin:var(--space-xl) 0;box-shadow:var(--shadow-panel)}.panel h2{margin:0 0 var(--space-lg);font-size:.98rem;letter-spacing:-.01em}.table-wrap{overflow-x:auto}table.preflight{border-collapse:collapse;width:100%;font-size:.82rem;min-width:34rem}table.preflight th,table.preflight td{text-align:left;padding:var(--space-sm) var(--space-md) var(--space-sm) 0;border-bottom:1px solid var(--border-subtle);vertical-align:top}table.preflight th{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-weight:600}table.preflight td.file{font-weight:520;overflow-wrap:anywhere}table.preflight .num{text-align:right;font-variant-numeric:tabular-nums;padding-right:var(--space-lg)}table.preflight td.note{color:var(--text-secondary);line-height:1.5}.tally{display:flex;flex-wrap:wrap;gap:var(--space-2xl);padding:var(--space-lg) var(--space-xl);background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);margin:var(--space-xl) 0 var(--space-md);box-shadow:var(--shadow-panel)}.tally div{display:flex;flex-direction:column}.tally b{font-size:1.7rem;font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.tally span{font-size:.76rem;color:var(--text-tertiary)}.headline-note{margin:0 0 var(--space-lg);font-size:.82rem;color:var(--text-tertiary)}.caveat{margin:var(--space-md) 0;padding:var(--space-sm) 0 var(--space-sm) var(--space-lg);border-left:2px solid var(--border-default);font-size:.82rem;color:var(--text-secondary);line-height:1.55}.downloads{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin:var(--space-lg) 0}.downloads .ghost-button{border-color:var(--border-default)}.tune{padding:var(--space-lg);background:var(--bg-surface);border-radius:var(--radius-md);margin:var(--space-lg) 0}.tune label{display:block;font-size:.82rem;font-weight:540;margin-bottom:var(--space-sm)}.tune input[type=range]{width:min(20rem,100%);accent-color:var(--accent);vertical-align:middle}.tune output{font-variant-numeric:tabular-nums;font-size:.85rem;margin-left:var(--space-sm);color:var(--text-secondary)}.tune p{margin:var(--space-sm) 0 0;font-size:.78rem;line-height:1.55}.results-list{display:flex;flex-direction:column;gap:var(--space-lg)}.result{background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-panel);border-left-width:3px}.result.r-exact,.result.r-exact-ellipsis{border-left-color:var(--good)}.result.r-near{border-left-color:var(--warn)}.result.r-altered,.result.r-elsewhere{border-left-color:#c25a2a}.result.r-not-found{border-left-color:var(--bad)}.result.r-unreadable{border-left-color:var(--accent)}.result.r-not-checked{border-left-color:var(--border-strong)}.result-head{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-md)}.verdict{font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:3px 8px;border-radius:4px}.v-exact,.v-exact-ellipsis{background:var(--good-wash);color:var(--good)}.v-near{background:var(--warn-wash);color:var(--warn)}.v-altered,.v-elsewhere{background:#fbe8de;color:#a8471c}.v-not-found{background:var(--bad-wash);color:var(--bad)}.v-unreadable{background:var(--accent-wash);color:var(--accent)}.v-not-checked{background:var(--bg-surface);color:var(--text-tertiary)}.chip{font-size:.7rem;padding:2px 7px;border-radius:4px;background:var(--bg-surface);color:var(--text-tertiary)}.chip-warn{background:var(--warn-wash);color:var(--warn)}.result-index{margin-left:auto;font-size:.75rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.quoted{margin:0 0 var(--space-md);padding:0 0 0 var(--space-lg);border-left:2px solid var(--border-default);font-family:var(--font-serif);font-size:1.02rem;line-height:1.55;color:var(--text-primary)}.result-where{margin:0 0 var(--space-md);font-size:.8rem;color:var(--text-tertiary)}.pinpoint{margin:0 0 var(--space-md);font-size:.85rem;color:var(--warn);font-weight:520}.context{font-family:var(--font-serif);font-size:.92rem;line-height:1.6;color:var(--text-secondary);background:var(--bg-surface);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md)}.context mark{background:var(--good-wash);box-shadow:inset 0 -2px 0 var(--good);color:var(--text-primary);padding:0 1px}.ctx-side{color:var(--text-muted)}.diff{margin-top:var(--space-md);font-size:.88rem;line-height:1.7;font-family:var(--font-serif)}.diff ins{background:var(--good-wash);text-decoration:none;box-shadow:inset 0 -2px 0 var(--good)}.diff del{background:var(--bad-wash);box-shadow:inset 0 -2px 0 var(--bad)}.d-ortho{background:var(--warn-wash);box-shadow:inset 0 -2px 0 var(--warn)}.result details{margin-top:var(--space-sm);font-size:.8rem}.result summary{cursor:pointer;color:var(--accent)}.searched{margin:var(--space-sm) 0 0;padding-left:var(--space-xl);color:var(--text-tertiary)}.blurb{margin:var(--space-md) 0 0;font-size:.78rem;color:var(--text-muted)}.modal{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.modal-backdrop{position:fixed;inset:0;background:#1a1a1866}.modal-panel{position:relative;background:var(--bg-panel);border-radius:var(--radius-lg);max-width:44rem;width:100%;max-height:86vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #1a1a1838}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-md) var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-subtle)}.modal-head h2{margin:0;font-size:1.05rem;letter-spacing:-.01em}.modal-body{padding:var(--space-xl);overflow-y:auto;font-size:.9rem;line-height:1.65;color:var(--text-secondary)}.modal-body h3{color:var(--text-primary);font-size:.92rem;margin:var(--space-xl) 0 var(--space-sm)}.modal-body h3:first-child{margin-top:0}.modal-body p{margin:0 0 var(--space-md)}.modal-body ul{margin:0 0 var(--space-md);padding-left:var(--space-xl)}.modal-body li{margin-bottom:var(--space-sm)}.modal-body .lede{font-size:1rem;color:var(--text-primary)}.modal-body .fine{font-size:.78rem;color:var(--text-tertiary);border-top:1px solid var(--border-subtle);padding-top:var(--space-lg)}.steps{list-style:none;counter-reset:step;margin:0;padding:0}.steps li{counter-increment:step;position:relative;padding-left:2.5rem;margin-bottom:var(--space-xl)}.steps li:before{content:counter(step);position:absolute;left:0;top:1px;width:26px;height:26px;border-radius:50%;background:var(--accent-wash);color:var(--accent);display:grid;place-items:center;font-size:.78rem;font-weight:600}.steps h3{margin:0 0 var(--space-xs)}.drawer{position:fixed;inset:0;z-index:55;display:flex;justify-content:flex-end}.drawer-backdrop{position:fixed;inset:0;background:#1a1a184d}.drawer-panel{position:relative;width:min(26rem,100%);background:var(--bg-panel);display:flex;flex-direction:column;box-shadow:-12px 0 40px #1a1a1829}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg) var(--space-md) var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-subtle)}.drawer-head h2{margin:0;font-size:.95rem}.drawer-actions{display:flex;align-items:center;gap:var(--space-xs)}.drawer-list{list-style:none;margin:0;padding:var(--space-lg) var(--space-xl);overflow-y:auto;flex:1;font-size:.78rem;font-family:var(--font-mono)}.log-line{display:grid;grid-template-columns:auto auto 1fr;gap:var(--space-sm);padding:3px 0;line-height:1.45}.log-time{color:var(--text-muted)}.log-good .log-mark{color:var(--good)}.log-warn .log-mark{color:var(--warn)}.log-bad .log-mark{color:var(--bad)}.log-info .log-mark{color:var(--text-muted)}.log-text{color:var(--text-secondary);overflow-wrap:anywhere}.drawer-foot{margin:0;padding:var(--space-md) var(--space-xl) var(--space-xl);font-size:.72rem;color:var(--text-tertiary);border-top:1px solid var(--border-subtle)}.glossary-link{border-bottom:1px dotted var(--text-muted);cursor:help}.glossary-tip{position:fixed;z-index:90;background:var(--text-primary);color:#fff;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:.8rem;line-height:1.5;box-shadow:0 10px 30px #1a1a1847}.site-footer{border-top:1px solid var(--border-subtle);background:var(--bg-panel)}.footer-inner{max-width:60rem;margin:0 auto;padding:var(--space-lg);font-size:.8rem;color:var(--text-tertiary);display:flex;gap:var(--space-sm);flex-wrap:wrap;align-items:center}@media(max-width:30rem){.header-inner{padding:var(--space-md)}.brand p{display:none}.main-content{padding:0 var(--space-md) var(--space-xl)}.panel,.result{padding:var(--space-lg)}.tally{gap:var(--space-lg);padding:var(--space-lg)}.tally b{font-size:1.4rem}}
