:root{--ink:#213b31;--muted:#6b7971;--green:#245941;--lime:#d9eb9b;--paper:#fdfefd;--line:#e1e7dd;--white:#fff;--soft:#eef3e8;font-family:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;line-height:1.6}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit;text-decoration:none}button{color:inherit}svg{flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.4;letter-spacing:-1px}h2{font-size:19px}h3{font-size:19px;line-height:1.5}p{margin:10px 0}small{font-size:12px}strong{font-weight:650}:focus-visible{outline:3px solid #719844;outline-offset:4px}::selection{background:var(--lime)}.muted,.helper{color:var(--muted);font-size:14px}.helper{font-size:12px}.eyebrow{display:block;font-size:11px;letter-spacing:2px;font-weight:750;color:#678054;margin-bottom:13px}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand>span{font-size:18px;font-weight:750;letter-spacing:1px}.brand small{display:block;font-size:9px;letter-spacing:2.2px;color:var(--muted);line-height:1.3}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:11px 19px;border:1px solid transparent;border-radius:11px;font-weight:650;font-size:14px;transition:background .18s,transform .18s}.button:hover:not(:disabled){transform:translateY(-1px)}.primary{background:var(--green);color:white;box-shadow:0 3px 0 #173d2d}.primary:hover:not(:disabled){background:#326d50}.secondary{background:white;border-color:var(--line)}.quiet{background:transparent;color:#526b59}.quiet:hover:not(:disabled){background:var(--soft)}.small{min-height:40px;padding:7px 11px;font-size:12px}.full{width:100%}.text-link{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.icon-button{background:transparent;border:0;display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;border-radius:9px}.icon-button:hover{background:var(--soft)}.pill{display:inline-flex;padding:4px 10px;border-radius:7px;background:#edf4e3;color:#48713b;font-size:11px;font-weight:650;white-space:nowrap}.pill.gray{background:#f0f2ee;color:#758073}.pill.amber{background:#fcf0d8;color:#8c6a2a}.dot-sep{padding:0 7px}.notice{background:#f8f4e7;color:#76643c;border-radius:10px;padding:13px 16px;font-size:13px;line-height:1.8}.panel{background:white;border:1px solid var(--line);border-radius:16px;padding:24px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.section-heading h2>span{font-size:12px;font-weight:400;color:var(--muted);margin-left:8px}.progress-track{height:6px;background:#eaf0e4;border-radius:20px;overflow:hidden}.progress-track>div{height:100%;border-radius:20px;background:#96b963;transition:width .3s}.loading,.fatal{padding:12vh 8vw;max-width:700px;margin:auto}.fatal h1{margin-top:40px}
/* Public welcome */
.landing{max-width:1240px;min-height:100dvh;margin:auto;padding:0 54px;display:flex;flex-direction:column}.public-header{display:flex;justify-content:space-between;align-items:center;padding:32px 0}.hero{flex:1;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:50px;padding:80px 0 110px}.hero h1{font-size:48px;line-height:1.55;font-weight:750;letter-spacing:-2px}.hero h1 span{position:relative;z-index:0}.hero h1 span:after{content:'';position:absolute;left:0;right:0;bottom:5px;height:16px;background:var(--lime);z-index:-1;border-radius:7px}.hero .eyebrow{font-size:12px;letter-spacing:2px}.eyebrow i,.live-dot{display:inline-block;width:7px;height:7px;border-radius:100%;background:#8cab61;margin-right:8px}.hero-copy{font-size:16px;color:var(--muted);line-height:2;margin:24px 0 30px}.hero-note{display:flex;align-items:center;gap:14px}.hero-note strong,.hero-note span{display:block;font-size:13px}.hero-note span{color:var(--muted);font-size:12px;margin-top:3px}.hero-note>svg{box-sizing:content-box;padding:13px;border:1px solid var(--line);border-radius:14px;background:white}.hero-art{position:relative;min-height:330px;display:grid;place-items:center;background:radial-gradient(ellipse,#e9efdc 0,transparent 68%)}.art-card{position:relative;padding:30px 26px;background:white;border:1px solid #dbe4d2;border-radius:19px;transform:rotate(-4deg);box-shadow:0 18px 50px #34432810;width:100%;max-width:410px}.mini-label{font-size:9px;letter-spacing:2px;color:var(--muted)}.art-prompt{margin:18px 0;color:#53674c;font-size:14px}.art-words{display:flex;gap:9px;flex-wrap:wrap}.art-words span{padding:12px 17px;background:#f3f6ed;border:1px solid #d5e1c5;border-bottom:4px solid #c3d3aa;border-radius:10px;font-size:25px;font-weight:650}.art-feedback{display:flex;align-items:center;gap:8px;margin-top:28px;font-size:13px;color:#54853e}.art-sticker{position:absolute;right:-5px;bottom:-8px;background:var(--lime);border-radius:50%;width:115px;height:115px;display:flex;flex-direction:column;justify-content:center;text-align:center;transform:rotate(10deg);font-size:13px;box-shadow:0 4px 0 #c8dc8a}.art-star{position:absolute;color:#92ab68}.star-a{font-size:62px;right:6%;top:-25px}.star-b{font-size:46px;left:-27px;bottom:7px}.public-footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:23px 0;color:#879180;font-size:11px;letter-spacing:1px}
/* Teacher workspace */
.teacher-shell{min-height:100dvh;display:flex}.sidebar{width:234px;position:fixed;inset:0 auto 0 0;padding:30px 24px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.sidebar .brand{gap:8px}.sidebar .brand>span{font-size:17px}.workspace-label{color:#9ca595;font-size:10px;letter-spacing:2px;margin:45px 12px 14px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;padding:13px 14px;border-radius:10px;text-align:left;font-size:14px;margin-bottom:7px;color:#6e7c70}.nav-item.active{background:#eef4e5;color:#365632;font-weight:700}.nav-item>span{margin-left:auto;font-size:11px;background:#dfe9d1;padding:0 7px;border-radius:5px}.sidebar-bottom{margin-top:auto;font-size:10px;color:#8b9688}.sidebar-bottom .nav-item{margin-top:20px}.workspace{margin-left:234px;flex:1;min-width:0;display:flex;flex-direction:column}.workspace-top{height:83px;padding:0 44px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.teacher-avatar,.name-avatar{display:inline-flex;justify-content:center;align-items:center;background:#e8eedd;border-radius:12px;width:35px;height:35px;font-size:13px;color:#657550;flex-shrink:0}.workspace-content{width:100%;max-width:1300px;margin:0 auto;padding:44px;flex:1}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:31px}.page-heading .eyebrow{font-size:9px}.page-heading p{margin:9px 0 0}.stats-row{display:grid;grid-template-columns:1fr 1fr 1fr 1.1fr;background:white;border:1px solid var(--line);border-radius:17px;margin-bottom:38px;overflow:hidden}.stats-row>div{padding:22px 27px;border-right:1px solid var(--line)}.stats-row>div>span{font-size:12px;color:var(--muted);display:block}.stats-row strong{display:block;font-size:32px;margin-top:7px;font-weight:600}.stats-row small{font-size:12px;color:var(--muted);margin-left:8px;font-weight:400}.stats-row .stats-quote{background:#edf3df;border:0;position:relative;font-size:14px;color:#5c7045;line-height:1.9}.stats-quote svg{position:absolute;right:18px;bottom:20px;color:#9baf72}.assignment-grid,.pack-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:20px}.assignment-card,.pack-card{background:white;border:1px solid var(--line);border-radius:15px;padding:23px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.card-top .muted{font-size:11px}.assignment-card h3{font-size:18px}.assignment-card>p{font-size:12px}.completion-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);margin:25px 0 9px}.completion-label strong{font-size:17px;color:var(--ink)}.completion-label small{font-weight:400;color:var(--muted)}.card-actions{display:flex;gap:10px;margin-top:23px}.card-actions .secondary{flex:1}.workspace-footer{padding:25px 44px;color:#a0a899;font-size:9px;letter-spacing:2px;display:flex;justify-content:space-between}.workspace-footer span{letter-spacing:1px}.empty{padding:65px 20px;background:white;border:1px dashed #d6dfcf;border-radius:16px;text-align:center}.empty-icon{width:66px;height:66px;border-radius:20px;background:#f0f4e9;display:grid;place-items:center;color:#8da471;margin:0 auto 20px}.empty p{font-size:13px;color:var(--muted);margin:12px 0 25px}.class-panel{margin-bottom:20px}.roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}.roster-person{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:9px 10px;border-radius:10px;min-width:0}.roster-person strong{font-size:13px;overflow-wrap:anywhere}.roster-person code{font-size:14px;margin-left:auto;letter-spacing:1px;color:#637356}.pack-card>svg,.pack-icon{color:#6c8452}.pack-card h3{margin:13px 0}.pack-card p{color:var(--muted);font-size:13px}.pack-card .button{margin-top:16px}.pack-meta{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0;font-size:12px;color:var(--muted)}.two-columns{display:grid;grid-template-columns:1.25fr 1fr;gap:22px;align-items:start}.two-columns .panel{min-width:0;padding:22px}.student-detail{border-top:1px solid var(--line)}summary{cursor:pointer}.student-detail>summary{display:flex;align-items:center;gap:12px;padding:17px 0;font-size:13px;list-style:none}.student-detail>summary>div{display:flex;align-items:center;gap:10px;flex:1;min-width:0;overflow-wrap:anywhere}.score-small{font-size:11px;color:var(--muted)}.answer-list{padding:0 0 12px}.answer-row{display:flex;gap:11px;padding:13px 10px;font-size:12px;border-radius:9px;margin:3px 0;align-items:start}.answer-row.wrong{background:#fbf5e9}.answer-row>div{flex:1;min-width:0;overflow-wrap:anywhere}.answer-row p{margin:4px 0}.answer-row>span:last-child{font-size:11px;white-space:nowrap}.answer-row small{color:#957749}.question-number{display:inline-grid;place-items:center;width:23px;height:23px;background:#edf2e7;border-radius:6px;font-size:11px;flex-shrink:0}.question-summary>div{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:17px 0;border-bottom:1px solid var(--line);font-size:13px}.question-summary p{font-size:12px;color:var(--muted);margin:4px 0}.error-count{font-size:23px;white-space:nowrap;color:#a0ad96}.error-count small{font-size:10px}.has-errors{color:#b18543}.page-heading>div:last-child:not(:first-child){flex-wrap:wrap}.report-actions{display:flex;gap:8px;flex-wrap:wrap}.back-link{margin-bottom:20px}
.button-group{display:flex;gap:9px;flex-wrap:wrap}.report-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:25px}.report-summary>div:first-child{min-width:95px}.report-summary strong{display:block;font-size:32px}.report-summary small{font-size:12px;font-weight:400;color:var(--muted)}.report-summary p{font-size:12px}.pack-symbol{display:inline-grid;place-items:center;width:48px;height:48px;background:#f0f5e6;border-radius:14px;margin-right:12px;margin-bottom:20px;color:#7c965a}.pack-card h2{font-size:19px}.pack-card>.pill{vertical-align:middle}
@media(max-width:760px){.report-summary{flex-wrap:wrap;gap:13px}.report-summary strong{font-size:28px}.report-summary .button-group{width:100%}.page-heading>.button-group{width:100%}}
/* Forms and dialogs */
.login-shell{max-width:1160px;margin:auto;padding:30px 40px}.login-shell>header{display:flex;justify-content:space-between;align-items:center}.login-card{max-width:430px;margin:70px auto 25px;background:white;border:1px solid var(--line);border-radius:22px;padding:38px}.login-foot{text-align:center;font-size:12px;color:var(--muted)}form{margin-top:24px}label{display:block;font-size:13px;font-weight:600;margin-bottom:18px}input,textarea,select{display:block;width:100%;margin-top:8px;border:1px solid #d7dfd1;background:#fcfdf9;border-radius:9px;padding:12px 13px;color:var(--ink);font-size:16px;min-width:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#a0aa99;font-size:13px}.label-hint{float:right;color:var(--muted);font-size:11px;font-weight:400}.form-error{color:#ad593f;font-size:13px;min-height:0}.form-error:empty{display:none}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:15px}.checkbox-label{display:flex;align-items:flex-start;gap:10px;font-weight:400;line-height:1.9;margin:23px 0}.checkbox-label input{width:18px;height:18px;flex-shrink:0;margin-top:3px;accent-color:var(--green)}.modal-backdrop{position:fixed;inset:0;background:#17362660;backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:30;padding:24px}.modal{width:660px;max-width:100%;max-height:calc(100dvh - 48px);overflow:auto;background:white;border-radius:20px;padding:27px 30px;box-shadow:0 20px 100px #142a2630;overscroll-behavior:contain}.modal>header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.modal>header h2{font-size:21px}.preview-questions{margin-top:18px}.preview-questions details{border:1px solid var(--line);border-radius:9px;margin:9px 0}.preview-questions summary{padding:12px;font-size:13px}.preview-questions summary .question-number{margin-right:10px}.preview-body{padding:0 15px 14px;font-size:12px}.mini-tokens{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.mini-tokens span{padding:4px 9px;background:#f3f6ee;border:1px solid var(--line);border-radius:6px}.copy-buffer{position:fixed;left:-10000px}
.first-answer-note{font-size:12px;color:#6d795d;background:#f4f7ec;padding:10px;border-radius:9px}.button:active:not(:disabled){transform:translateY(2px) scale(.98);box-shadow:none}.word-token:active:not(:disabled){background:#e7efda}.assignment-card{transition:border-color .2s,box-shadow .2s}.assignment-card:hover{border-color:#c9d7bd;box-shadow:0 8px 25px #25452507}.finish-animate .finish-badge{animation:badge-pop .7s cubic-bezier(.2,.7,.2,1)}.finish-animate .finish-spark{animation:spark-pop .7s .15s both}.finish-animate .s2{animation-delay:.25s}.finish-animate .s3{animation-delay:.35s}@keyframes badge-pop{0%{transform:rotate(-15deg) scale(.65)}55%{transform:rotate(5deg) scale(1.08)}80%{transform:rotate(-10deg) scale(.98)}100%{transform:rotate(-8deg) scale(1)}}@keyframes spark-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2);opacity:1}100%{transform:scale(1);opacity:1}}
/* Children's exercise */
.student-shell{max-width:1040px;margin:auto;padding:25px 46px;min-height:100dvh;display:flex;flex-direction:column}.student-header{display:flex;align-items:center;justify-content:space-between;gap:15px}.student-context{font-size:12px;color:var(--muted)}.student-main{flex:1;width:100%;max-width:740px;margin:42px auto 30px}.student-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:17px;font-size:11px;color:#91a087}.student-progress{display:flex;align-items:center;gap:19px;max-width:740px;width:100%;margin:30px auto -12px}.student-progress .progress-track{flex:1;height:7px}.student-progress>span{font-size:18px;font-weight:650}.student-progress small{font-size:12px;font-weight:400;color:var(--muted)}.welcome-card,.completion-card{background:white;border:1px solid var(--line);border-radius:24px;text-align:center;padding:38px 48px;max-width:600px;margin:auto;box-shadow:0 15px 50px #253d2405}.welcome-card h1{font-size:27px;overflow-wrap:anywhere}.welcome-art{display:flex;position:relative;align-items:center;justify-content:center;width:84px;height:84px;background:#eff4e4;border-radius:26px;margin:0 auto 25px;color:#728e52;transform:rotate(-5deg)}.welcome-art i{position:absolute;right:-9px;top:-12px;color:#adc679;font-size:29px}.welcome-card form{text-align:left;max-width:355px;margin:29px auto 0}.code-input{text-align:center;letter-spacing:7px;font-size:24px;font-weight:650;padding:15px}.code-input::placeholder{letter-spacing:1px}.hello-wave{font-size:43px;display:block;margin-bottom:15px}.start-facts{display:flex;justify-content:center;margin:27px 0;gap:0}.start-facts>span{font-size:30px;min-width:140px}.start-facts>span+span{border-left:1px solid var(--line)}.start-facts small{display:block;font-size:11px;color:var(--muted)}.welcome-card>.button.primary{margin-top:24px}.exercise-card{background:white;border:1px solid var(--line);border-radius:23px;padding:32px 38px;box-shadow:0 13px 45px #26352405}.exercise-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.exercise-meta .muted{font-size:12px}.exercise-card h1{font-size:29px;scroll-margin-top:20px;overflow-wrap:anywhere}.answer-zone{display:flex;align-items:center;gap:8px;padding:19px 17px;border:2px dashed #d6e1c8;border-radius:14px;background:#f8faf3;min-height:102px;transition:background .15s}.answer-zone.has-words{border-style:solid;background:#f6f9ee}.token-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;min-width:0}.answer-zone .token-row{flex:1;min-height:48px}.answer-placeholder{font-size:14px;color:#9da993;margin-left:5px}.punctuation{font-size:28px;color:#8fa575;align-self:flex-end;margin-bottom:5px}.bank-tools{display:flex;justify-content:flex-end;margin:10px 0 8px}.word-bank{min-height:105px;border:1px solid transparent;border-radius:12px;padding:4px 0 17px;align-content:flex-start}.word-token,.token-placeholder{font-size:21px;font-weight:550;padding:10px 18px;border-radius:10px;min-height:53px;line-height:1.45;max-width:100%;overflow-wrap:anywhere}.word-token{background:#fff;border:1px solid #d7dfd0;border-bottom:4px solid #d3ddc9;box-shadow:0 2px 2px #203a2510;touch-action:none;user-select:none;-webkit-user-select:none;position:relative;transition:background .15s}.word-token:hover:not(:disabled){background:#f5f8ed}.word-token:disabled{opacity:1;color:#637555;box-shadow:none}.selected-token{background:#eaf2dc;border-color:#c4d6aa;border-bottom-color:#b2c896}.token-placeholder{color:transparent;background:#f4f6f0;border:1px dashed #e2e7db;user-select:none}.interaction-hint{display:flex;align-items:center;gap:6px;font-size:11px;color:#93a184;margin:2px 0 21px}.exercise-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;border-top:1px solid var(--line);padding-top:24px}.exercise-bottom>.muted{font-size:11px}.submit-answer{min-width:145px}.feedback{display:flex;align-items:center;gap:15px;background:#f0f6e6;border:1px solid #dfebcf;border-radius:13px;padding:18px;margin:20px 0}.feedback.encourage{background:#fcf6e9;border-color:#f0e4c8}.feedback-symbol{width:38px;flex-shrink:0;color:#a68953}.feedback-symbol svg{width:38px;height:38px}.feedback-symbol circle{fill:#ddecc8;stroke:none}.feedback-symbol path{stroke:#6a9344;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none}.feedback h2{font-size:15px}.feedback p{font-size:17px;margin:4px 0;overflow-wrap:anywhere}.feedback small{color:#8c7854;display:block;margin-top:7px}.feedback-enter{animation:feedback-in .35s ease-out}.feedback-enter.correct path{stroke-dasharray:40;stroke-dashoffset:40;animation:draw-check .4s .1s forwards}.drag-ghost{position:fixed;z-index:100;pointer-events:none;transform:translate(-50%,-60%) rotate(-4deg);box-shadow:0 10px 25px #26472930;opacity:.96}.drag-source{opacity:.3}.answer-zone.drag-over,.word-bank.drag-over{background:#e9f2d8;border-color:#8eae65}.drop-before:before,.drop-after:after{content:'';position:absolute;top:0;bottom:0;width:3px;background:#5c873e;border-radius:3px}.drop-before:before{left:-7px}.drop-after:after{right:-7px}.completion-card{max-width:690px}.completion-card h1{font-size:27px}.finish-art{position:relative;width:155px;margin:0 auto 28px;height:125px;display:grid;place-items:center}.finish-badge{display:grid;place-items:center;background:#e9f1d8;color:#78994c;width:96px;height:96px;border-radius:30px;transform:rotate(-8deg)}.finish-spark{position:absolute;color:#b4c77f;font-size:30px}.s1{left:0;top:0}.s2{right:-1px;top:28px;font-size:43px}.s3{left:8px;bottom:0;font-size:17px}.finish-animate{animation:feedback-in .6s ease-out}.result-score{display:flex;align-items:center;justify-content:center;gap:12px;margin:25px 0 15px}.result-score strong{font-size:72px;line-height:1.1;font-weight:650;letter-spacing:-4px}.result-score>span{font-size:25px;text-align:left;color:#99aa86}.result-score small{display:block;font-size:11px;color:var(--muted)}.result-note{font-size:12px;color:#6e815c;background:#f3f7ea;border-radius:9px;padding:12px}.review-section,.all-answers{text-align:left;margin-top:29px}.review-section h2{display:flex;align-items:center;gap:9px;font-size:16px;margin-bottom:12px}.review-item{padding:15px 0;border-bottom:1px solid var(--line);font-size:14px;overflow-wrap:anywhere}.review-item p{font-size:12px;color:var(--muted);margin:0 0 5px}.review-item strong{display:block;font-size:16px}.review-item small{display:block;color:#929d88;margin-top:6px}.all-answers summary{font-size:12px;color:var(--muted)}.all-correct-note{padding:24px 0;font-size:13px;color:#6b8652;display:flex;align-items:center;justify-content:center;gap:10px}#effects{position:fixed;inset:0;z-index:80;pointer-events:none;overflow:hidden}.confetti{position:absolute;width:8px;height:12px;border-radius:2px}#toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,15px);padding:13px 22px;background:#263e32;color:white;font-size:13px;line-height:1.7;border-radius:12px;max-width:calc(100vw - 32px);width:max-content;z-index:120;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 7px 30px #243b3225}#toast.visible{opacity:1;transform:translate(-50%,0)}@keyframes feedback-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@keyframes draw-check{to{stroke-dashoffset:0}}
@media(min-width:1450px){.hero{padding-top:100px;padding-bottom:160px}}@media(max-width:1100px){.workspace-content{padding:30px 25px}.workspace-top{padding:0 25px}.sidebar{width:210px;padding:27px 18px}.workspace{margin-left:210px}.stats-row>div{padding:20px}.stats-row{grid-template-columns:repeat(3,1fr)}.stats-row .stats-quote{display:none}.two-columns{grid-template-columns:1fr}.hero h1{font-size:39px}.landing{padding:0 35px}.hero{gap:28px}.art-words span{padding:10px 13px;font-size:23px}.hero-art{min-height:300px}.page-heading h1{font-size:27px}}
@media(max-width:760px){.sidebar{position:static;width:auto;padding:18px 20px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand img{width:32px;height:32px}.sidebar .brand>span{font-size:15px}.sidebar nav{display:flex;margin-top:18px;gap:6px}.workspace-label,.sidebar-bottom{display:none}.nav-item{justify-content:center;margin:0;padding:10px;font-size:12px}.teacher-shell{display:block}.workspace{margin-left:0}.workspace-top{height:57px;padding:0 20px}.workspace-content{padding:27px 20px}.workspace-footer{padding:23px 20px;font-size:8px}.page-heading{align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:24px}.page-heading h1{font-size:26px}.page-heading p{font-size:12px}.page-heading>.button{min-height:42px;padding:9px 13px}.stats-row{margin-bottom:27px}.stats-row>div{padding:17px 15px}.stats-row strong{font-size:26px}.stats-row small{font-size:10px;margin-left:5px}.stats-row>div>span{font-size:10px}.assignment-grid,.pack-grid{grid-template-columns:1fr}.panel,.two-columns .panel{padding:18px}.section-heading{gap:10px}.section-heading h2{font-size:16px}.section-heading>.muted{font-size:10px}.score-small{font-size:10px}.student-detail>summary{gap:8px}.student-detail .name-avatar{width:29px;height:29px}.landing{padding:0 24px}.public-header{padding:24px 0}.hero{grid-template-columns:1fr;padding:48px 0 65px;gap:65px}.hero h1{font-size:40px}.hero-copy{font-size:14px}.hero-art{max-width:430px;width:100%;margin:auto;min-height:260px}.art-sticker{right:0;bottom:-25px;width:95px;height:95px;font-size:11px}.star-a{top:-40px;font-size:50px}.star-b{left:-15px}.public-footer{font-size:9px;gap:12px}.public-footer span:last-child{display:none}.login-shell{padding:22px}.login-card{padding:28px 24px;margin-top:55px}.login-shell .text-link{font-size:11px}.student-shell{padding:19px 20px}.student-header .brand>span{font-size:15px}.student-header .brand img{width:32px;height:32px}.student-context{font-size:10px;max-width:95px;text-align:right;overflow-wrap:anywhere}.student-main{margin:29px auto 25px}.student-progress{margin:24px auto -9px}.exercise-card{padding:24px 20px;border-radius:19px}.exercise-card h1{font-size:25px}.exercise-meta{margin-bottom:20px}.answer-zone{padding:15px 12px;min-height:111px}.token-row{gap:9px}.word-token,.token-placeholder{font-size:19px;padding:9px 13px;min-height:49px}.word-bank{min-height:120px}.exercise-bottom{gap:10px;flex-wrap:wrap;padding-top:20px}.exercise-bottom .button{font-size:13px;min-width:136px}.exercise-bottom>.muted{font-size:10px}.feedback{gap:10px;padding:14px 12px}.feedback h2{font-size:13px}.feedback p{font-size:16px}.feedback small{font-size:11px}.interaction-hint{font-size:10px}.welcome-card,.completion-card{padding:29px 23px;border-radius:20px}.welcome-card h1,.completion-card h1{font-size:23px}.welcome-card>.muted{font-size:12px;line-height:1.9}.welcome-card .eyebrow{font-size:9px}.student-footer{font-size:10px;gap:8px}.student-footer .button{font-size:10px}.modal-backdrop{padding:12px}.modal{padding:22px 20px;max-height:calc(100dvh - 24px);border-radius:17px}.form-columns{grid-template-columns:1fr;gap:0}.preview-questions summary{font-size:12px}.roster-grid{grid-template-columns:1fr}.start-facts>span{min-width:120px}.completion-card .all-correct-note{font-size:12px}.result-score strong{font-size:64px}}
@media(max-width:370px){.student-shell{padding:17px 12px}.exercise-card{padding:21px 15px}.word-token,.token-placeholder{font-size:18px;padding:8px 11px}.hero h1{font-size:35px}.stats-row>div{padding:14px 10px}.student-detail>summary{flex-wrap:wrap}.score-small{margin-left:auto}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.feedback-enter.correct path{stroke-dashoffset:0}.button:hover:not(:disabled){transform:none}}
.audio-toggle { margin-left: auto; white-space: nowrap; }
.audio-toggle[aria-pressed="true"] { color: #537f35; background: #eef4e6; }
.replay-sentence { margin-top: 7px; color: #41652d; }
.exercise-meta:has(.audio-toggle) { flex-wrap: wrap; gap: 8px; }
.answer-zone.needs-practice { border-color: #dc8984; background: #fff8f7; }
.feedback.encourage { background: #fff4f3; border-color: #edb9b4; }
.feedback.encourage h2 { color: #a83d38; }
.feedback.encourage small { color: #8e635e; }
.feedback.encourage .correct-label { margin-top: 9px; font-size: 11px; font-weight: 600; color: #a34b45; }
.feedback.encourage .retry-note { margin-top: 10px; }
.feedback.encourage .feedback-symbol { position: relative; align-self: flex-start; margin-top: 3px; color: #c8544e; }
.feedback.encourage .feedback-symbol circle { fill: #fde3df; stroke: #ce6059; stroke-width: 2; }
.feedback.encourage .feedback-symbol path { stroke: #bd4740; stroke-width: 3; }
.retry-ring { position: absolute; inset: 0; border: 2px solid #d76760; border-radius: 50%; opacity: 0; pointer-events: none; }
.feedback-enter.encourage .retry-symbol { animation: retry-pop .5s cubic-bezier(.2,.8,.3,1); }
.feedback-enter.encourage .retry-ring { animation: retry-ripple .8s ease-out; }
.feedback.encourage .replay-sentence { color: #a34b45; }
@keyframes retry-pop { 0% {transform: scale(.76)} 50% {transform: scale(1.12)} 78% {transform: scale(.97)} 100% {transform: scale(1)} }
@keyframes retry-ripple { 0% {transform: scale(.85);opacity:.55} 100% {transform: scale(1.65);opacity:0} }

.exercise-card h1 { margin-bottom: 24px; }
.reset-words { width: 52px; height: 52px; min-height: 52px; padding: 8px; border-radius: 14px; color: #547444; }
.reset-words svg { width: 32px; height: 32px; stroke-width: 2.8; transition: transform .2s ease; }
.reset-words:hover:not(:disabled) svg { transform: rotate(35deg); }
@media (max-width:760px) { .exercise-card h1 { margin-bottom: 22px; } }
@media (prefers-reduced-motion:reduce) { .reset-words:hover:not(:disabled) svg { transform: none; } }
