/* The Ascent — curriculum reading pages (learn/*.html).
   Generated pages share this one same-origin stylesheet. Long-form reading
   surface: warm cream paper, espresso ink, copper accents — the same brand
   tokens as the cinematic overview, tuned for sustained reading. */

@font-face{font-family:'Aboreto';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/aboreto-normal-400.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-normal-400.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/instrument-serif-italic-400.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:300 600;font-display:swap;src:url(/fonts/dm-sans-variable.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-normal-400.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-normal-500.woff2) format('woff2')}

:root{
  --bg:#faf9f6;--paper:#fff;--ink:#3e2723;--ink-mid:#5d4037;--ink-light:#8d6e63;--ink-faint:#bcaaa4;
  --accent:#e64a19;--accent-light:#ff7043;--accent-bg:#fbe9e7;--rule:#e2d8d2;--rule-soft:#efebe9;
  --dark:#160c07;--dark-2:#23150d;--cta:#bf360c;--accent-text:#9e3413;
  --serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',-apple-system,system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;--brand:'Aboreto','Copperplate',serif;
  --topH:50px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
.cur-top :focus-visible{outline-color:var(--accent-light)}

/* ===== top bar (dark, sticky) ===== */
.cur-top{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:14px;
  height:var(--topH);padding:0 clamp(14px,4vw,28px);background:var(--dark);border-bottom:1px solid #2c1a10}
.cur-home{text-decoration:none;white-space:nowrap;font-family:var(--brand);letter-spacing:.05em;color:#fff;font-size:.95rem}
.cur-home .sep{color:#7a5a48;margin:0 2px}
.cur-home .here{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent-light)}
.cur-ladder{display:flex;gap:4px;flex-wrap:nowrap;overflow-x:auto;min-width:0;justify-content:flex-end;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.cur-ladder::-webkit-scrollbar{display:none}
.cur-ladder a{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;text-decoration:none;font-family:var(--mono);font-size:.6rem;white-space:nowrap;
  letter-spacing:.04em;color:#caa99f;border:1px solid transparent;border-radius:14px;padding:4px 9px;transition:.15s}
.cur-ladder a .dot{width:6px;height:6px;border-radius:50%;background:#5a3d29}
.cur-ladder a b{color:#e8d5cc;font-weight:600}
.cur-ladder a:hover{color:#fff;background:rgba(255,112,67,.12)}
.cur-ladder a.on{color:#fff;border-color:var(--accent);background:rgba(230,74,25,.18)}
.cur-ladder a.on .dot{background:var(--accent-light);box-shadow:0 0 8px rgba(255,112,67,.7)}

/* ===== layout ===== */
.cur-main{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:230px minmax(0,1fr);
  gap:clamp(20px,4vw,48px);padding:clamp(20px,4vw,40px) clamp(16px,4vw,28px) 60px}

/* table of contents (collapsible <details>; sticky on desktop) */
.cur-toc{align-self:start;position:sticky;top:calc(var(--topH) + 16px);font-size:.86rem}
.cur-toc>summary{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-light);
  cursor:pointer;padding:6px 0;list-style:none;border-bottom:1px solid var(--rule)}
.cur-toc>summary::-webkit-details-marker{display:none}
.cur-toc>summary::after{content:" ▾";color:var(--accent)}
.cur-toc[open]>summary::after{content:" ▴"}
.cur-toc nav{display:flex;flex-direction:column;gap:2px;margin-top:8px;max-height:calc(100vh - var(--topH) - 60px);overflow-y:auto}
.cur-toc a{text-decoration:none;color:var(--ink-mid);padding:3px 8px;border-left:2px solid var(--rule);line-height:1.35;font-size:.82rem}
.cur-toc a:hover{color:var(--accent);border-left-color:var(--accent);background:var(--accent-bg)}

/* ===== prose ===== */
.cur-prose{max-width:730px;min-width:0}
.cur-prose>*{margin-bottom:1rem}
.cur-prose h1,.cur-prose h2,.cur-prose h3{scroll-margin-top:calc(var(--topH) + 14px);line-height:1.18;color:var(--ink)}
.cur-prose h1{font-family:var(--brand);font-size:clamp(1.9rem,5vw,2.7rem);letter-spacing:.04em;margin:.2rem 0 1rem}
.cur-prose h2{font-size:clamp(1.3rem,3.4vw,1.7rem);font-weight:600;margin-top:2.4rem;padding-top:1.1rem;border-top:1px solid var(--rule)}
.cur-prose h3{font-size:1.12rem;font-weight:600;margin-top:1.7rem;color:var(--ink-mid)}
.cur-prose p{color:var(--ink-mid)}
.cur-prose strong{color:var(--ink);font-weight:600}
.cur-prose em{font-style:italic}
.cur-prose a{color:#9e3413;text-decoration:underline;text-underline-offset:2px}
.cur-prose ul,.cur-prose ol{padding-left:1.4rem;color:var(--ink-mid)}
.cur-prose li{margin:.3rem 0}
.cur-prose li::marker{color:var(--accent-light)}
.cur-prose hr{border:0;height:1px;background:var(--rule);margin:2rem 0}

/* blockquotes — the modules use them for the boundary/callout beats */
.cur-prose blockquote{border-left:3px solid var(--accent);background:var(--accent-bg);
  border-radius:0 4px 4px 0;padding:.7rem 1rem;color:var(--ink)}
.cur-prose blockquote p{color:var(--ink)}
.cur-prose blockquote>*:last-child{margin-bottom:0}

/* inline + block code */
.cur-prose code{font-family:var(--mono);font-size:.86em;background:rgba(230,74,25,.09);color:#9e3413;padding:1px 5px;border-radius:3px}
.cur-prose pre{background:var(--dark-2);color:#ecd9cc;border:1px solid #3a2616;border-radius:6px;
  padding:14px 16px;overflow-x:auto;line-height:1.6}
.cur-prose pre code{font-family:var(--mono);font-size:.82rem;background:none;color:inherit;padding:0}

/* tables — wrapped in .tbl for horizontal scroll on mobile */
.tbl{overflow-x:auto;border:1px solid var(--rule);border-radius:6px;background:var(--paper)}
.cur-prose table{border-collapse:collapse;width:100%;font-size:.9rem;min-width:480px}
.cur-prose th,.cur-prose td{border:1px solid var(--rule);padding:8px 11px;text-align:left;vertical-align:top;color:var(--ink-mid)}
.cur-prose thead th{background:var(--accent-bg);color:var(--ink);font-weight:600;font-size:.82rem}
.cur-prose tbody tr:nth-child(even){background:var(--rule-soft)}

/* ===== footer ===== */
.cur-foot{max-width:1080px;margin:0 auto;padding:24px clamp(16px,4vw,28px) 60px;border-top:1px solid var(--rule)}
.pn-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pn{text-decoration:none;color:var(--ink);background:var(--paper);border:1px solid var(--rule);border-radius:6px;
  padding:11px 15px;font-weight:500;font-size:.92rem;transition:.15s}
.pn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}
.pn-empty{flex:1}
.cur-back{display:inline-block;margin-top:16px;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-mid);text-decoration:none;border:1px solid var(--rule);border-radius:6px;padding:8px 13px;transition:.15s}
.cur-back:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-bg)}

/* ===== mobile ===== */
@media (max-width:880px){
  .cur-main{grid-template-columns:1fr;gap:0}
  .cur-toc{position:static;margin-bottom:22px;top:auto}
  .cur-toc nav{max-height:46vh}
  .cur-prose{max-width:none}
  body{font-size:16px}
}

/* ===== the short interactive lesson (learn/<slug>.html) ===== */
.cur-main.lesson-main{display:block;max-width:820px}
.lesson-kicker{font-family:var(--mono);font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text);margin-bottom:6px}
.cur-lesson h1{font-family:var(--brand);font-size:clamp(2.2rem,6vw,3.2rem);letter-spacing:.04em;color:var(--ink);line-height:1.05;margin:0 0 .6rem}
.cur-lesson h1 .prod{font-size:.5em;color:var(--ink-light)}
.hook{font-family:var(--serif);font-size:clamp(1.2rem,3vw,1.6rem);color:var(--ink-mid);line-height:1.35;margin-bottom:.8rem}
.boundary{font-size:.92rem;color:var(--ink);background:var(--accent-bg);border-left:3px solid var(--accent);border-radius:0 4px 4px 0;padding:.6rem .9rem;margin-bottom:.9rem}
.boundary span{font-family:var(--mono);font-size:.54rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text);margin-right:7px}
.to-full{display:flex;align-items:center;gap:10px;margin:0 0 2rem;padding:12px 16px;background:var(--paper);border:1px solid var(--accent);border-radius:8px;text-decoration:none;transition:.15s}
.to-full:hover{background:var(--accent-bg)}
.to-full b{font-family:var(--sans);font-weight:600;color:var(--cta);font-size:.95rem;white-space:nowrap}
.to-full span{color:var(--ink-light);font-size:.85rem;flex:1;min-width:0}
.to-full::after{content:"→";color:var(--cta);font-weight:700}

.cards{display:flex;flex-direction:column;gap:16px}
.lcard{background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:clamp(16px,3vw,24px);box-shadow:0 2px 10px rgba(62,39,35,.04)}
.lcard h2{font-size:1.25rem;font-weight:600;color:var(--ink);margin:0 0 .6rem;border:0;padding:0}
.lcard>*{margin-bottom:.7rem}
.lcard>*:last-child{margin-bottom:0}
.lcard p{color:var(--ink-mid)}
.lcard ul,.lcard ol{padding-left:1.3rem;color:var(--ink-mid)}
.lcard li{margin:.25rem 0}
.lcard strong{color:var(--ink)}
.lcard .tbl{margin:.2rem 0}
.takeaway{font-size:.9rem;color:var(--ink);background:var(--rule-soft);border-radius:6px;padding:.55rem .8rem;margin-top:.5rem!important}
.takeaway span{font-family:var(--mono);font-size:.52rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-text);margin-right:7px}

.decider,.practice,.selfcheck,.levelup{margin-top:28px}
.decider>h2,.practice>h2,.selfcheck>h2,.levelup>h2{font-family:var(--brand);font-size:1.3rem;letter-spacing:.03em;color:var(--ink);margin-bottom:.7rem;border:0;padding:0}

/* decider — radios reveal a verdict (pure CSS, no JS) */
.dq{color:var(--ink-mid);margin-bottom:.8rem}
.dchoices{display:flex;flex-direction:column;gap:8px}
.dradio{position:absolute;opacity:0;width:0;height:0}
.dlabel{display:block;cursor:pointer;background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:11px 14px;color:var(--ink-mid);transition:.15s}
.dlabel:hover{border-color:var(--accent);background:var(--accent-bg)}
.dradio:checked+.dlabel{border-color:var(--accent);background:var(--accent-bg);color:var(--ink);font-weight:500}
.dradio:focus-visible+.dlabel{outline:2px solid var(--accent);outline-offset:2px}
.dverdict{display:none;margin:6px 0 4px;padding:10px 14px;border-left:3px solid var(--accent);background:var(--rule-soft);border-radius:0 6px 6px 0;color:var(--ink);font-size:.92rem}
.dradio:checked~.dverdict{display:block}
.dhint{font-size:.78rem;color:var(--ink-mid);margin-top:8px}

/* practice — copy the prompt into Claude */
.practice{background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:clamp(16px,3vw,22px)}
.practice>p{color:var(--ink-mid);margin-bottom:.7rem}
.cprompt{background:var(--dark-2);color:#ecd9cc;border:1px solid #3a2616;border-radius:8px;padding:14px 16px;font-family:var(--mono);font-size:.84rem;line-height:1.6;white-space:pre-wrap;word-break:break-word;margin-bottom:.85rem}
.pactions{display:flex;gap:10px;flex-wrap:wrap}
.tcopy{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);background:var(--accent-bg);border:1px solid var(--accent);border-radius:20px;padding:9px 16px;cursor:pointer}
.tcopy:hover{background:#f8ddd4}
.tcopy.done{color:#fff;background:var(--cta);border-color:var(--cta)}
.topen{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--cta);border:1px solid var(--cta);border-radius:20px;padding:10px 17px;text-decoration:none}
.topen:hover{background:#a83009;border-color:#a83009}

/* self-check */
.checklist{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}
.checklist label{display:flex;gap:10px;align-items:flex-start;cursor:pointer;color:var(--ink-mid);font-size:.94rem;line-height:1.45}
.checklist input{margin-top:4px;accent-color:var(--accent);width:16px;height:16px;flex:none}
.checklist label:has(input:checked){color:var(--ink-light);text-decoration:line-through}

/* level up */
.levelup{border-top:1px solid var(--rule);padding-top:22px}
.levelup p{color:var(--ink-mid)}
.nexthint{color:var(--ink-mid);font-size:.9rem;margin-top:.4rem}
.next-lesson{display:inline-block;margin-top:14px;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--cta);border-radius:6px;padding:11px 18px;text-decoration:none}
.next-lesson:hover{background:#a83009}

/* full-reference back-note */
.ref-note{font-size:.86rem;color:var(--ink-light);background:var(--rule-soft);border-radius:6px;padding:.55rem .8rem;margin-bottom:1.4rem!important}
.ref-note a{color:#9e3413}

/* ===== lesson interactivity ===== */
/* scroll progress bar */
.lprog{position:fixed;top:0;left:0;height:3px;width:0;background:var(--cta);z-index:30;transition:width .1s linear}

/* reveal-on-scroll — only hides when JS is active AND motion is allowed (graceful) */
.reveal-on .reveal{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.reveal-on .reveal.in{opacity:1;transform:none}

.tcopy.mini{font-size:.58rem;padding:6px 12px}

/* decider routing link (revealed in the chosen verdict) */
.dgo{display:inline-block;margin-top:9px;font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--cta);border-radius:5px;padding:7px 12px;text-decoration:none}
.dgo:hover{background:#a83009}

/* self-check progress + completion */
.sc-top{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.sc-progress{flex:1;height:8px;background:var(--rule);border-radius:99px;overflow:hidden}
.sc-bar{height:100%;width:0;background:var(--cta);border-radius:99px;transition:width .3s ease}
.sc-count{font-family:var(--mono);font-size:.72rem;color:var(--ink-mid);white-space:nowrap}
.sc-count .sc-n{color:var(--cta)}
.sc-done{margin-top:14px;padding:12px 15px;background:var(--accent-bg);border:1px solid var(--accent);border-radius:8px;color:var(--ink);font-weight:600}
.sc-next{display:inline-block;margin-left:6px;color:var(--cta);text-decoration:underline;text-underline-offset:2px;font-weight:600}

/* ladder: completed lessons (persisted across pages) */
.cur-ladder a.done{color:#f0ddd2}
.cur-ladder a.done .dot{background:var(--accent-light)}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1!important;transform:none!important;transition:none!important}
  .sc-bar,.lprog{transition:none}
}

/* ===== "Do it now" step-runner ===== */
.dosteps{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:8px;padding:20px 22px;margin:26px 0}
.dosteps h2{margin:0 0 4px}
.ds-sub{font-size:.85rem;color:var(--ink-light);margin:0 0 12px}
.ds-dots{display:none;gap:8px;margin-bottom:14px}
.dosteps.on .ds-dots{display:flex}
.ds-dot{width:12px;height:12px;border-radius:50%;background:var(--rule);border:0;padding:0;cursor:pointer;transition:.25s}
.ds-dot.done{background:var(--accent-light)}
.ds-dot.now{background:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.ds-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}
.dosteps.on .dstep{display:none}
.dosteps.on .dstep.cur{display:block}
.ds-n{font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text);margin:0 0 6px}
.ds-n b{color:var(--ink);font-size:.72rem}
.ds-why{font-size:.9rem;color:var(--ink-mid);margin:0 0 10px}
.ds-how{background:var(--bg);border:1px solid var(--rule);border-left:3px solid var(--ink-faint);border-radius:4px;padding:11px 13px;font-size:.88rem;color:var(--ink-mid);margin:0 0 10px}
.ds-ctas{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.topen.mini{font-size:.58rem;padding:7px 13px}
.ds-see{font-size:.8rem;color:var(--ink-light);margin:8px 0 0}
.ds-see::before{content:"\2713  ";color:var(--accent)}
.ds-nav{display:none;justify-content:space-between;gap:8px;margin-top:14px;border-top:1px solid var(--rule-soft);padding-top:12px}
.dosteps.on .ds-nav{display:flex}
.ds-nav button{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;background:var(--paper);border:1px solid var(--rule);border-radius:18px;padding:9px 15px;color:var(--ink-mid);cursor:pointer}
.ds-nav button:hover:not(:disabled){border-color:var(--accent);color:var(--accent-text)}
.ds-nav button:disabled{opacity:.35;cursor:default}
.ds-nav .ds-done{color:#fff;background:var(--cta);border-color:var(--cta)}
.ds-nav .ds-done.on{background:#2e7d32;border-color:#2e7d32}

/* ===== the climb: progress strip + level-up ===== */
.ascent-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;max-width:820px;margin:14px auto 0;padding:10px 16px;background:var(--paper);border:1px solid var(--rule);border-radius:24px;box-shadow:0 4px 14px rgba(62,39,35,.06)}
.as-rank{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--cta);border-radius:14px;padding:5px 11px;white-space:nowrap}
.as-bar{flex:1;min-width:120px;height:8px;background:var(--rule-soft);border-radius:4px;overflow:hidden}
.as-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent-light),var(--accent));border-radius:4px;transition:width .5s ease}
.as-floors{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;color:var(--ink-light);white-space:nowrap}
.as-next{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text);text-decoration:none;border:1px solid var(--accent);border-radius:14px;padding:5px 11px;white-space:nowrap}
.as-next:hover{background:var(--accent-bg)}
.as-next.summit{color:#2e7d32;border-color:#2e7d32}
.levelup-banner{max-width:820px;margin:10px auto 0;padding:12px 18px;background:var(--dark);color:#ffd9c2;font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;border-radius:8px;border:1px solid var(--accent);box-shadow:0 10px 30px rgba(230,74,25,.25);animation:lvlin .5s ease;transition:opacity .8s ease}
.levelup-banner.out{opacity:0}
@keyframes lvlin{from{transform:translateY(-8px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.as-bar i{transition:none}.levelup-banner{animation:none;transition:none}}

/* ===== collapsible idea cards ===== */
.cards-hint{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-light);margin:0 0 4px}
.lcard summary{cursor:pointer;list-style:none;position:relative;padding-right:28px}
.lcard summary::-webkit-details-marker{display:none}
.lcard summary h2{margin:0 0 6px}
.lcard summary .takeaway{margin:0}
.lcard summary::after{content:"+";position:absolute;right:2px;top:0;font-family:var(--mono);font-size:1.1rem;color:var(--accent)}
.lcard[open] summary::after{content:"–"}
.lcard .cbody{margin-top:12px;border-top:1px solid var(--rule-soft);padding-top:12px}

/* ===== interactive IDE model ===== */
.idemodel{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:8px;padding:20px 22px;margin:26px 0}
.im-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 12px}
.im-tab{font-family:var(--mono);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;background:var(--paper);border:1px solid var(--rule);border-radius:16px;padding:8px 13px;color:var(--ink-mid);cursor:pointer}
.im-tab.on{color:#fff;background:var(--cta);border-color:var(--cta)}
.im-shell{display:flex;border:1px solid var(--dark-2);border-radius:8px;overflow:hidden;background:#1a0f08;min-height:270px}
.im-side{flex:0 0 108px;background:#23150d;border-right:1px solid #3a2616;padding:10px 9px;display:flex;flex-direction:column;gap:7px;font-family:var(--mono);font-size:.62rem;color:#c79b86}
.im-side .im-file{padding-left:10px;opacity:.7}
.im-side .im-file.on{color:#ffd9c2;opacity:1}
.im-main{flex:1;display:flex;flex-direction:column;min-width:0}
.im-ed{margin:0;padding:13px 14px;font-family:var(--mono);font-size:.72rem;line-height:1.75;color:#e8d5c4;background:#1a0f08;white-space:pre-wrap;min-height:120px}
.im-ghost{color:#8d6e63;font-style:italic}
.im-cursor{color:var(--accent-light);animation:imblink 1.1s step-end infinite}
@keyframes imblink{50%{opacity:0}}
.im-sel{background:rgba(230,74,25,.35);color:#ffe0cf;border-radius:2px}
.im-panel{border-top:1px solid #3a2616;background:#23150d;padding:12px 14px;display:flex;flex-direction:column;gap:9px;align-items:flex-start}
.im-p{margin:0;font-size:.8rem;color:#e2cfc6}
.im-btn{font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;background:none;border:1px solid #8d6e63;border-radius:14px;padding:7px 13px;color:#ffd9c2;cursor:pointer}
.im-btn.on{background:var(--accent);border-color:var(--accent);color:#fff}
.im-btn:hover{border-color:var(--accent-light)}
.im-bub{background:#1a0f08;border:1px solid #3a2616;border-left:3px solid var(--accent);border-radius:6px;padding:10px 12px;font-size:.78rem;color:#e8d5c4;line-height:1.5}
.im-acts{font-family:var(--mono);font-size:.66rem;color:#9ad8a0;display:flex;flex-direction:column;gap:4px}
.im-diff{width:100%;border:1px solid #3a2616;border-radius:6px;overflow:hidden}
.im-diff .dh{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;color:#ffd9c2;background:#1a0f08;padding:6px 10px;border-bottom:1px solid #3a2616}
.im-diff .dl{display:block;font-family:var(--mono);font-size:.68rem;padding:2px 10px;color:#c9b3aa}
.im-diff .dl.rm{background:rgba(180,50,40,.25);color:#ff9a8a}
.im-diff .dl.ad{background:rgba(60,140,70,.22);color:#9ad8a0}
.im-hint{font-size:.8rem;color:var(--ink-light);margin:10px 0 0}
.im-hint::before{content:"◆ ";color:var(--accent)}
@media (max-width:560px){.im-side{flex-basis:84px}}
@media (prefers-reduced-motion:reduce){.im-cursor{animation:none}}

/* ===== interactive GitHub board ===== */
.gitmodel{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:8px;padding:20px 22px;margin:26px 0}
.gm-cols{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:stretch;margin-top:12px}
.gm-col{background:#1a0f08;border:1px solid #3a2616;border-radius:8px;padding:11px 10px;min-height:150px}
.gm-h{font-family:var(--mono);font-size:.62rem;letter-spacing:.04em;color:#ffd9c2;text-align:center;margin-bottom:9px}
.gm-stack{display:flex;flex-direction:column;gap:6px}
.gm-c{font-family:var(--mono);font-size:.64rem;padding:6px 9px;border-radius:5px;background:#23150d;border:1px solid #3a2616;color:#e8d5c4;transition:box-shadow .2s}
.gm-c.mate{color:#9ad8a0}
.gm-c.merge{background:rgba(230,74,25,.22);color:#ffd9c2}
.gm-c.only{box-shadow:0 0 0 2px var(--accent-light);border-color:var(--accent)}
.gm-mid{display:flex;flex-direction:column;justify-content:center;gap:14px;font-family:var(--mono);font-size:.5rem;letter-spacing:.06em;text-transform:uppercase;color:#8d6e63;text-align:center;line-height:1.4}
.gm-status{font-size:.82rem;color:var(--ink-mid);line-height:1.5;min-height:3em;margin:14px 0 12px}
.gm-status b{color:var(--ink);font-weight:600}
.gm-btns{display:flex;gap:7px;flex-wrap:wrap}
.gm-btns button{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;background:var(--accent-bg);border:1px solid var(--accent);border-radius:16px;padding:8px 13px;color:var(--accent-text);cursor:pointer}
.gm-btns button:hover{background:#f8ddd4}
.gm-btns button.ghost{background:var(--paper);border-color:var(--rule);color:var(--ink-light)}
@media (max-width:560px){.gm-status{min-height:3.6em}}

/* ===== faux-interface demos (vague⇄sharp toggles, ROCCO builder) ===== */
.ivx{margin:22px 0 28px}
.ivx-lbl{font-family:var(--mono);font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-text);margin:0 0 10px}
.ivx-intro{margin:20px 0 2px;font-size:.9rem;color:var(--ink-mid)}
.ivx-intro::before{content:"▲ ";color:var(--accent);font-size:.8em}

/* --- vague ⇄ sharp toggle cards --- */
.vc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.vc-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:13px 14px;box-shadow:0 2px 10px rgba(62,39,35,.04)}
.vc-top{display:flex;align-items:center;gap:8px;margin-bottom:9px}
.vc-cat{font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-light)}
.vc-state{margin-left:auto;font-family:var(--mono);font-size:.56rem;letter-spacing:.06em;text-transform:uppercase;color:#b23b1a;background:#fbe3dc;border-radius:12px;padding:3px 9px}
.vc-card.fixed .vc-state{color:#2f7d43;background:#e4f3e6}
.vc-msg{margin:0;font-family:var(--mono);font-size:.76rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;background:var(--dark-2);border-radius:7px;padding:11px 12px;min-height:3.2em}
.vc-msg-vague{color:#e8c7bb}
.vc-msg-clear{display:none;color:#d7ead9}
.vc-card.fixed .vc-msg-vague{display:none}
.vc-card.fixed .vc-msg-clear{display:block}
.vc-crit{margin:9px 0 0;font-size:.8rem;line-height:1.45}
.vc-crit-bad{color:#b23b1a}
.vc-crit-good{display:none;color:#2f7d43}
.vc-card.fixed .vc-crit-bad{display:none}
.vc-card.fixed .vc-crit-good{display:block}
.vc-toggle{margin-top:11px;align-self:flex-start;font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;background:var(--accent-bg);border:1px solid var(--accent);border-radius:16px;padding:7px 13px;color:var(--accent-text);cursor:pointer}
.vc-toggle:hover{background:#f8ddd4}

/* --- ROCCO builder --- */
.rocco{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:8px;padding:18px 20px}
.ro-presets{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.ro-plbl{font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-light);margin-right:2px}
.ro-preset,.ro-clear{font-family:var(--mono);font-size:.6rem;letter-spacing:.04em;text-transform:uppercase;background:var(--accent-bg);border:1px solid var(--accent);border-radius:16px;padding:7px 13px;color:var(--accent-text);cursor:pointer}
.ro-preset:hover,.ro-clear:hover{background:#f8ddd4}
.ro-preset.on{color:#fff;background:var(--cta);border-color:var(--cta)}
.ro-clear{background:var(--paper);border-color:var(--rule);color:var(--ink-light)}
.ro-fields{display:flex;flex-direction:column;gap:9px}
.ro-field{display:flex;gap:11px;align-items:flex-start}
.ro-key{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-weight:700;font-size:.78rem;color:var(--ink-light);background:var(--rule-soft);border:1px solid var(--rule);margin-top:2px}
.ro-field.filled .ro-key{color:#fff;background:var(--accent);border-color:var(--accent)}
.ro-body{flex:1;min-width:0}
.ro-name{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mid);margin-bottom:3px}
.ro-in{width:100%;box-sizing:border-box;resize:none;overflow:hidden;font-family:var(--sans);font-size:.86rem;line-height:1.5;color:var(--ink);background:var(--bg);border:1px solid var(--rule);border-radius:6px;padding:7px 10px;min-height:2.3em}
.ro-in:focus{outline:none;border-color:var(--accent);background:var(--paper)}
.ro-in::placeholder{color:var(--ink-faint)}
.ro-out{margin-top:15px}
.ro-out-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:7px}
.ro-out-t{font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-light)}
.ro-acts{margin-left:auto;display:flex;gap:7px}
.ro-prompt{margin:0;background:var(--dark-2);color:#ecd9cc;border:1px solid #3a2616;border-radius:8px;padding:13px 15px;font-family:var(--mono);font-size:.82rem;line-height:1.6;white-space:pre-wrap;word-break:break-word}
.ro-prompt.empty{color:#8d6e63}

/* --- token split --- */
.tok-chips{display:flex;flex-wrap:wrap;gap:5px}
.tok-chip{font-family:var(--mono);font-size:.82rem;color:#e8d5c4;background:var(--dark-2);border:1px solid #3a2616;border-radius:5px;padding:5px 9px}
.tok-chip:nth-child(odd){background:#2c1b10}
.tok-note{font-size:.86rem;color:var(--ink-mid);margin:11px 0 0}
.tok-note b{color:var(--accent-text);font-family:var(--mono);font-size:.8rem}

/* --- terminal replay (faux Claude window) --- */
.tm-win{border:1px solid var(--dark-2);border-radius:10px;overflow:hidden;background:#1a0f08;box-shadow:0 4px 18px rgba(62,39,35,.1)}
.tm-bar{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#23150d;border-bottom:1px solid #3a2616}
.tm-dots{display:flex;gap:5px}
.tm-dots i{width:9px;height:9px;border-radius:50%;background:#4a3122}
.tm-tabs{display:flex;gap:5px;margin-left:2px}
.tm-tab{font-family:var(--mono);font-size:.58rem;letter-spacing:.05em;text-transform:uppercase;background:transparent;border:1px solid #3a2616;border-radius:14px;padding:5px 11px;color:#c79b86;cursor:pointer}
.tm-tab.on{color:#fff;background:var(--cta);border-color:var(--cta)}
.tm-replay{margin-left:auto;font-family:var(--mono);font-size:.58rem;letter-spacing:.05em;text-transform:uppercase;background:transparent;border:1px solid #3a2616;border-radius:14px;padding:5px 11px;color:#ffb38f;cursor:pointer}
.tm-replay:hover{border-color:var(--accent-light);color:#fff}
.tm-body{padding:14px}
.tm-panel{display:none}
.tm-panel.on{display:block}
.tm-msg{margin-bottom:11px}
.tm-who{display:block;font-family:var(--mono);font-size:.54rem;letter-spacing:.09em;text-transform:uppercase;margin-bottom:4px}
.tm-user .tm-who{color:#8d6e63}
.tm-claude .tm-who{color:#ffb38f}
.tm-txt{margin:0;font-size:.9rem;line-height:1.5;color:#e8d5c4;white-space:pre-wrap}
.tm-user .tm-txt{color:#c79b86}
.tm-txt.typing::after{content:"▋";color:var(--accent-light);animation:tmcar 1s step-end infinite}
@keyframes tmcar{50%{opacity:0}}
.tm-flag{margin:12px 0 0;font-size:.82rem;line-height:1.45;border-radius:6px;padding:9px 11px}
.tm-flag-bad{color:#ffd0c2;background:rgba(230,74,25,.16);border:1px solid rgba(230,74,25,.4)}
.tm-flag-good{color:#c9ead0;background:rgba(76,160,90,.15);border:1px solid rgba(76,160,90,.4)}

/* --- connector grant (faux permission dialog) --- */
.gr-win{max-width:440px;background:var(--paper);border:1px solid var(--rule);border-radius:12px;padding:16px 18px;box-shadow:0 4px 18px rgba(62,39,35,.08)}
.gr-head{display:flex;align-items:center;gap:11px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.gr-icon{font-size:1.5rem}
.gr-h-txt b{display:block;font-size:.95rem;color:var(--ink)}
.gr-h-txt small{font-family:var(--mono);font-size:.7rem;color:var(--ink-light)}
.gr-scopes{display:flex;flex-direction:column;gap:2px;margin:12px 0}
.gr-scope{display:flex;align-items:center;gap:11px;padding:9px 4px;cursor:pointer}
.gr-chk{position:absolute;opacity:0;width:0;height:0}
.gr-sw{flex:0 0 auto;width:38px;height:22px;border-radius:12px;background:var(--rule);position:relative;transition:.15s}
.gr-sw::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.15s}
.gr-chk:checked+.gr-sw{background:var(--accent)}
.gr-chk:checked+.gr-sw::after{transform:translateX(16px)}
.gr-chk:focus-visible+.gr-sw{outline:2px solid var(--accent);outline-offset:2px}
.gr-txt{flex:1;min-width:0}
.gr-txt b{display:block;font-size:.88rem;color:var(--ink)}
.gr-txt small{font-size:.78rem;color:var(--ink-light)}
.gr-tag{font-family:var(--mono);font-size:.54rem;letter-spacing:.06em;text-transform:uppercase;border-radius:10px;padding:3px 8px}
.gr-tag-read{color:#2f7d43;background:#e4f3e6}
.gr-tag-write{color:#b23b1a;background:#fbe3dc}
.gr-readout{font-size:.84rem;line-height:1.5;color:var(--ink-mid);background:var(--rule-soft);border-radius:7px;padding:9px 11px;margin:2px 0 12px}
.gr-readout b{color:var(--ink);font-weight:600}
.gr-readout.warn{background:#fdeee9;color:#8a3417}
.gr-actions{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.gr-approve{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;background:var(--cta);color:#fff;border:1px solid var(--cta);border-radius:18px;padding:9px 16px;cursor:pointer}
.gr-approve:hover{background:#a83009}
.gr-status{font-size:.8rem;color:var(--ink-mid);line-height:1.4}
.gr-status.ok{color:#2f7d43}
.gr-status.warn{color:#b23b1a}

/* --- multi-agent run --- */
.ag-brd{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:8px;padding:15px 17px}
.ag-tag{font-family:var(--mono);font-size:.54rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);background:var(--accent-bg);border-radius:10px;padding:3px 8px;margin-right:7px}
.ag-brief{font-size:.9rem;color:var(--ink);line-height:1.5}
.ag-lead{font-size:.84rem;color:var(--ink-mid);margin:12px 0 10px;padding:9px 11px;background:var(--rule-soft);border-radius:7px;line-height:1.45}
.ag-lead b{color:var(--ink)}
.ag-par{display:inline-block;font-family:var(--mono);font-size:.56rem;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-text);border:1px solid var(--accent);border-radius:10px;padding:2px 7px;margin-left:4px}
.ag-workers{display:flex;flex-direction:column;gap:7px}
.ag-w{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 11px;background:#1a0f08;border:1px solid #3a2616;border-radius:7px;opacity:.55;transition:opacity .25s,box-shadow .25s}
.ag-w.working{opacity:1;box-shadow:0 0 0 2px var(--accent-light)}
.ag-w.done{opacity:1}
.ag-w-role{font-family:var(--mono);font-size:.66rem;letter-spacing:.03em;color:#ffd9c2;background:#3a2616;border-radius:5px;padding:4px 8px}
.ag-w-job{font-size:.82rem;color:#c79b86;min-width:0}
.ag-w-out{font-family:var(--mono);font-size:.72rem;color:#9ad8a0;display:none;grid-column:2;margin-top:2px}
.ag-w.done .ag-w-out{display:block}
.ag-w-badge{font-family:var(--mono);font-size:.56rem;letter-spacing:.05em;text-transform:uppercase;color:#8d6e63;white-space:nowrap}
.ag-w.working .ag-w-badge{color:var(--accent-light)}
.ag-w.done .ag-w-badge{color:#9ad8a0}
.ag-result,.ag-gate{display:none}
.agents.ran .ag-result{display:block;margin-top:12px;font-size:.88rem;color:var(--ink)}
.ag-result-v{font-family:var(--mono);font-size:.8rem;color:var(--accent-text)}
.agents.ran .ag-gate{display:block;margin:10px 0 0;font-size:.84rem;color:var(--ink-mid);line-height:1.45}
.ag-btns{display:flex;gap:8px;margin-top:12px}
.ag-run{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;background:var(--cta);color:#fff;border:1px solid var(--cta);border-radius:18px;padding:9px 16px;cursor:pointer}
.ag-run:hover{background:#a83009}
.ag-reset{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;background:var(--paper);color:var(--ink-light);border:1px solid var(--rule);border-radius:18px;padding:9px 14px;cursor:pointer}
@media (max-width:560px){.ag-w{grid-template-columns:auto 1fr;row-gap:2px}.ag-w-badge{grid-column:2;justify-self:start}}

/* --- deliverable review (trace claims to source) --- */
.rv-doc{background:var(--paper);border:1px solid var(--rule);border-radius:10px;overflow:hidden;box-shadow:0 2px 12px rgba(62,39,35,.05)}
.rv-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;background:var(--rule-soft);border-bottom:1px solid var(--rule)}
.rv-file{font-family:var(--mono);font-size:.72rem;color:var(--ink)}
.rv-tally{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-light)}
.rv-claims{display:flex;flex-direction:column}
.rv-claim{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px 12px;padding:12px 14px;border-bottom:1px solid var(--rule-soft)}
.rv-text{margin:0;font-size:.9rem;color:var(--ink-mid);line-height:1.45}
.rv-claim.checked .rv-text{color:var(--ink)}
.rv-check{font-family:var(--mono);font-size:.58rem;letter-spacing:.05em;text-transform:uppercase;background:var(--accent-bg);border:1px solid var(--accent);border-radius:14px;padding:6px 11px;color:var(--accent-text);cursor:pointer;white-space:nowrap}
.rv-check:hover{background:#f8ddd4}
.rv-claim.checked .rv-check{pointer-events:none}
.rv-claim.good .rv-check{background:#e4f3e6;border-color:#8ec99a;color:#2f7d43}
.rv-claim.bad .rv-check{background:#fbe3dc;border-color:#e79c86;color:#b23b1a}
.rv-src{grid-column:1/-1;margin:0;font-size:.8rem;line-height:1.4;display:none}
.rv-claim.checked .rv-src{display:block}
.rv-claim.good .rv-src{color:#2f7d43}
.rv-claim.bad .rv-src{color:#b23b1a}
.rv-foot{padding:13px 14px}
.rv-verdict{margin:0;font-size:.86rem;color:var(--ink-mid);line-height:1.45;opacity:.45;transition:opacity .2s}
.rv-verdict.show{opacity:1;color:var(--ink)}
.rv-acts{display:flex;gap:8px;margin-top:11px}
.rv-accept,.rv-back{font-family:var(--mono);font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;border-radius:16px;padding:8px 14px;cursor:pointer;border:1px solid var(--rule)}
.rv-accept{background:var(--rule-soft);color:var(--ink-light)}
.review.reviewed .rv-accept{background:var(--cta);border-color:var(--cta);color:#fff}
.review.reviewed .rv-accept.locked{background:#f1d9d1;border-color:#e79c86;color:#b23b1a}
.rv-back{background:var(--paper);color:var(--accent-text);border-color:var(--accent)}
.rv-back:hover{background:var(--accent-bg)}
.rv-flash{margin:11px 0 0;font-size:.82rem;line-height:1.4;font-weight:500}
.rv-flash.ok{color:#2f7d43}
.rv-flash.warn{color:#b23b1a}
@media (max-width:560px){.rv-claim{grid-template-columns:1fr}.rv-check{justify-self:start}}

/* --- rules file (a rule needs a check) --- */
.rl-file{border:1px solid var(--dark-2);border-radius:10px;overflow:hidden;background:#1a0f08}
.rl-bar{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#23150d;border-bottom:1px solid #3a2616}
.rl-name{font-family:var(--mono);font-size:.7rem;color:#ffd9c2}
.rl-rules{display:flex;flex-direction:column}
.rl-rule{display:grid;grid-template-columns:1fr auto;gap:8px 14px;align-items:start;padding:13px 14px;border-bottom:1px solid #2c1b10}
.rl-rule:last-child{border-bottom:0}
.rl-text{margin:0;font-family:var(--mono);font-size:.8rem;color:#e8d5c4;line-height:1.5}
.rl-text::before{content:"– ";color:var(--accent-light)}
.rl-gate{grid-column:1;display:flex;align-items:center;gap:9px;cursor:pointer;margin-top:2px}
.rl-chk{position:absolute;opacity:0;width:0;height:0}
.rl-chk:checked+.gr-sw{background:var(--accent)}
.rl-chk:checked+.gr-sw::after{transform:translateX(16px)}
.rl-chk:focus-visible+.gr-sw{outline:2px solid var(--accent-light);outline-offset:2px}
.rl-gate .gr-sw{background:#3a2616}
.rl-gate-t b{display:block;font-size:.68rem;color:#c79b86;font-weight:500}
.rl-gate-t small{font-family:var(--mono);font-size:.64rem;color:#8d6e63}
.rl-chk:checked~.rl-gate-t b{color:#ffb38f}
.rl-outcome{grid-row:1;grid-column:2;font-family:var(--mono);font-size:.6rem;letter-spacing:.04em;text-transform:uppercase;color:#8d6e63;text-align:right;white-space:nowrap}
.rl-outcome.ok{color:#9ad8a0}
.rl-outcome.bad{color:#ff9a7a}
.rl-rule.slipped{background:rgba(230,74,25,.1)}
.rl-note{font-size:.84rem;color:var(--ink-mid);line-height:1.5;margin:12px 0 0;min-height:1.5em}
.rules.ran .rl-note{color:var(--ink);font-weight:500}
.rl-run{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;background:var(--cta);color:#fff;border:1px solid var(--cta);border-radius:18px;padding:9px 16px;cursor:pointer}
.rl-run:hover{background:#a83009}
.rl-reset{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;background:var(--paper);color:var(--ink-light);border:1px solid var(--rule);border-radius:18px;padding:9px 14px;cursor:pointer}
/* mobile: give the rule text the full width; drop its outcome badge to its own row */
@media (max-width:560px){.rl-rule{grid-template-columns:1fr;gap:7px}.rl-outcome{grid-row:auto;grid-column:1;text-align:left}}

/* --- capability surface picker --- */
.sf-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:14px;align-items:start}
.sf-ladder{display:flex;flex-direction:column;gap:4px}
.sf-rung{display:flex;align-items:center;gap:10px;text-align:left;background:var(--paper);border:1px solid var(--rule);border-radius:8px;padding:9px 11px;cursor:pointer;transition:.12s}
.sf-rung:hover{border-color:var(--accent-light);background:var(--accent-bg)}
.sf-rung.on{border-color:var(--accent);background:var(--accent-bg);box-shadow:inset 3px 0 0 var(--accent)}
.sf-n{flex:0 0 auto;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-family:var(--mono);font-size:.7rem;font-weight:700;color:var(--ink-light);background:var(--rule-soft)}
.sf-rung.on .sf-n{color:#fff;background:var(--accent)}
.sf-name{font-size:.86rem;color:var(--ink);font-weight:500}
.sf-detail{position:sticky;top:calc(var(--topH) + 12px);background:var(--dark-2);border:1px solid #3a2616;border-radius:10px;padding:15px 16px;min-height:120px}
.sf-adds{margin:0 0 12px;font-size:.98rem;line-height:1.4;color:#ffd9c2;font-family:var(--serif)}
.sf-unlocks{margin:0;font-size:.86rem;color:#e8d5c4;line-height:1.5}
.sf-unlocks span{display:block;font-family:var(--mono);font-size:.54rem;letter-spacing:.1em;text-transform:uppercase;color:#c79b86;margin-bottom:4px}
@media (max-width:560px){.sf-wrap{grid-template-columns:1fr}.sf-detail{position:static}}

/* --- context window (fill it until the oldest turns fall out) --- */
.cx-win{background:#1a0f08;border:1px solid #3a2616;border-radius:10px;overflow:hidden}
.cx-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 13px;background:#23150d;border-bottom:1px solid #3a2616;font-family:var(--mono);font-size:.68rem;color:#ffd9c2}
.cx-cap{color:#c79b86}
.cx-cap b{color:#ffb38f}
.cx-stack{display:flex;flex-direction:column;gap:6px;padding:12px 13px;min-height:64px}
.cx-msg{font-size:.82rem;color:#e8d5c4;background:#23150d;border:1px solid #3a2616;border-radius:6px;padding:8px 11px;line-height:1.4;animation:cxin .28s ease}
.cx-msg.gone{opacity:.34;color:#8d6e63;border-style:dashed;text-decoration:line-through}
@keyframes cxin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cx-msg{animation:none}.tm-txt.typing::after{animation:none}}
.cx-note{font-size:.84rem;color:var(--ink-mid);line-height:1.5;margin:12px 0 12px;min-height:3em}
.cx-add{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;background:var(--cta);color:#fff;border:1px solid var(--cta);border-radius:18px;padding:9px 16px;cursor:pointer}
.cx-add:hover{background:#a83009}
.cx-add:disabled{background:var(--rule);border-color:var(--rule);color:var(--ink-light);cursor:default}
.cx-reset{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;background:var(--paper);color:var(--ink-light);border:1px solid var(--rule);border-radius:18px;padding:9px 14px;cursor:pointer}

/* --- inbox scan (open each flag; one is mislabeled) — .ib-* avoids the self-check .sc-* namespace --- */
.ib-win{background:var(--paper);border:1px solid var(--rule);border-radius:10px;overflow:hidden;box-shadow:0 2px 12px rgba(62,39,35,.05)}
.ib-bar{display:flex;align-items:center;gap:9px;padding:10px 13px;background:var(--rule-soft);border-bottom:1px solid var(--rule)}
.ib-icon{font-size:1.05rem}
.ib-q{font-family:var(--mono);font-size:.68rem;color:var(--ink-mid)}
.ib-list{display:flex;flex-direction:column}
.ib-item{border-bottom:1px solid var(--rule-soft)}
.ib-item:last-child{border-bottom:0}
.ib-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:11px;padding:12px 13px}
.ib-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.ib-item.open .ib-dot{background:var(--rule)}
.ib-meta{min-width:0}
.ib-subj{display:block;font-size:.88rem;color:var(--ink);font-weight:600;line-height:1.3}
.ib-from{font-family:var(--mono);font-size:.68rem;color:var(--ink-light)}
.ib-flag{font-family:var(--mono);font-size:.56rem;letter-spacing:.03em;color:var(--accent-text);background:var(--accent-bg);border-radius:11px;padding:3px 8px;white-space:nowrap}
.ib-open{font-family:var(--mono);font-size:.58rem;letter-spacing:.04em;text-transform:uppercase;background:var(--paper);border:1px solid var(--accent);border-radius:14px;padding:6px 11px;color:var(--accent-text);cursor:pointer;white-space:nowrap}
.ib-open:hover{background:var(--accent-bg)}
.ib-item.good .ib-open{background:#e4f3e6;border-color:#8ec99a;color:#2f7d43;pointer-events:none}
.ib-item.bad .ib-open{background:#fbe3dc;border-color:#e79c86;color:#b23b1a;pointer-events:none}
.ib-body{display:none;padding:0 13px 13px 32px}
.ib-item.open .ib-body{display:block}
.ib-text{margin:0 0 8px;font-size:.85rem;color:var(--ink-mid);line-height:1.5;background:var(--rule-soft);border-radius:6px;padding:9px 11px}
.ib-verdict{margin:0;font-size:.82rem;line-height:1.45}
.ib-item.good .ib-verdict{color:#2f7d43}
.ib-item.bad .ib-verdict{color:#b23b1a}
.ib-note{margin:0;padding:12px 13px;font-size:.83rem;color:var(--ink-mid);line-height:1.45;border-top:1px solid var(--rule-soft)}
.ib-note.done{color:var(--ink);font-weight:500}
@media (max-width:560px){.ib-row{grid-template-columns:auto 1fr auto;row-gap:5px}.ib-flag{grid-column:2;justify-self:start}.ib-body{padding-left:13px}}

/* --- verify by type (fact vs judgment) --- */
.vf-answer{display:flex;gap:11px;background:var(--dark-2);border-radius:9px;padding:13px 15px;margin-bottom:14px}
.vf-answer .vf-who{flex:0 0 auto;font-family:var(--mono);font-size:.54rem;letter-spacing:.09em;text-transform:uppercase;color:#ffb38f;padding-top:3px}
.vf-atext{margin:0;font-size:.9rem;line-height:1.55;color:#e8d5c4}
.vf-instr{font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-light);margin:0 0 9px}
.vf-claims{display:flex;flex-direction:column;gap:9px}
.vf-claim{background:var(--paper);border:1px solid var(--rule);border-radius:9px;padding:12px 13px}
.vf-claim.right{border-color:#8ec99a}
.vf-claim.wrong{border-color:#e79c86}
.vf-claim.hall{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.vf-text{margin:0 0 10px;font-size:.88rem;color:var(--ink);line-height:1.45}
.vf-hall{display:none}
.vf-claim.hall .vf-hall{display:inline-block;margin-left:8px;font-family:var(--mono);font-size:.54rem;letter-spacing:.04em;text-transform:uppercase;color:#b23b1a;background:#fbe3dc;border-radius:9px;padding:2px 7px;vertical-align:middle}
.vf-btns{display:flex;gap:8px;flex-wrap:wrap}
.vf-b{flex:1;min-width:140px;font-family:var(--mono);font-size:.62rem;letter-spacing:.03em;background:var(--rule-soft);border:1px solid var(--rule);border-radius:8px;padding:9px 11px;color:var(--ink-mid);cursor:pointer;transition:.12s}
.vf-b:hover{border-color:var(--accent-light);color:var(--ink)}
.vf-claim.answered .vf-b{cursor:default}
.vf-b.correct{background:#e4f3e6;border-color:#8ec99a;color:#2f7d43;font-weight:600}
.vf-b.picked-wrong{background:#fbe3dc;border-color:#e79c86;color:#b23b1a}
.vf-b.dim{opacity:.4}
.vf-how{display:none;margin:11px 0 0;font-size:.82rem;color:var(--ink-mid);line-height:1.45}
.vf-claim.answered .vf-how{display:block}
