@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--green:#174e3b;--lime:#d8ef9f;--ink:#253a32;--muted:#737d74;--line:#e7e9e2;--bg:#f7f8f3;--white:#fff;--radius:20px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px}button,input,select,textarea{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #89a646;outline-offset:4px}button{border:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,sans-serif}h1{font-size:32px;letter-spacing:-1.2px;font-weight:800}h2{font-size:21px;letter-spacing:-.5px}h3{font-size:17px}p{line-height:1.65}.muted{color:var(--muted)}.small{font-size:13px}.eyebrow{font-size:12px;letter-spacing:1.7px;font-weight:700;text-transform:uppercase}.shell{display:grid;grid-template-columns:226px 1fr;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:226px;background:#fff;border-right:1px solid var(--line);padding:32px 21px;display:flex;flex-direction:column;z-index:4}.brand{font-size:33px;font-weight:800;letter-spacing:-1.5px;display:flex;align-items:center;gap:10px;margin:0 14px 45px}.brandmark{display:flex;gap:3px;align-items:center;height:32px}.brandmark i{display:block;width:5px;background:var(--green);border-radius:6px;height:19px}.brandmark i:nth-child(2){height:30px}.brandmark i:nth-child(3){height:24px}.nav-label{font-size:10px;letter-spacing:1.8px;color:#8b938a;padding:0 16px;margin-bottom:12px}.nav{display:flex;flex-direction:column;gap:6px}.nav button{display:flex;align-items:center;gap:13px;padding:13px 15px;background:none;color:#69736b;border-radius:10px;text-align:left;font-size:14px;font-weight:500}.nav button.active{background:#eef3e5;color:var(--green);font-weight:700}.icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.icon svg{height:20px;width:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sidebar-bottom{margin-top:auto;padding-top:35px}.demo-note{background:#f7f8f2;border:1px solid var(--line);border-radius:12px;padding:14px;font-size:12px;line-height:1.6}.demo-note strong{display:block;margin-bottom:4px}.reset{background:none;color:#778076;font-size:12px;margin-top:16px;padding:7px}.main-shell{grid-column:2}.topbar{height:83px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;background:#ffffff99}.breadcrumb{font-size:13px;color:#788075}.top-right{display:flex;align-items:center;gap:24px;font-size:13px}.top-stat{display:flex;align-items:center;gap:7px;font-weight:700}.avatar{height:35px;width:35px;background:#e9e5db;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;border:3px solid white;box-shadow:0 0 0 1px #e4e5de}.content{max-width:1320px;padding:35px 42px 28px;margin:auto}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.heading p{color:var(--muted);font-size:14px;margin-top:9px}.date{font-size:12px;color:var(--muted);border:1px solid var(--line);background:#fff;padding:9px 12px;border-radius:8px}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 295px;gap:25px}.stack{display:flex;flex-direction:column;gap:24px}.hero{background:#eaf0df;border:1px solid #e2e9d7;border-radius:var(--radius);min-height:271px;padding:30px;position:relative;overflow:hidden;display:flex;align-items:center}.hero-copy{position:relative;z-index:1;max-width:65%}.hero h2{font-size:30px;line-height:1.28;letter-spacing:-1px;margin:11px 0}.hero p{font-size:13px;color:#697564;max-width:280px}.hero .eyebrow{color:#698154;font-size:10px}.primary{background:var(--green);color:white;padding:13px 20px;border-radius:9px;font-size:13px;font-weight:700;display:inline-flex;gap:9px;align-items:center;justify-content:center;min-height:43px}.primary:hover{background:#23634c;transform:translateY(-1px)}.hero .primary{margin-top:21px}.hero-art{position:absolute;right:-17px;bottom:-4px;width:45%;height:100%;object-fit:contain;mix-blend-mode:multiply;animation:float 5s ease-in-out infinite}.hero-decor{position:absolute;right:45px;top:44px;width:146px;height:146px;border:1px solid #d3dfbf;border-radius:50%;box-shadow:0 0 0 30px #e1e9d266,0 0 0 60px #e1e9d244}.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stat{background:white;border:1px solid var(--line);border-radius:14px;padding:19px 17px;display:flex;align-items:center;gap:13px}.stat-icon{height:40px;width:40px;display:grid;place-items:center;border-radius:12px;background:#fff2df;color:#bd7b33}.stat:nth-child(2) .stat-icon{background:#ecf1e1;color:#708d3d}.stat:nth-child(3) .stat-icon{background:#efecfa;color:#8d78be}.stat strong{font-size:22px;letter-spacing:-.5px}.stat p{font-size:11px;color:#7c837a;margin-top:2px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.text-button{background:none;color:#5d7057;font-size:12px;font-weight:600;padding:6px}.course-card{background:white;border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;gap:20px}.course-symbol{width:66px;height:75px;background:#e9eddd;border-radius:12px;display:grid;place-items:center;color:#567747;flex-shrink:0}.course-symbol svg{width:32px;height:32px}.course-info{flex:1}.tag{display:inline-flex;align-items:center;font-size:10px;font-weight:700;letter-spacing:.7px;padding:5px 7px;border-radius:5px;background:#eef2e4;color:#657c4e}.course-info h3{margin:8px 0 5px}.course-info p{font-size:12px;color:var(--muted)}.progress{height:6px;background:#eef0e9;border-radius:10px;overflow:hidden;margin-top:16px}.progress>span{display:block;background:#789651;border-radius:10px;height:100%;transition:width .4s}.progress-label{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:7px}.course-open{align-self:center;background:#f4f6f0;border:1px solid var(--line);height:35px;width:35px;border-radius:50%;font-size:19px;color:var(--green)}.practice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.practice-card{border-radius:16px;padding:21px;text-align:left;border:1px solid #e7e7de;background:#f1eee4;color:var(--ink);position:relative;min-height:164px}.practice-card:nth-child(2){background:#ecedf5;border-color:#e2e3ed}.practice-card h3{margin:16px 0 7px;font-size:15px}.practice-card p{font-size:12px;color:#777c71}.practice-card .corner{position:absolute;right:20px;top:20px;font-size:10px;padding:4px 7px;border:1px solid #d6d8ce;border-radius:5px}.card{background:white;border:1px solid var(--line);border-radius:18px;padding:23px}.card h3{font-size:15px}.goal-heading{display:flex;align-items:center;justify-content:space-between}.goal-ring{width:130px;height:130px;border-radius:50%;background:conic-gradient(#78994a var(--angle),#eef1e7 0);margin:23px auto 17px;padding:11px;display:grid;place-items:center;position:relative}.goal-ring:before{content:'';position:absolute;inset:10px;background:white;border-radius:50%}.goal-ring div{z-index:1;text-align:center}.goal-ring strong{font-size:29px;letter-spacing:-1px}.goal-ring p{font-size:10px;color:var(--muted)}.center{text-align:center}.goal-message{font-size:12px;color:var(--muted)}.days{display:flex;justify-content:space-between;margin-top:19px}.day{text-align:center;font-size:10px;color:#92978e}.day b{display:grid;place-items:center;border-radius:50%;background:#f2f4ed;height:26px;width:26px;margin-bottom:7px;font-size:12px;font-weight:500}.day.done b{background:#e8efda;color:#698541}.day.today b{background:var(--green);color:white}.weekly{border-top:1px solid var(--line);margin-top:20px;padding-top:17px;font-size:11px;color:var(--muted);display:flex;justify-content:space-between}.tip{background:#f2f0e8;border-color:#e8e5d9}.tip-title{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:700;margin-bottom:15px}.tip blockquote{margin:0;font-size:16px;line-height:1.65;letter-spacing:-.2px}.tip p{font-size:11px;margin-top:13px;color:#828373}.challenge-head{display:flex;gap:10px;align-items:center;margin-bottom:12px}.challenge-head .icon{background:#eef0e5;width:34px;height:34px;border-radius:10px}.challenge p{font-size:12px;color:var(--muted)}.people{display:flex;margin-top:17px;align-items:center}.people span{border:2px solid white;background:#e9e1d4;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;font-size:9px;margin-right:-6px}.people span:nth-child(2){background:#d8e5d8}.people small{margin-left:15px;color:var(--muted);font-size:10px}.footer{display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;color:#92988c;margin-top:30px}.badge-demo{border:1px solid #dcded3;border-radius:5px;padding:3px 6px;font-size:10px;letter-spacing:.6px}.page-panel{max-width:850px;margin:auto}.page-panel>p{color:var(--muted);margin:10px 0 25px}.lesson-list{display:flex;flex-direction:column;gap:14px}.lesson-item{display:flex;align-items:center;gap:20px;padding:20px;background:white;border:1px solid var(--line);border-radius:15px;text-align:left;width:100%;color:var(--ink)}.lesson-number{height:43px;width:43px;border-radius:50%;background:#eaf0dd;display:grid;place-items:center;font-weight:700;flex-shrink:0}.lesson-item.current{border:2px solid #829b5a}.lesson-item small{color:var(--muted);display:block;margin-top:5px}.lesson-item .status{margin-left:auto;font-size:12px}.lesson-panel{background:white;border:1px solid var(--line);padding:35px;border-radius:22px}.lesson-panel h2{font-size:28px;margin:15px 0}.lesson-panel p{margin:12px 0;color:#68766c}.lesson-panel blockquote{background:#eff3e8;border-left:3px solid #88a465;margin:22px 0;padding:22px;border-radius:0 12px 12px 0;font-size:19px;line-height:1.65}.lesson-panel .primary{margin-top:20px}.steps{display:flex;gap:7px;margin:20px 0 30px}.steps span{flex:1;height:5px;border-radius:10px;background:#e3e8db}.steps span.on{background:#77934e}.secondary{background:#f0f3e9;color:var(--green);padding:12px 17px;border:1px solid #dfe5d4;border-radius:9px;font-size:13px;font-weight:600}.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:20px}.demo-banner{background:#f3f0e5;border:1px solid #e8e0c9;border-radius:9px;font-size:12px;padding:12px;color:#776742;margin-bottom:20px}.feedback-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.feedback-grid>div{background:#f3f6ed;padding:20px;border-radius:12px}.feedback-grid strong{display:block;font-size:22px;margin-bottom:7px}.feedback-grid small{font-size:12px;color:var(--muted)}.wave{display:flex;gap:6px;justify-content:center;align-items:center;height:80px;margin:20px 0}.wave i{width:7px;height:30px;background:#829f5e;border-radius:7px;animation:wave 1s ease-in-out infinite alternate}.wave i:nth-child(3n){height:55px;animation-delay:.3s}.wave i:nth-child(2n){height:20px;animation-delay:.6s}.celebration-image{height:180px;width:180px;object-fit:contain;mix-blend-mode:multiply;animation:float 2s infinite}.form-field{display:block;font-size:13px;font-weight:600;margin:18px 0 8px}input,textarea,select{width:100%;border:1px solid #dce2d4;border-radius:9px;background:#fff;padding:12px;color:var(--ink)}textarea{min-height:180px;resize:vertical;line-height:1.65}.tabs{display:flex;gap:8px;margin:20px 0;flex-wrap:wrap}.tabs button{padding:10px 16px;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink)}.tabs button.selected{background:var(--green);color:white}.timer{font-size:52px;font-family:Manrope,sans-serif;font-weight:700;margin:20px 0}.suggestion{padding:17px 0;border-bottom:1px solid var(--line)}.suggestion p{font-size:14px;margin:7px 0}.history-row{display:flex;justify-content:space-between;gap:15px;padding:17px 0;border-bottom:1px solid var(--line);font-size:14px}.trend{display:flex;gap:10px;align-items:flex-end;height:110px;margin:20px 0}.trend i{flex:1;background:#dce8c5;border-radius:7px 7px 0 0}.trend i:last-child{background:#799555}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--green);color:white;z-index:20;padding:15px 22px;border-radius:12px;box-shadow:0 4px 30px #0002;font-size:14px}.mobile-brand{display:none}@keyframes float{50%{transform:translateY(-8px) rotate(2deg)}}@keyframes wave{to{transform:scaleY(.4)}}@media(min-width:1450px){.content{padding-top:45px}.hero{min-height:295px}.dashboard{grid-template-columns:minmax(0,1fr) 320px}}@media(max-width:1150px){.sidebar{width:195px;padding:28px 13px}.shell{grid-template-columns:195px 1fr}.content{padding:28px}.topbar{padding:0 28px}.dashboard{grid-template-columns:minmax(0,1fr) 260px;gap:18px}.stat{padding:15px 10px;gap:8px}.stat-icon{width:31px;height:35px}.stat strong{font-size:19px}.hero{padding:24px}.hero h2{font-size:26px}.card{padding:19px}}@media(max-width:950px){.dashboard{grid-template-columns:1fr}.right-stack{display:grid;grid-template-columns:1fr 1fr}.right-stack .challenge{grid-column:1/-1}.hero-art{width:38%}.hero{min-height:260px}.date{display:none}}@media(max-width:650px){.shell{display:block}.sidebar{position:sticky;top:0;width:100%;height:auto;padding:10px 12px;border-bottom:1px solid var(--line);border-right:0}.brand,.nav-label,.sidebar-bottom{display:none}.nav{flex-direction:row;overflow:auto;gap:3px}.nav button{flex-direction:column;gap:4px;font-size:10px;padding:8px 9px;flex-shrink:0}.nav button .icon{height:17px}.topbar{height:62px;padding:0 20px}.breadcrumb{display:none}.mobile-brand{display:block;font-weight:800;font-size:23px;letter-spacing:-1px}.top-right{gap:15px}.content{padding:25px 18px}.heading{margin-bottom:22px}h1{font-size:27px}.heading p{font-size:12px}.hero{padding:23px;min-height:265px}.hero h2{font-size:25px}.hero-copy{max-width:73%}.hero p{max-width:200px;font-size:12px}.hero-art{right:-27px;width:47%;bottom:-26px;height:90%}.hero-decor{right:0;width:110px;height:110px}.mini-stats{gap:8px}.stat{padding:13px 9px;display:block}.stat-icon{height:28px;width:28px;margin-bottom:7px}.stat strong{font-size:19px}.stat p{font-size:10px}.course-card{padding:17px;gap:12px}.course-symbol{width:46px;height:58px}.course-open{width:28px;flex-shrink:0}.course-info h3{font-size:15px}.practice-card{padding:17px}.right-stack{display:flex}.lesson-panel{padding:23px}.feedback-grid{gap:7px}.feedback-grid>div{padding:13px 8px}.feedback-grid strong{font-size:19px}.lesson-item{padding:15px;gap:12px}.lesson-item .status{font-size:10px}.footer{font-size:10px;flex-wrap:wrap}.top-stat{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.hero-art{mask-image:linear-gradient(to right,transparent,#000 22%,#000 90%,transparent)}
:root{--muted:#667165}.hero p,.course-info p,.practice-card p,.goal-message,.challenge p{font-size:14px}.stat p,.progress-label,.weekly,.tip p,.people small{font-size:12px}.nav button{font-size:14px}.celebration-image{border-radius:50%}.day{color:#667165}.footer{color:#667165}
@media(max-width:650px){.hero p{font-size:12px}.nav button{font-size:10px}.stat p{font-size:11px}.course-info p,.practice-card p{font-size:12px}}
.mascot-stage{cursor:pointer;touch-action:pan-y}.mascot-stage canvas{display:block;width:100%;height:100%}.hero-mascot{position:absolute;right:0;bottom:0;width:44%;height:100%;z-index:2}.celebration-mascot{width:220px;height:240px;margin:-15px auto 0}.mascot-stage img{width:100%;height:100%;object-fit:contain}.mascot-stage:focus-visible{outline:3px solid #668145;outline-offset:-6px;border-radius:20px}@media(max-width:650px){.hero-mascot{width:45%;height:65%;right:-14px;bottom:20px;pointer-events:auto}.hero-copy{z-index:3;pointer-events:none}.hero-copy button{pointer-events:auto}}
.speech-library{display:grid;grid-template-columns:1fr 1fr;gap:16px}.speech-library .card{display:flex;flex-direction:column;align-items:flex-start}.speech-library .primary{margin-top:auto}.reading-script{border-left:3px solid #88a465;background:#f2f5eb;border-radius:0 14px 14px 0;padding:16px 24px;margin:24px 0}.reading-script p{font-size:20px;line-height:1.9;color:var(--ink)}@media(max-width:650px){.speech-library{grid-template-columns:1fr}.reading-script{padding:12px 18px}.reading-script p{font-size:18px}}
.primary:hover{transform:none}
