:root { --ink:#0b1c23; --teal:#295b5a; --sun:#d5a34d; --paper:#10242b; --line:#31464a; --muted:#a8b6b4; --white:#173038; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",Arial,sans-serif; line-height:1.55; letter-spacing:0; }
a { color:inherit; text-decoration:none; }
.site-header { height:72px; background:var(--white); border-bottom:1px solid rgba(21,43,55,.1); display:flex; align-items:center; justify-content:space-between; padding:0 clamp(22px,5vw,76px); position:relative; z-index:3; }
.brand { display:flex; gap:10px; align-items:center; font-weight:700; font-size:17px; }
.brand-mark { width:32px; height:32px; display:grid; place-items:center; background:var(--teal); color:#fff; font-family:"Libre Baskerville",serif; font-size:16px; }
.site-header nav { display:flex; align-items:stretch; gap:24px; height:72px; }
.site-header nav a { display:grid; place-items:center; font-size:14px; color:var(--muted); border-bottom:2px solid transparent; }
.site-header nav a.active, .site-header nav a:hover { color:var(--ink); border-bottom-color:var(--sun); }
.home-hero { min-height:560px; position:relative; display:flex; align-items:center; color:#fff; overflow:hidden; }
.hero-image, .hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.hero-image { object-fit:cover; object-position:center; }
.hero-shade { background:linear-gradient(90deg,rgba(7,22,29,.86) 0%,rgba(7,22,29,.62) 43%,rgba(7,22,29,.1) 78%); }
.hero-content { position:relative; z-index:1; max-width:670px; padding:70px clamp(22px,10vw,150px) 96px; }
.eyebrow { margin:0 0 11px; color:#edc778; text-transform:uppercase; font-size:11px; font-weight:700; letter-spacing:1.4px; }
.eyebrow.ink { color:var(--teal); }
h1,h2,h3 { font-family:"Libre Baskerville",Georgia,serif; line-height:1.2; margin:0; font-weight:700; }
.home-hero h1 { font-size:clamp(36px,5vw,62px); }
.hero-copy { max-width:590px; margin:20px 0 28px; font-size:17px; color:#f4f0e8; }
.button { display:inline-flex; min-height:44px; align-items:center; gap:13px; padding:10px 17px; font-weight:700; font-size:14px; border:1px solid transparent; }
.button-light { background:#e2b45c; color:#0b1c23; border-color:#f4d583; box-shadow:0 8px 20px rgba(0,0,0,.24); }.button-light:hover { background:#f4d583; color:#0b1c23; transform:translateY(-2px); box-shadow:0 12px 25px rgba(0,0,0,.32); }.button-light:active { background:#c99039; transform:translateY(0); box-shadow:0 4px 12px rgba(0,0,0,.25); }.button-light:focus-visible { outline:3px solid #fff4d8; outline-offset:4px; }.button-dark { background:var(--ink); color:#fff; }.button-dark:hover { background:var(--teal); }
.hero-course-meta { position:absolute; bottom:0; left:0; width:100%; padding:16px clamp(22px,10vw,150px); border-top:1px solid rgba(255,255,255,.25); display:flex; gap:26px; font-size:13px; z-index:1; background:rgba(5,16,20,.26); }
.hero-course-meta span+span::before { content:""; display:inline-block; width:4px; height:4px; vertical-align:middle; background:#edc778; margin:0 26px 2px 0; }
.section-wrap { max-width:1240px; margin:auto; padding:78px clamp(22px,5vw,64px); }
.overview { display:grid; grid-template-columns:minmax(260px,.85fr) 1.35fr; column-gap:100px; row-gap:25px; }.overview h2 { font-size:30px; }.overview-text { margin:29px 0 0; color:#3f5058; font-size:17px; }.pathway { grid-column:1/-1; display:flex; flex-wrap:wrap; margin-top:12px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.pathway span { padding:16px 18px; font-size:13px; font-weight:700; }.pathway span:not(:last-child)::after { content:"/"; margin-left:32px; color:#d0c7b9; }
.course-grid { display:grid; grid-template-columns:1.25fr 1fr .8fr; gap:18px; padding-top:0; }.feature-card { padding:34px; min-height:292px; border:1px solid var(--line); background:var(--white); display:flex; flex-direction:column; transition:transform .2s,box-shadow .2s; }.feature-card:hover { transform:translateY(-3px); box-shadow:0 13px 30px rgba(20,42,54,.09); }.syllabus-card { background:var(--ink); color:#fff; border:none; }.accent-card { background:#e7eeeb; }.card-index { color:var(--sun); font-size:12px; font-weight:700; margin:0 0 34px; }.feature-card h2 { font-size:24px; }.feature-card p:not(.card-index) { color:inherit; opacity:.82; font-size:14px; }.text-link { margin-top:auto; color:var(--sun); font-size:14px; font-weight:700; }.compact-list { padding-left:18px; font-size:14px; }.compact-list li+li { margin-top:10px; }.date-large { font-family:"Libre Baskerville",serif; font-weight:700; color:var(--teal)!important; font-size:32px!important; margin-bottom:5px!important; }.site-footer { max-width:1240px; margin:auto; padding:22px clamp(22px,5vw,64px); border-top:1px solid var(--line); display:flex; justify-content:space-between; color:var(--muted); font-size:13px; }.site-footer a { color:var(--teal); font-weight:700; }
.dashboard-page { background:#f7f6f2; }.dashboard-header { position:sticky; top:0; }.dashboard-shell { display:grid; grid-template-columns:240px minmax(0,1fr); }.sidebar { min-height:calc(100vh - 72px); padding:31px 19px; background:var(--white); border-right:1px solid var(--line); position:sticky; top:72px; align-self:start; }.side-title { padding:0 12px 23px; border-bottom:1px solid var(--line); }.side-title strong { font-family:"Libre Baskerville",serif; font-size:16px; line-height:1.35; display:block; }.section-nav { display:grid; padding:16px 0; }.section-nav a { padding:8px 12px; color:var(--muted); font-size:14px; border-left:2px solid transparent; }.section-nav a:hover,.section-nav a.active { color:var(--ink); background:#f1eee7; border-left-color:var(--sun); font-weight:700; }.back-home { display:block; margin:14px 12px; color:var(--teal); font-size:13px; font-weight:700; }.dashboard-main { max-width:1200px; width:100%; padding:0 clamp(24px,5vw,70px) 70px; }.dashboard-hero { padding:64px 0 36px; display:flex; justify-content:space-between; align-items:end; gap:25px; border-bottom:1px solid var(--line); }.dashboard-hero h1 { font-size:clamp(31px,4vw,45px); margin-bottom:13px; }.dashboard-hero p:last-child { margin:0; color:var(--muted); font-size:14px; }.dot { color:var(--sun); padding:0 7px; }.metrics { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--line); }.metrics div { padding:24px 18px 25px 0; }.metrics div+div { border-left:1px solid var(--line); padding-left:20px; }.metrics strong { display:block; font-family:"Libre Baskerville",serif; font-size:27px; }.metrics span { display:block; color:var(--muted); font-size:12px; }.content-section { padding:58px 0; border-bottom:1px solid var(--line); scroll-margin-top:70px; }.content-section h2 { font-size:29px; margin-bottom:22px; }.reading-copy { max-width:850px; color:#3d4d54; }.reading-copy p { margin:0 0 17px; }.note { margin-top:25px; padding:19px 22px; border-left:3px solid var(--sun); background:#fffaf0; color:#3d4d54; font-size:14px; }.objective-list { max-width:900px; display:grid; grid-template-columns:1fr 1fr; gap:0 46px; padding:0; list-style:none; counter-reset:objective; }.objective-list li { counter-increment:objective; padding:15px 0 15px 38px; border-top:1px solid var(--line); position:relative; font-size:14px; }.objective-list li::before { content:counter(objective,decimal-leading-zero); position:absolute; left:0; top:15px; color:var(--teal); font-size:11px; font-weight:700; }.section-heading-row { display:flex; justify-content:space-between; align-items:end; }.section-hint { color:var(--muted); font-size:12px; }.work-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:15px; }.work-card { background:var(--white); border:1px solid var(--line); padding:22px; min-height:214px; }.work-card label { display:flex; gap:8px; align-items:center; color:var(--teal); text-transform:uppercase; letter-spacing:1px; font-size:11px; font-weight:700; }.work-card input { accent-color:var(--teal); width:15px; height:15px; }.work-card h3 { margin:15px 0 5px; font-size:17px; }.work-card p { font-size:13px; color:#4e5d64; }.work-card .deadline { color:#9a6314; font-weight:700; margin:0; }.section-lead { color:var(--muted); max-width:800px; margin:-7px 0 22px; }.reading-toolbar { display:grid; grid-template-columns:230px 1fr; gap:9px 18px; align-items:center; margin:27px 0 15px; }.reading-toolbar label { font-size:12px; font-weight:700; color:var(--muted); }.reading-toolbar input { min-width:0; border:1px solid #cfc8bc; background:#fff; padding:10px 12px; color:var(--ink); font:inherit; font-size:13px; outline-color:var(--teal); }.filter-group { grid-column:1/-1; display:flex; gap:7px; flex-wrap:wrap; }.filter-btn { border:1px solid #cfc8bc; background:transparent; padding:6px 10px; font:inherit; font-size:12px; color:var(--muted); cursor:pointer; }.filter-btn.active,.filter-btn:hover { background:var(--teal); border-color:var(--teal); color:#fff; }.table-wrap { overflow:auto; border:1px solid var(--line); background:var(--white); }.data-table { width:100%; border-collapse:collapse; text-align:left; font-size:13px; min-width:550px; }.data-table th { background:#e9eee9; color:#3d4d54; padding:11px 14px; font-size:11px; text-transform:uppercase; letter-spacing:.75px; }.data-table td { padding:11px 14px; border-top:1px solid #e8e3d9; color:#405159; }.data-table tbody tr:hover { background:#fbf7ee; }.data-table td:first-child { font-weight:700; color:var(--ink); }.diary { margin-top:18px; background:#e7eeeb; padding:22px 25px; }.diary h3 { font-size:18px; }.diary p { font-size:14px; max-width:850px; margin-bottom:0; }.exam-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }.exam-grid article { background:var(--white); padding:21px; }.exam-grid span { display:block; color:var(--muted); text-transform:uppercase; letter-spacing:1px; font-size:10px; font-weight:700; }.exam-grid strong { display:block; margin-top:10px; font-family:"Libre Baskerville",serif; color:var(--teal); font-size:23px; }.evaluation-bars { max-width:800px; }.evaluation-bars div { position:relative; display:grid; grid-template-columns:1fr 45px; gap:12px; padding:12px 0 18px; font-size:14px; }.evaluation-bars b { text-align:right; }.evaluation-bars i { grid-column:1/-1; display:block; height:8px; background:#ded9cf; position:relative; }.evaluation-bars i::after { content:""; display:block; width:var(--size); height:100%; background:var(--teal); }.schedule-table { min-width:780px; }.schedule-table td { vertical-align:top; }.bibliography ol { margin:0; max-width:930px; padding-left:23px; columns:2; column-gap:50px; }.bibliography li { padding:0 0 12px 5px; break-inside:avoid; font-size:13px; color:#405159; }
@media (max-width:800px) { .home-hero { min-height:530px; }.hero-course-meta { padding:15px 22px; gap:12px; flex-wrap:wrap; }.hero-course-meta span+span::before { margin:0 12px 2px 0; }.overview { grid-template-columns:1fr; gap:0; }.course-grid { grid-template-columns:1fr; }.feature-card { min-height:220px; }.dashboard-shell { display:block; }.sidebar { position:relative; top:auto; min-height:auto; padding:12px 20px; border-right:none; border-bottom:1px solid var(--line); }.side-title { display:none; }.section-nav { display:flex; overflow:auto; padding:0; }.section-nav a { white-space:nowrap; border-left:none; border-bottom:2px solid transparent; }.section-nav a.active { border-left:none; border-bottom-color:var(--sun); }.back-home { display:none; }.dashboard-main { padding:0 22px 48px; }.dashboard-hero { padding-top:42px; align-items:start; flex-direction:column; }.metrics { grid-template-columns:repeat(2,1fr); }.metrics div:nth-child(3) { border-left:none; }.content-section { padding:45px 0; }.objective-list,.work-grid { grid-template-columns:1fr; }.reading-toolbar { grid-template-columns:1fr; }.exam-grid { grid-template-columns:1fr 1fr; }.bibliography ol { columns:1; }.site-footer { padding:20px 22px; } }
@media (max-width:430px) { .site-header { display:grid; height:auto; min-height:104px; grid-template-columns:1fr; gap:8px; padding:10px 14px 0; }.brand { font-size:15px; }.site-header nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:100%; height:44px; gap:0; border-top:1px solid #284047; }.site-header nav a { min-width:0; padding:0 4px; font-size:12px; }.hero-content { padding:55px 22px 125px; }.home-hero h1 { font-size:36px; }.overview h2,.content-section h2 { font-size:25px; }.pathway span { padding:10px 8px; }.pathway span:not(:last-child)::after { margin-left:16px; }.metrics strong { font-size:24px; } }

/* Dark course palette: inspired by the desert, parchment, and evening tones of the cover image. */
body { color:#f5eddb; }
.site-header { background:#0b1c23; border-color:#284047; }
.brand { color:#f5eddb; }.brand-mark { background:#d5a34d; color:#10242b; }
.site-header nav a { color:#b2c0bd; }.site-header nav a.active,.site-header nav a:hover { color:#f5eddb; border-bottom-color:#d5a34d; }
.home-page .overview { color:#f5eddb; }.overview-text { color:#cbd3c9; }.pathway { border-color:#385057; }.pathway span:not(:last-child)::after { color:#77877f; }
.feature-card { background:#18343a; border-color:#3b5657; color:#f5eddb; }.feature-card:hover { box-shadow:0 13px 30px rgba(0,0,0,.25); }.syllabus-card { background:#0a1b22; border:1px solid #3a5859; }.accent-card { background:#285351; }.date-card { background:#1a2c31; }.date-large { color:#e4b664!important; }.site-footer { border-color:#385057; color:#acb9b6; }.site-footer a { color:#e2b45c; }
.lessons-callout { max-width:1240px; margin-bottom:78px; padding-top:43px; padding-bottom:43px; display:flex; justify-content:space-between; gap:30px; align-items:center; border-top:1px solid #41585b; border-bottom:1px solid #41585b; }.lessons-callout h2 { font-size:29px; margin-bottom:12px; }.lessons-callout p:not(.eyebrow) { margin:0; max-width:710px; color:#cbd3c9; }.lessons-page { min-height:100vh; background:#10242b; }.lessons-main { max-width:1000px; margin:auto; padding:76px clamp(22px,5vw,64px); }.access-gate { max-width:570px; margin:40px auto; padding:42px; border:1px solid #3b5658; background:#173139; box-shadow:0 22px 52px rgba(0,0,0,.22); }.access-gate h1,.lesson-heading h1 { font-size:34px; }.access-gate > p:not(.eyebrow) { color:#c8d1c9; }.access-gate label { display:block; margin:28px 0 8px; color:#e5b75f; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:1px; }.access-input { display:flex; gap:10px; }.access-input input { min-width:0; flex:1; border:1px solid #496667; background:#0b2027; color:#f5eddb; padding:11px 12px; font:inherit; outline-color:#e5b75f; }.access-error { color:#ffcf74; font-size:13px; }.access-gate .back-home { margin:28px 0 0; color:#e5b75f; }.lesson-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; padding-bottom:33px; border-bottom:1px solid #3b5658; }.lesson-heading p:not(.eyebrow) { margin:11px 0 0; color:#c8d1c9; }.sign-out { border:1px solid #496667; background:transparent; color:#f5eddb; padding:9px 12px; font:inherit; font-size:13px; cursor:pointer; }.sign-out:hover { background:#264b4a; }.lesson-sections { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; padding-top:30px; }.lesson-section { border:1px solid #3b5658; background:#173139; padding:20px; }.lesson-section h2 { font-size:19px; color:#f3d38b; }.lesson-links { display:grid; grid-template-columns:repeat(2,1fr); margin-top:17px; border-top:1px solid #3b5658; }.lesson-links a { padding:10px 4px; border-bottom:1px solid #3b5658; color:#d9e0d7; font-size:13px; }.lesson-links a:hover { color:#f3d38b; }
.lesson-reader-page { min-height:100vh; background:#10242b; }.lesson-reader-main { max-width:920px; margin:auto; padding:44px clamp(22px,5vw,64px) 70px; }.lesson-reader-top,.lesson-pager { display:flex; justify-content:space-between; gap:16px; color:#e5b75f; font-size:13px; }.lesson-reader-top { margin-bottom:22px; }.lesson-reader-top span { color:#b7c3bc; text-transform:capitalize; }.lesson-reader { padding:clamp(25px,5vw,55px); background:#f8f3e8; color:#172a2e; box-shadow:0 20px 48px rgba(0,0,0,.2); }.lesson-reader h1 { max-width:750px; margin-bottom:37px; color:#13292e; font-size:clamp(28px,4vw,42px); }.lesson-reader h2 { margin:35px 0 13px; color:#1d5658; font-size:21px; }.lesson-reader p { max-width:770px; margin:0 0 15px; color:#33484a; font-family:"Libre Baskerville",Georgia,serif; font-size:15px; line-height:1.75; }.lesson-reader .eyebrow { color:#94691f; font-family:"DM Sans",Arial,sans-serif; }.lesson-reader .lesson-item { padding-left:21px; position:relative; }.lesson-reader .lesson-item::before { content:""; position:absolute; top:.82em; left:0; width:6px; height:6px; background:#d5a34d; }.lesson-download { display:flex; justify-content:space-between; gap:28px; align-items:center; margin-top:48px; padding-top:28px; border-top:1px solid #d7ccbb; }.lesson-download h2 { margin:0 0 8px; }.lesson-download p:not(.eyebrow) { margin:0; font-family:"DM Sans",Arial,sans-serif; font-size:14px; line-height:1.5; }.lesson-pager { margin-top:24px; }.lesson-pager a:hover,.lesson-reader-top a:hover { color:#fff4d8; }
.geography-reader { max-width:none; }.geography-title { padding:6px 0 28px; border-bottom:1px solid #d8cebe; }.geography-title h1 { margin:0 0 18px; }.geography-title .lesson-intro { max-width:720px; margin:0; color:#25494a; font-size:17px; line-height:1.65; }.geo-section { padding-top:36px; }.geo-section > h2 { margin:0 0 20px; padding-left:15px; border-left:4px solid #d5a34d; font-size:24px; }.geo-section h3 { margin:31px 0 14px; color:#183f43; font-family:"DM Sans",Arial,sans-serif; font-size:17px; }.geo-section strong { color:#162c31; }.geo-section em { color:#345a58; }.geo-definitions { margin:0 0 21px; padding:0; }.geo-definitions dt { margin:18px 0 4px; color:#183f43; font-family:"DM Sans",Arial,sans-serif; font-size:16px; font-weight:700; }.geo-definitions dd { margin:0; color:#33484a; font-family:"Libre Baskerville",Georgia,serif; font-size:15px; line-height:1.75; }.notebook-card { margin-top:36px; padding:27px; border:1px solid #d7ccbb; background:#eef1e9; }.notebook-card-copy h2 { margin:0 0 9px; }.notebook-card-copy p:not(.eyebrow) { margin-bottom:20px; font-family:"DM Sans",Arial,sans-serif; font-size:14px; line-height:1.55; }.notebook-card iframe { display:block; width:100%; min-height:560px; border:1px solid #bfc9c0; background:#fff; }.notebook-open { display:inline-flex; margin-top:16px; color:#1d5658; font-size:14px; font-weight:700; }.notebook-open:hover { color:#94691f; }
.flashcards-module { margin-top:36px; padding:28px; background:#0d2a31; color:#fff5e1; }.flashcards-heading { display:flex; justify-content:space-between; align-items:start; gap:22px; }.flashcards-heading h2 { margin:0 0 8px; color:#fff1d0; }.flashcards-heading p:not(.eyebrow) { max-width:620px; margin:0; color:#c7d3cb; font-family:"DM Sans",Arial,sans-serif; font-size:14px; line-height:1.55; }.flashcards-module .eyebrow { color:#e6ba65; }.flashcard-text-button { border:1px solid #4d7271; background:transparent; color:#f7d486; padding:8px 11px; font:inherit; font-size:12px; font-weight:700; cursor:pointer; }.flashcard-text-button:hover { background:#254c50; }.flashcard-meter { display:grid; grid-template-columns:1fr auto; gap:7px 18px; margin:25px 0 16px; color:#c6d2ca; font-size:12px; }.flashcard-meter i { grid-column:1/-1; display:block; height:5px; background:#345458; overflow:hidden; }.flashcard-meter b { display:block; height:100%; width:0; background:#d5a34d; transition:width .25s ease; }.flashcard-stage { position:relative; min-height:310px; cursor:pointer; perspective:1200px; }.flashcard-face { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:34px clamp(22px,5vw,58px); border:1px solid #5b7876; backface-visibility:hidden; text-align:center; transition:transform .5s ease; }.flashcard-front { background:#173b42; }.flashcard-back { background:#295754; transform:rotateY(180deg); }.flashcard-stage.is-flipped .flashcard-front { transform:rotateY(180deg); }.flashcard-stage.is-flipped .flashcard-back { transform:rotateY(360deg); }.flashcard-face span { color:#e9c16d; text-transform:uppercase; letter-spacing:1.2px; font-size:11px; font-weight:700; }.flashcard-face strong { max-width:700px; margin:19px 0; font-family:"Libre Baskerville",Georgia,serif; font-size:clamp(20px,3vw,29px); line-height:1.4; }.flashcard-face small { color:#bccbc3; font-size:12px; }.flashcard-controls { display:grid; grid-template-columns:42px 1fr 1fr 1fr 42px; gap:8px; margin-top:15px; }.flashcard-controls button { min-height:42px; border:1px solid #4d7271; background:#173b42; color:#fff4db; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }.flashcard-controls button:hover { background:#d5a34d; border-color:#d5a34d; color:#10242b; }.flashcard-controls #flashcard-learned.is-marked { background:#d5a34d; border-color:#d5a34d; color:#10242b; }
.dashboard-page { background:#10242b; }.dashboard-header { background:#0b1c23; }
.media-section { max-width:1240px; display:grid; grid-template-columns:1fr; gap:45px; padding-top:20px; padding-bottom:78px; }.media-section-heading { max-width:730px; }.media-section-heading h2 { font-size:31px; margin-bottom:10px; }.media-section-heading p:last-child { color:#cbd3c9; margin:0; }.media-block { width:100%; }.media-block h2 { font-size:27px; margin-bottom:22px; }.video-frame { background:#08171d; border:1px solid #3b5658; box-shadow:0 20px 45px rgba(0,0,0,.2); }.video-frame video { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }.panorama-trigger { display:block; width:100%; padding:0; border:1px solid #3b5658; background:#08171d; color:#f5eddb; cursor:zoom-in; text-align:left; box-shadow:0 20px 45px rgba(0,0,0,.2); }.panorama-trigger img { display:block; width:100%; max-height:620px; object-fit:contain; }.panorama-trigger > span { display:flex; justify-content:space-between; padding:12px 15px; color:#e2b45c; font-size:13px; font-weight:700; }.panorama-trigger:hover { border-color:#d5a34d; }.panorama-trigger:focus-visible { outline:3px solid #fff4d8; outline-offset:4px; }
.panorama-viewer[hidden] { display:none; }.panorama-viewer { position:fixed; z-index:20; inset:0; width:100vw; height:100vh; padding:0; border:0; background:#07151b; color:#f5eddb; overflow:hidden; }.panorama-viewer::before { content:""; position:absolute; inset:0; background:rgba(1,8,11,.88); }.viewer-toolbar,.viewer-canvas { position:relative; z-index:1; }.viewer-toolbar { min-height:58px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 14px 10px 20px; border-bottom:1px solid #355154; background:#102a31; }.viewer-toolbar strong { font-family:"Libre Baskerville",Georgia,serif; font-size:15px; }.viewer-actions { display:flex; align-items:center; gap:6px; }.viewer-actions button,.viewer-actions output { min-height:32px; border:1px solid #496667; background:#17373c; color:#f5eddb; padding:5px 9px; font:inherit; font-size:12px; cursor:pointer; }.viewer-actions button:hover { background:#d5a34d; border-color:#d5a34d; color:#10242b; }.viewer-actions output { display:grid; place-items:center; min-width:50px; cursor:default; }.viewer-actions .viewer-close { border-color:transparent; background:transparent; color:#f5eddb; font-size:24px; padding:0 5px; }.viewer-canvas { height:calc(100% - 58px); overflow:auto; display:grid; place-items:center; padding:28px; background:#061218; }.viewer-canvas img { max-width:100%; max-height:100%; object-fit:contain; transform-origin:center; transition:transform .18s ease; cursor:zoom-in; }.viewer-canvas img:active { cursor:grabbing; }.viewer-open { overflow:hidden; }
.reveal { opacity:0; transform:translateY(22px); transition:opacity .6s ease, transform .6s ease; }.reveal.is-visible { opacity:1; transform:none; }.media-block:nth-child(3) { transition-delay:.1s; }
.dashboard-shell { display:block; }.dashboard-main { margin:0 auto; max-width:1200px; padding-left:clamp(22px,5vw,70px); padding-right:clamp(22px,5vw,70px); }
.course-guide { position:sticky; top:72px; z-index:2; background:#153139; border-bottom:1px solid #3b5557; }.course-guide summary { min-height:51px; max-width:1200px; margin:auto; padding:0 clamp(22px,5vw,70px); display:grid; grid-template-columns:150px 1fr 22px; align-items:center; cursor:pointer; list-style:none; color:#f5eddb; font-size:13px; font-weight:700; }.course-guide summary::-webkit-details-marker { display:none; }.course-guide summary span:first-child { color:#dcb15f; text-transform:uppercase; letter-spacing:1px; font-size:10px; }.guide-summary-title { font-family:"Libre Baskerville",Georgia,serif; }.guide-chevron { color:#dcb15f; font-size:20px; text-align:right; transition:transform .18s; }.course-guide[open] .guide-chevron { transform:rotate(45deg); }
.course-guide .section-nav { max-width:1200px; margin:auto; padding:0 clamp(22px,5vw,70px) 19px; display:flex; flex-wrap:wrap; gap:6px 2px; }.course-guide .section-nav a { padding:7px 10px; border:1px solid transparent; color:#bcc8c3; font-size:13px; }.course-guide .section-nav a:hover,.course-guide .section-nav a.active { background:#21454b; border-color:#426263; color:#fff4da; }
.dashboard-hero { border-color:#3a5054; }.dashboard-hero p:last-child,.metrics span,.section-lead,.section-hint { color:#b9c4bd; }.metrics,.content-section { border-color:#3a5054; }.metrics div+div { border-color:#3a5054; }.metrics strong { color:#f2d58d; }.eyebrow.ink { color:#e0b35e; }.button-dark { background:#d5a34d; color:#10242b; }.button-dark:hover { background:#edc46f; }
.reading-copy { color:#d1d9d0; }.note { background:#19373b; color:#e5ebe2; border-left-color:#d5a34d; }.objective-list li { border-color:#3a5054; }.objective-list li::before { color:#e2b45c; }
.work-card { background:#173139; border-color:#3a5658; }.work-card label { color:#e0b35e; }.work-card input { accent-color:#d5a34d; }.work-card p { color:#c0cbc4; }.work-card .deadline { color:#e5b75f; }
.reading-toolbar label { color:#bac6be; }.reading-toolbar input { background:#10242b; border-color:#456163; color:#f5eddb; outline-color:#d5a34d; }.filter-btn { border-color:#466466; color:#c5d0c8; }.filter-btn.active,.filter-btn:hover { background:#d5a34d; border-color:#d5a34d; color:#10242b; }
.table-wrap { background:#173139; border-color:#3a5658; }.data-table th { background:#25474a; color:#f4e9d3; }.data-table td { border-color:#365154; color:#d3dbd2; }.data-table td:first-child { color:#f5eddb; }.data-table tbody tr:hover { background:#224247; }.diary { background:#264b4a; }.exam-grid { background:#3a5658; border-color:#3a5658; }.exam-grid article { background:#173139; }.exam-grid span { color:#bac6be; }.exam-grid strong { color:#e4b664; }.evaluation-bars i { background:#3c5455; }.evaluation-bars i::after { background:#d5a34d; }.bibliography li { color:#d0d9d0; }
@media (max-width:800px) { .course-guide { top:72px; }.course-guide summary { grid-template-columns:1fr 22px; min-height:54px; }.course-guide summary span:first-child { display:none; }.course-guide .section-nav { display:grid; grid-template-columns:1fr 1fr; padding-bottom:15px; }.course-guide .section-nav a { padding:9px 10px; }.dashboard-main { padding-left:22px; padding-right:22px; }.media-section { gap:36px; padding-top:10px; padding-bottom:54px; }.media-block h2,.media-section-heading h2 { font-size:24px; }.panorama-trigger img { max-height:none; }.viewer-toolbar { align-items:flex-start; flex-direction:column; padding:13px; }.viewer-actions { width:100%; flex-wrap:wrap; }.viewer-canvas { height:calc(100% - 98px); padding:14px; } }
@media (max-width:430px) { .course-guide { top:104px; } }
@media (max-width:800px) { .lessons-callout { align-items:flex-start; flex-direction:column; margin-bottom:54px; }.lesson-sections { grid-template-columns:1fr; }.lesson-heading { align-items:flex-start; flex-direction:column; }.access-gate { padding:28px 22px; }.access-input { align-items:stretch; flex-direction:column; }.access-input .button { justify-content:center; }.lessons-main { padding-top:42px; } }
@media (max-width:800px) { .lesson-reader-main { padding-top:29px; }.lesson-reader-top,.lesson-pager { align-items:flex-start; flex-direction:column; }.lesson-reader { padding:26px 20px; }.lesson-reader h1 { margin-bottom:28px; }.lesson-reader p { font-size:14px; line-height:1.7; }.lesson-download { align-items:flex-start; flex-direction:column; }.lesson-download .button { width:100%; justify-content:center; } }
@media (max-width:800px) { .geography-title .lesson-intro { font-size:16px; }.geo-section { padding-top:29px; }.geo-section > h2 { font-size:21px; }.geo-section h3,.geo-definitions dt { font-size:15px; }.geo-definitions dd { font-size:14px; line-height:1.7; }.notebook-card { margin-top:28px; padding:20px 14px; }.notebook-card iframe { min-height:440px; } }
@media (max-width:800px) { .flashcards-module { margin:28px -6px 0; padding:22px 15px; }.flashcards-heading { flex-direction:column; }.flashcard-text-button { width:100%; }.flashcard-stage { min-height:350px; }.flashcard-face { padding:24px 18px; }.flashcard-face strong { font-size:20px; }.flashcard-controls { grid-template-columns:42px 1fr 1fr 42px; }.flashcard-controls #flashcard-flip { grid-column:2/4; }.flashcard-controls #flashcard-review { grid-column:2; }.flashcard-controls #flashcard-learned { grid-column:3; } }

/* Lesson directory: a single-column reading path that stays compact on phones. */
.lesson-accordion { display:grid; gap:12px; padding-top:28px; }
.lesson-accordion-section { border:1px solid #3b5658; background:#173139; }
.lesson-accordion-section summary { display:grid; grid-template-columns:128px minmax(0,1fr) auto 24px; gap:14px; align-items:center; min-height:68px; padding:15px 20px; cursor:pointer; list-style:none; }
.lesson-accordion-section summary::-webkit-details-marker { display:none; }
.lesson-accordion-section summary::after { content:"+"; color:#e5b75f; font-size:24px; line-height:1; text-align:right; }
.lesson-accordion-section[open] summary { border-bottom:1px solid #3b5658; background:#1b383e; }
.lesson-accordion-section[open] summary::after { content:"−"; }
.lesson-accordion-section .section-number { color:#e5b75f; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:1px; }
.lesson-accordion-section summary strong { color:#f7ecd5; font-family:"Libre Baskerville",Georgia,serif; font-size:18px; line-height:1.35; }
.lesson-accordion-section summary small { color:#afc0b9; font-size:12px; white-space:nowrap; }
.accordion-chapters { padding:0 20px 9px; }
.chapter-row { display:grid; grid-template-columns:128px minmax(0,1fr); gap:14px; padding:16px 0; border-bottom:1px solid #304d50; }
.chapter-row:last-child { border-bottom:0; }
.chapter-row:hover { background:#1d4144; margin:0 -10px; padding-left:10px; padding-right:10px; }
.chapter-row:focus-visible { outline:3px solid #f3cc7a; outline-offset:3px; }
.chapter-number { color:#edc778; font-size:13px; font-weight:700; padding-top:2px; }
.chapter-copy { display:grid; gap:5px; }
.chapter-copy strong { color:#f7ecd5; font-size:15px; line-height:1.35; }
.chapter-copy small { color:#bdcbc3; font-size:13px; line-height:1.55; }
.structured-lesson .lesson-body { max-width:790px; }
.structured-lesson h2 { margin-top:42px; padding:11px 0 10px 15px; border-left:4px solid #d5a34d; border-bottom:1px solid #d9cebd; font-family:"DM Sans",Arial,sans-serif; font-size:18px; line-height:1.45; }
.structured-lesson h3 { margin:29px 0 10px; color:#264e50; font-family:"DM Sans",Arial,sans-serif; font-size:16px; line-height:1.5; }
.structured-lesson p + h2,.structured-lesson .lesson-item + h2 { margin-top:46px; }
.structured-lesson .lesson-item { margin:15px 0 8px; padding:11px 0 11px 21px; border-left:2px solid #d5a34d; background:#f0ebdf; }
.structured-lesson .lesson-item::before { top:1.12em; left:8px; width:5px; height:5px; }
.structured-lesson .lesson-subitem { margin:10px 0 7px; padding-left:22px; color:#24494b; font-family:"DM Sans",Arial,sans-serif; font-size:14px; font-weight:700; }
.structured-lesson .lesson-subitem + p { margin-top:0; }
.structured-lesson strong { color:#183a3d; }
.structured-lesson em { color:#345b58; }
@media (max-width:800px) { .lesson-accordion { gap:10px; }.lesson-accordion-section summary { grid-template-columns:1fr auto 22px; gap:8px 12px; min-height:76px; padding:14px 15px; }.lesson-accordion-section .section-number { grid-column:1/-1; }.lesson-accordion-section summary strong { font-size:16px; }.accordion-chapters { padding:0 15px 7px; }.chapter-row { grid-template-columns:1fr; gap:5px; padding:14px 0; }.chapter-row:hover { margin:0 -6px; padding-left:6px; padding-right:6px; }.chapter-number { font-size:12px; }.chapter-copy strong { font-size:14px; }.chapter-copy small { font-size:12px; }.structured-lesson h2 { margin-top:34px; font-size:16px; }.structured-lesson h3 { font-size:15px; }.structured-lesson .lesson-item { padding:9px 0 9px 18px; } }

/* Native Notebook-style self-assessment for chapter 3. */
.quiz-module { margin-top:34px; padding:28px; border:1px solid #d6c9b5; background:#f4eee1; color:#172a2e; }
.quiz-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; padding-bottom:21px; border-bottom:1px solid #d7cbb9; }
.quiz-heading h2 { margin:0 0 8px; color:#173f43; }
.quiz-heading p:not(.eyebrow) { max-width:610px; margin:0; color:#4d5a58; font-family:"DM Sans",Arial,sans-serif; font-size:14px; }
.quiz-progress { display:grid; grid-template-columns:1fr; gap:8px; margin:21px 0 18px; color:#6e5b34; font-family:"DM Sans",Arial,sans-serif; font-size:12px; font-weight:700; }
.quiz-progress i { display:block; height:5px; background:#ddd1bd; overflow:hidden; }
.quiz-progress b { display:block; width:0; height:100%; background:#c99239; transition:width .25s ease; }
.quiz-card { padding:clamp(20px,4vw,32px); border:1px solid #d8cdbb; background:#fffaf0; }
.quiz-card h3 { margin:0 0 24px; color:#1b3437; font-family:"Libre Baskerville",Georgia,serif; font-size:clamp(18px,2.4vw,23px); line-height:1.5; }
.quiz-choices { display:grid; gap:10px; }
.quiz-choice { display:grid; grid-template-columns:32px minmax(0,1fr); gap:11px; align-items:start; width:100%; padding:13px; border:1px solid #cfc2ac; background:#fffaf0; color:#263e40; cursor:pointer; font:inherit; text-align:left; }
.quiz-choice span { display:grid; width:28px; height:28px; place-items:center; background:#ead8b6; color:#554420; font-size:12px; font-weight:700; }
.quiz-choice strong { padding-top:3px; font-family:"DM Sans",Arial,sans-serif; font-size:14px; line-height:1.5; }
.quiz-choice:hover:not(:disabled) { border-color:#b58232; background:#fff3d8; }
.quiz-choice:focus-visible,.quiz-next:focus-visible { outline:3px solid #295b5a; outline-offset:3px; }
.quiz-choice:disabled { cursor:default; opacity:.72; }
.quiz-choice.is-correct { border-color:#39715b; background:#e6f0e6; opacity:1; }.quiz-choice.is-correct span { background:#39715b; color:#fff; }
.quiz-choice.is-incorrect { border-color:#a64f43; background:#f8e6df; opacity:1; }.quiz-choice.is-incorrect span { background:#a64f43; color:#fff; }
.quiz-feedback { margin-top:18px; padding:15px 17px; border-left:4px solid #39715b; background:#ebf3e9; color:#254637; font-family:"DM Sans",Arial,sans-serif; font-size:14px; }.quiz-feedback.is-incorrect { border-left-color:#a64f43; background:#fae9e3; color:#69372e; }.quiz-feedback p { margin:6px 0 0; color:inherit; font-family:"DM Sans",Arial,sans-serif; font-size:13px; line-height:1.55; }
.quiz-next { margin-top:18px; border:1px solid #1c5758; background:#1c5758; color:#fff8e9; padding:11px 16px; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }.quiz-next:hover { background:#28706d; }
.quiz-result { display:grid; gap:6px; padding:24px; border:1px solid #d5a34d; background:#fff2d4; text-align:center; }.quiz-result strong { color:#1b5253; font-family:"Libre Baskerville",Georgia,serif; font-size:30px; }.quiz-result span { color:#4f513f; font-family:"DM Sans",Arial,sans-serif; font-size:14px; }
@media (max-width:800px) { .quiz-module { margin:28px -6px 0; padding:22px 15px; }.quiz-heading { flex-direction:column; }.quiz-heading .flashcard-text-button { width:100%; }.quiz-card { padding:20px 15px; }.quiz-choice { padding:11px; }.quiz-choice strong { font-size:13px; } }

/* Keep study-card copy legible regardless of the lesson reader's text colors. */
.flashcards-module .flashcard-face { display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:11px; }
.flashcards-module .flashcard-face strong { display:grid; place-items:center; min-width:0; min-height:0; max-width:100%; margin:0; color:#fffaf0; font-size:clamp(18px,2.25vw,27px); line-height:1.35; overflow-wrap:anywhere; text-wrap:pretty; }
.flashcards-module .flashcard-face small { color:#dce6dc; }
.flashcards-module .flashcard-stage.is-long-copy .flashcard-face strong { font-size:clamp(16px,1.85vw,22px); line-height:1.32; }
.flashcards-module .flashcard-stage.is-extra-long-copy .flashcard-face strong { font-size:clamp(14px,1.6vw,19px); line-height:1.27; }
@media (max-width:800px) { .flashcards-module .flashcard-face strong { font-size:clamp(18px,5.4vw,23px); }.flashcards-module .flashcard-stage.is-long-copy .flashcard-face strong { font-size:clamp(16px,4.5vw,20px); }.flashcards-module .flashcard-stage.is-extra-long-copy .flashcard-face strong { font-size:clamp(14px,4vw,18px); } }
.lesson-video-section { margin-top:34px; padding:28px; border:1px solid #d6c9b5; background:#f4eee1; color:#172a2e; }
.lesson-video-section h2 { margin:0 0 20px; color:#173f43; font-family:"Libre Baskerville",Georgia,serif; font-size:clamp(21px,3vw,29px); }
.lesson-video-frame { overflow:hidden; border:1px solid #3b5658; background:#08171d; box-shadow:0 18px 38px rgba(0,0,0,.18); }
.lesson-video-frame video { display:block; width:100%; max-height:620px; aspect-ratio:16/9; object-fit:contain; background:#08171d; }
@media (max-width:800px) { .lesson-video-section { margin:28px -6px 0; padding:22px 15px; }.lesson-video-section h2 { font-size:22px; }.lesson-video-frame video { aspect-ratio:16/10; } }

.lesson-reader-page .lesson-status-dock { grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); }
.quiz-heading .flashcard-text-button { border-color:#295b5a; background:#fffaf0; color:#17494c; }
.quiz-heading .flashcard-text-button:hover { background:#e8f0e9; color:#0d3538; }
.quiz-heading .flashcard-text-button:disabled { border-color:#aab7b2; background:#e4e7e2; color:#66736f; cursor:not-allowed; opacity:1; }

.manual-progress-form { display:grid; grid-template-columns:minmax(220px,1.5fr) minmax(250px,1fr); gap:22px 28px; align-items:start; }
.manual-progress-form .manual-progress-options { display:flex; flex-wrap:wrap; gap:12px 20px; min-width:0; margin:0; padding:14px 16px; border:1px solid #527073; }
.manual-progress-form .manual-progress-options legend { padding:0 6px; color:#f5d084; font-weight:700; }
.manual-progress-form .manual-progress-options label { display:flex; gap:8px; align-items:center; margin:0; color:#eef4ed; }
.manual-progress-form .manual-progress-options input { width:18px; height:18px; margin:0; accent-color:#d5a34d; }
.manual-progress-form .primary-button { align-self:end; justify-self:start; }
@media (max-width:800px) { .manual-progress-form { grid-template-columns:1fr; }.manual-progress-form .manual-progress-options { display:grid; grid-template-columns:1fr; }.manual-progress-form .primary-button { width:100%; } }
