pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--bg: #0a0a0a;--panel: #121212;--panel-2: #181818;--panel-3: #1f1f1f;--code-bg: #0d1117;--border: #262626;--border-strong: #333333;--text: #e5e5e5;--text-dim: #a3a3a3;--text-faint: #737373;--accent: #7aa2f7;--accent-dim: #3d5a8a;--ok: #9ece6a;--bad: #f7768e;--warn: #e0af68;--pillar-tech: #7aa2f7;--pillar-proc: #bb9af7;--accent-wash: rgba(122, 162, 247, .06);--ok-wash: rgba(158, 206, 106, .08);--bad-wash: rgba(247, 118, 142, .08);--font-sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--fs-scale: 1;--fs-9: calc(9px * var(--fs-scale));--fs-10: calc(10px * var(--fs-scale));--fs-11: calc(11px * var(--fs-scale));--fs-12: calc(12px * var(--fs-scale));--fs-13: calc(13px * var(--fs-scale));--fs-14: calc(14px * var(--fs-scale));--fs-15: calc(15px * var(--fs-scale));--fs-16: calc(16px * var(--fs-scale));--fs-17: calc(17px * var(--fs-scale));--fs-18: calc(18px * var(--fs-scale));--fs-22: calc(22px * var(--fs-scale));--fs-24: calc(24px * var(--fs-scale));--fs-26: calc(26px * var(--fs-scale));--fs-28: calc(28px * var(--fs-scale));--lh-tight: 1.45;--lh-base: 1.55;--lh-loose: 1.7;--ls-tight: -.02em;--ls-wide: .06em;--ls-wider: .08em;--ls-uppr: .1em;--ls-max: .12em;--sp-1: 4px;--sp-2: 6px;--sp-3: 8px;--sp-4: 10px;--sp-5: 12px;--sp-6: 14px;--sp-7: 16px;--sp-8: 20px;--sp-9: 24px;--sp-10: 28px;--sp-11: 32px;--sp-12: 40px;--sp-13: 64px;--r-xs: 3px;--r-sm: 4px;--r-md: 5px;--r-lg: 6px;--r-xl: 8px;--sidebar-w: 220px;--content-max: 1100px;--content-max-wide: 1200px;--reading-max: 780px;--ease: ease;--dur-fast: .1s;--dur: .12s;--dur-flip: .5s}.ds-eyebrow{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-faint);letter-spacing:var(--ls-max);text-transform:uppercase}.ds-section-title{font-size:var(--fs-13);font-weight:600;letter-spacing:var(--ls-uppr);text-transform:uppercase;color:var(--text);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border)}.ds-view-title{font-size:var(--fs-22);font-weight:600;letter-spacing:var(--ls-tight);color:var(--text)}.ds-view-sub{color:var(--text-dim);font-size:var(--fs-13)}.ds-lesson-title{font-size:var(--fs-22);font-weight:600;letter-spacing:var(--ls-tight);color:var(--text)}.ds-lesson-num{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--accent);letter-spacing:var(--ls-uppr);text-transform:uppercase}.ds-meta-label{color:var(--text-faint);font-size:var(--fs-11);text-transform:uppercase;letter-spacing:var(--ls-wider)}.ds-stat-value{font-size:var(--fs-22);font-weight:600;color:var(--text);font-family:var(--font-mono)}.ds-th{font-family:var(--font-mono);color:var(--text-dim);font-weight:600;font-size:var(--fs-11);text-transform:uppercase;letter-spacing:var(--ls-wide)}.ds-body{font-family:var(--font-sans);font-size:var(--fs-14);line-height:var(--lh-base);color:var(--text)}.ds-body-dim{color:var(--text-dim)}.ds-body-faint{color:var(--text-faint)}.ds-reading{font-family:var(--font-sans);font-size:var(--fs-14);line-height:var(--lh-loose);color:var(--text);max-width:var(--reading-max)}.ds-code-inline{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--text);background:var(--panel-3);border:1px solid var(--border-strong);padding:1px 5px;border-radius:var(--r-xs);margin:0 1px}.ds-code-block{font-family:var(--font-mono);font-size:var(--fs-12);color:#c9d1d9;background:var(--code-bg);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-5);line-height:var(--lh-tight);overflow-x:auto}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--fs-14);line-height:var(--lh-base)}:root{--row-h: 44px;--density-pad-x: 24px;--density-pad-y: 20px}html[data-density=compact]{--row-h: 36px;--density-pad-x: 16px;--density-pad-y: 12px}html[data-motion=reduce] *{transition:none!important;animation:none!important}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;height:52px;padding:0 20px;background:var(--panel);border-bottom:1px solid var(--border)}.topbar .brand{font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:var(--ls-max);text-transform:uppercase;color:var(--text);white-space:nowrap}.topbar .brand .dim{color:var(--text-faint)}.topbar .crumbs{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;gap:6px;flex:1;overflow:hidden;text-overflow:ellipsis}.topbar .crumbs .cur{color:var(--text-dim)}.topbar .palette-btn{display:flex;align-items:center;gap:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:4px;color:var(--text-faint);padding:6px 10px;font-family:var(--font-mono);font-size:var(--fs-11);cursor:pointer;transition:border-color .12s}.topbar .palette-btn:hover{border-color:var(--accent-dim);color:var(--text-dim)}.topbar .palette-btn .kbd{background:var(--panel-3);border:1px solid var(--border);padding:1px 5px;border-radius:3px}.page{max-width:1180px;margin:0 auto;padding:var(--density-pad-y) var(--density-pad-x) 120px}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-faint);letter-spacing:var(--ls-max);text-transform:uppercase;margin-bottom:6px}.h1{font-size:var(--fs-22);font-weight:600;letter-spacing:-.02em;margin:0 0 6px}.sub{color:var(--text-dim);font-size:var(--fs-13);margin:0 0 24px}.exam-rail{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.exam-card{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:14px 16px;cursor:pointer;transition:border-color .12s,transform .12s,background .12s}.exam-card:hover{border-color:var(--accent-dim);transform:translateY(-1px)}.exam-card.imminent{border-color:var(--bad);background:linear-gradient(to right,rgba(247,118,142,.06),transparent)}.exam-card.soon{border-color:var(--warn)}.exam-card .code{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-faint);letter-spacing:.08em}.exam-card .name{font-size:var(--fs-13);color:var(--text-dim);margin-top:2px}.exam-card .count{font-family:var(--font-mono);font-size:var(--fs-26);color:var(--text);font-weight:600;margin-top:12px;letter-spacing:-.02em}.exam-card.imminent .count{color:var(--bad)}.exam-card.soon .count{color:var(--warn)}.exam-card .when{font-size:var(--fs-11);color:var(--text-faint);font-family:var(--font-mono);margin-top:4px;letter-spacing:.04em}.exam-card .pulse{position:absolute;top:10px;right:10px;width:6px;height:6px;border-radius:50%;background:var(--bad);box-shadow:0 0 #f7768e80;animation:pulse 1.8s infinite}@keyframes pulse{0%{box-shadow:0 0 #f7768e80}70%{box-shadow:0 0 0 8px #f7768e00}to{box-shadow:0 0 #f7768e00}}.two-col{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-bottom:20px}.panel-block{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:16px 18px}.panel-block .hdr{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;margin-bottom:12px;border-bottom:1px solid var(--border)}.panel-block .hdr h3{margin:0;font-size:var(--fs-13);font-weight:600;text-transform:uppercase;letter-spacing:.1em}.panel-block .hdr .count-total{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-faint);letter-spacing:.08em}.q-row{display:grid;grid-template-columns:90px 1fr auto 60px;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}.q-row:last-child{border-bottom:none}.q-row:hover{background:var(--panel-2)}.q-row .course-code{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text);letter-spacing:.06em}.q-row .weakest{font-size:var(--fs-12);color:var(--text-dim)}.q-row .weakest .hl{color:var(--text)}.q-row .due{font-family:var(--font-mono);font-size:var(--fs-13);color:var(--accent);font-weight:600}.q-row .due.zero{color:var(--text-faint)}.q-row .due.many{color:var(--bad)}.q-row .go{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-faint);text-align:right}.resume-topic{font-size:var(--fs-14);color:var(--text);margin:4px 0 6px;line-height:1.4}.resume-meta{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em}.resume-prog{margin-top:14px;font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-dim)}.resume-prog .bar{height:4px;background:var(--panel-3);border-radius:2px;margin-top:6px;overflow:hidden}.resume-prog .fill{height:100%;background:var(--accent)}.heatmap-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:16px}.heatmap-legend{display:flex;gap:10px;align-items:center;font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-faint)}.heatmap-legend .sw{display:inline-block;width:10px;height:10px;border:1px solid var(--border);margin-right:4px;vertical-align:-1px}.hm-l0{background:var(--panel)}.hm-l1{background:#f7768e59;border-color:var(--bad)!important}.hm-l2{background:#e0af6847;border-color:var(--warn)!important}.hm-l3{background:#9ece6a40;border-color:var(--ok)!important}.hm-l4{background:#9ece6a73;border-color:var(--ok)!important}.hm-l5{background:#9ece6aa6;border-color:var(--ok)!important;color:var(--text)!important}.heatmap{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:16px}.hm-module{display:grid;grid-template-columns:160px 1fr;gap:14px;padding:12px 0;border-bottom:1px dashed var(--border)}.hm-module:last-child{border-bottom:none}.hm-module .m-name{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-dim);letter-spacing:.08em;text-transform:uppercase;padding-top:4px}.hm-module .m-count{color:var(--text-faint)}.hm-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}.hm-tile{position:relative;padding:10px 12px;font-size:var(--fs-12);color:var(--text);border:1px solid var(--border);background:var(--panel-2);border-radius:3px;cursor:pointer;transition:transform .12s,border-color .12s;min-height:52px;display:flex;flex-direction:column;justify-content:space-between}.hm-tile:hover{transform:translateY(-1px);border-color:var(--accent)}.hm-tile .t-name{line-height:1.35;font-size:var(--fs-12)}.hm-tile .t-meta{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:.06em;margin-top:6px;display:flex;justify-content:space-between}.hm-tile .lb{position:absolute;top:4px;right:5px;font-family:var(--font-mono);font-size:var(--fs-9);color:var(--text-faint);letter-spacing:.06em}.hm-tile.hm-l5 .t-name{color:var(--text)!important}.hm-tile.hm-l5 .t-meta,.hm-tile.hm-l5 .lb{color:var(--text-dim)!important}.recall-wrap{display:grid;grid-template-columns:1fr 280px;gap:16px;align-items:start}@media (max-width: 880px){.recall-wrap{grid-template-columns:1fr}}.recall-card{background:var(--panel);border:1px solid var(--border-strong);border-radius:6px;padding:28px 30px;min-height:340px;display:flex;flex-direction:column}.recall-card .mode-label{font-family:var(--font-mono);font-size:var(--fs-10);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.recall-card .topic-label{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px}.recall-card .prompt{font-size:var(--fs-17);line-height:1.6;color:var(--text);font-family:var(--font-sans)}.recall-card .prompt .cloze{display:inline-block;min-width:90px;padding:0 6px;background:var(--panel-3);border-bottom:1px solid var(--accent-dim);color:transparent;-webkit-user-select:none;user-select:none;margin:0 2px;transition:color .15s,background .15s;border-radius:2px}.recall-card.revealed .prompt .cloze{color:var(--accent);background:#7aa2f714;border-bottom-color:var(--accent)}.recall-card pre.code{font-family:var(--font-mono);font-size:var(--fs-12);color:#c9d1d9;background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:14px;margin:12px 0 0;overflow-x:auto;line-height:1.55}.recall-card .answer{margin-top:18px;padding-top:16px;border-top:1px dashed var(--border);font-size:var(--fs-14);color:var(--text);line-height:1.6}.recall-card .answer .answer-label{color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:6px}.recall-card .answer strong{color:var(--text);font-weight:600}.recall-card .answer em{color:var(--text);font-style:italic}.recall-card .name-answer{margin-top:18px;padding-top:16px;border-top:1px dashed var(--border);font-size:var(--fs-15);color:var(--text);line-height:1.6}.recall-card .name-answer .arrow{color:var(--accent);font-family:var(--font-mono);margin-right:4px}.recall-card .name-answer strong{color:var(--text);font-weight:600}.recall-card .name-answer em{color:var(--text);font-style:italic}.recall-card .prompt strong{color:var(--text);font-weight:600}.recall-card .prompt em{color:var(--text);font-style:italic}.md-list{margin:8px 0 4px;padding-left:0;list-style:none;counter-reset:md-ol}.md-list li{position:relative;padding:2px 0 2px 28px;line-height:1.6}.md-ol li:before{counter-increment:md-ol;content:counter(md-ol) ".";position:absolute;left:0;top:2px;color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-12);font-weight:600;min-width:22px;text-align:right;padding-right:6px}.md-ul li:before{content:"•";position:absolute;left:8px;top:2px;color:var(--accent)}.recall-card .name-answer .md-list,.recall-card .answer .md-list,.recall-card .prompt .md-list{margin-top:6px}.card-detail{margin-top:18px;border-top:1px dashed var(--border);padding-top:14px}.card-detail>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);-webkit-user-select:none;user-select:none;padding:4px 8px;margin-left:-8px;border-radius:3px;transition:color .12s,background .12s}.card-detail>summary::-webkit-details-marker{display:none}.card-detail>summary:before{content:"▸";display:inline-block;color:var(--accent);transition:transform .12s;font-size:var(--fs-12);line-height:1}.card-detail[open]>summary:before{transform:rotate(90deg)}.card-detail>summary:hover{color:var(--text);background:var(--panel-3)}.card-detail-body{margin-top:14px;padding-left:4px;font-size:var(--fs-14);color:var(--text-dim);line-height:1.65}.card-detail-section+.card-detail-section{margin-top:16px}.card-detail-label{font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.card-detail-content{color:var(--text)}.card-detail-content strong{color:var(--text);font-weight:600}.card-detail-content em{color:var(--text);font-style:italic}.card-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-dim)}.bloom-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-size:var(--fs-10);font-weight:600;text-transform:uppercase;letter-spacing:.08em;border:1px solid currentColor;background:transparent}.bloom-chip[data-bloom=remember]{color:#7aa2f7}.bloom-chip[data-bloom=understand]{color:#9ece6a}.bloom-chip[data-bloom=apply]{color:#e0af68}.bloom-chip[data-bloom=analyze]{color:#bb9af7}.bloom-chip[data-bloom=evaluate],.bloom-chip[data-bloom=create]{color:#f7768e}.source-tag{color:var(--text-dim);opacity:.75;font-style:italic}.source-tag:before{content:"src ";opacity:.6}.mock-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--border)}.mock-tab{background:transparent;border:none;color:var(--text-dim);padding:10px 18px;font-family:var(--font-mono);font-size:var(--fs-12);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s}.mock-tab:hover{color:var(--text)}.mock-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.mock-tab-count{color:var(--text-dim);font-size:var(--fs-11);margin-left:4px;opacity:.7}.md-code-block{font-family:var(--font-mono);font-size:var(--fs-12);color:#c9d1d9;background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:12px;margin:8px 0;overflow-x:auto;line-height:1.55}.recall-card .mermaid-frame{background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:16px;margin-top:12px;font-family:var(--font-mono);font-size:var(--fs-12);color:var(--text-dim);white-space:pre;overflow-x:auto}.recall-card .mermaid-frame .blank{background:var(--panel-3);color:transparent;padding:1px 4px;border-bottom:1px solid var(--accent-dim);border-radius:2px}.recall-card.revealed .mermaid-frame .blank{color:var(--accent);background:#7aa2f71f}.reveal-btn{margin-top:auto;align-self:flex-start;background:var(--panel-2);border:1px solid var(--border-strong);color:var(--text);padding:8px 14px;font-family:var(--font-mono);font-size:var(--fs-12);border-radius:4px;cursor:pointer;letter-spacing:.04em}.reveal-btn:hover{border-color:var(--accent);color:var(--accent)}.rate-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:14px}.rate-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text-dim);padding:10px 6px;font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.04em;border-radius:4px;cursor:pointer;text-align:center;transition:all .12s}.rate-btn .num{display:block;font-size:var(--fs-14);color:var(--text);font-weight:600;margin-bottom:2px}.rate-btn .lbl{font-size:var(--fs-10)}.rate-btn:hover{border-color:var(--accent);color:var(--text)}.rate-btn.r1:hover .num{color:var(--bad)}.rate-btn.r5:hover .num{color:var(--ok)}.recall-rail{display:flex;flex-direction:column;gap:12px}.rail-block{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:14px}.rail-block h4{margin:0 0 10px;font-family:var(--font-mono);font-size:var(--fs-10);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.rail-queue-item{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);font-size:var(--fs-12)}.rail-queue-item:last-child{border-bottom:none}.rail-queue-item .name{color:var(--text-dim)}.rail-queue-item.current .name{color:var(--accent)}.rail-queue-item .b{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint)}.rail-queue-item.current .b{color:var(--accent)}.kb-list{display:flex;flex-direction:column;gap:6px}.kb{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-12);color:var(--text-dim)}.kb kbd{font-family:var(--font-mono);font-size:var(--fs-10);background:var(--panel-3);border:1px solid var(--border);padding:1px 6px;border-radius:3px;color:var(--text)}.palette-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding-top:14vh;z-index:100}.palette{width:min(620px,92vw);background:var(--panel);border:1px solid var(--border-strong);border-radius:6px;overflow:hidden}.palette-input-row{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}.palette-input-row .glyph{font-family:var(--font-mono);color:var(--accent);font-size:var(--fs-14)}.palette-input-row input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-size:var(--fs-16);font-family:var(--font-sans)}.palette-input-row .esc{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);border:1px solid var(--border);padding:2px 6px;border-radius:3px}.palette-section{padding:8px 0;max-height:50vh;overflow-y:auto}.palette-section-head{padding:8px 18px 6px;font-family:var(--font-mono);font-size:var(--fs-10);letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.palette-item{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:12px;padding:8px 18px;cursor:pointer;border-left:2px solid transparent;font-size:var(--fs-13)}.palette-item.active{background:var(--panel-2);border-left-color:var(--accent)}.palette-item .k{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:.06em}.palette-item .name{color:var(--text)}.palette-item .name em{color:var(--accent);font-style:normal}.palette-item .meta{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:.06em}.palette-foot{padding:8px 18px;border-top:1px solid var(--border);display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:.06em}.cheat-hero{max-width:960px;margin:0 auto 24px;padding:28px 0 24px;border-bottom:1px solid var(--border);position:relative}.cheat-hero:before{content:"";position:absolute;top:0;left:0;width:56px;height:2px;background:var(--accent)}.cheat-hero-meta{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:var(--fs-11);text-transform:uppercase;letter-spacing:var(--ls-max);color:var(--text-faint);margin-bottom:10px}.cheat-hero-code{color:var(--accent)}.cheat-hero-sep{color:var(--border-strong)}.cheat-hero-kind{color:var(--text-dim)}.cheat-hero-title{font-family:var(--font-sans);font-size:var(--fs-28);font-weight:700;letter-spacing:var(--ls-tight);line-height:1.15;color:var(--text);margin:0 0 10px}.cheat-hero-sub{font-size:var(--fs-14);color:var(--text-dim);line-height:var(--lh-base);max-width:680px;margin:0 0 18px}.cheat-hero-stats{display:flex;gap:28px;padding-top:14px;border-top:1px dashed var(--border)}.cheat-stat{display:flex;flex-direction:column;gap:2px}.cheat-stat-value{font-family:var(--font-mono);font-size:var(--fs-22);color:var(--text);font-weight:600;font-feature-settings:"tnum" on,"lnum" on}.cheat-stat-label{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);text-transform:uppercase;letter-spacing:var(--ls-wider)}.cheat-toc{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;gap:6px;padding:12px 0;background:linear-gradient(var(--bg) 80%,transparent);max-width:960px;margin:0 auto 20px;border-bottom:1px solid var(--border)}.cheat-toc-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 10px 5px 8px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-xs);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--fs-11);cursor:pointer;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.cheat-toc-chip:hover{color:var(--text);border-color:var(--border-strong);background:var(--panel-2)}.cheat-toc-chip.is-active{color:var(--accent);border-color:var(--accent-dim);background:var(--accent-wash)}.cheat-toc-num{font-size:var(--fs-10);color:var(--text-faint);letter-spacing:var(--ls-wider)}.cheat-toc-chip.is-active .cheat-toc-num{color:var(--accent)}.cheat-toc-label{font-family:var(--font-sans);font-size:var(--fs-12);color:inherit}.cheat{max-width:960px;margin:0 auto;padding:0 0 80px;background-image:repeating-linear-gradient(0deg,transparent 0 31px,rgba(255,255,255,.012) 31px 32px);background-position:0 0}.cheat-section{position:relative;padding:28px 0 20px;border-top:1px solid var(--border)}.cheat-section:first-child{border-top:none;padding-top:8px}.cheat-section:target{animation:cheatFlash 1.2s ease}@keyframes cheatFlash{0%{background:var(--accent-wash)}to{background:transparent}}.cheat-section-head{display:grid;grid-template-columns:64px 1fr;align-items:baseline;gap:18px;margin-bottom:14px}.cheat-section-num{display:flex;flex-direction:column;align-items:flex-start;gap:2px;-webkit-user-select:none;user-select:none}.cheat-section-num-digit{font-family:var(--font-mono);font-size:28px;font-weight:700;color:var(--accent);letter-spacing:-.02em;line-height:1;font-feature-settings:"tnum" on,"lnum" on}.cheat-section-num-tick{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:var(--ls-wider)}.cheat-section-title{font-family:var(--font-sans);font-size:var(--fs-22);font-weight:600;letter-spacing:var(--ls-tight);color:var(--text);margin:0;line-height:1.25}.cheat .cs-body{font-family:var(--font-sans);font-size:var(--fs-14);line-height:var(--lh-base);color:var(--text);margin-left:82px}@media (max-width: 720px){.cheat-section-head{grid-template-columns:1fr;gap:4px}.cheat .cs-body{margin-left:0}.cheat-section-num-digit{font-size:var(--fs-22)}}.cheat .cs-body>*:first-child{margin-top:0}.cheat .cs-body>*:last-child{margin-bottom:0}.cheat .cs-body p{margin:10px 0;color:var(--text)}.cheat .cs-body hr{margin:24px 0;border:none;border-top:1px dashed var(--border)}.cheat .cs-body .cs-tldr{display:flex;align-items:flex-start;gap:12px;margin:12px 0 16px;padding:12px 14px;background:var(--accent-wash);border-left:2px solid var(--accent);border-radius:0 var(--r-sm) var(--r-sm) 0;color:var(--text);font-size:var(--fs-14);line-height:var(--lh-base)}.cheat .cs-body .cs-tldr>strong:first-child{flex-shrink:0;font-family:var(--font-mono);font-size:var(--fs-10);color:var(--accent);letter-spacing:var(--ls-wider);text-transform:uppercase;padding-top:3px}.cheat .cs-body .cs-sublabel{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-faint);text-transform:uppercase;letter-spacing:var(--ls-wider);margin:22px 0 8px;padding-left:10px;border-left:2px solid var(--border-strong)}.cheat .cs-body .cs-sublabel strong{font-family:inherit;font-weight:600;color:var(--text-dim)}.cheat .cs-body .cs-label{margin:22px 0 0;padding:6px 10px;font-family:var(--font-mono);font-size:var(--fs-10);letter-spacing:var(--ls-wider);text-transform:uppercase;border-radius:var(--r-xs) var(--r-xs) 0 0;border-bottom:none;display:inline-flex;align-items:center;gap:8px}.cheat .cs-body .cs-label:before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;flex-shrink:0}.cheat .cs-body .cs-label strong{font-family:inherit;font-weight:600}.cheat .cs-body .cs-label-must{background:var(--accent-wash);color:var(--accent);border:1px solid var(--accent-dim);border-bottom:none}.cheat .cs-body .cs-label-must:before{background:var(--accent)}.cheat .cs-body .cs-label-traps{background:var(--bad-wash);color:var(--bad);border:1px solid rgba(247,118,142,.4);border-bottom:none}.cheat .cs-body .cs-label-traps:before{background:var(--bad)}.cheat .cs-body .cs-list{margin:0 0 14px;padding:12px 16px 12px 32px;border-radius:0 var(--r-sm) var(--r-sm) var(--r-sm);list-style:none;font-size:var(--fs-13)}.cheat .cs-body .cs-list-must{background:var(--panel);border:1px solid var(--accent-dim);border-top:1px solid var(--accent-dim)}.cheat .cs-body .cs-list-traps{background:var(--panel);border:1px solid rgba(247,118,142,.4)}.cheat .cs-body .cs-list li{position:relative;padding:2px 0 2px 4px;margin:2px 0;color:var(--text);line-height:1.55}.cheat .cs-body .cs-list li:before{content:"";position:absolute;left:-20px;top:.75em;width:10px;height:1px}.cheat .cs-body .cs-list-must li:before{background:var(--accent);width:8px;top:.8em}.cheat .cs-body .cs-list-traps li:before{content:"△";background:transparent;left:-22px;top:.1em;width:auto;height:auto;color:var(--bad);font-size:var(--fs-11);line-height:1}.cheat .cs-body ul,.cheat .cs-body ol{margin:10px 0;padding-left:22px;color:var(--text)}.cheat .cs-body ul li,.cheat .cs-body ol li{margin:5px 0;line-height:1.55}.cheat .cs-body .cs-li-labeled>strong:first-child{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-13);color:var(--text);font-weight:600;padding-right:4px}.cheat .cs-body table{width:100%;border-collapse:separate;border-spacing:0;margin:14px 0;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-sm);font-size:var(--fs-13);overflow:hidden}.cheat .cs-body table th{text-align:left;padding:8px 12px;background:var(--panel-2);border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-wide)}.cheat .cs-body table td{padding:8px 12px;border-bottom:1px solid var(--border);vertical-align:top;color:var(--text)}.cheat .cs-body table tr:last-child td{border-bottom:none}.cheat .cs-body table tr:hover td{background:var(--panel-2)}.cheat .cs-body pre.code.hl-block{margin:10px 0 16px;background:var(--code-bg);border:1px solid var(--border);border-left:2px solid var(--accent-dim);border-radius:var(--r-sm);padding:12px 14px;font-size:var(--fs-12);line-height:var(--lh-tight);color:#c9d1d9;overflow-x:auto}.cheat .cs-body pre.code.hl-block code.hljs{background:transparent!important;padding:0!important;font-family:var(--font-mono);font-size:inherit}.cheat .cs-body .cs-sublabel+pre.code.hl-block{margin-top:4px}.cheat .cs-body code:not(.hljs){font-family:var(--font-mono);font-size:var(--fs-12);color:var(--text);background:var(--panel-3);border:1px solid var(--border);padding:0 5px;border-radius:var(--r-xs);white-space:nowrap}.cheat h4{display:none}.tweaks-panel{position:fixed;bottom:20px;right:20px;z-index:80;width:260px;background:var(--panel);border:1px solid var(--border-strong);border-radius:6px;padding:14px;font-family:var(--font-mono);font-size:var(--fs-11)}.tweaks-panel h5{margin:0 0 10px;font-size:var(--fs-10);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.tweaks-panel .t-row{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.tweaks-panel .t-row:last-child{margin-bottom:0}.tweaks-panel .t-label{color:var(--text-faint);letter-spacing:.06em}.tweaks-panel .seg{display:flex;border:1px solid var(--border);border-radius:3px;overflow:hidden}.tweaks-panel .seg button{flex:1;background:transparent;border:none;color:var(--text-dim);padding:5px 6px;font-family:inherit;font-size:var(--fs-10);cursor:pointer;border-right:1px solid var(--border)}.tweaks-panel .seg button:last-child{border-right:none}.tweaks-panel .seg button.on{background:var(--panel-3);color:var(--accent)}.shortcut-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:100;display:flex;align-items:center;justify-content:center}.shortcut-card{width:min(560px,92vw);background:var(--panel);border:1px solid var(--border-strong);border-radius:6px;padding:20px 22px}.shortcut-card h3{margin:0 0 14px;font-size:var(--fs-13);font-weight:600;text-transform:uppercase;letter-spacing:.1em}.shortcut-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px}.mobile-lineup{display:flex;gap:18px;align-items:flex-start;overflow-x:auto;padding:16px 0 8px}.phone{flex:none;width:390px;height:780px;border:1px solid var(--border-strong);border-radius:28px;background:var(--bg);overflow:hidden;position:relative;box-shadow:0 0 0 6px #0d0d0d}.phone .label{position:absolute;top:-20px;left:6px;font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:.12em;text-transform:uppercase}.phone-status{display:flex;justify-content:space-between;padding:14px 24px 10px;font-family:var(--font-mono);font-size:var(--fs-12);color:var(--text)}.phone-status .dots{letter-spacing:2px;color:var(--text-dim)}.phone-body{height:calc(100% - 96px);overflow-y:auto;padding:0 16px}.phone-bottom{position:absolute;bottom:0;left:0;right:0;padding:10px 16px 24px;background:var(--panel);border-top:1px solid var(--border)}.phone-bottom .rate-row{margin-top:0}.phone .exam-rail{grid-template-columns:1fr;gap:8px}.phone .two-col{grid-template-columns:1fr;gap:10px}.phone .hm-tiles{grid-template-columns:repeat(2,1fr)}.phone .hm-module{grid-template-columns:1fr;gap:8px;padding:10px 0}.phone .page{padding:16px 0}.phone h1,.phone .h1{font-size:var(--fs-18)}.phone .recall-card{padding:20px;min-height:260px}.phone .recall-card .prompt{font-size:var(--fs-15)}.phone .recall-wrap{grid-template-columns:1fr}.phone .rail-block{display:none}.phone .topbar{height:44px}.phone .sub{margin-bottom:14px;font-size:var(--fs-12)}.phone-nav{display:flex;gap:10px;padding:8px 16px;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase;overflow-x:auto}.phone-nav .on{color:var(--accent);border-bottom:1px solid var(--accent);padding-bottom:2px}.rationale{max-width:760px;margin:0 auto 32px;padding:20px 24px;background:var(--panel);border:1px solid var(--border);border-radius:6px}.rationale h3{margin:0 0 10px;font-size:var(--fs-13);font-weight:600;text-transform:uppercase;letter-spacing:.1em}.rationale p{color:var(--text-dim);font-size:var(--fs-13);line-height:1.7;margin:0 0 10px}.rationale p strong{color:var(--text)}.rationale ol{padding-left:20px;color:var(--text-dim);font-size:var(--fs-13);line-height:1.7;margin:0}.rationale ol li{margin-bottom:6px}.screen-divider{margin:24px 0 12px;display:flex;align-items:center;gap:12px}.screen-divider .line{flex:1;height:1px;background:var(--border)}.screen-divider .label{font-family:var(--font-mono);font-size:var(--fs-10);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}.prio-list{display:flex;flex-direction:column}.prio-row{display:grid;grid-template-columns:70px 1fr 40px 40px 50px 60px;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--border);border-left:2px solid transparent;cursor:pointer;transition:background .12s,border-left-color .12s}.prio-row:last-child{border-bottom:none}.prio-row:hover{background:var(--panel-2)}.prio-row.hi{border-left-color:var(--bad)}.prio-row.med{border-left-color:var(--warn)}.prio-row.low{border-left-color:var(--ok)}.prio-row .p-tier{padding-left:8px}.prio-row .pn-title{font-size:var(--fs-13);color:var(--text)}.prio-row .pn-why{font-size:var(--fs-11);color:var(--text-faint);margin-top:2px}.prio-row .p-metric{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-dim);letter-spacing:.06em;text-align:right}.prio-row .p-weight{font-family:var(--font-mono);font-size:var(--fs-13);color:var(--accent);font-weight:600;text-align:right}.prio-row .p-go{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);text-align:right;letter-spacing:.06em}.lesson-nav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.lesson-nav button{background:var(--panel-2);border:1px solid var(--border);color:var(--text-dim);padding:7px 12px;font-size:var(--fs-12);border-radius:3px;cursor:pointer;font-family:inherit}.lesson-nav button:hover{color:var(--text);border-color:var(--accent-dim)}.lesson-nav button.active{border-color:var(--accent);color:var(--accent);background:var(--panel-3)}.lesson-nav button.done{color:var(--ok);border-color:var(--ok)}.lesson{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:28px 36px;max-width:1040px;margin:0 auto 24px;line-height:1.7}.lesson-head{padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--border)}.lesson-num{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}.lesson-title{font-size:var(--fs-22);font-weight:600;letter-spacing:-.02em;margin:0 0 8px}.lesson .hook{color:var(--text-dim);font-size:var(--fs-13);font-style:italic}.lesson p{margin:0 0 14px;font-size:var(--fs-14);color:var(--text)}.lesson h4{font-size:var(--fs-14);font-weight:600;margin:20px 0 10px;color:var(--accent)}.lesson pre.code{font-family:var(--font-mono);font-size:var(--fs-12);color:#c9d1d9;background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:12px;overflow-x:auto;line-height:1.45;margin:8px 0}.analogy{background:var(--panel-2);border-left:3px solid var(--warn);padding:12px 16px;margin:14px 0;font-size:var(--fs-13);color:var(--text-dim);border-radius:0 4px 4px 0}.analogy strong{color:var(--warn)}.takeaway{background:linear-gradient(to right,rgba(122,162,247,.06),transparent);border-left:3px solid var(--accent);padding:12px 16px;margin:20px 0;font-size:var(--fs-13);color:var(--text);border-radius:0 4px 4px 0}.takeaway strong{color:var(--accent)}.checkpoint{background:var(--panel-3);border:1px solid var(--accent-dim);border-radius:4px;padding:14px 16px;margin:20px 0 8px;cursor:pointer}.ck-label{font-size:var(--fs-11);color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-weight:600;font-family:var(--font-mono)}.ck-q{font-size:var(--fs-13);margin-bottom:8px;font-weight:500;color:var(--text)}.ck-a{font-size:var(--fs-13);color:var(--text-dim);margin-top:6px;padding-top:6px;border-top:1px dashed var(--border)}.checkpoint code.ds-code-inline.hljs{border:1px solid var(--border)}.annot-row.has-pin{cursor:default}.annot-gutter{color:var(--text-faint);font-size:var(--fs-11);text-align:right;padding-right:6px;-webkit-user-select:none;user-select:none}.annot-src{white-space:pre}.dive-bar{display:flex;gap:10px;margin-bottom:12px;align-items:center;flex-wrap:wrap}.dive-search{flex:1;min-width:220px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:8px 12px;font-family:var(--font-mono);font-size:var(--fs-12);border-radius:4px;outline:none}.dive-search:focus{border-color:var(--accent)}.dive-tags{display:flex;gap:4px;flex-wrap:wrap}.dive-tags button{background:var(--panel-2);border:1px solid var(--border);color:var(--text-dim);padding:4px 10px;font-family:var(--font-mono);font-size:var(--fs-11);border-radius:3px;cursor:pointer}.dive-tags button.on{border-color:var(--accent);color:var(--accent)}.dive-mod{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:.12em;text-transform:uppercase;margin:12px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--border)}.dive-item{border-bottom:1px solid var(--border)}.dive-item.open{background:var(--panel-2)}.dive-head{display:grid;grid-template-columns:20px 1fr auto 40px auto;gap:10px;align-items:center;padding:10px 6px;cursor:pointer}.dive-head:hover{background:var(--panel-2)}.dive-chevron{color:var(--text-faint);font-family:var(--font-mono);font-size:var(--fs-11)}.dive-name{font-size:var(--fs-13);color:var(--text)}.dive-tag-row{display:flex;gap:4px;flex-wrap:wrap}.dive-tag{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);background:var(--panel-3);padding:1px 6px;border-radius:2px}.dive-lb{grid-column:4;font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:.06em;text-align:right}.dive-body{padding:4px 30px 16px}.dive-body p{font-size:var(--fs-13);color:var(--text-dim);margin:0 0 10px;line-height:1.6}.dive-cards{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.dive-card-peek{display:flex;gap:10px;font-size:var(--fs-12);color:var(--text-dim);padding:6px 8px;background:var(--panel-3);border-radius:3px}.dive-card-type{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;min-width:60px}.mock-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;margin-bottom:20px;gap:20px}.mock-timer{font-family:var(--font-mono);font-size:var(--fs-22);color:var(--accent);font-weight:600}.mock-info{font-size:var(--fs-12);color:var(--text-dim);font-family:var(--font-mono)}.question{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:20px;margin-bottom:12px}.q-num{color:var(--text-faint);font-size:var(--fs-11);font-family:var(--font-mono);margin-bottom:6px;letter-spacing:.08em}.q-text{font-size:var(--fs-14);margin-bottom:14px;line-height:1.6;color:var(--text)}.choices{display:flex;flex-direction:column;gap:6px}.choice{padding:10px 14px;border:1px solid var(--border);border-radius:4px;cursor:pointer;font-size:var(--fs-13);background:var(--panel-2);display:flex;gap:10px;align-items:flex-start;color:var(--text)}.choice:hover{border-color:var(--accent-dim)}.choice.selected{border-color:var(--accent);background:var(--panel-3)}.choice.correct{border-color:var(--ok);background:#9ece6a14}.choice.incorrect{border-color:var(--bad);background:#f7768e14}.letter{color:var(--text-faint);font-family:var(--font-mono);font-weight:600;min-width:20px}.q-why{margin-top:12px;padding-top:10px;border-top:1px dashed var(--border);font-size:var(--fs-12);color:var(--text-dim)}.q-why strong{color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.08em;margin-right:8px}.replay-wrong{padding:10px 4px;border-bottom:1px solid var(--border);cursor:pointer}.replay-wrong:last-child{border-bottom:none}.replay-wrong:hover{background:var(--panel-2)}.rw-name{font-size:var(--fs-13);color:var(--text);font-weight:500}.rw-why{font-size:var(--fs-11);color:var(--text-dim);margin-top:2px;line-height:1.5}.rw-go{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--accent);letter-spacing:.06em;margin-top:4px}.badge{font-size:var(--fs-10);padding:2px 8px;border-radius:3px;font-family:var(--font-mono);border:1px solid var(--border-strong);color:var(--text-dom);background:var(--panel-2);display:inline-block}.badge.hi{border-color:var(--bad);color:var(--bad)}.badge.med{border-color:var(--warn);color:var(--warn)}.badge.low{border-color:var(--ok);color:var(--ok)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--panel)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}.hljs{background:var(--code-bg)!important;color:#c9d1d9!important;padding:0!important}pre.code.hl-block{background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:14px;font-family:var(--font-mono);font-size:var(--fs-12);line-height:1.55;overflow-x:auto;margin:0;color:#c9d1d9}pre.code.hl-block code.hljs{background:transparent!important;padding:0!important;font-family:inherit;font-size:inherit}.mermaid-block{background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:16px;margin:12px 0;overflow-x:auto;text-align:center}.mermaid-block svg{max-width:100%;height:auto}.mermaid-error{margin:12px 0}.editable-code{position:relative}.editable-code .editable-code-pre{white-space:pre-wrap;word-break:break-word;min-height:200px;margin:0;pointer-events:none}.editable-code .editable-code-pre code.hljs{white-space:pre-wrap;word-break:break-word}.editable-code .editable-code-ta{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:transparent;color:transparent;caret-color:#c9d1d9;border:1px solid transparent;border-radius:4px;padding:14px;margin:0;resize:none;outline:none;font-family:var(--font-mono);font-size:var(--fs-12);line-height:1.55;white-space:pre-wrap;word-break:break-word;overflow:hidden;-moz-tab-size:2;tab-size:2}.editable-code .editable-code-ta::selection{background:#7aa2f759;color:transparent}.editable-code:focus-within .editable-code-pre{border-color:var(--accent-dim)}code.ds-code-inline.hljs{background:var(--panel-3)!important;color:var(--text)}.annot-code{background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:12px 4px;font-family:var(--font-mono);font-size:var(--fs-12);line-height:1.6;color:#c9d1d9;overflow-x:auto}.annot-code.hljs{background:var(--code-bg)!important;padding:12px 4px!important}.annot-row{display:grid;grid-template-columns:36px 24px 1fr;align-items:center;padding:0 10px;border-left:2px solid transparent;transition:background .12s,border-left-color .12s}.annot-row.active{background:#7aa2f70f;border-left-color:var(--accent)}.annot-gutter{color:var(--text-faint);font-size:var(--fs-11);text-align:right;padding-right:6px;-webkit-user-select:none;user-select:none;font-family:var(--font-mono)}.annot-pin-cell{display:flex;justify-content:center}.annot-pin{width:18px;height:18px;border-radius:50%;border:1px solid var(--accent-dim);background:var(--panel-3);color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-10);font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .12s}.annot-pin:hover{background:var(--accent-dim);color:#fff}.annot-pin.on{background:var(--accent);border-color:var(--accent);color:#0a0a0a}.annot-src{white-space:pre;font-family:var(--font-mono)}.annot-notes{margin-top:20px}.annot-note{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:10px 12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}.annot-note:last-child{border-bottom:none}.annot-note:hover,.annot-note.on{background:var(--panel-2)}.annot-note-pin{width:20px;height:20px;border-radius:50%;background:var(--panel-3);border:1px solid var(--accent-dim);color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-10);font-weight:600;display:flex;align-items:center;justify-content:center}.annot-note.on .annot-note-pin{background:var(--accent);border-color:var(--accent);color:#0a0a0a}.annot-note-head{display:flex;gap:10px;align-items:baseline;margin-bottom:4px}.annot-note-tag{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--accent);text-transform:uppercase;letter-spacing:.1em}.annot-note-line{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint)}.annot-note-text{font-size:var(--fs-13);color:var(--text-dim);line-height:1.55}code.inline,.lesson p code,.dive-body p code,.code-prompt code,.cs-body code,.callout code,.lesson li code,.dive-body li code{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--text);background:var(--panel-3);padding:1px 5px;border-radius:3px;border:1px solid var(--border-strong);margin:0 1px}.lesson pre code,.dive-body pre code{background:none;color:inherit;border:none;padding:0}.callout{padding:12px 16px;margin:14px 0;font-size:var(--fs-13);color:var(--text-dim);border-left:3px solid var(--border-strong);border-radius:0 4px 4px 0;background:var(--panel-2)}.callout-label{font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.08em;text-transform:uppercase;color:var(--text);margin-right:4px}.callout p{margin:4px 0}.callout-analogy{border-left-color:var(--warn);background:#e0af680a}.callout-analogy .callout-label{color:var(--warn)}.callout-takeaway{border-left-color:var(--accent);background:#7aa2f70f;color:var(--text)}.callout-takeaway .callout-label{color:var(--accent)}.callout-pitfall{border-left-color:var(--bad);background:#f7768e0f}.callout-pitfall .callout-label{color:var(--bad)}.callout-warning{border-left-color:var(--bad);background:#f7768e0f}.callout-warning .callout-label{color:var(--bad)}.callout-example{border-left-color:var(--ok);background:#9ece6a0d}.callout-example .callout-label{color:var(--ok)}.callout-note{border-left-color:var(--accent-dim);background:var(--panel-2)}.callout-note .callout-label{color:var(--text-dim)}.lesson table,.dive-body table,.lesson-table,.cs-body table{width:100%;border-collapse:collapse;margin:14px 0;font-size:var(--fs-13);background:var(--panel);border:1px solid var(--border);border-radius:4px;overflow:hidden}.lesson table th,.dive-body table th,.lesson-table th,.cs-body th{background:var(--panel-2);color:var(--text-dim);font-family:var(--font-mono);font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.06em;padding:8px 12px;text-align:left;border-bottom:1px solid var(--border)}.lesson table td,.dive-body table td,.lesson-table td,.cs-body td{padding:8px 12px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:top}.lesson table tr:last-child td,.dive-body table tr:last-child td,.lesson-table tr:last-child td,.cs-body table tr:last-child td{border-bottom:none}.lesson ul,.lesson ol,.dive-body ul,.dive-body ol,.cs-body ul,.cs-body ol{margin:10px 0;padding-left:22px;color:var(--text)}.lesson li,.dive-body li,.cs-body li{margin:4px 0;line-height:var(--lh-base)}.lesson svg,.dive-body svg{max-width:100%;height:auto;margin:10px 0}.lesson .diagram,.dive-body .diagram{margin:16px 0;padding:12px;background:var(--panel-2);border:1px solid var(--border);border-radius:4px}.lesson .diagram-title,.dive-body .diagram-title{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.lesson-html{margin:14px 0}.lesson-html :first-child{margin-top:0}.lesson-html :last-child{margin-bottom:0}.code-prompt{font-size:var(--fs-13);color:var(--text);line-height:var(--lh-base);padding:12px 14px}.code-prompt p:first-child{margin-top:0}.code-prompt p:last-child{margin-bottom:0}.dive-pri{grid-column:5;justify-self:end;font-family:var(--font-mono);font-size:var(--fs-10);text-transform:uppercase;letter-spacing:.08em;padding:1px 5px;border-radius:3px;border:1px solid var(--border)}.dive-pri-high{color:var(--bad);border-color:#f7768e66}.dive-pri-mid{color:var(--warn);border-color:#e0af6866}.dive-pri-low{color:var(--text-faint)}.cs-body p{margin:4px 0}.cs-body code{font-size:var(--fs-11)}.cv-header{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:flex-start;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--border)}.cv-exam-block{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:12px 18px;text-align:right;min-width:200px}.cv-countdown-label{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:.12em}.cv-countdown{font-family:var(--font-mono);font-size:var(--fs-24);font-weight:600;color:var(--accent);margin-top:4px}.cv-countdown.imminent{color:var(--bad)}.cv-countdown.soon{color:var(--warn)}.cv-exam-when{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-dim);margin-top:4px}.cv-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:8px}.cv-kpi{background:var(--panel);border:1px solid var(--border);border-radius:5px;padding:14px 16px}.cv-kpi .k-label{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:.1em}.cv-kpi .k-value{font-family:var(--font-mono);font-size:var(--fs-22);font-weight:600;color:var(--text);margin-top:6px}.cv-kpi .k-value.sm{font-size:var(--fs-14);font-family:var(--font-sans);font-weight:500;line-height:1.3}.cv-kpi .k-denom{font-size:var(--fs-14);color:var(--text-faint);font-weight:400}.cv-kpi .k-sub{font-size:var(--fs-11);color:var(--text-dim);margin-top:6px}.cv-inline-btn{background:none;border:none;color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.06em;cursor:pointer;padding:0}.cv-inline-btn:hover{color:var(--text)}.cv-subnav{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media (max-width: 720px){.cv-subnav{grid-template-columns:1fr 1fr}}.cv-subnav-card{text-align:left;background:var(--panel);border:1px solid var(--border);border-radius:5px;padding:14px 16px;cursor:pointer;font-family:inherit;color:var(--text);transition:border-color .12s,background .12s,transform .12s}.cv-subnav-card:hover{border-color:var(--accent-dim);background:var(--panel-2);transform:translateY(-1px)}.cv-sn-title{font-size:var(--fs-14);font-weight:600;color:var(--text)}.cv-sn-sub{font-size:var(--fs-12);color:var(--text-dim);margin-top:4px}.cv-sn-meta{font-family:var(--font-mono);font-size:var(--fs-10);color:var(--text-faint);letter-spacing:.08em;margin-top:10px;display:flex;justify-content:space-between;align-items:center}.cv-sn-meta .arr{color:var(--accent)}.lesson svg,.dive-body svg,.lesson-html svg{display:block;max-width:100%;height:auto;background:var(--panel);border-radius:4px}.lesson svg text,.dive-body svg text,.lesson-html svg text{font-family:var(--font-sans);fill:var(--text)}.lesson svg .box,.dive-body svg .box,.lesson-html svg .box{fill:var(--panel-2);stroke:var(--border-strong);stroke-width:1}.lesson svg .box-accent,.dive-body svg .box-accent,.lesson-html svg .box-accent{fill:var(--panel-3);stroke:var(--accent);stroke-width:1.5}.lesson svg .box-ok,.dive-body svg .box-ok,.lesson-html svg .box-ok{fill:#9ece6a1f;stroke:var(--ok);stroke-width:1}.lesson svg .box-warn,.dive-body svg .box-warn,.lesson-html svg .box-warn{fill:#e3af681a;stroke:var(--warn);stroke-width:1}.lesson svg .box-bad,.dive-body svg .box-bad,.lesson-html svg .box-bad{fill:#f7768e1a;stroke:var(--bad);stroke-width:1}.lesson svg .label,.dive-body svg .label,.lesson-html svg .label{fill:var(--text);font-size:var(--fs-12)}.lesson svg .label-accent,.dive-body svg .label-accent,.lesson-html svg .label-accent{fill:var(--accent);font-size:var(--fs-12);font-weight:600}.lesson svg .sub,.dive-body svg .sub,.lesson-html svg .sub{fill:var(--text-faint);font-size:var(--fs-10)}.lesson svg .arrow-line,.dive-body svg .arrow-line,.lesson-html svg .arrow-line{stroke:var(--text-dim);stroke-width:1.2;fill:none}.lesson svg .arrow-line.dashed,.dive-body svg .arrow-line.dashed,.lesson-html svg .arrow-line.dashed{stroke-dasharray:3,3}.lesson svg path,.dive-body svg path,.lesson-html svg path{fill:none;stroke:var(--text-dim);stroke-width:1}.lesson svg marker path,.dive-body svg marker path,.lesson-html svg marker path{fill:var(--text-dim);stroke:none}.lesson svg rect:not([class]),.dive-body svg rect:not([class]),.lesson-html svg rect:not([class]){fill:var(--panel-2);stroke:var(--border)}.lesson p,.dive-body p{margin:0 0 10px}.lesson p+ul,.lesson p+ol,.dive-body p+ul,.dive-body p+ol{margin-top:-2px}.lesson ul+p,.lesson ol+p,.dive-body ul+p,.dive-body ol+p{margin-top:12px}.lesson li,.dive-body li{margin:2px 0;line-height:1.6}.lesson h3,.lesson h4,.dive-body h3,.dive-body h4{position:relative;margin:30px 0 8px;padding-left:14px;font-weight:600;letter-spacing:-.005em;color:var(--accent)}.lesson h3,.dive-body h3{font-size:var(--fs-16)}.lesson h4,.dive-body h4{font-size:var(--fs-14)}.lesson h3:before,.lesson h4:before,.dive-body h3:before,.dive-body h4:before{content:"";position:absolute;left:0;top:.22em;width:3px;height:.85em;background:var(--accent);border-radius:1px}.lesson .lesson-head+h3,.lesson .lesson-head+h4,.dive-body>h3:first-child,.dive-body>h4:first-child{margin-top:12px}.lesson h3+p,.lesson h4+p,.dive-body h3+p,.dive-body h4+p,.lesson h3+pre,.lesson h4+pre,.lesson h3+.mermaid-block,.lesson h4+.mermaid-block,.lesson h3+.diagram,.lesson h4+.diagram,.dive-body h3+pre,.dive-body h4+pre{margin-top:4px}.lesson pre.code.hl-block,.dive-body pre.code.hl-block{margin:10px 0}.lesson p+pre.code.hl-block,.dive-body p+pre.code.hl-block{margin-top:4px}.lesson pre.code.hl-block+p,.dive-body pre.code.hl-block+p{margin-top:8px}.callout{margin:12px 0;padding:10px 14px}.callout p{margin:2px 0}.lesson .diagram,.dive-body .diagram,.lesson-html .diagram{margin:16px 0 20px;padding:0;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.lesson .diagram-title,.dive-body .diagram-title,.lesson-html .diagram-title{font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);padding:12px 16px 6px;margin:0}.lesson .diagram-svg,.dive-body .diagram-svg,.lesson-html .diagram-svg{padding:6px 16px 12px;text-align:center}.lesson .diagram-svg svg,.dive-body .diagram-svg svg,.lesson-html .diagram-svg svg{background:transparent;border-radius:0;margin:0;max-width:100%;height:auto;display:inline-block}.lesson .d-legend,.dive-body .d-legend,.lesson-html .d-legend{padding:10px 16px 12px;border-top:1px dashed var(--border);font-size:var(--fs-13);color:var(--text-dim);line-height:1.55}.lesson .d-legend strong,.dive-body .d-legend strong,.lesson-html .d-legend strong{color:var(--text);font-weight:600}.lesson p:has(>svg:only-child),.dive-body p:has(>svg:only-child),.lesson-html p:has(>svg:only-child){margin:14px 0 18px;padding:14px 16px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-lg)}.lesson p:has(>svg:only-child)>svg,.dive-body p:has(>svg:only-child)>svg,.lesson-html p:has(>svg:only-child)>svg{background:transparent;border-radius:0;margin:0}.lesson p:has(+.mermaid-block),.dive-body p:has(+.mermaid-block),.lesson p:has(+pre.code.hl-block),.dive-body p:has(+pre.code.hl-block){margin-bottom:4px}.lesson p+.mermaid-block,.dive-body p+.mermaid-block{margin-top:6px}
