:root{--navy:#0f2340;--blue:#1d3b66;--slate:#8a9bb4;--mist:#dfe5ee;--gold:#c9a227;--gold-dark:#8a6d10;--gold-light:#e8d18a;--teal:#2a7f7a;--teal-light:#a8d5cf;--cream:#f7f3e8;--paper:#fffdf8;--ink:#1b2533;--muted:#5a6778;--line:#e4e0d4;--danger:#b3261e;--success:#1f7a4d;--font-serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--font-sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--radius:14px;--shadow:0 1px 2px rgba(15,35,64,0.06),0 8px 24px rgba(15,35,64,0.06)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-sans);font-size:17px;line-height:1.65}img{max-width:100%;height:auto;display:block}a{color:var(--blue);text-underline-offset:3px}a:hover,h1,h2,h3,h4{color:var(--navy)}h1,h2,h3,h4{font-family:var(--font-serif);line-height:1.2;letter-spacing:-.01em}h1{font-size:clamp(2rem,4vw,2.8rem);margin:0 0 .5rem}h2{font-size:1.6rem;margin:2.2rem 0 .75rem}h3{font-size:1.25rem;margin:1.6rem 0 .5rem}.container{width:100%;max-width:1120px;margin:0 auto;padding:0 20px}.narrow{max-width:760px}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:700;color:var(--gold-dark);margin:0 0 .4rem}.skip-link{position:absolute;left:-999px;top:8px;background:var(--navy);color:white;padding:8px 12px;border-radius:8px;z-index:10}.skip-link:focus{left:8px}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.site-header{background:var(--navy);color:white;position:-webkit-sticky;position:sticky;top:0;z-index:5;box-shadow:0 1px 0 rgba(255,255,255,.06)}.header-inner{justify-content:space-between;height:64px;gap:16px}.brand,.header-inner{display:flex;align-items:center}.brand{gap:10px;text-decoration:none;font-size:1.15rem}.brand,.brand:hover{color:white}.brand strong{color:var(--gold-light);font-weight:700}.site-nav{display:flex;align-items:center;gap:20px}.site-nav a{color:#dbe3ef;text-decoration:none;font-weight:500}.site-nav a:hover{color:white}.site-nav a.button,.site-nav a.button:hover{color:var(--navy)}.site-nav form{margin:0}.link-button{background:none;border:0;padding:0;font:inherit;color:#dbe3ef;cursor:pointer;font-weight:500}.link-button:hover{color:white}.site-footer{margin-top:80px;padding:32px 0 48px;border-top:1px solid var(--line);font-size:.9rem;color:var(--muted)}.site-footer p{max-width:760px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--gold);color:var(--navy);border:0;border-radius:999px;padding:12px 22px;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .12s ease,background .12s ease,box-shadow .12s ease;box-shadow:0 2px 0 var(--gold-dark)}.button:hover{background:#d6b23d;color:var(--navy);transform:translateY(-1px)}.button:active{transform:translateY(1px);box-shadow:none}.button:disabled{opacity:.6;cursor:default;transform:none}.button-small{padding:7px 16px;font-size:.92rem}.button-secondary{background:white;color:var(--navy);box-shadow:inset 0 0 0 2px var(--mist)}.button-secondary:hover{background:var(--paper);box-shadow:inset 0 0 0 2px var(--slate)}.button-done{background:var(--success);color:white;box-shadow:0 2px 0 #14532f}.button-done:hover{background:#238a57;color:white}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.hero{padding:56px 0 32px;display:grid;grid-template-columns:1.1fr 1fr;grid-gap:40px;gap:40px;align-items:center}.hero p.lead{font-size:1.2rem;color:var(--muted);max-width:540px}.hero-art{border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}@media (max-width:860px){.hero{grid-template-columns:1fr;padding-top:32px}}.course-card{display:grid;grid-template-columns:1fr 1.2fr;overflow:hidden;text-decoration:none;color:inherit}.course-card:hover{color:inherit;border-color:var(--gold-light)}.course-card .body{padding:28px}.course-card h3{margin-top:0;font-size:1.6rem}@media (max-width:760px){.course-card{grid-template-columns:1fr}}.stat-row{display:flex;flex-wrap:wrap;gap:10px 18px;font-size:.92rem;color:var(--muted);margin:12px 0 18px}.stat-row span:before{content:"◆ ";color:var(--gold);font-size:.7em;vertical-align:2px}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.8rem;font-weight:600;background:var(--mist);color:var(--blue)}.pill-gold{background:#f4e7bb;color:#6b540c}.pill-green{background:#d6f0e2;color:#14532f}.progress{height:10px;background:var(--mist);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--gold));border-radius:999px;transition:width .4s ease}.ring{position:relative;width:92px;height:92px;flex:none}.ring svg{transform:rotate(-90deg)}.ring .ring-label{position:absolute;inset:0;display:grid;place-items:center;font-weight:800;color:var(--navy);font-size:1.2rem}.course-hero{padding:40px 0 8px}.course-hero-grid{display:grid;grid-template-columns:1.2fr 1fr;grid-gap:36px;gap:36px;align-items:center}@media (max-width:860px){.course-hero-grid{grid-template-columns:1fr}}.course-hero img{border-radius:18px;box-shadow:var(--shadow)}.progress-panel{display:flex;gap:20px;align-items:center;padding:20px 24px;margin:24px 0}.progress-panel .grow{flex:1 1;min-width:0}.module-grid{display:grid;grid-gap:22px;gap:22px;margin-top:28px}.module-card{display:grid;grid-template-columns:260px 1fr;overflow:hidden}.module-card .cover{background:var(--mist)}.module-card .cover img{width:100%;height:100%;object-fit:cover}.module-card .body{padding:22px 26px}.module-card h3{margin:0 0 4px}.module-card .module-num{font-weight:700;color:var(--gold-dark);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}@media (max-width:760px){.module-card{grid-template-columns:1fr}.module-card .cover img{aspect-ratio:16/9}}.lesson-list{list-style:none;padding:0;margin:14px 0 0}.lesson-list li{border-top:1px solid var(--line)}.lesson-list a{display:flex;align-items:center;gap:12px;padding:9px 2px;text-decoration:none;color:var(--ink)}.lesson-list a:hover{color:var(--blue)}.lesson-list .mins{margin-left:auto;font-size:.85rem;color:var(--muted);white-space:nowrap}.tick{width:22px;height:22px;border-radius:50%;flex:none;border:2px solid var(--mist);display:grid;place-items:center;font-size:12px;color:white}.tick.done{background:var(--success);border-color:var(--success)}.tick.quiz{border-color:var(--gold);color:var(--gold-dark);font-weight:800}.tick.quiz.done{background:var(--gold);color:var(--navy)}.badge-medal{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f3dd8f,var(--gold) 60%,var(--gold-dark));color:var(--navy);font-weight:900;font-size:.8rem;box-shadow:0 1px 3px rgba(0,0,0,.2)}.badge-medal.locked{background:var(--mist);color:var(--slate);box-shadow:none}.lesson-layout>article{min-width:0}.lesson-layout{display:grid;grid-template-columns:260px minmax(0,1fr);grid-gap:40px;gap:40px;padding-top:28px}@media (max-width:980px){.lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-sidebar{display:none}}.lesson-sidebar{position:-webkit-sticky;position:sticky;top:84px;align-self:start;max-height:calc(100vh - 100px);overflow:auto;font-size:.92rem;padding-right:6px}.lesson-sidebar h4{font-family:var(--font-sans);font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:18px 0 6px}.lesson-sidebar ol{list-style:none;margin:0;padding:0}.lesson-sidebar li a{display:flex;gap:8px;align-items:center;padding:5px 8px;border-radius:8px;text-decoration:none;color:var(--ink);line-height:1.35}.lesson-sidebar li a:hover{background:var(--mist)}.lesson-sidebar li a[aria-current=page]{background:var(--navy);color:white}.lesson-sidebar .tick{width:16px;height:16px;font-size:9px;border-width:1.5px}.breadcrumbs{font-size:.9rem;margin-bottom:14px}.breadcrumbs,.breadcrumbs a{color:var(--muted)}.lesson-banner{border-radius:18px;overflow:hidden;margin:8px 0 24px;box-shadow:var(--shadow);background:var(--mist)}.lesson-banner img{width:100%;aspect-ratio:10/3;object-fit:cover}.lesson-summary{font-size:1.15rem;color:var(--muted);margin-top:0}.toc{padding:14px 18px;margin:20px 0 8px;font-size:.95rem}.toc p{margin:0 0 6px;font-weight:700;color:var(--navy)}.toc ol{margin:0;padding-left:20px;column-count:2;column-gap:28px}@media (max-width:640px){.toc ol{column-count:1}}.prose{max-width:760px}.prose li,.prose p{max-width:72ch}.prose h2{scroll-margin-top:84px;padding-top:6px;border-top:1px solid var(--line)}.prose ol,.prose ul{padding-left:1.4em}.prose li{margin:.25em 0}.prose code{background:var(--mist);padding:1px 6px;border-radius:6px;font-size:.9em}.prose blockquote{margin:1.2em 0;padding:.2em 1.2em;border-left:4px solid var(--slate);color:var(--muted)}.prose hr{border:0;border-top:1px solid var(--line);margin:2em 0}.prose input[type=checkbox]{accent-color:var(--teal);margin-right:6px;transform:translateY(1px)}.prose li:has(>input[type=checkbox]){list-style:none;margin-left:-1.3em}.table-wrap{overflow-x:auto;margin:1.2em 0;border:1px solid var(--line);border-radius:12px;background:var(--paper)}.prose table{border-collapse:collapse;width:100%;font-size:.93rem}.prose td,.prose th{text-align:left;padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:top}.prose th{background:var(--navy);color:white;font-weight:600}.prose tr:last-child td{border-bottom:0}.prose tbody tr:nth-child(2n){background:#faf7ef}.callout{margin:1.5em 0;padding:14px 20px 6px;border-radius:12px;border:1px solid;background:var(--paper);position:relative}.callout>:first-child{margin-top:0}.callout-title{font-weight:800;margin:0 0 4px;font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;display:flex;align-items:center;gap:8px}.callout-title:before{content:"";width:10px;height:10px;transform:rotate(45deg);background:currentColor;border-radius:2px}.callout-important,.callout-note{border-color:#c9d4e4;background:#f2f5fa}.callout-important .callout-title,.callout-note .callout-title{color:var(--blue)}.callout-tip{border-color:var(--teal-light);background:#eef8f6}.callout-tip .callout-title{color:var(--teal)}.callout-caution,.callout-warning{border-color:#efc1bd;background:#fdf1f0}.callout-caution .callout-title,.callout-warning .callout-title{color:var(--danger)}.callout-example{border-color:var(--gold-light);background:#fdf8e8}.callout-example .callout-title{color:var(--gold-dark)}.callout-checklist{border-color:#cfe3d8;background:#f1f8f4}.callout-checklist .callout-title{color:var(--success)}.callout-checklist ul{list-style:none;padding-left:.2em}.block-error{background:#fdf1f0;color:var(--danger);padding:12px;border-radius:8px;white-space:pre-wrap}.lesson-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin:40px 0 0;padding:22px 24px}.lesson-nav{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;margin-top:18px}.lesson-nav a{display:block;padding:14px 18px;text-decoration:none}.lesson-nav a small{display:block;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.lesson-nav a.next{text-align:right;grid-column:2}@media (max-width:640px){.lesson-nav{grid-template-columns:1fr}.lesson-nav a.next{grid-column:1}}.ix{margin:1.8em 0;padding:20px 22px;border-radius:16px;background:white;border:1px solid var(--line);box-shadow:var(--shadow);position:relative}.ix-label{position:absolute;top:-11px;left:18px;background:var(--navy);color:var(--gold-light);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:2px 10px;border-radius:999px}.ix-question{font-weight:700;color:var(--navy);margin:6px 0 12px;font-size:1.05rem}.options{display:grid;grid-gap:8px;gap:8px}.option{text-align:left;font:inherit;cursor:pointer;padding:10px 14px;border-radius:10px;border:2px solid var(--mist);background:var(--paper);display:flex;gap:10px;align-items:flex-start;transition:border-color .12s,background .12s}.option:hover:not(:disabled){border-color:var(--slate)}.option .letter{flex:none;width:24px;height:24px;border-radius:50%;background:var(--mist);display:grid;place-items:center;font-weight:800;font-size:.8rem;color:var(--blue)}.option.selected{border-color:var(--blue);background:#f2f5fa}.option.correct{border-color:var(--success);background:#eef8f2}.option.correct .letter{background:var(--success);color:white}.option.wrong{border-color:var(--danger);background:#fdf1f0}.option.wrong .letter{background:var(--danger);color:white}.option:disabled{cursor:default}.feedback{margin-top:12px;padding:10px 14px;border-radius:10px;animation:pop .25s ease}.feedback.good{background:#eef8f2;color:#14532f}.feedback.bad{background:#fdf1f0;color:#7a1d17}@keyframes pop{0%{transform:scale(.97);opacity:0}to{transform:scale(1);opacity:1}}.reveal-answer{margin-top:12px;padding:12px 16px;border-left:4px solid var(--gold);background:#fdf8e8;border-radius:0 10px 10px 0;animation:pop .25s ease}.reveal textarea{width:100%;min-height:70px;font:inherit;padding:10px 12px;border-radius:10px;border:2px solid var(--mist);background:var(--paper);resize:vertical;margin-bottom:10px}.flashcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:14px;gap:14px}.flashcard{perspective:900px;height:150px;cursor:pointer;background:none;border:0;padding:0;font:inherit}.flashcard-inner{position:relative;width:100%;height:100%;transition:transform .5s;transform-style:preserve-3d}.flashcard.flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-face{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:12px;padding:14px;display:grid;place-items:center;text-align:center;overflow:auto}.flashcard-front{background:var(--navy);color:white;font-family:var(--font-serif);font-size:1.15rem;font-weight:700;background-image:radial-gradient(circle at 85% 15%,rgba(201,162,39,.35) 0 18px,transparent 19px),radial-gradient(circle at 12% 88%,rgba(168,213,207,.25) 0 26px,transparent 27px)}.flashcard-back{background:#fdf8e8;color:var(--ink);transform:rotateY(180deg);font-size:.92rem;border:2px solid var(--gold-light)}.flashcard-hint{font-size:.85rem;color:var(--muted);margin:10px 0 0}.timeline{list-style:none;padding:0;margin:8px 0 0;position:relative}.timeline:before{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--gold),var(--teal))}.timeline li{position:relative;padding:0 0 18px 40px}.timeline li:before{content:"";position:absolute;left:4px;top:5px;width:14px;height:14px;transform:rotate(45deg);background:var(--gold);border:2px solid white;box-shadow:0 0 0 2px var(--gold)}.timeline .when{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--teal)}.timeline .title{font-weight:700;color:var(--navy);display:block}.timeline p{margin:2px 0 0}.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:14px;gap:14px;margin-bottom:16px}.field label{display:block;font-size:.85rem;font-weight:700;color:var(--muted);margin-bottom:4px}.field input,.field select{width:100%;font:inherit;padding:9px 12px;border-radius:10px;border:2px solid var(--mist);background:var(--paper)}.field input[type=range]{padding:0;accent-color:var(--gold)}.compare{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px}@media (max-width:560px){.compare{grid-template-columns:1fr}}.compare .box{padding:14px 16px;border-radius:12px}.compare .box.good{background:#eef8f2}.compare .box.bad{background:#fdf1f0}.compare .big{font-size:1.8rem;font-weight:800;font-family:var(--font-serif);color:var(--navy)}.bar-row{display:grid;grid-template-columns:110px 1fr 90px;grid-gap:10px;gap:10px;align-items:center;margin:6px 0;font-size:.92rem}.bar{height:14px;border-radius:999px;background:var(--mist);overflow:hidden}.bar>span{display:block;height:100%;background:var(--gold);transition:width .3s}.planner-table{width:100%;border-collapse:collapse;font-size:.92rem}.planner-table td,.planner-table th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left}.planner-table td.num,.planner-table th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.planner-table input[type=number]{width:100%;max-width:120px;font:inherit;padding:6px 8px;border-radius:8px;border:2px solid var(--mist)}.small-print{font-size:.82rem;color:var(--muted);margin:10px 0 0}.quiz-q{margin:0 0 22px}.quiz-q .explain{margin-top:10px;font-size:.95rem}.score-card{text-align:center;padding:28px;margin:20px 0}.score-card .big{font-size:3rem;font-weight:800;font-family:var(--font-serif);color:var(--navy)}.login-wrap{display:grid;grid-template-columns:1fr 1fr;grid-gap:40px;gap:40px;align-items:center;padding:48px 0}@media (max-width:860px){.login-wrap{grid-template-columns:1fr}.login-art{max-width:320px;margin:0 auto}}.login-card{padding:32px}.login-card input[type=password],.login-card input[type=text]{width:100%;font:inherit;font-size:1.1rem;padding:12px 14px;border-radius:12px;border:2px solid var(--mist);background:white;margin:6px 0 14px}.login-card input:focus{border-color:var(--gold);outline:none}.form-error{color:var(--danger);font-weight:600}.notice{background:#fdf8e8;border:1px solid var(--gold-light);border-radius:12px;padding:14px 16px;margin-bottom:14px}.dash-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:16px;gap:16px;margin:24px 0}.dash-stats .card{padding:18px 20px}.dash-stats .value{font-size:2rem;font-weight:800;color:var(--navy);font-family:var(--font-serif)}.dash-stats .label{color:var(--muted);font-size:.9rem}.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:12px;gap:12px}.badge-tile{padding:14px;justify-items:center;grid-gap:8px;gap:8px;font-size:.88rem}.badge-tile,.certificate{text-align:center;display:grid}.certificate{background:white;margin:30px auto;max-width:900px;aspect-ratio:1.414;padding:56px;border:14px solid var(--navy);outline:3px solid var(--gold);outline-offset:-26px;align-content:center;grid-gap:10px;gap:10px;position:relative;overflow:hidden}.certificate h1{font-size:2.6rem}.certificate .name{font-family:var(--font-serif);font-size:2.4rem;color:var(--gold-dark);border-bottom:2px solid var(--gold-light);display:inline-block;padding:0 30px 6px;margin:10px auto}.certificate .geo{position:absolute;opacity:.12;pointer-events:none}@media print{.no-print,.site-footer,.site-header{display:none!important}body{background:white}.certificate{margin:0;box-shadow:none}}.sr-only{width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.burst,.sr-only{position:absolute}.burst{right:40px;top:-40px;width:120px;height:120px;pointer-events:none;overflow:visible}.burst>*{animation:burst .8s ease-out forwards}@keyframes burst{0%{transform:translate(0) scale(.4);opacity:1}to{transform:translate(var(--x),var(--y)) scale(1);opacity:0}}@media (prefers-reduced-motion:reduce){.burst{display:none}.flashcard-inner,.progress>span{transition:none}}@media (max-width:560px){body{font-size:16px}.container{padding:0 16px}.site-nav{gap:14px;font-size:.92rem}.site-nav .nav-courses{display:none}.brand{font-size:1rem}.ix{padding:18px 14px}.lesson-footer{padding:18px}}