:root{--bg:#f6efe3;--bg-soft:#eadfca;--panel:#fffaf0;--text:#241f17;--muted:#4d4537;--accent:#b45309;--accent-2:#1d6f63;--danger:#b01a2e;--ok:#1a6a3c;--warn:#8a5800;--border:#c2ac88;--border-strong:#87785f;--focus:#0059d6;--shadow:0 14px 34px #3c280c29;--on-accent:#fff;--chart-surface:#fffaf0;--chart-grid:#241f171a;--chart-axis:#8a7858;font-size:16px}:root[data-theme=dark]{--bg:#1c1a16;--bg-soft:#2a261f;--panel:#272219;--text:#f4efe4;--muted:#d6cdb9;--accent:#f5b14c;--accent-2:#5fd6c0;--danger:#ff8a92;--ok:#7ef0a8;--warn:#ffce7a;--border:#6f6450;--border-strong:#7e7462;--focus:#7bc1ff;--shadow:0 18px 42px #0006;--on-accent:#241400;--chart-surface:#211d16;--chart-grid:#f4efe41f;--chart-axis:#a3937a}*{box-sizing:border-box}html,body{background:radial-gradient(circle at 12% 8%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 42%), radial-gradient(circle at 92% 0%, color-mix(in srgb, var(--accent-2) 20%, transparent), transparent 38%), var(--bg);min-height:100%;color:var(--text);margin:0;font-family:IBM Plex Sans,Segoe UI,sans-serif}a{color:inherit}.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{background:var(--panel);border:2px solid var(--focus);padding:.75rem;position:absolute;top:0;left:-9999px}.skip-link:focus{z-index:99;top:.5rem;left:.5rem}#app{max-width:1140px;margin:0 auto;padding:.8rem}.hero{background:linear-gradient(160deg, var(--panel), var(--bg-soft));border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1rem;padding:1.1rem;position:relative}.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(--border);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-why{flex-basis:auto;width:100%}.cl-hero-main{flex-basis:auto;min-width:0}}.category-chip,.primitive-chip,.status,.links a{border:1px solid var(--border);border-radius:999px;align-items:center;min-height:36px;padding:.35rem .65rem;text-decoration:none;display:inline-flex}.category-chip{background:var(--accent);color:var(--on-accent);border-color:#0000;font-weight:700}h1,h2,h3{font-family:Space Grotesk,Trebuchet MS,sans-serif;line-height:1.2}h1{margin:.8rem 0 .4rem;font-size:clamp(1.8rem,6vw,2.8rem)}h2{margin:.3rem 0;font-size:clamp(1.3rem,4.2vw,1.8rem)}.subtitle{color:var(--muted);font-size:1.05rem}.subhead{border-top:1px dashed var(--border);margin:1rem 0 .3rem;padding-top:.8rem;font-size:1.05rem}code{background:color-mix(in srgb, var(--accent) 12%, var(--panel));overflow-wrap:break-word;border-radius:.3rem;padding:.05rem .3rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.panel-text,.panel-note,.chart-summary,li,p,label{font-size:1rem}.panel-note,.chart-summary{color:var(--muted)}.panel-note.caveat{border-top:1px dashed var(--border);margin-top:.9rem;padding-top:.7rem}.chip-row,.status-row,.links{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}.primitive-chip{background:color-mix(in srgb, var(--accent) 18%, transparent)}main{grid-template-columns:minmax(0,1fr);gap:.9rem;margin-top:.9rem;display:grid}.panel,.why{background:linear-gradient(165deg, var(--panel), color-mix(in srgb, var(--panel) 80%, var(--bg-soft)));border:1px solid var(--border);box-shadow:var(--shadow);border-radius:1rem;padding:1rem}.panel.attack{border-color:color-mix(in srgb, var(--accent) 50%, var(--border))}.panel-head{gap:.45rem;margin-bottom:.4rem;display:grid}.status{font-size:.85rem;font-weight:700}.bad{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 60%, var(--border));background:color-mix(in srgb, var(--danger) 10%, var(--panel))}.good{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 60%, var(--border));background:color-mix(in srgb, var(--ok) 16%, var(--panel))}.warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 60%, var(--border));background:color-mix(in srgb, var(--warn) 14%, var(--panel))}button,input[type=text],input:not([type]){border:1px solid var(--border-strong);background:var(--panel);width:100%;min-height:44px;color:var(--text);border-radius:.7rem;padding:.65rem .75rem;font-size:1rem}button{cursor:pointer;background:linear-gradient(160deg, color-mix(in srgb, var(--accent) 24%, var(--panel)), var(--panel));font-weight:700}button.secondary{background:var(--panel);font-weight:600}button:focus-visible,input:focus-visible,a:focus-visible,pre:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button[aria-busy=true],button:disabled{cursor:progress;opacity:.7}.controls{gap:.45rem;margin-top:.7rem;display:grid}canvas{border:1px solid var(--border);background:var(--chart-surface);border-radius:.8rem;width:100%;max-width:100%;margin-top:.6rem}.code-compare{grid-template-columns:minmax(0,1fr);gap:.7rem;margin:.8rem 0;display:grid}.code-compare figure{min-width:0}.code-compare pre{min-width:0;overflow-x:auto}.code-compare figure{margin:0}.code-cap{border:1px solid var(--border);border-bottom:none;border-radius:.5rem .5rem 0 0;padding:.3rem .55rem;font-size:.85rem;font-weight:700}.code-compare pre{border:1px solid var(--border);background:var(--chart-surface);border-radius:0 .5rem .5rem;margin:0;padding:.7rem .8rem;font-size:.82rem;line-height:1.5;overflow-x:auto}.code-compare pre code{background:0 0;padding:0}.attack-config{gap:.6rem;margin:.8rem 0;display:grid}.attack-config fieldset{border:1px solid var(--border);border-radius:.7rem;flex-wrap:wrap;align-items:center;gap:.4rem 1.1rem;margin:0;padding:.6rem .8rem;display:flex}.attack-config legend{color:var(--muted);padding:0 .3rem;font-size:.85rem;font-weight:700}.attack-config label{align-items:center;gap:.4rem;min-height:36px;display:inline-flex}.attack-config input[type=radio]{width:auto;min-height:0;accent-color:var(--accent)}.attack-config input[type=range]{min-width:140px;accent-color:var(--accent);flex:160px}.attack-actions{flex-wrap:wrap;gap:.6rem;margin-bottom:.6rem;display:flex}.attack-actions button{flex:160px}.recovery{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.5rem 0;display:flex}.recovery-label{color:var(--muted);font-weight:700}.slots{flex-wrap:wrap;gap:.35rem;display:flex}.slot{border:1px solid var(--border);background:var(--chart-surface);width:2rem;height:2.5rem;color:var(--muted);border-radius:.4rem;place-items:center;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.15rem;font-weight:700;display:grid}.slot.filled{color:var(--on-accent);background:var(--accent);border-color:#0000;transition:background .2s}.slot.cursor{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent)}.slot.filled{animation:.28s ease-out slot-pop}@keyframes slot-pop{0%{opacity:.4;transform:scale(.6)}60%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.progress{background:color-mix(in srgb, var(--text) 12%, var(--panel));border:1px solid var(--border);border-radius:999px;height:8px;margin:.3rem 0 .2rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--accent-2), var(--accent));border-radius:999px;width:0;height:100%;transition:width .25s}.reveal{gap:.3rem;margin-top:.5rem;display:grid}.reveal:empty{display:none}.reveal-row{flex-wrap:wrap;align-items:baseline;gap:.7rem;display:flex}.reveal-key{min-width:7rem;color:var(--muted);font-weight:700}.reveal-val{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.reveal-val .ch{border-radius:.25rem;padding:.05rem .25rem;display:inline-block}.reveal-val .ch.ok{background:color-mix(in srgb, var(--ok) 30%, var(--panel));color:var(--text)}.reveal-val .ch.bad{background:color-mix(in srgb, var(--danger) 30%, var(--panel));color:var(--text)}.verdict{border:1px solid var(--border);background:var(--panel);border-left-width:5px;border-radius:.7rem;margin-top:.7rem;padding:.7rem .85rem;font-size:.95rem;line-height:1.45}.verdict:empty{display:none}.verdict strong{font-family:Space Grotesk,Trebuchet MS,sans-serif}.verdict--leak{border-left-color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, var(--panel))}.verdict--safe{border-left-color:var(--ok);background:color-mix(in srgb, var(--ok) 14%, var(--panel))}.verdict--inconclusive{border-left-color:var(--warn);background:color-mix(in srgb, var(--warn) 12%, var(--panel))}.proof-card{gap:.7rem;margin:.8rem 0;display:grid}.proof-col{border:1px solid var(--border);background:var(--panel);border-left-width:4px;border-radius:.6rem;padding:.6rem .85rem}.proof-col h3{margin:.1rem 0 .4rem;font-size:1rem}.proof-col ul{gap:.3rem;margin:0;padding-left:1.1rem;font-size:.92rem;display:grid}.proof-col.proves{border-left-color:var(--ok);background:color-mix(in srgb, var(--ok) 8%, var(--panel))}.proof-col.disproves{border-left-color:var(--warn);background:color-mix(in srgb, var(--warn) 8%, var(--panel))}.why-won{margin-top:.6rem}.why-won:empty{display:none}.why-won h4{margin:0 0 .3rem;font-family:Space Grotesk,Trebuchet MS,sans-serif;font-size:1rem}.why-won p{color:var(--muted);margin:0 0 .4rem;font-size:.92rem}.why-top{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.why-top li{border:1px solid var(--border);border-radius:.5rem;align-items:center;gap:.35rem;padding:.25rem .5rem;font-size:.85rem;display:inline-flex}.why-top li.win{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, var(--panel));font-weight:700}.why-top .cost{color:var(--muted);font-variant-numeric:tabular-nums}.why-won .lowconf{color:var(--warn)}.board:empty{display:none}.board{margin-top:.5rem;overflow-x:auto}.board table{border-collapse:collapse;width:100%;font-size:.9rem}.board caption{text-align:left;color:var(--muted);padding-bottom:.4rem;font-size:.85rem}.board th,.board td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:.4rem .55rem}.board thead th{background:color-mix(in srgb, var(--accent) 12%, var(--panel))}.board .board-leak{background:color-mix(in srgb, var(--danger) 10%, var(--panel))}.board .board-safe{background:color-mix(in srgb, var(--ok) 10%, var(--panel))}.board .board-pending{color:var(--muted);font-style:italic}.board-score{font-variant-numeric:tabular-nums;font-weight:700}.chart-data{margin-top:.6rem;font-size:.92rem;overflow-x:auto}.chart-data summary{cursor:pointer;color:var(--muted);align-items:center;min-height:44px;display:flex}.chart-data table{border-collapse:collapse;width:100%;margin-top:.4rem}.chart-data caption{text-align:left;color:var(--muted);padding-bottom:.4rem;font-size:.85rem}.chart-data th,.chart-data td{border:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums;padding:.35rem .55rem}.chart-data thead th,.chart-data tbody th{text-align:left}.chart-data thead th{background:color-mix(in srgb, var(--accent) 12%, var(--panel))}.rules{gap:.4rem;padding-left:1.1rem;display:grid}.links a{background:color-mix(in srgb, var(--accent-2) 18%, var(--panel))}.page-footer{text-align:center;max-width:1140px;color:var(--muted);margin:1.5rem auto 2rem;padding:1.5rem .8rem;font-size:.85rem}@media (width>=720px){#app{padding:1.2rem}.code-compare{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:auto 1fr;align-items:center;column-gap:.9rem}.two-col button{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
