/* Layout: an instrument, not a book. One search bar on every screen; a left rail on desktop and a tab bar on phones;
   every entry reads as its own page, and every answer is a ranked list of hypotheses with the evidence for each. */
:root{
  --bg:#F3F4F7; --surface:#FFFFFF; --sunk:#E9EBF1; --raised:#FFFFFF;
  --ink:#171A2C; --muted:#585C74; --faint:#80849C; --line:#D9DCE6; --line-strong:#C3C7D6;
  --accent:#3B3DA6; --accent-ink:#FFFFFF; --accent-soft:#E7E8F8; --accent-line:#B8BAEA;
  --mark:#FBE8A6; --scrim:rgba(18,20,36,.42); --shadow:0 1px 2px rgba(20,22,40,.06),0 8px 28px rgba(20,22,40,.10);
  --ev-strong:#1F7A4D; --ev-moderate:#23757D; --ev-mixed:#9C620B; --ev-clinical:#5E6878; --ev-weak:#B03A3A;
  --f-display:"Newsreader", "Iowan Old Style", Georgia, serif;
  --f-body:"Atkinson Hyperlegible Next", "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --r:10px; --r-s:6px; --rail:252px; --bar:60px; --tabbar:0px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#11121C; --surface:#181A27; --sunk:#0D0E17; --raised:#1F2132;
  --ink:#E7E8F2; --muted:#A1A4BD; --faint:#73769A; --line:#2A2D42; --line-strong:#3A3E58;
  --accent:#A9ABF5; --accent-ink:#11121C; --accent-soft:#23254A; --accent-line:#4B4E9C;
  --mark:#4D4420; --scrim:rgba(4,5,10,.62); --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.45);
  --ev-strong:#6CC79A; --ev-moderate:#6CC3C9; --ev-mixed:#E4B25F; --ev-clinical:#A9B3C2; --ev-weak:#F08A80; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#11121C; --surface:#181A27; --sunk:#0D0E17; --raised:#1F2132;
  --ink:#E7E8F2; --muted:#A1A4BD; --faint:#73769A; --line:#2A2D42; --line-strong:#3A3E58;
  --accent:#A9ABF5; --accent-ink:#11121C; --accent-soft:#23254A; --accent-line:#4B4E9C;
  --mark:#4D4420; --scrim:rgba(4,5,10,.62); --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.45);
  --ev-strong:#6CC79A; --ev-moderate:#6CC3C9; --ev-mixed:#E4B25F; --ev-clinical:#A9B3C2; --ev-weak:#F08A80; color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font:16px/1.55 var(--f-body);margin:0;-webkit-font-smoothing:antialiased}
button,select,textarea,input{font:inherit;color:inherit}
button{cursor:pointer}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
h1,h2,h3{text-wrap:balance}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- shell ---------- */
.rail{position:fixed;top:0;bottom:0;left:0;width:var(--rail);padding:calc(18px + env(safe-area-inset-top,0px)) 14px 18px max(14px, env(safe-area-inset-left,0px));border-right:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:18px;overflow-y:auto;z-index:30}
.brand{display:flex;gap:10px;align-items:center;background:none;border:0;padding:4px 6px;text-align:left;color:var(--ink)}
.psi{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-ink);font:500 21px/1 var(--f-display)}
.brand b{display:block;font:600 16px/1.15 var(--f-display);letter-spacing:-.005em}
.brand small{display:block;font:700 12.5px/1.3 var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted)}
.nav{display:grid;gap:2px}
.nav button{display:flex;align-items:center;gap:12px;border:0;background:none;padding:9px 10px;border-radius:var(--r-s);color:var(--muted);font-weight:600;font-size:15px;text-align:left}
.nav button svg{flex:none;width:20px;height:20px}
.nav button:hover{background:var(--sunk);color:var(--ink)}
.nav button[aria-current="page"]{background:var(--accent-soft);color:var(--ink)}
.nav button[aria-current="page"] svg{color:var(--accent)}
.railsec{display:grid;gap:4px}
.railsec h4{font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted);margin:0 10px 2px;display:flex;justify-content:space-between;align-items:baseline}
.railsec h4 button{border:0;background:none;color:var(--faint);font:inherit;text-transform:none;letter-spacing:0;padding:0}
.railsec h4 button:hover{color:var(--accent)}
.railsec .ri{display:block;width:100%;border:0;background:none;text-align:left;padding:5px 10px;border-radius:var(--r-s);font-size:13.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.railsec .ri:hover{background:var(--sunk)}
.railsec .ri .k{color:var(--muted);font:700 12.5px var(--f-body);margin-right:6px;text-transform:uppercase}
.railsec .none{font-size:13px;color:var(--faint);padding:0 10px}
.railfoot{margin-top:auto;font-size:12px;color:var(--faint);padding:0 10px;line-height:1.45}

.app{margin-left:var(--rail);min-height:100vh}
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:25;background:var(--bg);border-bottom:1px solid var(--line)}
.topbar-in{display:flex;align-items:center;gap:10px;height:var(--bar);padding-left:max(24px, env(safe-area-inset-left,0px));padding-right:max(24px, env(safe-area-inset-right,0px))}
.topbar .brand{display:none}
.sbox{position:relative;flex:1 1 auto;max-width:none;min-width:0}
.sfield{display:flex;align-items:center;gap:8px;height:42px;border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:0 6px 0 14px;transition:border-color .12s, box-shadow .12s}
.sfield:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.sfield svg{flex:none;width:18px;height:18px;color:var(--faint)}
.sfield input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:16px;padding:0;height:100%}
.sfield input::-webkit-search-cancel-button{display:none}
.sfield input::placeholder{color:var(--faint)}
.sfield input:not(:placeholder-shown) ~ .kbd{display:none}
.kbd{font:500 11px var(--f-mono);color:var(--faint);border:1px solid var(--line);border-radius:4px;padding:1px 6px}
.iconbtn{flex:none;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;border:0;background:none;color:var(--muted)}
.iconbtn:hover{background:var(--sunk);color:var(--ink)}
.iconbtn svg{width:19px;height:19px}
.topact{display:flex;align-items:center;gap:4px;margin-left:auto}
.cmpchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:13.5px;font-weight:600}
.cmpchip b{font:600 12px var(--f-mono);background:var(--accent);color:var(--accent-ink);border-radius:999px;min-width:20px;height:20px;display:inline-grid;place-items:center;padding:0 5px}

/* suggestions */
.suggest{position:absolute;left:0;right:0;top:calc(100% + 8px);background:var(--raised);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:8px;max-height:min(70vh,620px);overflow:auto;z-index:40}
.sg-h{display:flex;justify-content:space-between;align-items:baseline;font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted);padding:10px 10px 4px}
.sg-h button{border:0;background:none;font:500 12px var(--f-body);letter-spacing:0;text-transform:none;color:var(--muted);padding:0}
.sg-h button:hover{color:var(--accent)}
.opt{display:flex;align-items:center;gap:10px;width:100%;border:0;background:none;text-align:left;padding:8px 10px;border-radius:var(--r-s);color:var(--ink);min-height:40px}
.opt[aria-selected="true"],.opt:hover{background:var(--sunk)}
.opt .ic{flex:none;width:18px;height:18px;color:var(--faint)}
.opt .tx{flex:1;min-width:0}
.opt .tx b{font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opt.wrap .tx b,.opt.wrap .tx span{white-space:normal}
.opt .tx span{display:block;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.opt .kd{flex:none;font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted)}
.opt .rm{flex:none;border:0;background:none;color:var(--faint);width:28px;height:28px;border-radius:50%;display:grid;place-items:center}
.opt .rm:hover{background:var(--line);color:var(--ink)}
.opt.all{color:var(--accent);font-weight:600;border-top:1px solid var(--line);border-radius:0 0 var(--r-s) var(--r-s);margin-top:6px}
.sg-close{display:none;justify-content:flex-end;padding:2px 6px 0}
.sg-try{display:flex;flex-wrap:wrap;gap:6px;padding:4px 10px 10px}

/* ---------- page frame ---------- */
main{padding-top:28px;padding-bottom:calc(96px + var(--tabbar) + env(safe-area-inset-bottom,0px));padding-left:max(24px, env(safe-area-inset-left,0px));padding-right:max(24px, env(safe-area-inset-right,0px))}
.page{max-width:1080px;margin:0 auto}
.narrow{max-width:760px;margin:0 auto}
.eyebrow{font:700 13px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted)}
.h1{font:500 clamp(30px,4.2vw,44px)/1.08 var(--f-display);letter-spacing:-.015em;margin:6px 0 10px}
.h2{font:500 26px/1.2 var(--f-display);letter-spacing:-.01em;margin:0}
.sub{font-size:17px;color:var(--muted);max-width:62ch;margin:0}
.sec{margin-top:40px}
.sec-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 12px;flex-wrap:wrap}
.sec-h h2{font:500 22px/1.25 var(--f-display);margin:0}
.sec-h .n{font:400 12px var(--f-mono);color:var(--faint);margin-left:6px}
.meta{font-size:13.5px;color:var(--muted)}
.linkbtn{border:0;background:none;padding:0;color:var(--accent);font-weight:600;font-size:14px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.backbtn{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--muted);font-weight:600;font-size:14px;padding:6px 8px 6px 2px;margin-bottom:10px}
.backbtn:hover{color:var(--ink)}
.backbtn svg{width:18px;height:18px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:999px;padding:8px 15px;font-size:14px;font-weight:600;min-height:38px}
.btn:hover{border-color:var(--ink)}
.btn svg{width:17px;height:17px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.on{background:var(--accent-soft);border-color:var(--accent-line)}
.btn:disabled{opacity:.5;cursor:default}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:6px 12px;font-size:14px;line-height:1.25;text-align:left}
.chip:hover{border-color:var(--line-strong)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.chip .n{font:400 11px var(--f-mono);opacity:.65}
.chip .x{opacity:.6;margin-left:2px}
.qchip{border-style:dashed;color:var(--muted)}
.qchip:hover{color:var(--ink);border-style:solid}
.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:999px;padding:3px;background:var(--surface);gap:2px}
.seg button{border:0;background:none;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:600;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.seg .n{font:400 11px var(--f-mono);opacity:.7;margin-left:4px}
mark{background:var(--mark);color:inherit;border-radius:3px;padding:0 2px}

/* evidence signal */
.ev{display:inline-flex;align-items:center;gap:7px;font:700 12.5px/1 var(--f-body);letter-spacing:.045em;text-transform:uppercase;white-space:nowrap;color:var(--ev-c)}
.sig{display:inline-flex;align-items:flex-end;gap:2px;height:12px}
.sig i{width:3px;border-radius:1px;background:currentColor;opacity:.22}
.sig i:nth-child(1){height:4px}.sig i:nth-child(2){height:7px}.sig i:nth-child(3){height:10px}.sig i:nth-child(4){height:12px}
.sig i.on{opacity:1}
.ev-strong{--ev-c:var(--ev-strong)}.ev-moderate{--ev-c:var(--ev-moderate)}.ev-mixed{--ev-c:var(--ev-mixed)}.ev-clinical{--ev-c:var(--ev-clinical)}.ev-weak{--ev-c:var(--ev-weak)}
.ev.quiet .lab{font-size:11px;letter-spacing:.06em}

/* rows / lists */
.list{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);overflow:hidden}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:start;width:100%;border:0;border-top:1px solid var(--line);background:none;padding:13px 16px;text-align:left;color:var(--ink)}
.row:first-child{border-top:0}
.row:hover{background:var(--sunk)}
.row .t{font-weight:600;font-size:15.5px;min-width:0}
.row .d{grid-column:1 / -1;font-size:14px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.row .w{grid-column:1 / -1;font-size:14px;color:var(--ink)}
.row .side{display:flex;align-items:center;gap:10px}
.kind{font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted)}
.grp{border-bottom:1px solid var(--line)}
.grp-h{margin:0;font:500 19px/1.3 var(--f-display);background:var(--bg)}
.grp.open > .grp-h{position:sticky;top:calc(var(--bar) + env(safe-area-inset-top,0px));z-index:5}
.gbtn{display:flex;align-items:center;gap:10px;width:100%;min-height:54px;border:0;background:none;text-align:left;padding:12px 4px 12px 0;color:var(--ink);font:inherit}
.gbtn:hover .gt{color:var(--accent)}
.gbtn svg{flex:none;width:20px;height:20px;color:var(--faint);transform:rotate(-90deg)}
.grp.open > .grp-h .gbtn svg{transform:none;color:var(--accent)}
.gbtn .gt{flex:1;min-width:0}
.gbtn .n{flex:none;font:400 12.5px var(--f-mono);color:var(--faint);font-variant-numeric:tabular-nums}
.gsub{margin:0 0 12px 30px;font-size:14px;color:var(--muted);max-width:66ch}
.gbody{padding:2px 0 22px}
.glist-h{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:28px;margin:4px 0 2px;border-bottom:1px solid var(--line);padding-bottom:6px}
.stage .grp{border-bottom:0}
.stage .grp-h{font-size:21px}
.stage .gbody{padding-bottom:4px}

