/* Quantum Defense: base styles. Widgets use only these variables and helper classes. */
@font-face{font-family:"Inter";src:url(/assets/fonts/inter-var.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Source Serif";src:url(/assets/fonts/source-serif-4-latin-wght-normal.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:"Source Serif";src:url(/assets/fonts/source-serif-4-latin-wght-italic.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(/assets/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(/assets/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");font-weight:500 700;font-display:swap}

/* Drafting paper by day, blueprint by night. Light is the default. */
:root{
  --bg:#f4f0e6;--panel:#fbf8f1;--panel2:#ece6d8;--fg:#1d1b17;--muted:#56514a;--faint:#857e72;--line:#dcd4c3;--line2:#c4b9a3;
  --accent:#b4441f;--accent-ink:#fffaf2;--accent-2:#94650f;--cyan:#2b6b67;--ok:#2d7a3a;--bad:#b3261e;--warn:#94650f;
  --glow:rgba(180,68,31,.14);--sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--serif:"Source Serif",Georgia,"Times New Roman",serif;
  --head:var(--serif);--mono:"Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--r:6px;
  --grid-minor:rgba(29,27,23,.045);--grid-major:rgba(29,27,23,.075);
  --t-foundations:#94650f;--t-practitioner:#b4441f;--t-engineer:#2b6b67;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0f1b2d;--panel:#13233b;--panel2:#1a2d4a;--fg:#e8eef7;--muted:#a8b8ce;--faint:#7387a4;--line:#23395c;--line2:#31507c;
  --accent:#ff8a5c;--accent-ink:#0f1b2d;--accent-2:#f2c14e;--cyan:#7fd1c7;--ok:#7ed99a;--bad:#ff8f84;--warn:#f2c14e;--glow:rgba(255,138,92,.2);
  --grid-minor:rgba(170,200,240,.055);--grid-major:rgba(170,200,240,.1);
  --t-foundations:#f2c14e;--t-practitioner:#ff8a5c;--t-engineer:#7fd1c7;color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0f1b2d;--panel:#13233b;--panel2:#1a2d4a;--fg:#e8eef7;--muted:#a8b8ce;--faint:#7387a4;--line:#23395c;--line2:#31507c;
  --accent:#ff8a5c;--accent-ink:#0f1b2d;--accent-2:#f2c14e;--cyan:#7fd1c7;--ok:#7ed99a;--bad:#ff8f84;--warn:#f2c14e;--glow:rgba(255,138,92,.2);
  --grid-minor:rgba(170,200,240,.055);--grid-major:rgba(170,200,240,.1);
  --t-foundations:#f2c14e;--t-practitioner:#ff8a5c;--t-engineer:#7fd1c7;color-scheme:dark}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background-color:var(--bg);color:var(--fg);font:16px/1.6 var(--sans);overflow-x:hidden;font-feature-settings:"ss01","cv11";
  background-image:linear-gradient(var(--grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),
    linear-gradient(var(--grid-minor) 1px,transparent 1px),linear-gradient(90deg,var(--grid-minor) 1px,transparent 1px);
  background-size:120px 120px,120px 120px,24px 24px,24px 24px;background-position:-1px -1px}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{text-decoration-thickness:2px}
img,svg,canvas{max-width:100%}
h1,h2,h3,h4{font-family:var(--head);font-weight:600;line-height:1.15;margin:1.6em 0 .5em;letter-spacing:-.005em}
h1{font-size:clamp(2.1rem,5vw,3.3rem);margin-top:.3em;font-weight:600}
h2{font-size:clamp(1.45rem,3vw,1.9rem)}
h3{font-size:1.22rem}
code,kbd,.mono{font-family:var(--mono);font-size:.88em}
:not(pre)>code{background:var(--panel2);border-radius:3px;padding:.06em .3em}
pre{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line2);border-radius:2px;padding:14px 16px;overflow:auto;font-size:.86rem;line-height:1.55}
hr{border:0;border-top:1px solid var(--line);margin:32px 0}
::selection{background:var(--accent);color:var(--accent-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.wrap{max-width:1120px;margin:0 auto;padding:0 22px}
.narrow{max-width:760px}
.muted{color:var(--muted)}
.faint{color:var(--faint)}
.ok{color:var(--ok)}
.bad{color:var(--bad)}
.warn{color:var(--warn)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Controls shared by widgets */
.btn{display:inline-flex;align-items:center;gap:8px;font:600 .92rem var(--sans);background:var(--fg);color:var(--bg);border:1px solid var(--fg);border-radius:4px;padding:8px 15px;cursor:pointer;text-decoration:none;transition:background .12s,border-color .12s,color .12s}
.btn:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--line2)}
.btn.ghost:hover{border-color:var(--fg);background:transparent;color:var(--fg)}
.btn.sm{padding:4px 10px;font-size:.84rem;border-radius:3px}
.btn[disabled]{opacity:.4;cursor:not-allowed}
.btn[disabled]:hover{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.btn.ghost[disabled]:hover{background:transparent;border-color:var(--line2);color:var(--fg)}
.btn[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.field{display:flex;flex-direction:column;gap:4px;font-size:.86rem;color:var(--muted);min-width:0}
input[type=text],input[type=number],input[type=search],input:not([type]),select,textarea{font:inherit;font-size:.95rem;color:var(--fg);background:var(--panel);border:1px solid var(--line2);border-radius:3px;padding:7px 9px;min-width:0;max-width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--fg);box-shadow:0 0 0 2px var(--glow)}
input[type=range]{accent-color:var(--accent);width:100%}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
.pill{display:inline-block;font:500 .7rem/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;padding:4px 7px;border-radius:2px;border:1px solid var(--line2);color:var(--muted)}
.pill.ok{color:var(--ok);border-color:currentColor}
.pill.bad{color:var(--bad);border-color:currentColor}
.pill.warn{color:var(--warn);border-color:currentColor}
.out{font-family:var(--mono);font-size:.84rem;background:var(--bg);border:1px solid var(--line);border-radius:2px;padding:9px 11px;overflow-wrap:anywhere;word-break:break-word}

/* Widget frame: a plate in the book, not a glowing card */
.widget{position:relative;background:var(--panel);border:1px solid var(--line2);border-top:3px solid var(--fg);border-radius:2px;padding:20px 22px 22px;margin:44px 0 38px}
.widget[data-fig]::before{content:attr(data-fig);position:absolute;top:-23px;left:0;font:500 .7rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.widget::after{content:"";position:absolute;inset:-9px;pointer-events:none;--c:var(--faint);
  background:linear-gradient(var(--c),var(--c)) 0 0/12px 1px,linear-gradient(var(--c),var(--c)) 0 0/1px 12px,
    linear-gradient(var(--c),var(--c)) 100% 0/12px 1px,linear-gradient(var(--c),var(--c)) 100% 0/1px 12px,
    linear-gradient(var(--c),var(--c)) 0 100%/12px 1px,linear-gradient(var(--c),var(--c)) 0 100%/1px 12px,
    linear-gradient(var(--c),var(--c)) 100% 100%/12px 1px,linear-gradient(var(--c),var(--c)) 100% 100%/1px 12px;background-repeat:no-repeat}
.w-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.w-head .kicker{font:500 .72rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.w-head h3{margin:0;font-size:1.2rem}
.w-head p{flex-basis:100%;margin:4px 0 0;color:var(--muted);font-size:.92rem}
.w-err{color:var(--bad);font-size:.9rem}
@media (max-width:560px){.widget{padding:16px 14px;margin:36px -4px 30px}.widget::after{inset:-6px}}

.top{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:20px;height:60px}
.brand{display:flex;align-items:center;gap:10px;color:var(--fg);text-decoration:none;font:600 1.12rem var(--serif);white-space:nowrap}
.brand svg{width:26px;height:26px;flex:none}
.top nav{display:flex;gap:2px;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.top nav::-webkit-scrollbar{display:none}
.top nav a{color:var(--muted);text-decoration:none;font-size:.92rem;padding:6px 10px;white-space:nowrap;border-bottom:2px solid transparent}
.top nav a:hover{color:var(--fg)}
.top nav a[aria-current]{color:var(--fg);border-bottom-color:var(--accent)}
#theme{background:none;border:1px solid var(--line2);color:var(--muted);border-radius:3px;width:34px;height:32px;cursor:pointer;flex:none;display:grid;place-items:center;padding:0}
#theme:hover{color:var(--fg);border-color:var(--fg)}
@media (max-width:640px){.brand span.bn{display:none}.top .wrap{gap:6px}.top nav a{padding:6px 7px;font-size:.86rem}}

main{min-height:60vh}
.kicker{font:500 .74rem/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 10px}
.lede{font:400 1.2rem/1.55 var(--serif);color:var(--muted);max-width:640px}
.section{padding:64px 0;border-top:1px solid var(--line)}
.section h2:first-child,.section .kicker+h2{margin-top:0}
.grid{display:grid;gap:0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:22px;position:relative}
.card h3{margin:.1em 0 .4em}
.card p{margin:.4em 0;color:var(--muted)}
a.card{color:inherit;text-decoration:none}
a.card:hover h3{color:var(--accent)}

/* hero: title page + a live figure */
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:center;padding-top:64px;padding-bottom:72px}
.hero h1{font-size:clamp(2.3rem,5vw,3.35rem);line-height:1.04;margin:0 0 .45em;letter-spacing:-.015em}
.hero h1 i{font-weight:400;color:var(--accent)}
.hero .row{margin-top:26px}
.byline-hero{margin-top:18px;font:italic 400 1.08rem var(--serif);color:var(--muted)}
.byline-hero a{color:var(--fg)}
.fig{margin:0;border:1px solid var(--fg);background:var(--panel);position:relative}
.fig-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 10px;border-bottom:1px solid var(--line2);font:500 .74rem var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.fig-bar b{color:var(--accent);font-weight:500}
.fig-bar .row{margin:0 0 0 auto;gap:4px}
.fig-bar .btn{text-transform:none;letter-spacing:0}
.hero-fig canvas{display:block;width:100%;height:380px;cursor:crosshair;touch-action:pan-y;background-color:var(--bg);
  background-image:linear-gradient(var(--grid-minor) 1px,transparent 1px),linear-gradient(90deg,var(--grid-minor) 1px,transparent 1px);background-size:23px 23px;background-position:center}
.readout{display:grid;grid-template-columns:auto 1fr;gap:2px 14px;padding:10px 12px;border-top:1px solid var(--line2);font:400 .8rem/1.5 var(--mono);min-height:4.9em}
.readout span{color:var(--faint)}
.readout b{font-weight:500}
.fig figcaption{font:400 .9rem/1.5 var(--serif);color:var(--muted);padding:10px 12px 12px;border-top:1px solid var(--line)}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:34px;padding-top:40px}.hero-fig canvas{height:300px}}

/* route map: every lesson is a station */
.route{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:0;align-items:end;margin:30px 0 26px}
.route .seg p{font:500 .7rem var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--tc);margin:0 0 8px}
.route .stops{display:flex;justify-content:space-between;position:relative;padding-right:18px}
.route .stops::before{content:"";position:absolute;left:0;right:0;top:9px;height:4px;background:var(--tc);opacity:.85}
.route a{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;color:var(--muted);font:500 .74rem var(--mono)}
.route a i{width:22px;height:22px;border-radius:50%;background:var(--bg);border:3px solid var(--tc);transition:transform .15s}
.route a:hover i{transform:scale(1.18)}
.route a:hover{color:var(--fg)}
.route a.done i{background:var(--tc)}
.route .route-end{margin:0 0 20px 6px;font:500 .74rem var(--mono)}
.route .route-end a{display:inline-block;color:var(--fg);border:2px solid var(--fg);padding:3px 8px;font:500 .74rem var(--mono)}
.route .route-end a:hover{background:var(--fg);color:var(--bg)}
@media (max-width:760px){.route{grid-template-columns:1fr;gap:14px}.route .route-end{margin:0}}

/* the three parts */
.parts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--fg)}
.part{padding:22px 24px 24px;border-right:1px solid var(--line);color:inherit;text-decoration:none;display:flex;flex-direction:column}
.part:last-child{border-right:0}
.part:hover h3{color:var(--accent)}
.part .pn-num{font:400 2.4rem/1 var(--serif);color:var(--tc)}
.part .lvl{font:500 .72rem var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:10px 0 2px}
.part h3{margin:.15em 0 .35em;font-size:1.45rem}
.part p{color:var(--muted);margin:0 0 12px}
.part ol{margin:4px 0 14px;padding-left:1.4em;color:var(--fg);font:400 .95rem/1.5 var(--serif)}
.part ol li{margin:3px 0}
.part ol li::marker{color:var(--faint);font-family:var(--mono);font-size:.8em}
.part .prog{margin-top:auto}
@media (max-width:860px){.parts{grid-template-columns:1fr}.part{border-right:0;border-bottom:1px solid var(--line);padding-left:0;padding-right:0}}
.t-foundations{--tc:var(--t-foundations)}.t-practitioner{--tc:var(--t-practitioner)}.t-engineer{--tc:var(--t-engineer)}
.prog b{display:block;height:3px;background:var(--line);overflow:hidden}
.prog b i{display:block;height:100%;width:0;background:var(--tc,var(--accent));transition:width .5s}
.prog span{display:block;font:400 .78rem var(--mono);color:var(--faint);margin-top:6px}

