@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');
:root{--navy:#14244f;--blue:#235fd8;--orange:#ff914c;--pale:#edf5ff;--ink:#182d50;--mute:#5a6984;--line:#dce5f3}*{box-sizing:border-box}body{font-family:Poppins,Arial,sans-serif;margin:0;background:#f8fbff;color:var(--ink);line-height:1.6}a{color:var(--blue)}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.65;cursor:wait}:focus-visible{outline:3px solid var(--orange);outline-offset:3px}.topbar{background:white;border-bottom:1px solid var(--line);padding:17px max(20px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:16px}.logo{font-weight:800;color:var(--navy);line-height:1.2}.logo small{display:block;color:var(--blue);font-weight:700;font-size:10px;letter-spacing:2px;margin-top:3px}.topbar a{text-decoration:none}.shell{max-width:1080px;margin:56px auto;padding:0 22px}.layout{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:stretch}.hero{border-radius:24px;padding:48px;background:linear-gradient(140deg,#142550,#245ac3);color:#fff;min-height:435px;display:flex;flex-direction:column;justify-content:center;overflow:hidden;position:relative}.hero::before{content:'';position:absolute;right:-80px;top:-40px;width:300px;height:300px;border:2px solid #ffffff22;border-radius:50%}.eyebrow{color:#ffbd8c;letter-spacing:1.6px;text-transform:uppercase;font-size:11px;font-weight:700}.hero h1{font-size:clamp(33px,3.5vw,50px);line-height:1.15;letter-spacing:-1.4px;margin:18px 0}.hero p{font-size:15px;color:#e7edff;max-width:450px}.pill{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;background:#ffffff20;border:1px solid #ffffff50;border-radius:99px;padding:7px 13px;align-self:flex-start}.card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:38px;box-shadow:0 20px 60px #152f6010}.card h2{font-size:25px;line-height:1.3;color:var(--navy);margin:0 0 10px}.sub{color:var(--mute);font-size:13px;margin:0 0 23px}.btn{border:0;border-radius:12px;background:var(--blue);color:white;padding:14px 19px;font-weight:700;font-size:14px;display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none}.btn:hover{background:#174db7}.btn.secondary{background:white;color:var(--navy);border:1px solid var(--line)}.btn.secondary:hover{background:var(--pale)}.btn.wide{width:100%}.field{display:block;font-size:12px;font-weight:700;margin:18px 0 8px}.email{width:100%;border:1.5px solid #cfdaec;border-radius:12px;padding:14px;font-size:15px;outline-offset:3px}.note{font-size:12px;color:var(--mute);margin:16px 0 0}.separator{display:flex;align-items:center;gap:13px;margin:22px 0;color:#8694aa;font-size:12px}.separator::before,.separator::after{content:'';flex:1;height:1px;background:var(--line)}.status{font-size:13px;border-radius:12px;padding:13px 15px;background:var(--pale);color:#123e84;margin:18px 0 0}.status:empty{display:none}.status.error{background:#fff0ec;color:#8d311c}.small-print{margin-top:30px;font-size:11px;color:var(--mute);max-width:880px}.section{margin:0 auto 28px;max-width:970px}.section h1{font-size:clamp(30px,4vw,44px);line-height:1.15;letter-spacing:-1.2px;color:var(--navy);margin:10px 0}.gamehead{background:linear-gradient(135deg,#152752,#275ac7);color:white;border-radius:22px;padding:38px;margin-bottom:20px}.gamehead h1{color:white;margin:5px 0}.gamehead p{color:#e0eaff}.levelpanel{max-width:970px;background:white;border:1px solid var(--line);border-radius:20px;padding:28px;margin:0 auto}.levelpanel h2{margin:0;color:var(--navy)}.levelgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.levelgrid a{display:block;text-decoration:none;border:1px solid var(--line);border-radius:12px;background:#f6f9ff;padding:13px;color:var(--navy);font-size:12px;font-weight:600}.levelgrid a.active{background:#e9f2ff;border-color:#3471e4}.levelgrid a:hover{border-color:#3471e4}.navrow{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:24px}.quiet{color:var(--mute);font-size:13px}#auth-only{display:none}.footer{margin:50px auto 30px;max-width:1100px;padding:0 22px;color:#72809a;font-size:11px}@media(max-width:760px){.shell{margin:24px auto}.layout{grid-template-columns:1fr}.hero{min-height:230px;padding:28px}.hero h1{font-size:33px}.card{padding:26px}.levelgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.levelpanel{padding:18px}.gamehead{padding:26px}}@media(max-width:430px){.levelgrid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* v2 course player — keep the source lesson visually independent */
.nav-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.player-shell{max-width:1320px!important;margin:20px auto;padding:0 16px}.player-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 auto 14px;max-width:1180px}.player-top h1{font-size:clamp(22px,3vw,32px);line-height:1.2;margin:4px 0;color:var(--navy)}.player-top .eyebrow{color:#c35120}.lesson-frame{display:block;width:100%;height:min(880px,calc(100dvh - 180px));min-height:570px;max-width:1250px;border:1px solid var(--line);border-radius:18px;background:#f7f5f2;margin:0 auto}.lesson-below{max-width:1180px;margin:18px auto 0;padding:22px 25px;border:1px solid #bcddcb;border-radius:18px;background:#effbf4;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.lesson-below[hidden]{display:none}.lesson-below h2{margin:0}.lesson-below p{margin:4px 0 0}.preview-card{max-width:800px;margin:25px auto}.preview-card p{max-width:60ch}@media(max-width:720px){.player-shell{padding:0 5px;margin:10px auto}.player-top{padding:0 10px}.lesson-frame{min-height:650px;height:calc(100dvh - 160px);border-radius:10px}.topbar{padding:14px 16px}.topbar .quiet{font-size:12px}.player-top h1{font-size:22px}}


/* v4 immersive lesson: one scroll container (the original lesson itself). */
body.lesson-player-mode{
  height:100dvh;display:flex;flex-direction:column;overflow:hidden;
}
.lesson-player-mode .topbar{
  flex:0 0 auto; min-height:56px; padding:8px max(16px,calc((100vw - 1440px)/2));
}
.lesson-player-mode .shell.player-shell{
  display:flex;flex-direction:column;flex:1 1 auto;min-height:0;
  max-width:none!important;width:100%;padding:0;margin:0;
}
/* The lesson already has its own brand header and LEVEL 1 entry screen. */
.lesson-player-mode .player-top{display:none}
.lesson-player-mode #loadstatus{margin:0 16px}
.lesson-player-mode #loadstatus:empty{display:none}
.lesson-player-mode #lessonhost{display:flex;flex-direction:column;min-height:0;flex:1 1 auto;width:100%}
.lesson-player-mode .lesson-frame{
  display:block;width:100%;max-width:none;min-height:0;height:100%;flex:1 1 auto;
  border:0;border-radius:0;margin:0;
}
.lesson-player-mode .footer{display:none}
/* Show the completion action outside the sandbox without requiring another scroll. */
.lesson-player-mode .lesson-below{
  position:fixed;z-index:1100;top:72px;right:16px;
  margin:0;padding:13px 16px;max-width:min(420px,calc(100vw - 32px));
  border-radius:14px;background:#fff;box-shadow:0 16px 42px #101c4050;
}
.lesson-player-mode .lesson-below h2{font-size:19px;line-height:1.2}
.lesson-player-mode .lesson-below p{font-size:11px;line-height:1.35;margin:5px 0 0}
.lesson-player-mode .lesson-below .btn{padding:10px 13px;font-size:12px;white-space:nowrap}
.lesson-player-mode .lesson-below .eyebrow{color:#268557}
@media(max-width:640px){
  .lesson-player-mode .topbar{padding:7px 10px;min-height:52px}
  .lesson-player-mode .topbar .logo{font-size:12px}
  .lesson-player-mode .topbar .logo small{font-size:8px;letter-spacing:1px}
  .lesson-player-mode .topbar .nav-controls{gap:7px}
  .lesson-player-mode .topbar .nav-controls .quiet{font-size:11px}
  .lesson-player-mode .topbar .btn{font-size:11px;padding:8px 10px}
  .lesson-player-mode .lesson-below{top:62px;left:10px;right:10px;max-width:none;gap:8px}
  .lesson-player-mode .lesson-below .btn{width:auto}
}
