:root{--paper:#f6f4ee;--ink:#172d28;--muted:#5a6860;--green:#234f41;--line:#d9ded4;--accent:#b45d3b;--cream:#eeeee3;--serif:Georgia,'Times New Roman',serif;--sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.65 var(--sans)}a{color:var(--green);text-underline-offset:4px}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #aa6039;outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.035em}h1{font-size:clamp(2.8rem,5.5vw,5rem);line-height:1.05}h1 em{font-weight:400;color:var(--accent)}h2{font-size:2.2rem;line-height:1.2}h3{font-size:1.15rem;line-height:1.4}p{margin-bottom:1.15em}.eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:.15em;line-height:1.5;text-transform:uppercase;color:var(--green)}.muted{color:var(--muted);font-size:13px}.masthead{height:98px;max-width:1440px;margin:auto;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:32px}.wordmark{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:600;line-height:1.2;text-decoration:none}.wordmark small{display:block;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.025em;margin-top:5px;color:var(--muted)}.brand-symbol{display:block;width:48px;height:48px;flex:0 0 auto}.masthead nav{display:flex;align-items:center;gap:28px;font-size:13px}.masthead nav>a:not(.button){text-decoration:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:var(--green);border:1px solid var(--green);color:#fff;padding:13px 21px;text-decoration:none;font-size:13px;font-weight:600;border-radius:3px}.button:hover{background:#33634f}.button.small{padding:10px 16px;font-size:12px}.button.secondary{background:transparent;color:var(--green)}.home,.page-width{max-width:1280px;margin:auto;padding:0 5%}.hero{display:grid;grid-template-columns:1.6fr 1fr;gap:70px;padding:74px 0 55px;align-items:center}.hero .eyebrow{margin-bottom:26px}.hero h1{margin-bottom:24px}.hero-deck{font-size:17px;color:var(--muted);max-width:575px;line-height:1.75}.hero-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:29px}.text-link{font-size:13px;font-weight:600}.hero-map{padding:28px;background:#e8eddf;border:1px solid #d5deca;transform:rotate(1deg);box-shadow:9px 12px 0 #eeeee5}.hero-map>.eyebrow{border-bottom:1px solid #bdcbb7;padding-bottom:20px;margin:0}.compass-row{display:grid;grid-template-columns:25px 1fr;column-gap:12px;padding:16px 0;border-bottom:1px solid #ccd7c2;line-height:1.5}.compass-row b{font-size:10px;color:var(--accent);grid-row:span 2;padding-top:5px}.compass-row strong{font:24px var(--serif)}.compass-row span{font-size:12px;color:#546448}.hero-map>p{font:italic 13px var(--serif);margin:20px 0 0}.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0}.stats div{padding:0 30px;border-right:1px solid var(--line)}.stats div:first-child{padding-left:0}.stats div:last-child{border:0}.stats strong{font:39px var(--serif);display:block}.stats span{font-size:12px;color:var(--muted)}.learning-path{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:55px 0;border-bottom:1px solid var(--line)}.learning-path h2{margin:10px 0 16px}.learning-path p{font-size:14px;color:var(--muted)}.session-chart{padding:20px 0}.session-chart h3{font-size:13px}.timebar{display:flex;gap:3px;margin:22px 0 14px}.timebar span{flex:var(--w);background:var(--tone);padding:18px 2px;color:white;text-align:center;font-size:12px;font-weight:700}.session-chart p{font-size:11px;line-height:1.8}.library{padding:55px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px}.section-heading h2{margin:9px 0 20px}.library-controls{display:flex;align-items:end;gap:22px;justify-content:space-between;margin:12px 0 4px}.search{display:block;flex:1;max-width:370px}.search span{display:block;font-size:12px;font-weight:600;margin-bottom:8px}.search input{width:100%;border:1px solid #bbc5b8;background:transparent;padding:11px 14px;border-radius:4px;font-size:13px;color:var(--ink)}.filter-tabs{display:flex;gap:5px;flex-wrap:wrap}.filter-tabs button{border:1px solid var(--line);border-radius:30px;background:transparent;padding:10px 15px;color:var(--muted);font-size:12px}.filter-tabs button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}#search-status{min-height:24px;font-size:12px;color:var(--muted)}.group-title{display:flex;gap:16px;align-items:center;margin:33px 0 19px}.group-title>span{font-size:10px;color:var(--accent);border:1px solid var(--line);padding:4px 7px}.group-title h2{font-family:var(--sans);font-size:19px;font-weight:600;letter-spacing:-.02em;margin:0}.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.catalog-card{border:1px solid var(--line);background:#fbfaf5;padding:23px;display:flex;flex-direction:column;text-decoration:none;border-radius:4px;transition:background .15s,border .15s;min-width:0}.catalog-card:hover{border-color:#74947f;background:#edf0e7}.catalog-card .eyebrow{font-size:9px}.catalog-card h3{margin:20px 0 12px;font:25px/1.18 var(--serif);letter-spacing:-.02em}.catalog-card p{font-size:12px;color:var(--muted);line-height:1.75}.card-foot{border-top:1px solid var(--line);padding-top:14px;margin-top:auto;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.card-foot span{color:var(--green)}.practice-dot{color:#8c502f;font-size:8px;letter-spacing:0}.source-banner{background:var(--green);color:#f3f2e7;padding:35px 38px;display:flex;gap:50px;align-items:center;margin:5px 0 65px}.source-banner .eyebrow{color:#b8c7a1}.source-banner h2{font-size:32px}.source-banner p{font-size:13px;max-width:730px;color:#dbe3d2}.source-banner .button{white-space:nowrap;background:#e8ebd9;border-color:#e8ebd9;color:var(--green)}.footer{max-width:1280px;margin:auto;display:flex;justify-content:space-between;gap:20px;padding:30px 5%;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.footer a{text-decoration:none}.skip-link{position:fixed;left:12px;top:-100px;z-index:100;background:var(--green);color:#fff;padding:10px}.skip-link:focus{top:12px}.reader-layout{max-width:1250px;margin:auto;padding:50px 5%;display:grid;grid-template-columns:220px minmax(0,1fr);gap:60px}.chapter-toc{position:sticky;top:32px;align-self:start;max-height:calc(100vh - 64px);overflow:auto;font-size:12px}.chapter-toc>a:first-child{display:block;margin-bottom:35px;text-decoration:none}.chapter-toc nav{display:flex;flex-direction:column;gap:13px;border-left:1px solid var(--line);padding-left:17px}.chapter-toc nav a{color:var(--muted);text-decoration:none}.chapter-toc .source-toc{display:block;margin-top:30px}.chapter-head h1{font-size:clamp(2.5rem,4.4vw,3.8rem);margin:16px 0 22px}.deck{font:21px/1.6 var(--serif);color:var(--muted)}.tags{display:flex;gap:8px;flex-wrap:wrap}.tags span{font-size:10px;background:#e5ebde;border:1px solid #d3ddc8;padding:4px 10px;border-radius:20px}.assumptions-note{font-size:11px;color:var(--muted);margin:19px 0 30px}.architecture{margin:30px 0 45px;padding:24px;background:#e9eddf;border:1px solid #d0dac6}.architecture figcaption{margin-bottom:20px}.architecture figcaption strong{font:23px var(--serif);display:block;margin-top:7px}.node-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.node{display:flex;align-items:center;gap:12px;padding:13px;background:#fafbf5;border:1px solid #bdcbb4;font-size:13px;min-height:59px;min-width:0}.node b{color:var(--accent);font-size:10px}.flow-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:15px 0 0;margin:0;gap:12px 18px;list-style:none;border-top:1px solid #c5d0b9;margin-top:20px}.flow-list li{display:flex;gap:10px;font-size:11px;line-height:1.45}.flow-route{font-weight:700;white-space:nowrap;color:var(--green);min-width:34px}.flow-list small{display:block;font-size:9px;color:var(--muted);margin-top:3px}.chapter-section{margin:44px 0;overflow-wrap:anywhere}.chapter-section h2{display:flex;gap:15px;font-size:30px;margin-bottom:25px;align-items:baseline}.chapter-section h2>span{white-space:nowrap;flex-shrink:0;font:10px var(--sans);color:var(--accent);letter-spacing:.08em}.chapter-section h3{margin:25px 0 12px}.chapter-section p,.chapter-section li{font-size:15px;line-height:1.8}.chapter-section ul,.chapter-section ol{padding-left:25px}.chapter-section li{margin-bottom:8px}table{border-collapse:collapse;width:100%;font-size:12px;table-layout:fixed;margin:22px 0}th,td{text-align:left;vertical-align:top;padding:11px 12px;border:1px solid #d2d9cd;overflow-wrap:anywhere}th{background:var(--green);color:white;font-weight:600;font-size:11px}tr:nth-child(even) td{background:#edf0e6}td p{margin:0}.table-wrap{overflow:auto}.chapter blockquote{border-left:3px solid var(--accent);background:#eeeee2;padding:17px 22px;margin:20px 0}.chapter blockquote p:last-child{margin-bottom:0}code{font:12px ui-monospace,SFMono-Regular,Consolas,monospace;background:#e8ecdf;padding:2px 4px;border-radius:2px;overflow-wrap:anywhere}pre{background:#e8ecdf;padding:18px;white-space:pre-wrap;overflow-wrap:anywhere}pre code{padding:0}.cards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.recall-card{background:#fffdf7;border:1px solid #d7cfba;border-top:3px solid #b88443;border-radius:3px;height:fit-content}.recall-card summary{padding:22px;cursor:pointer;list-style:none}.recall-card summary::-webkit-details-marker{display:none}.recall-card summary .eyebrow{font-size:8px;color:var(--muted)}.recall-card summary strong{display:block;margin:15px 0 23px;font:23px/1.35 var(--serif)}.reveal{display:flex;justify-content:space-between;font-size:10px;color:var(--accent)}.reveal span{font-size:16px}.answer{padding:0 22px 22px}.answer p{font-size:13px;line-height:1.8}.answer a{font-size:11px}.mnemonic{background:#eeeee0;padding:12px;border-left:2px solid #9b733e;font-weight:600}.chapter-pagination{margin-top:45px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:28px;padding-top:28px}.chapter-pagination a{font:22px/1.35 var(--serif);text-decoration:none}.chapter-pagination a:last-child{text-align:right}.chapter-pagination small{display:block;font:9px var(--sans);margin-bottom:11px;color:var(--muted)}.page-intro{padding:60px 0 30px;max-width:850px}.page-intro h1{font-size:clamp(2.8rem,5vw,4.5rem);margin:20px 0 28px}.page-intro p{color:var(--muted);font-size:15px}.deck-controls{display:flex;align-items:end;gap:15px;flex-wrap:wrap;margin:5px 0 32px}.deck-controls label{display:block;font-size:12px}.deck-controls select{display:block;margin-top:8px;max-width:400px;width:100%;padding:11px 12px;background:#fffdf7;border:1px solid var(--line);color:var(--ink)}.full-deck{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:60px}.note{padding:22px 25px;border:1px solid var(--line);background:var(--cream);margin:20px 0 35px}.note h2{font-size:26px}.note p{font-size:13px;margin-bottom:0}.source-page{border-top:1px solid var(--line);padding:30px 0}.source-page h2{font-size:25px}.source-page h2 a{font:11px var(--sans);margin-left:20px}.source-text{white-space:pre-wrap;font:15px/1.75 var(--serif);max-width:850px;overflow-wrap:anywhere}.page-jump{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 35px}.page-jump a{font-size:11px;border:1px solid var(--line);padding:6px 10px;text-decoration:none}.book{max-width:900px;margin:auto;padding:0 5%}.book .chapter{margin:75px 0;border-top:3px solid var(--green);padding-top:45px}.book .chapter-head h1{font-size:42px}.book-toc{display:grid;grid-template-columns:1fr 1fr;gap:10px 30px}.book-toc a{display:flex;gap:13px;font-size:13px;text-decoration:none;padding:8px 0;border-bottom:1px solid var(--line)}.book-toc span{font-size:10px;color:var(--accent);padding-top:2px}[hidden]{display:none!important}@media(max-width:1000px){.masthead nav{gap:15px}.hero{gap:35px}.catalog-grid,.full-deck{grid-template-columns:repeat(2,minmax(0,1fr))}.library-controls{align-items:stretch;flex-direction:column}.search{max-width:none}.reader-layout{grid-template-columns:175px minmax(0,1fr);gap:30px}.cards-grid{grid-template-columns:1fr}.learning-path{gap:40px}.source-banner{gap:20px;align-items:start;flex-direction:column}}@media(max-width:700px){.masthead{height:auto;min-height:100px;padding-top:18px;padding-bottom:18px;align-items:start;flex-direction:column;gap:18px}.masthead nav{gap:16px;font-size:11px;flex-wrap:wrap}.masthead .small{font-size:10px;padding:8px 10px}.wordmark{font-size:20px}.hero{grid-template-columns:1fr;padding:45px 0;gap:35px}.hero-map{transform:none}.hero h1{font-size:43px}.hero-actions{align-items:start;gap:18px}.hero-deck{font-size:15px}.stats{grid-template-columns:repeat(2,1fr);row-gap:25px}.stats div{padding-left:18px}.stats div:nth-child(3){padding-left:0}.stats div:nth-child(2){border:0}.stats strong{font-size:32px}.learning-path{grid-template-columns:1fr;gap:8px;padding:35px 0}.session-chart{padding:0}.section-heading{display:block}.section-heading h2{font-size:32px}.filter-tabs{gap:7px}.filter-tabs button{font-size:10px;padding:8px 11px}.catalog-grid,.full-deck{grid-template-columns:1fr}.catalog-card h3{font-size:25px}.source-banner{padding:25px}.footer{flex-direction:column;gap:12px}.reader-layout{display:block;padding-top:25px}.chapter-toc{position:static;max-height:none;font-size:11px;margin-bottom:30px;overflow:visible}.chapter-toc>a:first-child{margin-bottom:15px}.chapter-toc nav{flex-direction:row;flex-wrap:wrap;gap:9px 15px}.chapter-toc .source-toc{margin-top:15px}.chapter-head h1{font-size:37px}.chapter-section h2{font-size:27px}.chapter-section p,.chapter-section li{font-size:14px}.architecture{padding:16px}.node{padding:11px;gap:7px;font-size:11px}.flow-list{grid-template-columns:1fr}.chapter-section table{font-size:10px}th,td{padding:8px 6px}th{font-size:10px}.deck{font-size:19px}.book-toc{grid-template-columns:1fr}.page-intro{padding-top:40px}.page-intro h1{font-size:42px}.chapter-pagination a{font-size:20px}.source-page h2 a{display:block;margin:10px 0 0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media print{body{background:white;color:#172d28;font-size:10pt}.masthead,.footer,.chapter-toc,.chapter-pagination,.skip-link,.mark-read,.deck-controls,.hero-actions,.filter-tabs,.search{display:none}.reader-layout,.home,.page-width,.book{display:block;max-width:none;padding:0}.chapter{break-before:page}.chapter-head h1{font-size:30pt}.chapter-section h2{font-size:20pt;break-after:avoid}.chapter-section p,.chapter-section li{font-size:10pt}.architecture,.recall-card{break-inside:avoid}tr{break-inside:avoid}.cards-grid{display:block}.recall-card{margin:15px 0}.recall-card .answer{display:block!important}.chapter-section{margin:25px 0}a{color:inherit}.book-toc a{font-size:10pt}}

.diagram-visual{background:#f9faf4;border:1px solid #d3ddcb;padding:12px}.diagram-expand{border:0;background:transparent;color:var(--green);font:600 11px var(--sans);text-decoration:underline;text-underline-offset:3px;padding:13px 0 0}.diagram-modal{max-width:1100px;width:94vw;max-height:90vh;border:1px solid var(--line);background:var(--paper);padding:20px;color:var(--ink)}.diagram-modal::backdrop{background:#12281fcc}.diagram-canvas{overflow:auto;margin-top:16px}.diagram-canvas svg{min-width:720px;max-width:none!important;width:100%!important}.diagram-modal>[data-close-diagram]{position:sticky;top:0}.diagram-visual svg{max-height:none}@media print{.diagram-expand,.diagram-modal{display:none}}

/* Learning and interview practice edition. */
.hero{grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:48px;padding:58px 0 45px}.hero h1{font-size:clamp(2.8rem,4.3vw,4.25rem);line-height:1.12}.hero-actions>a:not(.button){font-size:13px}.masthead{max-width:1560px;gap:20px}.masthead nav{gap:18px;font-size:12px}.study-card{background:#e9eddf;padding:30px;border:1px solid #cbd6c4;border-radius:6px}.study-card h2{font-size:28px;margin-bottom:20px}.study-card ol{padding-left:21px}.study-card li{margin-bottom:18px;font-size:14px}.study-card a{font-size:13px;font-weight:600}.catalog-group{margin:42px 0}.catalog-group>h2{font-size:27px}.catalog-card h3{font-size:24px;line-height:1.25}.catalog-card p{font-size:13px}.catalog-card{padding:22px}.card-foot{font-size:11px}.reader-layout{grid-template-columns:220px minmax(0,1fr);max-width:1320px;gap:48px}.chapter-head h1{font-size:clamp(2.4rem,4vw,3.5rem);line-height:1.15}.deck{font-family:var(--sans);font-size:18px;line-height:1.7}.lesson-overview{display:grid;grid-template-columns:1.3fr 1fr;gap:25px;background:#edf0e6;border:1px solid var(--line);padding:24px;margin:26px 0}.lesson-overview h2{font:600 14px/1.4 var(--sans);letter-spacing:0;margin-bottom:12px}.lesson-overview ul{padding-left:19px;margin:0}.lesson-overview li,.lesson-overview p{font-size:13px;line-height:1.7}.lesson-overview .button{font-size:11px;padding:9px 12px}.prerequisites{font-size:12px;line-height:1.8}.chapter-section h2{font-size:29px;line-height:1.3}.chapter-section p,.chapter-section li{font-size:15.5px;line-height:1.85}.chapter-section>p{max-width:78ch}.chapter-section li{margin-bottom:12px}.chapter-section pre{overflow:auto;white-space:pre;max-width:100%}.chapter-section pre code{white-space:pre;overflow-wrap:normal}.chapter-section code{font-size:12.5px}.chapter-section table{font-size:12.5px}.table-wrap{max-width:100%;overflow:auto}.table-wrap table{min-width:480px}.architecture{margin:36px 0;background:#f0f2e9}.architecture figcaption strong{font:400 15px/1.7 var(--sans);letter-spacing:0}.flow-list li>b{font-size:11px;white-space:nowrap}.flow-list small{display:block}.interview-question{padding:26px 28px;margin:24px 0;border:1px solid #cdd8cb;border-left:4px solid #376750;border-radius:3px;background:#fffef9;scroll-margin-top:20px}.question-meta{display:flex;justify-content:space-between;gap:20px;align-items:center}.question-meta>a{font-size:11px;max-width:60%;text-align:right}.interview-question h3{font:600 18px/1.5 var(--sans);margin:16px 0}.model-answer summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--green);padding:8px 0;text-decoration:underline;text-underline-offset:4px}.answer-body{padding:15px 0 0}.answer-body p{font-size:15px;line-height:1.85}.follow-up{background:#edf1e7;border-left:2px solid #6d896c;padding:20px;margin:22px 0}.follow-up h4{font-size:12px;text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px;color:var(--green)}.watch-for{font-size:13px!important;color:var(--muted)}.self-check{display:flex;align-items:baseline;gap:10px;font-size:12px;color:var(--muted);margin-top:16px}.self-check input{accent-color:var(--green)}.practice-task{padding:26px;background:#e9eddf;border:1px solid #cbd8c1;border-radius:4px}.practice-task h2{font-size:28px}.references li{font-size:13px}.references li span{display:block;font-size:12px;color:var(--muted);margin-top:4px}.legacy-anchor{display:block;height:0}.question-bank{max-width:1100px}.practice-controls{display:flex;gap:15px;flex-wrap:wrap;align-items:end;background:#e9eddf;border:1px solid var(--line);padding:23px;border-radius:4px}.practice-controls label{font-size:12px;flex:1;min-width:160px}.practice-controls select,.practice-controls input{display:block;width:100%;max-width:360px;background:#fffdf7;border:1px solid #bccab7;padding:10px;margin-top:7px;color:var(--ink);border-radius:3px;font-size:13px}.practice-controls .button{padding:11px 14px}#question-status{font-size:13px;margin:18px 0;color:var(--muted)}.question-bank .interview-question h3{font-size:20px}.study-stage{padding:34px 0;border-top:1px solid var(--line);max-width:950px}.study-stage h2{font-size:30px}.study-stage li{margin-bottom:12px}.study-stage p,.study-stage li{font-size:15px;line-height:1.8}.study-stage .timebar span{padding:13px 4px;font-size:10px}.book .lesson-overview{grid-template-columns:1fr 1fr}.book .chapter-section{margin:40px 0}.book .references{margin-bottom:60px}.draft-banner{padding:10px;text-align:center;background:#f5e3c6;font-size:13px}.chapter-toc nav a:hover{color:var(--green);text-decoration:underline}.chapter-toc nav a[href='#interview-questions']{font-weight:700;color:var(--green)}.note ol{padding-left:22px}.note li{font-size:14px;line-height:1.8;margin:9px 0}.footer{flex-wrap:wrap}.source-banner{margin-top:10px}.recall-card summary strong{font-family:var(--sans);font-size:19px;line-height:1.5}.recall-card .answer p{font-size:14px}
@media(max-width:1100px){.masthead{height:auto;padding-top:18px;padding-bottom:18px;flex-wrap:wrap}.masthead nav{flex-wrap:wrap}.reader-layout{grid-template-columns:175px minmax(0,1fr);gap:28px}.hero{gap:25px}.lesson-overview{grid-template-columns:1fr}.question-meta{align-items:start}}@media(max-width:700px){.hero{grid-template-columns:1fr;padding-top:35px}.hero h1{font-size:38px}.study-card{padding:24px}.reader-layout{display:block}.chapter-head h1{font-size:34px}.chapter-section h2{font-size:26px}.chapter-section p,.chapter-section li{font-size:15px}.chapter-toc nav{flex-direction:column;gap:8px;max-height:230px;overflow:auto}.chapter-toc{padding-bottom:20px;border-bottom:1px solid var(--line)}.lesson-overview,.book .lesson-overview{grid-template-columns:1fr;padding:20px}.interview-question{padding:20px 17px}.question-meta{display:block}.question-meta>a{display:block;max-width:none;text-align:left;margin-top:6px}.question-bank .interview-question h3{font-size:18px}.practice-controls{padding:18px}.practice-controls select{max-width:none}.practice-controls label{min-width:100%}.follow-up{padding:16px}.practice-task{padding:20px}.study-stage .timebar span{font-size:8px}.masthead nav{gap:13px}.masthead nav a{font-size:11px}}@media print{.lesson-overview{break-inside:avoid}.model-answer .answer-body{display:block!important}.model-answer summary,.self-check,.practice-controls,.draft-banner{display:none}.interview-question{border:1px solid #ccc;padding:12px;break-inside:auto}.interview-question h3{break-after:avoid}.follow-up{break-inside:auto}.references{font-size:8pt}.chapter-section pre{white-space:pre-wrap}.chapter-section pre code{white-space:pre-wrap}.table-wrap{overflow:visible}.table-wrap table{min-width:0}.question-meta{break-after:avoid}}
.coverage-note{font-size:12px!important;line-height:1.6!important;color:var(--muted);margin:9px 0 0!important}.table-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:700px){.table-wrap:before{content:'Scroll table horizontally →';display:block;font-size:11px;color:var(--muted);margin-top:12px}.table-wrap table{margin-top:8px}}

/* Complete interviews keep the progression visible without hiding the teaching. */
.interview-roadmap{display:flex;flex-wrap:wrap;gap:.5rem;padding:1.2rem 0 1.8rem;border-bottom:1px solid var(--line,#d3dbcf)}
.interview-roadmap a{font:600 .76rem/1.5 Arial,sans-serif;padding:.5rem .7rem;border:1px solid #cad6c9;border-radius:5px;background:#eff3e9;color:#234f41}
.interview-diagram figcaption p{font-size:.9rem;line-height:1.65;font-weight:400;margin:.7rem 0 0}
.interview-diagram .diagram-visual{padding:.5rem;background:white;overflow:auto}
.interview-diagram .diagram-visual svg{display:block;width:100%;height:auto;max-width:100%}
.diagram-transcript{margin-top:1rem;font-size:.86rem}.diagram-transcript summary{cursor:pointer;font-weight:600;color:#234f41;padding:.5rem 0}
.diagram-modal{width:96vw;max-width:none;height:94vh;max-height:94vh;padding:1rem;background:#fff}
.diagram-modal .diagram-canvas{max-height:calc(94vh - 6rem);overflow:auto;padding:1rem}
.diagram-modal .diagram-canvas svg{width:auto!important;max-width:none!important;height:auto!important}
.diagram-modal .diagram-canvas.fit svg{display:block;min-width:0!important;width:auto!important;height:auto!important;max-width:100%!important;max-height:calc(94vh - 8rem)}
@media(max-width:650px){.interview-roadmap{gap:.4rem}.interview-roadmap a{font-size:.72rem}.interview-diagram{padding:.8rem}.diagram-modal{width:98vw;padding:.6rem}}
@media print{.diagram-transcript{display:block}.interview-roadmap{display:none}}
.section-purpose{font:600 .88rem/1.6 Arial,sans-serif;color:#64746a;margin:-.25rem 0 1.2rem}
.chapter-toc{display:flex;flex-direction:column;max-height:calc(100svh - 48px);overflow:hidden}
.chapter-toc>:not(nav){flex-shrink:0}
.chapter-toc .outline-title{font:600 16px/1.45 var(--sans);margin:0 0 20px;overflow-wrap:anywhere}
.chapter-toc .outline-title a{color:var(--ink);text-decoration:none}
.chapter-toc .outline-title a:hover{text-decoration:underline}
.chapter-toc nav{flex-wrap:nowrap;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.lesson-author{font:400 12px/1.6 var(--sans);color:var(--muted);margin:12px 0 24px}
.chapter-toc nav a{border-left:3px solid transparent;padding:6px 10px;margin-left:-17px;line-height:1.5}
.chapter-toc nav a[aria-current="location"]{background:#e5ecdf;border-left-color:var(--accent);color:#173c31;border-radius:0 4px 4px 0}
.interview-diagram .diagram-expand{margin:.8rem 0 1rem}
@media(max-width:850px){.chapter-toc{max-height:400px}.chapter-toc nav{max-height:230px}}
@media print{.chapter-toc{display:none}}

/* Definitions and canonical models precede scenarios and advanced details. */
.concept-foundation{border-left:5px solid #326957;background:#edf3e8;padding:24px 28px;margin:26px 0}
.concept-foundation h2,.concept-example h2{font:600 21px/1.4 var(--sans);margin:8px 0 14px}
.concept-foundation p,.concept-example p,.concept-example li{font:15px/1.85 var(--sans);max-width:78ch}
.concept-foundation .definition-statement{font-size:18px;font-weight:500;line-height:1.75;color:#173c31}
.concept-foundation .eyebrow{font-size:11px}.concept-example{padding:8px 0 20px;border-bottom:1px solid var(--line)}
.concept-example h3{font:600 15px/1.6 var(--sans);margin-top:24px}.concept-example li{margin:9px 0}
.concept-diagram .diagram-visual{background:#fff;overflow:auto;padding:8px}.concept-diagram .diagram-visual svg{display:block;width:100%;height:auto;max-width:100%}
.concept-diagram figcaption strong{font-size:20px;font-weight:600}.concept-diagram figcaption p{font-size:14px;line-height:1.7}
.concept-diagram .diagram-expand{margin:6px 0 16px}.concept-diagram .diagram-transcript li{line-height:1.8;margin:8px 0}
@media(max-width:700px){.concept-foundation{padding:18px}.concept-foundation .definition-statement{font-size:16px}.concept-diagram{padding:12px}}
@media print{.concept-foundation{break-inside:avoid}.concept-foundation .definition-statement{font-size:12pt}}

/* Definitions remain one click away without interrupting the current lesson. */
a.concept-link{color:inherit;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-thickness:1px;text-underline-offset:.18em}
a.concept-link:hover,a.concept-link:focus-visible{color:var(--green,#234f41);text-decoration-style:solid;background:#e9eddf}
th a.concept-link:hover,th a.concept-link:focus-visible{color:#172d28}
th code{background:transparent;color:inherit}
.concept-link-note{font-size:.84rem;color:#5a6860}
.chapter-recap{background:#f0f2e8;border-left:3px solid #a65c39;padding:1.5rem!important;border-radius:0 8px 8px 0}
.chapter-recap .recap-summary{font-size:1.08em}

/* Numbered requirements and procedures support spoken interview practice. */
.chapter-section ol>li::marker{color:var(--green);font-weight:700}
.chapter-section ol>li{padding-left:5px}
.chapter-section[data-interview-stage="functional"]>ol,
.chapter-section[data-interview-stage="non-functional"]>ol{padding-left:27px;margin:20px 0 28px}
.chapter-section[data-interview-stage="functional"]>ol>li,
.chapter-section[data-interview-stage="non-functional"]>ol>li{margin-bottom:16px;line-height:1.75}

.chapter-objective-links{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:16px}

/* Figures sit beside the definition they explain and grow with their content. */
.section-visual{margin:28px 0 36px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 20px #183b3406}
.section-visual .diagram-visual{border:0;padding:0;overflow:visible;background:#fff}
.section-visual .diagram-visual svg{display:block;width:100%;max-width:720px;height:auto;margin:0 auto}
.section-visual figcaption p{max-width:70ch;font-size:16px;line-height:1.6}
.retired-visual-anchor{display:block;scroll-margin-top:100px}
.section-visual figcaption strong{font-family:var(--serif);font-size:24px;line-height:1.3}
.section-visual .visual-recall{margin:18px 0 0;padding:14px 18px;border-left:3px solid var(--accent);background:var(--cream);font-size:15px;line-height:1.6}
.section-visual .visual-actions{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:baseline;margin-top:12px}
.section-visual .diagram-expand{margin:0;padding:0;font-size:13px}
.section-visual .diagram-transcript{flex:1;min-width:180px;font-size:14px}
.section-visual .diagram-transcript summary{cursor:pointer;color:var(--green)}
.visual-check{margin-top:20px;border-top:1px solid var(--line);padding-top:16px;font-size:15px}
.visual-check summary{cursor:pointer;color:var(--ink);line-height:1.6}
.visual-check summary span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--green);margin-bottom:5px}
.visual-check p{padding:12px 16px;background:var(--cream);border-radius:8px;line-height:1.7}
@media(max-width:700px){.section-visual{padding:12px;margin:24px 0}.section-visual figcaption strong{font-size:21px}.section-visual .visual-recall{font-size:14px;padding:12px}}
@media(max-width:700px){.section-visual{display:flex;flex-direction:column}.section-visual figcaption{order:0}.section-visual .visual-actions{order:1;margin:0 0 16px}.section-visual .diagram-expand,.section-visual .diagram-transcript summary{min-height:44px;align-content:center}.section-visual .diagram-visual{order:2}.section-visual .visual-recall{order:3}.section-visual .visual-check{order:4}}
@media print{.section-visual{box-shadow:none;break-inside:avoid}.section-visual .visual-actions{display:none}}

/* Selected correctness boundaries and interview traps retain their full prose. */
.interview-critical {
  margin: 26px 0;
  padding: 20px 24px;
  min-width: 0;
  border: 1px solid #dfbc77;
  border-left: 4px solid #a36513;
  border-radius: 0 12px 12px 0;
  background: #fff7e7;
  color: #322b20;
  scroll-margin-top: 24px;
}
.interview-critical-header { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.interview-critical-header > div { min-width: 0; }
.interview-critical-icon { flex: 0 0 28px; width: 28px; height: 28px; margin-top: 3px; color: #935b0d; }
.chapter-section .interview-critical-label { margin: 0 0 3px; color: #80500d; font-size: 11px; font-weight: 700; line-height: 1.5; letter-spacing: .1em; text-transform: uppercase; }
.chapter-section .interview-critical h3 { margin: 0; font-family: inherit; color: #483112; font-size: 17px; font-weight: 700; line-height: 1.45; }
.interview-critical-body > :first-child { margin-top: 0; }
.interview-critical-body > :last-child { margin-bottom: 0; }
.interview-critical-body { overflow-wrap: anywhere; }
.interview-critical .table-wrap { max-width: 100%; }
@media (max-width: 700px) {
  .interview-critical { padding: 17px 16px; margin: 22px 0; }
  .interview-critical-header { gap: 10px; }
  .chapter-section .interview-critical h3 { font-size: 16px; }
}
@media print {
  .interview-critical { break-inside: avoid; border-color: #80500d; box-shadow: none; }
  .interview-critical-label, .interview-critical-icon { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

/* Separate authored lessons: changing versions is ordinary, accessible navigation. */
.edition-switcher{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.65rem 1rem;margin:0 0 1.5rem;padding:.9rem 1rem;border:1px solid #9db7a9;border-radius:.65rem;background:#edf5ef;font-size:.9rem}
.edition-current{font-weight:700;color:#234f41}
.edition-switcher a{font-weight:650;text-decoration:underline;text-underline-offset:3px}
.chapter[data-edition="advanced"] .edition-switcher{background:#f4eff9;border-color:#b7a8c7}
.chapter[data-edition="advanced"] .edition-current{color:#594474}
.advanced-reading{border-top:2px solid #b7a8c7}
.advanced-reading li{margin-bottom:1rem}
.advanced-reading li p{margin:.25rem 0}
.advanced-anchor{display:none}
.advanced-anchor:target{display:block;padding:1rem;border:2px solid #b7a8c7;border-radius:.5rem;background:#f4eff9}
.chapter[data-edition="interview"] .chapter-section[id$="revision"] th:first-child,.chapter[data-edition="interview"] .chapter-section[id$="revision"] td:first-child{width:25%}
@media print{.advanced-anchor{display:none!important}.edition-switcher{break-inside:avoid}}