/* how a lesson works */
.method{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.method div{padding:18px 20px 4px 0;margin-right:20px;border-right:1px solid var(--line)}
.method div:last-child{border-right:0}
.method h3{margin:0 0 .3em;font-size:1.12rem}
.method h3 span{font:400 .8rem var(--mono);color:var(--accent);margin-right:6px}
.method p{margin:0 0 14px;color:var(--muted);font-size:.95rem}
@media (max-width:860px){.method{grid-template-columns:1fr 1fr}.method div:nth-child(2){border-right:0}}
@media (max-width:520px){.method{grid-template-columns:1fr}.method div{border-right:0;margin-right:0}}

/* lesson list: a table of contents */
.llist{list-style:none;padding:0;margin:18px 0;position:relative}
.llist::before{content:"";position:absolute;left:21px;top:22px;bottom:22px;width:4px;background:var(--tc,var(--accent));opacity:.85}
.llist li{position:relative}
.llist a{display:grid;grid-template-columns:46px 1fr auto;gap:2px 18px;align-items:baseline;padding:16px 0;color:inherit;text-decoration:none}
.llist a:hover .lt{color:var(--accent)}
.llist .no{grid-row:span 2;width:46px;height:46px;border-radius:50%;background:var(--bg);border:3px solid var(--tc,var(--accent));display:grid;place-items:center;font:600 1.05rem var(--serif);color:var(--fg);position:relative;left:0;align-self:start;margin-top:-6px}
.llist .done .no{background:var(--tc,var(--accent));color:var(--bg)}
.llist .lt{font:600 1.12rem/1.3 var(--serif)}
.llist .ls{grid-column:2;color:var(--muted);font-size:.93rem}
.llist .lm{grid-row:span 2;font:400 .78rem var(--mono);color:var(--faint);white-space:nowrap}

@media (max-width:560px){.llist a{grid-template-columns:46px 1fr}.llist .lm{grid-row:auto;grid-column:2}}

/* lesson page */
.crumbs{font:400 .8rem var(--mono);color:var(--faint);margin:26px 0 0}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--fg)}
.lesson-head{padding:8px 0 22px;border-bottom:1px solid var(--line);margin-bottom:8px}
.lesson-head h1{margin:.2em 0 .35em;font-size:clamp(2rem,4.6vw,2.9rem)}
.chap{font:400 .82rem var(--mono);color:var(--tc);letter-spacing:.03em}
.meta{display:flex;flex-wrap:wrap;gap:4px 18px;color:var(--faint);font-size:.9rem;align-items:center}
.meta a{color:var(--muted)}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:56px;align-items:start}
.layout>article{min-width:0;max-width:720px}
.side{position:sticky;top:78px;font-size:.88rem;max-height:calc(100vh - 96px);overflow:auto;padding-bottom:20px}
.side h4{font:500 .7rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:22px 0 8px}
.side h4:first-child{margin-top:4px}
.toc a,.side .tl a{display:block;color:var(--muted);text-decoration:none;padding:4px 0 4px 12px;border-left:1px solid var(--line);line-height:1.4}
.toc a:hover,.side .tl a:hover{color:var(--fg)}
.toc a.on{color:var(--fg);border-left:2px solid var(--accent);padding-left:11px}
.side .tl a[aria-current]{color:var(--fg);border-left:2px solid var(--tc);padding-left:11px;font-weight:600}
.side .tl a.done::after{content:" ✓";color:var(--ok)}
@media (max-width:980px){.layout{grid-template-columns:1fr}.side{display:none}}
article>p,article>ul,article>ol,article li,article>details p,.callout p,.eli5 p{font-family:var(--serif)}
article>p,article>ul>li,article>ol>li{font-size:1.14rem;line-height:1.65}
article h2{scroll-margin-top:80px;margin-top:1.9em}
article{counter-reset:sec}
article>h2:not(#quiz-h):not(#sources-h){counter-increment:sec;position:relative}
article>h2:not(#quiz-h):not(#sources-h)::before{content:var(--chap) "." counter(sec);display:block;font:500 .78rem var(--mono);letter-spacing:.04em;color:var(--accent);margin-bottom:6px}
article>p:first-of-type::first-letter{font-size:3.3em;float:left;line-height:.85;margin:.06em .08em 0 0;font-weight:600;color:var(--tc,var(--accent))}
.eli5{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:22px 0}
.eli5 summary{cursor:pointer;padding:12px 0;font:500 .8rem var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);list-style:none}
.eli5 summary::-webkit-details-marker{display:none}
.eli5 summary::before{content:"+ ";color:var(--accent)}
.eli5[open] summary::before{content:"− "}
.eli5 div{padding:0 0 12px}
.eli5 p{font-size:1.1rem;font-style:italic;color:var(--muted);margin:0}
.obj{margin:22px 0 10px}
.obj h2{font:500 .72rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 6px}
.obj ul{margin:0;padding-left:1.2em}
.obj li{margin:3px 0;font-family:var(--sans)!important;font-size:.98rem!important;color:var(--muted)}
.callout{border-left:2px solid var(--fg);padding:2px 0 2px 18px;margin:26px 0}
.callout b:first-child{display:block;font:500 .74rem var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.callout p{margin:.3em 0;font-size:1.06rem}
.callout.tip{border-left-color:var(--ok)}
.callout.warn{border-left-color:var(--bad)}
.callout.warn b:first-child{color:var(--bad)}
.callout.fun{border-left-color:var(--accent-2)}
.callout.fun p{font-style:italic}
details.deeper{border:1px solid var(--line);background:var(--panel);padding:0 18px;margin:24px 0}
details.deeper summary{cursor:pointer;padding:12px 0;font-weight:600;color:var(--fg)}
details.deeper summary::marker{color:var(--accent)}
details.deeper[open]{padding-bottom:10px}
.tbl{width:100%;border-collapse:collapse;font-size:.93rem;margin:22px 0;display:block;overflow-x:auto;border-top:2px solid var(--fg);border-bottom:1px solid var(--fg)}
.tbl th,.tbl td{text-align:left;padding:8px 12px 8px 0;border-bottom:1px solid var(--line);vertical-align:top}
.tbl thead th{font:500 .72rem var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--fg)}
.tbl tbody th{font-weight:600}
.tbl tbody tr:last-child td,.tbl tbody tr:last-child th{border-bottom:0}
figure{margin:24px 0}
figcaption{font-size:.88rem;color:var(--faint);margin-top:6px}
.takeaways{padding:20px 0 6px;margin:44px 0 0;border-top:2px solid var(--fg);border-bottom:1px solid var(--line)}
.takeaways h2{margin:0 0 6px;font-size:1.3rem}
.takeaways li{margin:6px 0;font-family:var(--serif);font-size:1.06rem}
.src{font-size:.88rem;color:var(--muted);padding-left:1.2em}
.src li{margin:4px 0;overflow-wrap:anywhere;font-family:var(--sans)!important;font-size:.88rem!important}
.pn{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:40px 0 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pn a{padding:16px 0;text-decoration:none;color:var(--fg);font:600 1.05rem/1.35 var(--serif)}
.pn a:hover{color:var(--accent)}
.pn small{display:block;color:var(--faint);font:400 .76rem var(--mono);margin-bottom:3px}
.pn .next-lesson{text-align:right;grid-column:2;padding-left:16px}
.titleblock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:40px 0 0;border:2px solid var(--fg);background:var(--panel);font-size:.9rem}
.titleblock>div{padding:8px 10px;border-right:1px solid var(--line2);border-bottom:1px solid var(--line2);min-width:0}
.titleblock>div:nth-child(4n){border-right:0}
.titleblock small{display:block;font:500 .64rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:2px}
.titleblock .tb-who{grid-row:span 2;display:flex;gap:10px;align-items:center}
.titleblock .tb-who img{width:44px;height:44px;border-radius:50%;object-fit:cover;filter:grayscale(.2)}
.titleblock .tb-who a{font:600 1rem/1.25 var(--serif);color:var(--fg)}
.titleblock .tb-who,.titleblock>div:nth-last-child(-n+3){border-bottom:0}
@media (max-width:620px){.titleblock{grid-template-columns:1fr 1fr}.titleblock>div{border-bottom:1px solid var(--line2)!important;border-right:1px solid var(--line2)}.titleblock>div:nth-child(2n+1){border-right:0}.titleblock .tb-who{grid-row:auto;grid-column:span 2;border-right:0}.titleblock>div:nth-last-child(-n+2){border-bottom:0!important}}
.byline{display:flex;gap:14px;align-items:center;margin:34px 0 0;font-size:.92rem;color:var(--muted)}
.byline img{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:none;filter:grayscale(.2)}
.byline b{color:var(--fg)}

/* questions */
.check{margin:30px 0;padding:16px 18px;border:1px solid var(--line2);background:var(--panel)}
.check-k{font:500 .72rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 6px}
.qcard{margin:0 0 18px}
#quiz .qcard,#exam .qcard{padding:16px 0 18px;border-bottom:1px solid var(--line)}
.qnum{font:400 .76rem var(--mono);color:var(--faint);margin:0 0 6px}
.qtext{font:600 1.1rem/1.4 var(--serif);margin:0 0 12px}
.qopts{display:grid;gap:6px}
.qopt{display:flex;gap:12px;align-items:flex-start;text-align:left;font:inherit;font-size:.97rem;color:var(--fg);background:var(--panel);border:1px solid var(--line2);border-radius:3px;padding:9px 12px;cursor:pointer}
.qopt b{font:500 .8rem var(--mono);color:var(--faint);padding-top:2px}
.qopt:hover:not([disabled]){border-color:var(--fg)}
.qopt[disabled]{cursor:default}
.qopt.correct{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 9%,var(--panel))}
.qopt.correct b::after{content:" ✓";color:var(--ok)}
.qopt.chosen{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,var(--panel))}
.qopt.chosen b::after{content:" ✗";color:var(--bad)}
.answered .qopt:not(.correct):not(.chosen){opacity:.5}
.qwhy{margin-top:10px;font:400 1rem/1.55 var(--serif);color:var(--muted)}
.qcard>.btn{margin-top:14px}
.qscore{position:relative;padding:22px 0;border-top:2px solid var(--fg);text-align:left;overflow:hidden}
.qscore:empty{display:none}
.qscore.pass .big{color:var(--ok)}
.big{font:600 2.4rem var(--serif);margin:0}
.confetti{display:none}

