:root{--paper:#f2efe6;--paper-deep:#e8e1d2;--ink:#15263d;--ink-soft:#5d6874;--blue:#173b79;--blue-bright:#245ca7;--acid:#d9ff72;--coral:#f06f55;--line:#15263d24;--white:#fffdf8;--shadow:0 24px 80px #202c391f}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink)}body{background:radial-gradient(circle at 12% 18%, #d9ff722e, transparent 30%), linear-gradient(135deg, #ffffff6b, transparent 48%), var(--paper);min-height:100vh;margin:0;font-family:Avenir Next,Avenir,Segoe UI,sans-serif}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #245ca740}.loginPage{grid-template-columns:minmax(0,1.25fr) minmax(420px,.75fr);min-height:100vh;display:grid;overflow:hidden}.loginStory{isolation:isolate;flex-direction:column;justify-content:center;min-height:100vh;padding:clamp(42px,7vw,96px);display:flex;position:relative}.loginStory:before{content:"";z-index:-1;border:1px solid #15263d17;border-radius:50%;width:54vw;height:54vw;position:absolute;top:-27vw;left:-17vw;box-shadow:0 0 0 5vw #15263d06,0 0 0 12vw #15263d05}.loginStory:after{content:"ENGLISH / AT YOUR PACE / EVERY DAY /";letter-spacing:.26em;color:#15263d6b;font-size:11px;position:absolute;bottom:70px;right:-105px;transform:rotate(-90deg)}.brandMark{border:1px solid var(--ink);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-family:Georgia,serif;font-size:24px;display:flex;position:absolute;top:36px;left:clamp(42px,7vw,96px)}.brandMark span:last-child{color:var(--coral);margin-left:-3px;transform:translateY(8px)}.eyebrow,.cardKicker,.panelLabel,.sheetOverline{text-transform:uppercase;letter-spacing:.2em;color:var(--blue-bright);margin:0 0 18px;font-size:11px;font-weight:700}.loginStory h1{letter-spacing:-.065em;max-width:780px;margin:0;font-family:Iowan Old Style,Baskerville,Georgia,serif;font-size:clamp(58px,7vw,112px);font-weight:500;line-height:.9}.loginLead{max-width:620px;color:var(--ink-soft);margin:38px 0 0;font-size:clamp(17px,1.5vw,22px);line-height:1.55}.lessonPreview{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);grid-template-columns:56px 1fr auto;align-items:center;gap:20px;max-width:620px;margin-top:70px;padding:18px 0;display:grid}.lessonNumber{color:var(--coral);font-family:Georgia,serif;font-size:32px}.lessonPreview small,.lessonPreview strong{display:block}.lessonPreview small{color:var(--ink-soft);margin-bottom:4px}.scribble{background:var(--acid);padding:6px 10px;font-family:Bradley Hand,Segoe Print,cursive;font-weight:700;transform:rotate(-3deg)}.loginPanel{background:var(--blue);place-items:center;min-height:100vh;padding:44px;display:grid;position:relative}.loginPanel:before{content:"";opacity:.22;background-image:linear-gradient(#ffffff17 1px,#0000 1px),linear-gradient(90deg,#ffffff17 1px,#0000 1px);background-size:36px 36px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 72%);mask-image:linear-gradient(#000,#0000 72%)}.loginCard{background:var(--white);width:min(100%,440px);box-shadow:var(--shadow);z-index:1;padding:clamp(30px,4vw,52px);animation:.7s cubic-bezier(.2,.8,.2,1) both cardIn;position:relative}.loginCard:before{content:"";background:#d9ff72c7;width:94px;height:22px;position:absolute;top:-8px;right:34px;transform:rotate(2deg)}.loginCard h2{letter-spacing:-.045em;margin:0;font-family:Iowan Old Style,Baskerville,Georgia,serif;font-size:clamp(34px,4vw,50px);font-weight:500;line-height:1}.muted{color:var(--ink-soft);line-height:1.55}.loginForm{gap:20px;margin-top:34px;display:grid}.loginForm label span{letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.loginForm input{width:100%;color:var(--ink);background:0 0;border:0;border-bottom:1px solid #15263d59;border-radius:0;padding:14px 0;font-size:17px}.loginForm input:focus{border-bottom-color:var(--blue-bright)}.primaryButton{background:var(--ink);color:#fff;cursor:pointer;border:0;justify-content:space-between;align-items:center;min-height:56px;margin-top:8px;padding:0 20px;font-weight:700;transition:transform .18s,background .18s;display:flex}.primaryButton:hover{background:var(--blue-bright);transform:translateY(-2px)}.primaryButton span{font-size:22px}.formError,.chatError{color:#a43326;font-size:14px}.privacyNote{color:var(--ink-soft);text-align:center;margin:24px 0 0;font-size:12px}.appShell{background:var(--paper);grid-template-columns:230px minmax(480px,1fr) 300px;min-height:100vh;display:grid}.sideRail{border-right:1px solid var(--line);background:#fffdf87a;flex-direction:column;height:100vh;padding:28px 22px;display:flex;position:sticky;top:0}.miniBrand{align-items:center;gap:10px;font-family:Georgia,serif;display:flex}.miniBrand>span{background:var(--ink);width:36px;height:36px;color:var(--acid);border-radius:50%;place-items:center;font-size:23px;font-style:italic;display:grid}.miniBrand strong{letter-spacing:-.03em;font-size:18px}.mainNav{gap:8px;margin-top:58px;display:grid}.navItem{width:100%;min-height:44px;color:var(--ink-soft);text-align:left;background:0 0;border:0;border-radius:4px;align-items:center;gap:12px;padding:0 12px;display:flex}.navItem span{width:24px;color:var(--blue-bright);font-family:Georgia,serif}.navItem.active{background:var(--acid);color:var(--ink);font-weight:700}.navItem:disabled{opacity:.55}.railBottom{border-top:1px solid var(--line);margin-top:auto;padding-top:22px}.profileChip{align-items:center;gap:10px;display:flex}.profileChip>span{background:var(--coral);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.profileChip strong,.profileChip small{display:block}.profileChip small{color:var(--ink-soft);margin-top:2px}.textButton{border:0;border-bottom:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:0 0;margin-top:16px;padding:0}.lessonStage{grid-template-rows:auto auto minmax(0,1fr) auto;min-width:0;min-height:100vh;display:grid}.stageHeader{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;padding:28px clamp(28px,5vw,72px) 24px;display:flex}.stageHeader .eyebrow{margin-bottom:8px}.stageHeader h1{letter-spacing:-.045em;margin:0;font-family:Iowan Old Style,Baskerville,Georgia,serif;font-size:clamp(30px,4vw,48px);font-weight:500}.timeBadge{background:var(--white);border:1px solid var(--line);white-space:nowrap;align-items:center;gap:9px;padding:9px 13px;font-size:13px;display:flex}.stageActions{align-items:center;gap:10px;display:flex}.endLessonButton{min-height:38px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #15263d47;align-items:center;gap:8px;padding:0 13px;font-size:12px;font-weight:700;transition:background .16s,color .16s,border-color .16s;display:inline-flex}.endLessonButton span{color:var(--coral);font-family:Georgia,serif;font-size:20px;line-height:1}.endLessonButton:hover{border-color:var(--ink);background:var(--ink);color:var(--white)}.endLessonButton:disabled{opacity:.45;cursor:wait}.pulseDot{background:#62a94b;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #62a94b21}.diagnosticTrack{background:color-mix(in srgb, var(--acid) 34%, var(--white));border-bottom:1px solid #15263d1f;grid-template-columns:minmax(190px,.7fr) minmax(180px,1.3fr) auto;align-items:center;gap:22px;padding:13px clamp(28px,5vw,72px);display:grid}.diagnosticTrackCopy{gap:2px;display:grid}.diagnosticTrackCopy span{color:var(--blue-bright);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:800}.diagnosticTrackCopy strong{font-family:Iowan Old Style,Baskerville,Georgia,serif;font-size:18px;font-weight:500}.diagnosticBar{background:#15263d1f;height:7px;overflow:hidden}.diagnosticBar span{background:var(--coral);min-width:3px;height:100%;transition:width .42s cubic-bezier(.2,.8,.2,1);display:block}.diagnosticTrack>b{min-width:52px;color:var(--ink);text-align:right;font-family:Georgia,serif;font-size:18px}.diagnosticTrack.complete{background:var(--acid)}.conversation{scroll-behavior:smooth;padding:44px clamp(28px,7vw,110px);overflow-y:auto}.welcomeSheet{background:var(--white);border:1px solid #15263d1c;max-width:720px;margin:3vh auto 0;padding:clamp(30px,5vw,58px);animation:.65s both sheetIn;position:relative;box-shadow:0 22px 70px #15263d14}.welcomeSheet:after{content:"";z-index:-1;border:1px solid #15263d1a;position:absolute;inset:8px -8px -8px 8px}.teacherSeal{border:1px solid var(--coral);width:64px;height:64px;color:var(--coral);border-radius:50%;place-items:center;font-family:Georgia,serif;display:grid;position:absolute;top:28px;right:34px;transform:rotate(9deg)}.welcomeSheet h2{letter-spacing:-.055em;max-width:540px;margin:0;font-family:Iowan Old Style,Baskerville,Georgia,serif;font-size:clamp(36px,5vw,62px);font-weight:500;line-height:.98}.welcomeSheet>p:not(.sheetOverline){max-width:610px;color:var(--ink-soft);font-size:17px;line-height:1.6}.quickActions{gap:10px;margin-top:34px;display:grid}.quickActions button{border:0;border-top:1px solid var(--line);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;min-height:48px;padding:0 3px;font-weight:650;display:flex}.quickActions button:hover span{transform:translate(5px)}.quickActions span{color:var(--coral);transition:transform .16s}.message{max-width:720px;margin:0 auto 28px;animation:.35s both messageIn}.message.user{justify-content:flex-end;display:flex}.messageMeta{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);align-items:center;gap:8px;margin-bottom:9px;font-size:12px;font-weight:700;display:flex}.messageMeta em{background:var(--acid);color:var(--ink);margin-left:auto;padding:3px 7px;font-style:normal}.avatar{background:var(--ink);width:28px;height:28px;color:var(--acid);text-transform:lowercase;border-radius:50%;place-items:center;font-family:Georgia,serif;font-size:17px;display:grid}.messageBubble{background:var(--white);border:1px solid var(--line);white-space:normal;padding:20px 22px;line-height:1.65;box-shadow:0 8px 32px #15263d0d}.messageBubble>span{display:block}.message.user .messageBubble{background:var(--blue);color:#fff;max-width:84%;box-shadow:none;border-color:#0000}.thinking{max-width:720px;color:var(--ink-soft);align-items:center;gap:5px;margin:4px auto 26px;display:flex}.thinking>span{background:var(--blue-bright);border-radius:50%;width:7px;height:7px;animation:1s ease-in-out infinite bounce}.thinking>span:nth-child(2){animation-delay:.12s}.thinking>span:nth-child(3){animation-delay:.24s}.thinking small{margin-left:8px}.loadingNote,.chatError{max-width:720px;margin:0 auto}.composer{background:var(--white);border:1px solid #15263d38;margin:0 clamp(28px,7vw,110px) 28px;padding:13px 60px 26px 18px;position:relative;box-shadow:0 14px 50px #15263d1a}.composer textarea{resize:vertical;width:100%;min-height:32px;max-height:160px;color:var(--ink);background:0 0;border:0;outline:0;line-height:1.5}.composer button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:50%;width:40px;height:40px;font-size:22px;position:absolute;top:12px;right:13px}.composer button:disabled{opacity:.28;cursor:default}.composer small{color:var(--ink-soft);font-size:10px;position:absolute;bottom:7px;left:18px}.lessonEnded{background:var(--acid);border:1px solid #15263d2e;justify-content:space-between;align-items:center;gap:22px;margin:0 clamp(28px,7vw,110px) 28px;padding:15px 18px;animation:.35s both sheetIn;display:flex;box-shadow:0 14px 45px #15263d14}.lessonEnded>div{align-items:center;gap:13px;display:flex}.lessonEnded>div>span{background:var(--ink);width:34px;height:34px;color:var(--acid);border-radius:50%;place-items:center;font-weight:800;display:grid}.lessonEnded p,.lessonEnded strong,.lessonEnded small{margin:0;display:block}.lessonEnded small{color:var(--ink-soft);margin-top:3px}.lessonEnded>button{background:var(--ink);color:#fff;cursor:pointer;white-space:nowrap;border:0;min-height:42px;padding:0 15px;font-weight:750}.lessonEnded>button span{color:var(--acid);margin-left:8px}.progressPanel{border-left:1px solid var(--line);background:var(--white);min-height:100vh;padding:34px 30px}.levelDial{--progress:18%;background:conic-gradient(var(--coral) var(--progress), var(--paper-deep) 0);border-radius:50%;place-items:center;width:168px;height:168px;margin:30px auto;display:grid;position:relative}.levelDial:before{content:"";background:var(--white);border-radius:50%;position:absolute;inset:10px}.levelDial>div{text-align:center;position:relative}.levelDial small,.levelDial strong{display:block}.levelDial small{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.13em;font-size:9px}.levelDial strong{font-family:Iowan Old Style,Baskerville,Georgia,serif;font-size:58px;font-weight:500}.progressPanel h2{letter-spacing:-.035em;margin:0;font-family:Iowan Old Style,Baskerville,Georgia,serif;font-size:28px;font-weight:500}.metricList{border-top:1px solid var(--line);margin-top:32px}.metricList>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 0;display:flex}.metricList span{color:var(--ink-soft);font-size:13px}.metricList strong{font-family:Georgia,serif;font-size:19px}.noteCard{background:var(--acid);margin-top:34px;padding:18px;transform:rotate(-1.2deg);box-shadow:5px 7px #15263d14}.noteCard>span{font-family:Georgia,serif;font-size:24px}.noteCard p{margin:8px 0 0;font-family:Bradley Hand,Segoe Print,cursive;line-height:1.45}@keyframes cardIn{0%{opacity:0;transform:translateY(18px)rotate(.5deg)}to{opacity:1;transform:translateY(0)rotate(0)}}@keyframes sheetIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes messageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-5px)}}@media (max-width:1100px){.appShell{grid-template-columns:86px minmax(0,1fr) 260px}.miniBrand strong,.navItem:not(.active){font-size:0}.navItem.active{justify-content:center;font-size:0}.navItem span{width:auto;font-size:17px}.profileChip div,.textButton{display:none}.profileChip{justify-content:center}}@media (max-width:820px){.loginPage{grid-template-columns:1fr}.loginStory{min-height:auto;padding-bottom:54px}.loginStory h1{font-size:clamp(54px,14vw,82px)}.loginPanel{min-height:auto;padding:44px 22px 70px}.appShell{grid-template-columns:1fr}.sideRail{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;align-items:center;height:auto;padding:14px 18px;position:static}.mainNav{margin:0 0 0 auto;display:flex}.mainNav .navItem:not(.active){display:none}.navItem.active{width:42px}.railBottom{border:0;margin:0 0 0 8px;padding:0}.progressPanel{display:none}.lessonStage{min-height:calc(100vh - 65px)}.stageHeader{padding:22px 20px 18px}.diagnosticTrack{grid-template-columns:1fr auto;gap:12px;padding:12px 20px}.diagnosticTrackCopy{grid-column:1/-1}.stageHeader h1{font-size:31px}.stageHeader .eyebrow{font-size:9px}.conversation{padding:28px 20px}.composer,.lessonEnded{margin:0 18px 18px}.welcomeSheet{margin-top:0}}@media (max-width:520px){.loginStory{padding:100px 24px 46px}.brandMark{top:24px;left:24px}.loginLead{margin-top:26px}.lessonPreview{grid-template-columns:44px 1fr;margin-top:42px}.scribble{display:none}.loginPanel{padding-inline:14px}.loginCard{padding:30px 24px}.timeBadge{display:none}.endLessonButton{justify-content:center;width:38px;padding:0;font-size:0}.endLessonButton span{font-size:22px}.lessonEnded{flex-direction:column;align-items:stretch}.lessonEnded>button{width:100%}.teacherSeal{width:48px;height:48px;top:20px;right:22px}.welcomeSheet{padding:28px 22px}.message.user .messageBubble{max-width:93%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
