:root{color:#15212b;font-synthesis:none;text-rendering:optimizelegibility;--navy:#17334e;--navy-soft:#e9eef2;--blue-gray:#6a8595;--muted:#a1afba;--paper:#fbf9f5;--white:#fff;--ink:#15212b;--ink-soft:#5f6e78;--line:#dfe3e5;--green:#2d725f;--green-soft:#e8f2ee;--red:#9d463f;--red-soft:#f8eae8;--sand:#f1ede5;--shadow:0 22px 60px #17334e14;--brand-green:#028e4f;--brand-green-soft:#e6f4ed;--brand-green-muted:#5d927b;--brand-blue:#17334e;--brand-blue-soft:#e9eef2;--brand-blue-muted:#6a8595;--accent:var(--brand-green);--accent-soft:var(--brand-green-soft);--accent-muted:var(--brand-green-muted);--journey-bg-image:none;background:#fbf9f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--paper);margin:0}button,input,textarea,select{font:inherit}button{color:inherit}.course-home{background:var(--brand-green);min-height:100dvh;overflow:hidden}.home-enter{background-color:var(--brand-green);background-image:var(--journey-bg-image);color:#fff;cursor:pointer;background-position:50%;background-size:cover;border:0;width:100%;min-height:100dvh;position:relative;overflow:hidden}.home-hero-image{z-index:1;object-fit:contain;pointer-events:none;width:clamp(320px,62vw,980px);max-height:78dvh;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.course-deck.accent-green{--accent:var(--brand-green);--accent-soft:var(--brand-green-soft);--accent-muted:var(--brand-green-muted)}.course-deck.accent-blue{--accent:var(--brand-blue);--accent-soft:var(--brand-blue-soft);--accent-muted:var(--brand-blue-muted)}.course-deck{background:linear-gradient(#17334e06 1px, transparent 1px), linear-gradient(90deg, #17334e06 1px, transparent 1px), var(--paper);background-size:32px 32px;grid-template-rows:auto minmax(0,1fr) 64px;min-height:100dvh;display:grid}.deck-header{z-index:40;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbf9f5f5;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;min-height:76px;padding:0 clamp(18px,3vw,44px);display:grid;position:relative}.brand-lockup{white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:inline-flex}.brand-lockup:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.brand-lockup strong{color:var(--accent);letter-spacing:.14em;font-size:.76rem}.brand-lockup>span{background:var(--muted);width:22px;height:1px}.brand-lockup small{color:var(--accent-muted);letter-spacing:.12em;font-size:.58rem;font-weight:800}.lesson-tabs{scrollbar-width:thin;scrollbar-color:var(--accent) transparent;align-items:stretch;gap:6px;min-width:0;display:flex;overflow-x:auto}.lesson-tabs button{color:#687782;cursor:pointer;background:0 0;border:1px solid #0000;flex:none;align-items:center;gap:8px;min-height:44px;padding:0 13px;font-size:.67rem;font-weight:800;display:inline-flex}.lesson-tabs button span{color:var(--muted);font-size:.58rem}.lesson-tabs button:hover{background:#fff9}.lesson-tabs button.active{background:var(--white);color:var(--accent);border-color:#ccd7de}.lesson-tabs button.active span{color:var(--accent)}.overview-button{background:var(--white);min-height:42px;color:var(--accent);cursor:pointer;border:1px solid #ccd6dc;align-items:center;gap:8px;padding:0 14px;font-size:.68rem;font-weight:850;display:inline-flex}.deck-progress{background:0 0;height:2px;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}.deck-progress i{background:var(--accent);height:100%;transition:width .22s;display:block}.deck-layout{grid-template-columns:220px minmax(0,1fr);min-height:0;display:grid}.lesson-rail{border-right:1px solid var(--line);background:#f7f5f0b8;flex-direction:column;align-items:flex-start;min-height:0;padding:clamp(28px,5vh,54px) 28px;display:flex}.rail-number{color:#c6ced3;letter-spacing:-.08em;font-size:clamp(3.4rem,7vw,6.4rem);font-weight:850;line-height:.9}.lesson-rail small{color:var(--accent-muted);letter-spacing:.14em;margin-top:28px;font-size:.56rem;font-weight:900}.lesson-rail strong{color:var(--accent);margin-top:7px;font-size:1.06rem;line-height:1.3}.rail-line{background:var(--accent);width:46px;height:2px;margin-top:24px}.lesson-rail p{color:#88959c;margin:14px 0 0;font-size:.66rem;font-weight:750;line-height:1.6}.deck-stage{min-width:0;min-height:0;padding:clamp(14px,2.5vw,36px);overflow:auto}.slide-shell{width:min(100%,1160px);min-height:min(730px,100dvh - 176px);box-shadow:var(--shadow);background:#ffffffeb;border:1px solid #17334e1f;flex-direction:column;margin:0 auto;padding:clamp(28px,5vw,64px);display:flex}.slide-heading{justify-content:space-between;align-items:flex-start;gap:28px;display:flex}.eyebrow{color:var(--accent-muted);letter-spacing:.16em;margin:0 0 11px;font-size:.59rem;font-weight:900}.slide-heading h1{max-width:900px;color:var(--accent);letter-spacing:-.06em;text-wrap:balance;margin:0;font-size:clamp(2.35rem,5.3vw,5.8rem);font-weight:820;line-height:.98}.slide-instruction{max-width:720px;color:var(--ink-soft);margin:19px 0 0;font-size:.98rem;line-height:1.6}.type-pill{background:var(--accent-soft);color:var(--accent);letter-spacing:.1em;border:1px solid #d4dde2;flex:none;padding:7px 9px;font-size:.54rem;font-weight:900}.cover-content{flex-direction:column;flex:1;justify-content:center;align-items:flex-start;max-width:840px;display:flex}.cover-content>p{color:var(--ink-soft);margin:0;font-size:clamp(1.2rem,2.4vw,2rem);line-height:1.45}.cover-chips,.phrase-grid{flex-wrap:wrap;gap:9px;margin-top:34px;display:flex}.cover-chips span,.phrase-grid span{color:var(--accent);background:#f7f9fa;border:1px solid #d5dee3;padding:10px 13px;font-size:.7rem;font-weight:820}.content-stack{flex-direction:column;flex:1;justify-content:center;padding-top:clamp(30px,7vh,78px);display:flex}.body-copy{gap:14px;max-width:980px;display:grid}.body-copy p{color:var(--ink);letter-spacing:-.035em;text-wrap:balance;margin:0;font-size:clamp(1.5rem,3.3vw,3.4rem);font-weight:690;line-height:1.18}.quiz-stack,.builder-stack{gap:18px;margin-top:clamp(30px,6vh,60px);display:grid}.question-card,.builder-card{border:1px solid var(--line);background:#fcfcfb;padding:clamp(20px,3vw,34px)}.question-card h2,.builder-card h2{color:var(--accent);margin:0;font-size:clamp(1.15rem,2vw,1.65rem);line-height:1.35}.option-list{gap:9px;margin-top:18px;display:grid}.option-button{background:var(--white);text-align:left;width:100%;min-height:52px;color:var(--ink);cursor:pointer;border:1px solid #d8dfe3;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:9px 14px;font-weight:720;display:grid}.option-button>span{width:27px;height:27px;color:var(--accent-muted);background:#eff2f4;border-radius:50%;place-items:center;font-size:.64rem;font-weight:900;display:grid}.option-button:hover{border-color:#9eafb9}.option-button.correct{background:var(--green-soft);border-color:#82a99c}.option-button.wrong{background:var(--red-soft);border-color:#d8aaa5}.quiz-feedback{margin:12px 0 0;font-size:.8rem;font-weight:780}.quiz-feedback.correct,.builder-status.correct{color:var(--green)}.quiz-feedback.wrong,.builder-status.wrong{color:var(--red)}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:clamp(30px,6vh,64px);display:grid}.reveal-card{text-align:left;cursor:pointer;background:#fafbfb;border:1px solid #d8e0e4;flex-direction:column;justify-content:center;align-items:flex-start;min-height:142px;padding:22px;display:flex}.reveal-card small{color:var(--muted);letter-spacing:.12em;font-size:.52rem;font-weight:900}.reveal-card strong{color:var(--accent);margin-top:8px;font-size:clamp(1.4rem,2.5vw,2.25rem);line-height:1.1}.reveal-card p{color:var(--ink-soft);margin:12px 0 0;font-size:.92rem;line-height:1.55}.reveal-card.open{background:var(--accent-soft);border-color:#a9bbc6}.builder-output{background:var(--white);border:1px dashed #bdc9cf;flex-wrap:wrap;align-items:center;gap:7px;min-height:64px;margin-top:18px;padding:12px;display:flex}.builder-output>span{color:#9aa6ad;font-size:.76rem}.builder-output strong{background:var(--accent-soft);color:var(--accent);border:1px solid #cfd9de;padding:8px 10px;font-size:.78rem}.builder-bank{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.builder-bank button{background:var(--white);cursor:pointer;border:1px solid #ced9df;min-height:39px;padding:0 12px;font-size:.75rem;font-weight:780}.builder-bank button:disabled{opacity:.28;cursor:not-allowed}.builder-actions{align-items:center;gap:13px;min-height:36px;margin-top:12px;display:flex}.reset-button{min-height:34px;color:var(--accent-muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;font-size:.69rem;font-weight:800;display:inline-flex}.builder-status{font-size:.75rem;font-weight:800}.timeline-grid{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:14px;margin-top:clamp(34px,8vh,88px);display:grid}.timeline-group{border:1px solid var(--line);flex-direction:column;justify-content:center;min-height:250px;padding:clamp(22px,4vw,44px);display:flex}.timeline-group small{color:var(--muted);letter-spacing:.16em;font-size:.58rem;font-weight:900}.timeline-group p{color:var(--accent);letter-spacing:-.03em;margin:12px 0 0;font-size:clamp(1.25rem,2.6vw,2.55rem);font-weight:720;line-height:1.22}.timeline-group.past{background:#f2efea}.timeline-group.now{background:var(--accent-soft);border-color:#b9cad4}.timeline-group.neutral{background:#f8f8f6}.dialogue-card{gap:14px;max-width:900px;margin-top:clamp(38px,8vh,88px);display:grid}.dialogue-turn{border-left:3px solid var(--accent);background:#f7f9fa;padding:18px 22px}.dialogue-turn:nth-child(2n){border-left-color:var(--accent-muted);background:var(--accent-soft);margin-left:clamp(20px,7vw,100px)}.dialogue-turn small{color:var(--accent-muted);letter-spacing:.13em;font-size:.55rem;font-weight:900}.dialogue-turn p{color:var(--accent);margin:7px 0 0;font-size:clamp(1.2rem,2.8vw,2.5rem);font-weight:690;line-height:1.25}.checkpoint-grid{gap:9px;margin-top:clamp(34px,7vh,74px);display:grid}.checkpoint-item{background:var(--white);text-align:left;cursor:pointer;border:1px solid #d7dfe3;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:12px;min-height:58px;padding:10px 15px;font-weight:720;display:grid}.checkpoint-item>span{color:#fff;background:#f5f7f8;border:1px solid #c7d2d8;place-items:center;width:28px;height:28px;display:grid}.checkpoint-item.checked{background:var(--accent-soft);color:var(--accent);border-color:#91adba}.checkpoint-item.checked>span{border-color:var(--accent);background:var(--accent)}.listen-button{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;justify-content:center;align-self:flex-start;align-items:center;gap:8px;min-height:44px;margin-top:28px;padding:0 17px;font-size:.72rem;font-weight:850;display:inline-flex}.listen-button.active{background:var(--accent-muted);border-color:var(--accent-muted)}.deck-footer{z-index:30;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbf9f5f7;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:0 clamp(14px,3vw,42px);display:grid;position:relative}.nav-button{cursor:pointer;border:1px solid #ced8dd;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 15px;font-size:.72rem;font-weight:850;display:inline-flex}.nav-button.secondary{background:0 0;justify-self:start}.nav-button.primary{border-color:var(--accent);background:var(--accent);color:#fff;justify-self:end}.nav-button:disabled{opacity:.3;cursor:not-allowed}.footer-status{color:#8f9ba2;letter-spacing:.13em;align-items:center;gap:9px;font-size:.6rem;font-weight:900;display:flex}.footer-status span:first-child{color:var(--accent)}.footer-status i{background:var(--accent);width:36px;height:2px}.overview-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0b192494;justify-content:flex-end;display:flex;position:fixed;inset:0}.overview-panel{background:var(--paper);width:min(96vw,560px);height:100%;overflow:auto;box-shadow:-28px 0 80px #0003}.overview-head{z-index:4;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#fbf9f5f7;justify-content:space-between;align-items:center;gap:16px;padding:24px;display:flex;position:sticky;top:0}.overview-head small{color:var(--accent-muted);letter-spacing:.14em;font-size:.56rem;font-weight:900}.overview-head h2{color:var(--accent);letter-spacing:-.045em;margin:5px 0 0;font-size:1.7rem}.overview-head button{background:var(--white);cursor:pointer;border:1px solid #d0d9de;place-items:center;width:40px;height:40px;display:grid}.overview-description{color:var(--ink-soft);margin:0;padding:20px 24px 7px;font-size:.8rem;line-height:1.6}.overview-sections{gap:16px;padding:16px;display:grid}.overview-sections section{border-top:1px solid var(--line);padding-top:15px}.overview-section-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.overview-section-title strong{color:var(--accent);font-size:.83rem}.overview-section-title span{color:#929da3;font-size:.58rem;font-weight:800}.overview-slide-list{gap:5px;display:grid}.overview-slide-list button{text-align:left;cursor:pointer;background:#ffffff75;border:1px solid #0000;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:42px;padding:7px 9px;display:grid}.overview-slide-list button>span,.overview-slide-list button small{color:#9aa5aa;font-size:.55rem;font-weight:850}.overview-slide-list button strong{font-size:.73rem}.overview-slide-list button.active{background:var(--accent-soft);color:var(--accent);border-color:#afc0c9}.error-page{background:var(--paper);place-items:center;min-height:100dvh;padding:24px;display:grid}.error-card{border:1px solid var(--line);background:var(--white);text-align:center;width:min(100%,520px);box-shadow:var(--shadow);padding:38px}.error-card small{color:var(--accent-muted);letter-spacing:.17em;font-size:.58rem;font-weight:900}.error-card h1{color:var(--accent);letter-spacing:-.06em;margin:10px 0 12px;font-size:clamp(2rem,6vw,4.5rem)}.error-card p{color:var(--ink-soft);line-height:1.6}.error-card button,.error-card a{background:var(--accent);color:#fff;cursor:pointer;border:0;justify-content:center;align-items:center;min-height:42px;margin-top:14px;padding:0 18px;font-weight:800;text-decoration:none;display:inline-flex}@media (width<=980px){html,body,.course-deck,.deck-stage,.lesson-tabs,.overview-panel{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar{width:0;height:0;display:none}body::-webkit-scrollbar{width:0;height:0;display:none}.course-deck::-webkit-scrollbar{width:0;height:0;display:none}.deck-stage::-webkit-scrollbar{width:0;height:0;display:none}.lesson-tabs::-webkit-scrollbar{width:0;height:0;display:none}.overview-panel::-webkit-scrollbar{width:0;height:0;display:none}.deck-header{grid-template-columns:auto minmax(0,1fr) auto;gap:12px;padding-inline:16px}.brand-lockup small,.brand-lockup>span{display:none}.deck-layout{grid-template-columns:170px minmax(0,1fr)}.lesson-rail{padding-inline:20px}}@media (width<=760px){.course-deck{grid-template-rows:auto minmax(0,1fr) 62px}.deck-header{grid-template-columns:1fr auto;min-height:68px;padding:10px 13px}.lesson-tabs{border-top:1px solid var(--line);order:3;grid-column:1/-1;margin:0 -13px -10px;padding:7px 8px 0}.overview-button span{display:none}.overview-button{width:40px;padding:0}.deck-layout{grid-template-columns:1fr}.lesson-rail{display:none}.deck-stage{padding:10px}.slide-shell{min-height:calc(100dvh - 160px);padding:26px 20px 32px}.slide-heading{gap:12px}.type-pill{display:none}.cards-grid,.timeline-grid{grid-template-columns:1fr}.timeline-group{min-height:180px}}@media (width<=520px){.slide-heading h1{font-size:clamp(2.25rem,12vw,4.2rem)}.body-copy p{font-size:clamp(1.4rem,7vw,2.25rem)}.deck-footer{padding-inline:9px}.nav-button{width:42px;padding:0}.nav-button span{display:none}.footer-status i{width:23px}.overview-slide-list button{grid-template-columns:28px minmax(0,1fr)}.overview-slide-list button small{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