/* exam + certificate */
.xbar{height:3px;background:var(--line);overflow:hidden;margin:0 0 18px}
.xbar i{display:block;height:100%;background:var(--accent);transition:width .3s}
.xresult{padding:20px 0;border-top:2px solid var(--fg)}
.xresult.pass .big{color:var(--ok)}
.xresult li{margin:6px 0}
#cert{margin-top:40px}
.certificate{margin:20px 0;padding:46px 36px;text-align:center;background:var(--panel);border:1px solid var(--fg);outline:1px solid var(--fg);outline-offset:-8px}
.certificate .c-k{font:500 .76rem var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.certificate .c-name{font:italic 600 clamp(1.9rem,5vw,2.8rem) var(--serif);margin:16px 0 6px;border-bottom:1px solid var(--line2);display:inline-block;padding:0 24px 6px}
.certificate .c-t{font:600 1.35rem var(--serif);margin:6px 0}
.certificate p{color:var(--muted);margin:8px auto;max-width:560px;font-family:var(--serif)}
.certificate .c-sig{display:flex;justify-content:space-around;flex-wrap:wrap;gap:18px;margin-top:30px;font-size:.82rem;color:var(--muted)}
.certificate .c-sig b{display:block;color:var(--fg);font:600 1.02rem var(--serif)}
.certificate svg{width:44px;height:44px;color:var(--fg)}
@media print{
  body{background:#fff;color:#111}
  .top,.foot,.noprint,#exam,.crumbs,header.page-h{display:none!important}
  #cert{margin:0}
  .certificate{background:#fff;color:#111;margin:0;page-break-inside:avoid}
  .certificate p,.certificate .c-sig{color:#333}
}

/* glossary */
.gl-tools{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:20px 0}
.gl-tools input{flex:1 1 260px}
.gl-az{display:flex;flex-wrap:wrap;gap:2px}
.gl-az a{font:500 .8rem var(--mono);color:var(--muted);text-decoration:none;padding:3px 6px}
.gl-az a:hover{color:var(--accent)}
.gl-item{padding:14px 0;border-bottom:1px solid var(--line);scroll-margin-top:80px}
.gl-item h3{margin:0 0 4px;font-size:1.12rem}
.gl-item p{margin:0;color:var(--fg);font-family:var(--serif);font-size:1.04rem}
.gl-item small{display:block;margin-top:6px;font-size:.82rem;color:var(--faint)}
.gl-item:target{background:var(--panel);box-shadow:0 0 0 12px var(--panel)}

/* playground */
.pg{display:grid;grid-template-columns:260px minmax(0,1fr);gap:36px;align-items:start}
.pg-list{display:flex;flex-direction:column;position:sticky;top:78px;max-height:calc(100vh - 96px);overflow:auto;border-top:2px solid var(--fg)}
.pg-list h4{font:500 .7rem var(--mono);letter-spacing:.06em;text-transform:uppercase;margin:16px 0 4px;color:var(--tc)}
.pg-tab{text-align:left;font:inherit;font-size:.93rem;color:var(--muted);background:none;border:0;border-left:2px solid transparent;padding:6px 10px;cursor:pointer}
.pg-tab:hover{color:var(--fg)}
.pg-tab[aria-pressed="true"]{color:var(--fg);border-left-color:var(--accent);font-weight:600}
.pg-tab small{display:block;color:var(--faint);font-size:.8rem;font-weight:400}
#pg-stage .widget{margin-top:0}
#pg-info{font-size:.92rem;color:var(--muted)}
@media (max-width:860px){.pg{grid-template-columns:1fr}.pg-list{position:static;max-height:none;flex-direction:row;flex-wrap:wrap;gap:4px}.pg-list h4{flex-basis:100%}.pg-tab small{display:none}.pg-tab{border:1px solid var(--line2);border-radius:3px}.pg-tab[aria-pressed="true"]{border-color:var(--fg)}}

/* creator */
.creator{display:grid;grid-template-columns:140px 1fr;gap:28px;align-items:start}
.creator img{width:140px;height:140px;object-fit:cover;border:1px solid var(--line2);filter:grayscale(.15)}
.creator p{font-family:var(--serif);font-size:1.08rem}
@media (max-width:620px){.creator{grid-template-columns:1fr}.creator img{width:100px;height:100px}}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;padding:14px 0;font:600 1.1rem var(--serif)}
.faq summary::marker{color:var(--accent)}
.faq details p{margin:0 0 16px;color:var(--muted);font-family:var(--serif);font-size:1.05rem}
.links{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}
.links a{font-size:.92rem}
.page-h{padding:44px 0 10px}
.prose p,.prose li{font-family:var(--serif);font-size:1.1rem}

.foot{border-top:2px solid var(--fg);color:var(--faint);font-size:.88rem;margin-top:80px}
.foot .wrap{padding-top:26px;padding-bottom:44px;display:flex;flex-wrap:wrap;gap:10px 28px;justify-content:space-between}
.foot a{color:var(--muted)}
.foot .credit b{color:var(--fg);font-weight:600}

/* address-exposure.css */
.widget[data-w="address-exposure"] .ae-types{display:flex;flex-wrap:wrap;gap:6px}
.widget[data-w="address-exposure"] .ae-note{font-size:.88rem;color:var(--muted);margin:10px 0 12px;min-height:2.6em}
.widget[data-w="address-exposure"] .ae-stages{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;counter-reset:none}
.widget[data-w="address-exposure"] .ae-stage{all:unset;box-sizing:border-box;width:100%;height:100%;display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid var(--line2);border-radius:10px;cursor:pointer;background:var(--bg);font-size:.8rem;line-height:1.25;color:var(--muted)}
.widget[data-w="address-exposure"] .ae-stage b{font:700 .95rem var(--head);color:var(--fg)}
.widget[data-w="address-exposure"] .ae-stage.past{border-color:var(--accent);opacity:.85}
.widget[data-w="address-exposure"] .ae-stage.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.widget[data-w="address-exposure"] .ae-stage.on b{color:var(--accent-ink)}
.widget[data-w="address-exposure"] .ae-stage:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.widget[data-w="address-exposure"] .ae-check{display:flex;gap:8px;align-items:center;font-size:.86rem;color:var(--muted);cursor:pointer;margin:4px 0 12px;transition:opacity .2s}
.widget[data-w="address-exposure"] .ae-check.dim{opacity:.55}
@media (prefers-reduced-motion:reduce){.widget[data-w="address-exposure"] .ae-check{transition:none}}
.widget[data-w="address-exposure"] .ae-panel{display:grid;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel2)}
.widget[data-w="address-exposure"] .ae-chain{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.8rem;min-height:44px}
.widget[data-w="address-exposure"] .ae-lab{color:var(--muted);margin-right:2px}
.widget[data-w="address-exposure"] .ae-blk{display:inline-flex;flex-direction:column;align-items:center;padding:4px 10px;border:1px solid var(--line2);border-radius:7px;background:var(--bg);font:600 .78rem var(--mono);color:var(--fg)}
.widget[data-w="address-exposure"] .ae-blk small{font:600 .62rem var(--sans);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.widget[data-w="address-exposure"] .ae-blk.pend{border-style:dashed;border-color:var(--warn)}
.widget[data-w="address-exposure"] .ae-blk.warn{border-color:var(--bad)}
.widget[data-w="address-exposure"] .ae-arrow{color:var(--faint)}
.widget[data-w="address-exposure"] .ae-facts{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin:0}
.widget[data-w="address-exposure"] .ae-facts div{min-width:0}
.widget[data-w="address-exposure"] .ae-facts dt{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.widget[data-w="address-exposure"] .ae-facts dd{margin:2px 0 0;font-size:.88rem}
.widget[data-w="address-exposure"] .ae-hid{color:var(--ok)}
.widget[data-w="address-exposure"] .ae-mem{color:var(--warn)}
.widget[data-w="address-exposure"] .ae-vis{color:var(--bad)}
.widget[data-w="address-exposure"] .ae-verdict{margin-top:12px;font-size:.9rem;line-height:1.5}
.widget[data-w="address-exposure"] .ae-verdict .pill{margin-right:6px}
@media (max-width:600px){
  .widget[data-w="address-exposure"] .ae-stages{grid-template-columns:repeat(2,1fr)}
  .widget[data-w="address-exposure"] .ae-facts{grid-template-columns:1fr 1fr}
  .widget[data-w="address-exposure"] .ae-facts div:first-child{grid-column:1/-1}
}

/* agility-sim.css */
.widget[data-w="agility-sim"] .ag-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
@media (min-width:700px){.widget[data-w="agility-sim"] .ag-grid{grid-template-columns:minmax(0,15em) minmax(0,1fr)}}
.widget[data-w="agility-sim"] .ag-pr{align-self:start;border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;margin:0;background:var(--bg);display:flex;flex-direction:column;gap:8px;min-width:0}
.widget[data-w="agility-sim"] legend{font:700 .72rem var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 4px}
.widget[data-w="agility-sim"] .ag-presets{gap:6px}
.widget[data-w="agility-sim"] .ag-cb{display:flex;gap:8px;align-items:flex-start;cursor:pointer;font-size:.86rem}
.widget[data-w="agility-sim"] .ag-cb input{margin-top:4px;flex:0 0 auto}
.widget[data-w="agility-sim"] .ag-cb small{display:block;color:var(--muted);font-size:.78rem;line-height:1.35}
.widget[data-w="agility-sim"] .ag-ev{display:flex;flex-wrap:wrap;gap:6px}
.widget[data-w="agility-sim"] .ag-desc{font-size:.88rem;margin:8px 0}
.widget[data-w="agility-sim"] .ag-sum{font-size:.9rem;border:1px solid var(--line);border-radius:9px;padding:10px 12px;background:var(--panel2);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.widget[data-w="agility-sim"] .ag-sum:empty{display:none}
.widget[data-w="agility-sim"] .ag-sum small{flex-basis:100%;color:var(--muted)}
.widget[data-w="agility-sim"] .ag-meter{flex-basis:100%;height:10px;border-radius:5px;background:var(--bg);border:1px solid var(--line);overflow:hidden}
.widget[data-w="agility-sim"] .ag-meter i{display:block;height:100%;background:linear-gradient(90deg,var(--ok),var(--warn),var(--bad));transition:width .4s ease}
.widget[data-w="agility-sim"] .ag-comps{list-style:none;padding:0;margin:10px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:8px}
.widget[data-w="agility-sim"] .ag-c{border:1px solid var(--line2);border-left:4px solid var(--tc,var(--line2));border-radius:9px;padding:8px 10px;background:var(--bg);font-size:.85rem;display:flex;flex-direction:column;gap:3px;animation:ag-in .35s ease both;animation-delay:var(--d,0ms)}
.widget[data-w="agility-sim"] .ag-c small{color:var(--muted);font-size:.76rem;line-height:1.35}
.widget[data-w="agility-sim"] .ag-ch{display:flex;gap:7px;align-items:center}
.widget[data-w="agility-sim"] .ag-ch i{flex:0 0 auto;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font:700 .72rem var(--sans);font-style:normal;border:1.5px solid var(--tc,var(--line2));color:var(--tc,var(--muted))}
.widget[data-w="agility-sim"] .ag-st{font-weight:600;font-size:.78rem;color:var(--tc,var(--muted))}
.widget[data-w="agility-sim"] .t0{--tc:var(--line2)}
.widget[data-w="agility-sim"] .ag-c.t0{color:var(--muted);border-style:dashed;border-left-style:solid}
.widget[data-w="agility-sim"] .t1{--tc:var(--ok)}
.widget[data-w="agility-sim"] .t2{--tc:var(--warn)}
.widget[data-w="agility-sim"] .t3{--tc:var(--bad)}
.widget[data-w="agility-sim"] .ag-c.sur{background:repeating-linear-gradient(135deg,var(--bg) 0 10px,var(--panel2) 10px 20px)}
.widget[data-w="agility-sim"] .ag-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.78rem;color:var(--muted);margin:10px 0 0}
.widget[data-w="agility-sim"] .ag-t{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:var(--tc,var(--muted))}
.widget[data-w="agility-sim"] .ag-sum .ag-t{border:1px solid currentColor;border-radius:999px;padding:2px 9px;font-size:.78rem}
.widget[data-w="agility-sim"] .ag-t.sur{--tc:var(--accent)}
.widget[data-w="agility-sim"] .ag-legend .ag-t i{font-style:normal;width:16px;height:16px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font-size:.62rem}
.widget[data-w="agility-sim"] .ag-foot{font-size:.8rem;margin:12px 0 0}
@keyframes ag-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.widget[data-w="agility-sim"] .ag-c{animation:none}.widget[data-w="agility-sim"] .ag-meter i{transition:none}}

/* grover.css */
.widget[data-w="grover"] .gr-top{align-items:flex-end;margin-bottom:12px}
.widget[data-w="grover"] .gr-top select{font-family:var(--mono)}
.widget[data-w="grover"] .gr-stats{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 260px}
.widget[data-w="grover"] .gr-stats .pill{text-transform:none;letter-spacing:0;font-size:.78rem}
.widget[data-w="grover"] .gr-chartwrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:10px 8px}
.widget[data-w="grover"] .gr-chart{position:relative;display:flex;align-items:stretch;gap:3px;height:220px;min-width:300px}
.widget[data-w="grover"].gr-many .gr-chart{gap:1px;min-width:380px}
.widget[data-w="grover"] .gr-zero{position:absolute;left:0;right:0;top:50%;border-top:1.5px solid var(--line2);pointer-events:none}
.widget[data-w="grover"] .gr-mean{position:absolute;left:0;right:0;border-top:1.5px dashed var(--accent-2);pointer-events:none;z-index:2;transition:top .35s}
.widget[data-w="grover"] .gr-mean-k{display:inline-block;width:18px;border-top:2px dashed var(--accent-2);vertical-align:middle}
.widget[data-w="grover"] .gr-b{position:relative;flex:1 1 0;min-width:0;padding:0;margin:0;background:transparent;border:0;border-radius:4px;cursor:pointer}
.widget[data-w="grover"] .gr-b:hover{background:var(--panel2)}
.widget[data-w="grover"] .gr-bar{position:absolute;left:12%;right:12%;background:var(--cyan);border-radius:3px;transition:height .35s,top .35s,bottom .35s}
.widget[data-w="grover"].gr-many .gr-bar{left:0;right:0;border-radius:1px}
.widget[data-w="grover"] .gr-bar.pos{bottom:50%}
.widget[data-w="grover"] .gr-bar.neg{top:50%;background:var(--bad)}
.widget[data-w="grover"] .gr-b.mk .gr-bar.pos{background:var(--accent)}
.widget[data-w="grover"] .gr-b.mk .gr-bar.neg{background:var(--bad);outline:2px solid var(--accent);outline-offset:1px}
.widget[data-w="grover"] .gr-star{position:absolute;left:50%;top:0;transform:translateX(-50%);color:var(--accent);font-size:.95rem;line-height:1;z-index:3}
.widget[data-w="grover"] .gr-eye{position:absolute;left:50%;bottom:2px;transform:translateX(-50%);color:var(--accent-2);font-size:.8rem;line-height:1}
.widget[data-w="grover"] .gr-key{font-size:.8rem;margin:8px 0}
.widget[data-w="grover"] .gr-btns{margin-top:6px}
.widget[data-w="grover"] .gr-msg{font-size:.92rem;min-height:2.6em;margin:12px 0 4px}
.widget[data-w="grover"] .gr-hist{font-size:.78rem;margin:0;overflow-wrap:anywhere}
@media (prefers-reduced-motion:reduce){.widget[data-w="grover"] *{transition:none!important}}
.widget[data-w="grover"] [hidden]{display:none!important}

/* handshake-budget.css */
.widget[data-w="handshake-budget"] .hb-presets{gap:6px;margin-bottom:12px}
.widget[data-w="handshake-budget"] .hb-ctrl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:10px 12px;margin-bottom:12px}
.widget[data-w="handshake-budget"] .hb-ctrl select{width:100%}
.widget[data-w="handshake-budget"] .hb-cb{grid-column:1/-1;display:flex;gap:8px;align-items:flex-start;font-size:.88rem;color:var(--muted);cursor:pointer}
.widget[data-w="handshake-budget"] .hb-cb input{margin-top:5px}
.widget[data-w="handshake-budget"] .hb-out{border:1px solid var(--line);background:var(--panel2);border-radius:9px;padding:10px 12px}
.widget[data-w="handshake-budget"] .hb-big{margin:0;font-size:1.05rem}
.widget[data-w="handshake-budget"] .hb-big b{font-size:1.3rem}
.widget[data-w="handshake-budget"] .hb-flags{margin:6px 0 0;font-size:.9rem;font-weight:600}
.widget[data-w="handshake-budget"] .hb-viz{position:relative;margin:16px 0 8px;padding-bottom:58px}
.widget[data-w="handshake-budget"] .hb-stack{display:flex;height:26px;border-radius:6px;background:var(--bg);border:1px solid var(--line);overflow:hidden}
.widget[data-w="handshake-budget"] .hb-seg{height:100%;border-right:1px solid var(--panel);transition:width .35s ease}
.widget[data-w="handshake-budget"] .s-kex{background:var(--cyan)}
.widget[data-w="handshake-budget"] .s-leaf{background:var(--accent)}
.widget[data-w="handshake-budget"] .s-sct{background:repeating-linear-gradient(135deg,var(--accent) 0 5px,var(--panel2) 5px 9px)}
.widget[data-w="handshake-budget"] .s-int{background:var(--accent-2)}
.widget[data-w="handshake-budget"] .s-cv{background:var(--bad)}
.widget[data-w="handshake-budget"] .s-frame{background:var(--faint)}
.widget[data-w="handshake-budget"] .hb-marks{position:absolute;left:0;right:0;top:0;height:100%;pointer-events:none}
.widget[data-w="handshake-budget"] .hb-mark{position:absolute;top:-4px;height:34px;border-left:2px dashed var(--fg)}
.widget[data-w="handshake-budget"] .hb-mark b{position:absolute;top:36px;font:600 .72rem/1.2 var(--sans);white-space:nowrap;color:var(--fg);background:var(--panel);padding:1px 4px;border-radius:4px}
.widget[data-w="handshake-budget"] .hb-mark.tcp b{right:-2px}
.widget[data-w="handshake-budget"] .hb-mark.quic{border-left-color:var(--muted);height:54px}
.widget[data-w="handshake-budget"] .hb-mark.quic b{top:54px;right:-2px;color:var(--muted)}
.widget[data-w="handshake-budget"] .hb-viz{padding-bottom:74px}
.widget[data-w="handshake-budget"] .hb-mark.lft b{right:auto;left:-2px}
.widget[data-w="handshake-budget"] .hb-tblwrap{overflow:auto;border:1px solid var(--line);border-radius:9px}
.widget[data-w="handshake-budget"] .hb-tbl{width:100%;border-collapse:collapse;font-size:.84rem;table-layout:fixed}
.widget[data-w="handshake-budget"] .hb-tbl th.num{width:5.6em}
.widget[data-w="handshake-budget"] .hb-tbl th,.widget[data-w="handshake-budget"] .hb-tbl td{padding:6px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.widget[data-w="handshake-budget"] .hb-tbl th{font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--panel2)}
.widget[data-w="handshake-budget"] .hb-tbl td b{font-weight:600}
.widget[data-w="handshake-budget"] .hb-tbl td small{display:block;overflow-wrap:anywhere;color:var(--muted);font-size:.8rem;margin:1px 0 0 17px}
.widget[data-w="handshake-budget"] .hb-tbl .num{text-align:right;white-space:nowrap}
.widget[data-w="handshake-budget"] .hb-total td{border-bottom:0;background:var(--panel2)}
.widget[data-w="handshake-budget"] .hb-key{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px;vertical-align:-1px}
.widget[data-w="handshake-budget"] .hb-assume{margin-top:12px;font-size:.85rem;color:var(--muted)}
.widget[data-w="handshake-budget"] .hb-assume summary{cursor:pointer;color:var(--fg);font-weight:600}
.widget[data-w="handshake-budget"] .hb-assume ul{margin:8px 0 0;padding-left:20px}
@media (prefers-reduced-motion:reduce){.widget[data-w="handshake-budget"] .hb-seg{transition:none}}

/* hash-avalanche.css */
.widget[data-w="hash-avalanche"] .ha-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.widget[data-w="hash-avalanche"] .ha-inputs input{width:100%;font-family:var(--mono)}
.widget[data-w="hash-avalanche"] .ha-btns{margin:12px 0 4px}
.widget[data-w="hash-avalanche"] .ha-lab{margin:12px 0 4px;font-size:.82rem;color:var(--muted)}
.widget[data-w="hash-avalanche"] .ha-hex .out{letter-spacing:.02em}
.widget[data-w="hash-avalanche"] .ha-hex u{color:var(--accent-2);text-decoration-thickness:2px;text-underline-offset:3px}
.widget[data-w="hash-avalanche"] .ha-gridwrap{display:flex;flex-wrap:wrap;gap:18px;align-items:center;margin-top:16px}
.widget[data-w="hash-avalanche"] .ha-grid{display:grid;grid-template-columns:repeat(16,1fr);gap:2px;width:min(100%,320px);flex:0 0 auto}
.widget[data-w="hash-avalanche"] .ha-grid span{aspect-ratio:1;border-radius:3px;background:var(--panel2);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font:700 .62rem/1 var(--mono);color:var(--accent-ink);transition:background .25s}
.widget[data-w="hash-avalanche"] .ha-grid span.one{background:var(--line2)}
.widget[data-w="hash-avalanche"] .ha-grid span.diff{background:var(--accent-2);border-color:var(--accent-2)}
.widget[data-w="hash-avalanche"] .ha-side{flex:1 1 200px;min-width:0}
.widget[data-w="hash-avalanche"] .ha-big{margin:0;font-family:var(--head);font-size:1.15rem}
.widget[data-w="hash-avalanche"] .ha-big b{font-size:2.2rem;color:var(--accent-2);margin-right:4px}
.widget[data-w="hash-avalanche"] .ha-meter{position:relative;height:10px;border-radius:99px;background:var(--panel2);border:1px solid var(--line);margin:8px 0;overflow:hidden}
.widget[data-w="hash-avalanche"] .ha-meter i{position:absolute;inset:0 auto 0 0;background:var(--accent-2);transition:width .3s}
.widget[data-w="hash-avalanche"] .ha-meter s{position:absolute;left:50%;top:-2px;bottom:-2px;width:2px;background:var(--fg)}
.widget[data-w="hash-avalanche"] .ha-pct{font-size:.9rem;margin:6px 0}
.widget[data-w="hash-avalanche"] .ha-key{list-style:none;padding:0;margin:8px 0 0;display:flex;gap:16px;font-size:.82rem;color:var(--muted)}
.widget[data-w="hash-avalanche"] .ha-sw{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:3px;background:var(--panel2);border:1px solid var(--line2);vertical-align:-2px;font:700 .6rem/1 var(--mono);color:var(--accent-ink);margin-right:4px}
.widget[data-w="hash-avalanche"] .ha-sw.diff{background:var(--accent-2);border-color:var(--accent-2)}
.widget[data-w="hash-avalanche"] .ha-trial{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.widget[data-w="hash-avalanche"] .ha-trial-out{font-size:.9rem;margin:8px 0 0}
@media (max-width:560px){.widget[data-w="hash-avalanche"] .ha-inputs{grid-template-columns:1fr}.widget[data-w="hash-avalanche"] .ha-grid{width:100%}}
@media (prefers-reduced-motion:reduce){.widget[data-w="hash-avalanche"] *{transition:none!important}}
.widget[data-w="hash-avalanche"] [hidden]{display:none!important}

/* inventory-sorter.css */
.widget[data-w="inventory-sorter"] .is-score{font-size:.95rem;margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}
.widget[data-w="inventory-sorter"] .is-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px}
.widget[data-w="inventory-sorter"] .is-card{border:1px solid var(--line2);border-radius:var(--r);padding:12px;background:var(--bg);display:flex;flex-direction:column;gap:8px;transition:border-color .2s}
.widget[data-w="inventory-sorter"] .is-card.right{border-color:var(--ok)}
.widget[data-w="inventory-sorter"] .is-card.wrong{border-color:var(--bad)}
.widget[data-w="inventory-sorter"] .is-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.widget[data-w="inventory-sorter"] .is-top .pill{flex:0 0 auto;font-size:.62rem}
.widget[data-w="inventory-sorter"] h4{margin:0;font-size:1rem}
.widget[data-w="inventory-sorter"] .is-alg{margin:3px 0 0;color:var(--cyan);font-size:.8rem}
.widget[data-w="inventory-sorter"] .is-btns{display:flex;flex-direction:column;gap:6px}
.widget[data-w="inventory-sorter"] .is-btns .btn{justify-content:flex-start;width:100%;text-align:left}
.widget[data-w="inventory-sorter"] .is-btns .b-v span{color:var(--bad)}
.widget[data-w="inventory-sorter"] .is-btns .b-s span{color:var(--warn)}
.widget[data-w="inventory-sorter"] .is-btns .b-f span{color:var(--ok)}
.widget[data-w="inventory-sorter"] .is-res{margin:0;font-size:.88rem}
.widget[data-w="inventory-sorter"] .is-res .is-b{font-weight:600}
.widget[data-w="inventory-sorter"] .is-res .b-v{color:var(--bad)}
.widget[data-w="inventory-sorter"] .is-res .b-s{color:var(--warn)}
.widget[data-w="inventory-sorter"] .is-res .b-f{color:var(--ok)}
.widget[data-w="inventory-sorter"] .is-why{margin:0;font-size:.86rem;color:var(--muted)}
.widget[data-w="inventory-sorter"] .is-actions{margin-top:12px}
@media (prefers-reduced-motion:reduce){.widget[data-w="inventory-sorter"] .is-card{transition:none}}

/* kem-flow.css */
.widget[data-w="kem-flow"] .kf-ctl{align-items:flex-end;margin-bottom:10px}
.widget[data-w="kem-flow"] .kf-ctl select{max-width:100%}
.widget[data-w="kem-flow"] .kf-ctl .field{max-width:100%}
.widget[data-w="kem-flow"] .kf-check{display:flex;gap:8px;align-items:center;font-size:.88rem;color:var(--muted);cursor:pointer}
.widget[data-w="kem-flow"] .kf-btns{margin-bottom:6px}
.widget[data-w="kem-flow"] .kf-steps{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:12px}
.widget[data-w="kem-flow"] .kf-step{border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:10px;padding:10px 14px;background:var(--panel2);min-width:0}
.widget[data-w="kem-flow"] .kf-step h4{margin:0 0 6px;font-size:1rem}
.widget[data-w="kem-flow"] .kf-step p{margin:0 0 8px;font-size:.9rem}
.widget[data-w="kem-flow"] .kf-kv{display:grid;gap:4px}
.widget[data-w="kem-flow"] .kf-kv>span{font-size:.8rem;color:var(--muted);margin-top:4px}
.widget[data-w="kem-flow"] .kf-kv .out{font-size:.8rem;line-height:1.5}
.widget[data-w="kem-flow"] .kf-hash{cursor:help;border-bottom:1px dotted var(--faint)}
.widget[data-w="kem-flow"] .kf-bars{display:grid;gap:3px}
.widget[data-w="kem-flow"] .kf-bar{display:grid;grid-template-columns:1.4em 1fr 6.5em;gap:8px;align-items:center;font-size:.78rem}
.widget[data-w="kem-flow"] .kf-bar i{position:relative;display:block;height:10px;background:var(--bg);border:1px solid var(--line);border-radius:5px;overflow:hidden}
.widget[data-w="kem-flow"] .kf-bar b{position:absolute;left:0;top:0;bottom:0;background:var(--ok)}
.widget[data-w="kem-flow"] .kf-bar.is-bad b{background:var(--bad)}
.widget[data-w="kem-flow"] .kf-bar em{position:absolute;left:50%;top:-2px;bottom:-2px;border-left:2px dashed var(--fg);opacity:.6}
.widget[data-w="kem-flow"] .kf-bar.is-bad span:last-child{color:var(--bad)}
.widget[data-w="kem-flow"] .kf-verdict{margin-top:14px;font-size:.92rem;line-height:1.5}
.widget[data-w="kem-flow"] .kf-verdict .pill{margin-right:6px}
@media (min-width:620px){.widget[data-w="kem-flow"] .kf-kv{grid-template-columns:minmax(9em,13em) 1fr;align-items:center;column-gap:12px}.widget[data-w="kem-flow"] .kf-kv>span{margin-top:0}}

/* lamport.css */
.widget[data-w="lamport"] .lp-top{align-items:flex-end}
.widget[data-w="lamport"] .lp-msgf{flex:1 1 220px}
.widget[data-w="lamport"] .lp-stats{font-size:.88rem;color:var(--muted);margin:12px 0 8px}
.widget[data-w="lamport"] .lp-stats b{color:var(--fg)}
.widget[data-w="lamport"] .lp-stats b.bad{color:var(--bad)}
.widget[data-w="lamport"] .lp-gridwrap{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:flex-start}
.widget[data-w="lamport"] .lp-grid{display:grid;grid-template-columns:repeat(16,1fr);gap:2px;width:100%;max-width:340px}
.widget[data-w="lamport"] .lp-cell{all:unset;box-sizing:border-box;aspect-ratio:1;display:flex;flex-direction:column;border:1px solid var(--line2);border-radius:3px;overflow:hidden;cursor:pointer;background:var(--bg)}
.widget[data-w="lamport"] .lp-cell i{flex:1;display:block}
.widget[data-w="lamport"] .lp-cell.k0 i:first-child,.widget[data-w="lamport"] .lp-cell.k1 i:last-child{background:var(--cyan)}
.widget[data-w="lamport"] .lp-cell.both{border-color:var(--bad)}
.widget[data-w="lamport"] .lp-cell.both i{background:var(--bad)!important}
.widget[data-w="lamport"] .lp-cell.sel{outline:2px solid var(--fg);outline-offset:1px}
.widget[data-w="lamport"] .lp-cell:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.widget[data-w="lamport"] .lp-legend{display:flex;flex-direction:column;gap:6px;font-size:.82rem;color:var(--muted)}
.widget[data-w="lamport"] .lp-sw{display:inline-block;width:14px;height:14px;border:1px solid var(--line2);border-radius:3px;margin-right:6px;vertical-align:-2px;background:var(--bg)}
.widget[data-w="lamport"] .lp-sw-one{background:linear-gradient(var(--cyan) 50%,var(--bg) 50%)}
.widget[data-w="lamport"] .lp-sw-both{background:var(--bad);border-color:var(--bad)}
.widget[data-w="lamport"] .lp-detail{margin-top:12px;line-height:1.6;font-size:.8rem}
.widget[data-w="lamport"] .lp-h{cursor:help;border-bottom:1px dotted var(--faint)}
.widget[data-w="lamport"] .lp-log{display:grid;gap:6px;margin-top:12px}
.widget[data-w="lamport"] .lp-logrow{font-size:.84rem;line-height:1.5;padding:6px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);overflow-wrap:anywhere}
.widget[data-w="lamport"] .lp-attack{margin-top:16px;border-top:1px dashed var(--line2);padding-top:12px}
.widget[data-w="lamport"] .lp-attack h4{margin:0 0 6px;font-size:1rem}
.widget[data-w="lamport"] .lp-attack-txt{font-size:.9rem;margin:0 0 10px}
.widget[data-w="lamport"] .lp-attack .row{align-items:flex-end}
.widget[data-w="lamport"] .lp-forgef{flex:1 1 220px}
.widget[data-w="lamport"] .lp-forge-out{font-size:.9rem;margin:10px 0 0;overflow-wrap:anywhere}

