@charset "UTF-8";
:root{--paper:#f6f4ed;--white:#fffefa;--ink:#19363b;--muted:#59696a;--line:#d9dfd8;--teal:#176a63;--pale:#e9f0e9;--coral:#bc593e;--violet:#6c5c91;--radius:18px;--shadow:0 12px 40px #173a3b08;font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;line-height:1.6}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #d78b3b;outline-offset:4px}::selection{background:#d7e8cd}button{color:var(--ink)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:16px;background:var(--ink);color:white;padding:12px 20px;z-index:10}.skip-link:focus{top:12px}.site-header{max-width:1440px;margin:auto;min-height:96px;padding:22px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:18px;letter-spacing:-.5px}.brand b{font-weight:700}.brand-mark{background:var(--ink);color:var(--white);display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font:700 17px ui-monospace,monospace}.header-link{font-size:13px;font-weight:650}.header-link span{margin-left:12px;color:var(--teal)}main{max-width:1320px;margin:auto;padding:0 4% 40px}.site-footer{max-width:1320px;margin:auto;padding:24px 4% 34px;border-top:1px solid var(--line);font-size:12px;display:flex;justify-content:space-between;gap:20px;color:var(--muted)}.site-footer>span:first-child{font-weight:700}.eyebrow{margin:0 0 12px;color:var(--teal);font-size:11px;text-transform:uppercase;letter-spacing:1.8px;font-weight:750;line-height:1.5}h1,h2,h3,h4,p{overflow-wrap:break-word}h1,h2,h3,h4{line-height:1.15;margin-top:0}h1{font-size:clamp(36px,4.6vw,66px);letter-spacing:-2.5px;font-weight:650;margin-bottom:22px}h1 em{font-family:Georgia,serif;font-weight:400;color:var(--teal)}h2{font-size:30px;letter-spacing:-1px;margin-bottom:0}h3{font-size:23px;letter-spacing:-.65px}p{margin:0 0 18px}.library-intro{display:grid;grid-template-columns:1fr 280px;gap:60px;align-items:center;padding:64px 0 52px}.intro-copy{max-width:620px;color:var(--muted);font-size:17px;margin:0;line-height:1.8}.intro-aside{border-left:1px solid var(--line);padding:14px 0 14px 40px}.aside-symbol{font:300 52px Georgia,serif;letter-spacing:12px;color:var(--coral)}.intro-aside p{font-size:15px;font-weight:550;line-height:1.9;margin:12px 0 18px}.aside-caption{color:var(--muted);font-size:11px}.library-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;flex-wrap:wrap}.semester-tabs{display:flex;gap:6px;flex-wrap:wrap}.semester-tabs a{padding:9px 15px;border-radius:50px;font-size:13px;font-weight:600;color:var(--muted)}.semester-tabs a[aria-current]{background:var(--ink);color:white}.semester-tabs a:hover:not([aria-current]){background:#e5eae3}.search{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--white);border-radius:8px;padding:7px 12px}.search>span:not(.sr-only){font-size:24px;line-height:1}.search input{border:0;background:transparent;outline-offset:7px;width:210px;font-size:13px;color:var(--ink);min-height:28px}.search input::placeholder{color:var(--muted)}.semester-group{padding:38px 0 12px;--accent:var(--teal)}.season-1{--accent:var(--violet)}.season-2{--accent:var(--coral)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.section-heading .eyebrow{margin-bottom:7px;color:var(--accent,var(--teal))}.section-count,.task-status{font-size:12px;color:var(--muted);white-space:nowrap}.lesson-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.lesson-card{border:1px solid var(--line);border-top:3px solid var(--accent);background:var(--white);border-radius:4px 4px var(--radius) var(--radius);padding:25px 25px 20px;display:flex;flex-direction:column;min-width:0;transition:transform .15s,box-shadow .15s,border-color .15s}.lesson-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--accent)}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.lesson-number{font-size:11px;font-weight:750;letter-spacing:1.2px;text-transform:uppercase;color:var(--accent)}.card-arrow{font-size:22px;color:var(--accent)}.lesson-card h3{margin-bottom:13px}.lesson-card>p{color:var(--muted);font-size:14px;line-height:1.65;flex:1}.card-meta{display:flex;gap:16px;font-size:11px;color:var(--muted);padding-top:16px;border-top:1px solid var(--line);flex-wrap:wrap}.course-progress{display:flex;justify-content:space-between;gap:10px;color:var(--teal);font-size:10px;padding-top:10px}.empty-state,.loading{padding:90px 0;max-width:700px}.empty-state p{color:var(--muted)}.empty-state a{text-decoration:underline}.empty-state button{background:var(--ink);color:white;padding:10px 20px;border:0;border-radius:8px}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-size:12px;padding:24px 0;color:var(--muted)}.breadcrumb a:hover{text-decoration:underline}.breadcrumb>span:last-child{color:var(--ink)}.lesson-shell{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.lesson-topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:15px 27px;background:#f1f3ec}.lesson-identity{display:flex;align-items:center;gap:16px;min-width:0;font-size:12px}.lesson-identity .eyebrow{margin:0;white-space:nowrap;font-size:10px}.lesson-actions{display:flex;gap:12px;flex-shrink:0}.lesson-actions button{font-size:11px;border:0;background:none;padding:8px 4px}.lesson-actions button:hover{color:var(--teal)}.slide-progress{height:3px;background:#e6ece4}.slide-progress span{display:block;height:100%;background:var(--teal);transition:width .18s}.slide{padding:clamp(26px,4.7vw,68px);min-height:480px;outline:0}.slide-heading{max-width:1020px}.slide h1{font-size:clamp(30px,3.5vw,48px);letter-spacing:-1.7px;line-height:1.12;margin-bottom:30px}.slide-content{font-size:clamp(16px,1.5vw,21px);line-height:1.7;max-width:100%;overflow-wrap:anywhere}.slide-content>:last-child{margin-bottom:0}.slide-content p{max-width:980px}.slide-content a{text-decoration:underline;text-decoration-color:#8cbbb2;text-underline-offset:4px}.slide-content a:hover{color:var(--teal)}.slide-content ul,.slide-content ol{padding-left:1.4em;margin:14px 0 24px}.slide-content li{padding-left:.3em;margin:9px 0}.slide-content li::marker{color:var(--teal)}.slide-content h3{font-size:clamp(21px,2vw,28px);margin:26px 0 12px}.slide-content h4{font-size:20px;margin:24px 0 10px}.slide-content blockquote{border-left:4px solid var(--coral);margin:24px 0;padding:18px 25px;background:#fcf0e5;font-family:Georgia,serif;font-size:1.15em}.slide-content blockquote p:last-child{margin-bottom:0}.slide-content .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:18px;margin:20px 0}.slide-content .card{border:1px solid var(--line);border-top:3px solid var(--teal);background:var(--pale);padding:24px;border-radius:3px 3px 14px 14px;min-width:0}.slide-content .card:nth-child(3n+2){background:#f2edf8;border-top-color:var(--violet)}.slide-content .card:nth-child(3n+3){background:#fbefe5;border-top-color:var(--coral)}.slide-content .card h3:first-child{margin-top:0}.slide-content .card p:last-child,.slide-content .card ul:last-child{margin-bottom:0}.slide-content .split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start;margin:20px 0}.slide-content .callout{padding:22px 26px;border-left:4px solid var(--teal);background:var(--pale);margin:24px 0;border-radius:0 12px 12px 0}.slide-content .callout>:last-child{margin-bottom:0}.slide-content code{font: .85em/1.7 "Cascadia Code",Consolas,monospace;background:#eaf0e9;padding:.1em .3em;border-radius:4px;overflow-wrap:anywhere}.slide-content pre{padding:24px;border-radius:12px;background:#19363b;color:#f3f5e9;overflow:auto;max-width:100%;font-size:14px;line-height:1.7;white-space:pre-wrap;tab-size:2;overflow-wrap:anywhere}.slide-content pre code{padding:0;background:transparent;color:inherit;font-size:inherit}.slide-content img{display:block;max-width:100%;height:auto;max-height:570px;object-fit:contain;border-radius:8px;margin:auto}.slide-content figure{margin:22px 0}.slide-content figcaption{font-size:12px;line-height:1.6;color:var(--muted);margin-top:12px;text-align:center}.slide-content .table-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);border-radius:10px;margin:22px 0}.slide-content table{border-collapse:collapse;width:100%;font-size:.82em;line-height:1.5}.slide-content th,.slide-content td{padding:13px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;min-width:100px}.slide-content th{background:var(--pale);font-weight:700}.slide-content tr:last-child td{border-bottom:0}.slide-content hr{border:0;border-top:1px solid var(--line);margin:28px 0}.slide-controls{display:flex;align-items:center;justify-content:space-between;padding:15px 27px;border-top:1px solid var(--line);gap:20px}.slide-controls button{border:1px solid var(--line);background:transparent;padding:10px 20px;border-radius:8px;min-width:108px;font-size:13px;display:flex;justify-content:center;gap:12px;align-items:center}.slide-controls #next{background:var(--ink);color:var(--white);border-color:var(--ink)}.slide-controls button:disabled{opacity:.3}.slide-controls button:hover:not(:disabled){box-shadow:0 0 0 2px #176a6333}.slide-counter{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.slide-counter b{font-size:17px;color:var(--ink);padding-right:7px}.lesson-below{display:grid;grid-template-columns:1fr auto;gap:30px;margin:20px 0 40px;align-items:start}.outline{max-width:700px;border:1px solid var(--line);border-radius:10px;background:#fffefa88}.outline summary{cursor:pointer;font-size:13px;font-weight:650;padding:14px 18px}.outline summary span{float:right;color:var(--muted);font-weight:400;padding-left:14px}.outline nav{padding:0 10px 10px;max-height:380px;overflow:auto}.outline nav a{display:flex;gap:18px;padding:10px 12px;border-radius:6px;font-size:13px;line-height:1.5}.outline nav a>span{font-size:11px;color:var(--muted);flex-shrink:0;margin-top:2px}.outline nav a[aria-current]{background:var(--pale);font-weight:700;color:var(--teal)}.outline nav a:hover{background:var(--pale)}.keyboard-hint{font-size:11px;color:var(--muted);margin:15px 0}.practice-section{padding:38px 0;border-top:1px solid var(--line);scroll-margin-top:24px}.practice-intro{font-size:14px;color:var(--muted);margin-top:-10px;margin-bottom:28px}.task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.task-card{border:1px solid var(--line);background:var(--white);padding:28px;border-radius:var(--radius);min-width:0}.task-number{display:inline-block;background:#f1e6d0;color:#735926;padding:4px 10px;border-radius:5px;font-size:10px;letter-spacing:1px;font-weight:700;text-transform:uppercase;margin-bottom:18px}.task-card h3{margin-bottom:14px}.task-card>p{font-size:14px;color:var(--muted)}.task-steps{display:grid;gap:10px}.task-step{display:flex;align-items:flex-start;gap:13px;font-size:14px;line-height:1.7;cursor:pointer;padding:12px;border:1px solid var(--line);border-radius:8px}.task-step input{margin:4px 0 0;accent-color:var(--teal);width:17px;height:17px;flex-shrink:0}.task-step:has(input:checked){background:var(--pale);border-color:#c5d6c6}.task-step input:checked+span{color:var(--teal)}.deliverable{margin-top:20px;background:#f2f0e7;border-radius:8px;padding:15px 18px;font-size:13px}.deliverable strong{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--teal)}.deliverable p{margin:6px 0 0}.resources{border-top:1px solid var(--line);padding:35px 0}.resources h2{margin-bottom:22px}.resources>div{display:flex;gap:12px;flex-wrap:wrap}.resources a{display:flex;gap:20px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:8px;padding:12px 18px;font-size:13px;background:var(--white)}.resources a:hover{border-color:var(--teal)}.lesson-end{display:flex;justify-content:space-between;gap:25px;padding:26px 0;font-size:13px;color:var(--teal);border-top:1px solid var(--line)}.lesson-end a:last-child{text-align:right}.lesson-end a:hover{text-decoration:underline}
:fullscreen .site-header,:fullscreen .site-footer,:fullscreen .breadcrumb,:fullscreen .lesson-below,:fullscreen .practice-section,:fullscreen .resources,:fullscreen .lesson-end{display:none}:fullscreen main{max-width:1600px;padding:22px 3%;}:fullscreen .lesson-shell{min-height:calc(100vh - 44px);display:flex;flex-direction:column}:fullscreen .slide{flex:1}:fullscreen .slide-controls{flex-shrink:0}
@media(min-width:1500px){.slide{min-height:560px}}
@media(max-width:1000px){.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-intro{grid-template-columns:1fr 220px;gap:30px}.intro-aside{padding-left:25px}.lesson-below{grid-template-columns:1fr}.keyboard-hint{margin-top:-20px}.lesson-topbar{align-items:flex-start}.lesson-identity{display:grid;gap:3px}.slide-content .split{gap:20px}.slide{min-height:430px}}
@media(max-width:680px){.site-header{min-height:76px;padding:16px 5%}.brand{font-size:16px;gap:9px}.brand-mark{width:35px;height:35px;font-size:14px;border-radius:10px}.header-link{font-size:0}.header-link span{font-size:19px;margin:0}main{padding:0 5% 24px}.library-intro{grid-template-columns:1fr;padding:36px 0 30px;gap:0}.library-intro h1{letter-spacing:-1.6px;font-size:clamp(34px,8.3vw,48px)}.intro-copy{font-size:15px}.intro-aside{display:none}.library-toolbar{gap:16px;padding:16px 0}.semester-tabs{gap:4px}.semester-tabs a{padding:8px 10px;font-size:11px}.search{width:100%}.search input{width:100%}.lesson-grid{grid-template-columns:1fr}.semester-group{padding-top:28px}.section-heading{margin-bottom:18px;gap:16px}h2{font-size:26px}.lesson-card{padding:21px}.lesson-card h3{font-size:23px}.card-top{margin-bottom:15px}.breadcrumb{padding:18px 0;font-size:11px}.lesson-topbar{padding:12px 16px;gap:8px}.lesson-identity{font-size:11px}.lesson-actions{gap:9px;flex-wrap:wrap;justify-content:flex-end}.lesson-actions button{font-size:10px;padding:4px 0}.slide{padding:28px 20px;min-height:380px}.slide h1{font-size:32px;letter-spacing:-1.1px;margin-bottom:24px}.slide-content{font-size:16px;line-height:1.7}.slide-content .split{grid-template-columns:1fr;gap:10px}.slide-content .cards{grid-template-columns:1fr;gap:12px}.slide-content .card{padding:20px}.slide-content .callout{padding:18px}.slide-content blockquote{padding:16px 18px}.slide-content pre{padding:16px;font-size:12px}.slide-controls{padding:13px 16px;gap:12px}.slide-controls button{padding:10px 14px;min-width:80px;font-size:12px}.slide-counter{font-size:11px}.slide-counter b{font-size:15px}.lesson-below{margin:16px 0 28px;gap:16px}.keyboard-hint{display:none}.task-grid{grid-template-columns:1fr}.task-card{padding:22px}.practice-section{padding:28px 0}.practice-section .section-heading{align-items:start}.practice-section h2{max-width:220px}.practice-intro{margin-top:0}.task-status{font-size:10px;margin-top:5px}.lesson-end{flex-direction:column;font-size:12px;gap:16px}.lesson-end a:last-child{text-align:left}.site-footer{font-size:10px;padding:20px 5%;flex-direction:column;gap:4px}:fullscreen main{padding:8px 2%}:fullscreen .lesson-shell{min-height:calc(100vh - 16px)}.slide-content th,.slide-content td{padding:10px;min-width:90px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* The frame owns its controls; only long slide content scrolls. */
.setup-entry{display:flex;gap:13px;align-items:center;border:1px solid #b8cdbc;background:#eaf0e5;border-radius:10px;padding:14px 17px;max-width:520px;margin-top:23px}
.setup-entry>span:first-child{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--ink);color:white;font-size:18px;flex-shrink:0}
.setup-entry strong{display:block;font-size:14px;line-height:1.5}.setup-entry small{display:block;font-size:11px;color:var(--muted);line-height:1.5}.setup-entry>b{margin-left:auto;color:var(--teal)}.setup-entry:hover{border-color:var(--teal)}
.slide-content .figure-open{font-size:10px;white-space:nowrap}
.slide-content .cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.slide-content .cards .cards{grid-template-columns:repeat(auto-fit,minmax(min(70px,100%),1fr))}
.slide-content .cards:has(>.card:only-child){grid-template-columns:1fr}
.slide-content .cards:has(>.card:nth-child(2):last-child),.slide-content .cards:has(>.card:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1050px){.slide-content .cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.slide-content .cards{grid-template-columns:1fr}}
.lesson-shell{height:calc(100dvh - 185px);min-height:300px;display:grid;grid-template-rows:auto 3px minmax(0,1fr) auto}
.slide{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.slide-controls{background:var(--white)}
.slide:focus-visible{outline:2px solid var(--teal);outline-offset:-4px}
.presentation-mode{overflow:hidden}
.presentation-mode .site-header,.presentation-mode .site-footer,.presentation-mode .breadcrumb,.presentation-mode .lesson-below,.presentation-mode .practice-section,.presentation-mode .resources,.presentation-mode .lesson-end,.presentation-mode #practice-link{display:none}
.presentation-mode main{max-width:1600px;height:100dvh;padding:16px 2%;}
.presentation-mode .lesson-shell{height:calc(100dvh - 32px);min-height:0;display:grid;grid-template-rows:auto 3px minmax(0,1fr) auto}
.presentation-mode .slide{min-height:0;overflow:auto}
.presentation-mode .slide-controls{flex-shrink:0}
.slide-content .card>strong{display:block;margin-bottom:6px}
.slide-position{text-align:center;min-width:94px}
.scroll-cue{display:block;font-size:10px;font-weight:600;line-height:1.35;color:var(--teal);margin-top:2px;white-space:nowrap}
.scroll-cue[hidden]{display:none}
.media-layout,.media-copy,.media-figures{min-width:0}
.slide-content .media-copy>:first-child{margin-top:0}
.slide-content .media-figures figure:first-child{margin-top:0}
.slide-content .media-figures figure:last-child{margin-bottom:0}
.slide-content .split>div:empty{display:none}
.slide-content .split:has(>:only-child){grid-template-columns:1fr}
.slide-content img[src^="/assets/current/"][src$=".svg"]{width:auto;height:48px;max-width:80px;object-fit:contain}
.slide-content figure:has(>img[src^="/assets/current/"][src$=".svg"]){display:inline-block;vertical-align:top;margin:8px 10px 12px 0;min-width:80px}
.slide-content figure:has(>img[src^="/assets/current/"][src$=".svg"]) figcaption{margin-top:4px;font-size:11px}
.slide-content .card>.cards:has(>figure){grid-template-columns:repeat(auto-fit,minmax(75px,1fr));gap:10px}
.slide-content .card>.cards>figure{margin:0;min-width:0}
@media(min-width:900px){
  .slide-content .media-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px;align-items:start}
  .slide-content .media-figures img{max-height:290px}
  .slide-content .media-figures.multiple-figures img{max-height:160px}
  .slide-content .media-figures.multiple-figures figure{margin:0 0 14px}
  .slide-content .split img{max-height:220px}
  .slide-content .media-copy .cards{grid-template-columns:1fr}
  .slide{padding:26px 40px}
  .slide h1{font-size:38px;line-height:1.1;letter-spacing:-1.25px;margin-bottom:18px}
  .slide-heading .eyebrow{font-size:10px;margin-bottom:8px}
  .slide-content{font-size:18px;line-height:1.45}
  .slide-content p{margin-bottom:12px}
  .slide-content h3{font-size:22px;line-height:1.18;margin:14px 0 9px}
  .slide-content h4{font-size:19px;margin:14px 0 8px}
  .slide-content ul,.slide-content ol{margin:10px 0 14px}
  .slide-content li{margin:5px 0}
  .slide-content .cards{gap:14px;margin:14px 0}
  .slide-content .card{padding:16px}
  .slide-content .callout{padding:14px 18px;margin:14px 0}
  .slide-content .callout>h3:first-child{margin-top:0}
  .slide-content .split{gap:18px;margin:14px 0}
  .slide-content .split:has(>div:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}
  .slide-content .split>div>.callout:first-child{margin-top:0}
  .slide-content .split>div>.callout:last-child{margin-bottom:0}
  .slide-content figure{margin:14px 0}
  .slide-content img{max-height:260px}
  .layout-figure .slide-content>figure>img{max-height:320px}
  .layout-figure .slide-content>figure>a>img{max-height:320px}
  .slide-content>figure:not(:only-child)>img{max-height:220px}
  .slide-content>figure:not(:only-child)>a>img{max-height:220px}
  .slide-content figcaption{font-size:11px;margin-top:7px}
  .slide-content blockquote{margin:14px 0;padding:14px 18px}
  .slide-content pre{margin:12px 0;padding:16px 20px;font-size:13px;line-height:1.5}
  .slide-content .table-scroll{margin:14px 0}
  .slide-content th,.slide-content td{padding:9px 12px}
  .slide-content>.card:has(>.cards>figure){display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:20px;padding:12px 16px;margin:10px 0}
  .slide-content>.card:has(>.cards>figure)>h3{margin:0}
  .slide-content>.card>.cards:has(>figure){margin:0;grid-template-columns:repeat(7,minmax(0,1fr))}
  .slide-content>.card>.cards>figure img{height:40px;max-width:64px}
  .slide-content>.card>.cards>figure figcaption{font-size:10px}
}
@media(max-width:680px){.slide-content .cards:has(>.card){grid-template-columns:1fr}.lesson-shell{height:calc(100dvh - 154px);min-height:300px}.slide{padding:24px 20px}.presentation-mode main{padding:8px 2%}.presentation-mode .lesson-shell{height:calc(100dvh - 16px);min-height:0}}
@media(max-width:420px){.scroll-cue{font-size:9px}.slide-position{min-width:80px}.slide-controls{gap:7px}.slide-controls button{min-width:70px;padding:10px 11px}}
@media print{.site-header,.site-footer,.breadcrumb,.lesson-actions,.slide-controls,.lesson-below,.lesson-end,.skip-link{display:none}.lesson-shell{border:0;box-shadow:none;height:auto;display:block}.slide{padding:20px 0;min-height:0;overflow:visible}main{max-width:none;padding:0}.slide-content,.slide h1{color:#000}.slide-content pre{background:#eee;color:#000}.task-card{break-inside:avoid}.task-grid{display:block}.task-card{margin-bottom:15px}}

/* Course directory: one primary action, quiet rows, navigation on demand. */
:root{--paper:#fff;--white:#fff;--ink:#24262b;--muted:#69717d;--line:#e7e9ed;--teal:#315fcb;--pale:#f4f6fb;--coral:#315fcb;--violet:#315fcb;font-family:"Segoe UI",Arial,sans-serif}
main[tabindex="-1"]:focus{outline:none}
::selection{background:#dae5ff}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #315fcb;outline-offset:4px}
.ui-icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}
body:not(.in-lesson) main{max-width:1040px;padding:0 36px 64px}
body:not(.in-lesson) h1{font-weight:650;letter-spacing:-1.8px}
body:not(.in-lesson) .eyebrow{font-size:12px;color:#69717d;letter-spacing:.1px;text-transform:none;font-weight:500}
.home-heading{padding:70px 0 52px}
.home-heading .eyebrow{margin-bottom:22px}
.home-heading h1{font-size:clamp(44px,5.3vw,68px);line-height:1.05;letter-spacing:-2.8px!important;margin:0 0 24px;max-width:650px}
.home-heading>p:last-of-type{font-size:17px;line-height:1.65;color:#69717d;margin:0;max-width:580px}
.home-actions{display:flex;align-items:center;gap:14px;margin-top:28px;flex-wrap:wrap}
.library-primary,.library-secondary{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:46px;padding:11px 18px;border-radius:8px;font-size:14px;font-weight:600}
.library-primary{background:#315fcb;color:white}
.library-primary:hover{background:#244fae}
.library-secondary{color:#424954}
.library-secondary:hover{background:#f4f6fa}
.home-current{margin-bottom:44px}
.home-current>.section-heading{margin:0 0 14px;align-items:center}
.home-current>.section-heading h2,.year-section>h2{font-size:13px;font-weight:600;letter-spacing:0;color:#69717d}
.home-current>.section-heading>span{font-size:12px;color:#69717d}
.home-current>.lesson-card{background:#f6f8fc;border:1px solid #edf0f6;border-radius:12px;padding:26px}
.home-current>.lesson-card:hover{background:#eff3fb;border-color:#dce5f7}
.home-current .lesson-icon{background:white;border:1px solid #e8ecf4}
.year-section{margin-bottom:24px}
.year-section>h2{margin-bottom:12px}
.year-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.year-card{display:flex;align-items:center;gap:14px;border-bottom:1px solid #e7e9ed;padding:18px 0;min-width:0}
.year-card>strong{font-size:21px;font-weight:600;letter-spacing:-.4px}
.year-card>span{font-size:12px;color:#69717d}
.year-card>.ui-icon:first-child{color:#89919e}
.year-card>.ui-icon:last-child{margin-left:auto;color:#89919e}
.year-card:hover strong,.year-card:hover>.ui-icon:last-child{color:#315fcb}
.library-heading{padding:54px 0 32px;max-width:800px}
.library-heading h1{font-size:44px;line-height:1.15;margin:16px 0 15px}
.library-heading>p:last-of-type{font-size:16px;color:#69717d;line-height:1.7;margin:0;max-width:690px}
.library-heading .eyebrow{margin:0}
.library-heading .eyebrow a:hover{text-decoration:underline;color:#315fcb}
.inline-action{display:inline-flex;gap:9px;align-items:center;color:#315fcb;font-size:13px;font-weight:500;margin-top:23px;line-height:1.5}
.inline-action>.ui-icon{width:17px;height:17px}
.inline-action:hover{text-decoration:underline;text-underline-offset:4px}
.semester-choices{margin-bottom:30px}
.semester-choice{display:flex;align-items:center;gap:22px;padding:25px 0;border-bottom:1px solid #e7e9ed}
.semester-choice:first-child{border-top:1px solid #e7e9ed}
.archive-icon{color:#89919e;display:grid;place-items:center;width:36px;flex-shrink:0}
.semester-choice h2{font-size:25px;font-weight:600;letter-spacing:-.6px;margin:0 0 8px}
.semester-choice p{font-size:14px;line-height:1.65;color:#69717d;margin:0;max-width:580px}
.semester-count{margin-left:auto;color:#69717d;font-size:12px;white-space:nowrap}
.semester-choice>.ui-icon{color:#89919e}
.semester-choice:hover h2{color:#315fcb}
.library-section{position:relative}
.library-search-panel{border:0;margin:0 0 18px}
.library-search-panel>summary{display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;font-size:12px;color:#69717d;padding:12px 0;width:fit-content}
.library-search-panel>summary::-webkit-details-marker{display:none}
.library-search-panel>summary>.ui-icon{width:16px;height:16px}
.library-search-panel>summary:hover{color:#315fcb}
.search{max-width:480px;width:100%;border:1px solid #d9dee7;padding:9px 12px;border-radius:8px;margin:7px 0 20px;background:white;gap:12px}
.search input{width:100%;min-width:0;font-size:14px;outline-offset:3px}
.search>.ui-icon{width:18px;color:#89919e}
.semester-library .library-search-panel{margin-bottom:5px}
.semester-group{padding:18px 0 0}
.semester-group>.section-heading{justify-content:flex-start;align-items:center;gap:10px;margin-bottom:14px}
.semester-group>.section-heading h2{font-size:19px;font-weight:600;letter-spacing:-.4px}
.semester-group>.compact-heading h2{font-size:12px;font-weight:500;color:#69717d;letter-spacing:0}
.semester-group .section-count{font-size:11px;color:#69717d}
.lesson-grid{display:block}
.lesson-card{display:flex;flex-direction:row;align-items:flex-start;gap:20px;background:transparent;border:0;border-top:1px solid #e7e9ed;border-radius:0;padding:26px 0;min-width:0;box-shadow:none!important;transform:none!important;transition:background .15s}
.lesson-card:hover{border-color:#e7e9ed;background:#fafbfe}
.lesson-icon{width:42px;height:42px;display:grid;place-items:center;flex-shrink:0;background:#f3f5fa;border-radius:9px;color:#315fcb;margin-top:4px}
.lesson-card-copy{flex:1;min-width:0}
.lesson-number{font-size:11px;font-weight:500;color:#69717d;letter-spacing:0;text-transform:none;display:block;margin-bottom:9px}
.lesson-card h3{font-size:25px;font-weight:600;line-height:1.25;letter-spacing:-.65px;margin:0 0 12px}
.lesson-card-copy>p{font-size:14px;line-height:1.65;color:#69717d;margin:0 0 14px;max-width:710px}
.card-meta{font-size:11px;color:#69717d;gap:14px;border:0;padding:0;line-height:1.6}
.card-arrow{color:#8a929e;display:block;margin-top:10px;flex-shrink:0}
.lesson-card:hover .card-arrow{color:#315fcb}
.site-footer{max-width:968px;margin:0 auto;padding:22px 0;font-size:11px;border-color:#edf0f4;flex-direction:row;color:#89919e}
.site-footer>span:first-child{font-weight:650;letter-spacing:.4px}
.site-footer a:hover{color:#315fcb}
.empty-state{padding:30px 0 40px}
.empty-state h2{font-size:24px}
.empty-state p{font-size:14px;margin-top:10px}
@media(max-width:680px){
 body:not(.in-lesson) main{padding:0 22px 36px}
 .home-heading{padding:42px 0 36px}
 .home-heading h1{font-size:48px;letter-spacing:-2px!important;margin-bottom:20px}
 .home-heading .eyebrow{font-size:11px;margin-bottom:19px}
 .home-heading>p:last-of-type{font-size:15px;max-width:320px}
 .home-actions{gap:8px;margin-top:23px}
 .library-primary,.library-secondary{font-size:13px;padding:10px 14px;gap:9px}
 .home-current{margin-bottom:31px}
 .home-current>.lesson-card{padding:20px;gap:15px}
 .lesson-card{gap:14px;padding:22px 0}
 .lesson-icon{width:34px;height:34px;border-radius:7px}
 .lesson-icon>.ui-icon{width:18px;height:18px}
 .lesson-card h3{font-size:21px;letter-spacing:-.4px;line-height:1.25;margin-bottom:10px}
 .lesson-card-copy>p{font-size:13px;line-height:1.65}
 .lesson-card .card-arrow{display:none}
 .card-meta{font-size:10px;gap:8px 12px}
 .year-grid{gap:22px}
 .year-card{gap:9px;flex-wrap:wrap;padding:15px 0}
 .year-card>.ui-icon:first-child{display:none}
 .year-card>strong{font-size:20px}
 .year-card>span{font-size:11px}
 .year-card>.ui-icon:last-child{width:16px}
 .library-heading{padding:36px 0 26px}
 .library-heading h1{font-size:36px;letter-spacing:-1.4px;margin:14px 0}
 .library-heading>p:last-of-type{font-size:14px}
 .inline-action{font-size:12px;align-items:flex-start;max-width:290px}
 .inline-action>.ui-icon{margin-top:1px}
 .semester-choice{gap:14px;flex-wrap:wrap;align-items:flex-start;padding:22px 0}
 .semester-choice>div{flex:1;min-width:0}
 .archive-icon{width:26px}
 .semester-choice h2{font-size:23px}
 .semester-choice p{font-size:13px}
 .semester-count{display:none}
 .semester-choice>.ui-icon{width:18px;margin-top:4px}
 .semester-group{padding-top:10px}
 .site-footer{margin:0 22px;padding:20px 0;flex-direction:row}
}
@media(max-width:360px){.home-heading h1{font-size:43px}.home-current>.lesson-card{padding:18px}.home-current .lesson-icon{display:none}.year-grid{gap:16px}.year-card>.ui-icon:last-child{display:none}.library-secondary{padding-left:10px;padding-right:10px}}
