:root{--paper: #f2f0e9;--paper-raised: #faf9f4;--paper-sunken: #eae7dd;--ink: #1f1e1b;--ink-soft: #57534a;--ink-faint: #8a8578;--line: #ddd8cb;--line-strong: #c9c3b2;--clay: #c96442;--clay-deep: #a84e30;--clay-wash: #f3e2d9;--d1: #c96442;--d2: #a8852a;--d3: #5f7e5a;--d4: #49678a;--d5: #84537a;--d1-wash: #f3e2d9;--d2-wash: #f1e8d0;--d3-wash: #e2e9df;--d4-wash: #dfe6ee;--d5-wash: #ecdfe9;--ok: #4a7c59;--ok-wash: #dfeae2;--bad: #a8412e;--bad-wash: #f2ddd7;--font-display: "Fraunces", Georgia, serif;--font-body: "Source Serif 4", Georgia, serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--sidebar-w: 276px;--content-max: 860px;--radius: 10px;--shadow-card: 0 1px 2px rgba(31, 30, 27, .05), 0 4px 16px rgba(31, 30, 27, .05);--shadow-pop: 0 2px 4px rgba(31, 30, 27, .08), 0 12px 32px rgba(31, 30, 27, .12)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased;background-image:radial-gradient(rgba(31,30,27,.022) 1px,transparent 1px);background-size:5px 5px}::selection{background:var(--clay-wash)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;line-height:1.18;letter-spacing:-.01em;margin:0}a{color:var(--clay-deep);text-decoration-thickness:1px;text-underline-offset:3px}button{font-family:inherit;cursor:pointer}code,pre,.mono{font-family:var(--font-mono)}code{background:var(--paper-sunken);border:1px solid var(--line);border-radius:4px;padding:.08em .34em;font-size:.82em}pre{background:var(--ink);color:#ece9df;border-radius:var(--radius);padding:18px 20px;overflow-x:auto;font-size:13px;line-height:1.6}pre code{background:none;border:none;padding:0;color:inherit;font-size:inherit}.shell{display:flex;min-height:100vh}.mobile-topbar,.hamburger,.drawer-backdrop{display:none}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--ink);color:#b8b2a4;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow-y:auto}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:#3c3a34}.brand{padding:26px 22px 20px;border-bottom:1px solid #36342e}.brand-kicker{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--clay);margin-bottom:6px}.brand-title{font-family:var(--font-display);font-size:19px;font-weight:600;color:#f2f0e9;line-height:1.25}.nav-section{padding:14px 12px 6px}.nav-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#6e6a5e;padding:0 10px 6px}.nav-link{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:7px;color:#b8b2a4;text-decoration:none;font-size:14.5px;line-height:1.4;transition:background .15s,color .15s}.nav-link:hover{background:#2b2a25;color:#ece9df}.nav-link.active{background:#34322b;color:#f2f0e9}.nav-dot{width:8px;height:8px;min-width:8px;border-radius:50%;background:var(--dot, #57534a)}.nav-weight{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:#6e6a5e}.nav-link.active .nav-weight{color:#a39d8e}.sidebar-foot{margin-top:auto;padding:16px 22px 20px;border-top:1px solid #36342e;font-size:12px;color:#6e6a5e;line-height:1.5}.main{flex:1;min-width:0;padding:48px 56px 96px}.content{max-width:var(--content-max);margin:0 auto}.kicker{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--clay-deep);margin-bottom:10px}.page-title{font-size:38px;margin-bottom:10px}.page-sub{color:var(--ink-soft);max-width:620px;margin:0 0 36px;font-size:17px}.card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card)}.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid var(--line-strong);color:var(--ink-soft);background:var(--paper-raised)}.badge.official{border-color:var(--clay);color:var(--clay-deep);background:var(--clay-wash)}.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:13px;font-weight:500;padding:10px 20px;border-radius:8px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);transition:transform .12s,box-shadow .12s,background .15s}.btn:hover{background:#34322b;transform:translateY(-1px);box-shadow:var(--shadow-card)}.btn:active{transform:translateY(0)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn.ghost:hover{background:var(--paper-sunken)}.btn.clay{background:var(--clay);border-color:var(--clay)}.btn.clay:hover{background:var(--clay-deep)}.btn:disabled{opacity:.4;cursor:default;transform:none;box-shadow:none}.kbd{font-family:var(--font-mono);font-size:10.5px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;padding:1px 5px;color:var(--ink-faint);background:var(--paper-raised)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.rise{animation:rise .5s cubic-bezier(.2,.7,.2,1) both}.rise-1{animation-delay:.04s}.rise-2{animation-delay:.1s}.rise-3{animation-delay:.16s}.rise-4{animation-delay:.22s}.rise-5{animation-delay:.28s}@media (max-width: 900px){.shell{flex-direction:column}.mobile-topbar{display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:40;height:54px;height:calc(54px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;background:var(--ink);color:#f2f0e9}.mobile-title{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-.01em}.hamburger{display:flex;flex-direction:column;justify-content:center;gap:4px;width:38px;height:38px;margin-left:-8px;padding:0 8px;background:none;border:none}.hamburger span{display:block;height:2px;width:20px;background:#f2f0e9;border-radius:2px;transition:transform .22s,opacity .18s}.sidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;width:82%;max-width:300px;min-width:0;z-index:60;transform:translate(-100%);transition:transform .26s cubic-bezier(.2,.7,.2,1);box-shadow:0 0 40px #0006}.sidebar.open{transform:translate(0)}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#14131080;animation:rise .2s ease both}.main{padding:24px 18px 80px}.page-title{font-size:29px}.lesson{padding:24px 20px}.lesson-head h2{font-size:22px}.q-card{padding:22px 18px}.q-question{font-size:17px}input,select,textarea{font-size:16px!important}}.rich-h{font-size:21px;margin:34px 0 10px}.rich-p{margin:0 0 16px}.rich-list{margin:0 0 16px;padding-left:22px}.rich-list li{margin-bottom:6px}.rich-code{margin:0 0 18px}.rich-code figcaption{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}.rich-table-wrap{overflow-x:auto;margin:0 0 18px}.rich-table{border-collapse:collapse;width:100%;font-size:15px}.rich-table th{font-family:var(--font-mono);font-size:11px;letter-spacing:.07em;text-transform:uppercase;text-align:left;color:var(--ink-soft);border-bottom:2px solid var(--line-strong);padding:8px 12px 6px}.rich-table td{border-bottom:1px solid var(--line);padding:9px 12px;vertical-align:top}.callout{border-radius:var(--radius);padding:14px 18px;margin:0 0 18px;border:1px solid}.callout-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}.callout-title{font-weight:600;margin-bottom:3px;font-size:15.5px}.callout-body{font-size:15px;line-height:1.6}.callout-key{background:var(--d4-wash);border-color:#b9c8d8}.callout-key .callout-label{color:var(--d4)}.callout-trap{background:var(--bad-wash);border-color:#dcb6aa}.callout-trap .callout-label{color:var(--bad)}.callout-tip{background:var(--d3-wash);border-color:#bccab8}.callout-tip .callout-label{color:var(--d3)}.facts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:36px}.fact{padding:14px 16px}.fact-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:5px}.fact-value{font-size:14.5px;line-height:1.45}.domain-grid{display:flex;flex-direction:column;gap:14px;margin-bottom:40px}.domain-card{display:block;text-decoration:none;color:inherit;padding:20px 24px;position:relative;overflow:hidden;transition:transform .15s,box-shadow .15s}.domain-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-pop)}.domain-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--dc, var(--clay))}.domain-card-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.domain-card h2{font-size:21px}.domain-weight{font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);margin-left:auto}.domain-meta{display:flex;gap:18px;margin-top:10px;font-size:13.5px;color:var(--ink-soft);flex-wrap:wrap}.meter{height:5px;border-radius:999px;background:var(--paper-sunken);margin-top:14px;overflow:hidden}.meter>span{display:block;height:100%;border-radius:999px;background:var(--dc, var(--clay));transition:width .5s cubic-bezier(.2,.7,.2,1)}.readiness{display:flex;gap:22px;align-items:center;padding:22px 26px;margin-bottom:40px;background:var(--ink);color:var(--paper);border-radius:var(--radius)}.readiness h3{color:var(--paper);font-size:18px;margin-bottom:4px}.readiness p{margin:0;font-size:14px;color:#b8b2a4}.ring{position:relative;width:92px;height:92px;min-width:92px}.ring svg{transform:rotate(-90deg)}.ring-num{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:18px;font-weight:600;color:var(--paper)}.quick-row{display:flex;gap:12px;flex-wrap:wrap}.lesson-toc{display:flex;flex-direction:column;gap:10px;margin:26px 0 46px}.lesson-toc-item{display:flex;align-items:center;gap:14px;padding:13px 18px;text-decoration:none;color:inherit;transition:transform .12s,box-shadow .12s}.lesson-toc-item:hover{transform:translate(3px);box-shadow:var(--shadow-pop)}.lesson-num{font-family:var(--font-mono);font-size:12px;color:var(--dc, var(--clay));font-weight:600;min-width:30px}.lesson-toc-title{font-weight:600;font-size:16px}.lesson-toc-tagline{font-size:13.5px;color:var(--ink-soft)}.lesson-check{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--ok);white-space:nowrap}.lesson{padding:34px 38px;margin-bottom:26px;scroll-margin-top:24px}.lesson-head{display:flex;align-items:baseline;gap:14px;margin-bottom:6px}.lesson-head h2{font-size:26px}.lesson-sources{margin-top:22px;padding-top:14px;border-top:1px dashed var(--line-strong);font-size:13.5px}.lesson-sources .nav-label-inline{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);display:block;margin-bottom:5px}.lesson-foot{display:flex;justify-content:flex-end;margin-top:18px}.quiz-setup{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:28px}.mode-card{text-align:left;padding:20px 22px;border-radius:var(--radius);border:1px solid var(--line);background:var(--paper-raised);box-shadow:var(--shadow-card);transition:transform .13s,box-shadow .13s,border-color .13s}.mode-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-pop);border-color:var(--line-strong)}.mode-card h3{font-size:18px;margin-bottom:5px}.mode-card p{margin:0;font-size:13.5px;color:var(--ink-soft);line-height:1.5}.mode-card .mono-note{margin-top:10px;font-family:var(--font-mono);font-size:11px;color:var(--ink-faint)}.quiz-domain-row{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 28px}.chip{font-family:var(--font-mono);font-size:12px;padding:6px 14px;border-radius:999px;border:1px solid var(--line-strong);background:var(--paper-raised);color:var(--ink-soft);transition:all .12s}.chip:hover{border-color:var(--ink);color:var(--ink)}.quiz-progressbar{display:flex;align-items:center;gap:14px;margin-bottom:22px}.quiz-progressbar .meter{flex:1;margin:0}.quiz-count{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);white-space:nowrap}.q-card{padding:30px 34px}.q-scenario-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.q-situation{font-size:16.5px;margin-bottom:14px}.q-question{font-size:19px;font-weight:600;font-family:var(--font-display);margin-bottom:20px}.opt{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;padding:13px 16px;margin-bottom:10px;border-radius:var(--radius);border:1.5px solid var(--line);background:var(--paper-raised);font-family:var(--font-body);font-size:15.5px;line-height:1.55;transition:border-color .12s,background .12s,transform .12s}.opt:not(:disabled):hover{border-color:var(--ink);transform:translate(2px)}.opt-letter{font-family:var(--font-mono);font-size:12px;font-weight:600;border:1.5px solid var(--line-strong);border-radius:6px;min-width:26px;height:26px;display:flex;align-items:center;justify-content:center;margin-top:1px}.opt.selected{border-color:var(--ink);background:var(--paper-sunken)}.opt.selected .opt-letter{border-color:var(--ink);background:var(--ink);color:var(--paper)}.opt.correct{border-color:var(--ok);background:var(--ok-wash)}.opt.correct .opt-letter{border-color:var(--ok);background:var(--ok);color:#fff}.opt.wrong{border-color:var(--bad);background:var(--bad-wash)}.opt.wrong .opt-letter{border-color:var(--bad);background:var(--bad);color:#fff}.opt.dim{opacity:.55}.explanation{margin-top:18px;padding:16px 20px;border-radius:var(--radius);background:var(--paper-sunken);border:1px solid var(--line-strong);font-size:15px;animation:rise .35s cubic-bezier(.2,.7,.2,1) both}.explanation .nav-label-inline{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);display:block;margin-bottom:6px}.quiz-foot{display:flex;align-items:center;gap:14px;margin-top:22px}.quiz-foot .spacer{flex:1}.quiz-hint{font-size:12.5px;color:var(--ink-faint)}.quiz-summary{text-align:center;padding:48px 30px}.quiz-summary .big{font-family:var(--font-display);font-size:64px;font-weight:700;line-height:1}.quiz-summary .verdict{font-size:17px;margin:10px 0 6px}.quiz-summary p{color:var(--ink-soft)}.summary-domains{display:flex;flex-direction:column;gap:8px;max-width:460px;margin:26px auto 30px;text-align:left}.summary-domain-row{display:flex;align-items:center;gap:12px;font-size:14px}.summary-domain-row .meter{flex:1;margin:0}.summary-domain-row .label{min-width:170px}.summary-domain-row .pct{font-family:var(--font-mono);font-size:12px;min-width:76px;text-align:right;color:var(--ink-soft)}.deck-stats{display:flex;gap:12px;margin-bottom:26px;flex-wrap:wrap}.box-pill{display:flex;flex-direction:column;gap:2px;padding:12px 18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--paper-raised);min-width:110px}.box-pill .n{font-family:var(--font-display);font-size:24px;font-weight:600}.box-pill .t{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}.flashcard-stage{perspective:1400px;margin-bottom:22px}.flashcard{position:relative;width:100%;min-height:300px;cursor:pointer;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.3,.8,.3,1)}.flashcard.flipped{transform:rotateX(180deg)}.flash-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px 44px;border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-card)}.flash-front{background:var(--paper-raised)}.flash-back{background:var(--ink);color:var(--paper);transform:rotateX(180deg)}.flash-back code{background:#34322b;border-color:#4a473e;color:#ece9df}.flash-face .domain-tag{position:absolute;top:16px;left:20px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dc, var(--ink-faint))}.flash-face .box-tag{position:absolute;top:16px;right:20px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-faint)}.flash-back .box-tag,.flash-back .domain-tag{color:#8d887b}.flash-q{font-family:var(--font-display);font-size:23px;font-weight:600;line-height:1.35}.flash-a{font-size:16.5px;line-height:1.6;max-width:580px}.flash-controls{display:flex;gap:12px;justify-content:center}.flash-controls .btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.flash-controls .btn.again{background:var(--bad);border-color:var(--bad);color:#fff}.trap-card{padding:24px 28px;margin-bottom:16px}.trap-card h2{font-size:20px;margin-bottom:8px}.trap-rule{font-size:16px;font-weight:600;padding:12px 16px;border-left:4px solid var(--clay);background:var(--clay-wash);border-radius:0 8px 8px 0;margin-bottom:12px}.trap-detail{font-size:15px;color:var(--ink-soft);margin-bottom:12px}.trap-smell{font-size:13.5px;font-family:var(--font-mono);color:var(--bad);background:var(--bad-wash);border-radius:8px;padding:9px 13px}.trap-ref{margin-top:10px;font-size:12px;color:var(--ink-faint);font-family:var(--font-mono)}.scenario-card{padding:22px 26px;margin-bottom:14px}.scenario-card h2{font-size:19px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.scenario-card p{color:var(--ink-soft);font-size:15px;margin:8px 0 10px}.scenario-domains{display:flex;gap:6px;flex-wrap:wrap}.exercise-card{padding:24px 28px;margin-bottom:18px}.exercise-card h2{font-size:20px}.exercise-objective{color:var(--ink-soft);font-size:15px;margin:6px 0 14px}.ex-step{display:flex;gap:12px;align-items:flex-start;padding:9px 0;border-bottom:1px dashed var(--line);font-size:15px;cursor:pointer}.ex-step:last-child{border-bottom:none}.ex-step input{margin-top:5px;accent-color:var(--clay)}.ex-step.done{color:var(--ink-faint);text-decoration:line-through;text-decoration-color:var(--line-strong)}.cram-h{font-size:19px;margin:26px 0 8px;padding-left:10px;border-left:4px solid var(--clay)}.cram-weight{font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);font-weight:400}.cram-outline{font-size:13px;color:var(--ink-soft);font-family:var(--font-mono);margin:0 0 10px}.cram-list{margin:0 0 14px;padding-left:20px;font-size:14px;line-height:1.5}.cram-list li{margin-bottom:5px}.cram-domain{break-inside:avoid}@media print{.sidebar,.no-print{display:none!important}.main{padding:0}body{background:#fff;background-image:none}.cram-h{border-left-color:#000}.cram{font-size:11px}.cram-list{font-size:10.5px}pre{display:none}}.oos-list{columns:2;gap:36px;font-size:14.5px;color:var(--ink-soft);padding-left:20px}.oos-list li{margin-bottom:7px;break-inside:avoid}@media (max-width: 700px){.oos-list{columns:1}}