/* lwe.css */
.widget[data-w="lwe"] .lwe-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.widget[data-w="lwe"] .lwe-col{min-width:0}
.widget[data-w="lwe"] .lwe-small{font-size:.85rem;color:var(--muted);margin:8px 0 4px}
.widget[data-w="lwe"] .lwe-budget{font-size:.88rem;margin:8px 0 10px;line-height:1.45}
.widget[data-w="lwe"] .lwe-keys{margin-top:12px;font-size:.88rem}
.widget[data-w="lwe"] .lwe-keys summary{cursor:pointer;color:var(--accent);font-weight:600}
.widget[data-w="lwe"] .lwe-tablewrap{overflow:auto;max-height:240px;border:1px solid var(--line);border-radius:9px;margin-top:6px}
.widget[data-w="lwe"] .lwe-tbl{border-collapse:collapse;width:100%;font-size:.78rem}
.widget[data-w="lwe"] .lwe-tbl th,.widget[data-w="lwe"] .lwe-tbl td{padding:3px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.widget[data-w="lwe"] .lwe-tbl th{position:sticky;top:0;background:var(--panel2);color:var(--muted);font-weight:600}
.widget[data-w="lwe"] .lwe-e{opacity:.55;font-style:italic}
.widget[data-w="lwe"] .lwe-bitrow{margin-bottom:6px}
.widget[data-w="lwe"] .lwe-wheel{display:block;width:100%;max-width:260px;margin:4px auto 0;height:auto}
.widget[data-w="lwe"] .lwe-res{font-size:.9rem;min-height:2.8em;margin:6px 0 0}
.widget[data-w="lwe"] .lwe-steps{margin:14px 0 10px;line-height:1.6}
.widget[data-w="lwe"] .lwe-out{font-size:.9rem;margin:10px 0 0}
.widget[data-w="lwe"] .pill{margin-right:4px}
@media (max-width:640px){.widget[data-w="lwe"] .lwe-grid{grid-template-columns:1fr}}

/* merkle.css */
.widget[data-w="merkle"] .mk-svgwrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:6px}
.widget[data-w="merkle"] .mk-svg{display:block;width:100%;height:auto}
.widget[data-w="merkle"] .mk-node[data-l="0"]{cursor:pointer}
.widget[data-w="merkle"] .mk-node[data-l="0"]:focus{outline:none}
.widget[data-w="merkle"] .mk-node[data-l="0"]:focus-visible rect{stroke:var(--accent);stroke-width:3}
.widget[data-w="merkle"] .mk-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.78rem;color:var(--muted);margin:8px 0}
.widget[data-w="merkle"] .mk-sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid var(--line2)}
.widget[data-w="merkle"] .mk-sw.path{background:var(--accent);border-color:var(--accent)}
.widget[data-w="merkle"] .mk-sw.sib{background:var(--accent-2);border-color:var(--accent-2)}
.widget[data-w="merkle"] .mk-sw.used{border:1.5px dashed var(--faint)}
.widget[data-w="merkle"] .mk-check{display:flex;gap:8px;align-items:center;font-size:.88rem;color:var(--muted);cursor:pointer}
.widget[data-w="merkle"] .mk-verify{margin-top:10px;line-height:1.7;font-size:.78rem}
.widget[data-w="merkle"] .mk-h{cursor:help;border-bottom:1px dotted var(--faint)}
.widget[data-w="merkle"] .mk-state{margin-top:16px;border-top:1px dashed var(--line2);padding-top:10px}
.widget[data-w="merkle"] .mk-state h4{margin:0 0 8px;font-size:1rem}
.widget[data-w="merkle"] .mk-counter{font-size:.9rem;margin:10px 0 6px}
.widget[data-w="merkle"] .mk-log{margin:0;padding-left:18px;font-size:.84rem;max-height:160px;overflow:auto}
.widget[data-w="merkle"] .mk-log li{margin:3px 0}

