:root{color:#29273b;font-synthesis:none;--ink:#29273b;--muted:#6b6878;--plum:#547;--purple:#ece6f5;--teal:#286b60;--line:#e3dfd9;--gold:#efbc67;background:#f5f3ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.55}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;background:var(--plum);color:#fff;border:1px solid #0000;border-radius:10px;min-height:44px;padding:10px 17px;font-weight:650;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#43345f}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:default;color:#77727e;background:#e7e4e9;border-color:#ded9e2}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #247d95}.quiet{color:var(--plum);background:0 0;padding:8px 12px}.quiet:hover:not(:disabled){background:#ece8f0}.soft{color:#4e3d6e;background:#ede7f3}.soft:hover:not(:disabled){background:#e0d5ee}.actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}input,textarea,select{width:100%;color:var(--ink);background:#fff;border:1px solid #cdc7d2;border-radius:9px;min-width:0;padding:12px 14px}input:disabled,textarea:disabled{color:#6a6571;background:#f0eef1;border-style:dashed}textarea{resize:vertical;min-height:105px}input::placeholder,textarea::placeholder{color:#817a88}label{margin:16px 0;font-size:.91rem;font-weight:600;display:block}label input,label textarea{margin-top:7px}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.045em;font-size:clamp(2rem,3.3vw,3.35rem);font-weight:700;line-height:1.13}h2{letter-spacing:-.025em;font-size:1.55rem;line-height:1.25}h3{font-size:1.08rem;line-height:1.4}p{margin-bottom:15px}.muted{color:var(--muted)}.micro{color:var(--muted);font-size:.77rem;font-weight:500}.eyebrow{letter-spacing:.15em;text-transform:uppercase;color:#7b6b8f;margin-bottom:18px;font-size:.73rem;font-weight:700;display:block}.tag{text-transform:uppercase;letter-spacing:.07em;color:#5f4e78;background:#eee8f3;border-radius:5px;padding:5px 8px;font-size:.69rem;font-weight:700;display:inline-block}.brand{color:var(--ink);letter-spacing:.13em;white-space:nowrap;font-size:.82rem;text-decoration:none}.brand b{font-weight:800}.brand span{color:#8d71ad;margin-left:4px;font-size:1.3rem}.loading{place-items:center;min-height:100dvh;display:grid}.login{grid-template-columns:1.1fr 1fr;min-height:100dvh;display:grid}.login-art{color:#fff;background:#494164;flex-direction:column;justify-content:space-between;min-height:100dvh;padding:42px 55px;display:flex;position:relative;overflow:hidden}.login-art:after{content:"";pointer-events:none;border:1px solid #ffffff14;border-radius:50%;width:490px;height:490px;position:absolute;top:20%;right:-280px;box-shadow:0 0 0 50px #ffffff05,0 0 0 100px #ffffff04}.login-art .brand{color:#e9e0f4;font-size:.72rem}.login-art .eyebrow{color:#d0c4e1}.login-art h1{letter-spacing:-.06em;margin:30px 0;font-size:clamp(3.8rem,6.4vw,6rem);font-weight:500;line-height:1.05}.login-art em,.library-hero em{color:#f3c77f;font-family:Georgia,serif;font-weight:400}.login-art p{color:#dfd7eb;font-size:1.04rem}.art-note{color:#d5c9e2;font-size:.75rem}.login-card{place-self:center;max-width:460px;padding:40px 28px}.logo{background:var(--purple);width:62px;height:62px;color:var(--plum);border-radius:17px;justify-content:center;align-items:center;margin-bottom:45px;font-family:Georgia,serif;font-size:2rem;display:flex}.logo span{align-self:flex-start;margin-top:10px;font-family:system-ui;font-size:1rem}.login-card h2{font-size:2.2rem}.login-card>button{justify-content:space-between;width:100%;margin:12px 0;display:flex}.login-card small{border-top:1px solid var(--line);color:var(--muted);margin-top:25px;padding-top:22px;font-size:.74rem;display:block}.setup{border:1px solid var(--line);border-radius:12px;margin:15px 0;padding:16px;font-size:.85rem}.success{color:var(--teal)}.error{color:#9b2837!important;background:#fff0f0!important}.app-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.app-header{border-bottom:1px solid var(--line);background:#fffdfa;flex-shrink:0;align-items:center;gap:30px;height:75px;padding:0 32px;display:flex}.status{color:#655d70;align-items:center;gap:7px;font-size:.72rem;display:flex}.dot{background:#b17b42;border-radius:50%;width:7px;height:7px}.dot.online{background:#3c8b76}.header-actions{align-items:center;gap:18px;margin-left:auto;display:flex}.user-name{color:#635c6f;font-size:.82rem}.main-nav{border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:20px;height:56px;padding:0 30px;display:flex}.main-nav .nav{color:#79717f;background:0 0;border-bottom:2px solid #0000;border-radius:0;height:56px;padding:0 3px;font-size:.83rem;font-weight:550}.main-nav .nav.active{color:var(--plum);border-bottom-color:var(--plum)}.nav-spacer{flex:1}.count{background:#ded5ec;border-radius:20px;place-items:center;min-width:20px;height:20px;margin-left:5px;display:inline-grid}.toast{color:#275e50;background:#e7f1ed;flex-shrink:0;justify-content:space-between;align-items:center;gap:15px;max-height:110px;padding:7px 28px;font-size:.85rem;display:flex;overflow:auto}.toast .quiet{min-height:30px}.library{flex:1;padding:38px max(32px,50vw - 595px) 60px;overflow:auto}.library-hero{background:#e9e3ef;border:1px solid #ded5e6;border-radius:18px;justify-content:space-between;gap:35px;min-height:290px;padding:40px 45px;display:flex}.library-hero h1{margin-bottom:18px;font-size:3.3rem;font-weight:500}.library-hero em{color:#74608e}.library-hero p{color:#675c73;max-width:530px;font-size:.94rem}.hero-decoration{color:#746085;flex-direction:column;justify-content:center;min-width:240px;font-family:Georgia,serif;font-size:3.8rem;line-height:1.1;display:flex;transform:rotate(-5deg)}.hero-decoration span{color:#ac87a9;margin-left:50px}.hero-decoration small{letter-spacing:.04em;color:#83758c;margin:23px 0 0 30px;font-family:system-ui;font-size:.7rem}.section-heading{justify-content:space-between;align-items:center;margin:35px 0 18px;display:flex}.section-heading h2{margin:0;font-size:1.3rem}.lesson-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:20px;margin-bottom:25px;display:grid}.lesson-tile{border:1px solid var(--line);background:#fffdfa;border-radius:16px;padding:28px;position:relative;overflow:hidden}.lesson-tile h2{margin:22px 60px 12px 0;font-size:1.7rem}.lesson-tile p{font-size:.86rem}.tile-number{color:#ece4ee;font-family:Georgia,serif;font-size:4.5rem;font-style:italic;line-height:1;position:absolute;top:45px;right:24px}.lesson-tile .actions{margin-top:25px}.empty{color:var(--muted);background:#fff;border:1px dashed #d7cedc;border-radius:12px;padding:35px}.class-layout{flex:1;grid-template-columns:minmax(0,1fr) 285px;gap:28px;min-height:0;padding:0 25px 0 30px;display:grid}.lesson-area{flex-direction:column;min-width:0;min-height:0;display:flex}.lesson-top{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-height:55px;display:flex}.lesson-top .micro{font-size:.69rem}.progress-track{background:#e3dfe7;flex-shrink:0;height:3px;margin-bottom:17px}.progress-track>div{background:#b18ab4;height:100%;transition:width .3s}.stage{overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--line);background:#fffdfa;border-radius:16px;flex:1;min-height:0;padding:34px clamp(25px,4vw,56px);overflow:auto;box-shadow:0 6px 18px #38304604}.stage .eyebrow{margin-bottom:19px}.lesson-paragraph{max-width:900px;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.75}.stage h1{margin-bottom:25px}.stage.cover{color:#fff;background:#4d4469;padding-top:clamp(36px,6vh,85px);position:relative}.cover h1{letter-spacing:-.055em;max-width:670px;font-size:clamp(2.9rem,4.7vw,5.1rem);font-weight:500}.cover .eyebrow{color:#dacbe9}.cover .lesson-paragraph{color:#e9e0f4;font-size:1.02rem}.cover .cards{margin-top:30px}.cover .card{color:#eee6f4;background:#ffffff0d;border-color:#ffffff21}.cover .card h3{color:#f2cc88}.cover .cover-button{color:#41344d;background:#edc281;margin-top:20px}.cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px;margin:24px 0;display:grid}.card{background:#f5f1f8;border:1px solid #e7e0e9;border-radius:12px;min-width:0;padding:21px}.card p{margin-bottom:0;font-size:.94rem}.card h3{color:#554273;margin-bottom:9px}.lesson-footer{flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;min-height:76px;display:flex}.class-sidebar{border-left:1px solid var(--line);min-width:0;padding:36px 0 25px 25px;overflow:auto}.class-sidebar .eyebrow{font-size:.64rem}.class-sidebar h2{margin-bottom:15px;font-family:Georgia,serif;font-size:1.75rem;font-weight:400;line-height:1.2}.class-sidebar p{font-size:.83rem}.class-sidebar>button{width:100%;margin-bottom:12px}.class-sidebar .muted{line-height:1.7}.meet-link{color:#6f6383;margin-top:30px;font-size:.75rem;display:block}.selection-card{color:#594a30;background:#faf1d8;border-left:3px solid #ddba6f;margin:14px 0;padding:12px 14px}.selection-card p{margin-bottom:0;font-weight:600}.notice{color:#655775;background:#eee9f2;border-radius:10px;margin:20px 0;padding:14px 16px;font-size:.8rem;line-height:1.7}.request{background:#e9f1eb;border:1px solid #b8d0c2;border-radius:12px;margin:18px 0;padding:17px}.request strong{font-size:.89rem}.request button{width:100%;margin-top:6px}.telemetry{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.telemetry h3{margin:0;font-size:.88rem}.telemetry p{font-size:.77rem}.exercises{gap:18px;margin-top:23px;display:grid}.exercise{background:#fff;border:1px solid #e0d9e6;border-radius:12px;min-width:0;padding:20px}.exercise.open{background:#fcfffd;border-color:#9cbaa9}.exercise-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.exercise-top button{min-height:34px;padding:7px 10px;font-size:.76rem}.exercise>label{margin:15px 0;font-size:1.03rem;font-weight:550;line-height:1.6}.exercise>.actions{margin-top:14px}.teacher-answer{border-top:1px dashed #e3dce9;padding-top:15px}.teacher-answer>p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px;font-size:1.04rem}.teacher-answer textarea{min-height:65px;font-size:.8rem}.teacher-answer details{color:#6c5a7b;margin:15px 0;font-size:.82rem}.options{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.option{color:#524462;text-align:left;background:#f3eff7;border:1px solid #e0d7e8}.option.selected{color:#2b6856;background:#e4f0e9;border:2px solid #4d8c79;padding:9px 16px}.feedback{color:#315b4e;background:#eaf3ee;border-left:3px solid #518777;border-radius:7px;margin-top:18px;padding:15px 18px}.feedback p:last-child{margin:0}.listening{background:#f0f5ef;border:1px solid #d9ded8;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px 25px;margin:25px 0;padding:22px;display:flex}.listening h3{margin:11px 0 5px}.listening .micro{margin:0}.listening audio{width:100%;height:42px}.listening .speed{min-width:110px;margin-left:auto;font-size:.8rem}.listening select{margin-top:4px;padding:7px}.listening details{width:100%;font-size:.83rem}.listening details p{margin:12px 0 0}.floating-notes{z-index:3;color:#4b3a23;background:#f2c984;border-radius:30px;font-size:.8rem;position:fixed;bottom:24px;right:25px;box-shadow:0 4px 16px #30233b22}.modal{width:100%;max-width:min(570px,100vw - 45px);max-height:86dvh;color:var(--ink);background:#fffdfa;border:1px solid #d7cedd;border-radius:17px;padding:25px 30px;overflow:auto;box-shadow:0 25px 100px #1e152533}.modal.wide{max-width:min(940px,100vw - 45px)}.modal::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2622348c}.modal>header{z-index:1;background:#fffdfa;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px;padding-top:15px;padding-bottom:10px;display:flex;position:sticky;top:-25px}.modal h2{margin:0;font-size:1.35rem}.modal>button:last-child{margin-top:18px}.modal details{border-bottom:1px solid var(--line);padding:15px 0}.modal summary{cursor:pointer;font-weight:600}.pre-wrap{white-space:pre-wrap}.private-label{color:#795c29;background:#f5e9d6;border-radius:6px;padding:10px 12px;font-size:.8rem}.vocab-countdown{color:#786033;z-index:1;background:#f5ead0;border-radius:8px;padding:12px;font-weight:650;position:sticky;top:60px}.vocab-item{border-bottom:1px solid var(--line);padding:12px 0}.vocab-item p{margin:5px 0;font-size:.77rem}.file-button{cursor:pointer;color:var(--plum);border:1px solid #d5cbdc;border-radius:8px;margin:0;padding:10px 13px;font-size:.83rem}.file-button input{display:none}.code{white-space:pre;min-height:50vh;font-family:ui-monospace,monospace;font-size:.8rem}.check{align-items:center;gap:10px;display:flex}.check input{width:20px;margin:0}.editor-activity{background:#f5f1f7;border-radius:9px;padding:0 14px 10px}.editor-activity textarea{min-height:70px}mark{color:#3c2d21;background:#f8d46c;border-radius:3px;box-shadow:0 0 0 2px #f8d46c}::selection{color:#2c213c;background:#d2c1e9}@media (width>=1400px){.class-layout{grid-template-columns:minmax(0,1fr) 300px;padding-left:max(35px,50vw - 775px);padding-right:max(35px,50vw - 775px)}.library-hero{min-height:340px}.library-hero h1{font-size:3.8rem}}@media (width<=1000px){.class-layout{grid-template-columns:minmax(0,1fr) 220px;gap:17px;padding:0 17px}.class-sidebar{padding-left:17px}.class-sidebar h2{font-size:1.45rem}.app-header{gap:18px;padding:0 22px}.stage{padding:27px}.main-nav{padding:0 22px}.main-nav>.micro{display:none}.hero-decoration{min-width:180px;font-size:3.1rem}.login-art{padding:35px}.login-art h1{font-size:4.5rem}.lesson-paragraph{font-size:1.05rem}}@media (width<=760px){.app-header{gap:12px;height:65px;padding:0 15px}.status{font-size:.65rem}.header-actions{gap:6px}.user-name{display:none}.brand{font-size:.7rem}.main-nav{gap:18px;height:50px;padding:0 15px}.main-nav .nav{height:50px;font-size:.77rem}.class-layout{flex-direction:column;gap:0;display:flex;overflow:auto}.lesson-area{flex:none;min-height:calc(100dvh - 118px)}.lesson-top{min-height:50px}.lesson-top .micro{max-width:65%;font-size:.61rem}.stage{min-height:50dvh;max-height:68dvh;padding:25px 22px}.stage h1{font-size:2.1rem}.stage.cover h1{font-size:3rem}.class-sidebar{border-left:0;border-top:1px solid var(--line);padding:25px 15px 80px;overflow:visible}.class-sidebar>button{width:auto;margin-right:8px}.class-sidebar h2{font-size:1.7rem}.class-sidebar .telemetry{max-width:500px}.lesson-footer{min-height:67px}.library{padding:24px 20px 45px}.library-hero{min-height:260px;padding:27px}.library-hero h1{font-size:2.65rem}.hero-decoration{display:none}.login{grid-template-columns:1fr}.login-art{display:none}.login-card{flex-direction:column;justify-content:center;max-width:450px;min-height:100dvh;padding:50px 28px;display:flex}.login-card h2{font-size:2rem}.toast{padding:7px 14px}.modal{max-height:90dvh;padding:20px}.floating-notes{bottom:16px;right:16px}.cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.word-click-enabled .word-token{cursor:pointer;border-radius:3px}.word-click-enabled .word-token:hover{color:#26352c;background:#e5edc9}.word-peek{z-index:30;color:#26352c;background:#fffef9;border:1px solid #d9dfd3;border-radius:18px;width:min(340px,100vw - 48px);max-height:55vh;padding:20px;position:fixed;bottom:88px;right:24px;overflow-y:auto;box-shadow:0 12px 48px #17251e26}.word-peek-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.word-peek h3{overflow-wrap:anywhere;margin:8px 0 12px;font-size:26px}.word-peek p{margin:8px 0;line-height:1.5}.word-peek small{color:#637064;margin-top:14px;line-height:1.4;display:block}.word-peek .word-translation{font-weight:600}.word-peek .word-example{font-style:italic}