/* hypotheses: the ranked answer */
.hyp{border:1px solid var(--accent-line);background:var(--surface);border-radius:var(--r);overflow:hidden}
.hyp-h{padding:16px 18px 14px;background:var(--accent-soft);border-bottom:1px solid var(--accent-line)}
.hyp-h .eyebrow{color:var(--accent)}
.hyp-h p{margin:4px 0 0;font:400 19px/1.35 var(--f-display)}
.hyp ol{list-style:none;margin:0;padding:0}
.hyp li{border-top:1px solid var(--line)}
.hyp li:first-child{border-top:0}
.hrow{display:grid;grid-template-columns:44px minmax(0,1fr);gap:2px 4px;width:100%;border:0;background:none;text-align:left;padding:13px 16px 13px 10px;color:var(--ink)}
.hrow:hover{background:var(--sunk)}
.hn{font:500 12px var(--f-mono);color:var(--accent);padding-top:4px;text-align:center}
.hrow .t{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-weight:600;font-size:16px}
.hrow .w{grid-column:2;font-size:14.5px;color:var(--muted)}
.hyp-f{padding:12px 18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:13.5px;color:var(--muted)}
.askcard{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:16px 18px}
.askcard textarea{width:100%;min-height:72px;resize:vertical;margin:10px 0;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--bg);color:var(--ink);font-size:15px}
.askcard .go{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.askres{margin-top:14px}

/* ---------- home ---------- */
.hero{padding:18px 0 6px}
.hero .h1{font-size:clamp(36px,6vw,60px);max-width:14ch}
.hero .sub{font-size:18px}
.tries{margin-top:18px}
.tries .lbl{display:block;margin-bottom:8px}
.lbl{font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted)}
.duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.card{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:18px 20px;min-width:0}
.card h3{font:500 19px/1.3 var(--f-display);margin:0 0 6px}
.card p{margin:0;color:var(--muted);font-size:14.5px}
.doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.door{display:flex;flex-direction:column;gap:6px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:18px 20px;color:var(--ink);min-width:0}
.door:hover{border-color:var(--accent-line);background:color-mix(in srgb, var(--accent-soft) 40%, var(--surface))}
.door .lbl{color:var(--accent)}
.door b{font:500 20px/1.25 var(--f-display)}
.door span{font-size:14.5px;color:var(--muted)}
.door .go{margin-top:auto;padding-top:8px;color:var(--accent);font-weight:700;font-size:14px}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.cat{display:flex;justify-content:space-between;gap:10px;align-items:baseline;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-s);padding:12px 14px;text-align:left;color:var(--ink);font-weight:600;font-size:14.5px}
.cat:hover{border-color:var(--accent-line)}
.cat .n{font:400 12px var(--f-mono);color:var(--faint)}
.resume{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--r);padding:16px 18px}
.resume b{font:500 19px var(--f-display)}
.bar{height:5px;border-radius:3px;background:var(--line);overflow:hidden}
.bar i{display:block;height:100%;background:var(--accent);border-radius:3px}
.histlist{display:grid;gap:6px}
.care{border-left:3px solid var(--ev-mixed);padding:4px 0 4px 16px;color:var(--muted);font-size:14.5px;max-width:72ch}
.care b{color:var(--ink)}
.confirm{display:inline-flex;gap:8px;align-items:center;font-size:13.5px}

/* ---------- entry ---------- */
.entry{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:48px;max-width:1040px;margin:0 auto}
.art{min-width:0;max-width:740px}
.art .h1{font-size:clamp(32px,4.4vw,46px)}
.aka{color:var(--muted);font-size:15px;margin:0 0 14px}
.evblock{display:grid;gap:6px;padding:12px 0 0;border-top:1px solid var(--line);margin-top:12px}
.evblock p{margin:0;font-size:14px;color:var(--muted);max-width:68ch}
.acts{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px}
.lead{font:400 21px/1.5 var(--f-display);margin:22px 0 4px;max-width:62ch}
.blk{margin-top:34px;scroll-margin-top:calc(var(--bar) + 20px)}
.blk > h2{font:500 22px/1.25 var(--f-display);letter-spacing:-.005em;color:var(--ink);margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.blk p{margin:0 0 10px;max-width:68ch}
.signs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sign{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-s);padding:14px 16px;font-size:15px;min-width:0}
.sign b{display:flex;align-items:center;gap:7px;font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.sign b svg{width:15px;height:15px}
.tells{display:grid;gap:10px}
.tell{display:grid;gap:4px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);padding:12px 16px}
.tell .h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tell p{margin:0;font-size:15px;color:var(--ink)}
.trybox{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-s);padding:14px 18px;font-size:15.5px}
.termlink{border:0;background:none;padding:0;color:var(--accent);font-weight:700;text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.termlink.inl{font:inherit;display:inline;text-align:inherit}
.words{display:flex;flex-wrap:wrap;gap:6px}
.words button{border:1px dashed var(--line-strong);background:none;border-radius:999px;padding:3px 11px;font-size:13.5px;color:var(--muted)}
.words button:hover{color:var(--ink);border-style:solid}
.origin{font-size:14.5px;color:var(--muted)}
.cites{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}
.cites li{font-size:14.5px}
.cites .yr{font:500 12.5px var(--f-mono);color:var(--accent);margin-right:8px}
.toc{position:sticky;top:calc(var(--bar) + env(safe-area-inset-top,0px) + 28px);align-self:start;display:grid;gap:2px;font-size:13.5px}
.toc .lbl{margin-bottom:6px}
.toc a{color:var(--muted);text-decoration:none;padding:4px 0 4px 12px;border-left:2px solid var(--line)}
.toc a:hover{color:var(--ink);border-color:var(--accent)}
.cand{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px;border-top:1px solid var(--line);padding:14px 0}
.cand:first-child{border-top:0;padding-top:4px}
.cand .h{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}
.cand p{margin:4px 0 0;font-size:15px}

/* ---------- dictionary ---------- */
.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin:18px 0 12px}
.filters{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:14px 16px;display:grid;gap:12px;margin-bottom:14px}
.filters .lbl{display:block;margin-bottom:6px}
.az{display:flex;flex-wrap:wrap;gap:2px;margin:0 0 6px}
.az a{font:700 14px var(--f-body);text-decoration:none;color:var(--muted);padding:4px 7px;border-radius:4px}
.az a:hover{background:var(--sunk);color:var(--ink)}
[id^="az-"],.grp-h{scroll-margin-top:calc(var(--bar) + 10px)}

/* ---------- learn ---------- */
.learn{display:grid;grid-template-columns:250px minmax(0,1fr);gap:48px;max-width:1080px;margin:0 auto}
.chlist{position:sticky;top:calc(var(--bar) + env(safe-area-inset-top,0px) + 24px);align-self:start;max-height:calc(100vh - var(--bar) - 48px);overflow:auto;font-size:14px}
.chlist ol{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:1px}
.chlist button{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:6px;align-items:baseline;width:100%;text-align:left;border:0;background:none;border-radius:var(--r-s);padding:7px 8px;color:var(--ink)}
.chlist button:hover{background:var(--sunk)}
.chlist button[aria-current="true"]{background:var(--accent-soft);font-weight:700}
.chlist .cn{font:500 11.5px var(--f-mono);color:var(--faint)}
.chlist .rd{font:500 11px var(--f-mono);color:var(--faint)}
.chlist .rd.done{color:var(--ev-strong)}
.chsel{display:none}
.doc{min-width:0;max-width:720px}
.doc .h1{font-size:clamp(30px,4vw,42px)}
.inch{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 24px}
.inch a{font-size:13px;border:1px solid var(--line);border-radius:999px;padding:4px 11px;text-decoration:none;color:var(--muted);background:var(--surface)}
.inch a:hover{color:var(--ink);border-color:var(--line-strong)}
.chbody{font:400 18.5px/1.65 var(--f-display)}
.chbody p,.chbody li{max-width:66ch}
.chbody h3{font:600 23px/1.3 var(--f-display);margin:40px 0 10px;scroll-margin-top:calc(var(--bar) + 20px)}
.chbody ul,.chbody ol{padding-left:24px;display:grid;gap:8px}
.chbody strong{font-weight:600}
.chbody .termlink{font-weight:600}
.chbody .tablewrap{font:15px/1.5 var(--f-body)}
.chnav{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid var(--line);margin-top:48px;padding-top:20px}
.chnav button{display:grid;gap:2px;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:14px 16px;color:var(--ink)}
.chnav button:hover{border-color:var(--accent-line)}
.chnav button.next{text-align:right;background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.chnav button.next .lbl{color:inherit;opacity:.8}
.chnav b{font:500 17px/1.3 var(--f-display)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface);margin:16px 0 28px}
table.data{border-collapse:collapse;width:100%;min-width:640px}
table.data th,table.data td{text-align:left;vertical-align:top;padding:12px 14px;border-top:1px solid var(--line);font-size:15px;line-height:1.5}
table.data thead th{border-top:0;font:700 12.5px var(--f-body);text-transform:uppercase;letter-spacing:.045em;color:var(--muted);background:var(--sunk)}
.loop{margin:18px 0 10px;max-width:760px}
.loop svg{width:100%;height:auto;display:block}
.loop .ln{stroke:var(--muted)} .loop .ln-fill{fill:var(--muted)}
.loop .bx{fill:none;stroke:var(--muted);stroke-width:1.25} .loop .bx-acc{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2}
.loop .t-ink{fill:var(--ink)} .loop .t-mut{fill:var(--muted)}