/* mosca.css */
.widget[data-w="mosca"] .mo-pre{margin-bottom:14px;font-size:.85rem}
.widget[data-w="mosca"] .mo-sl{display:flex;flex-direction:column;gap:14px}
.widget[data-w="mosca"] .mo-sl .field>span{color:var(--fg);font-size:.92rem}
.widget[data-w="mosca"] .mo-sl .mono{color:var(--accent);white-space:nowrap}
.widget[data-w="mosca"] .mo-k{display:inline-flex;align-items:center;justify-content:center;width:1.6em;height:1.6em;border-radius:6px;margin-right:6px;font-family:var(--mono);color:var(--accent-ink)}
.widget[data-w="mosca"] .mo-k.x{background:var(--cyan)}
.widget[data-w="mosca"] .mo-k.y{background:var(--accent)}
.widget[data-w="mosca"] .mo-k.z{background:var(--accent-2)}
.widget[data-w="mosca"] .mo-znote{font-size:.82rem;margin:8px 0 12px}
.widget[data-w="mosca"] .mo-verdict{border:1px solid currentColor;border-radius:10px;padding:10px 12px;font-size:.92rem}
.widget[data-w="mosca"] .mo-verdict b{display:block;font-size:1.05rem;margin-bottom:2px}
.widget[data-w="mosca"] .mo-verdict.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,transparent)}
.widget[data-w="mosca"] .mo-verdict.bad{color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,transparent)}
.widget[data-w="mosca"] .mo-verdict.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 8%,transparent)}
.widget[data-w="mosca"] .mo-tlwrap{overflow-x:auto;margin-top:14px}
.widget[data-w="mosca"] .mo-tl{position:relative;min-width:240px;padding:24px 0 0}
.widget[data-w="mosca"] .mo-track{position:relative;height:44px;margin-bottom:6px;background:var(--panel2);border-radius:8px}
.widget[data-w="mosca"] .mo-tlab{position:absolute;left:8px;top:3px;font-size:.72rem;color:var(--muted);z-index:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 16px)}
.widget[data-w="mosca"] .mo-bar{position:absolute;bottom:5px;height:16px;border-radius:5px;transition:left .25s,width .25s}
.widget[data-w="mosca"] .mo-bar.y{background:var(--accent)}
.widget[data-w="mosca"] .mo-bar.x{background:var(--cyan)}
.widget[data-w="mosca"] .mo-bar.ex{background:repeating-linear-gradient(45deg,var(--bad) 0 5px,transparent 5px 9px);border:1.5px solid var(--bad);height:22px;bottom:2px}
.widget[data-w="mosca"] .mo-z-line{position:absolute;top:20px;bottom:20px;width:0;border-left:2px dashed var(--accent-2);z-index:3;transition:left .25s}
.widget[data-w="mosca"] .mo-z-line span{position:absolute;top:-20px;left:0;transform:translateX(-50%);font:700 .72rem var(--mono);color:var(--accent-2);white-space:nowrap;background:var(--panel);padding:0 4px}
.widget[data-w="mosca"] .mo-axis{position:relative;height:20px;border-top:1px solid var(--line2);margin-top:4px}
.widget[data-w="mosca"] .mo-axis span{position:absolute;top:2px;transform:translateX(-50%);font:.68rem var(--mono);color:var(--faint)}
.widget[data-w="mosca"] .mo-axis span:first-child{transform:none}
.widget[data-w="mosca"] .mo-rule{text-align:center;font-size:.95rem;margin:8px 0 0}
@media (prefers-reduced-motion:reduce){.widget[data-w="mosca"] *{transition:none!important}}
.widget[data-w="mosca"] [hidden]{display:none!important}

