:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-body:"Public Sans", "Helvetica Neue", Helvetica, sans-serif;--font-mono:"IBM Plex Mono", "Courier New", monospace;--bg:#0b1328;--bg-soft:#152042;--paper:#f5f3ea;--text:#f8fafc;--muted:#a4b3cc;--warn:#f0b33c;--danger:#f06050;--ok:#31d48f;--line:#2a3a67;--card:#12203fdd}html[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f4ec;--bg-soft:#ebe7db;--paper:#121d39;--text:#12213f;--muted:#4a5e7e;--warn:#a05b00;--danger:#b92317;--ok:#0b7a45;--line:#bfc8dd;--card:#ffffffd6}*,:before,:after{box-sizing:border-box}html{background-color:var(--bg)}body{font-family:var(--font-body);color:var(--text);background-color:var(--bg);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-wrap:break-word;margin:0;line-height:1.55}#main-content{scroll-margin-top:4.5rem}a{color:var(--paper);-webkit-text-decoration-color:var(--warn);text-decoration-color:var(--warn)}a:hover,a:focus-visible{color:var(--warn)}.skip-link{background-color:var(--warn);color:#000;font:700 .85rem var(--font-mono);z-index:1000;border-radius:0 0 .4rem .4rem;padding:.4rem .8rem;text-decoration:none;position:absolute;top:-999px;left:.5rem}.skip-link:focus{top:0}.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}#app{max-width:1500px;min-height:100svh;margin:0 auto;padding:.75rem;position:relative}.page-bg{background:radial-gradient(circle at 8% 5%, #f0b33c26, transparent 38%), radial-gradient(circle at 90% 8%, #ec4f3c17, transparent 44%), linear-gradient(160deg, var(--bg) 0%, var(--bg-soft) 100%);z-index:-1;position:fixed;inset:0}.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;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;margin:.4rem 0 0;font-size:clamp(.9rem,1.6vw,1.05rem)}.cl-hero-desc{color:var(--muted);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(--warn) 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;font-size:.68rem;font-weight:700;display:block}.cl-hero-why-text{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);color:var(--text);background-color:var(--card);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;width:2.6rem;height:2.6rem;font-size:1.15rem;display:inline-flex}.theme-toggle:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--warn);outline-offset:2px}.panel-grid{grid-template-columns:1fr;gap:.75rem;display:grid}.panel{border:1px solid var(--line);background-color:var(--card);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:.8rem;padding:.85rem;overflow:hidden}.panel-title{font:700 .85rem/1.2 var(--font-mono);letter-spacing:.1em;color:var(--warn);margin:0 0 .55rem}.contract-block{border:1px dashed var(--line);color:var(--paper);font:.76rem/1.55 var(--font-mono);white-space:pre-wrap;word-break:break-word;background-color:#070c1a80;margin:0;padding:.7rem;overflow-x:auto}html[data-theme=light] .contract-block,html[data-theme=light] .state-cell,html[data-theme=light] .toy-grid span{background-color:#121d390f}html[data-theme=light] .scenario-tabs button{background-color:#121d390a}html[data-theme=light] button{background-color:#121d390f}html[data-theme=light] .model-table th{background-color:#121d3914}html[data-theme=light] .page-bg{background:radial-gradient(circle at 8% 5%, #a05b0014, transparent 38%), radial-gradient(circle at 90% 8%, #b923170d, transparent 44%), linear-gradient(160deg, var(--bg) 0%, var(--bg-soft) 100%)}h3{color:var(--paper);margin:.8rem 0 .3rem;font-size:.9rem}.glossary{border:1px solid var(--line);background-color:#f0b33c0f;border-radius:.5rem;margin:0 0 .7rem}html[data-theme=light] .glossary{background-color:#a05b000f}.glossary>summary{cursor:pointer;font:700 .8rem var(--font-mono);color:var(--warn);align-items:center;min-height:2.5rem;padding:.5rem .65rem;display:flex}.glossary>summary:focus-visible{outline:3px solid var(--warn);outline-offset:2px}.gloss-hint{color:var(--muted);margin-left:.35rem;font-weight:400}.gloss-list{margin:0;padding:0 .75rem .6rem;font-size:.8rem}.gloss-list dt{color:var(--paper);font:700 .8rem var(--font-mono);margin-top:.5rem}.gloss-list dd{color:var(--muted);margin:.1rem 0 0}.gloss-list dd em{color:var(--text);font-style:normal;font-weight:600}.state-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;display:grid}.state-cell,.toy-grid span{border:1px solid var(--line);text-align:center;font:.72rem var(--font-mono);background-color:#080f1f8c;border-radius:.4rem;padding:.3rem}.state-cell.key-carry,.toy-grid .key-carry{border-color:var(--danger);color:#ffd8d1}html[data-theme=light] .state-cell.key-carry,html[data-theme=light] .toy-grid .key-carry{color:#a01207}.state-cell.pulse{animation:.8s pulse}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.04);box-shadow:0 0 .7rem #f0b33c66}to{transform:scale(1)}}.state-cell.update-src{border-color:var(--warn);background-color:#f0b33c29;font-weight:700}.state-cell.update-dst{border-color:var(--ok);background-color:#31d48f29;font-weight:700}html[data-theme=light] .state-cell.update-src{background-color:#a05b001f}html[data-theme=light] .state-cell.update-dst{background-color:#0b7a451f}.state-note,.tiny{color:var(--muted);font-size:.78rem}.state-note-live{margin-top:.25rem;display:block}.state-note strong{color:var(--paper)}.state-caption{color:var(--text);border-left:3px solid var(--warn);background-color:#f0b33c0f;border-radius:0 .3rem .3rem 0;min-height:1.2rem;margin:.35rem 0 0;padding:.3rem .5rem;font-size:.78rem}html[data-theme=light] .state-caption{background-color:#a05b000f}.toy-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;display:grid}.model-table{border-collapse:collapse;border:1px solid var(--line);table-layout:fixed;word-wrap:break-word;border-radius:.5rem;width:100%;font-size:.78rem;overflow:hidden}.model-table th,.model-table td{border-bottom:1px solid var(--line);text-align:left;padding:.4rem .5rem}.model-table th{font:700 .74rem var(--font-mono);color:var(--paper);background-color:#101d3d99}.ok-text{color:var(--ok)}.danger-text{color:var(--danger)}.gap-wrap{margin:.9rem 0}.gap-title{font:700 .76rem var(--font-mono);color:var(--paper);margin:0 0 .5rem}.magbars{flex-direction:column;gap:.4rem;display:flex}.magbar-row{align-items:center;gap:.5rem;display:flex}.magbar-name{font:.72rem var(--font-mono);color:var(--muted);flex:0 0 5.5rem}.magbar-track{border:1px solid var(--line);background-color:#080f1f66;border-radius:.3rem;flex:auto;overflow:hidden}html[data-theme=light] .magbar-track{background-color:#121d390d}.magbar-fill{border-radius:.3rem 0 0 .3rem;justify-content:flex-end;align-items:center;min-height:1.5rem;padding:0 .5rem;display:flex}.magbar-claim{background-color:#31d48f47}.magbar-attack{background-color:#f04f3c52}html[data-theme=light] .magbar-claim{background-color:#0b7a4538}html[data-theme=light] .magbar-attack{background-color:#b9231733}.magbar-val{font:700 .74rem var(--font-mono);color:var(--text)}.gap-quant{margin:.55rem 0 0}.gap-quant strong{color:var(--danger)}.scenario-tabs{flex-wrap:wrap;gap:.3rem;margin-top:1.4rem;display:flex}.scenario-tabs button{border:1px solid var(--line);color:var(--text);cursor:pointer;background-color:#0a132780;border-radius:.4rem;min-height:2.75rem;padding:.5rem .75rem;font-size:.78rem}.scenario-tabs button.active{border-color:var(--warn);background-color:#f0b33c1f}.scenario-card{border-left:4px solid var(--line);margin-top:.55rem;padding:.55rem .65rem;font-size:.8rem}.scenario-card.ok{border-left-color:var(--ok)}.scenario-card.warn{border-left-color:var(--warn)}.bridge-lede,.mech-lede{margin:0 0 .7rem;font-size:.86rem}.mech-lede .mono,.oc-guess,.kv-label .mono,.kv-byte{font-family:var(--font-mono)}.oracle-compare{grid-template-columns:1fr;gap:.6rem;display:grid}@media (width>=560px){.oracle-compare{grid-template-columns:1fr 1fr}}.oc-side{border:1px solid var(--line);border-radius:.5rem;padding:.6rem}.oc-standard{border-left:4px solid var(--muted)}.oc-extended{border-left:4px solid var(--warn)}.oc-h{font:700 .78rem var(--font-mono);color:var(--paper);margin:0 0 .35rem}.oc-demo{flex-direction:column;gap:.35rem;margin-top:.5rem;display:flex}.oc-guess{border:1px dashed var(--line);color:var(--text);border-radius:.35rem;padding:.35rem .5rem;font-size:.76rem}.oc-verdict{font:700 .76rem var(--font-mono);border:1px solid var(--line);border-radius:.35rem;padding:.35rem .5rem}.oc-unknown,.oc-pending{color:var(--muted)}.oc-accept{color:var(--ok);border-color:var(--ok);background-color:#31d48f1a}.oc-reject{color:var(--danger);border-color:var(--danger);background-color:#f04f3c1a}.oc-btn{margin-top:.55rem}.oc-caption{margin:.7rem 0 0}.leak-explainer{border:1px solid var(--line);border-left:4px solid var(--warn);background-color:#f0b33c0d;border-radius:.5rem;margin:0 0 .8rem;padding:.7rem}html[data-theme=light] .leak-explainer{background-color:#a05b000d}.leak-h{font:700 .85rem var(--font-mono);color:var(--warn);margin:0 0 .35rem}.leak-lede{margin:0 0 .6rem;font-size:.84rem}.leak-lede .mono,.leak-label .mono{font-family:var(--font-mono)}.leak-rows{flex-direction:column;gap:.45rem;display:flex}.leak-row{flex-direction:column;gap:.2rem;display:flex}.leak-label{color:var(--muted);font-size:.74rem}.leak-bytes{flex-wrap:wrap;gap:.2rem;display:flex}.leak-byte{text-align:center;border:1px solid var(--line);min-width:1.55rem;font:.72rem var(--font-mono);color:var(--text);background-color:#080f1f66;border-radius:.25rem;padding:.2rem .15rem}html[data-theme=light] .leak-byte{background-color:#121d390d}.leak-byte.leak-zero{color:var(--muted)}.leak-byte.leak-derived{border-color:var(--ok);border-width:2px;font-weight:700}.leak-foot{margin:.6rem 0 0}.leak-foot em{color:var(--text);font-style:normal;font-weight:600}.method-contrast{border:1px solid var(--line);background-color:#060c1c59;border-radius:.5rem;margin:0 0 .8rem;padding:.7rem}html[data-theme=light] .method-contrast{background-color:#121d390a}.mc-h{font:700 .85rem var(--font-mono);color:var(--warn);margin:0 0 .5rem}.mc-cols{grid-template-columns:1fr;gap:.5rem;display:grid}@media (width>=560px){.mc-cols{grid-template-columns:1fr 1fr}}.mc-col{border:1px solid var(--line);border-radius:.45rem;padding:.55rem .6rem .6rem}.mc-browser{border-left:4px solid var(--ok)}.mc-paper{border-left:4px solid var(--danger)}.mc-tag{font:700 .68rem var(--font-mono);letter-spacing:.06em;margin-bottom:.35rem;display:block}.mc-browser .mc-tag{color:var(--ok)}.mc-paper .mc-tag{color:var(--danger)}.mc-col ul{margin:0;padding-left:1.1rem}.mc-col li{margin:.25rem 0;font-size:.78rem}.mc-col li strong{color:var(--paper)}.mc-col .mono{font-family:var(--font-mono)}.mc-foot{margin:.6rem 0 0}.mc-foot strong{color:var(--warn)}.mc-foot em{color:var(--text);font-style:normal;font-weight:600}.keystream-viz{border:1px solid var(--line);background-color:#060c1c66;border-radius:.5rem;margin:0 0 .7rem;padding:.6rem}html[data-theme=light] .keystream-viz{background-color:#121d390a}.kv-row{flex-direction:column;gap:.25rem;margin-bottom:.5rem;display:flex}.kv-label{color:var(--muted);font-size:.74rem}.kv-bytes{flex-wrap:wrap;gap:.2rem;display:flex}.kv-byte{text-align:center;border:1px solid var(--line);min-width:1.55rem;color:var(--text);background-color:#080f1f66;border-radius:.25rem;padding:.2rem .15rem;font-size:.72rem}html[data-theme=light] .kv-byte{background-color:#121d390d}.kv-byte.kv-observed{border-color:var(--warn);color:var(--text);border-width:2px;font-weight:700}.kv-byte.kv-match{border-color:var(--ok);color:var(--text);background-color:#31d48f0f;border-width:2px}.kv-byte.kv-match:before{content:"✓";color:var(--ok);font-size:.62rem;line-height:.75;display:block}.kv-byte.kv-miss{border-color:var(--danger);color:var(--text);background-color:#f04f3c0d;border-width:2px}.kv-byte.kv-miss:before{content:"✗";color:var(--danger);font-size:.62rem;line-height:.75;display:block}.kv-status{color:var(--muted);margin:.35rem 0 0;font-size:.78rem}.kv-status-miss{color:var(--danger)}.kv-status-match{color:var(--ok);font-weight:700}.actions{flex-wrap:wrap;gap:.4rem;display:flex}button{border:1px solid var(--line);color:var(--text);min-height:2.75rem;font:.8rem var(--font-mono);cursor:pointer;background-color:#07112680;border-radius:.4rem;padding:.5rem .75rem;transition:background-color .15s,border-color .15s}button:hover:not(:disabled){border-color:var(--warn);background-color:#f0b33c1a}button:active:not(:disabled){background-color:#f0b33c33}button:disabled{opacity:.4;cursor:not-allowed}.attack-log{border:1px solid var(--line);max-height:24rem;font:.74rem/1.5 var(--font-mono);background-color:#060c1c8c;border-radius:.45rem;margin-top:.5rem;padding:.55rem;overflow:auto}html[data-theme=light] .attack-log{background-color:#121d390a}.attack-log p{margin:0 0 .35rem}.attack-log .phase-header{color:var(--warn);margin-top:.5rem;font-weight:700}.attack-log .result-header{color:var(--danger);margin-top:.8rem;font-size:.82rem}.complexity-badge{color:var(--warn);font-size:.72rem}.attack-log .log-note{color:var(--muted);border-left:2px solid var(--line);margin-top:.4rem;padding-left:.5rem;font-size:.74rem;font-style:italic}.attack-log:focus-visible{outline:3px solid var(--warn);outline-offset:2px}.disclaimer{border:1px solid var(--warn);background-color:#f0b33c14;border-radius:.45rem;margin-top:.6rem;padding:.6rem;font-size:.78rem}.disclaimer strong{color:var(--warn)}.forge-result{border:1px solid var(--line);border-radius:.5rem;margin-top:.6rem;padding:.65rem}.fr-h{font:700 .82rem var(--font-mono);color:var(--warn);margin:0 0 .5rem}.fr-cards{grid-template-columns:1fr;gap:.5rem;display:grid}@media (width>=560px){.fr-cards{grid-template-columns:1fr 1fr}}.fr-card{border:1px solid var(--line);border-radius:.45rem;padding:.55rem;font-size:.78rem}.fr-card p{margin:.35rem 0 0}.fr-accept{border-left:4px solid var(--ok);background-color:#31d48f14}.fr-reject{border-left:4px solid var(--danger);background-color:#f04f3c12}.fr-badge{font:700 .76rem var(--font-mono);letter-spacing:.05em}.fr-accept .fr-badge{color:var(--ok)}.fr-reject .fr-badge{color:var(--danger)}.fr-note{margin:.55rem 0 0}.hidden{display:none}.timeline{border-left:2px solid var(--line);gap:.65rem;padding-left:.6rem;font-size:.8rem;display:grid}.tl-entry{flex-direction:column;gap:.15rem;display:flex}.tl-entry b{color:var(--warn)}.tl-entry a{font-size:.76rem}.verdict-grid{gap:.65rem;margin-top:.75rem;display:grid}.verdict-h{font:700 .73rem var(--font-mono);letter-spacing:.05em;color:var(--paper);margin:0 0 .3rem}.verdict-grid p{margin:.15rem 0;font-size:.8rem}blockquote.lesson{border-left:4px solid var(--warn);margin:1rem 0 0;padding:.6rem .7rem;font-size:.88rem}blockquote.lesson p{margin:.2rem 0}footer{border-top:1px solid var(--line);color:var(--muted);text-align:center;margin:.8rem 0 .3rem;padding-top:.7rem;font-size:.82rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.state-cell.pulse{animation:none}}@media (width<=600px){.contract-block,.attack-log{font-size:.8rem}.complexity-badge{font-size:.74rem}.model-table{font-size:.82rem}.model-table th{font-size:.78rem}.scenario-card{font-size:.85rem}.state-cell,.toy-grid span{font-size:.78rem}.tiny,.state-note{font-size:.82rem}.model-table th,.model-table td{padding:.45rem .55rem}.actions button{flex:100%}}@media (width<=479px){.model-table th:nth-child(2){border-top:2px solid var(--warn)}.gap-bar .mark{font-size:.68rem}.attack-log{max-height:16rem}}@media (width>=768px){#app{padding:1rem}.panel-grid,.verdict-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1440px){#app{padding:1.5rem 2rem}.panel-grid{gap:1.1rem}.panel{padding:1.1rem}}