/* ---------- study / sources ---------- */
.stages{display:grid;gap:18px}
.stage{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px;border-top:1px solid var(--line);padding-top:18px}
.stage .no{font:500 46px/1 var(--f-display);color:var(--accent)}
.stage h3{font:500 21px/1.25 var(--f-display);margin:6px 0 2px}
.stage .meta{margin-bottom:10px}
.steps{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.step{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-s);padding:12px 14px;scroll-margin-top:calc(var(--bar) + 20px)}
.step.done{background:var(--sunk)}
.step.done b{text-decoration:line-through;text-decoration-color:var(--faint)}
.tick{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface);display:grid;place-items:center;color:transparent;padding:0}
.tick svg{width:14px;height:14px}
.step.done .tick{background:var(--ev-strong);border-color:var(--ev-strong);color:var(--surface)}
.step p{margin:2px 0 6px;font-size:14.5px;color:var(--muted)}
.jump{display:flex;flex-wrap:wrap;gap:12px}
.jump a{font:600 13.5px var(--f-body);text-decoration:none}
.rgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rcard{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-s);padding:14px 16px;display:grid;gap:4px;align-content:start;min-width:0;scroll-margin-top:calc(var(--bar) + 20px)}
.rcard .top{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.rcard h4{margin:0;font:500 17px/1.3 var(--f-display)}
.rcard h4 a{color:var(--ink);text-decoration-color:var(--line-strong);text-underline-offset:3px}
.rcard h4 a:hover{color:var(--accent)}
.rcard p{margin:4px 0 0;font-size:14.5px}
.pathtag{font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--accent);white-space:nowrap}
.tag{font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:2px 6px}
.tag.study{color:var(--accent);border-color:var(--accent-line)}
.era{margin-top:30px}
.era h3{font:500 22px var(--f-display);margin:0;display:flex;gap:10px;align-items:baseline}
.era h3 .n{font:400 12px var(--f-mono);color:var(--faint)}
.tl{list-style:none;padding:0;margin:14px 0 0;border-left:2px solid var(--line);margin-left:5px}
.res{display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;padding:10px 0 14px;position:relative}
.res::before{content:"";position:absolute;left:-7px;top:16px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}
.res .yr{font:500 14px var(--f-mono);color:var(--accent);padding-left:16px;padding-top:2px;font-variant-numeric:tabular-nums}
.res p{margin:4px 0 8px;font-size:14.5px;max-width:70ch}
.res .rt{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.res .chips .chip{font-size:12.5px;padding:3px 9px}
.excl{display:grid;gap:10px;margin-top:12px}
.excl .card p{color:var(--ink)}

/* ---------- compare ---------- */
.cmpwrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.cmpt{border-collapse:collapse;width:100%;min-width:calc(140px + var(--cols,2) * 260px)}
.cmpt th,.cmpt td{vertical-align:top;text-align:left;padding:12px 14px;border-top:1px solid var(--line);font-size:14.5px}
.cmpt thead th{border-top:0;font:500 19px/1.25 var(--f-display);background:var(--sunk)}
.cmpt tbody th{position:sticky;left:0;background:var(--surface);font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted);width:140px;box-shadow:1px 0 0 var(--line)}
.cmpt thead th:first-child{position:sticky;left:0;z-index:1}
.tellbar{display:grid;gap:8px;margin:0 0 16px}
.tellbar div{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-s);padding:10px 14px;font-size:14.5px}
.tellbar b{color:var(--accent)}

/* ---------- enneagram ---------- */
.enbox{background:var(--sunk);border-radius:var(--r);padding:16px}
.enrow{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:center}
.enfig{width:100%;height:auto;display:block;max-width:420px;margin:0 auto}
.en-name{fill:var(--accent);font:600 13.5px var(--f-body);text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:3px} .en-name.me{font-weight:700}
.en-node:hover .en-name,.en-node:focus-visible .en-name{text-decoration-color:var(--accent)}
.en-ring{fill:none;stroke:var(--line-strong);stroke-width:1.5}
.en-l{stroke:var(--line-strong);stroke-width:1.2}
.en-g{stroke:var(--ev-strong);stroke-width:3}
.en-s{stroke:var(--ev-weak);stroke-width:3;stroke-dasharray:7 5}
.en-ag{fill:var(--ev-strong)} .en-as{fill:var(--ev-weak)}
.en-node{cursor:pointer}
.en-n{fill:var(--surface);stroke:var(--muted);stroke-width:1.2}
.en-wn{fill:var(--surface);stroke:var(--accent);stroke-width:1.5;stroke-dasharray:3 2}
.en-me{fill:var(--accent);stroke:var(--accent);stroke-width:2}
.en-gn{fill:var(--surface);stroke:var(--ev-strong);stroke-width:3}
.en-sn{fill:var(--surface);stroke:var(--ev-weak);stroke-width:3}
.en-t{fill:var(--ink);font:600 15px var(--f-body)} .en-tme{fill:var(--accent-ink);font:700 16px var(--f-body)}
.en-node:hover circle{stroke-width:3}
.enkey{display:grid;gap:10px;min-width:0}
.enkey p{margin:2px 0 0;font-size:14.5px}
.enmove{border-left:4px solid var(--line);padding:2px 0 2px 12px}
.en-gm{border-color:var(--ev-strong)} .en-sm{border-color:var(--ev-weak);border-left-style:dashed} .en-wm{border-color:var(--accent);border-left-style:dotted}
.enlab{display:block;font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.en-gm .enlab{color:var(--ev-strong)} .en-sm .enlab{color:var(--ev-weak)}
.en-gtxt{color:var(--ev-strong);font-weight:700} .en-stxt{color:var(--ev-weak);font-weight:700}
.enbox .meta{font-size:13px}

/* ---------- floating ---------- */
.tabbar{display:none}
.float{position:fixed;right:max(18px, calc(env(safe-area-inset-right,0px) + 12px));bottom:calc(18px + var(--tabbar) + env(safe-area-inset-bottom,0px));z-index:28}
.float .iconbtn{background:var(--raised);border:1px solid var(--line);box-shadow:var(--shadow);width:40px;height:40px;color:var(--ink)}
.tray{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(18px + var(--tabbar) + env(safe-area-inset-bottom,0px));z-index:29;display:flex;gap:8px;align-items:center;max-width:calc(100% - 140px);background:var(--ink);color:var(--bg);border-radius:999px;padding:6px 6px 6px 16px;box-shadow:var(--shadow)}
.tray .names{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tray button{border:0;border-radius:999px;padding:8px 14px;font-size:13.5px;font-weight:700;flex:none}
.tray .go{background:var(--accent);color:var(--accent-ink)}
.tray .clr{background:none;color:var(--bg);text-decoration:underline;padding:8px 8px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(76px + var(--tabbar) + env(safe-area-inset-bottom,0px));z-index:60;background:var(--ink);color:var(--bg);border-radius:var(--r-s);padding:11px 16px;font-size:14px;max-width:calc(100% - 32px);display:grid;gap:8px;box-shadow:var(--shadow)}
.toast input{width:min(560px,78vw);padding:7px 9px;border-radius:4px;border:0;background:var(--bg);color:var(--ink);font-size:13px}
.flash{animation:flash 1.6s ease-out}
@keyframes flash{0%,30%{background:var(--mark)}100%{background:transparent}}
.scrim{position:fixed;inset:0;background:var(--scrim);z-index:35}


/* ---------- learning design ---------- */
.facts{display:flex;flex-wrap:wrap;gap:8px 24px;margin:16px 0 0;color:var(--muted);font-size:15px}
.facts b{font:500 24px var(--f-display);color:var(--ink);margin-right:4px;font-variant-numeric:tabular-nums}
.outcomes{margin:0;padding:0;list-style:none;counter-reset:o;display:grid;gap:10px;max-width:70ch}
.outcomes li{counter-increment:o;display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;font-size:16.5px}
.outcomes li::before{content:counter(o);font:500 20px/1.2 var(--f-display);color:var(--accent)}
.howgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.how{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-s);padding:14px}
.how b{display:block;font-size:15px}.how p{margin:4px 0 0;font-size:14px;color:var(--muted)}
.partblk{margin-top:26px}
.parth h3{font:500 22px/1.25 var(--f-display);margin:2px 0 4px}
.parth p{margin:0 0 12px;color:var(--muted);font-size:15px;max-width:66ch}
.chrow .t{display:flex;gap:10px;align-items:baseline;font:500 18px/1.3 var(--f-display)}
.cnum{font:500 13px var(--f-mono);color:var(--accent);min-width:20px}
.chpart{margin-top:14px}.chpart:first-of-type{margin-top:4px}
.chpart .lbl{display:block;margin:0 8px 4px}
.chpart ol{margin-top:0}
.before{display:grid;gap:14px;margin:22px 0 10px}
.before h2,.lblk > h2{font:500 21px/1.25 var(--f-display);margin:0 0 10px}
.obj{border-left:3px solid var(--accent);padding:2px 0 2px 16px}
.obj ul{margin:0;padding-left:20px;display:grid;gap:6px;font-size:16px}
.kts{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:16px 18px}
.kts dl{margin:0;display:grid;gap:10px}
.kt{display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr);gap:4px 16px;align-items:baseline}
.kt dt{font-weight:700;font-size:15.5px}.kt dd{margin:0;font-size:15px;color:var(--muted)}
.inch .lbl{align-self:center;margin-right:4px}
.lblk{margin-top:44px;padding-top:22px;border-top:1px solid var(--line)}
.takeaways ul{margin:0;padding-left:22px;display:grid;gap:8px;font-size:16.5px;max-width:66ch}
.quiz{display:grid;gap:14px}
.qcard{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:16px 18px}
.qn{font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--accent)}
.qq{margin:6px 0 12px;font:400 18px/1.45 var(--f-display)}
.qopts{display:grid;gap:8px}
.qopt{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:start;text-align:left;border:1px solid var(--line-strong);background:var(--bg);border-radius:var(--r-s);padding:11px 12px;font-size:15.5px;color:var(--ink)}
.qopt:not(:disabled):hover{border-color:var(--accent)}
.qopt:disabled{cursor:default}
.qk{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-strong);font:700 12px var(--f-body);color:var(--muted)}
.qopt.right{border-color:var(--ev-strong);background:color-mix(in srgb, var(--ev-strong) 12%, var(--surface))}
.qopt.right .qk{background:var(--ev-strong);border-color:var(--ev-strong);color:var(--surface)}
.qopt.wrong{border-color:var(--ev-weak);background:color-mix(in srgb, var(--ev-weak) 10%, var(--surface))}
.qopt.wrong .qk{border-color:var(--ev-weak);color:var(--ev-weak)}
.qopt.dim{opacity:.6}
.qmark{color:var(--ev-strong)}.qmark svg{width:18px;height:18px}
.qwhy{margin-top:12px;font-size:15px;padding:10px 12px;border-radius:var(--r-s);background:var(--sunk)}
.qwhy.ok b{color:var(--ev-strong)}.qwhy.no b{color:var(--ev-weak)}

/* ---------- Learn: light motion (19 Oct 2026) ----------
   The course as four rings, one per part, a dot per chapter; a point
   circles the ring of the part you're in. Blocks fade up once as they come
   into view (ui.js adds .in), section rules draw in, the loop figure lights
   its steps in turn. Nothing moves under prefers-reduced-motion. */
