﻿:root{--bg: #fffff8;--text: #1a1a1a;--muted: #6b6b6b;--accent: #4a6fa5;--accent-hover: #2f4a6f;--border: #e0e0e0;--inline-code-bg: #f5f5f0;--code-bg: #1e1e2e;--code-text: #cdd6f4;--hr: #d9d9d9;--serif: "Crimson Pro", Georgia, serif;--mono: "JetBrains Mono", "Courier New", monospace;--gutter: 40px;--margin-width: 260px;--body-width: min(60ch, 100%)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:var(--serif);color:var(--text);background:var(--bg);font-size:1.125rem;line-height:1.75;display:grid;grid-template-columns:1fr var(--body-width) minmax(0, var(--margin-width));gap:var(--gutter);max-width:calc(1040px + 2*var(--gutter));margin:0 auto;padding:0 var(--gutter)}h1,h2,h3,h4,h5,h6{font-family:var(--serif);line-height:1.3;margin-top:0}h1{font-size:2rem;font-weight:600;margin-bottom:.5rem}h2{font-size:1.35rem;font-weight:600;margin:2rem 0 .75rem}h3{font-size:1.15rem;font-weight:600;margin:1.5rem 0 .5rem}p{margin-bottom:1rem}a{color:var(--accent);text-decoration:underline}a:hover{color:var(--accent-hover)}ul,ol{margin-bottom:1rem;padding-left:1.5rem}li{margin-bottom:.25rem}code{font-family:var(--mono);background:var(--inline-code-bg);padding:.15em .4em;border-radius:3px;font-size:.9em;color:var(--text)}pre{background:var(--code-bg);color:var(--code-text);padding:1rem;border-radius:6px;overflow-x:auto;margin-bottom:1rem;font-family:var(--mono);font-size:.9rem}pre code{background:none;padding:0;color:inherit;font-size:inherit}blockquote{border-left:3px solid var(--border);padding-left:1rem;color:var(--muted);margin-bottom:1rem}nav{grid-column:2;padding:1rem 0;display:flex;gap:1.5rem;align-items:baseline;border-bottom:1px solid var(--border)}nav a{text-decoration:none;color:var(--accent)}nav a:hover{color:var(--accent-hover)}nav .site-title{font-weight:600;font-size:1.1rem;color:var(--text);text-decoration:none}main{grid-column:2;padding:2rem 0}footer{grid-column:2;padding:2rem 0;border-top:1px solid var(--border);color:var(--muted);font-size:.875rem}footer a{color:var(--muted)}footer a:hover{color:var(--accent)}.ms{position:relative;border-top:1px solid var(--hr);padding-top:1.5rem;margin-top:2rem}.ms h2{margin-top:0}.ms[data-section]::before{content:attr(data-section);position:absolute;right:calc(-1*(var(--margin-width) + var(--gutter)));top:0;font-family:var(--serif);font-size:.8rem;color:var(--muted);text-transform:lowercase;font-variant:small-caps;letter-spacing:.05em;font-weight:600;width:var(--margin-width)}.ms h2.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.ms[data-section=quiz] details{margin-bottom:1rem}.ms[data-section=quiz] details summary{color:var(--muted);text-decoration:underline;cursor:pointer;user-select:none}.ms[data-section=quiz] details summary:hover{color:var(--accent)}.ms[data-section=quiz] details summary::-webkit-details-marker{display:none}.ms[data-section=quiz] details p{margin:1rem 0}.plan-list{list-style:none;padding:0}.plan-list li{padding:1rem 0;border-bottom:1px solid var(--border)}.plan-list li a{font-weight:600;font-size:1.1rem;text-decoration:none}.plan-list li a:hover{color:var(--accent-hover)}.module-list{list-style:decimal;padding-left:1.5rem;counter-reset:item}.module-list li{padding:.75rem 0;margin-bottom:.25rem}.module-list li a{font-weight:400;text-decoration:none}.module-list li a:hover{color:var(--accent-hover)}.plan-context{padding:1rem 0;border-bottom:1px solid var(--border);margin-bottom:2rem;font-size:.9rem;color:var(--muted)}.plan-context a{color:var(--accent);text-decoration:none}.plan-context a:hover{color:var(--accent-hover)}.progress-dots{display:flex;gap:.5rem;align-items:center;margin:1rem 0 .5rem}.progress-dots .dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--border);cursor:pointer}.progress-dots .dot.current{background:var(--text)}.progress-dots .dot a{display:block;width:100%;height:100%;text-decoration:none}.progress-dots .dot a:hover{opacity:.7}.meta{color:var(--muted);font-size:.875rem;margin:.5rem 0}.plan-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.plan-header .learner-profile{color:var(--muted);margin:.5rem 0;font-style:italic}.plan-header .estimated-time{color:var(--muted);margin:.5rem 0}.module-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.prev-next{display:flex;flex-direction:column;gap:2rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border)}.prev-next .nav-block{padding:1.5rem;background:var(--inline-code-bg);border:1px solid var(--border);border-radius:4px;text-decoration:none}.prev-next .nav-block .nav-label{display:block;color:var(--muted);font-size:.875rem;margin-bottom:.5rem}.prev-next .nav-block .nav-title{display:block;font-weight:600;font-size:1rem;color:var(--text);margin-bottom:.25rem}.prev-next .nav-block .nav-title::after{content:" →"}.prev-next .nav-block .nav-meta{display:block;color:var(--muted);font-size:.875rem;margin-top:.5rem}.prev-next .nav-block:hover{background:var(--border)}.prev-next .back-link{color:var(--accent);text-decoration:underline}.prev-next .back-link:hover{color:var(--accent-hover)}.references{margin-top:2rem;padding:1rem;background:var(--inline-code-bg);border:1px solid var(--border);border-radius:4px}.references h2{margin-top:0;font-size:1.1rem}.references ul{margin-bottom:0}.references li{margin-bottom:.5rem}.references li a{text-decoration:none}.references li a:hover{text-decoration:underline}.begin-link{display:inline-block;margin-top:1rem;padding:.75rem 1rem;background:var(--accent);color:var(--bg);text-decoration:none;border-radius:4px;font-weight:600}.begin-link:hover{background:var(--accent-hover)}@media (max-width: 1099px){body{grid-template-columns:1fr;gap:var(--gutter);padding:0 1.5rem}nav,main,footer{grid-column:1}.ms[data-section]::before{position:static;right:auto;display:inline-block;margin-bottom:.5rem;margin-right:0;width:auto}.ms{border-top:none;padding-top:1rem;margin-top:1.5rem}.ms h2{display:inline;margin:0;font-size:1rem;font-weight:400;margin-left:.5rem}.progress-dots{justify-content:flex-start;flex-wrap:wrap}.prev-next{flex-direction:row;gap:1rem}.prev-next .nav-block{flex:1}}@media (max-width: 768px){html{font-size:15px}body{padding:0 1rem}h1{font-size:1.5rem}h2{font-size:1.2rem}.plan-list li a{font-size:1rem}.prev-next{flex-direction:column}.prev-next .nav-block{flex:auto}}