:root{--ink:#183247;--accent:#286d9c;--paper:#fff;--bg:#f3f6f8;--soft:#eaf3fb;--dark:#182a3a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.75 'Malgun Gothic',sans-serif}body[data-lesson="2"]{--accent:#277b71;--soft:#edf7f2;--dark:#213149}body[data-lesson="3"]{--accent:#9a6933;--soft:#f7f1e6;--dark:#292d33}body[data-lesson="4"]{--accent:#665794;--soft:#f0edf7;--dark:#24243f}a{color:var(--accent)}header{display:flex;gap:24px;flex-wrap:wrap;background:var(--dark);padding:16px 5%;color:#fff;font-size:14px}header a{color:#fff}header span{margin-left:auto}.hero{background:var(--dark);color:#fff;padding:36px max(5%,calc((100% - 1140px)/2));}.hero a{color:#ead1a0}h1{font-size:34px;line-height:1.3}h2{font-size:28px;line-height:1.4}h3{font-size:20px}.toolbar{position:sticky;top:0;z-index:2;background:#fff;border-bottom:1px solid #ccd4db;padding:10px 5%;display:flex;gap:12px;flex-wrap:wrap;align-items:center}button,input,select{font:inherit;padding:7px;border:1px solid #b5c4cc;border-radius:5px}button{cursor:pointer}button:disabled{opacity:.45}input{max-width:210px}main,.toc,.handoff{max-width:1140px;margin:24px auto;padding:0 24px}.slide-card{padding:32px;background:var(--paper);border:1px solid #d5dde3;border-radius:14px;margin:20px 0}.meta,.small{font-size:14px;color:#566876}.concept{background:var(--soft);border-left:4px solid var(--accent);padding:18px}.files{display:flex;gap:12px;flex-wrap:wrap}.files a,.pdf{display:inline-block;border:1px solid #bdccd5;padding:8px 12px;border-radius:7px;overflow-wrap:anywhere}.trainer{background:#fbf4e8;border-left:4px solid #b48944;padding:20px;margin:24px 0}.trainer{display:none}body.trainer-mode .trainer{display:block}details{padding:12px;border:1px solid #d4dde2;margin:16px 0}summary{cursor:pointer;font-weight:bold}.toc a{display:block;font-size:14px;padding:4px}.handoff{background:var(--soft);padding:24px}.connection{border-top:1px solid #ccc;padding-top:12px}.hub{display:grid;grid-template-columns:1fr 1fr;gap:20px}.hub section{padding:24px;background:white;border:1px solid #ccd7de;border-radius:12px}footer{background:var(--dark);color:#fff;padding:24px;text-align:center;font-size:13px}footer a{color:#ead1a0}body.interactive .slide-card{display:none}body.interactive .slide-card.active{display:block}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e1a645;outline-offset:3px}@media(max-width:760px){.hub{grid-template-columns:1fr}.toolbar{position:static}h1{font-size:27px}.slide-card{padding:20px}header span{margin:0}.hero{padding:26px}}
@media print{header,.toolbar,.toc,footer,.pdf{display:none!important}.hero{background:white;color:black;padding:12px}main{margin:0;padding:0}body.interactive .slide-card{display:block!important;border:0;border-radius:0;break-after:page}.files a{text-decoration:none}.slide-card details{border:0}.trainer{break-inside:avoid}.handoff{break-before:page}}
/* Approved lesson palette; shared layout and spacing stay consistent. */
body[data-lesson="1"]{--ink:#17324D;--accent:#2563EB;--bg:#EFF6FF;--soft:#eaf3ff}
body[data-lesson="2"]{--ink:#172B4D;--accent:#172B4D;--bg:#F8FAFC;--soft:#edf3f8;--dark:#172B4D}.files a{border-bottom:3px solid #E9826B}
body[data-lesson="2"] .connection{border-left:4px solid #168B78;padding-left:16px}
body[data-lesson="3"]{--accent:#7B4354;--bg:#F4F1EB;--soft:#f6efe8;--dark:#30343B}body[data-lesson="3"] .files a{border-bottom-color:#557B99}
body[data-lesson="4"]{--accent:#665794;--bg:#F5F3FF;--soft:#f0edf8;--dark:#211D3D}body[data-lesson="4"] .files a{border-bottom-color:#EDB49A}body[data-lesson="4"] .connection{border-left:4px solid #81C9B7;padding-left:16px}
body[data-lesson="3"] .slide-card:has(.handoff),body[data-lesson="4"] .slide-card:has(.handoff){border-top:12px solid var(--dark)}
@media print{.files a{border:0}.connection{border-left:0!important}body{background:white!important}}
/* Visual learning surfaces. */
.v-journey{background:#102d4d;color:#fff;padding:50px max(5%,calc((100% - 1090px)/2));}.v-journey h2{font-size:clamp(28px,4vw,44px);letter-spacing:-1.5px}.v-kicker{font-size:12px;letter-spacing:1.3px;font-weight:800;color:#49799f;text-transform:uppercase}.v-journey .v-kicker{color:#b3cfed}.v-key{font-size:23px;line-height:1.45;font-weight:700;max-width:880px;margin:16px 0 32px}.v-canvas{padding:24px 0 6px}.v-flow{display:flex;gap:30px;align-items:stretch;margin:26px 0}.v-node{position:relative;background:#eff6ff;border:1px solid #cedff2;border-radius:13px;padding:23px 18px;flex:1;min-width:0;color:#17324d;display:flex;flex-direction:column;gap:7px}.v-node svg{width:34px;height:36px;color:#2563eb;margin-bottom:12px}.v-node strong{font-size:21px;line-height:1.3}.v-node small{font-size:14px;color:#526879;line-height:1.5}.v-number{position:absolute;right:18px;top:18px;color:#b2c7e0;font-size:29px;font-weight:900}.v-flow .v-node:not(:last-child):after{content:'→';position:absolute;right:-25px;top:40%;color:#6d8fae;font-size:24px}.v-journey .v-node{background:#193c62;border-color:#3a5777;color:#fff}.v-journey .v-node small{color:#ccdcef}.v-journey svg{color:#a7caff}.v-columns,.v-before-after{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}.v-columns .v-node:nth-child(2){background:#fff5e8;border-color:#e5cdb0}.v-columns .v-node:nth-child(2) svg{color:#a56c28}.v-example{background:#fff;border:1px solid #d9e3ec;border-radius:14px;overflow:hidden;margin:24px 0}.v-example-label{background:#eef3f8;padding:12px 18px;color:#465e78;font-size:13px;font-weight:700;border-radius:8px}.v-table-scroll{overflow-x:auto}.v-example table{min-width:630px;border-collapse:collapse;width:100%;font-size:15px}.v-example th{background:#17324d;color:#fff;text-align:left;padding:15px}.v-example td{border-bottom:1px solid #e0e7ef;padding:17px 15px}.v-example tr:first-child td{background:#edf4ff}.v-muted{color:#8b6539;font-size:13px}.v-caption{font-size:13px;line-height:1.7;color:#5c7182;margin:14px 18px}.v-request{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.v-request>div{padding:20px 14px;background:#edf4ff;border-top:4px solid #2563eb;border-radius:8px}.v-request span{display:block;color:#8ba8ce;font-size:29px}.v-request b{font-size:20px}.v-request p{font-size:14px;color:#456179}.v-before-after>div{padding:20px;border-radius:10px;background:#f2f4f6;border:1px solid #dce2e7}.v-before-after>div:last-child{background:#eaf5f1;border-color:#b4d7c8}.v-before-after small{font-size:13px;color:#65717d}.v-before-after p{font-size:19px;font-weight:bold}.v-folders{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.v-folders .v-node{background:#f9fbfd}.v-annotation{display:flex;gap:16px;flex-wrap:wrap;align-items:center;background:#183a60;color:#fff;padding:22px;border-radius:10px}.v-annotation b{font-size:24px;color:#abc9ff}.v-annotation span{font-size:15px;border-left:1px solid #718aa7;padding-left:16px}.v-status{display:flex;gap:12px;flex-wrap:wrap}.v-status span{border:1px solid #d2dde3;padding:12px;border-radius:9px;background:#f4f8fb;font-size:14px}.v-equation{display:flex;gap:25px;align-items:center;justify-content:center;margin:30px 0}.v-equation>div{background:#edf4ff;border-radius:14px;padding:20px 40px;text-align:center}.v-equation b{font-size:54px;display:block;line-height:1.2;color:#2563eb}.v-equation span{display:block;font-size:14px}.v-equation em{font-style:normal;font-size:28px;color:#7f98b0}.v-bars{padding:22px;background:#f5f8fb;border-radius:14px}.v-bars>div{margin:12px 0}.v-bars span{display:block;font-size:14px;margin-bottom:6px}.v-bars i{display:block;width:var(--size);min-width:60px;background:#2563eb;color:#fff;font-style:normal;padding:8px 12px;border-radius:5px}.v-bars>div:nth-child(2) i{background:#6289b2}.v-deliverables{display:grid;gap:12px;background:#17324d;color:#fff;padding:28px;border-radius:13px}.v-deliverables b{font-size:20px;margin-bottom:8px}.v-deliverables span{border-top:1px solid #49627e;padding-top:10px;color:#d5e4f5}.v-practice{display:grid;grid-template-columns:1fr 2fr 1fr;gap:16px;margin:32px 0 14px;border-top:1px solid #dce5ed;padding-top:24px}.v-step b{display:block;font-size:13px;color:#2563eb;margin-bottom:8px}.v-step span{font-size:14px;color:#536779;line-height:1.6}.v-original img{display:block;width:100%;height:auto;margin-top:15px;border-radius:7px}.v-full-notes{background:#f9fbfd;border:1px solid #dce4ed;font-size:15px;margin-top:24px}.v-full-notes>summary{font-size:14px;color:#496782}.v-full-notes .trainer{background:#fff8ee}.v-thanks{background:radial-gradient(ellipse at 85% 15%,#514434 0%,transparent 48%),#262421;color:#f3eadc;padding:60px 40px;margin:24px 0;border-radius:14px;text-align:center}.v-thanks>span{color:#d7ad66;font-size:12px;letter-spacing:4px}.v-thanks h2{font-size:46px;font-weight:500;line-height:1.45;margin:24px}.v-thanks p,.v-thanks small{font-size:13px;color:#c8b79e}.v-thanks:before{content:'';display:block;width:50px;height:2px;background:#d7ad66;margin:0 auto 25px}body[data-lesson="1"] .slide-card>h2{font-size:26px;color:#17324d;border-bottom:1px solid #dce4ee;padding-bottom:20px;margin-bottom:5px}
@media(max-width:800px){.v-flow{gap:12px;display:grid;grid-template-columns:1fr 1fr}.v-flow .v-node:after{display:none}.v-request{grid-template-columns:1fr 1fr}.v-folders{grid-template-columns:1fr 1fr}.v-practice{grid-template-columns:1fr}.v-node strong{font-size:18px}.v-equation{gap:10px}.v-equation>div{padding:15px}.v-columns,.v-before-after{grid-template-columns:1fr}.v-key{font-size:20px}.v-thanks{padding:36px 20px}.v-thanks h2{font-size:32px}}
@media print{.v-journey{background:white;color:black;padding:12px}.v-journey .v-node{color:#17324d;background:white}.v-full-notes,.v-practice,.v-example{break-inside:avoid}.v-key{font-size:18px}.v-original{display:none}.v-thanks{background:white;color:black}.v-canvas{break-inside:avoid}}
/* Slide-led reader with contextual split panels. */
:root{--panel-width:40%}.course-workspace{max-width:1480px;margin:18px auto;padding:0 24px;display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}.course-workspace main{max-width:none;margin:0;padding:0;min-width:0}.course-workspace .slide-card{margin-top:0}.split-open .course-workspace{grid-template-columns:minmax(0,calc(100% - var(--panel-width) - 22px)) minmax(0,var(--panel-width))}.split-controls{max-width:1432px;margin:18px auto 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 24px}.split-controls button{background:white;color:var(--ink);border-color:#c7d4df;font-size:14px;padding:10px 15px}.split-controls button[aria-expanded="true"]{background:var(--dark);color:white}.split-hint{font-size:12px;color:#667e8d}.detail-panel{position:sticky;top:83px;background:white;border:1px solid #d2dde7;border-radius:14px;max-height:calc(100vh - 105px);overflow:auto;box-shadow:0 10px 35px #17324d0a}.detail-panel[hidden]{display:none!important}.detail-panel-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;background:var(--dark);color:white;position:sticky;top:0;z-index:1}.detail-panel-head h2{margin:4px 0;font-size:22px}.detail-panel-head small{display:block;font-size:12px;max-width:280px;line-height:1.4}.detail-panel-head button{background:transparent;color:white;font-size:13px}.panel-resize{padding:10px 20px;border-bottom:1px solid #e0e6ec;font-size:12px}.panel-resize label{display:flex;align-items:center;gap:16px}.panel-resize input{padding:0;width:130px}#panel-content{padding:22px;font-size:16px;line-height:1.85;overflow-wrap:anywhere}#panel-content h3{font-size:18px;border-bottom:1px solid #e2e8ee;padding-bottom:8px}#panel-content .files{display:grid}#panel-content .files a{font-size:13px}#panel-content .prompt-text{background:#172b44;color:#e6eff8;white-space:pre-wrap;overflow-wrap:anywhere;padding:20px;font:14px/1.85 Consolas,monospace;border-radius:10px}.panel-note,.copy-status{font-size:13px;color:#647989}.copy-prompt{background:var(--soft);font-size:14px}.trainer-panel-button{display:none}body.trainer-mode .trainer-panel-button{display:block}.slide-main .v-full-notes,.slide-main .slide-card>.concept,.slide-main .slide-card>h3,.slide-main .slide-card>.files,.slide-main .slide-card>details:not(.v-original),.slide-main .slide-card>.trainer,.slide-main .slide-card>p:not(.connection){display:none}.stage-summary{font-size:22px;line-height:1.75;background:var(--soft);padding:30px;border-radius:12px;margin:24px 0}.slide-main .pdf{font-size:13px;margin-top:12px}.slide-main .connection{font-size:13px;color:#607488}.split-open .v-request,.split-open .v-folders{grid-template-columns:1fr 1fr}.split-open .v-flow{display:grid;grid-template-columns:1fr 1fr;gap:14px}.split-open .v-flow .v-node:after{display:none}.split-open .v-practice{grid-template-columns:1fr}.split-open .v-columns{grid-template-columns:1fr 1fr}.split-open .v-key{font-size:20px}body[data-lesson]>.hero{padding-top:15px;padding-bottom:16px}body[data-lesson]>.hero h1{font-size:26px;margin:7px 0}body[data-lesson]>.hero p{font-size:13px;margin:4px 0}body[data-lesson]>.hero a{font-size:13px}
@media(max-width:900px){.split-open .course-workspace{grid-template-columns:1fr}.detail-panel{position:static;max-height:none}.course-workspace{padding:0 16px}.split-controls{padding:0 16px}.panel-resize{display:none}.split-open .v-columns{grid-template-columns:1fr}.stage-summary{font-size:19px;padding:20px}}
@media print{.split-controls,.detail-panel{display:none!important}.course-workspace,.split-open .course-workspace{display:block;padding:0}.slide-main .v-full-notes,.slide-main .slide-card>.concept,.slide-main .slide-card>h3,.slide-main .slide-card>.files,.slide-main .slide-card>details:not(.v-original),.slide-main .slide-card>p:not(.connection){display:block}.slide-main .trainer{display:none!important}body.trainer-mode .slide-main .trainer{display:block!important}}
.actual-slide{background:#e5eaf0;border:1px solid #ccd8e3;border-radius:10px;overflow:hidden;margin:14px 0 20px}.actual-slide img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;background:#fff}.actual-slide a{display:block}.image-caption{padding:9px 14px;font-size:12px;color:#526a7d;background:#f2f5f8}.slide-main .slide-card{padding:18px}.slide-main .slide-card>h2{font-size:21px!important;border:0!important;padding:0!important;margin:8px 0!important}.slide-main .slide-card>.handoff{font-size:14px;padding:14px;margin:15px 0}.split-open .actual-slide{margin-bottom:12px}@media print{.actual-slide{break-inside:avoid}.image-caption{display:none}}