/* pq-check.css */
.widget[data-w="pq-check"] .pc-verdict{display:flex;gap:14px;align-items:flex-start;border:1px solid var(--line2);background:var(--panel2);border-radius:var(--r);padding:14px;margin-bottom:14px}
.widget[data-w="pq-check"] .pc-badge{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font:700 1.2rem var(--head);border:2px solid var(--line2);color:var(--muted)}
.widget[data-w="pq-check"] .pc-text{font-size:.93rem;min-width:0}
.widget[data-w="pq-check"] .pc-text b{display:block;margin-bottom:2px;font-size:1rem}
.widget[data-w="pq-check"] .pc-text code{overflow-wrap:anywhere}
.widget[data-w="pq-check"] .is-ok{border-color:var(--ok)}
.widget[data-w="pq-check"] .is-ok .pc-badge{border-color:var(--ok);color:var(--ok)}
.widget[data-w="pq-check"] .is-warn{border-color:var(--warn)}
.widget[data-w="pq-check"] .is-warn .pc-badge{border-color:var(--warn);color:var(--warn)}
.widget[data-w="pq-check"] .is-info .pc-badge{border-color:var(--cyan);color:var(--cyan)}
.widget[data-w="pq-check"] .pc-modes{margin-bottom:12px}
.widget[data-w="pq-check"] .pc-label{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.9rem;color:var(--muted);margin:4px 0 10px}
.widget[data-w="pq-check"] .pc-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.widget[data-w="pq-check"] .pc-steps>li{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;background:var(--bg)}
.widget[data-w="pq-check"] .pc-steps p{margin:6px 0;font-size:.9rem;color:var(--muted)}
.widget[data-w="pq-check"] .pc-who{display:flex;align-items:center;gap:8px;font-size:.95rem}
.widget[data-w="pq-check"] .pc-dot{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font:700 .75rem var(--sans);flex:0 0 auto}
.widget[data-w="pq-check"] .pc-share{display:grid;grid-template-columns:minmax(0,13em) minmax(0,1fr) 5.6em;gap:10px;align-items:center;font-size:.84rem;margin:5px 0}
.widget[data-w="pq-check"] .pc-sl{overflow-wrap:anywhere;line-height:1.25}
.widget[data-w="pq-check"] .pc-bar{height:14px;border:1px solid var(--line);border-radius:4px;background:var(--panel);overflow:hidden}
.widget[data-w="pq-check"] .pc-bar i{display:block;height:100%;background:var(--cyan);transition:width .4s ease}
.widget[data-w="pq-check"] .pc-share.pq .pc-bar i{background:repeating-linear-gradient(135deg,var(--accent) 0 6px,color-mix(in srgb,var(--accent) 72%,transparent) 6px 10px)}
.widget[data-w="pq-check"] .pc-sb{text-align:right;font-size:.8rem}
.widget[data-w="pq-check"] .pc-sum{color:var(--fg)!important}
.widget[data-w="pq-check"] .pc-combine{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;font-weight:700;color:var(--muted)}
.widget[data-w="pq-check"] .pc-chip{font:600 .8rem var(--sans);padding:5px 10px;border-radius:999px;border:1px solid currentColor}
.widget[data-w="pq-check"] .pc-chip.pq{color:var(--accent)}
.widget[data-w="pq-check"] .pc-chip.cl{color:var(--cyan)}
.widget[data-w="pq-check"] .pc-chip.key{color:var(--ok)}
.widget[data-w="pq-check"] .pc-foot{font-size:.8rem;margin:12px 0 0}
@media (max-width:520px){
  .widget[data-w="pq-check"] .pc-share{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"l b" "t t";row-gap:3px}
  .widget[data-w="pq-check"] .pc-sl{grid-area:l}.widget[data-w="pq-check"] .pc-sb{grid-area:b}.widget[data-w="pq-check"] .pc-bar{grid-area:t}
  .widget[data-w="pq-check"] .pc-verdict{padding:12px;gap:10px;flex-direction:column}
  .widget[data-w="pq-check"] .pc-badge{width:32px;height:32px;font-size:1rem}
}
@media (prefers-reduced-motion:reduce){.widget[data-w="pq-check"] .pc-bar i{transition:none}}

