: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%);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--resize-dur: .3s;--resize-ease: cubic-bezier(.22, 1, .36, 1);--digit-dur: .5s;--digit-distance: 8px;--digit-stagger: 70ms;--digit-blur: 2px;--digit-ease: cubic-bezier(.34, 1.45, .64, 1);--digit-dir-x: 0;--digit-dir-y: 1;--badge-slide-dur: .26s;--badge-pop-dur: .5s;--badge-pop-close-dur: .18s;--badge-fade-dur: .4s;--badge-fade-close-dur: .18s;--badge-blur: 2px;--badge-offset-x: -8.2px;--badge-offset-y: 12.4px;--badge-slide-ease: cubic-bezier(.22, 1, .36, 1);--badge-pop-ease: cubic-bezier(.34, 1.36, .64, 1);--badge-close-ease: cubic-bezier(.4, 0, .2, 1);--text-swap-dur: .2s;--text-swap-translate-y: 8px;--text-swap-blur: 2px;--text-swap-ease: ease-out;--dropdown-open-dur: .25s;--dropdown-close-dur: .15s;--dropdown-pre-scale: .97;--dropdown-closing-scale: .99;--dropdown-ease: cubic-bezier(.22, 1, .36, 1);--modal-open-dur: .25s;--modal-close-dur: .15s;--modal-scale: .96;--modal-scale-close: .96;--modal-ease: cubic-bezier(.22, 1, .36, 1);--panel-open-dur: .4s;--panel-close-dur: .35s;--panel-translate-y: 100px;--panel-blur: 2px;--panel-ease: cubic-bezier(.22, 1, .36, 1);--page-slide-dur: .2s;--page-fade-dur: .2s;--page-slide-distance: 8px;--page-blur: 3px;--page-stagger: 0ms;--page-exit-enabled: 1;--page-slide-ease: cubic-bezier(.22, 1, .36, 1);--page-fade-ease: cubic-bezier(.22, 1, .36, 1);--icon-swap-dur: .2s;--icon-swap-blur: 2px;--icon-swap-start-scale: .25;--icon-swap-ease: ease-in-out;--check-opacity-dur: .55s;--check-rotate-dur: .55s;--check-rotate-from: 80deg;--check-bob-dur: .45s;--check-y-amount: 40px;--check-blur-dur: .5s;--check-blur-from: 10px;--check-path-dur: .55s;--check-path-delay: 80ms;--check-ease-out: cubic-bezier(.22, 1, .36, 1);--check-ease-opacity: cubic-bezier(.22, 1, .36, 1);--check-ease-rotate: cubic-bezier(.22, 1, .36, 1);--check-ease-bob: cubic-bezier(.34, 1.35, .64, 1);--check-ease-path: cubic-bezier(.22, 1, .36, 1);--avatar-lift: -4px;--avatar-dur: .32s;--avatar-scale: 1.05;--avatar-falloff: .45;--avatar-ease-in: cubic-bezier(.22, 1, .36, 1);--avatar-ease-out: cubic-bezier(.34, 3.85, .64, 1);--shake-distance: 6px;--shake-overshoot: 4px;--shake-dur-a: 80ms;--shake-dur-b: 60ms;--shake-ease: cubic-bezier(.22, 1, .36, 1);--revert-hold: 3s;--revert-dur: .28s;--duration-exit: .15s;--duration-enter: .21s;--duration-move: .4s;--ease-settle: cubic-bezier(.22, 1, .36, 1)}@keyframes fade{0%{filter:blur(3px);opacity:0}to{filter:blur(0);opacity:1}}@keyframes slide{0%{translate:var(--slide-offset)}to{translate:0}}@keyframes zoom{0%{scale:var(--zoom-from)}to{scale:1}}*{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 .22s var(--ease-out)}.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 small{font-size:11px;font-weight:700;letter-spacing:0}.rail-group>summary svg{transition:transform .16s var(--ease-out)}.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.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;transform:translate(-3px);transition:opacity .14s ease,transform .16s var(--ease-out)}.section-list button.is-current .section-caret{opacity:1;transform:translate(0)}.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-copy{display:grid;gap:2px}.saved-status strong{font-size:14px}.saved-status span{color:var(--color-muted);font-size:12px}.settings-menu{position:relative;margin-left:auto}.settings-trigger{width:36px;height:36px;color:var(--color-muted);transition:background var(--dropdown-close-dur) var(--dropdown-ease),color var(--dropdown-close-dur) var(--dropdown-ease)}.settings-trigger:hover,.settings-trigger[aria-expanded=true]{background:var(--color-border-soft);color:var(--color-ink)}.settings-popover{position:absolute;right:0;bottom:calc(100% + 8px);z-index:30;width:244px;padding:6px;display:grid;gap:2px;background:var(--color-canvas);border:1px solid var(--color-border);border-radius:14px;box-shadow:var(--shadow-menu);transform-origin:bottom right;animation:var(--dropdown-open-dur) var(--dropdown-ease) both settings-popover-in}@keyframes settings-popover-in{0%{opacity:0;scale:var(--dropdown-pre-scale);translate:0 4px}to{opacity:1;scale:1;translate:0 0}}.settings-item{width:100%;display:flex;gap:10px;align-items:center;padding:9px 10px;border:0;border-radius:10px;background:transparent;color:var(--color-body);text-align:left;cursor:pointer}.settings-item:hover:not(:disabled){background:var(--color-surface)}.settings-item:disabled{cursor:default;opacity:.55}.settings-item-copy{display:grid;gap:1px}.settings-item-copy strong{font-size:13px;font-weight:600}.settings-item-copy span{color:var(--color-muted);font-size:11px}.settings-item.is-destructive{color:var(--color-accent-strong)}.settings-item.is-destructive .settings-item-copy span{color:var(--color-muted)}.settings-item.is-destructive:hover{background:var(--color-accent-soft)}.settings-divider{height:1px;margin:4px 6px;background:var(--color-border-soft)}.confirm-dialog{width:min(420px,calc(100vw - 40px));padding:26px 26px 22px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-canvas);color:var(--color-body);box-shadow:var(--shadow-menu)}.confirm-dialog[open]{animation:var(--modal-open-dur) var(--modal-ease) both confirm-dialog-in}.confirm-dialog::backdrop{background:#17171461;animation:var(--modal-open-dur) var(--modal-ease) both confirm-backdrop-in}@keyframes confirm-dialog-in{0%{opacity:0;scale:var(--modal-scale)}to{opacity:1;scale:1}}@keyframes confirm-backdrop-in{0%{opacity:0}to{opacity:1}}.confirm-dialog h2{margin:0 0 10px;color:var(--color-ink);font-size:19px}.confirm-dialog p{margin:0 0 22px;font-size:14px;line-height:1.55}.confirm-dialog-actions{display:flex;gap:10px;justify-content:flex-end}.confirm-cancel,.confirm-destructive{padding:10px 18px;border-radius:12px;font-size:14px;font-weight:600;cursor:pointer}.confirm-cancel{border:1px solid var(--color-border);background:var(--color-canvas);color:var(--color-body)}.confirm-cancel:hover{background:var(--color-surface)}.confirm-destructive{border:1px solid var(--color-accent-strong);background:var(--color-accent-strong);color:#fff}.confirm-destructive:hover{background:var(--color-accent);border-color:var(--color-accent)}@keyframes t-digit-pop-in{0%{transform:translate(calc(var(--digit-distance) * var(--digit-dir-x)),calc(var(--digit-distance) * var(--digit-dir-y)));opacity:0;filter:blur(var(--digit-blur))}to{transform:translate(0);opacity:1;filter:blur(0)}}.t-digit-group{display:inline-flex;align-items:baseline}.t-digit{display:inline-block;will-change:transform,opacity,filter}.t-digit-group.is-animating .t-digit{animation:t-digit-pop-in var(--digit-dur) var(--digit-ease) both}.t-digit-group.is-animating .t-digit[data-stagger="1"]{animation-delay:var(--digit-stagger)}.t-digit-group.is-animating .t-digit[data-stagger="2"]{animation-delay:calc(var(--digit-stagger) * 2)}@media(prefers-reduced-motion:reduce){.t-digit-group .t-digit{animation:none!important}}.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: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}.t-icon-swap{position:relative;display:inline-grid}.t-icon-swap .t-icon{grid-area:1 / 1;transition:opacity var(--icon-swap-dur) var(--icon-swap-ease),filter var(--icon-swap-dur) var(--icon-swap-ease),transform var(--icon-swap-dur) var(--icon-swap-ease);will-change:opacity,filter,transform}.t-icon-swap[data-state=a] .t-icon[data-icon=a],.t-icon-swap[data-state=b] .t-icon[data-icon=b]{opacity:1;filter:blur(0);transform:scale(1)}.t-icon-swap[data-state=a] .t-icon[data-icon=b],.t-icon-swap[data-state=b] .t-icon[data-icon=a]{opacity:0;filter:blur(var(--icon-swap-blur));transform:scale(var(--icon-swap-start-scale))}@media(prefers-reduced-motion:reduce){.t-icon-swap .t-icon{transition:none!important}}.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(--callout-accent, var(--color-accent))}.callout p:last-child{margin-bottom:0}.callout-warning{border-color:#e6cd88;background:#fdf6e3;--callout-accent: #ad7d17}.callout-error{border-color:#e8b3a7;background:#fbeae5;--callout-accent: #bd4329}.callout-tip{border-color:#bbdcc0;background:#eef8ef;--callout-accent: #2c8a4a}.callout-think{border-color:#c5d0ee;background:#eef1fb;--callout-accent: #3a56b8}.callout-security{border-color:#bdd4c9;background:#edf5f0;--callout-accent: #2c7a5f}.callout-pause{border-color:#d8ccbc;background:#f5efe7;--callout-accent: #86673d}.callout-figure{border-color:#cfcbe0;background:#f1f0f8;--callout-accent: #5a53a6}.preview-note{margin:4px 0 0;padding:10px 12px;border:1px dashed var(--color-border);border-radius:var(--radius-control);color:var(--color-muted);font-size:12.5px;line-height:1.5}.preview-end-note{margin:18px 0 0;padding:14px 16px;border:1px dashed var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-warm);color:var(--color-muted);font-size:13.5px;line-height:1.55}.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 var(--ease-out)}.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 var(--ease-out)}.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 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-actions{display:grid;gap:10px}.starter-download-button.is-secondary{border:1px solid var(--color-accent);background:transparent;color: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}.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 var(--ease-out)}.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(hover:hover)and (pointer:fine){.rail-group>summary:hover{background:#fff9;color:var(--color-ink)}.section-list button:hover{background:#ffffffad}.section-list button:hover .section-caret{opacity:1;transform:translate(0)}.back-button:hover:not(:disabled){background:var(--color-accent-soft)}.code-toolbar button:hover{border-color:var(--color-border);background:var(--color-canvas)}.primary-action:hover:not(:disabled){background:var(--color-accent-strong);transform:translateY(-1px)}.support-group button:hover,.support-download:hover,.icon-button:hover{background:var(--color-surface)}.starter-download-button:hover{background:var(--color-accent-strong)}.starter-download-button.is-secondary:hover{background:var(--color-accent-soft)}}button:not(:disabled):active,.support-download:active,.starter-download-button:active{transform:scale(.97)}.primary-action:not(:disabled):active{transform:scale(.97)}@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-actions,.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}}::view-transition-old(.nav-forward){--slide-offset: -60px;animation:var(--duration-exit) ease-in both fade reverse,var(--duration-move) ease-in-out both slide reverse}::view-transition-new(.nav-forward){--slide-offset: 60px;animation:var(--duration-enter) ease-out var(--duration-exit) both fade,var(--duration-move) ease-in-out both slide}::view-transition-old(.nav-back){--slide-offset: 60px;animation:var(--duration-exit) ease-in both fade reverse,var(--duration-move) ease-in-out both slide reverse}::view-transition-new(.nav-back){--slide-offset: -60px;animation:var(--duration-enter) ease-out var(--duration-exit) both fade,var(--duration-move) ease-in-out both slide}::view-transition-old(.chapter-out){--zoom-from: .97;animation:var(--duration-exit) ease-in both fade reverse,var(--duration-exit) ease-in both zoom reverse}::view-transition-new(.chapter-in){--zoom-from: .94;animation:var(--duration-enter) ease-out var(--duration-exit) both fade,var(--duration-move) var(--ease-settle) var(--duration-exit) both zoom}::view-transition-group(persistent-rail),::view-transition-group(persistent-scrim),::view-transition-group(persistent-header),::view-transition-group(persistent-toolbar),::view-transition-group(persistent-support),::view-transition-group(root){animation:none}@media(prefers-reduced-motion:reduce){::view-transition-old(*),::view-transition-new(*),::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}}
