:root{color-scheme:light;--mochi:#fbfaf7;--paper:#fff;--ink:#221b29;--ink-soft:#5f5667;--purple:#684493;--purple-deep:#442263;--purple-soft:#eee6f6;--purple-wash:#f7f3f9;--lilac:#d9c5eb;--peach:#f5bca8;--sun:#f5cf67;--mint:#bfe3d6;--illustration-blue:#8ec5ff;--status-green:#39a56f;--status-green-halo:#39a56f21;--science-mint-wash:#eef8f5;--peach-ink:#7d2f1c;--mint-ink:#205f49;--line:#e4dde8;--code-surface:#120f15;--code-border:#34263d;--code-ink:#ddd5e5;--font-display:Georgia, "Times New Roman", serif;--font-body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--type-label:.75rem;--type-meta:.82rem;--type-small:.9rem;--type-body:1rem;--type-reading:1.075rem;--type-subtitle:1.25rem;--type-lead:clamp(1.08rem, 2vw, 1.28rem);--type-title:clamp(1.4rem, 2.4vw, 2rem);--type-feature:clamp(1.85rem, 3vw, 2.65rem);--type-headline:clamp(2rem, 4.5vw, 3.7rem);--type-display:clamp(2.8rem, 7vw, 5.8rem);--type-display-compact:clamp(2.5rem, 13vw, 4rem);--leading-tight:1.06;--leading-snug:1.3;--leading-body:1.7;--leading-code:1.65;--content-reading:47.5rem;--content-wide:55.625rem;--shell-home:65rem;--shell:72.5rem;--gutter:1.25rem;--gutter-compact:.75rem;--section-padding:clamp(4.5rem, 8vw, 7rem);--section-padding-compact:clamp(3rem, 5.5vw, 4.5rem);--section-padding-hero:clamp(5rem, 10vw, 8rem);--border-hairline:1px solid var(--line);--border-code:1px solid var(--code-border);--radius-inline:.3rem;--radius-sm:12px;--radius:22px;--radius-lg:34px;--radius-pill:999px;--shadow-soft:0 16px 50px #37214514;--shadow-mark:0 8px 24px #37214514;--shadow-card:0 26px 80px #37214521;--shadow-control:0 10px 25px #44226333;--shadow-deep:0 34px 90px #00000052;--breakpoint-wide:68.75rem;--breakpoint-shell:61.25rem;--breakpoint-layout:51.25rem;--breakpoint-nav:47.5rem;--breakpoint-compact:35rem;font-family:var(--font-body);font-synthesis:none}*,:before,:after{box-sizing:border-box}html{background:var(--mochi);color:var(--ink);scroll-behavior:smooth}body{background:var(--mochi);min-width:320px;min-height:100dvh;font-size:var(--type-body);line-height:var(--leading-body);flex-direction:column;margin:0;display:flex}main{flex:1 0 auto}body.home-page{--shell:var(--shell-home)}body,button,input{font-family:inherit}img,svg,video{max-width:100%;height:auto;display:block}a{color:var(--purple);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--purple-deep)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--sun);outline-offset:4px}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:var(--leading-tight);letter-spacing:-.045em;margin:0 0 .65em}h1{font-size:var(--type-display)}h2{font-size:var(--type-headline)}h3{font-size:1.4rem}p{margin:0 0 1.2em}::selection{background:var(--lilac);color:var(--purple-deep)}.shell{width:min(calc(100% - (var(--gutter) * 2)), var(--shell));margin-inline:auto}.narrow-shell{max-width:940px}.skip-link{z-index:100;border-radius:var(--radius-sm);background:var(--ink);color:#fff;padding:.7rem 1rem;position:fixed;top:1rem;left:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.eyebrow{color:var(--purple);font-size:var(--type-label);letter-spacing:.15em;text-transform:uppercase;margin-bottom:.8rem;font-weight:850}.button-link{border:1px solid var(--purple);border-radius:var(--radius-pill);background:var(--purple);color:#fff;justify-content:center;align-items:center;min-height:48px;padding:.72rem 1.15rem;font-weight:750;text-decoration:none;transition:transform .16s,background .16s,box-shadow .16s;display:inline-flex}.button-link:hover{background:var(--purple-deep);color:#fff;box-shadow:var(--shadow-control);transform:translateY(-2px)}.button-secondary{color:var(--purple);background:0 0}.button-secondary:hover{background:var(--purple-soft);color:var(--purple-deep)}.text-link{color:var(--ink);align-items:center;gap:.45rem;font-weight:750;text-decoration:none;display:inline-flex}.text-link span{color:var(--purple);transition:transform .16s}.text-link:hover span{transform:translate(4px)}.site-header{z-index:20;backdrop-filter:blur(18px);background:#fbfaf7e6;border-bottom:1px solid #e4dde8cc;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:2rem;min-height:88px;display:flex}.brand{color:var(--ink);align-items:center;gap:.8rem;text-decoration:none;display:flex}.brand:hover{color:var(--ink)}.brand-mark{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);width:50px;height:50px;box-shadow:var(--shadow-mark);place-items:center;display:grid}.brand-mark img{width:38px}.brand>span:last-child{line-height:1.2;display:grid}.brand strong{font-family:var(--font-display);font-size:var(--type-subtitle);letter-spacing:-.025em}.brand small{color:var(--ink-soft);font-size:var(--type-label);letter-spacing:.11em;text-transform:uppercase;margin-top:.18rem;font-weight:750}.desktop-nav{border:1px solid var(--line);border-radius:var(--radius-pill);background:#ffffffc7;align-items:center;gap:.35rem;padding:.35rem;display:flex}.desktop-nav a{border-radius:var(--radius-pill);color:var(--ink-soft);font-size:var(--type-small);padding:.48rem .9rem;font-weight:750;text-decoration:none}.desktop-nav a[aria-current=page],.desktop-nav a:hover{background:var(--purple-soft);color:var(--purple-deep)}.mobile-menu{display:none;position:relative}.mobile-menu summary{cursor:pointer;border:1px solid var(--line);background:var(--paper);border-radius:50%;place-content:center;gap:4px;width:46px;height:46px;list-style:none;display:grid}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{border-radius:var(--radius-pill);background:var(--ink);width:18px;height:2px;display:block}.mobile-menu nav{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);width:220px;box-shadow:var(--shadow-card);padding:.55rem;display:grid;position:absolute;top:calc(100% + .75rem);right:0}.mobile-menu nav a{border-radius:var(--radius-sm);color:var(--ink);padding:.75rem .85rem;font-weight:700;text-decoration:none}.mobile-menu nav a:hover,.mobile-menu nav a[aria-current=page]{background:var(--purple-soft);color:var(--purple-deep)}.hero{border-bottom:1px solid var(--line);background:radial-gradient(circle at 16% 14%, #f5cf6742, transparent 25rem), radial-gradient(circle at 86% 35%, #d9c5eb73, transparent 31rem), var(--mochi);position:relative;overflow:hidden}.hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);align-items:center;gap:clamp(3rem,7vw,7rem);min-height:min(720px,100vh - 88px);padding-block:clamp(5rem,10vw,8rem);display:grid;position:relative}.hero-copy{z-index:2;position:relative}.hero h1{max-width:11ch}.hero h1 em{color:var(--purple);font-weight:inherit;position:relative}.hero h1 em:after{border-radius:var(--radius-pill);background:var(--peach);content:"";height:.12em;position:absolute;bottom:-.08em;left:0;right:0;transform:rotate(-1.5deg)}.hero-lede{max-width:57ch;color:var(--ink-soft);font-size:var(--type-lead)}.hero-actions,.course-actions{flex-wrap:wrap;align-items:center;gap:1.2rem;margin-top:2rem;display:flex}.hero-visual{min-height:480px;position:relative}.archive-card{z-index:2;border-radius:var(--radius-lg);width:min(92%,400px);box-shadow:var(--shadow-card);backdrop-filter:blur(10px);background:#ffffffeb;border:1px solid #6844932e;padding:2rem;display:grid;position:absolute}.archive-card span{color:var(--purple);letter-spacing:.12em;font-size:.72rem;font-weight:850}.archive-card strong{font-family:var(--font-display);font-size:var(--type-title);margin:.35rem 0}.archive-card small{color:var(--ink-soft)}.archive-card-one{top:7%;right:5%;transform:rotate(3deg)}.archive-card-two{bottom:7%;right:12%;transform:rotate(-4deg)}.hero-orbit{border-radius:50%;position:absolute}.hero-orbit-one{background:var(--sun);opacity:.75;width:120px;height:120px;top:0;left:2%}.hero-orbit-two{background:var(--mint);width:92px;height:92px;bottom:2%;right:0}.section{padding-block:var(--section-padding)}.section-heading{justify-content:space-between;align-items:end;gap:3rem;margin-bottom:2.8rem;display:flex}.section-heading h2{max-width:14ch;margin-bottom:0}.section-intro{max-width:42ch;color:var(--ink-soft);margin:0}.courses-section,.syllabus-section{border-top:1px solid var(--line);background:linear-gradient(#ffffffc7, #ffffffc7), radial-gradient(circle at 10% 20%, var(--purple-soft), transparent 25rem)}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.course-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow-soft);transition:transform .18s,box-shadow .18s;overflow:hidden}.course-card:hover{box-shadow:var(--shadow-card);transform:translateY(-5px)}.course-image{border-bottom:1px solid var(--line);background:var(--purple-soft);display:block;overflow:hidden}.course-image img{aspect-ratio:16/9;object-fit:cover;width:100%;transition:transform .35s}.course-card:hover .course-image img{transform:scale(1.015)}.course-content{padding:clamp(1.6rem,4vw,2.4rem)}.course-content h2{font-size:var(--type-title);margin:1rem 0 .7rem}.course-content h2 a{color:var(--ink);text-decoration:none}.course-content h2 a:hover{color:var(--purple)}.course-content>p{color:var(--ink-soft)}.course-labels{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:1rem;font-size:.78rem;font-weight:750;display:flex}.pill{border-radius:var(--radius-pill);background:var(--purple-soft);color:var(--purple-deep);font-size:var(--type-label);letter-spacing:.1em;text-transform:uppercase;padding:.2rem .65rem;font-weight:850;display:inline-flex}.archive-notice{border:1px solid color-mix(in srgb, var(--sun), var(--ink) 14%);border-radius:var(--radius);background:color-mix(in srgb, var(--sun) 20%, var(--paper));box-shadow:var(--shadow-soft);grid-template-columns:auto 1fr;gap:1rem;padding:clamp(1.4rem,4vw,2rem);display:grid}.archive-notice.compact{box-shadow:none;margin-bottom:2.4rem;padding:1.3rem}.archive-icon{background:var(--sun);width:32px;height:32px;color:var(--ink);font-family:var(--font-display);border-radius:50%;place-items:center;font-weight:800;display:grid}.archive-notice strong{font-size:var(--type-reading)}.archive-notice p{color:var(--ink-soft);margin:.25rem 0 0}.archive-notice .archive-action{margin-top:.8rem}.course-hero{border-bottom:1px solid var(--line);background:radial-gradient(circle at 86% 35%, #d9c5eb80, transparent 31rem), var(--mochi);overflow:hidden}.course-hero-grid{padding-block:var(--section-padding-hero);grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);align-items:center;gap:clamp(3rem,7vw,7rem);display:grid}.course-hero h1{max-width:11ch;font-size:var(--type-display)}.course-lede{max-width:57ch;color:var(--ink-soft);font-size:var(--type-lead)}.course-hero-art{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow-card);overflow:hidden}.course-hero-art>img{aspect-ratio:16/9;object-fit:cover;width:100%}.course-hero-art dl{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);margin:0;display:grid}.course-hero-art dl div{border-left:1px solid var(--line);padding:1.1rem}.course-hero-art dl div:first-child{border-left:0}.course-hero-art dt{color:var(--ink-soft);font-size:var(--type-label);letter-spacing:.08em;text-transform:uppercase;font-weight:800}.course-hero-art dd{font-family:var(--font-display);font-size:var(--type-subtitle);margin:.25rem 0 0;font-weight:700}.archive-copy{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2.5rem,7vw,6rem);margin-top:clamp(4rem,8vw,6rem);display:grid}.archive-copy h2{font-size:var(--type-headline)}.archive-copy>div:last-child{color:var(--ink-soft);font-size:var(--type-reading)}.syllabus-shell{max-width:980px}.lesson-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.lesson-list li{border-bottom:1px solid var(--line)}.lesson-list a{color:var(--ink);grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:1.2rem;padding:1.25rem 0;text-decoration:none;display:grid}.lesson-list a:hover strong{color:var(--purple)}.lesson-number{color:var(--purple);font-family:var(--font-mono);font-size:.76rem}.lesson-title{display:grid}.lesson-title strong{line-height:1.35}.lesson-title small{color:var(--ink-soft);margin-top:.2rem}.lesson-access{border-radius:var(--radius-pill);background:var(--mint);min-width:55px;color:var(--mint-ink);font-size:var(--type-label);letter-spacing:.08em;text-align:center;text-transform:uppercase;padding:.3rem .65rem;font-weight:850}.lesson-shell{grid-template-columns:270px minmax(0,1fr);align-items:start;gap:clamp(3rem,7vw,6rem);padding-block:clamp(3rem,7vw,6rem);display:grid}.lesson-sidebar{flex-direction:column;height:calc(100dvh - 88px - clamp(3rem,7vw,6rem) - 1.5rem);display:flex;position:sticky;top:calc(88px + 1.75rem)}.lesson-course-back{color:var(--ink);gap:.45rem;margin-bottom:1rem;font-weight:800;text-decoration:none;display:inline-flex}.lesson-progress{color:var(--ink-soft);justify-content:space-between;gap:1rem;margin:0;font-size:.78rem;font-weight:750;display:flex}.lesson-progress-track{border-radius:var(--radius-pill);background:var(--purple-soft);height:.3rem;margin-top:.65rem;overflow:hidden}.lesson-progress-track span{width:var(--lesson-progress);border-radius:inherit;background:var(--purple);height:100%;display:block}.lesson-index{flex-direction:column;flex:1;min-height:0;margin-top:1.2rem;display:flex;overflow:hidden}.lesson-index summary{cursor:pointer;min-height:44px;list-style:none;display:none}.lesson-index summary::-webkit-details-marker{display:none}.lesson-navigation-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;flex:1;min-height:0;padding-bottom:.35rem;padding-right:.6rem;position:relative;overflow-y:auto}.lesson-sidebar ol{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.lesson-sidebar a{border-bottom:1px solid var(--line);color:var(--ink-soft);grid-template-columns:28px minmax(0,1fr) 8px;gap:.55rem;padding:.68rem .35rem;text-decoration:none;display:grid}.lesson-sidebar nav a:hover{background:var(--purple-wash);color:var(--purple-deep)}.lesson-sidebar a[aria-current=page]{background:var(--purple-soft);color:var(--purple-deep)}.lesson-sidebar a[aria-current=page]:after{background:var(--purple);content:"";border-radius:50%;width:.45rem;height:.45rem;margin-block:auto}.lesson-sidebar a[aria-current=page] strong{font-weight:850}.lesson-sidebar a>span{color:var(--purple);font-family:var(--font-mono);font-size:var(--type-label)}.lesson-sidebar a>strong{font-size:.76rem;font-weight:650;line-height:1.35}.lesson{min-width:0;max-width:var(--content-wide)}.lesson-header{margin-bottom:2.5rem}.lesson-header h1{font-size:var(--type-headline);margin-bottom:.4rem}.lesson-header>p:last-child{color:var(--ink-soft)}.video-embed{border-radius:var(--radius);background:var(--code-surface);width:100%;box-shadow:var(--shadow-card);aspect-ratio:16/9;margin:0 0 2.7rem;position:relative;overflow:hidden}.video-embed iframe,.video-embed video{border:0;width:100%;height:100%;position:absolute;inset:0}.video-embed video{object-fit:contain}.footer-meta>div{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.prose{font-size:var(--type-reading)}.prose>:first-child{margin-top:0}.prose h2,.prose h3{margin-top:2.2em}.prose h2{font-size:var(--type-feature)}.prose h3{font-size:var(--type-title)}.prose p,.prose li{color:var(--ink)}.prose a{font-weight:650}.prose pre{border:var(--border-code);border-radius:var(--radius-sm);background:var(--code-surface);color:var(--code-ink);font-size:var(--type-meta);line-height:var(--leading-code);margin:2rem 0;padding:1.3rem;overflow-x:auto;box-shadow:0 14px 40px #180e1e24}.prose :not(pre)>code{border-radius:var(--radius-inline);background:var(--purple-soft);color:var(--purple-deep);overflow-wrap:anywhere;padding:.13em .38em;font-size:.9em}.prose table{border-collapse:collapse;width:max-content;max-width:100%;margin:2rem 0;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:.65rem .85rem}.objective{border:1px solid var(--lilac);border-radius:var(--radius-sm);background:var(--purple-soft);margin-bottom:2rem;padding:1.15rem 1.3rem}.objective p{color:var(--purple-deep);margin:0}.objective span{font-weight:850}.lesson-pagination{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:clamp(4rem,8vw,7rem);padding-top:2rem;display:grid}.lesson-pagination a{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);color:var(--ink);padding:1.2rem;text-decoration:none;display:grid}.lesson-pagination a:hover{border-color:var(--lilac);box-shadow:var(--shadow-soft)}.lesson-pagination .next{text-align:right}.lesson-pagination small{color:var(--purple);margin-bottom:.35rem;font-weight:800}.lesson-pagination strong{font-size:var(--type-small);line-height:1.4}.page-hero{border-bottom:1px solid var(--line);background:radial-gradient(circle at 80% 30%, #d9c5eb99, transparent 26rem), var(--mochi);min-height:500px;padding-block:clamp(6rem,12vw,10rem)}.page-hero h1{max-width:12ch}.page-hero p:not(.eyebrow){max-width:58ch;color:var(--ink-soft);font-size:var(--type-reading)}.access-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper);box-shadow:var(--shadow-soft);margin-top:2rem;padding:clamp(2rem,6vw,4rem)}.access-card h2{max-width:13ch}.access-card>p:not(.eyebrow){max-width:62ch;color:var(--ink-soft)}.site-footer{border-top:1px solid var(--line);background:var(--paper)}.footer-inner{justify-content:space-between;align-items:center;gap:3rem;padding-block:2rem;display:flex}.footer-brand{align-items:center;gap:1rem;display:flex}.footer-brand img{width:44px}.footer-brand strong{font-family:var(--font-display);font-size:var(--type-reading)}.footer-brand p{color:var(--ink-soft);font-size:var(--type-meta);margin:.15rem 0 0}.footer-inner nav,.footer-meta{align-items:center;gap:1.2rem;display:flex}.footer-inner nav a,.footer-meta{color:var(--ink-soft);font-size:var(--type-meta);font-weight:700}.footer-meta{border-top:1px solid var(--line);justify-content:space-between;padding-block:.9rem}.footer-meta p{margin:0}.footer-meta a{color:var(--ink-soft);text-decoration:none}.footer-meta a:hover{color:var(--purple)}@media (width>=821px){.lesson-index{position:relative}.lesson-navigation-scroll{position:absolute;inset:0}.lesson-index:not([open])>.lesson-navigation-scroll{display:block}}@media (width<=820px){.hero-grid,.course-hero-grid,.archive-copy{grid-template-columns:1fr}.hero-grid{min-height:auto}.hero-visual{min-height:420px}.course-hero-art{max-width:620px}.lesson-shell{grid-template-columns:1fr}.lesson-sidebar{z-index:10;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);height:auto;box-shadow:var(--shadow-soft);grid-template-columns:minmax(0,1fr) auto;gap:.65rem 1.2rem;padding:.75rem;display:grid;position:sticky;top:calc(88px + .75rem)}.lesson-course-back{margin:0}.lesson-progress{justify-content:end;align-items:center}.lesson-progress>span:last-child{display:none}.lesson-progress-track,.lesson-index{grid-column:1/-1;margin:0}.lesson-index{min-height:auto;display:block;position:relative;overflow:visible}.lesson-index summary{border-radius:var(--radius-sm);color:var(--ink);font-size:var(--type-small);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.55rem .7rem;font-weight:800;display:grid}.lesson-index summary:after{color:var(--purple);content:"↓"}.lesson-index[open] summary{background:var(--purple-soft);color:var(--purple-deep)}.lesson-index[open] summary:after{content:"↑"}.lesson-navigation-scroll{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);max-height:calc(100dvh - 19rem);box-shadow:var(--shadow-card);padding:.55rem .75rem;position:absolute;top:calc(100% + .6rem);left:0;right:0;overflow-y:auto}.lesson-sidebar ol{border-top:0}}@media (width<=760px){.desktop-nav{display:none}.mobile-menu{display:block}}@media (width<=560px){.shell{width:min(calc(100% - (var(--gutter-compact) * 2)), var(--shell))}.header-inner{min-height:74px}.brand-mark{width:44px;height:44px}.hero h1,.course-hero h1,.page-hero h1{font-size:var(--type-display-compact)}.hero-visual{min-height:360px}.archive-card{padding:1.4rem}.course-grid{grid-template-columns:1fr}.section-heading{flex-direction:column;align-items:start;gap:1rem}.course-hero-art dl{grid-template-columns:1fr}.course-hero-art dl div{border-top:1px solid var(--line);border-left:0}.course-hero-art dl div:first-child{border-top:0}.lesson-list a{grid-template-columns:34px minmax(0,1fr)}.lesson-access{display:none}.lesson-pagination{grid-template-columns:1fr}.lesson-pagination .next{text-align:left}.lesson-sidebar{top:calc(74px + .5rem)}.footer-inner,.footer-meta{flex-direction:column;align-items:flex-start;gap:1.4rem}.footer-inner nav{flex-direction:column;align-items:flex-start;gap:.6rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