/* qubit.css */
.widget[data-w="qubit"] .qb-top{display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.widget[data-w="qubit"] .qb-svg{width:190px;height:190px;flex:0 0 auto;margin:0 auto}
.widget[data-w="qubit"] .qb-ring{fill:var(--panel2);stroke:var(--line2);stroke-width:2}
.widget[data-w="qubit"] .qb-eq{stroke:var(--line2);stroke-dasharray:4 4}
.widget[data-w="qubit"] .qb-pole{fill:var(--muted);font:700 15px var(--mono);text-anchor:middle}
.widget[data-w="qubit"] .qb-arrow{transition:transform .45s cubic-bezier(.3,1.4,.5,1)}
.widget[data-w="qubit"] .qb-arrow line{stroke:var(--accent);stroke-width:5;stroke-linecap:round}
.widget[data-w="qubit"] .qb-arrow circle{fill:var(--accent)}
.widget[data-w="qubit"].qb-col .qb-arrow line{stroke:var(--accent-2)}
.widget[data-w="qubit"].qb-col .qb-arrow circle{fill:var(--accent-2)}
.widget[data-w="qubit"] .qb-ctl{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:10px}
.widget[data-w="qubit"] .qb-ctl .out{margin:0;line-height:1.7}
.widget[data-w="qubit"] .qb-one{margin:0;font-size:.9rem;min-height:1.4em}
.widget[data-w="qubit"] .qb-stats,.widget[data-w="qubit"] .qb-pair{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}
.widget[data-w="qubit"] .qb-lab{font-size:.88rem;color:var(--muted)}
.widget[data-w="qubit"] .qb-hist,.widget[data-w="qubit"] .qb-phist{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.widget[data-w="qubit"] .qb-bar{display:grid;grid-template-columns:2.2em 1fr 7.5em;gap:8px;align-items:center}
.widget[data-w="qubit"] .qb-bl{font-weight:700;text-align:right}
.widget[data-w="qubit"] .qb-bn{font-size:.8rem;color:var(--muted)}
.widget[data-w="qubit"] .qb-track{position:relative;height:18px;background:var(--panel2);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.widget[data-w="qubit"] .qb-track i{position:absolute;inset:0 auto 0 0;background:var(--cyan);transition:width .3s}
.widget[data-w="qubit"] .qb-track s{position:absolute;top:-1px;bottom:-1px;width:3px;margin-left:-1px;background:var(--fg)}
.widget[data-w="qubit"] .qb-tick{display:inline-block;width:3px;height:12px;background:var(--fg);vertical-align:-1px}
.widget[data-w="qubit"] .qb-legend{font-size:.8rem;margin:0}
.widget[data-w="qubit"] .qb-tape{font-size:.78rem;margin:8px 0 0;overflow-wrap:anywhere}
.widget[data-w="qubit"] .qb-pair h4{margin:0 0 10px;font-size:1rem}
.widget[data-w="qubit"] .qb-pnote{font-size:.9rem;margin:10px 0 0}
@media (prefers-reduced-motion:reduce){.widget[data-w="qubit"] *{transition:none!important}}
.widget[data-w="qubit"] [hidden]{display:none!important}
@media (max-width:560px){.widget[data-w="qubit"] .qb-bar{grid-template-columns:1.8em 1fr 6.4em;gap:6px}.widget[data-w="qubit"] .qb-bn{font-size:.72rem}}

/* shor-period.css */
.widget[data-w="shor-period"] .sp-ctl{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.widget[data-w="shor-period"] .sp-ctl .field{flex:1 1 120px}
.widget[data-w="shor-period"] .sp-ctl input,.widget[data-w="shor-period"] .sp-ctl select{width:100%;font-family:var(--mono)}
.widget[data-w="shor-period"] .sp-ctl .btn{margin-bottom:3px}
.widget[data-w="shor-period"] .sp-steps{list-style:none;padding:0;margin:16px 0 8px;display:flex;flex-direction:column;gap:8px}
.widget[data-w="shor-period"] .sp-steps li{position:relative;padding:9px 12px 9px 38px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);font-size:.92rem}
.widget[data-w="shor-period"] .sp-ic{position:absolute;left:12px;top:9px;font-weight:700;width:18px;text-align:center}
.widget[data-w="shor-period"] .sp-steps li.ok .sp-ic{color:var(--ok)}
.widget[data-w="shor-period"] .sp-steps li.bad{border-color:var(--bad)}
.widget[data-w="shor-period"] .sp-steps li.bad .sp-ic{color:var(--bad)}
.widget[data-w="shor-period"] .sp-steps li.warn{border-color:var(--warn)}
.widget[data-w="shor-period"] .sp-steps li.warn .sp-ic{color:var(--warn)}
.widget[data-w="shor-period"] .sp-steps li.q{border-color:var(--cyan)}
.widget[data-w="shor-period"] .sp-steps li.q .sp-ic{color:var(--cyan)}
.widget[data-w="shor-period"] .sp-steps li.win{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--panel2))}
.widget[data-w="shor-period"] .sp-steps li.win .sp-ic{color:var(--ok)}
.widget[data-w="shor-period"] .sp-chartwrap{overflow-x:auto;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.widget[data-w="shor-period"] .sp-chart{display:block;width:100%;height:auto}
.widget[data-w="shor-period"] .sp-ax{stroke:var(--line2);stroke-width:1.5}
.widget[data-w="shor-period"] .sp-t{fill:var(--muted);font:11px var(--mono)}
.widget[data-w="shor-period"] .sp-band{fill:var(--accent);opacity:.09}
.widget[data-w="shor-period"] .sp-rl{stroke:var(--accent);stroke-dasharray:3 4;opacity:.7}
.widget[data-w="shor-period"] .sp-line{fill:none;stroke:var(--cyan);stroke-width:1.5;opacity:.55}
.widget[data-w="shor-period"] .sp-dot{fill:var(--cyan)}
.widget[data-w="shor-period"] .sp-one{fill:var(--accent-2);stroke:var(--bg);stroke-width:1.5}
.widget[data-w="shor-period"] .sp-sum{font-size:.88rem;margin:10px 0 0}
.widget[data-w="shor-period"] .sp-leg{font-size:.8rem;margin:6px 0 0}
.widget[data-w="shor-period"] .sp-lk{color:var(--accent-2)}
.widget[data-w="shor-period"] [hidden]{display:none!important}

/* size-chart.css */
.widget[data-w="size-chart"] .sc-ctrl{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.widget[data-w="size-chart"] .sc-log{display:inline-flex;gap:8px;align-items:center;font-size:.9rem;color:var(--muted);cursor:pointer}
.widget[data-w="size-chart"] .sc-legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.82rem;color:var(--muted);margin:4px 0 10px}
.widget[data-w="size-chart"] .sc-legend span{display:inline-flex;align-items:center;gap:6px}
.widget[data-w="size-chart"] .sc-sw{display:inline-block;width:14px;height:10px;border-radius:3px}
.widget[data-w="size-chart"] .sc-sw.cl{background:var(--cyan)}
.widget[data-w="size-chart"] .sc-sw.pq{background:repeating-linear-gradient(135deg,var(--accent) 0 4px,color-mix(in srgb,var(--accent) 70%,transparent) 4px 7px)}
.widget[data-w="size-chart"] .sc-bars{display:flex;flex-direction:column;gap:6px}
.widget[data-w="size-chart"] .sc-row{display:grid;grid-template-columns:minmax(0,11.5em) minmax(0,1fr) 7.6em;align-items:center;gap:10px;width:100%;background:transparent;border:1px solid transparent;border-radius:9px;padding:5px 6px;color:var(--fg);font:inherit;font-size:.88rem;text-align:left;cursor:pointer}
.widget[data-w="size-chart"] .sc-row:hover{border-color:var(--line2);background:var(--panel2)}
.widget[data-w="size-chart"] .sc-row.is-base{border-color:var(--accent);background:var(--panel2)}
.widget[data-w="size-chart"] .sc-name{font-weight:600;overflow-wrap:anywhere;line-height:1.25}
.widget[data-w="size-chart"] .sc-name em{display:block;font-style:normal;font-weight:500;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.widget[data-w="size-chart"] .sc-row.pq .sc-name em{color:var(--accent)}
.widget[data-w="size-chart"] .sc-track{height:16px;background:var(--bg);border:1px solid var(--line);border-radius:5px;overflow:hidden}
.widget[data-w="size-chart"] .sc-fill{display:block;height:100%;background:var(--cyan);transition:width .35s ease}
.widget[data-w="size-chart"] .sc-row.pq .sc-fill{background:repeating-linear-gradient(135deg,var(--accent) 0 6px,color-mix(in srgb,var(--accent) 72%,transparent) 6px 10px)}
.widget[data-w="size-chart"] .sc-val{text-align:right;font-size:.8rem;line-height:1.25}
.widget[data-w="size-chart"] .sc-val small{display:block;color:var(--muted);font-size:.72rem}
.widget[data-w="size-chart"] .sc-msg{margin:12px 0 4px;font-size:.92rem;min-height:2.6em}
.widget[data-w="size-chart"] .sc-foot{font-size:.8rem;margin:6px 0 0}
@media (max-width:520px){
  .widget[data-w="size-chart"] .sc-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n v" "t t";row-gap:4px}
  .widget[data-w="size-chart"] .sc-name{grid-area:n}
  .widget[data-w="size-chart"] .sc-val{grid-area:v}
  .widget[data-w="size-chart"] .sc-track{grid-area:t}
}
@media (prefers-reduced-motion:reduce){.widget[data-w="size-chart"] .sc-fill{transition:none}}

/* timeline.css */
.widget[data-w="timeline"] .tl-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.widget[data-w="timeline"] .tl-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line2);border-radius:999px;padding:5px 12px 5px 9px;font-size:.84rem;cursor:pointer;background:var(--bg)}
.widget[data-w="timeline"] .tl-chip:has(input:checked){border-color:var(--tl-c);background:var(--panel2)}
.widget[data-w="timeline"] .tl-nsa{--tl-c:var(--accent)}
.widget[data-w="timeline"] .tl-us{--tl-c:var(--bad)}
.widget[data-w="timeline"] .tl-nist{--tl-c:var(--cyan)}
.widget[data-w="timeline"] .tl-uk{--tl-c:var(--accent-2)}
.widget[data-w="timeline"] .tl-eu{--tl-c:var(--ok)}
.widget[data-w="timeline"] .tl-fut{display:inline-flex;gap:8px;align-items:center;font-size:.88rem;color:var(--muted);cursor:pointer}
.widget[data-w="timeline"] .tl-count{font-size:.92rem;margin:10px 0 6px;min-height:1.5em}
.widget[data-w="timeline"] .tl-list{position:relative;border-left:2px solid var(--line2);margin-left:6px;padding-left:16px}
.widget[data-w="timeline"] .tl-year{position:relative;margin:0 0 6px}
.widget[data-w="timeline"] .tl-y{margin:14px 0 6px;font-size:1.05rem;color:var(--fg)}
.widget[data-w="timeline"] .tl-y::before{content:"";position:absolute;left:-23px;top:20px;width:12px;height:12px;border-radius:50%;background:var(--panel);border:2px solid var(--accent)}
.widget[data-w="timeline"] .tl-year.past .tl-y{color:var(--muted)}
.widget[data-w="timeline"] .tl-year.past .tl-y::before{border-color:var(--faint);background:var(--faint)}
.widget[data-w="timeline"] .tl-year ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.widget[data-w="timeline"] .tl-ev{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-left:4px solid var(--tl-c);border-radius:9px;padding:8px 10px;background:var(--bg);font-size:.88rem}
.widget[data-w="timeline"] .tl-ev.past{opacity:.72}
.widget[data-w="timeline"] .tl-ev.k-prop{border-style:dashed;border-left-style:solid}
.widget[data-w="timeline"] .tl-ev p{margin:2px 0 0;color:var(--muted);font-size:.85rem}
.widget[data-w="timeline"] .tl-ev>div{min-width:0}
.widget[data-w="timeline"] .tl-tag{flex:0 0 3.4em;text-align:center;font:700 .68rem/1 var(--sans);letter-spacing:.05em;padding:5px 0;border-radius:6px;border:1px solid var(--tl-c);color:var(--tl-c)}
.widget[data-w="timeline"] .tl-kind{display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin-left:4px}
.widget[data-w="timeline"] .k-dl .tl-kind{color:var(--warn)}
.widget[data-w="timeline"] .tl-now{position:relative;margin:14px 0 8px -25px;display:flex;align-items:center;gap:8px}
.widget[data-w="timeline"] .tl-now::before{content:"";flex:0 0 16px;height:16px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-2) 30%,transparent)}
.widget[data-w="timeline"] .tl-now span{font:700 .78rem var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-2);border-bottom:2px dashed var(--accent-2);flex:1;padding-bottom:2px}
.widget[data-w="timeline"] .tl-foot{font-size:.8rem;margin:14px 0 0}
@media (max-width:520px){.widget[data-w="timeline"] .tl-ev{flex-direction:column;gap:6px}.widget[data-w="timeline"] .tl-tag{flex:0 0 auto;padding:4px 8px}.widget[data-w="timeline"] .tl-list{padding-left:12px}.widget[data-w="timeline"] .tl-y::before{left:-19px}.widget[data-w="timeline"] .tl-now{margin-left:-21px}}

