/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:Carlito, Calibri, system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-heading:Montserrat, system-ui, sans-serif}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:#faf7f3;--color-base-200:#fff;--color-base-300:#d9d9d9;--color-base-content:#1a1d21;--color-primary:#e93cac;--color-primary-content:#1a1d21;--color-secondary:#2ad2c9;--color-secondary-content:#1a1d21;--color-accent:#aa6db5;--color-accent-content:#000;--color-neutral:#1a1d21;--color-neutral-content:#faf7f3;--color-info:#ad217b;--color-info-content:#faf7f3;--color-success:#297044;--color-success-content:#faf7f3;--color-warning:#8a5300;--color-warning-content:#faf7f3;--color-error:#a33231;--color-error-content:#faf7f3;--radius-selector:.25rem;--radius-field:.375rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:#1a1d21;--color-base-200:#24272c;--color-base-300:#4c5057;--color-base-content:#faf7f3;--color-primary:#e93cac;--color-primary-content:#1a1d21;--color-secondary:#2ad2c9;--color-secondary-content:#1a1d21;--color-accent:#aa6db5;--color-accent-content:#000;--color-neutral:#111316;--color-neutral-content:#faf7f3;--color-info:#2ad2c9;--color-info-content:#1a1d21;--color-success:#a1d2b1;--color-success-content:#1a1d21;--color-warning:#f0c789;--color-warning-content:#1a1d21;--color-error:#f3aaa6;--color-error-content:#1a1d21;--radius-selector:.25rem;--radius-field:.375rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:0;--noise:0}}@layer components;@layer utilities{@layer daisyui.l1.l2.l3{:where(.btn){width:unset}.btn{--size:calc(var(--size-field,.25rem) * 10);--btn-p:1rem;--btn-fg:var(--color-base-content);cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;border-width:var(--border);touch-action:manipulation;--btn-bg:var(--btn-color,var(--color-base-200));--btn-border:var(--btn-color,var(--color-base-200));border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow,transform;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@supports (color:color-mix(in lab, red, red)){.btn{--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 calc(var(--depth) * 5%))}}.btn{--btn-soft-bg:initial;--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}.btn{--btn-inset:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%));height:var(--size);padding-inline:var(--btn-p);font-size:var(--fontsize,.875rem);background-color:var(--btn-bg);color:var(--btn-fg);border-color:var(--btn-border);border-style:var(--btn-border-style,solid);outline-color:var(--btn-color,var(--color-base-content));--tw-prose-links:var(--btn-fg);background-image:none, var(--fx-noise);background-size:auto, calc(var(--noise,0) * 100%);text-shadow:0 .5px oklch(100% 0 0 / calc(var(--depth) * .15));box-shadow:var(--btn-inset) inset, var(--btn-shadow)}.btn:is([type=checkbox],[type=radio]){appearance:none}.btn:is([type=checkbox],[type=radio])[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}.btn:where(:checked:not(.filter [type=radio].btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border) solid var(--badge-color,var(--color-base-200));background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem) * 6);width:fit-content;height:var(--size);padding-inline:calc(var(--size) / 2 - var(--border));flex-shrink:0;justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}}@layer daisyui.l1{@media (hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn:hover{color:var(--btn-fg);--btn-border:var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))}}.btn:hover{--btn-border-style:solid;--btn-inset:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%));--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}}.btn:active:not(.btn-active,[aria-pressed=true],[aria-checked=true],[aria-current]:not([aria-current=false],[aria-current=""])){--btn-bg:var(--btn-color,var(--color-base-200));translate:0 .5px}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active,[aria-pressed=true],[aria-checked=true],[aria-current]:not([aria-current=false],[aria-current=""])){--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 5%)}}.btn:active:not(.btn-active,[aria-pressed=true],[aria-checked=true],[aria-current]:not([aria-current=false],[aria-current=""])){color:var(--btn-fg,var(--color-base-content));--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active,[aria-pressed=true],[aria-checked=true],[aria-current]:not([aria-current=false],[aria-current=""])){--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn:active:not(.btn-active,[aria-pressed=true],[aria-checked=true],[aria-current]:not([aria-current=false],[aria-current=""])){--btn-border-style:solid;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0)}.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-bg:var(--btn-color,var(--color-base-200));color:var(--btn-fg,var(--color-base-content));--btn-border:var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))}}.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-border-style:solid;--btn-inset:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%));--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}.btn:where(:checked:not(.filter [type=radio].btn),:not([type=radio],[type=checkbox]):focus-visible){isolation:isolate}.btn:focus-visible,.btn:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}}@layer daisyui.l1.l2{.btn:is([aria-pressed=true],[aria-checked=true],[aria-current]:not([aria-current=false],[aria-current=""])){--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:is([aria-pressed=true],[aria-checked=true],[aria-current]:not([aria-current=false],[aria-current=""])){--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 5%)}}.btn:is([aria-pressed=true],[aria-checked=true],[aria-current]:not([aria-current=false],[aria-current=""])){color:var(--btn-fg,var(--color-base-content));--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:is([aria-pressed=true],[aria-checked=true],[aria-current]:not([aria-current=false],[aria-current=""])){--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn:is([aria-pressed=true],[aria-checked=true],[aria-current]:not([aria-current=false],[aria-current=""])){--btn-border-style:solid;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0);isolation:isolate}.badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);--btn-soft-bg:initial}}@layer daisyui{.btn:is(.btn-disabled,:disabled,[disabled],[aria-disabled=true]){pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn:is(.btn-disabled,:disabled,[disabled],[aria-disabled=true]){color:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.btn:is(.btn-disabled,:disabled,[disabled],[aria-disabled=true]){--btn-bg:#0000;--btn-border:#0000;--btn-inset:0 0 0 0 oklch(0% 0 0/0);--btn-shadow:0 0 0 0 oklch(0% 0 0/0);background-image:none}.btn:is(.btn-disabled,:disabled,[disabled],[aria-disabled=true]):not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn:is(.btn-disabled,:disabled,[disabled],[aria-disabled=true]):not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.contents{display:contents}.hidden{display:none}.table{display:table}.prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}@font-face{font-family:Carlito;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ae9dedbe6afb9f38.woff2)format("woff2")}@font-face{font-family:Carlito;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/171427d1a6536383.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/b0c618f6d8ea9968.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/1a6844598cfc2dfd.woff2)format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/96cf68ad83894061.woff2)format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/efae703531c89eeb.woff2)format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/bcc2c8b38b3be4ef.woff2)format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/b6b3e4f2bbe4463d.woff2)format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/b931b96dad931f35.woff2)format("woff2")}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}:root{--brand-link:#ad217b;--text-muted:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:root{--text-muted:color-mix(in srgb,var(--color-base-content) 73%,var(--color-base-100))}}:root{--code-bg:#1a1d21;--code-text:#faf7f3}[data-theme=dark]{--brand-link:var(--color-primary)}*{box-sizing:border-box}html{scroll-padding-top:100px}body{background:var(--color-base-100);color:var(--color-base-content);-webkit-font-smoothing:antialiased;margin:0;font-size:18px;line-height:1.55}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}a{color:inherit}button,a{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--color-primary);outline-offset:4px}[hidden]{display:none!important}.btn{min-height:44px;font:600 12px/1.4 var(--font-heading);box-shadow:none;color:var(--btn-fg);padding-inline:18px}.btn svg{flex-shrink:0}.badge{height:auto;min-height:26px;font:500 11px/1.4 var(--font-heading);white-space:nowrap;padding:3px 10px}.badge-ghost{background:var(--color-base-200);color:var(--text-muted)}.badge-outline{border-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.badge-outline{border-color:color-mix(in srgb,var(--color-success) 35%,var(--color-base-100))}}.badge-outline{color:var(--color-success)}.skip-link{z-index:50;background:var(--color-primary);color:var(--color-primary-content);padding:12px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:8px}.site-header{border-bottom:1px solid var(--color-base-300);justify-content:space-between;align-items:center;gap:24px;min-height:88px;padding:18px max(32px,50vw - 640px);display:flex}.brand{white-space:nowrap;align-items:center;gap:18px;text-decoration:none;display:flex}.brand-logo{width:252px;display:block}.brand-logo img{width:100%;height:auto;display:block}.brand-logo .brand-logo-dark,[data-theme=dark] .brand-logo-light{display:none}[data-theme=dark] .brand-logo .brand-logo-dark{display:block}.brand-divider{background:var(--color-base-300);width:1px;height:25px}.brand-course{font:600 12px/1.3 var(--font-mono);letter-spacing:1.4px}.site-header nav{font:500 12px/1.4 var(--font-heading);align-items:center;gap:26px;display:flex}.site-header nav>a{padding-block:12px;text-decoration:none}.site-header nav>a:hover,.site-header nav>a[aria-current]{color:var(--brand-link);text-underline-offset:6px;text-decoration:underline}.theme-toggle{border-color:var(--color-base-300);background:0 0;padding-inline:12px;font-size:11px}.account{align-items:center;gap:12px;display:flex}.account:empty{display:none}.account button{cursor:pointer;background:0 0;border:0;min-height:44px;text-decoration:underline}.home{max-width:1280px;margin:auto;padding:0 40px}.course-intro{grid-template-columns:minmax(0,1fr) 340px;align-items:center;gap:70px;padding:76px 0 64px;display:grid}.eyebrow{font:500 11px/1.5 var(--font-mono);letter-spacing:1.7px;color:var(--text-muted);margin:0 0 22px}h1,h2,h3{font-family:var(--font-heading)}.course-intro h1{letter-spacing:-1.8px;margin:0 0 25px;font-size:clamp(30px,3.2vw,47px);font-weight:600;line-height:1.22}h1 em{color:var(--color-primary);font-style:normal}.intro-copy{max-width:550px;color:var(--text-muted);margin:0 0 30px;font-size:20px;line-height:1.55}.start-course{gap:24px;min-height:50px}.save-note{color:var(--text-muted);margin:14px 0 0;font-size:14px}.course-map{border-left:2px solid var(--color-secondary);background:var(--color-base-200);padding:28px 28px 0}.map-caption{font:500 10px/1.5 var(--font-mono);letter-spacing:1px;margin-bottom:20px;display:block}.map-stage{border-bottom:1px solid var(--color-base-300);grid-template-columns:32px 1fr auto;align-items:center;gap:10px;padding:15px 0;display:grid}.map-stage>span,.map-stage>small{font:400 11px var(--font-mono);color:var(--text-muted)}.map-stage strong{font:500 15px var(--font-heading)}.map-release{justify-content:space-between;align-items:center;gap:10px;padding:23px 0;display:flex}.map-release>span{font:400 10px var(--font-mono)}.map-release strong{font:500 13px var(--font-mono);align-items:center;gap:8px;display:flex}.course-facts{border-block:1px solid var(--color-base-300);color:var(--text-muted);flex-wrap:wrap;gap:28px 48px;padding:24px 0;font-size:16px;display:flex}.course-facts strong{font:600 17px var(--font-heading);color:var(--color-base-content);margin-right:6px}.curriculum{padding:64px 0}.curriculum-heading{justify-content:space-between;align-items:end;gap:32px;margin-bottom:48px;display:flex}.curriculum-heading .eyebrow{margin-bottom:10px}.curriculum-heading h2,.preparation h2{letter-spacing:-.8px;margin:0 0 10px;font-size:30px;font-weight:600;line-height:1.3}.curriculum-heading p:not(.eyebrow){color:var(--text-muted);margin:0}.search{flex-shrink:0;width:280px}.search>span{font:500 11px var(--font-heading);margin-bottom:10px;display:block}.search input{border:1px solid var(--color-base-300);border-radius:var(--radius-field);background:var(--color-base-100);width:100%;min-height:44px;padding:10px 14px;font-size:16px}.search input::placeholder{color:var(--text-muted)}.search-result:empty{display:none}.search-result{margin-bottom:20px;font-size:16px}.theme-group{margin-bottom:40px}.theme-heading{border-bottom:1px solid var(--color-base-300);align-items:center;gap:14px;padding-bottom:16px;display:flex}.theme-tag{font:500 12px var(--font-mono);color:var(--text-muted)}.theme-heading h2{margin:0;font-size:20px;font-weight:600}.theme-heading>span:last-child{color:var(--text-muted);font:400 11px var(--font-mono);margin-left:auto}.session-row{border-bottom:1px solid var(--color-base-300);align-items:start;gap:24px;padding:27px 12px 27px 0;text-decoration:none;transition:background-color .15s;display:flex}.session-row:hover{background:var(--color-base-200)}.session-number{font:400 15px var(--font-mono);color:var(--text-muted);min-width:30px;padding-top:3px}.session-info{flex:1;min-width:0}.session-meta{font:400 11px var(--font-mono);color:var(--text-muted)}.session-meta>span{margin-inline:4px}.session-info h3{letter-spacing:-.3px;margin:7px 0;font-size:19px;font-weight:600;line-height:1.4}.session-info p{color:var(--text-muted);max-width:720px;margin:0;font-size:17px;line-height:1.5}.session-end{align-items:center;gap:24px;padding-top:30px;display:flex}.session-progress{color:var(--color-success);font-size:13px}.session-progress:empty{display:none}.preparation{background:var(--color-base-200);justify-content:space-between;align-items:center;gap:40px;margin-bottom:64px;padding:40px;display:flex}.preparation .eyebrow{margin-bottom:12px}.preparation p:last-child{color:var(--text-muted);max-width:660px;margin:0}.preparation>a{flex-shrink:0}.site-footer{border-top:1px solid var(--color-base-300);max-width:1280px;color:var(--text-muted);justify-content:space-between;gap:30px;margin:auto;padding:32px 40px;font-size:14px;display:flex}.site-footer>div>span{font-family:var(--font-heading);color:var(--color-base-content);font-weight:600}.site-footer p{margin:6px 0 0}.footer-links{align-items:center;gap:30px;display:flex}.footer-links a{align-items:center;gap:6px;text-decoration:none;display:flex}.footer-links img{object-fit:contain;filter:brightness(0);opacity:.7}[data-theme=dark] .footer-links img{filter:brightness(0)invert()}.lesson-layout{grid-template-columns:275px minmax(0,1fr);align-items:start;gap:64px;max-width:1440px;margin:auto;padding:36px 40px 70px;display:grid}.lesson-sidebar{scrollbar-width:thin;max-height:calc(100dvh - 48px);padding:0 15px 20px 0;position:sticky;top:24px;overflow:auto}.back-course{color:var(--text-muted);margin-bottom:35px;padding-block:6px;font-size:14px;text-decoration:none;display:inline-block}.lesson-sidebar .eyebrow{margin-bottom:12px;font-size:10px}.lesson-sidebar h2{letter-spacing:-.5px;margin:0 0 16px;font-size:21px;font-weight:600;line-height:1.4}.lesson-progress{font:400 12px var(--font-mono);color:var(--text-muted);margin-top:24px}progress{appearance:none;background:var(--color-base-300);border:none;width:100%;height:4px;margin-top:12px;display:block}progress::-webkit-progress-bar{background:var(--color-base-300)}progress::-webkit-progress-value{background:var(--color-success)}progress::-moz-progress-bar{background:var(--color-success)}.lesson-index{margin-top:28px}.lesson-index summary{font:600 12px var(--font-heading);cursor:pointer;align-items:center;gap:12px;min-height:44px;display:flex}.lesson-index summary:after{content:"−";margin-left:auto}.lesson-index:not([open]) summary:after{content:"+"}.lesson-index nav{flex-direction:column;display:flex}.lesson-index nav a{border-left:2px solid #0000;align-items:baseline;gap:10px;min-height:44px;padding:11px 10px;font-size:15px;line-height:1.4;text-decoration:none;display:flex}.lesson-index nav a:hover{background:var(--color-base-200)}.lesson-index nav a[aria-current]{background:var(--color-base-200);border-color:var(--color-primary);color:var(--brand-link)}.index-number{font:400 10px var(--font-mono);color:var(--text-muted)}.step-check{color:var(--color-success);margin-left:auto}.sidebar-resources{border-top:1px solid var(--color-base-300);flex-direction:column;margin-top:25px;padding-top:16px;font-size:14px;display:flex}.sidebar-resources a{padding-block:8px}.reader{min-width:0;max-width:900px}.reader-toolbar{border-bottom:1px solid var(--color-base-300);justify-content:space-between;align-items:center;gap:16px;margin-bottom:34px;padding-bottom:28px;display:flex}.reader-toolbar .btn{font-size:11px}.view-toggle[aria-pressed=true]{border-color:var(--color-primary)}.reader-position{color:var(--text-muted);font:400 11px var(--font-mono);margin-left:auto}.prose{overflow-wrap:anywhere;font-size:19px;line-height:1.7}.prose h1{letter-spacing:-1px;margin:0 0 28px;font-size:clamp(28px,2.6vw,38px);font-weight:600;line-height:1.25}.prose h2{letter-spacing:-.5px;margin:16px 0 20px;font-size:26px;font-weight:600;line-height:1.4}.prose h3{margin:32px 0 16px;font-size:21px;font-weight:600;line-height:1.4}.prose h4{margin:24px 0 14px;font-size:18px;font-weight:600}.prose p{margin:0 0 20px}.prose strong{font-weight:700}.prose a{color:var(--brand-link);text-underline-offset:3px;text-decoration:underline}.prose .heading-link{font:400 .65em var(--font-mono);opacity:0;margin-left:12px;text-decoration:none}.prose :is(h1,h2,h3,h4):hover .heading-link,.heading-link:focus-visible{opacity:1}.prose ul{margin:16px 0 24px;padding-left:26px;list-style:outside}.prose ol{margin:16px 0 24px;padding-left:26px;list-style:decimal}.prose li{margin-block:6px;padding-left:4px}.prose li :is(ul,ol){margin-block:8px}.prose blockquote{background:var(--color-base-200);border-left:3px solid var(--color-primary);color:var(--text-muted);margin:24px 0;padding:18px 24px;font-size:18px}.prose blockquote p:last-child{margin-bottom:0}.prose hr{border:none;border-top:1px solid var(--color-base-300);margin:32px 0}.prose :not(pre)>code{font:400 .76em/1.5 var(--font-mono);background:var(--color-base-200);border-radius:3px;padding:2px 5px}.code-block{background:var(--code-bg);color:var(--code-text);border-radius:6px;margin:24px 0;overflow:hidden}.code-toolbar{font:400 11px var(--font-mono);color:#d9d9d9;justify-content:space-between;align-items:center;padding:8px 12px 4px 22px;display:flex}.copy-code{color:#faf7f3;background:0 0;border-color:#69727d;height:36px;min-height:36px;padding-inline:12px;font-size:10px}.copy-code:hover{background:#34383e}.code-block pre{overscroll-behavior-x:contain;margin:0;padding:16px 22px 24px;overflow-x:auto}.code-block code.hljs{font:400 12px/1.8 var(--font-mono);white-space:pre;background:0 0;padding:0;display:block}.table-scroll{overscroll-behavior-x:contain;margin:24px 0;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;font-size:16px;line-height:1.5}.prose th{text-align:left;background:var(--color-base-200);font-weight:700}.prose td,.prose th{border-bottom:1px solid var(--color-base-300);vertical-align:top;min-width:120px;padding:12px 15px}.guide-section{border-bottom:1px solid var(--color-base-300);margin-bottom:30px;padding-bottom:30px;scroll-margin-top:28px}.completion{width:fit-content;min-height:44px;color:var(--text-muted);cursor:pointer;align-items:center;gap:12px;margin-top:32px;font-size:15px;display:flex}.completion input{accent-color:var(--color-success);width:19px;height:19px}.completion input:disabled{cursor:wait}.step-navigation{background:var(--color-base-100);border-top:1px solid var(--color-base-300);justify-content:space-between;gap:16px;padding:18px 0;display:flex;position:sticky;bottom:0}.session-navigation{justify-content:space-between;gap:30px;padding:24px 0 10px;font-size:16px;display:flex}.session-navigation a{max-width:46%;text-decoration:none}.session-navigation a:last-child{text-align:right}.session-navigation small{color:var(--text-muted);font:500 10px var(--font-heading);margin-bottom:5px;display:block}.login-page{max-width:760px;min-height:calc(100dvh - 220px);margin:auto;padding:90px 40px 110px}.login-page h1,.not-found h1{font:600 clamp(32px,4.5vw,52px)/1.25 var(--font-heading);letter-spacing:-1.5px;margin:0 0 26px}.login-page>p:not(.eyebrow){color:var(--text-muted);max-width:510px;font-size:20px}.login-page .btn{gap:20px;margin:14px 0}.login-page .login-note{margin-top:25px;font-size:15px!important}.login-page #login-status{font-size:16px}.not-found{max-width:900px;min-height:60dvh;margin:auto;padding:90px 40px}.sync-error{color:var(--color-error);border:1px solid var(--color-error);margin:0 0 22px;padding:14px 18px;font-size:16px}.sync-error button{margin-left:12px;display:inline-flex}@media (min-width:1000px){.lesson-index summary{pointer-events:none}}@media (max-width:1100px){.site-header{padding-inline:28px}.course-intro{grid-template-columns:minmax(0,1fr) 300px;gap:36px}.course-map{padding-inline:22px}.lesson-layout{grid-template-columns:240px minmax(0,1fr);gap:32px;padding-inline:28px}.session-end{gap:14px}.session-progress{display:none}.site-header nav{gap:16px}}@media (max-width:850px){.site-header{flex-wrap:wrap;gap:15px;padding:18px 24px}.site-header nav{justify-content:flex-start;gap:22px;width:100%}.site-header .theme-toggle{margin-left:auto}.course-intro{grid-template-columns:1fr;gap:36px;padding-top:45px}.course-map{display:none}.course-intro h1{font-size:38px}.course-facts{gap:16px 26px}.home{padding-inline:24px}.lesson-layout{padding:22px 24px 40px;display:block}.lesson-sidebar{max-height:none;margin-bottom:30px;padding:0;position:static}.back-course{margin-bottom:18px}.lesson-sidebar h2{margin-right:15px;font-size:24px;display:inline-block}.lesson-progress{margin-top:15px}.lesson-index{border-bottom:1px solid var(--color-base-300);margin-top:14px;padding-bottom:12px}.lesson-index nav{max-height:45dvh;overflow:auto}.sidebar-resources{display:none}.reader{max-width:none}.footer-links{gap:20px}.site-footer{padding-inline:24px}.session-end{padding-top:24px}.session-number{min-width:25px}}@media (max-width:600px){body{font-size:17px}.brand-logo{width:210px}.brand{gap:14px}.brand-course{font-size:11px}.site-header nav{flex-wrap:wrap;gap:16px;font-size:10px}.theme-toggle{min-height:40px;font-size:10px}.account{justify-content:space-between;width:100%}.account:empty{display:none}.home{padding-inline:22px}.course-intro{padding-bottom:36px}.course-intro h1{letter-spacing:-1.1px;font-size:30px}.intro-copy{font-size:18px}.course-facts{grid-template-columns:1fr 1fr;gap:16px;font-size:14px;display:grid}.course-facts strong{font-size:15px}.curriculum{padding-block:40px}.curriculum-heading{margin-bottom:34px;display:block}.curriculum-heading h2{font-size:27px}.search{width:100%;margin-top:24px}.session-row{flex-wrap:wrap;gap:8px 12px;padding:23px 0}.session-info{flex-basis:calc(100% - 38px)}.session-info h3{font-size:17px}.session-info p{font-size:16px}.session-meta{font-size:10px}.session-end{width:100%;margin-left:37px;padding-top:8px}.session-end svg{margin-left:auto}.theme-heading h2{font-size:18px}.theme-heading>span:last-child{font-size:10px}.preparation{margin-bottom:40px;padding:26px;display:block}.preparation h2{font-size:24px}.preparation>a{margin-top:24px}.site-footer{display:block}.footer-links{flex-wrap:wrap;margin-top:24px}.lesson-layout{padding-inline:20px}.reader-toolbar{flex-wrap:wrap;gap:8px}.reader-toolbar .btn{padding-inline:10px;font-size:10px}.print-guide{display:none}.prose{font-size:18px}.prose h1{font-size:28px}.prose h2{font-size:23px}.prose h3{font-size:20px}.prose blockquote{padding:16px 18px;font-size:17px}.code-block code.hljs{font-size:11px}.code-block pre{padding-inline:16px}.prose table{font-size:14px}.prose td,.prose th{padding:10px}.login-page{padding:65px 24px}.login-page h1{font-size:35px}.login-page>p:not(.eyebrow){font-size:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.site-header,.site-footer,.lesson-sidebar,.reader-toolbar,.step-navigation,.copy-code,.completion,.session-navigation{display:none!important}.lesson-layout{padding:0;display:block}.reader{max-width:none}.guide-section[hidden]{display:block!important}.code-block pre{white-space:pre-wrap;overflow:visible}.code-block code{white-space:pre-wrap!important}.prose{font-size:11pt}.prose .heading-link{display:none}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}