:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0c0a10;--bg-panel:#15121b;--bg-inset:#1d1925;--border:#2c2636;--text:#cdc6d6;--text-dim:#978fa6;--text-strong:#f4f0fa;--accent:#e8413a;--accent-dim:#7a2420;--danger-emph:#ff6f64;--btn-danger-bg:#cf382f;--gold:#e2b13c;--green:#4fbf8b;--warn:#e2b13c;--shadow:#00000080}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f3ee;--bg-panel:#fffdf9;--bg-inset:#efe9e0;--border:#d8d0c4;--text:#2c2630;--text-dim:#635a6e;--text-strong:#110d18;--accent:#c8302a;--accent-dim:#e9b6b3;--danger-emph:#a3201b;--btn-danger-bg:#be2a23;--gold:#8a6410;--green:#2f8f63;--warn:#8a6410;--shadow:#503c281f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;background-image:radial-gradient(circle at 18% -10%,#e8413a14,#0000 42%),radial-gradient(circle at 90% 0,#e2b13c0d,#0000 40%);margin:0;font-family:Space Mono,ui-monospace,SFMono-Regular,monospace;font-size:15px;line-height:1.65}#app{max-width:880px;margin:0 auto;padding:0 20px 96px}code{background:var(--bg-inset);border:1px solid var(--border);color:var(--text-strong);border-radius:4px;padding:.05em .4em;font-family:Space Mono,monospace;font-size:.88em}a{color:var(--accent);border-bottom:1px solid #0000;text-decoration:none}a:hover{border-bottom-color:var(--accent)}.panel-intro a,.note a,.escape-note a,.prose p a,.prose li a,.attribution a,.plot-caption a,.cmp-note a,.glossary dd a{text-underline-offset:.18em;text-decoration:underline}h1,h2,h3{color:var(--text-strong);letter-spacing:-.01em;font-family:Fraunces,Georgia,serif;font-weight:600}.danger-text{color:var(--accent);font-weight:700}.hero{border-bottom:1px solid var(--border);margin-bottom:8px;padding:64px 0 40px;position:relative}.hero-top{justify-content:space-between;align-items:center;display:flex}.kicker{letter-spacing:.32em;text-transform:uppercase;color:var(--text-dim);font-size:12px}.theme-toggle{background:var(--bg-panel);border:1px solid var(--border);width:2.75rem;height:2.75rem;color:var(--text);cursor:pointer;z-index:10;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.1rem;line-height:1;display:flex}.theme-toggle:hover{border-color:var(--accent);color:var(--accent)}.title{background:linear-gradient(178deg, var(--text-strong) 38%, var(--accent) 130%);color:#0000;-webkit-background-clip:text;background-clip:text;margin:18px 0 4px;font-family:Fraunces,serif;font-size:clamp(64px,16vw,140px);font-weight:900;line-height:.92;position:relative}.subtitle{color:var(--text-dim);margin:0 0 26px;font-family:Fraunces,serif;font-size:clamp(18px,3.6vw,26px);font-style:italic}.lede{max-width:60ch;font-size:16px}.attribution{color:var(--text-dim);border-left:2px solid var(--accent);margin-top:24px;padding-left:14px;font-size:13px}.panels{flex-direction:column;gap:28px;margin-top:36px;display:flex}.panel{background:var(--bg-panel);border:1px solid var(--border);box-shadow:0 10px 30px -20px var(--shadow);border-radius:14px;padding:26px 26px 28px}.panel-head{align-items:baseline;gap:14px;margin-bottom:12px;display:flex}.panel-num{color:var(--accent);font-family:Fraunces,serif;font-size:30px;font-weight:900}.panel-head h2{margin:0;font-size:25px}.panel-intro{color:var(--text-dim);max-width:64ch;margin:0 0 18px}.danger-panel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-dim), 0 10px 40px -18px #e8413a80}.controls{flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:8px;display:flex}.controls label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);flex-direction:column;gap:6px;font-size:12px;display:flex}select,input[type=text]{background:var(--bg-inset);border:1px solid var(--border);color:var(--text-strong);border-radius:8px;padding:10px 12px;font-family:Space Mono,monospace;font-size:14px}.ctrl-msg{flex:220px}.ctrl-msg input[type=text]{width:100%;min-width:0}select:focus-visible,input:focus-visible{border-color:var(--accent)}.btn{background:var(--bg-inset);color:var(--text-strong);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:10px 18px;font-family:Space Mono,monospace;font-size:14px;font-weight:700;transition:transform 50ms,border-color .15s}.btn:hover{border-color:var(--text-dim)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--text-strong);color:var(--bg);border-color:var(--text-strong)}.btn-danger{background:var(--btn-danger-bg);color:#fff;border-color:var(--btn-danger-bg)}.btn-danger:hover{box-shadow:0 0 22px -4px var(--accent);border-color:var(--btn-danger-bg)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn:disabled:hover{border-color:var(--border)}.btn-danger:disabled:hover{border-color:var(--btn-danger-bg)}.note{color:var(--text-dim);background:var(--bg-inset);border:1px dashed var(--border);border-radius:8px;margin:16px 0 0;padding:10px 14px;font-size:12.5px}.hint{min-height:1.6em;color:var(--text);margin:14px 0 0;font-size:14px}.key-out{margin-top:22px}.kv-grid{background:var(--border);border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;display:grid;overflow:hidden}.kv{background:var(--bg-inset);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.kv span{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:11px}.kv code{background:0 0;border:none;padding:0;font-size:20px;font-weight:700}.kv.danger-kv{background:#e8413a1a}.kv.danger-kv span{color:var(--text)}.kv.danger-kv code{color:var(--accent)}.ood-line,.secret-line{margin:14px 0 0;font-size:13.5px}.ood-pair{color:var(--gold);font-weight:700}.meter-wrap{margin-bottom:18px}.meter-labels{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);justify-content:space-between;margin-bottom:8px;font-size:12px;display:flex}#meter-count{color:var(--text-strong);font-weight:700}.meter{background:var(--bg-inset);border:1px solid var(--border);border-radius:99px;height:16px;overflow:hidden}.meter-fill{border-radius:99px;width:0;height:100%;transition:width .45s cubic-bezier(.22,1,.36,1),background .45s}.meter-fill.safe{background:linear-gradient(90deg, var(--green), #6fd0a5)}.meter-fill.warn{background:linear-gradient(90deg, var(--green), var(--gold))}.meter-fill.danger{background:linear-gradient(90deg, var(--gold), var(--accent));box-shadow:0 0 16px -2px var(--accent)}.cliff-status{border:1px solid var(--border);background:var(--bg-inset);border-radius:10px;margin-bottom:18px;padding:14px 16px;font-size:14.5px}.cliff-status.safe{border-color:var(--green);color:var(--text)}.cliff-status.safe strong{color:var(--green)}.cliff-status.danger{border-color:var(--accent);color:var(--text-strong);background:#e8413a1f}.cliff-status.danger strong{color:var(--danger-emph)}.cliff-status.escaped{border-color:var(--gold);color:var(--text-strong);background:#e2b13c1f}.cliff-status.escaped strong{color:var(--gold)}.plot{background:var(--bg-inset);border:1px solid var(--border);border-radius:10px;width:100%;padding:8px}.cliff-svg{width:100%;height:auto;display:block}.cliff-svg .axis{stroke:var(--border);stroke-width:1.5px}.cliff-svg .ghost-curve{fill:none;stroke:var(--text-dim);stroke-width:1.4px;opacity:.4;stroke-dasharray:4 4}.cliff-svg .recovered-curve{fill:none;stroke:var(--accent);stroke-width:2.6px;filter:drop-shadow(0 0 6px #e8413a80)}.cliff-svg .reveal-dot{fill:var(--accent);stroke:var(--bg);stroke-width:1.5px}.cliff-svg .ood-dot{fill:none;stroke:var(--gold);stroke-width:2.5px}.cliff-svg .empty-slot{fill:var(--text-dim);opacity:.35}.plot-caption{color:var(--text-dim);margin:12px 0 0;font-size:12.5px}.cmp-figure{margin:0}.compare{background:var(--bg-inset);border:1px solid var(--border);border-radius:10px;width:100%;padding:8px}.cmp-svg{width:100%;height:auto;display:block}.cmp-axis{stroke:var(--border);stroke-width:1.5px}.cmp-tick{stroke:var(--border);stroke-width:1px}.cmp-axt,.cmp-axl,.cmp-axttl,.cmp-safelbl,.cmp-clifflbl{font-family:Space Mono,monospace}.cmp-axt,.cmp-axl{fill:var(--text-dim);font-size:12px}.cmp-axttl{fill:var(--text-dim);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.cmp-safe{fill:var(--green);opacity:.08}.cmp-safelbl{fill:var(--green);font-size:11px}.cmp-cliff{stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:4 4}.cmp-clifflbl{fill:var(--accent);font-size:11px;font-weight:700}.cmp-soft{fill:none;stroke:var(--text-dim);stroke-width:2px;stroke-dasharray:6 5}.cmp-jevil{fill:none;stroke:var(--accent);stroke-width:3px;filter:drop-shadow(0 0 6px #e8413a66)}.cmp-legend{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:12px;font-size:12.5px;display:flex}.cmp-key{color:var(--text);align-items:center;gap:8px;display:inline-flex}.cmp-key:before{content:"";border-top:3px solid var(--text-dim);width:22px}.cmp-key-soft:before{border-top-style:dashed}.cmp-key-jevil:before{border-top-color:var(--accent)}.cmp-note{color:var(--text-dim);flex-basis:100%;font-size:11.5px}.verdict{letter-spacing:.02em;border-radius:10px;margin-bottom:16px;padding:14px 16px;font-family:Fraunces,serif;font-size:22px;font-weight:900}.verdict.exact{color:var(--accent);border:1px solid var(--accent);background:#e8413a1f}.verdict.bad{color:var(--warn);background:var(--bg-inset);border:1px solid var(--warn)}.verdict.escaped{color:var(--gold);border:1px solid var(--gold);background:#e2b13c1f}.escape-note{color:var(--text);max-width:66ch;margin:0 0 12px}.malicious-line{color:var(--text);border-left:2px solid var(--gold);padding-left:14px}.coeff-table .more-row td{text-align:center;color:var(--text-dim);font-style:italic}.cliff-svg .plot-note{fill:var(--text-dim);font-family:Space Mono,monospace;font-size:13px}.table-scroll{overflow-x:auto}.coeff-table{border-collapse:collapse;width:100%;font-size:12.5px}.coeff-table thead th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);padding:6px 10px;font-size:10.5px;font-weight:400}.coeff-table td,.coeff-table tbody th{border-bottom:1px solid var(--border);padding:5px 10px}.coeff-table .idx{color:var(--text-dim);text-align:left;font-weight:400}.coeff-table .mono{color:var(--text-strong);font-size:12px}.coeff-table .cmp{text-align:center;font-weight:700}.coeff-table tr.match .cmp{color:var(--green)}.coeff-table tr.mismatch .cmp{color:var(--accent)}.ledger-out{flex-direction:column;gap:12px;display:flex}.led-group{background:var(--bg-inset);border:1px solid var(--border);border-radius:10px;padding:12px 14px}.led-group.ood-group{border-color:var(--gold);box-shadow:inset 0 0 0 1px #e2b13c40}.led-tag{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:8px;font-size:11px}.led-points{flex-wrap:wrap;gap:8px;display:flex}.led-pt{background:var(--bg-panel);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:4px 8px;font-size:12px}.led-pt.ood-pt{border-color:var(--gold);color:var(--gold)}.led-pt.dup{color:var(--text-dim);text-decoration:line-through}.muted{color:var(--text-dim)}.export-row{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.export-hint{color:var(--text-dim);max-width:64ch;margin:10px 0 0;font-size:12.5px}.export-ok strong{color:var(--green)}.export-bad strong{color:var(--gold)}.prose{max-width:68ch;margin-top:44px}.prose h2{border-bottom:1px solid var(--border);margin-bottom:18px;padding-bottom:10px;font-size:28px}.prose ul{padding-left:20px}.prose li{margin-bottom:8px}.claim{border-left:2px solid var(--gold);color:var(--text);padding-left:14px}.callout-real{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:22px 26px}.glossary{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px}.glossary>summary{cursor:pointer;color:var(--text-strong);padding:18px 24px;font-family:Fraunces,serif;font-size:20px}.glossary[open]>summary{border-bottom:1px solid var(--border)}.glossary dl{margin:0;padding:6px 24px 20px}.glossary dt{color:var(--text-strong);margin-top:16px;font-weight:700}.glossary dd{color:var(--text-dim);margin:4px 0 0}.callout-real h2{border:none;margin-bottom:10px;padding:0;font-size:22px}.related-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.related-card{background:var(--bg-panel);border:1px solid var(--border);color:var(--text);border-radius:10px;flex-direction:column;gap:4px;padding:16px;display:flex}.related-card:hover{border-color:var(--accent)}.related-card strong{color:var(--text-strong);font-family:Fraunces,serif;font-size:17px}.related-card span{color:var(--text-dim);font-size:12.5px}.scripture-footer{text-align:center;border-top:1px solid var(--border);color:var(--text-dim);margin-top:2rem;padding:2rem 1rem;font-size:.85rem}.scripture-footer p{color:var(--text-dim);max-width:52ch;margin:16px auto 0;font-family:Fraunces,serif;font-style:italic}.hidden{display:none!important}.shake{animation:.5s cubic-bezier(.36,.07,.19,.97) both shake}@keyframes shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-4px)}40%,60%{transform:translate(4px)}}:where(a,button,select,input,summary,[tabindex],.table-scroll):focus-visible{outline:2px solid var(--text-strong);outline-offset:2px}:where(a,button,select,input,summary,[tabindex]):focus:not(:focus-visible),#main-content:focus{outline:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--text-strong);color:var(--bg);border-bottom:none;border-radius:8px;padding:12px 18px;font-weight:700;transition:top .15s;position:fixed;top:-100px;left:12px}.skip-link:focus{top:12px}.btn,select,input[type=text],.theme-toggle{min-height:44px}.table-scroll{-webkit-overflow-scrolling:touch}.coeff-table .mono{overflow-wrap:anywhere}.plot-figure{margin:0}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=560px){#app{padding:0 16px 64px}.hero{padding:56px 0 32px}.panel{padding:20px 16px 22px}.callout-real{padding:20px 18px}.controls{flex-direction:column;align-items:stretch}.controls label,.controls .btn,.ctrl-msg input{width:100%}.title{font-size:22vw}.meter-labels,.led-points{font-size:11px}}
