:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a1421;--bg-alt:#102138;--panel:#132a45;--text:#f2f6fb;--muted:#c6d4e8;--accent:#19c37d;--warn:#ffd166;--bad:#ff6b6b;--bad-ink:#f99;--line:#29507a;--line-strong:#3d78b6;--focus:#ffbf47}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f8fb;--bg-alt:#dbe8f6;--panel:#fff;--text:#10243a;--muted:#35526f;--accent:#0f7c59;--warn:#8a5b00;--bad:#b42318;--bad-ink:var(--bad);--line:#b4c9e0;--line-strong:#4e7fb6;--focus:#7a4b00}*{box-sizing:border-box}[hidden]{display:none!important}html{background-color:var(--bg)}html,body{background-color:var(--bg);background-image:radial-gradient(circle at 10% 10%, var(--bg-alt) 0%, var(--bg) 50%, var(--bg) 100%);min-height:100%;color:var(--text);margin:0;font-family:IBM Plex Sans,Segoe UI,sans-serif;font-size:16px;line-height:1.5}.page{max-width:1200px;margin:0 auto;padding:1rem}.skip-link{position:absolute;top:auto;left:-10000px}.skip-link:focus-visible{background:var(--panel);z-index:999;padding:.5rem;top:1rem;left:1rem}.hero{border:1px solid var(--line);background:linear-gradient(140deg, color-mix(in srgb, var(--panel) 94%, white 6%), var(--panel));border-radius:1rem;margin-bottom:1rem;padding:1rem;position:relative}.hero-top{justify-content:space-between;align-items:center;gap:.75rem;display:flex}h1,h2{margin:.4rem 0;font-family:Space Grotesk,Segoe UI,sans-serif}.subtitle{color:var(--muted);margin-top:0}.chip-row{color:var(--muted);margin-bottom:0}button,input,textarea,a{min-height:44px}button{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--accent) 22%, var(--panel));color:var(--text);border-radius:.7rem;padding:.65rem .9rem;font-family:inherit;font-size:1rem;font-weight:600}.theme-toggle{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel) 80%, var(--accent) 20%);width:2.6rem;height:2.6rem;color:var(--text);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:1.2rem;line-height:1;display:inline-flex}button:hover,.theme-toggle:hover{background:color-mix(in srgb, var(--panel) 68%, var(--accent) 32%);cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible,.theme-toggle:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.panel-grid{grid-template-columns:1fr;gap:1rem;display:grid}.panel{border:1px solid var(--line);background:var(--panel);border-radius:1rem;gap:.5rem;padding:1rem;display:grid}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.chip{border:1px solid var(--line);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:.25rem .65rem;font-size:.875rem;display:inline-flex}.chip-category{background:color-mix(in srgb, var(--accent) 20%, var(--panel))}.chip-ok{background:color-mix(in srgb, var(--accent) 18%, var(--panel))}.chip-warn{background:color-mix(in srgb, var(--warn) 24%, var(--panel))}.chip-bad{background:color-mix(in srgb, var(--bad) 24%, var(--panel))}label{font-weight:600}input,textarea{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--panel) 88%, black 12%);width:100%;color:var(--text);border-radius:.65rem;padding:.65rem;font-family:inherit;font-size:1rem}textarea{min-height:90px}.hex{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 85%, black 15%);word-break:break-all;white-space:pre-wrap;border-radius:.75rem;max-width:100%;min-height:4rem;margin:0;padding:.75rem;font-family:IBM Plex Mono,Consolas,monospace;font-size:.875rem;overflow:auto}.note{color:var(--muted);margin:0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:650px}th,td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.55rem}.why,.footer{border:1px solid var(--line);background:var(--panel);border-radius:1rem;margin-top:1rem;padding:1rem}.links{flex-wrap:wrap;gap:.55rem;display:flex}.links a,.github-badge{border:1px solid var(--line);color:var(--text);background:color-mix(in srgb, var(--panel) 85%, white 15%);border-radius:999px;align-items:center;padding:.45rem .75rem;text-decoration:none;display:inline-flex}.footer p{margin-bottom:0}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=700px){.panel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:no-preference){.hero,.panel,.why,.footer{animation:.36s ease-out rise}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@keyframes rise{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.tour{border:1px solid var(--line);background:linear-gradient(140deg, color-mix(in srgb, var(--accent) 14%, var(--panel)), var(--panel));border-radius:1rem;margin-bottom:1rem;padding:1rem}.tour-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.tour-body{color:var(--muted);margin:.35rem 0 0}.tour-controls{flex-wrap:wrap;gap:.5rem;display:flex}.tour-progress{color:var(--muted);margin:.5rem 0 0;font-size:.875rem}button.secondary{background:color-mix(in srgb, var(--panel) 78%, var(--accent) 22%)}.button-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.lesson-badge{background:color-mix(in srgb, var(--accent) 28%, var(--panel));border:1px solid var(--line);letter-spacing:.03em;border-radius:999px;justify-content:center;align-items:center;padding:.2rem .6rem;font-size:.8rem;font-weight:700;display:inline-flex}.panel-active{outline:3px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 6px color-mix(in srgb, var(--accent) 24%, transparent)}.stepper{flex-direction:column;gap:.25rem;display:flex}.step-line{border-bottom:1px dashed color-mix(in srgb, var(--line) 50%, transparent);padding:.25rem 0}.step-line:last-child{border-bottom:none}@media (prefers-reduced-motion:no-preference){.step-line-new{animation:.32s ease-out stepReveal}}@keyframes stepReveal{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.bitdiff-section{gap:.5rem;display:grid}.bitdiff-block{gap:.35rem;display:grid}.bitdiff-grid{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 90%, black 10%);aspect-ratio:32/8;border-radius:.5rem;grid-template-columns:repeat(32,1fr);gap:1px;max-width:100%;padding:.25rem;display:grid}.bitdiff-cell{background:color-mix(in srgb, var(--panel) 30%, var(--muted) 5%);border-radius:1px}.bitdiff-cell.bitdiff-flip{background:var(--bad)}.bitdiff-label{color:var(--muted);margin:0;font-size:.875rem}.verifier{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));background:color-mix(in srgb, var(--panel) 92%, var(--accent) 8%);border-radius:.75rem;gap:.5rem;padding:.85rem;display:grid}.verifier h3{margin:0;font-size:1rem}.verdict{border:1px solid var(--line);letter-spacing:.04em;min-height:unset;border-radius:999px;align-items:center;padding:.35rem .7rem;font-family:IBM Plex Mono,Consolas,monospace;font-size:.85rem;font-weight:700;display:inline-flex}.verdict-accept{background:color-mix(in srgb, var(--accent) 35%, var(--panel));color:var(--text);border-color:var(--accent)}.verdict-reject{background:color-mix(in srgb, var(--bad) 35%, var(--panel));color:var(--text);border-color:var(--bad)}.verdict-idle{background:color-mix(in srgb, var(--panel) 80%, var(--muted) 20%);color:var(--muted)}.attack-pane{border:1px solid color-mix(in srgb, var(--bad) 35%, var(--line));background:color-mix(in srgb, var(--panel) 92%, var(--bad) 8%);border-radius:.75rem;gap:.5rem;padding:.85rem;display:grid}.attack-pane h3{margin:0;font-size:1rem}.callout-cve{border:1px solid color-mix(in srgb, var(--warn) 60%, var(--line));background:color-mix(in srgb, var(--warn) 18%, var(--panel));border-radius:.75rem;padding:.85rem;font-size:.92rem;line-height:1.45}.side-by-side{grid-template-columns:1fr;gap:.5rem;display:grid}@media (width>=720px){.side-by-side{grid-template-columns:repeat(2,minmax(0,1fr))}}.side{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 88%, black 12%);border-radius:.75rem;gap:.4rem;padding:.65rem;display:grid}.side.broken{border-color:color-mix(in srgb, var(--bad) 50%, var(--line));background:color-mix(in srgb, var(--panel) 90%, var(--bad) 10%)}.side.safe{border-color:color-mix(in srgb, var(--accent) 50%, var(--line));background:color-mix(in srgb, var(--panel) 90%, var(--accent) 10%)}.side-label{flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;display:flex}.badge-bad,.badge-ok{letter-spacing:.05em;border:1px solid var(--line);border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:700;display:inline-flex}.badge-bad{background:color-mix(in srgb, var(--bad) 35%, var(--panel));border-color:var(--bad)}.badge-ok{background:color-mix(in srgb, var(--accent) 35%, var(--panel));border-color:var(--accent)}.capture-pane{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 95%, black 5%);border-radius:.75rem;gap:.5rem;padding:.85rem;display:grid}.capture-pane h3,.attack-pane h3,.verifier h3{font-family:Space Grotesk,Segoe UI,sans-serif}@media (width>=700px){.panel-wide{grid-column:1/-1}}.recovery-progress{gap:.4rem;display:grid}.recovery-bar{background:color-mix(in srgb, var(--panel) 70%, black 30%);border:1px solid var(--line);border-radius:999px;height:.6rem;overflow:hidden}.recovery-bar-fill{background:linear-gradient(90deg, var(--accent), var(--warn));width:0%;height:100%;transition:width .12s ease-out}.source-toggle{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 92%, black 8%);border-radius:.75rem;padding:.5rem .85rem}.source-toggle summary{cursor:pointer;padding:.3rem 0;font-weight:600}.source-toggle .src{background:color-mix(in srgb, var(--panel) 80%, black 20%);white-space:pre;border-radius:.5rem;margin:.5rem 0 0;padding:.75rem;font-family:IBM Plex Mono,Consolas,monospace;font-size:.82rem;overflow-x:auto}.intro-card{border:1px solid var(--line);background:linear-gradient(140deg, color-mix(in srgb, var(--accent) 10%, var(--panel)), var(--panel));border-radius:1rem;gap:1rem;margin-bottom:1rem;padding:1rem;display:grid}@media (width>=860px){.intro-card{grid-template-columns:1.05fr 1fr;align-items:center}}.intro-card h2{margin-top:0}.intro-lede{margin:0 0 .6rem}.intro-why{color:var(--muted);border-left:3px solid color-mix(in srgb, var(--accent) 60%, var(--line));margin:0;padding-left:.75rem}.intro-q{color:var(--text);font-weight:700;display:block}.intro-card code{background:color-mix(in srgb, var(--panel) 78%, black 22%);border-radius:.3rem;padding:.05rem .3rem;font-family:IBM Plex Mono,Consolas,monospace;font-size:.9em}.mac-anim{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 92%, black 8%);border-radius:.85rem;gap:.7rem;margin:0;padding:.85rem;display:grid}.mac-stage{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.mac-inputs{flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;display:inline-flex}.mac-token{border:1px solid var(--line);white-space:nowrap;border-radius:.55rem;align-items:center;gap:.25rem;padding:.3rem .6rem;font-family:IBM Plex Mono,Consolas,monospace;font-size:.82rem;font-weight:600;display:inline-flex}.mac-msg{background:color-mix(in srgb, var(--panel) 86%, var(--muted) 14%);color:var(--text)}.mac-key{background:color-mix(in srgb, var(--warn) 30%, var(--panel));border-color:color-mix(in srgb, var(--warn) 55%, var(--line));color:var(--text)}.mac-tag{background:color-mix(in srgb, var(--accent) 30%, var(--panel));border-color:color-mix(in srgb, var(--accent) 55%, var(--line));color:var(--text)}.mac-plus,.mac-arrow{color:var(--muted);font-weight:700}.mac-box{border:1.5px solid var(--accent);background:color-mix(in srgb, var(--accent) 18%, var(--panel));letter-spacing:.08em;border-radius:.6rem;place-items:center;min-width:3.2rem;padding:.5rem .7rem;font-family:Space Grotesk,Segoe UI,sans-serif;font-weight:700;display:inline-grid}.mac-recv{border-top:1px dashed var(--line);flex-direction:column;align-items:stretch;gap:.5rem;padding-top:.7rem}.mac-recv-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;display:flex}.mac-recv-box{background:color-mix(in srgb, var(--panel) 84%, var(--muted) 16%)}.mac-tampered{text-decoration:line-through;-webkit-text-decoration-color:var(--bad);text-decoration-color:var(--bad);position:relative}.mac-tamper-mark{color:var(--bad-ink);font-weight:800}.mac-verdict-chip{border:1px solid var(--line);border-radius:999px;align-items:center;padding:.3rem .6rem;font-family:IBM Plex Mono,Consolas,monospace;font-size:.78rem;font-weight:700;display:inline-flex}.mac-accept{background:color-mix(in srgb, var(--accent) 35%, var(--panel));border-color:var(--accent);color:var(--text)}.mac-reject{background:color-mix(in srgb, var(--bad) 35%, var(--panel));border-color:var(--bad);color:var(--text)}.mac-caption{color:var(--muted);text-align:center;margin:0;font-size:.82rem}@media (prefers-reduced-motion:no-preference){.mac-stage .mac-token,.mac-stage .mac-box,.mac-stage .mac-verdict-chip{animation:.52s ease-out both macFlow}.mac-stage .mac-arrow{animation:.52s ease-out both macFade}.mac-recv-ok .mac-verdict-chip{animation-delay:.35s}.mac-recv-bad .mac-verdict-chip{animation-delay:.55s}}@keyframes macFlow{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}@keyframes macFade{0%{opacity:0}to{opacity:1}}.gloss{cursor:help;border-radius:.2rem;position:relative}.gloss-term{border-bottom:1px dotted}.gloss:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.gloss-pop{z-index:40;border:1px solid var(--accent);background:var(--bg-alt);width:max(16rem,100%);max-width:22rem;color:var(--text);border-radius:.5rem;padding:.55rem .7rem;font-size:.82rem;font-weight:400;line-height:1.4;display:none;position:absolute;bottom:calc(100% + .4rem);left:0;box-shadow:0 6px 20px #00000059}.gloss:hover .gloss-pop,.gloss:focus .gloss-pop,.gloss:focus-within .gloss-pop,.gloss:focus-visible .gloss-pop{display:block}.linviz{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));background:color-mix(in srgb, var(--panel) 92%, var(--accent) 8%);border-radius:.75rem;gap:.6rem;padding:.75rem;display:grid}.linviz-lede{margin:0}.linviz-rows{gap:.8rem;display:grid}.linviz-idle{margin:0}.linviz-block{gap:.3rem;display:grid}.linviz-cap{margin:0;font-size:.85rem}.linviz-grid{grid-template-columns:auto auto 1fr;align-items:center;gap:.25rem .4rem;display:grid}.linviz-op{color:var(--muted);text-align:center;min-width:1ch;font-family:IBM Plex Mono,Consolas,monospace;font-weight:700}.linviz-name{color:var(--muted);white-space:nowrap;font-family:IBM Plex Mono,Consolas,monospace;font-size:.78rem}.bitrow{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 82%, black 18%);border-radius:.25rem;grid-template-columns:repeat(64,1fr);gap:1px;height:.9rem;display:grid;overflow:hidden}.bitrow-cell{background:0 0}.bitrow-cell.bitrow-on{background:var(--muted)}.bitrow-t .bitrow-cell.bitrow-on{background:color-mix(in srgb, var(--muted) 85%, var(--accent) 15%)}.bitrow-delta{border-color:var(--accent)}.bitrow-delta .bitrow-cell.bitrow-on{background:var(--accent)}@media (prefers-reduced-motion:no-preference){.linviz-block .bitrow-delta{animation:.7s ease-out .2s both deltaGlow}}@keyframes deltaGlow{0%{opacity:.2;transform:scaleY(.5)}to{opacity:1;transform:scaleY(1)}}.linviz-equals{background:color-mix(in srgb, var(--accent) 14%, var(--panel));border:1px solid color-mix(in srgb, var(--accent) 40%, var(--line));border-radius:.5rem;margin:0;padding:.55rem .7rem;font-size:.88rem}.linviz code,.linviz-equals code{background:color-mix(in srgb, var(--panel) 78%, black 22%);border-radius:.3rem;padding:.05rem .3rem;font-family:IBM Plex Mono,Consolas,monospace}.disclosure-banner{border:1px solid color-mix(in srgb, var(--warn) 55%, var(--line));background:color-mix(in srgb, var(--warn) 16%, var(--panel));border-radius:.6rem;margin:0;padding:.6rem .75rem;font-size:.86rem;line-height:1.45}.le-layout{border:1px solid var(--line);background:color-mix(in srgb, var(--panel) 94%, black 6%);border-radius:.75rem;gap:.55rem;padding:.75rem;display:grid}.le-layout-cap{margin:0;font-size:.88rem}.le-blocks{flex-wrap:wrap;align-items:stretch;gap:.3rem;display:flex}.le-seg{border:1px solid var(--line);border-radius:.5rem;flex:auto;gap:.15rem;min-width:6rem;padding:.45rem .55rem;font-family:IBM Plex Mono,Consolas,monospace;display:grid}.le-seg-name{font-size:.8rem;font-weight:700}.le-seg-detail{color:var(--text);opacity:.85;word-break:break-all;font-size:.74rem}.le-seg-secret{background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--panel) 88%, var(--muted) 12%), color-mix(in srgb, var(--panel) 88%, var(--muted) 12%) 6px, color-mix(in srgb, var(--panel) 78%, var(--muted) 22%) 6px, color-mix(in srgb, var(--panel) 78%, var(--muted) 22%) 12px);color:var(--text);border-style:dashed}.le-seg-msg{background:color-mix(in srgb, var(--panel) 88%, var(--muted) 12%)}.le-seg-glue{background:color-mix(in srgb, var(--warn) 26%, var(--panel));border-color:color-mix(in srgb, var(--warn) 55%, var(--line))}.le-seg-append{background:color-mix(in srgb, var(--bad) 24%, var(--panel));border-color:color-mix(in srgb, var(--bad) 55%, var(--line))}.le-layout-why{font-size:.84rem}.le-key-secret,.le-key-glue,.le-key-append{border-radius:.25rem;padding:.02rem .25rem;font-weight:700}.le-key-secret{background:color-mix(in srgb, var(--muted) 16%, var(--panel))}.le-key-glue{background:color-mix(in srgb, var(--warn) 22%, var(--panel))}.le-key-append{background:color-mix(in srgb, var(--bad) 24%, var(--panel))}.note-why{border-left:3px solid color-mix(in srgb, var(--accent) 55%, var(--line));padding-left:.7rem}.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(--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;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-main{flex-basis:auto;min-width:0}.cl-hero-why{flex-basis:auto;width:100%}}
