:root{color-scheme:light;--ink:#213e37;--muted:#6b7c74;--green:#327452;--deep:#20573d;--paper:#fafaf3;--line:#e4e9df;font-family:ui-rounded,'Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;color:var(--ink);background:#edf1e8;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;color:inherit;transition:transform .15s,background .15s,box-shadow .15s}button:disabled{cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #e8a21f;outline-offset:4px}button:not(:disabled):active{transform:translateY(2px)}svg{width:22px;height:22px;flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(27px,4vw,38px);line-height:1.25;letter-spacing:-.045em}h2{font-size:25px;letter-spacing:-.035em}h3{font-size:21px;letter-spacing:-.025em}p{line-height:1.7}b,strong{font-weight:800}.shell{max-width:1240px;margin:0 auto;background:var(--paper);min-height:100svh}.topbar{padding:23px 40px 19px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{border:0;background:none;padding:0;display:flex;align-items:center;gap:11px;font-size:21px;font-weight:600;text-align:left}.brand b{display:inline}.brand-symbol{display:grid;place-items:center;border-radius:16px;background:var(--green);color:#f6d46d;font-size:37px;width:51px;height:51px}.header-actions{display:flex;gap:13px;align-items:center}.flower-total{font-size:19px;font-weight:800;color:var(--green);white-space:nowrap}.icon-button{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);background:white;border-radius:50%;flex-shrink:0}.subjects{display:flex;gap:10px;padding:0 40px 19px;border-bottom:1px solid var(--line);overflow-x:auto}.subject{border:1px solid transparent;border-radius:13px;white-space:nowrap;display:flex;align-items:center;gap:9px;background:transparent;padding:11px 21px;font-weight:750}.subject>span{font-size:16px;color:#87918a}.subject.active{background:#e4efdf;border-color:#d2e3cb;color:var(--deep)}.subject.active>span{color:var(--green)}.subject:disabled{color:#717e76}.subject small{font-size:12px;font-weight:500}main{padding:28px 40px 10px;outline:none}.overview{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:23px}.welcome{position:relative;min-height:290px;border-radius:28px;overflow:hidden;isolation:isolate;background:#d6eecd}.welcome>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% 50%;z-index:-2}.welcome:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#eff7e9f5 0%,#eff7e9db 34%,#eff7e91a 75%);z-index:-1}.welcome-copy{padding:29px;max-width:68%}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--green);font-size:13px;font-weight:850}.welcome h1{margin:11px 0}.welcome p{margin-bottom:18px;font-size:16px}.button{border:0;border-radius:15px;min-height:51px;padding:13px 22px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:800;line-height:1.45}.button.primary{background:var(--green);color:white;box-shadow:0 3px 0 var(--deep)}.button.primary:hover{background:var(--deep)}.button.secondary{background:white;border:1px solid #dbe4d8}.button.soft{background:#eaf1e6;color:var(--deep)}.button.warm{background:#ffe7a4;color:#665220}.button:disabled{background:#e8ece6;color:#819180;box-shadow:none;border-color:transparent}.full{width:100%}.journal{border:1px solid var(--line);border-radius:26px;background:white;padding:24px;display:flex;flex-direction:column}.journal h2{font-size:20px;margin:8px 0 13px}.bloom-count{font-size:35px;font-weight:900;line-height:1.2;color:var(--green);margin-bottom:14px}.bloom-count small{font-size:16px;color:var(--muted);font-weight:600}.progress-track{height:9px;border-radius:10px;background:#eef1e9;overflow:hidden}.progress-track>span{display:block;height:100%;background:var(--green);border-radius:10px;transition:width .4s}.journal .small{margin:10px 0 8px}.flower-shelf{display:flex;flex-wrap:wrap;gap:8px;min-height:35px;font-size:25px;margin-top:auto}.empty-flower{opacity:.2;filter:grayscale(1)}.section-title{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:30px 0 17px}.section-title h2{margin:0 0 4px}.section-title p{font-size:14px;margin:0;color:var(--muted)}.chapter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.chapter-card{text-align:left;width:100%;border:1px solid #dce4d6;background:white;border-radius:23px;overflow:hidden;padding:0;box-shadow:0 3px 0 #e6ebdf}.chapter-card:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 7px 20px #34482c12}.chapter-art{height:118px;position:relative;background:#e4eadb;overflow:hidden}.chapter-art img{width:100%;height:100%;object-fit:cover;object-position:center 53%}.chapter-index{position:absolute;top:12px;left:13px;border-radius:11px;background:#fffef2f0;padding:5px 9px;font-weight:900;font-size:14px}.chapter-status{position:absolute;bottom:10px;right:11px;border-radius:9px;background:#ffffffed;padding:5px 9px;font-weight:750;font-size:12px}.chapter-content{padding:17px 20px 19px}.chapter-content .small{margin-bottom:5px}.chapter-content h3{margin:0 0 13px}.chapter-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;color:var(--muted)}.chapter-card.locked .chapter-art{filter:saturate(.65)}.chapter-card.locked .chapter-content{background:#f5f6f1}.chapter-card.current{border:2px solid var(--green)}.page-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:23px 40px;color:#667a6c;font-size:13px}.page-footer small{font-size:12px}.small{font-size:14px;line-height:1.6}.muted{color:var(--muted)}.text-button{background:none;border:0;padding:9px 0;color:var(--green);font-weight:800;font-size:15px}.lesson-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.back-button{display:inline-flex;align-items:center;gap:7px;border:0;background:none;font-weight:750;padding:8px 0}.lesson-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px}.lesson-heading h1{margin:5px 0 0;font-size:30px}.mission-dots{display:flex;gap:7px;margin-bottom:5px}.mission-dots span{width:10px;height:10px;background:#dfe6dc;border-radius:50%}.mission-dots .done{background:var(--green)}.mission-dots .current{outline:2px solid var(--green);outline-offset:2px;background:#d9e8d0}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:22px}.step{font-size:15px;color:#6b7b70;padding:12px 14px;border-radius:13px;background:#edf0e8;display:flex;align-items:center;gap:9px}.step b{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#dfe5d8;font-size:13px}.step.active{background:#e1efdc;color:var(--deep);font-weight:800}.step.active b{background:var(--green);color:white}.step.finished b{color:var(--green);background:#d6e8cb}.lesson-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:24px;align-items:start}.guide-card{border-radius:24px;overflow:hidden;background:#edf3e6;border:1px solid #dfe8d6}.guide-card>img{width:100%;aspect-ratio:1.22;object-fit:cover;display:block}.guide-copy{padding:21px}.guide-copy h3{font-size:20px;margin-bottom:7px}.guide-copy p{font-size:15px;margin-bottom:0}.mini-progress{margin-top:21px;padding-top:16px;border-top:1px solid #d6e1cc}.mini-progress>p{margin:7px 0;color:var(--muted);font-size:13px}.learning-card{background:white;border:1px solid var(--line);border-radius:26px;padding:28px;min-height:445px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.card-heading h2{margin:0;font-size:24px}.phase-label{color:var(--green);font-size:14px;font-weight:800}.reading-text{padding:26px 10px 24px;font-size:clamp(28px,3.7vw,38px);line-height:1.85;font-weight:800;word-break:keep-all;letter-spacing:-.025em;text-align:center}.word-chunk{border-radius:7px;padding:2px 3px;transition:background .1s}.word-chunk.lit{background:#ffdf76;color:#294630}.reading-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.listen-button{background:#edf3fa;border:1px solid #d6e4f0;color:#3b6f99}.listen-button.playing{background:#dcecf7}.speech-status{min-height:24px;font-size:13px;text-align:center;color:var(--muted);margin:10px 0 0}.read-hint{margin-top:14px;text-align:center;color:var(--muted);font-size:14px}.question-area{margin-top:23px;padding-top:23px;border-top:1px solid var(--line)}.question-area h3{font-size:20px;line-height:1.6;margin:8px 0 15px}.choices{display:grid;gap:9px}.choice{text-align:left;padding:14px 17px;min-height:52px;border-radius:13px;border:1px solid #dfe6da;background:#fff;font-size:17px}.choice .choice-num{font-size:14px;display:inline-grid;place-items:center;width:25px;height:25px;background:#f0f2eb;border-radius:8px;margin-right:11px}.choice.selected{border:2px solid var(--green);background:#eef7e7}.feedback{min-height:24px;margin:13px 0;color:var(--green);font-size:15px;line-height:1.6}.feedback.practice{color:#846220}.action-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:11px;margin-top:22px}.action-row>.button{flex:1}.write-intro{display:flex;gap:16px;align-items:center;margin:18px 0}.target-word{font-size:35px;font-weight:850;background:#f5f7eb;border-radius:16px;padding:12px 20px}.write-intro p{margin:0;font-size:15px;color:var(--muted)}.pad-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:9px}.tool-group{display:flex;gap:5px;align-items:center}.tool-button{border:1px solid #e0e6dd;background:#fff;border-radius:10px;min-height:40px;padding:8px 11px;font-size:14px}.tool-button.selected{background:#e4efdf;border-color:#9aba8d;color:var(--deep)}.pad-frame{border:2px solid #d6e3cf;background:#fffefa;border-radius:18px;overflow:hidden}.pad{display:block;width:100%;height:240px;touch-action:none;user-select:none;-webkit-user-select:none}.checkline{display:flex;gap:10px;align-items:center;font-size:16px;padding:14px;background:#f5f7ed;border-radius:12px;line-height:1.5}.checkline input{width:21px;height:21px;accent-color:var(--green);flex-shrink:0}.pad-meta{display:flex;justify-content:space-between;gap:10px;margin:8px 0 18px;color:var(--muted);font-size:13px}.pad-meta label{display:flex;gap:5px;align-items:center}.pad-meta input{accent-color:var(--green)}.dictation-prompt{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 0}.ear-badge{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:#edf3fa;color:#3b6f99}.ear-badge svg{width:32px;height:32px}.dictation-prompt h3{margin:0;font-size:21px}.dictation-prompt p{margin:0;font-size:14px;color:var(--muted)}.compare-box{background:#fff8de;border:1px solid #f1dea0;border-radius:16px;text-align:center;padding:16px;margin-top:17px}.compare-box .answer-word{font-size:38px;font-weight:850;margin:3px 0}.compare-box p{font-size:14px;margin:0}.reward{text-align:center;padding:32px 20px}.reward .reward-flower{display:inline-block;font-size:80px;margin-bottom:17px;animation:flower-pop .6s ease both}.reward h2{font-size:30px;margin-bottom:9px}.reward .result-line{font-size:17px;color:var(--muted);margin-bottom:23px}.reward .summary-word{background:#eff4e8;border-radius:15px;padding:15px;margin:20px auto;max-width:430px;font-size:20px;font-weight:750}.reward .action-row{max-width:500px;margin:25px auto 0}.reward img{width:160px;height:110px;object-fit:cover;border-radius:22px;margin:5px 0 15px}dialog{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:25px;max-width:560px;width:calc(100% - 30px);padding:28px;max-height:90svh;overflow:auto;box-shadow:0 25px 80px #18372a40}dialog::backdrop{background:#16332780;backdrop-filter:blur(4px)}.dialog-head{display:flex;gap:15px;justify-content:space-between;align-items:start}.dialog-head h2{margin:7px 0 12px}.field-label{font-size:15px;font-weight:800;display:block;margin:16px 0 8px}select{border:1px solid #cbd8c5;border-radius:12px;padding:12px;background:white;width:100%;font-size:16px}fieldset{border:0;margin:20px 0;padding:0}legend{font-size:15px;font-weight:800;margin-bottom:10px}.speed-options{display:flex;gap:8px;flex-wrap:wrap}.speed-options label{display:flex;gap:6px;border:1px solid #dce5d6;border-radius:12px;background:white;padding:12px 9px;font-size:14px}.speed-options input{accent-color:var(--green)}.parent-note{border-top:1px solid var(--line);margin:20px 0;padding-top:20px;font-size:14px;color:#5a6f62}.parent-note p{margin:8px 0 13px}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);padding:13px 20px;background:var(--deep);color:white;box-shadow:0 5px 25px #18372a33;border-radius:15px;max-width:calc(100% - 30px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;font-size:15px;z-index:10}.toast.visible{opacity:1;transform:translate(-50%,0)}@keyframes flower-pop{from{transform:scale(.3) rotate(-18deg);opacity:0}to{transform:scale(1);opacity:1}}
@media(min-width:1280px){.shell{margin:20px auto;border-radius:32px;box-shadow:0 10px 50px #4a624111}}
@media(max-width:1000px){.overview{grid-template-columns:minmax(0,1fr) 230px}.welcome-copy{max-width:80%}.journal{padding:21px}.lesson-layout{grid-template-columns:225px minmax(0,1fr)}.learning-card{padding:23px}.guide-copy{padding:17px}.chapter-content{padding:15px}.chapter-content h3{font-size:19px}.pad{height:225px}}
@media(max-width:760px){.topbar{padding:20px 21px 17px}.subjects{padding:0 21px 16px;gap:5px}.subject{padding:10px 14px;gap:7px}main{padding:22px 20px 8px}.overview{grid-template-columns:minmax(0,1fr)}.welcome{min-height:260px}.welcome-copy{padding:25px;max-width:70%}.journal{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px;padding:19px 21px}.journal .eyebrow,.journal h2{grid-column:1}.journal h2{margin:4px 0 6px}.bloom-count{grid-column:2;grid-row:1/3;text-align:right;margin:0;align-self:center}.journal .progress-track,.journal .small{grid-column:1/3}.flower-shelf{display:none}.chapter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.section-title{margin-top:24px}.section-title h2{font-size:23px}.lesson-layout{grid-template-columns:minmax(0,1fr)}.guide-card{display:grid;grid-template-columns:115px 1fr;align-items:center;border-radius:20px}.guide-card>img{height:100%;min-height:122px;aspect-ratio:auto}.guide-copy{padding:14px 17px}.guide-copy h3{font-size:18px}.guide-copy p{font-size:14px}.mini-progress{display:none}.lesson-layout{gap:16px}.learning-card{min-height:0;padding:22px}.lesson-heading h1{font-size:27px}.steps{margin-bottom:17px}.step{padding:10px;gap:7px;font-size:14px}.reading-text{font-size:32px;padding:22px 0;line-height:1.8}.page-footer{padding:21px 20px;font-size:12px}.pad{height:230px}}
@media(max-width:420px){.brand{font-size:17px;gap:8px}.brand-symbol{width:42px;height:42px;font-size:31px}.header-actions{gap:8px}.flower-total{font-size:16px}.icon-button{width:42px;height:42px}.subject{padding:9px 12px}.subject small{font-size:12px}.welcome-copy{max-width:85%}.welcome h1{font-size:29px}.chapter-art{height:97px}.chapter-content{padding:15px 12px}.chapter-content h3{font-size:18px}.chapter-content .small{font-size:12px}.chapter-meta{font-size:12px}.learning-card{padding:19px 15px}.card-heading h2{font-size:22px}.pad{height:200px}.step b{width:20px;height:20px;flex-shrink:0}.step{font-size:13px}.target-word{padding:12px 14px;font-size:30px}.action-row{flex-direction:column;align-items:stretch}.action-row>.button{width:100%}.guide-card{grid-template-columns:100px 1fr}}
.chapter-content .small,.chapter-meta{font-size:14px}
@media(max-width:420px){.step{font-size:14px;display:flex;flex-direction:column;text-align:center;justify-content:center}.step b{width:24px;height:24px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#fff1b8,transparent 34%),linear-gradient(145deg,#eaf5eb,#d9ece1)}.login-screen[hidden],.shell[hidden]{display:none!important}.login-card{width:min(440px,100%);background:#fff;border:1px solid #d6e6d9;border-radius:32px;padding:34px;box-shadow:0 24px 70px #214f4325}.login-card h1{font-size:42px;line-height:1.12;margin:8px 0 24px}.login-flower{font-size:46px;color:#f0b827}.login-card form,.login-card label{display:grid;gap:8px}.login-card form{gap:16px}.login-card input{font:inherit;font-size:18px;padding:14px 16px;border:1px solid #bdcfc2;border-radius:13px}.login-card fieldset{border:0;padding:0;margin:0}.login-card legend{font-weight:700;margin-bottom:8px}.time-picks{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.time-picks input{position:absolute;opacity:0}.time-picks span{display:grid;place-items:center;padding:12px 4px;border:1px solid #c8d9cc;border-radius:12px;font-weight:700}.time-picks input:checked+span{background:#327452;color:white;border-color:#327452}.login-error{min-height:20px;margin:0;color:#bd3027}.admin-link{display:block;margin:18px auto 0;border:0;background:none;color:#60756d;text-decoration:underline}.study-timer{font-weight:800;color:#27604e;white-space:nowrap}.logout-button{font-size:20px}@media(max-width:600px){.login-card{padding:26px 20px}.login-card h1{font-size:34px}.study-timer{font-size:12px}}
.subjects a.subject{text-decoration:none}#custom-time[hidden]{display:none!important}