.lhero{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px 40px;align-items:center}
.lrings{margin:0;text-align:center}
.lrings svg{width:100%;height:auto;display:block;overflow:visible}
.lrings figcaption{margin-top:4px;font-size:12.5px}
.lr-r{fill:none;stroke:var(--line-strong);stroke-width:1.2}
.lr-r.cur{stroke:var(--accent-line);stroke-width:1.6}
.lr-d{fill:var(--surface);stroke:var(--faint);stroke-width:1.3}
.lr-d.read{fill:var(--accent);stroke:var(--accent)}
.lr-d.nx{fill:var(--surface);stroke:var(--accent);stroke-width:2}
.lr-c{fill:var(--accent)}
.lr-pt{fill:var(--accent)} .lr-glow{fill:var(--accent);opacity:.16}
.lr-n{font:500 9.5px var(--f-mono);fill:var(--faint);text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:var(--bg);stroke-width:5px}
.readprog{position:sticky;top:calc(var(--bar) + env(safe-area-inset-top,0px));z-index:5;height:2px;margin:-2px 0 0;background:transparent;pointer-events:none}
.readprog i{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}
.chbody h3::before{content:"";display:block;width:28px;height:2px;margin-bottom:12px;background:var(--accent);transform-origin:left}
@media (max-width:760px){.lhero{grid-template-columns:minmax(0,1fr) 150px;gap:16px 20px}.lrings figcaption{display:none}}
@media (max-width:560px){.lhero{grid-template-columns:minmax(0,1fr)}.lrings{display:none}}
@media (prefers-reduced-motion:no-preference){
  .lhome.view-in .lr-r{stroke-dasharray:1;animation:lrdraw 1.1s cubic-bezier(.3,.6,.2,1) calc(var(--i) * .14s) both}
  .lhome.view-in .lr-d{transform-box:fill-box;transform-origin:center;animation:lrpop .4s ease-out calc(.5s + var(--i) * .05s) both}
  .lhome.view-in .lr-n,.lhome.view-in .lr-c{animation:lrfade .6s ease-out .3s both}
  .lhome.view-in .bar i{transform-origin:left;animation:lrbar .9s cubic-bezier(.3,.6,.2,1) .2s both}
  .lr-orb{transform-box:view-box;transform-origin:110px 110px;animation:lrorb 36s linear infinite}
  .lr-glow{transform-box:fill-box;transform-origin:center;animation:lrglow 3.2s ease-in-out infinite}
  .rv:not(.in){opacity:0;transform:translateY(10px)}
  .rv.in{transition:opacity .5s ease-out calc(var(--i,0) * .07s),transform .5s ease-out calc(var(--i,0) * .07s)}
  .chbody h3:not(.in)::before{transform:scaleX(0)}
  .chbody h3.in::before{transition:transform .6s cubic-bezier(.3,.6,.2,1) .1s}
  .loop .ln path{stroke-dasharray:1}
  .loop:not(.in) .ln path{stroke-dashoffset:1}
  .loop:not(.in) rect,.loop:not(.in) text{opacity:0}
  .loop.in rect,.loop.in text{transition:opacity .5s ease-out}
  .loop.in .ln path{transition:stroke-dashoffset .5s ease-out .4s}
  .loop.in rect.bx{animation:loopstep 12s ease-in-out calc(1.2s + var(--k,0) * 2s) infinite}
  .qcard.fresh .qwhy{animation:qin .35s ease-out both}
  .qcard.fresh .qmark path{stroke-dasharray:24;animation:qtick .45s ease-out .1s both}
  .qcard.fresh .qopt.right .qk,.qcard.fresh .qopt.wrong .qk{animation:lrpop .3s ease-out both}
  @keyframes lrdraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
  @keyframes lrpop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}
  @keyframes lrfade{from{opacity:0}to{opacity:1}}
  @keyframes lrbar{from{transform:scaleX(0)}to{transform:none}}
  @keyframes lrorb{to{transform:rotate(360deg)}}
  @keyframes lrglow{0%,100%{transform:scale(.7);opacity:.1}50%{transform:scale(1.15);opacity:.22}}
  @keyframes loopstep{0%,14%,100%{stroke:var(--muted)}4%,10%{stroke:var(--accent)}}
  @keyframes qin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
  @keyframes qtick{from{stroke-dashoffset:24}to{stroke-dashoffset:0}}
}
.levels{list-style:none;padding:0;margin:16px 0 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;font:15px/1.5 var(--f-body)}
.lvl{border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:16px 18px;position:relative;min-width:0}
.lvl.key{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.lvl-n{font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--accent)}
.lvl h4{font:500 22px/1.2 var(--f-display);margin:2px 0 6px}
.lvl p{margin:0 0 10px;color:var(--muted)}
.lvl dl{margin:0;display:grid;gap:6px}
.lvl dt{font:700 12.5px var(--f-body);letter-spacing:.03em;color:var(--muted)}
.lvl dd{margin:0 0 4px;font-size:15px}
.lvl-tag{display:inline-block;margin-top:8px;font:700 12.5px var(--f-body);color:var(--accent-ink);background:var(--accent);border-radius:999px;padding:3px 10px}
.chbody h4{font:600 19px/1.3 var(--f-display);margin:26px 0 6px}
.chbody .levels{padding-left:0;gap:12px}
.chbody .lvl h4{margin:2px 0 6px;font:500 22px/1.2 var(--f-display)}
.chbody .lvl p,.chbody .lvl dd{max-width:none}
.chbody > p > strong:only-child{font:600 19px/1.3 var(--f-display);display:block;margin-top:14px}


/* ---------- trustee ---------- */
.trlist{margin:0;padding-left:20px;display:grid;gap:8px}
.trband{display:grid;grid-template-columns:18px 150px minmax(0,1fr);gap:10px;align-items:center}
.trdot{width:14px;height:14px;border-radius:50%;background:color-mix(in srgb, var(--ev-strong) calc(var(--p) * 100%), var(--ev-weak))}
.trtake{max-width:640px;margin:0 auto}
.trtop{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}
.trq{font:400 clamp(22px,3.2vw,28px)/1.35 var(--f-display);margin:8px 0 22px;text-wrap:pretty}
.tropts{display:grid;gap:10px}
.trowner{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--r);padding:16px 18px;margin-bottom:26px}
.trstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.trstats b{display:block;font:500 28px/1.1 var(--f-display);font-variant-numeric:tabular-nums}
.trstats span{font-size:13px;color:var(--muted)}
@media (max-width:640px){.trstats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.trplot{width:100%;max-width:300px;height:auto;display:block}
.trplot.sm{width:150px;flex:none}
.trp-bg{fill:var(--surface);stroke:var(--line-strong)}
.trp-t{fill:color-mix(in srgb, var(--ev-strong) 16%, var(--surface))}
.trp-e{fill:color-mix(in srgb, var(--ev-weak) 14%, var(--surface))}
.trp-o,.trp-y{fill:color-mix(in srgb, var(--ev-mixed) 12%, var(--surface))}
.trp-ln{stroke:var(--line-strong);stroke-width:1;fill:none}
.trp-l{font:600 12.5px var(--f-body);fill:var(--muted)}
.trp-ax{font:600 10.5px var(--f-body);fill:var(--faint)}
.trp-dot{fill:var(--accent);stroke:var(--surface);stroke-width:3}
.trlean{font-size:.55em;color:var(--muted);font-family:var(--f-display)}
.trtypes{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:20px;align-items:start}
.trtypes-list{display:grid;gap:12px}
.trtypes-list p{margin:2px 0 0;font-size:15px;color:var(--muted)}
.trtypes-list b{font:500 19px var(--f-display)}
@media (max-width:640px){.trtypes{grid-template-columns:minmax(0,1fr)}.trhero .trplot.sm{width:120px}}
.trall-p{margin-bottom:16px}
.trall{list-style:none;margin:6px 0 0;padding:0;border:1px solid var(--line);border-radius:var(--r-s);background:var(--surface)}
.trall li{display:grid;grid-template-columns:minmax(0,1fr) minmax(90px,38%);gap:12px;padding:10px 14px;border-top:1px solid var(--line);font-size:15px}
.trall li:first-child{border-top:0}
.trall-a{font-weight:700;color:var(--ink)}
.trall-q{color:var(--muted)}
@media (max-width:640px){.trall li{grid-template-columns:minmax(0,1fr)}.trall li{gap:2px}}
.notice{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;border:1px solid var(--line);background:var(--surface);border-radius:var(--r);padding:12px 16px;margin:0 auto 20px;max-width:1080px;font-size:14.5px;color:var(--muted)}
.notice-acts{display:flex;gap:12px;align-items:center}
.trnorm{margin:6px 0 0;font-size:14.5px;color:var(--muted);max-width:60ch}
.tropts.pair .tropt{font:400 19px/1.4 var(--f-display);padding:18px}
.tropt{display:flex;align-items:center;gap:12px;text-align:left;border:1.5px solid var(--line-strong);background:var(--surface);border-radius:var(--r);padding:15px 16px;font-size:16.5px;color:var(--ink);min-height:56px}
@media (hover:hover){.tropt:hover{border-color:var(--accent)}}
.tropt.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}
.tropt.on .qk{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.tropt .qk{flex:none}
.trnav{display:flex;justify-content:space-between;gap:10px;margin-top:22px}
.trhero{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin:10px 0 6px}
.trbig{font:500 76px/1 var(--f-display);color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.trbig small{font-size:24px;color:var(--muted);margin-left:2px}
.trm{margin-bottom:20px}
.trm-h{display:flex;justify-content:space-between;align-items:baseline}
.trm-h b{font:500 21px var(--f-display)}
.trm-v{font:500 26px var(--f-display);font-variant-numeric:tabular-nums}.trm-v small{font-size:14px;color:var(--muted)}
.trm-bar{position:relative;height:10px;border-radius:5px;background:var(--line);margin:8px 0 6px}
.trm-bar i{position:absolute;inset:0 auto 0 0;border-radius:5px;background:var(--accent)}
.trm-cut{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--bg)}
.trm p{margin:0;font-size:14.5px;color:var(--muted)}
.trlows{list-style:none;padding:0;margin:0;display:grid;gap:10px}
.trlows li{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-s);padding:12px 14px;font-size:15.5px}
.trfreq{display:block;font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--ev-mixed);margin-bottom:3px}
.trlows .linkbtn{margin-left:4px;font-size:14px}
.trsafe{border:1px solid var(--ev-weak);border-left-width:4px;background:var(--surface);border-radius:var(--r-s);padding:14px 16px;margin:16px 0;font-size:15.5px}
.trnote{border-left:3px solid var(--ev-mixed);padding:4px 0 4px 14px;margin:14px 0;font-size:15px;color:var(--muted)}