/* timing-leak.css */
.widget[data-w="timing-leak"] .tl-modes{margin-bottom:8px}
.widget[data-w="timing-leak"] .tl-code{margin:8px 0 12px;font-size:.78rem;padding:10px 12px}
.widget[data-w="timing-leak"] .tl-sliders{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.widget[data-w="timing-leak"] .tl-guess{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:14px 0 8px}
.widget[data-w="timing-leak"] .tl-ch{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:38px;height:46px;border:1px solid var(--line2);border-radius:8px;font:700 1.15rem/1 var(--mono);background:var(--bg);color:var(--fg)}
.widget[data-w="timing-leak"] .tl-ch small{font:600 .6rem/1 var(--sans);margin-top:4px;color:var(--muted)}
.widget[data-w="timing-leak"] .tl-ch.ok{border-color:var(--ok)}
.widget[data-w="timing-leak"] .tl-ch.ok small{color:var(--ok)}
.widget[data-w="timing-leak"] .tl-ch.bad{border-color:var(--bad)}
.widget[data-w="timing-leak"] .tl-ch.bad small{color:var(--bad)}
.widget[data-w="timing-leak"] .tl-ch.cur{border:2px dashed var(--accent)}
.widget[data-w="timing-leak"] .tl-secret{font-size:.8rem;color:var(--muted);margin-left:auto}
.widget[data-w="timing-leak"] .tl-reveal{font:inherit;color:var(--accent);background:none;border:0;text-decoration:underline;cursor:pointer;padding:0}
.widget[data-w="timing-leak"] .tl-chart{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--bg);min-height:120px}
.widget[data-w="timing-leak"] .tl-empty{margin:40px 0;text-align:center;font-size:.85rem}
.widget[data-w="timing-leak"] .tl-cap{font-size:.76rem;color:var(--muted);margin:2px 0 6px}
.widget[data-w="timing-leak"] .tl-bars{display:grid;grid-template-columns:repeat(16,1fr);gap:3px;height:120px;align-items:end}
.widget[data-w="timing-leak"] .tl-col{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:0}
.widget[data-w="timing-leak"] .tl-col i{display:block;width:100%;background:var(--line2);border-radius:3px 3px 0 0;box-sizing:border-box}
.widget[data-w="timing-leak"] .tl-col.best i{background:var(--accent)}
.widget[data-w="timing-leak"] .tl-col.truth i{outline:2px solid var(--ok);outline-offset:-2px}
.widget[data-w="timing-leak"] .tl-col span{font-size:.7rem;color:var(--muted);margin-top:3px}
.widget[data-w="timing-leak"] .tl-col.best span{color:var(--accent);font-weight:700}
.widget[data-w="timing-leak"] .tl-col.best span::after{content:"▲";display:block;font-size:.55rem;text-align:center}
.widget[data-w="timing-leak"] .tl-status{font-size:.9rem;margin:10px 0;min-height:2.8em}
@media (max-width:560px){.widget[data-w="timing-leak"] .tl-sliders{grid-template-columns:1fr}.widget[data-w="timing-leak"] .tl-ch{width:34px}}

/* toy-rsa.css */
.widget[data-w="toy-rsa"] .rs-pre{margin-bottom:12px}
.widget[data-w="toy-rsa"] .rs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.widget[data-w="toy-rsa"] .rs-grid input{width:100%;font-family:var(--mono)}
.widget[data-w="toy-rsa"] .rs-err{min-height:1.2em;margin:8px 0;font-size:.9rem}
.widget[data-w="toy-rsa"] .rs-keys{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.widget[data-w="toy-rsa"] .rs-card{border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;background:var(--panel2);min-width:0}
.widget[data-w="toy-rsa"] .rs-card p{margin:4px 0;overflow-wrap:anywhere}
.widget[data-w="toy-rsa"] .rs-card.pub{border-left:3px solid var(--ok)}
.widget[data-w="toy-rsa"] .rs-card.priv{border-left:3px solid var(--bad)}
.widget[data-w="toy-rsa"] .rs-card .faint{font-size:.78rem}
.widget[data-w="toy-rsa"].rs-bad .rs-keys{opacity:.5}
.widget[data-w="toy-rsa"] .rs-msg{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.widget[data-w="toy-rsa"] .rs-msg input{font-family:var(--mono)}
.widget[data-w="toy-rsa"] .rs-flow div,.widget[data-w="toy-rsa"] .rs-aout div{margin:2px 0}
.widget[data-w="toy-rsa"] .rs-flow p,.widget[data-w="toy-rsa"] .rs-aout p{margin:8px 0 0;font-family:var(--sans);font-size:.85rem}
.widget[data-w="toy-rsa"] .rs-c{color:var(--accent)}
.widget[data-w="toy-rsa"] .rs-attack{margin-top:16px;border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}
.widget[data-w="toy-rsa"] .rs-hint{font-size:.85rem}
.widget[data-w="toy-rsa"] .rs-scale summary{cursor:pointer;color:var(--accent);font-size:.92rem}
.widget[data-w="toy-rsa"] .rs-tbl{overflow:auto}
.widget[data-w="toy-rsa"] .rs-tbl:empty::before{content:"Run the attacker first to measure your browser's speed.";color:var(--faint);font-size:.88rem}
.widget[data-w="toy-rsa"] .rs-tbl table{border-collapse:collapse;margin-top:8px;font-size:.88rem;width:100%}
.widget[data-w="toy-rsa"] .rs-tbl th,.widget[data-w="toy-rsa"] .rs-tbl td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left}
.widget[data-w="toy-rsa"] .rs-tbl p{font-size:.85rem}
@media (max-width:560px){
  .widget[data-w="toy-rsa"] .rs-grid{grid-template-columns:1fr 1fr}
  .widget[data-w="toy-rsa"] .rs-grid label:last-child{grid-column:1/-1}
  .widget[data-w="toy-rsa"] .rs-keys{grid-template-columns:1fr}
}
.widget[data-w="toy-rsa"] [hidden]{display:none!important}

/* wots.css */
.widget[data-w="wots"] .wo-ctl{align-items:flex-end}
.widget[data-w="wots"] .wo-ws{gap:6px}
.widget[data-w="wots"] .wo-msgf{flex:1 1 200px}
.widget[data-w="wots"] .wo-stats{margin:14px 0 6px;min-height:3em}
.widget[data-w="wots"] .wo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.widget[data-w="wots"] .wo-grid>div{background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:8px 10px;min-width:0}
.widget[data-w="wots"] .wo-grid b{display:block;font:700 1.1rem var(--head);color:var(--fg)}
.widget[data-w="wots"] .wo-grid span{font-size:.76rem;color:var(--muted);line-height:1.3;display:block}
.widget[data-w="wots"] .wo-small{font-size:.86rem;color:var(--muted);margin:8px 0}
.widget[data-w="wots"] .wo-small b{color:var(--fg)}
.widget[data-w="wots"] .wo-h{cursor:help;border-bottom:1px dotted var(--faint);color:var(--fg)}
.widget[data-w="wots"] .wo-focus{border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--bg);margin:10px 0}
.widget[data-w="wots"] .wo-strip{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin:6px 0}
.widget[data-w="wots"] .wo-node{position:relative;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:28px;height:30px;padding:0 4px;border-radius:7px;font:600 .74rem/1 var(--mono);border:1px solid var(--line2);color:var(--fg)}
.widget[data-w="wots"] .wo-node small{font-size:.58rem;color:var(--muted);margin-top:2px}
.widget[data-w="wots"] .wo-node.secret{background:var(--panel2);color:var(--faint);border-style:dashed}
.widget[data-w="wots"] .wo-node.sig{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.widget[data-w="wots"] .wo-node.sig small{color:var(--accent-ink)}
.widget[data-w="wots"] .wo-node.pub{border-color:var(--cyan);color:var(--cyan)}
.widget[data-w="wots"] .wo-gap{font-size:.72rem;color:var(--faint);padding:0 4px}
.widget[data-w="wots"] .wo-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.76rem;color:var(--muted);margin:4px 0 0}
.widget[data-w="wots"] .wo-sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px;border:1px solid var(--line2)}
.widget[data-w="wots"] .wo-sw.secret{background:var(--panel2);border-style:dashed}
.widget[data-w="wots"] .wo-sw.sig{background:var(--accent);border-color:var(--accent)}
.widget[data-w="wots"] .wo-sw.pub{border-color:var(--cyan);background:transparent;box-shadow:inset 0 0 0 2px var(--cyan)}
.widget[data-w="wots"] .wo-chains{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:3px 10px;max-height:230px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.widget[data-w="wots"] .wo-row{all:unset;box-sizing:border-box;display:grid;grid-template-columns:2.6em 1fr 2.2em;gap:6px;align-items:center;font-size:.72rem;cursor:pointer;padding:1px 4px;border-radius:5px;color:var(--muted)}
.widget[data-w="wots"] .wo-row:hover{background:var(--panel2)}
.widget[data-w="wots"] .wo-row.sel{background:var(--panel2);outline:1px solid var(--accent)}
.widget[data-w="wots"] .wo-row:focus-visible{outline:2px solid var(--accent)}
.widget[data-w="wots"] .wo-row i{display:block;height:7px;border-radius:4px;background:var(--panel2);border:1px solid var(--line);overflow:hidden}
.widget[data-w="wots"] .wo-row b{display:block;height:100%;background:var(--accent)}
.widget[data-w="wots"] .wo-row.ck b{background:var(--accent-2)}
.widget[data-w="wots"] .wo-row.ck .wo-idx{color:var(--accent-2)}
.widget[data-w="wots"] .wo-d{text-align:right;color:var(--fg)}
.widget[data-w="wots"] .wo-attack{margin-top:16px;border-top:1px dashed var(--line2);padding-top:10px}
.widget[data-w="wots"] .wo-attack h4{margin:0;font-size:1rem}
.widget[data-w="wots"] .wo-check{display:flex;gap:8px;align-items:center;font-size:.88rem;color:var(--muted);cursor:pointer}
.widget[data-w="wots"] .wo-forge-out{font-size:.9rem;margin:10px 0 0}
@media (max-width:600px){.widget[data-w="wots"] .wo-grid{grid-template-columns:repeat(2,1fr)}}
