:root{--bg0:#06090f;--bg1:#0f1621;--bg2:#131d2d;--ink0:#eef4ff;--ink1:#b9c8df;--ink2:#8da3c3;--line:#2f3f58;--accent:#4de6b2;--accent-soft:#4de6b229;--warn:#ffd36a;--danger:#ff8b84;--ok:#5dfc95;--shadow:0 12px 35px #00000059;--sans:"Space Grotesk", "Avenir Next", "Segoe UI", sans-serif;--mono:"JetBrains Mono", "SFMono-Regular", Menlo, monospace;--serif:"Libre Baskerville", Georgia, serif}html[data-theme=light]{--bg0:#f3f8ff;--bg1:#e8f0fa;--bg2:#dce7f4;--ink0:#0f1621;--ink1:#22324a;--ink2:#4a5f80;--line:#9fb2cb;--accent:#0a7253;--accent-soft:#0a725329;--warn:#8a5a00;--danger:#9c2f2a;--ok:#0d7f3a;--shadow:0 8px 28px #0f162124}*{box-sizing:border-box}.skip-link{z-index:1000;background:var(--accent);color:#062117;border-radius:8px;padding:.6rem 1.1rem;font-weight:700;text-decoration:none;position:absolute;top:-100%;left:1rem}.skip-link:focus{top:1rem}.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}html,body{min-height:100%;margin:0}body{color:var(--ink1);font:16px/1.5 var(--sans);background:radial-gradient(circle at 15% 12%, #4de6b229, transparent 28%), radial-gradient(circle at 88% 8%, #ffd36a21, transparent 30%), linear-gradient(160deg, var(--bg0), var(--bg1) 45%, var(--bg2))}code{font:12px/1.4 var(--mono);color:var(--ink0);border:1px solid var(--line);word-break:break-all;background:#0d1521b8;border-radius:6px;padding:.15rem .35rem}.shell{gap:1.1rem;width:min(1200px,100% - 2.5rem);margin:2rem auto 3rem;animation:.46s fade-in;display:grid}.cl-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:clamp(1rem,4vw,3rem);margin:clamp(1rem,3vw,2rem) 0 1.5rem;display:flex}.cl-hero-main{flex:22rem;min-width:min(100%,20rem)}.cl-hero-title{letter-spacing:.01em;color:var(--ink0);margin:0;font-size:clamp(1.6rem,3.8vw,2.7rem);font-weight:700;line-height:1.1}.cl-hero-sub{letter-spacing:.01em;opacity:.85;color:var(--ink1);margin:.4rem 0 0;font-size:clamp(.9rem,1.6vw,1.05rem)}.cl-hero-desc{color:var(--ink1);max-width:60ch;margin:.55rem 0 0;font-size:1rem;line-height:1.5}.cl-hero-why{border:1px solid var(--line);background:color-mix(in oklab,var(--accent) 6%,transparent);border-radius:10px;flex:0 min(40%,26rem);min-width:min(100%,15rem);padding:.85rem 1.05rem}.cl-hero-why-label{letter-spacing:.14em;color:var(--accent);font-size:.68rem;font-weight:700;display:block}.cl-hero-why-text{color:var(--ink0);margin:.35rem 0 0;font-size:.95rem;line-height:1.5}@media (width<=640px){.cl-hero{flex-direction:column}.cl-hero-why{flex-basis:auto;width:100%}}.theme-toggle{border:1px solid var(--line);background:var(--bg2);width:2.6rem;min-width:2.6rem;height:2.6rem;min-height:2.6rem;color:var(--ink0);border-radius:50%;place-items:center;padding:0;font-size:1.1rem;line-height:1;display:inline-grid;position:absolute;top:.9rem;right:.9rem}.theme-toggle:hover{border-color:var(--accent);background:var(--accent-soft)}html[data-theme=light] body{background:linear-gradient(160deg, var(--bg0), var(--bg1) 45%, var(--bg2))}html[data-theme=light] code{background:var(--bg2)}html[data-theme=light] .tab,html[data-theme=light] .pill,html[data-theme=light] button{background:var(--bg1)}html[data-theme=light] .card{background:var(--bg0)}html[data-theme=light] .step{background:var(--bg1)}html[data-theme=light] .step.current,html[data-theme=light] .step.done{color:var(--ink0)}html[data-theme=light] textarea{background:var(--bg0)}html[data-theme=light] .match.ok{border-color:var(--ok);color:var(--ink0);background:#0d7f3a1f}html[data-theme=light] .match.bad{border-color:var(--danger);color:var(--ink0);background:#9c2f2a1f}html[data-theme=light] .ok-text{color:var(--ok)}html[data-theme=light] .bad-text{color:var(--danger)}html[data-theme=light] .cell{background:linear-gradient(180deg, rgba(15, 139, 102, calc(var(--intensity) * .006)), var(--bg1))}html[data-theme=light] .ntt-butterfly,html[data-theme=light] .kem-actor,html[data-theme=light] .secret-compare,html[data-theme=light] .b-cell,html[data-theme=light] .ntt-butterfly-walk,html[data-theme=light] .glossary details{background:var(--bg1)}html[data-theme=light] .intro-card{background:color-mix(in oklab, var(--accent) 6%, var(--bg0))}html[data-theme=light] blockquote{color:var(--ink0);background:var(--accent-soft)}html[data-theme=light] .tab.active,html[data-theme=light] .pill.active{background:var(--accent);color:#fff}.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:var(--accent);margin:0;font-size:12px}h1,h2,h3{color:var(--ink0);margin:0 0 .6rem;font-weight:700}h1{margin-top:.55rem;font-size:clamp(1.6rem,2.8vw,2.8rem);line-height:1.1}h2{font-size:clamp(1.1rem,1.8vw,1.6rem)}h3{font-size:1.1rem}.subhead{color:var(--ink1);margin:0}.tabs{flex-wrap:wrap;gap:.45rem;padding:.25rem;display:flex}.tab,.pill,button{border:1px solid var(--line);color:var(--ink1);font:600 .9rem var(--sans);cursor:pointer;background:#0e1622e0;border-radius:999px;padding:.52rem .95rem;transition:transform .12s,border-color .12s,background .12s}button:hover,.tab:hover,.pill:hover{border-color:var(--accent);transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible,.tab:focus-visible,.pill:focus-visible,textarea:focus-visible,.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tab.active,.pill.active{color:#062117;background:linear-gradient(145deg, var(--accent), #89ffd8);border-color:#0000}.panel{gap:.95rem;display:none}.panel.visible{animation:.28s slide-in;display:grid}.card{border:1px solid var(--line);box-shadow:var(--shadow);background:#0c141fe0;border-radius:16px;padding:1rem 1.1rem}.grid-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.grid-three{grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.clickable{cursor:pointer}.clickable:hover{border-color:var(--accent)}.pill-row,.controls{flex-wrap:wrap;gap:.5rem;display:flex}.stepper{gap:.55rem;margin-bottom:.7rem;display:grid}.step{border:1px solid var(--line);background:#080e1899;border-radius:10px;padding:.5rem .7rem}.step.current{border-color:var(--warn);color:#ffe8b0}.step.done{border-color:var(--ok);color:#c8ffd9}.status{margin:.25rem 0 .7rem}.muted{color:var(--ink2);font-size:.85rem}.sizes{flex-wrap:wrap;gap:.55rem;display:flex}.sizes span{border:1px dashed var(--line);border-radius:10px;padding:.25rem .5rem;font-size:.85rem}.match{text-align:center;border-radius:10px;margin-top:.8rem;padding:.7rem;font-weight:700}.match.ok{color:#b6ffcb;background:#5dfc9526;border:1px solid #5dfc9580}.match.bad{color:#ffd1cd;background:#ff8b8426;border:1px solid #ff8b8473}textarea{border:1px solid var(--line);width:100%;font:.95rem/1.45 var(--mono);color:var(--ink0);resize:vertical;background:#040a12e6;border-radius:12px;margin:.5rem 0 .8rem;padding:.7rem}.ok-text{color:#c0ffd7}.bad-text{color:#ffc7c1}.matrix{gap:.35rem;margin:.6rem 0 .8rem;display:grid}.matrix-row{gap:.32rem;display:flex}.cell{background:linear-gradient(180deg, rgba(77, 230, 178, calc(var(--intensity) * .006)), #0c141ff2);width:2rem;height:2rem;font:700 .82rem var(--mono);color:var(--ink0);border:1px solid #8da3c33d;border-radius:8px;place-items:center;display:grid}.bar{height:10px;width:var(--w);background:linear-gradient(90deg,#45a4ff,#4de6b2);border-radius:99px;margin-top:.6rem}.ntt-result-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:.8rem 0;display:grid}.ntt-butterflies{margin-top:.5rem}.ntt-layer{flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.35rem;display:flex}.ntt-layer-label{font:600 .78rem var(--sans);color:var(--accent);min-width:4.5rem}.ntt-butterfly{border:1px solid var(--line);font:700 .75rem var(--mono);color:var(--ink0);cursor:default;background:linear-gradient(#4de6b214,#0c141ff2);border-radius:8px;place-items:center;padding:.2rem .45rem;display:inline-grid}.ntt-butterfly:hover{border-color:var(--accent)}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid #8da3c33d;padding:.45rem}th{color:var(--ink0)}blockquote{border-left:3px solid var(--accent);color:#d3ffe9;font-family:var(--serif);background:#0b171373;margin:.9rem 0;padding:.65rem .85rem}.intro-card{border-color:color-mix(in oklab, var(--accent) 45%, var(--line));background:color-mix(in oklab, var(--accent) 5%, #0c141fe6)}.intro-lead{color:var(--ink0);font-size:1.05rem}.intro-note{color:var(--ink1)}abbr[title]{text-underline-offset:2px;cursor:help;text-decoration-line:underline;text-decoration-style:dotted}.kem-flow{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:.8rem;margin-top:.9rem;display:grid}.kem-actor{border:1px solid var(--line);text-align:center;background:#080e188c;border-radius:12px;align-content:start;gap:.3rem;padding:.7rem;display:grid}.kem-name{color:var(--ink0);font-weight:700}.kem-op{font:.85rem var(--mono);color:var(--ink1)}.kem-artifact.secret{border:1px solid var(--accent);font:700 .8rem var(--mono);color:var(--ink0);background:var(--accent-soft);border-radius:8px;padding:.25rem .4rem}.kem-wire{text-align:center;align-content:center;gap:.25rem;padding:0 .4rem;display:grid}.kem-wire-label{letter-spacing:.08em;text-transform:uppercase;color:var(--warn);font-size:.7rem}.kem-wire-cargo{font:700 .9rem var(--mono);color:var(--ink0);border-top:2px dashed var(--line);border-bottom:2px dashed var(--line);padding:.3rem 0}.kem-wire-eaves{color:var(--ink2);font-size:.72rem}@media (width<=640px){.kem-flow{grid-template-columns:1fr}}.secret-compare{border:1px solid var(--line);background:#080e1880;border-radius:12px;margin-top:.4rem;padding:.8rem}.secret-compare.match-ok{border-color:var(--ok)}.secret-compare.match-bad{border-color:var(--danger)}.ss-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.4rem;display:flex}.ss-who{min-width:6.5rem;color:var(--ink0);font-weight:700}.ss-bytes{flex-wrap:wrap;gap:.2rem;display:flex}.ss-byte{font:700 .72rem var(--mono);border:1px solid var(--line);color:var(--ink0);border-radius:5px;padding:.15rem .28rem}.ss-byte.eq{border-color:var(--ok);background:color-mix(in oklab, var(--ok) 22%, transparent);animation:.52s byte-pulse}.ss-byte.ne{border-color:var(--danger);background:color-mix(in oklab, var(--danger) 22%, transparent)}.ss-verdict{color:var(--ink0);margin:.5rem 0 .2rem;font-weight:700}.ss-caption{color:var(--accent);margin:.2rem 0 0;font-style:italic}@keyframes byte-pulse{0%{opacity:.4;transform:scale(.8)}60%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.vec-line{margin:.2rem 0 .6rem}.noise-vec{flex-wrap:wrap;gap:.35rem;margin-bottom:.4rem;display:inline-flex}.noise-cell{text-align:center;min-width:2rem;font:700 .85rem var(--mono);border:1px solid var(--line);color:var(--ink0);border-radius:8px;padding:.3rem .4rem}.noise-cell.pos{border-color:var(--accent);background:color-mix(in oklab, var(--accent) 26%, transparent)}.noise-cell.neg{border-color:var(--warn);background:color-mix(in oklab, var(--warn) 26%, transparent)}.noise-cell.zero{color:var(--ink2);border-style:dashed}.b-compare{gap:.5rem;margin:.4rem 0 .5rem;display:grid}.b-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.b-label{min-width:13rem;color:var(--ink1);font-size:.9rem}.b-label em{color:var(--ink2);font-style:italic}.b-cells{flex-wrap:wrap;gap:.3rem;display:flex}.b-cell{text-align:center;min-width:2rem;font:700 .85rem var(--mono);border:1px solid var(--line);color:var(--ink0);background:#080e1880;border-radius:8px;padding:.3rem .4rem}.b-cell.changed{border-color:var(--warn);background:color-mix(in oklab, var(--warn) 26%, transparent)}.solve-result{border:1px solid var(--line);color:var(--ink0);border-radius:10px;margin-top:.6rem;padding:.7rem .85rem}.solve-result.ok{border-color:var(--ok);background:color-mix(in oklab, var(--ok) 14%, transparent)}.solve-result.bad{border-color:var(--danger);background:color-mix(in oklab, var(--danger) 14%, transparent)}.ntt-butterfly-walk{border:1px solid var(--line);background:#080e1866;border-radius:12px;margin:.8rem 0;padding:.8rem}.bf-diagram{margin:.4rem 0}.bf-diagram svg{max-width:520px}.bf-edge{stroke:var(--ink2);stroke-width:2px}.bf-edge-tw{stroke:var(--accent);stroke-dasharray:5 4}.bf-node{stroke:var(--line);stroke-width:1.5px}.bf-node.in{fill:var(--ink2)}.bf-node.out{fill:var(--accent)}.bf-txt{fill:var(--ink0);font:700 11px var(--mono)}.bf-txt.tw{fill:var(--accent)}.bf-caption{color:var(--ink1);margin:.3rem 0 0;font-size:.88rem}.bf-progress{color:var(--ink1);align-self:center;font-size:.85rem}.honesty-note{border-left:3px solid var(--warn);background:color-mix(in oklab, var(--warn) 8%, transparent);color:var(--ink0);margin-top:.6rem;padding:.5rem .7rem;font-size:.9rem}.step-head{display:block}.step details,.glossary details{margin-top:.4rem}.step summary,.glossary summary{cursor:pointer;color:var(--accent);font-size:.85rem;font-weight:600}.step details p,.glossary details p{color:var(--ink1);margin:.4rem 0 0;font-size:.92rem}.glossary{gap:.5rem;margin:.4rem 0 .6rem;display:grid}.glossary details{border:1px solid var(--line);background:#080e1873;border-radius:10px;padding:.55rem .75rem}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;transform:translate(5px)}to{opacity:1;transform:translate(0)}}@media (width<=900px){.shell{width:min(1200px,100% - 1rem);padding:0 env(safe-area-inset-right,0) 0 env(safe-area-inset-left,0);margin:.7rem auto 2.1rem}.grid-two,.grid-three,.ntt-result-grid{grid-template-columns:1fr}.tabs{grid-template-columns:1fr 1fr;display:grid}.tab{text-align:center}table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.cell{width:1.6rem;height:1.6rem;font-size:.7rem}code{overflow-wrap:break-word;max-width:100%;font-size:11px}.cl-hero{padding:1rem}.card{padding:.8rem}}@media (width<=480px){.shell{width:calc(100% - .5rem);margin:.4rem auto 1.2rem}.tabs{grid-template-columns:1fr}.tab,.pill,button{padding:.6rem .8rem;font-size:.82rem}h1{font-size:1.4rem}.controls{flex-direction:column}.controls button{width:100%}.sizes{flex-direction:column}}@media (pointer:coarse){.tab,.pill,button{min-width:44px;min-height:44px}}.site-footer{text-align:center;font-family:var(--serif);color:var(--ink2);margin-top:2rem;padding:1.5rem;font-size:.85rem;font-style:italic}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