/* ---------- responsive ---------- */
@media (max-width:1100px){
  .entry{grid-template-columns:minmax(0,1fr)} .toc{display:none}
}
@media (max-width:980px){
  :root{--tabbar:64px; --bar:58px}
  .rail{display:none}
  .app{margin-left:0}
  .topbar .brand{display:flex;padding:0}
  .topbar .brand b,.topbar .brand small{display:none}
  .topbar-in{gap:8px;padding-left:max(12px, env(safe-area-inset-left,0px));padding-right:max(10px, env(safe-area-inset-right,0px))}
  .kbd{display:none}
  main{padding-top:20px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px))}
  .tabbar{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:30;background:color-mix(in srgb, var(--surface) 94%, transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:4px max(4px, env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) max(4px, env(safe-area-inset-left,0px))}
  .tabbar button{display:grid;justify-items:center;gap:3px;border:0;background:none;padding:6px 0 4px;color:var(--faint);font:600 10.5px/1.1 var(--f-body);letter-spacing:-.01em;min-height:52px;border-radius:var(--r-s)}
  .tabbar button svg{width:22px;height:22px}
  .tabbar button[aria-current="page"]{color:var(--accent)}
  .tabbar button[aria-current="page"] span{color:var(--ink)}
  .suggest{position:fixed;left:0;right:0;top:calc(var(--bar) + env(safe-area-inset-top,0px));bottom:0;border-radius:0;border:0;border-top:1px solid var(--line);max-height:none;padding:8px max(8px, env(safe-area-inset-right,0px)) calc(16px + env(safe-area-inset-bottom,0px)) max(8px, env(safe-area-inset-left,0px));box-shadow:none}
  .sg-close{display:flex}
  .learn{grid-template-columns:minmax(0,1fr);gap:0}
  .chlist{display:none}
  .chsel{display:flex;gap:10px;align-items:center;margin-bottom:16px}
  .chsel select{flex:1;min-width:0;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--r-s);background:var(--surface);font-size:15px}
  .doors{grid-template-columns:minmax(0,1fr)}
  .signs{grid-template-columns:minmax(0,1fr)}
  .stage{grid-template-columns:minmax(0,1fr);gap:6px}
  .howgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .levels{grid-template-columns:minmax(0,1fr)}
  .stage .no{font-size:34px}
  .float{right:max(14px, calc(env(safe-area-inset-right,0px) + 10px))}
  .tray{max-width:calc(100% - 90px);left:16px;transform:none}
}
@media (max-width:640px){
  .duo,.rgrid,.howgrid{grid-template-columns:minmax(0,1fr)}
  .kt{grid-template-columns:minmax(0,1fr)}
  .trband{grid-template-columns:18px minmax(0,1fr) auto}
  .hero .h1{font-size:40px}
  .lead{font-size:19px}
  .chbody{font-size:17.5px}
  .chnav{grid-template-columns:minmax(0,1fr)}
  .enrow{grid-template-columns:minmax(0,1fr)}
  .row{padding:12px 14px}
  .acts .btn{padding:7px 12px;font-size:13.5px;min-height:36px}
  .hyp-h p{font-size:17px}
  .hrow{grid-template-columns:34px minmax(0,1fr);padding-left:6px}
  .cand{grid-template-columns:34px minmax(0,1fr)}
  .res{grid-template-columns:52px minmax(0,1fr)}
  table.data{min-width:0}
  table.data thead{display:none}
  table.data, table.data tbody, table.data tr, table.data td{display:block;width:100%}
  table.data tr{border-top:1px solid var(--line);padding:16px 16px 14px}
  table.data tr:first-child{border-top:0}
  table.data td{border:0;padding:2px 0;font-size:16px;line-height:1.5}
  table.data td[data-label]::before{content:attr(data-label);display:block;font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted);margin:12px 0 2px}
  table.data td:first-child{font:500 20px/1.3 var(--f-display)}
  table.data td:first-child .termlink{font-weight:500}
  table.data td:first-child::before{display:none}
  .tablewrap{overflow-x:visible}
}
@media (prefers-reduced-motion:no-preference){
  .gbtn svg{transition:transform .16s ease}
  .row,.chip,.btn,.door,.cat,.opt,.hrow{transition:background-color .12s,border-color .12s,color .12s}
  .view-in{animation:viewin .22s ease-out}
  @keyframes viewin{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
}

/* ---------- Conscious Living frame ----------
   Psychology is a sub-brand: the guide keeps its own look inside, and the
   parent brand frames it with a strip above and the site footer below, in
   Conscious Living's own colours and type (Andrew, 14 Oct 2026). */
.clbar{background:#141212;color:#F3EEE7;font-family:Archivo,system-ui,sans-serif}
.clbar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px;padding:0 max(24px, env(safe-area-inset-right,0px)) 0 max(24px, env(safe-area-inset-left,0px))}
.clbar a{color:#F3EEE7;text-decoration:none}
.clbar .cl-name{font-weight:800;font-size:14px;letter-spacing:-.01em;display:flex;align-items:center;gap:8px;white-space:nowrap}
.clbar nav{display:flex;gap:18px;font:500 11px/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;overflow-x:auto;scrollbar-width:none}
.clbar nav::-webkit-scrollbar{display:none}
.clbar nav a{opacity:.72;white-space:nowrap;padding:6px 0}
.clbar nav a:hover,.clbar nav a[aria-current="page"]{opacity:1}
.clbar nav a[aria-current="page"]{box-shadow:inset 0 -1px 0 #EE3B2B}
.clbar-r{display:flex;align-items:center;gap:18px;min-width:0}
/* the site's menu in the strip: inline from 1001px, folded into "Menu" below */
.clbar{position:relative;z-index:120}
.clbar .cl-plus{opacity:1;border:1px solid rgba(243,238,231,.34);padding:6px 10px}
.clbar .cl-plus:hover{border-color:#EE3B2B}
.cl-menu{display:none}
.cl-menu summary{list-style:none;display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(243,238,231,.28);color:#F3EEE7;font:500 11px/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;min-height:30px;cursor:pointer;white-space:nowrap;user-select:none}
.cl-menu summary::-webkit-details-marker{display:none}
.cl-menu summary:hover,.cl-menu[open] summary{border-color:#F3EEE7}
.cl-burger{display:inline-grid;gap:4px;width:14px}
.cl-burger i{display:block;height:1.5px;background:currentColor;transition:transform .25s}
.cl-menu[open] .cl-burger i:first-child{transform:translateY(2.75px) rotate(45deg)}
.cl-menu[open] .cl-burger i:last-child{transform:translateY(-2.75px) rotate(-45deg)}
.clbar .cl-drop{position:absolute;left:0;right:0;top:100%;display:grid;gap:0;overflow:visible;background:#141212;border-top:1px solid rgba(243,238,231,.18);padding:4px max(24px, env(safe-area-inset-left,0px)) 18px;font:600 17px/1.2 Archivo,system-ui,sans-serif;letter-spacing:-.01em;text-transform:none;box-shadow:0 18px 40px rgba(20,18,18,.28)}
.clbar .cl-drop a{opacity:1;padding:14px 0;border-bottom:1px solid rgba(243,238,231,.12)}
.clbar .cl-drop a:last-child{border-bottom:0}
.clbar .cl-drop a[aria-current="page"]{box-shadow:none;color:#EE3B2B}
.clbar .cl-drop a.cl-plus{border:0;border-bottom:1px solid rgba(243,238,231,.12);padding:14px 0}
@media (max-width:1000px){.clbar .cl-links{display:none}.cl-menu{display:block}}
@media (prefers-reduced-motion:reduce){.cl-burger i{transition:none}}
.cl-theme{display:inline-flex;align-items:center;background:none;border:1px solid rgba(243,238,231,.28);color:#F3EEE7;font:500 11px/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;min-height:30px;cursor:pointer;white-space:nowrap}
.cl-theme:hover{border-color:#F3EEE7}
.cl-theme span{display:inline-flex;align-items:center;gap:6px}
.cl-theme svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.cl-theme .to-day{display:none}
:root[data-theme="dark"] .cl-theme .to-day{display:inline-flex} :root[data-theme="dark"] .cl-theme .to-night{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .cl-theme .to-day{display:inline-flex}:root:not([data-theme="light"]) .cl-theme .to-night{display:none}}
.app > main{padding-bottom:72px}
a.row{text-decoration:none}
a.termlink{color:inherit}
.clfoot{background:#141212;color:#F3EEE7;font-family:Archivo,system-ui,sans-serif;padding:48px max(24px, env(safe-area-inset-right,0px)) calc(32px + var(--tabbar) + env(safe-area-inset-bottom,0px)) max(24px, env(safe-area-inset-left,0px))}
.clfoot a{color:#F3EEE7;text-decoration:none;opacity:.78}
.clfoot a:hover{opacity:1;color:#EE3B2B}
.clfoot-in{display:grid;grid-template-columns:1.3fr repeat(4,minmax(0,1fr));gap:32px;max-width:1180px;margin:0 auto}
.clfoot-brand p{margin:6px 0 0;font-size:14px;opacity:.72}
.clfoot-name{font-weight:800;font-size:18px;opacity:1!important}
.clfoot-col{display:grid;align-content:start;gap:9px;font-size:14px}
.clfoot-h{margin:0 0 4px;font:500 11px/1.2 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase;opacity:.6}
.clfoot-col .all{opacity:1;box-shadow:inset 0 -1px 0 #EE3B2B;justify-self:start}
.clfoot-note{max-width:1180px;margin:36px auto 0;padding-top:20px;border-top:1px solid rgba(243,238,231,.18);font-size:13px;line-height:1.5;opacity:.7}
.clfoot-bottom{max-width:1180px;margin:14px auto 0;display:flex;justify-content:space-between;gap:12px;font:500 11px/1.4 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase;opacity:.6}
@media (max-width:1000px){.clfoot-in{grid-template-columns:repeat(2,minmax(0,1fr))}.clfoot-brand{grid-column:1 / -1}}
@media (max-width:560px){.clbar-in{padding:0 16px}.cl-drop{padding:4px 16px 16px}.clfoot-in{grid-template-columns:minmax(0,1fr)}.clfoot-bottom{flex-direction:column}}
/* the site's consent line, in the frame's colours */
.consent{position:fixed;left:22px;bottom:22px;z-index:200;width:min(calc(100vw - 44px),390px);background:#F3EEE7;color:#141212;border:1px solid #141212;box-shadow:0 20px 44px rgba(20,18,18,.16);padding:20px 22px 18px;font-family:Archivo,system-ui,sans-serif}
.consent .lab{margin:0 0 10px;font:500 10px/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase;color:#5c5650;display:flex;align-items:center;gap:10px}
.consent .lab::before{content:"";width:24px;height:1px;background:#EE3B2B}
.consent .txt{margin:0;font-size:14.5px;line-height:1.5;color:#3a3531}
.consent-btns{display:flex;align-items:center;gap:20px;margin-top:16px}
.consent .c-ok{border:0;background:#5E0F14;color:#F3EEE7;font:700 13px Archivo,sans-serif;padding:11px 24px;border-radius:0}
.consent .c-ok:hover{background:#EE3B2B;color:#141212}
.consent .c-no{border:0;background:transparent;color:#5E0F14;font:700 13px Archivo,sans-serif;text-decoration:underline;text-underline-offset:4px;padding:0}
@media (max-width:980px){.consent{left:14px;right:14px;width:auto;bottom:calc(14px + var(--tabbar) + env(safe-area-inset-bottom,0px));padding:18px}}
a.ri,.nav a,.tabbar a,a.brand{text-decoration:none}
.nav a{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--r-s);color:var(--muted);font-weight:600;font-size:15px}
.nav a svg{flex:none;width:20px;height:20px}

/* questions to carry (14 Oct 2026) */
.inqlist{margin:0;padding:0;list-style:none;display:grid;gap:16px}
.inqlist li{display:grid;gap:4px;font:400 20px/1.4 var(--f-display);color:var(--ink)}
.inqlist li::before{content:attr(data-k);font:700 12.5px/1.4 var(--f-body);color:var(--accent);letter-spacing:.045em;text-transform:uppercase}
.inq .meta{margin-top:12px}
.inq-one{margin-top:16px;padding:14px 16px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 var(--r-s) var(--r-s) 0}
.inq-one p{margin:4px 0 0;font:400 19px/1.4 var(--f-display)}
@media (max-width:640px){.inqlist li{font-size:18.5px}}

/* Claude's reading at the top of search results (14 Oct 2026) */
.reading{border:1px solid var(--accent-line);border-radius:var(--r);background:var(--surface);padding:18px 20px 20px}
.reading .rd-sum{font:400 21px/1.45 var(--f-display);margin:6px 0 16px;color:var(--ink)}
.rd-wait{display:flex;align-items:center;gap:10px;color:var(--muted);margin:8px 0 0}
.rd-wait .dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
@media (prefers-reduced-motion:no-preference){.rd-wait .dot{animation:rdpulse 1.2s ease-in-out infinite}@keyframes rdpulse{0%,100%{opacity:.25}50%{opacity:1}}}
@media (max-width:640px){.reading{padding:16px 14px 18px}.reading .rd-sum{font-size:19px}}

/* model figures (14 Oct 2026), drawn like the Enneagram figure */
.mfig{margin:0;background:var(--sunk);border-radius:var(--r);padding:16px}
.mf{width:100%;height:auto;display:block;max-width:520px;margin:0 auto;overflow:visible}
.mfig figcaption{text-align:center;margin-top:8px}
.mf-box,.mf-ring,.mf-venn{fill:none;stroke:var(--line-strong);stroke-width:1.5}
.mf-venn{fill:var(--accent);fill-opacity:.06}
.mf-l{stroke:var(--line-strong);stroke-width:1.2}
.mf-arc{fill:none;stroke:var(--accent-line);stroke-width:1.5;stroke-dasharray:5 5}
.mf-wave{fill:none;stroke:var(--accent);stroke-width:2;opacity:.55}
.mf-ar{stroke:var(--accent);stroke-width:2.5} .mf-ahp{fill:var(--accent)}
.mf-hl{fill:var(--accent-soft);stroke:var(--accent-line);stroke-width:1.5}
.mf-node{fill:var(--surface);stroke:var(--muted);stroke-width:1.4}
.mf-nme{fill:var(--accent);stroke:var(--accent)}
.mf-dot{fill:var(--accent)} .mf-dot2{fill:var(--muted)}
.mf-step{fill:var(--sunk);stroke:var(--line-strong);stroke-width:1.2}
.mf-lab{fill:var(--ink);font:700 15px var(--f-body);paint-order:stroke;stroke:var(--sunk);stroke-width:5px;stroke-linejoin:round}
.mf-sub{fill:var(--muted);font:500 12.5px var(--f-body);paint-order:stroke;stroke:var(--sunk);stroke-width:4px;stroke-linejoin:round}
.mf-big{fill:var(--ink);font:500 34px var(--f-display)}
.mf-num{fill:var(--muted);font:700 15px var(--f-body)} .mf-num.on{fill:var(--accent-ink)}
.mf-link{fill:var(--accent);text-decoration:underline;text-decoration-color:var(--accent-line);text-underline-offset:3px}
.mf-me{fill:var(--accent)}
.mf-a{cursor:pointer} .mf-a:hover .mf-link,.mf-a:focus-visible .mf-link{text-decoration-color:var(--accent)}
@media (max-width:640px){.mfig{padding:10px}.mf-lab{font-size:17px}.mf-sub{font-size:14px}}

/* model and Enneagram figures sit with the title (Andrew, 14 Oct 2026) */
.topfig{margin:18px 0 22px}

/* Psychology home: what's inside, the model gallery, Trustee (14 Oct 2026) */
.inside{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:16px 18px 18px}
.istats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 10px;margin-top:10px}
.istats button{border:0;background:none;text-align:left;padding:10px 8px;border-radius:var(--r-s);display:grid;gap:2px;color:var(--ink)}
.istats button:hover{background:var(--sunk)}
.istats b{font:500 32px/1.05 var(--f-display);color:var(--accent)}
.istats span{font-size:13.5px;color:var(--muted);line-height:1.35}
.mgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.mthumb{border:1px solid var(--line);border-radius:var(--r);background:var(--sunk);padding:12px 12px 10px;display:grid;gap:8px;text-align:left;color:var(--ink)}
.mthumb:hover{border-color:var(--accent-line)}
.mthumb-fig{display:block;height:160px;overflow:hidden;pointer-events:none}
.mthumb-fig svg{width:100%;height:160px;max-width:none}
/* Gallery glyphs (15 Oct 2026): shape only, big enough to read on a phone. */
.gl{width:100%;height:100%}
.gl-l,.gl-v,.gl-hl{fill:none;stroke:var(--ink);stroke-width:2}
.gl-v{fill:var(--accent);fill-opacity:.07;stroke-width:1.8}
.gl-hl{fill:var(--accent-soft);stroke:var(--accent)}
.gl-t{stroke:var(--muted);stroke-width:1.5}
.gl-n{fill:var(--sunk);stroke:var(--ink);stroke-width:1.8}
.gl-nme{fill:var(--accent);stroke:var(--accent);stroke-width:1.8}
.gl-af{fill:var(--accent)} .gl-dot{fill:var(--muted)}
.gl-ar{stroke:var(--accent);stroke-width:3} .gl-ahp{fill:var(--accent)}
.gl-w{fill:none;stroke:var(--accent);stroke-width:2.5}
.gl-num{fill:var(--ink);font:700 15px var(--f-body);text-anchor:middle} .gl-num.on{fill:var(--accent-ink)}
.gl-big{fill:var(--ink);font:500 34px var(--f-display);text-anchor:middle} .gl-big.on{fill:var(--accent)}
.gl-mid{fill:var(--ink);font:600 20px var(--f-body);text-anchor:middle} .gl-mid.on{fill:var(--accent-ink)}
.gl-let{fill:var(--ink);font:700 17px var(--f-body)}
.gl-ic *,.mf-ic *{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.gl-ic .a,.mf-ic .a{stroke:var(--accent)} .gl-ic .f,.mf-ic .f{fill:var(--accent);stroke:none}
.gl-ic .d,.mf-ic .d{stroke-dasharray:2 2.5} .gl-ic .w,.mf-ic .w{stroke-width:3}
.mf-ic *{stroke:var(--muted)} .mf-ic.on *{stroke:var(--ink)}
/* Icons for the parts of a set: 32-unit line drawings, one accent each. */
.ic{width:22px;height:22px;flex:none;vertical-align:-6px;margin-right:8px}
.ic *{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ic .a{stroke:var(--accent)} .ic .f{fill:var(--accent);stroke:none} .ic .d{stroke-dasharray:2 2.5} .ic .w{stroke-width:3}
.ticon{margin:2px 0 6px}
.ic.lg{width:44px;height:44px;vertical-align:middle;margin:0}
.mg-list li[data-ic]{display:grid;grid-template-columns:30px 1fr;align-items:start}
.mg-list li[data-ic] .ic{margin:0;vertical-align:0}
.mg-list li[data-ic] small{grid-column:2}
.mg-list li.me[data-ic]::before{display:none}
.mg-list li.me[data-ic] .ic{background:var(--accent-soft);border-radius:6px}
.mthumb-t{font-weight:700;font-size:15px}
.trcard{display:flex;gap:16px;align-items:center;justify-content:space-between;border:1px solid var(--accent-line);border-radius:var(--r);background:var(--accent-soft);padding:18px 20px}
.trcard h3{margin:2px 0 6px;font:500 24px/1.2 var(--f-display)}
.trcard p{margin:0;max-width:56ch}
@media (max-width:980px){.istats{grid-template-columns:repeat(2,minmax(0,1fr))}.istats button:last-child:nth-child(odd){grid-column:1/-1}.mgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.trcard{flex-direction:column;align-items:flex-start}.mthumb-fig,.mthumb-fig svg{height:120px}.istats b{font-size:28px}}

/* lists too long to draw (15 Oct 2026) */
.mgroups{padding:16px 18px 18px}
.mg-h{font:700 12.5px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.mg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 18px}
.mg-grid.one .mg-list{columns:2 220px;column-gap:18px}
.mg-name{font:600 15px/1.3 var(--f-display);color:var(--ink);margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid var(--line-strong)}
.mg-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.mg-grid.one .mg-list{display:block}
.mg-list li{break-inside:avoid;padding:3px 0;font-size:15px;line-height:1.35}
.mg-list li small{display:block;color:var(--muted);font-size:13px}
.mg-list li.me{font-weight:700}
.mg-list li.me .termlink{color:var(--ink);text-decoration-color:var(--accent)}
.mg-list li.me::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-right:7px;vertical-align:2px}
.mg-note{margin-top:12px}
.topfig .mfig + .mfig{margin-top:14px}

/* a term with its own field guide points to it (15 Oct 2026) */
.guidecard{display:grid;gap:4px;margin:16px 0 4px;padding:14px 16px;border:1px solid var(--accent-line);border-radius:var(--r);background:var(--accent-soft);color:var(--ink);text-decoration:none}
.guidecard b{font:500 19px/1.3 var(--f-display)}
.guidecard:hover{border-color:var(--accent)}
.byline{margin:14px 0 0;color:var(--muted);font-size:14px}

/* a set folded near the end of a member's page (15 Oct 2026) */
.setfold{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin-top:10px}
.setfold>summary{cursor:pointer;padding:12px 16px;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:12px}
.setfold>summary::-webkit-details-marker{display:none}
.setfold>summary::after{content:"Show";font:600 12.5px var(--f-body);color:var(--accent);letter-spacing:.04em;text-transform:uppercase}
.setfold[open]>summary::after{content:"Hide"}
.setfold .mfig{border-radius:0 0 var(--r) var(--r)}

/* Go deeper: one book, one talk, one study, each opening on another site. */
.deeper{display:grid;border-top:1px solid var(--line)}
.dp{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.dp:hover b{color:var(--accent)}
.dp-k{font:500 11px/1.6 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);padding-top:2px}
.dp-b{display:grid;gap:3px;min-width:0}
.dp-b b{font:600 17px/1.35 var(--f-display);overflow-wrap:anywhere}
.dp-by{color:var(--muted);font-size:14px}
.dp-w{font-size:15px;line-height:1.5}
.out{width:11px;height:11px;margin-left:6px;vertical-align:1px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
@media (max-width:560px){.dp{grid-template-columns:1fr;gap:4px}}

/* Who came from whom (15 Oct 2026). */
.ln-key{display:grid;gap:6px;margin:4px 0 16px;font-size:14px;color:var(--muted)}
.ln-key span{display:flex;align-items:center;gap:10px}
.ln-key svg{width:40px;height:8px;flex:none}
.ln-fig{margin:0 0 12px;background:var(--sunk);border-radius:var(--r);padding:14px 10px 8px}
.ln-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.ln-svg{display:block;width:100%;min-width:960px;height:auto}
.ln-swipe{display:none;margin:6px 0 0}
@media (max-width:960px){.ln-swipe{display:block}}
.ln-row{stroke:var(--line);stroke-width:1}
.ln-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:2 4}
.ln-yr{fill:var(--faint);font:500 11px var(--f-mono);text-anchor:middle}
.ln-school{fill:var(--muted);font:700 11px var(--f-body);letter-spacing:.04em;text-transform:uppercase}
.ln-break{stroke:var(--faint);stroke-width:1.4;fill:none}
.ln-l{display:none}
.ln-l.on{display:inline}
.ln-l path{fill:none}
.ln-halo{stroke:var(--sunk);stroke-width:7;stroke-linecap:round}
.ln-direct{stroke:var(--ink);stroke-width:2.2}
.ln-built{stroke:var(--muted);stroke-dasharray:7 5;stroke-width:2}
.ln-parallel{stroke:var(--accent);stroke-dasharray:1.5 5;stroke-linecap:round;stroke-width:2.6}
.ln-end{fill:var(--ink)} .ln-end-built{fill:var(--muted)} .ln-end-parallel{fill:var(--accent)}
.ln-key .ln-direct,.ln-key .ln-built,.ln-key .ln-parallel{fill:none;stroke-width:1.8}
.ln-node{cursor:pointer;transition:opacity .15s}
.ln-svg.sel .ln-node:not(.on){opacity:.32}
.ln-node rect{fill:var(--surface);stroke:var(--line-strong);stroke-width:1}
.ln-node .ln-n{fill:var(--ink);font:700 13px var(--f-body)}
.ln-node .ln-w{fill:var(--muted);font:italic 400 10.5px var(--f-body)}
.ln-node:hover rect,.ln-node:focus-visible rect{stroke:var(--accent);stroke-width:1.5}
.ln-node.me rect{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2}
.ln-node:focus{outline:none}
button.ln-a{background:none;border:0;padding:0;font:inherit;cursor:pointer}
@media (prefers-reduced-motion: reduce){.ln-node{transition:none}}
.ln-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:760px){.ln-cards{grid-template-columns:minmax(0,1fr)}}
.ln-card{border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;background:var(--surface);scroll-margin-top:calc(var(--bar) + 80px)}
.ln-card h3{margin:0 0 4px;font:600 19px/1.3 var(--f-display)}
.ln-card h3 .meta{font:400 14px var(--f-body);margin-left:6px}
.ln-card p{margin:0 0 8px;font-size:15px}
.ln-rel{margin:0 0 8px;padding-left:18px;font-size:14px;color:var(--muted);display:grid;gap:4px}
.ln-rel b{color:var(--ink);font-weight:600}
.ln-terms{font-size:14px;margin-top:6px}
.ln-terms .chips{margin-top:4px}
.ln-work{font-style:italic;color:var(--muted);margin:0 0 6px!important}
.ln-a{color:var(--accent);text-decoration:none;font-weight:600}
.ln-a:hover{text-decoration:underline}
.ln-terms .lbl,.lin-from .lbl{display:block;margin-bottom:2px}
.lin-from{margin:10px 0 0;font-size:15px}

/* Home: one tile per part of the library (15 Oct 2026). */
.xgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.xtile{display:flex;gap:12px;align-items:flex-start;text-align:left;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);padding:14px;color:var(--ink);min-width:0}
.xtile:hover{border-color:var(--accent-line)}
.xi{flex:none;width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}
.xi svg{width:20px;height:20px}
.xb{display:grid;gap:2px;min-width:0}
.xb b{font:600 17px/1.3 var(--f-display)}
.xb span{font-size:14px;line-height:1.45;color:var(--muted)}
.xb em{font-style:normal;font-weight:700;color:var(--ink)}

/* ---------- Home: figures and motion (19 Oct 2026) ----------
   The hero figure draws the method: one thing noticed, three explanations,
   the tell between the closest two. "How a search works" breaks the page
   with three small drawings. Tiles fade up as their icons draw. Phone 560
   and down, tablet 561 to 1000, desktop above. */
.hhero{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,360px);gap:16px 40px;align-items:center}
.hfig{margin:0;min-width:0}
.hfig svg{width:100%;height:auto;display:block;overflow:visible}
.hf-g0{stop-color:var(--accent);stop-opacity:.16} .hf-g1{stop-color:var(--accent);stop-opacity:0}
.hf-ring{fill:none;stroke:var(--line-strong);stroke-width:1}
.hf-ring.out{stroke-dasharray:2 5}
.hf-br{fill:none;stroke:var(--accent-line);stroke-width:1.4}
.hf-tl{fill:none;stroke:var(--accent);stroke-width:1.2;stroke-dasharray:3 4;opacity:.7}
.hf-tm{fill:var(--bg);stroke:var(--accent);stroke-width:1.4;stroke-linejoin:round}
.hf-lab{font:500 10.5px var(--f-mono);fill:var(--muted);dominant-baseline:central;paint-order:stroke;stroke:var(--bg);stroke-width:4px}
.hf-lab.mid{text-anchor:middle}
.hf-n circle{fill:var(--surface);stroke:var(--line-strong);stroke-width:1.4}
.hf-n.n1 circle{fill:var(--accent);stroke:var(--accent)}
.hf-n.n2 circle{stroke:var(--accent)}
.hf-n text{font:600 11px var(--f-mono);fill:var(--muted);text-anchor:middle;dominant-baseline:central}
.hf-n.n1 text{fill:var(--accent-ink)} .hf-n.n2 text{fill:var(--accent)}
.hf-c,.hf-sig,.hf-op{fill:var(--accent)}
.hf-rip{fill:none;stroke:var(--accent);stroke-width:1.2;opacity:0}
.hf-sig{opacity:0}
.hf-oh{fill:var(--accent);opacity:.14}
.hsteps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.hstep{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);min-width:0;position:relative;overflow:hidden;display:flex;flex-direction:column}
.hstep::before{content:"";position:absolute;left:18px;top:0;width:32px;height:2px;background:var(--accent);transform-origin:left;z-index:1}
.hs-art{display:grid;place-items:center;height:124px;background:var(--sunk);border-bottom:1px solid var(--line)}
.hs-art svg{display:block;width:150px;height:90px;overflow:visible}
.hs-tx{padding:16px 18px 18px}
.hstep b{display:block;font:500 19px/1.25 var(--f-display);margin:2px 0 4px}
.hstep p{margin:0;font-size:14.5px;line-height:1.5;color:var(--muted)}
.hs-no{font:500 12px var(--f-mono);color:var(--accent)}
.hs-ln,.hs-tr,.hs-br{fill:none;stroke:var(--line-strong);stroke-width:5;stroke-linecap:round}
.hs-br{stroke-width:1.4;stroke:var(--accent-line)}
.hs-tr{stroke:var(--line);stroke-width:7}
.hs-fl{fill:none;stroke:var(--accent-line);stroke-width:7;stroke-linecap:round}
.hs-fl.on{stroke:var(--accent)}
.hs-caret{stroke:var(--accent);stroke-width:2;stroke-linecap:round}
.hs-c,.hs-sig{fill:var(--accent)} .hs-sig{opacity:0}
.hs-nd{fill:var(--sunk);stroke:var(--line-strong);stroke-width:1.4}
.hs-nd.on{fill:var(--accent);stroke:var(--accent)}
.xgrid > :nth-child(2){--i:1} .xgrid > :nth-child(3){--i:2} .xgrid > :nth-child(4){--i:3} .xgrid > :nth-child(5){--i:4} .xgrid > :nth-child(6){--i:5} .xgrid > :nth-child(7){--i:6}
/* An odd last tile (the money self-check, 19 Oct 2026) spans the row, so no column sits empty. */
.xgrid > :nth-child(7):last-child{grid-column:1/-1}
@media (max-width:1000px){.hhero{grid-template-columns:minmax(0,1fr) minmax(200px,280px);gap:12px 24px}}
@media (max-width:760px){.hsteps{grid-template-columns:minmax(0,1fr)}.hstep{display:grid;grid-template-columns:132px minmax(0,1fr);align-items:stretch}.hs-art{height:auto;min-height:100%;border-bottom:0;border-right:1px solid var(--line)}.hs-art svg{width:104px;height:62px}.hs-tx{padding:16px 18px}}
@media (max-width:560px){.hhero{grid-template-columns:minmax(0,1fr)}.hfig{width:min(100%,250px);margin:6px auto -10px}.hstep{grid-template-columns:96px minmax(0,1fr)}.hs-art svg{width:80px;height:48px}.hs-tx{padding:14px 16px}}
@media (hover:hover){.xi{transition:transform .25s ease}.xtile:hover .xi{transform:scale(1.08)}}
@media (prefers-reduced-motion:no-preference){
  .phome.view-in .hhero-t > *{animation:hrise .7s cubic-bezier(.2,.7,.2,1) both}
  .phome.view-in .hhero-t > :nth-child(2){animation-delay:.07s} .phome.view-in .hhero-t > :nth-child(3){animation-delay:.14s} .phome.view-in .hhero-t > :nth-child(4){animation-delay:.21s}
  .phome.view-in .hf-ring{stroke-dasharray:1;animation:lrdraw 1.2s cubic-bezier(.3,.6,.2,1) calc(var(--i) * .15s) both}
  .phome.view-in .hf-ring.out{animation:lrfade 1s ease-out .3s both}
  .phome.view-in .hf-br{stroke-dasharray:1;animation:lrdraw .8s ease-out calc(.5s + var(--i) * .15s) both}
  .phome.view-in .hf-n{transform-box:fill-box;transform-origin:center;animation:lrpop .45s cubic-bezier(.3,1.4,.5,1) calc(.9s + var(--i) * .15s) both}
  .phome.view-in .hf-tl,.phome.view-in .hf-tm,.phome.view-in .hf-lab{animation:lrfade .8s ease-out 1.4s both}
  .phome.view-in .hf-glow{animation:lrfade 1.4s ease-out both}
  .hf-glow{transform-box:fill-box;transform-origin:center;animation:hbreathe 7s ease-in-out infinite}
  .hf-orb{transform-box:view-box;transform-origin:180px 158px;animation:lrorb 40s linear infinite}
  .hf-rip{transform-box:fill-box;transform-origin:center;animation:hrip 3s ease-out 1.6s infinite}
  .hf-sig{animation:hsig 9s cubic-bezier(.4,0,.2,1) calc(2s + var(--i) * 3s) infinite}
  .hf-n circle{transform-box:fill-box;transform-origin:center;animation:hland 9s ease-out calc(2s + var(--i) * 3s) infinite}
  .hstep:not(.in)::before{transform:scaleX(0)}
  .hstep.in::before{transition:transform .7s cubic-bezier(.3,.6,.2,1) calc(.2s + var(--i) * .1s)}
  .hs-ln,.hs-fl{stroke-dasharray:1}
  .hstep:not(.in) .hs-ln,.hstep:not(.in) .hs-fl,.hstep:not(.in) .hs-br{stroke-dashoffset:1}
  .hs-br{stroke-dasharray:1}
  .hstep.in .hs-ln{animation:hstype 8s ease-in-out calc(.3s + var(--i) * .45s) infinite}
  .hstep.in .hs-caret{animation:hblink 1.1s steps(1) infinite}
  .hstep.in .hs-br{transition:stroke-dashoffset .6s ease-out calc(.3s + var(--i) * .15s)}
  .hstep.in .hs-nd{transform-box:fill-box;transform-origin:center;animation:lrpop .4s ease-out calc(.6s + var(--i) * .15s) both}
  .hstep.in .hs-sig{animation:hsig 3.6s cubic-bezier(.4,0,.2,1) 1.2s infinite}
  .hstep.in .hs-fl{animation:hsfill 7s cubic-bezier(.3,.6,.2,1) calc(.3s + var(--i) * .2s) infinite}
  .xtile .xi svg :is(path,circle){stroke-dasharray:1}
  .xtile:not(.in) .xi svg :is(path,circle){stroke-dashoffset:1}
  .xtile.in .xi svg :is(path,circle){transition:stroke-dashoffset 1s ease-out calc(.25s + var(--i,0) * .07s)}
  @keyframes hrise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
  @keyframes hbreathe{0%,100%{transform:scale(.92)}50%{transform:scale(1.05)}}
  @keyframes hrip{0%{opacity:.5;transform:scale(1)}70%,100%{opacity:0;transform:scale(3.4)}}
  @keyframes hsig{0%{opacity:0;transform:none}3%{opacity:1}14%{opacity:1;transform:translate(var(--dx),var(--dy))}18%,100%{opacity:0;transform:translate(var(--dx),var(--dy))}}
  @keyframes hland{0%,13%,26%,100%{transform:none}17%{transform:scale(1.16)}}
  @keyframes hstype{0%{stroke-dashoffset:1;opacity:1}14%,80%{stroke-dashoffset:0;opacity:1}92%{stroke-dashoffset:0;opacity:0}100%{stroke-dashoffset:1;opacity:0}}
  @keyframes hblink{0%{opacity:1}50%{opacity:0}}
  @keyframes hsfill{0%{stroke-dashoffset:1}22%,78%{stroke-dashoffset:0}100%{stroke-dashoffset:1}}
}
@media (max-width:980px){.xgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.xgrid{grid-template-columns:minmax(0,1fr)}.xtile{padding:12px}}

/* The person view (15 Oct 2026). */
.ln-explore{display:flex;flex-direction:column;gap:18px;margin:6px 0 18px}
@media (min-width:960px){.ln-mapwrap{order:-1}}
.ln-mapwrap summary{cursor:pointer;font-weight:600;color:var(--accent);padding:6px 0;list-style:none}
.ln-mapwrap summary::-webkit-details-marker{display:none}
.ln-mapwrap summary::before{content:"+ ";font-weight:700}
.ln-mapwrap[open] summary::before{content:"− "}
.ln-mapwrap[open] summary{margin-bottom:8px}
.ln-pick{display:grid;gap:6px;max-width:420px}
.ln-pick select{font:500 16px var(--f-body);color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-s);padding:10px 12px;min-height:44px}
.ln-how{margin:8px 0 14px}
.ln-focus{max-width:640px}
.ln-trail{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;margin:0 0 12px;color:var(--muted)}
.ln-trail b{color:var(--ink)}
.ln-none{margin:2px 0 0}
.ln-up .lbl,.ln-down .lbl,.ln-alike .lbl{display:block;margin:0 0 6px}
.kin{list-style:none;margin:0 0 0 14px;padding:0 0 0 20px;border-left:2px solid var(--line-strong);display:grid;gap:8px}
.kin li{position:relative}
.kin li::before{content:"";position:absolute;left:-20px;top:24px;width:18px;border-top:2px solid var(--ink)}
.kin li.k-built::before{border-top:2px dashed var(--muted)}
.kin li.k-parallel::before{border-top:3px dotted var(--accent)}
.ln-alike .kin{border-left-style:dotted;border-left-color:var(--accent-line)}
.kin-b{display:grid;gap:2px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;color:var(--ink);cursor:pointer}
.kin-b:hover,.kin-b:focus-visible{border-color:var(--accent)}
.kin-n b{font:600 16px/1.3 var(--f-display)}
.kin-n .meta{font-size:13px;margin-left:4px}
.kin-b i{font-size:13px;color:var(--muted)}
.kin-b small{font-size:13px;line-height:1.45;color:var(--muted)}
.kin-b small b{color:var(--ink);font-weight:600}
.ln-stem{height:16px;margin-left:14px;border-left:2px solid var(--line-strong)}
.ln-me{border:2px solid var(--accent);background:var(--accent-soft);border-radius:var(--r);padding:14px 16px}
.ln-me h3{margin:2px 0 2px;font:600 22px/1.25 var(--f-display)}
.ln-me h3 .meta{font:400 14px var(--f-body);margin-left:6px}
.ln-me p{margin:0 0 8px;font-size:15px}
.ln-down,.ln-alike{margin-top:0}
.ln-alike{margin-top:14px}
.ln-more{margin-top:8px}
.ln-more summary{cursor:pointer;color:var(--accent);font-weight:600;font-size:14px;list-style:none}
.ln-more summary::-webkit-details-marker{display:none}
.ln-more[open] summary{margin-bottom:6px}
#ln-explore{scroll-margin-top:calc(var(--bar) + 70px)}

/* ---------- admin console (/psychology/admin) ---------- */
.pa .pa-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:18px 0 6px}
.pa .pa-check{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;cursor:pointer}
.pa .pa-check input{width:16px;height:16px;accent-color:var(--accent);margin:0}
.pa .pa-site{margin-left:auto}
.pa .pa-warn{color:var(--ev-weak)}
.pa .pa-lede{max-width:72ch;margin:4px 0 0}
.pa-tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--line);margin:16px 0 4px}
.pa-tabs::-webkit-scrollbar{display:none}
.pa-tabs button{flex:none;border:0;background:none;padding:10px 12px;font-size:14.5px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:var(--r-s) var(--r-s) 0 0}
.pa-tabs button:hover{color:var(--ink);background:var(--sunk)}
.pa-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.pa-dim{opacity:.55;transition:opacity .2s}
.pa-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:18px}
.pa-tiles.pa-tiles-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pa-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;min-width:0}
.pa-tile-l{font:700 12px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted)}
.pa-tile-v{font:500 32px/1.1 var(--f-display);letter-spacing:-.01em;margin-top:6px}
.pa-tile-s{font-size:13px;color:var(--muted);margin-top:4px}
.pa-delta{display:flex;align-items:center;gap:5px;font-size:12.5px;color:var(--ink);margin-top:6px}
.pa-spark{height:28px;margin-top:8px}
.pa-spark svg{display:block}
.pa-spark-l{fill:none;stroke:var(--faint);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}
.pa-spark-d{fill:var(--accent);stroke:var(--surface);stroke-width:2}
.pa-sec-h{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:34px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.pa-sec-h h2{font:500 22px/1.25 var(--f-display);margin:0}
.pa-seg-s button{padding:4px 11px;font-size:13px}
.pa-fig{margin:16px 0 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;min-width:0}
.pa-fig-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.pa-fig-t{font-weight:700;font-size:15px}
.pa-fig-s{font-size:13px;color:var(--muted);margin-top:2px;max-width:70ch}
.pa-legend{list-style:none;display:flex;gap:16px;margin:10px 0 0;padding:0;font-size:13px;color:var(--muted)}
.pa-legend li{display:inline-flex;align-items:center;gap:6px}
.pa-key{display:inline-block;width:10px;height:10px;border-radius:2px;flex:none}
.pa-key.ln{width:12px;height:2px;border-radius:1px}
.pa-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 12px}
.pa-chart{position:relative;margin-top:12px;touch-action:pan-y}
.pa-chart svg{display:block;overflow:visible}
.pa-chart rect:not(.pa-hover){rx:2px}
.pa-grid{stroke:var(--line);stroke-width:1;shape-rendering:crispEdges}
.pa-tick{font:11px var(--f-mono);fill:var(--faint)}
.pa-hover{fill:var(--sunk)}
.pa-ref{stroke:var(--ev-weak);stroke-width:1.5}
.pa-ref-t{font:600 11.5px var(--f-body);fill:var(--ev-weak)}
.pa-tip{position:absolute;top:0;pointer-events:none;background:var(--raised);border:1px solid var(--line-strong);border-radius:var(--r-s);box-shadow:var(--shadow);padding:8px 10px;font-size:13px;white-space:nowrap;z-index:3}
.pa-tip-t{font:11px var(--f-mono);color:var(--muted);margin-bottom:4px}
.pa-tip-r{display:flex;align-items:center;gap:6px;color:var(--muted)}
.pa-tip-r b{color:var(--ink);font-variant-numeric:tabular-nums}
.pa-tip-r.tot{border-top:1px solid var(--line);margin-top:4px;padding:4px 0 0 18px}
.pa-scroll{overflow-x:auto;margin-top:8px;-webkit-overflow-scrolling:touch}
.pa-table{border-collapse:collapse;width:100%;font-size:14.5px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.pa-fig .pa-table{border:0}
.pa-table th{font:700 12px var(--f-body);letter-spacing:.045em;text-transform:uppercase;color:var(--muted);text-align:left;padding:9px 12px;background:var(--sunk);white-space:nowrap;vertical-align:bottom}
.pa-table th button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.pa-table th button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
.pa-table td{padding:9px 12px;border-top:1px solid var(--line);vertical-align:middle}
.pa-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pa-table th.num button{flex-direction:row-reverse}
.pa-table.dense td{padding:6px 12px;font-size:13.5px}
.pa-table td:first-child{min-width:18ch}
.pa-p{font-size:12px;color:var(--muted);display:inline-block;min-width:3.2em;text-align:right}
.pa-p.thin{color:var(--faint);opacity:.75}
.pa-inl{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px}
.pa-inl span{display:inline-block;height:8px;border-radius:2px;background:var(--accent);flex:none}
.pa-tag{font:700 10.5px var(--f-body);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 7px;margin-left:6px;white-space:nowrap}
.pa-num{display:inline-block;min-width:1.8em;color:var(--faint);font:12px var(--f-mono)}
.pa-more{margin-top:10px}
.pa-bars{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.pa-bars li{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:12px;align-items:center;padding:9px 14px;border-top:1px solid var(--line)}
.pa-bars li:first-child{border-top:0}
.pa-bars-l{font-size:14.5px;min-width:0;overflow-wrap:anywhere}
.pa-bars-l span{display:block;font-size:12px;color:var(--muted)}
.pa-bars-t{display:flex;align-items:center;gap:8px;min-width:0}
.pa-bars-b{display:block;height:10px;border-radius:2px;background:var(--accent);min-width:2px;max-width:calc(100% - 4.5em)}
.pa-bars-v{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.pa-heat{margin-top:10px}
.pa-heat-r{font-size:13.5px;color:var(--muted);min-height:1.5em}
.pa-heat-g{display:grid;grid-template-columns:36px repeat(24,minmax(0,1fr));gap:2px;margin-top:8px}
.pa-heat-h{font:10px var(--f-mono);color:var(--faint);white-space:nowrap;height:14px}
.pa-heat-d{font:11px var(--f-mono);color:var(--faint);align-self:center}
.pa-heat-c{aspect-ratio:1.6;min-height:12px;border-radius:2px;background:color-mix(in srgb, var(--accent) calc(var(--a) * 100%), var(--sunk))}
.pa-heat-c.on{outline:2px solid var(--ink);outline-offset:0}
.pa-heat-s{display:flex;align-items:center;gap:2px;margin-top:10px;font-size:12px;color:var(--muted)}
.pa-heat-s span{width:18px;height:10px;border-radius:2px;background:color-mix(in srgb, var(--accent) calc(var(--a) * 100%), var(--sunk))}
.pa-heat-s span:first-child{margin-left:6px}
.pa-heat-s span:last-child{margin-right:6px}
.pa-plot{display:flex;justify-content:center;margin-top:8px}
.pa-plot .trplot{max-width:420px}
.pa-dot{fill:var(--accent);fill-opacity:.75;stroke:var(--surface);stroke-width:2}
.pa-dot:hover{fill-opacity:1;stroke:var(--ink)}
@media (max-width:1000px){
  .pa-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pa-grid3{grid-template-columns:minmax(0,1fr)}
  .pa .pa-site{margin-left:0}
}
@media (max-width:560px){
  .pa-tiles,.pa-tiles.pa-tiles-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pa-tile{padding:12px}
  .pa-tile-v{font-size:26px}
  .pa-fig{padding:12px}
  .pa-heat-g{grid-template-columns:28px repeat(24,minmax(0,1fr));gap:1px}
  .pa-heat-h{font-size:9px}
  .pa-bars li{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){.pa-dim{transition:none}}
