/* Screen typography and layouts for comfortable reading. */
@media screen {
 :root{--ink:#18392e;--muted:#4f5e51;--gold:#79551f}
 html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:24px}
 body{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,Viet,sans-serif;font-size:18px;line-height:1.85;color:#233c30}
 main,.nav{max-width:1320px}
 main{padding-inline:28px}
 p,li,td,th,summary,figcaption{overflow-wrap:break-word}
 .brand strong{font-size:18px;letter-spacing:1px}.brand small{font-size:12px;letter-spacing:1.2px}
 nav{font-size:16px;gap:20px}nav a{min-height:44px;display:inline-flex;align-items:center}
 .eyebrow,.module-label,.reading-kicker{font-size:14px;letter-spacing:.7px}
 h1{font-size:clamp(40px,4.5vw,58px);line-height:1.25;letter-spacing:-1px}
 .hero p{font-size:19px;color:var(--muted);max-width:650px}
 .primary,.secondary,.hero-actions .primary,.hero-actions .secondary{font-size:17px;min-height:48px;padding:10px 19px}
 .hero-meta{font-size:16px;gap:22px}.hero-meta b{font-size:21px}.hero-art p{font-size:12px}
 .course-bar h2{font-size:24px}.progress-wrap small{font-size:15px}
 .course-layout{grid-template-columns:286px minmax(0,1fr);gap:28px}
 .search{font-size:16px;min-height:48px;padding:11px 12px}
 .lesson-button{padding:13px 11px;gap:9px}.lesson-num{font-size:16px;width:26px}
 .lesson-button strong{font-size:17px;font-weight:500;line-height:1.55}.lesson-button small{font-size:14px;opacity:.9;line-height:1.6}
 .lesson-list{max-height:70vh;scrollbar-width:thin}.side-note{font-size:14px;line-height:1.75}
 .module-label{padding:20px 10px 7px}.mobile-lessons{display:none}
 .lesson{padding:32px;scroll-margin-top:20px}.lesson-top{flex-wrap:wrap;gap:8px}
 .lesson-top span,.lesson-top small{font-size:14px;letter-spacing:.4px}
 .lesson h2{font-size:34px;line-height:1.4;font-weight:650}
 .goal{font-size:18px;color:#435746;line-height:1.85}
 .lesson-body h3{font-size:24px;line-height:1.5;margin-top:34px}
 .lesson-body p,.reading-card p,.reading-card blockquote{font-size:18px;line-height:1.9;color:#293e30}
 .lesson-body p{margin:16px 0}.reading-card{padding:24px;background:#fbfcf7;margin-block:22px 30px}
 .reading-title{font-size:27px;font-weight:600;line-height:1.45;margin:12px 0 20px}
 .reading-label{font-size:20px;line-height:1.5;margin:26px 0 12px}
 .reading-analysis p{margin-block:18px}.reading-analysis strong{font-weight:700}
 .reading-example{padding:17px 19px;background:#fff}
 .lesson-toc{gap:9px;padding:13px}.lesson-toc a{font-size:15px;line-height:1.6;padding:9px 11px;min-height:44px}
 .source-table{max-width:100%;overscroll-behavior-x:contain}
 .source-table table{font-size:16px;line-height:1.75}
 .source-table th,.source-table td{font-size:16px;padding:13px 14px;color:#293e30}
 .source-table th{font-weight:700;color:var(--ink)}
 .callout{font-size:18px;line-height:1.85}
 .exercise{padding:18px}.exercise summary{font-size:18px;line-height:1.7;min-height:44px}
 .exercise p{font-size:18px;line-height:1.9}.exercise small{font-size:14px}
 .note-box summary{font-size:18px;min-height:44px}.note-box label{font-size:16px!important}
 .note-box textarea{font-size:18px;line-height:1.75;min-height:140px}
 .note-actions{flex-wrap:wrap}.note-actions small{font-size:14px}.note-actions button{font-size:16px;min-height:44px;padding:8px 14px}
 .lesson-tools button{font-size:16px;min-height:48px;padding:10px 15px}.lesson-tools{gap:10px}
 #storage-status{font-size:14px}
 .section-head h2,.sources h2{font-size:34px;line-height:1.45;font-weight:600}
 .section-head p,.source-intro{font-size:18px;line-height:1.85;color:var(--muted)}
 .map-toolbar{flex-wrap:wrap;gap:10px}.segmented button{font-size:16px;min-height:44px;padding:8px 12px;color:var(--ink)}
 .map-items button{font-size:16px;min-height:44px;padding:8px 12px;color:#344b38}
 .map-detail h3{font-size:29px;font-weight:600}.map-detail .alias{font-size:16px}
 .map-detail p{font-size:18px;line-height:1.85;color:#293e30}.map-note,.ref{font-size:14px;color:#435641;line-height:1.8}
 .mount-no{font-size:14px;font-weight:700}
 .shape-card strong{font-size:18px}.shape-card p{font-size:17px}.shape-card small{font-size:14px}
 .line-example p{font-size:17px;line-height:1.8}.line-example small{font-size:14px;line-height:1.75}
 .book-figure figcaption{font-size:14px;color:var(--muted)}
 .photo-card strong{font-size:18px;line-height:1.6}.photo-card figcaption p{font-size:17px;line-height:1.85;color:#293e30}
 .photo-card small{font-size:14px;color:#4c5b48}.photo-link{font-size:16px;min-height:44px;padding:8px 0}
 .source-reading summary{font-size:18px;line-height:1.7;min-height:44px}.source-reading p{font-size:18px;line-height:1.85;color:#293e30}
 .source-reading small{font-size:14px}.source-reading a{font-size:17px;min-height:44px;padding-block:7px}
 .source-card h3{font-size:23px;font-weight:600}.source-card p{font-size:17px;line-height:1.85;color:#364d39}
 .footer{font-size:14px;line-height:1.8}.footer strong{font-size:15px}
 .empty{font-size:16px}.photo-dialog-bar strong{font-size:18px}
 .photo-dialog-bar button{font-size:16px;min-height:44px;padding:8px 12px}.photo-dialog-scroll+p{font-size:17px;line-height:1.8}
}
@media screen and (max-width:1050px){
 .nav{flex-wrap:wrap}.nav nav{flex-wrap:wrap}.course-layout{grid-template-columns:1fr}
 aside{position:static}.mobile-lessons{display:block}.desktop-lesson-nav{display:none}
 .mobile-lessons label{display:block;font-size:17px;font-weight:650;margin-bottom:8px}
 .mobile-lessons select{width:100%;max-width:100%;min-height:52px;font-size:17px;line-height:1.5;padding:10px 36px 10px 12px;border:1px solid #b9c8b0;border-radius:9px;background:#fffefa;color:var(--ink)}
 .lesson{padding:30px}.lesson-body{max-width:100%}.reading-card{padding:24px}.atlas{grid-template-columns:1fr 1fr}
 .photo-gallery{grid-template-columns:1fr 1fr}.photo-gallery figure:last-child{grid-column:1 / -1;max-width:620px;width:100%;justify-self:center}
}
@media screen and (max-width:750px){
 body{font-size:18px;line-height:1.85}main{padding-inline:14px}.nav{padding:16px 14px;gap:14px}
 .brand{gap:10px;min-width:0}.brand img{width:54px;height:54px}.brand strong{font-size:17px;letter-spacing:.7px}.brand small{font-size:11px;letter-spacing:.7px}
 .nav nav{display:grid;grid-template-columns:1fr 1fr;gap:7px;width:100%;font-size:16px}
 .nav nav a{justify-content:center;text-align:center;border:1px solid var(--border);border-radius:8px;padding:7px 8px;min-height:46px;line-height:1.5}
 .hero{padding:28px 0}.hero p{font-size:18px}.hero-actions{gap:10px}.hero-meta{font-size:15px;gap:12px 18px}
 h1{font-size:40px}.course-bar{flex-wrap:wrap;gap:12px}.course-bar h2{font-size:23px}.progress-wrap{width:100%}.progress-wrap small{text-align:left}
 .course-layout{gap:18px}.lesson{padding:22px 16px;border-radius:12px}.lesson h2{font-size:29px}.lesson-body h3{font-size:23px;margin-top:30px}
 .goal{font-size:18px}.lesson-top span,.lesson-top small{font-size:14px}.reading-card{padding:18px 14px;margin-inline:0}
 .reading-title{font-size:24px}.reading-label{font-size:20px}.reading-card p,.lesson-body p{font-size:18px;line-height:1.85}
 .reading-example{padding:14px}.lesson-toc{display:grid;grid-template-columns:1fr;padding:10px;gap:7px}.lesson-toc a{font-size:16px;padding:9px 11px}
 .source-table{overflow:visible;margin:20px 0!important}
 .source-table table,.source-table tbody{display:block;width:100%}
 .source-table thead{display:none}
 .source-table tbody tr{display:block;margin:0 0 15px;padding:5px 12px;border:1px solid #c9d3c1;border-radius:8px;background:#fff}
 .source-table tbody td,.reading-card .source-table tbody td,.source-table tbody td:first-child{display:block;width:100%;min-width:0;font-size:17px;line-height:1.8;border:0;padding:12px 0;color:#293e30}
 .source-table tbody td+td{border-top:1px solid #e1e6dc}
 .source-table td::before{content:attr(data-label);display:block;font-weight:700;font-size:15px;line-height:1.6;color:var(--ink);margin-bottom:5px}
 .line-example{grid-template-columns:1fr;padding:16px}.line-example svg{width:100%;height:220px}.line-example p{font-size:18px}
 .shapes{grid-template-columns:1fr}.shape-card{padding:18px}.shape-card svg{height:72px}
 .lesson-tools{display:grid;grid-template-columns:1fr 1fr}.lesson-tools #mark-read{grid-column:1 / -1;grid-row:1}.lesson-tools button{width:100%;font-size:16px}
 .note-actions{align-items:flex-start}.note-actions small{flex-basis:100%}
 .atlas{grid-template-columns:1fr}.section-head h2,.sources h2{font-size:29px}.section-head p{font-size:18px}
 .map-toolbar{padding:14px;flex-direction:column;align-items:stretch}.segmented{width:100%}.segmented button{flex:1;font-size:16px;min-width:0;padding-inline:7px}
 .map svg{height:auto;max-height:440px}.map-detail{padding:20px 17px}.map-detail h3{font-size:27px}
 .photo-gallery{grid-template-columns:1fr}.photo-gallery figure:last-child{grid-column:auto;max-width:none}
 .photo-card figcaption{padding:17px}.photo-card figcaption p{font-size:18px}.photo-open img,.photo-gallery .photo-open img{height:310px;max-width:100%}
 .source-content-index,.source-grid{grid-template-columns:1fr}.source-reading{padding:17px}.source-card{padding:20px}.source-card p{font-size:18px}
 .book-figure{padding:12px}.book-figure img{max-width:100%;height:auto}
 .photo-dialog-bar{padding:15px;gap:12px}.photo-dialog-bar div{display:flex;gap:8px;flex-wrap:wrap}.photo-dialog-bar button{margin:0}
 .photo-dialog-scroll img{height:auto;max-height:60vh;width:auto;max-width:100%}.photo-dialog-scroll img.zoomed{height:auto;max-height:none;width:200%;max-width:none}
 .footer{gap:12px}.footer strong{letter-spacing:.4px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Main title: bold italic on every screen size. */
@media screen{.hero h1{font-weight:750;font-style:italic;font-size:clamp(40px,4.5vw,58px);line-height:1.25;letter-spacing:-.7px}.hero h1 em{font-style:inherit;font-weight:inherit}}
@media screen and (max-width:750px){.hero h1{font-size:clamp(34px,9.5vw,42px);line-height:1.3;letter-spacing:-.5px}}
