:root{color:#211922;background:#fff;font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--color-accent: #e30613;--color-accent-strong: #c9000c;--color-accent-soft: #fff2f1;--color-ink: #171714;--color-body: #383833;--color-muted: #696963;--color-subtle: #92928b;--color-border: #deded7;--color-border-soft: #ecece7;--color-canvas: #ffffff;--color-surface: #f7f7f4;--color-surface-warm: #fbf8f2;--color-focus: #2457d6;--radius-control: 16px;--radius-large: 28px;--rail-width: 338px;--support-width: 300px;--content-max: 760px;--shadow-menu: 0 20px 50px rgb(23 23 20 / 14%)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-canvas);color:var(--color-ink);-webkit-font-smoothing:antialiased}button,select,input{font:inherit}button,a,select,summary,input{outline:none}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,input:focus-visible{box-shadow:0 0 0 2px var(--color-canvas),0 0 0 5px var(--color-focus)}button{color:inherit}.skip-link{position:fixed;z-index:100;top:12px;left:12px;padding:10px 16px;border-radius:10px;background:var(--color-ink);color:#fff;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.course-shell{min-height:100vh;display:grid;grid-template-columns:var(--rail-width) minmax(0,1fr) var(--support-width)}.chapter-rail{position:fixed;z-index:20;inset:0 auto 0 0;width:var(--rail-width);display:flex;flex-direction:column;background:var(--color-surface-warm);border-right:1px solid var(--color-border)}.rail-heading{flex:0 0 auto;padding:32px 36px 20px}.eyebrow-row{min-height:32px;display:flex;align-items:center;justify-content:space-between;color:var(--color-muted);font-size:14px;font-weight:650}.rail-heading h1{max-width:250px;margin:6px 0 20px;font-size:25px;line-height:1.18;letter-spacing:-.45px}.progress-track{height:6px;overflow:hidden;border-radius:999px;background:#e6e5df}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--color-accent);transition:width .24s ease}.progress-caption{display:flex;justify-content:space-between;gap:16px;margin-top:9px;color:var(--color-muted);font-size:13px}.progress-caption strong{color:var(--color-body)}.chapter-picker{display:grid;gap:7px;padding:0 36px 18px}.chapter-picker>span{color:var(--color-muted);font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}.chapter-picker select{width:100%;min-height:42px;padding:0 38px 0 13px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-canvas);color:var(--color-ink);cursor:pointer}.section-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px 20px 18px;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.rail-group{margin-bottom:5px}.rail-group>summary{min-height:38px;display:grid;grid-template-columns:1fr auto 16px;align-items:center;gap:8px;padding:0 12px;border-radius:9px;color:var(--color-muted);font-size:11px;font-weight:800;letter-spacing:.04em;list-style:none;text-transform:uppercase;cursor:pointer}.rail-group>summary::-webkit-details-marker{display:none}.rail-group>summary:hover{background:#fff9;color:var(--color-ink)}.rail-group>summary small{font-size:11px;font-weight:700;letter-spacing:0}.rail-group>summary svg{transition:transform .16s ease}.rail-group[open]>summary svg{transform:rotate(180deg)}.rail-group-items{padding:2px 0 7px}.section-list button{position:relative;width:100%;min-height:54px;display:grid;grid-template-columns:24px 36px 1fr 18px;align-items:center;gap:9px;padding:9px 12px;border:0;border-radius:12px;background:transparent;color:var(--color-body);text-align:left;cursor:pointer}.section-list button:hover{background:#ffffffad}.section-list button.is-current{background:var(--color-accent-soft);color:var(--color-accent-strong);font-weight:700}.section-list button.is-current:before{content:"";position:absolute;top:8px;bottom:8px;left:-4px;width:4px;border-radius:999px;background:var(--color-accent)}.section-list svg{color:var(--color-subtle)}.section-list button.is-current svg,.section-list button:has(svg[weight=fill])>svg:first-child{color:var(--color-accent)}.section-number{color:var(--color-muted);font-size:13px;font-variant-numeric:tabular-nums}.section-list button.is-current .section-number{color:inherit}.section-label{overflow:hidden;display:-webkit-box;font-size:14px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}.section-caret{opacity:0}.section-list button:hover .section-caret,.section-list button.is-current .section-caret{opacity:1}.current-dot{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:var(--color-accent)}.current-dot span{width:7px;height:7px;border-radius:50%;background:#fff}.saved-status{flex:0 0 auto;display:flex;gap:12px;align-items:center;margin:0 36px;padding:18px 0 24px;border-top:1px solid var(--color-border);color:var(--color-body)}.saved-status div{display:grid;gap:2px}.saved-status strong{font-size:14px}.saved-status span{color:var(--color-muted);font-size:12px}.lesson-main{grid-column:2;min-width:0;padding:0 clamp(36px,5vw,76px) 80px}.lesson-toolbar{position:sticky;z-index:8;top:0;max-width:var(--content-max);height:76px;display:flex;align-items:center;justify-content:space-between;margin:0 auto;background:#ffffffeb;border-bottom:1px solid var(--color-border-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.lesson-toolbar>span{color:var(--color-muted);font-size:13px;font-weight:650}.back-button{min-height:42px;display:inline-flex;align-items:center;gap:7px;padding:0 11px;border:0;border-radius:10px;background:transparent;color:var(--color-accent-strong);font-weight:700;cursor:pointer}.back-button:hover:not(:disabled){background:var(--color-accent-soft)}.back-button:disabled{opacity:.35;cursor:not-allowed}.lesson-article{max-width:var(--content-max);margin:0 auto}.lesson-heading{padding:52px 0 30px}.lesson-number{display:block;margin-bottom:10px;color:var(--color-accent);font-size:14px;font-weight:800;letter-spacing:.035em}.lesson-heading h1{max-width:700px;margin:0;font-size:clamp(36px,3.1vw,52px);line-height:1.08;letter-spacing:-1.5px}.markdown-body{color:var(--color-body);font-size:17px;line-height:1.68}.markdown-body>:first-child{margin-top:0}.markdown-body h3,.markdown-body h4{color:var(--color-ink);line-height:1.25;letter-spacing:-.25px}.markdown-body h3{margin:42px 0 14px;font-size:25px}.markdown-body h4{margin:30px 0 10px;font-size:19px}.markdown-body p{margin:0 0 20px}.markdown-body ul,.markdown-body ol{margin:0 0 24px;padding-left:26px}.markdown-body li{margin:8px 0;padding-left:3px}.markdown-body li::marker{color:var(--color-accent);font-weight:700}.markdown-body strong{color:var(--color-ink)}.markdown-body a{color:#b3000a;font-weight:650;text-underline-offset:3px}.inline-code,.markdown-body :not(pre)>code{padding:2px 6px;border:1px solid #e7e1db;border-radius:7px;background:#f7f3ef;color:#7f231f;font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:.88em}.code-block{overflow:hidden;margin:24px 0 30px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:#fcfcfa}.code-toolbar{min-height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 10px 0 18px;border-bottom:1px solid var(--color-border-soft);color:var(--color-muted);font-size:12px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.code-toolbar button{min-height:36px;display:inline-flex;align-items:center;gap:7px;padding:0 10px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--color-body);font-size:13px;font-weight:700;text-transform:none;cursor:pointer}.code-toolbar button:hover{border-color:var(--color-border);background:var(--color-canvas)}.code-block pre{margin:0;overflow-x:auto;padding:20px}.code-block code{font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:14px;line-height:1.68;-moz-tab-size:4;tab-size:4;white-space:pre}.callout{display:grid;grid-template-columns:24px 1fr;gap:12px;margin:26px 0;padding:18px 20px;border:1px solid #ecdcc9;border-radius:var(--radius-control);background:var(--color-surface-warm);color:var(--color-body)}.callout>svg{margin-top:2px;color:var(--color-accent)}.callout p:last-child{margin-bottom:0}.table-scroll{max-width:100%;overflow-x:auto;margin:24px 0 30px;border:1px solid var(--color-border);border-radius:var(--radius-control)}.markdown-body table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.45}.markdown-body th,.markdown-body td{padding:13px 15px;border-bottom:1px solid var(--color-border-soft);text-align:left;vertical-align:top}.markdown-body th{background:var(--color-surface);color:var(--color-ink);font-weight:750}.markdown-body tr:last-child td{border-bottom:0}.markdown-body input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-accent)}.hint-details{margin:16px 0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-canvas)}.hint-details summary{min-height:54px;display:flex;align-items:center;gap:10px;padding:0 16px;color:var(--color-ink);font-weight:700;cursor:pointer;list-style:none}.hint-details summary::-webkit-details-marker{display:none}.hint-details summary>svg:first-child{color:var(--color-accent)}.summary-caret{margin-left:auto;transition:transform .18s ease}.hint-details[open] .summary-caret{transform:rotate(180deg)}.hint-details>:not(summary){margin-inline:18px}.reflection-card{display:grid;gap:22px;margin-top:44px;padding:26px;border:1px solid #ecdcc9;border-radius:var(--radius-control);background:var(--color-surface-warm)}.reflection-kicker{color:var(--color-accent);font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.reflection-card h2{margin:6px 0 8px;font-size:22px}.reflection-card p{margin:0;color:var(--color-muted);line-height:1.5}.reflection-card label{display:flex;align-items:center;gap:11px;color:var(--color-ink);font-weight:650;cursor:pointer}.reflection-card input{width:20px;height:20px;accent-color:var(--color-accent)}.lesson-footer{display:grid;gap:18px;margin-top:56px;padding-top:24px;border-top:1px solid var(--color-border)}.completion-status{display:flex;align-items:center;gap:9px;color:var(--color-muted);font-size:14px}.completion-status svg{color:var(--color-accent)}.primary-action{width:100%;min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 20px 12px 24px;border:0;border-radius:var(--radius-control);background:var(--color-accent);color:#fff;text-align:left;cursor:pointer;transition:background .16s ease,transform .16s ease}.primary-action:hover:not(:disabled){background:var(--color-accent-strong);transform:translateY(-1px)}.primary-action:disabled{background:var(--color-border);color:var(--color-muted);cursor:not-allowed}.primary-action span{min-width:0;overflow:hidden;display:grid;gap:2px;font-size:16px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.primary-action small{font-size:12px;font-weight:550;opacity:.85}.support-rail{position:fixed;z-index:6;inset:0 0 0 auto;width:var(--support-width);padding:70px 30px;border-left:1px solid var(--color-border-soft);background:var(--color-canvas)}.support-group{padding:0 0 24px;border-bottom:1px solid var(--color-border)}.support-group h2{margin:0 0 18px;font-size:18px}.support-group button,.support-download{width:100%;min-height:48px;display:grid;grid-template-columns:24px 1fr 16px;align-items:center;gap:9px;padding:8px;border:0;border-radius:10px;background:transparent;color:var(--color-body);text-align:left;text-decoration:none;cursor:pointer}.support-group button:hover,.support-download:hover{background:var(--color-surface)}.support-group button span,.support-download span{font-size:14px}.support-group button svg:last-child,.support-download svg:last-child{color:var(--color-subtle)}.starter-card{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:18px;margin-top:36px;padding:22px;border:1px solid #ecdcc9;border-radius:var(--radius-control);background:var(--color-surface-warm)}.starter-card-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:var(--color-accent-soft);color:var(--color-accent)}.starter-card-copy{min-width:0}.starter-kicker{color:var(--color-accent);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.starter-card h2{margin:4px 0 7px;font-size:20px;line-height:1.25;letter-spacing:-.2px}.starter-card p{margin:0;color:var(--color-muted);font-size:14px;line-height:1.5}.starter-file-list{overflow:hidden;display:block;margin-top:9px;color:var(--color-subtle);font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.starter-download-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;border-radius:12px;background:var(--color-accent);color:#fff;font-size:14px;font-weight:750;text-decoration:none;white-space:nowrap}.starter-download-button:hover{background:var(--color-accent-strong)}.study-tip{display:grid;grid-template-columns:28px 1fr;gap:12px;margin-top:24px;padding:16px;border-radius:var(--radius-control);background:var(--color-surface-warm)}.study-tip>svg{color:var(--color-accent)}.study-tip strong{font-size:14px}.study-tip p{margin:6px 0 0;color:var(--color-muted);font-size:13px;line-height:1.5}.icon-button{width:42px;height:42px;display:inline-grid;place-items:center;padding:0;border:0;border-radius:12px;background:transparent;cursor:pointer}.icon-button:hover{background:var(--color-surface)}.rail-close,.rail-scrim,.mobile-header{display:none}@media(max-width:1180px){:root{--support-width: 0px}.course-shell{grid-template-columns:var(--rail-width) minmax(0,1fr)}.support-rail{display:none}}@media(max-width:860px){.course-shell{display:block;padding-top:64px}.mobile-header{position:fixed;z-index:15;inset:0 0 auto;height:64px;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--color-border);background:#fffffff0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.mobile-header>div{min-width:0;display:grid}.mobile-header span{color:var(--color-muted);font-size:11px}.mobile-header strong{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.mobile-step{font-weight:700}.chapter-rail{width:min(88vw,360px);transform:translate(-105%);box-shadow:var(--shadow-menu);transition:transform .22s ease}.chapter-rail.is-open{transform:translate(0)}.rail-close{display:inline-grid}.rail-scrim{position:fixed;z-index:19;top:0;right:0;bottom:0;left:0;border:0;background:#17171470;opacity:0;pointer-events:none;transition:opacity .18s ease}.rail-scrim.is-visible{display:block;opacity:1;pointer-events:auto}.lesson-main{padding-inline:clamp(20px,7vw,54px)}.lesson-toolbar{top:64px;height:58px}.lesson-heading{padding-top:40px}}@media(max-width:560px){.mobile-header{padding-inline:12px}.lesson-main{padding:0 18px 52px}.lesson-toolbar>span{display:none}.lesson-heading{padding:34px 0 24px}.lesson-heading h1{font-size:34px;letter-spacing:-.9px}.markdown-body{font-size:16px;line-height:1.62}.markdown-body h3{font-size:22px}.code-block pre{padding:16px}.code-toolbar{padding-left:14px}.code-toolbar button{font-size:0}.code-toolbar button svg{width:19px;height:19px}.primary-action{padding-inline:18px}.primary-action span{font-size:14px}.starter-card{grid-template-columns:44px 1fr;padding:18px}.starter-card-icon{width:44px;height:44px}.starter-card-copy{align-self:center}.starter-download-button{grid-column:1 / -1;width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
