:root{--ink:#213d3b;--green:#21735e;--paper:#fffdf5;--gold:#f8c855;--pink:#f0aa98;--line:#dce5de}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.5 system-ui,sans-serif}header{padding:22px 5%;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);background:#fff}nav{margin-left:auto;display:flex;align-items:center;gap:10px}.brand{font-size:26px;font-weight:900;text-decoration:none;color:var(--ink)}.brand span{color:var(--green)}a{color:var(--green)}main{max-width:1100px;margin:38px auto;padding:0 24px}h1{font-size:clamp(34px,5vw,60px);line-height:1.12;letter-spacing:-2px}h2{line-height:1.25}button,input,select{font:inherit;border:2px solid var(--line);border-radius:16px;padding:13px 20px;background:#fff;color:var(--ink)}button{cursor:pointer;transition:transform .15s,border-color .15s}button:hover{border-color:var(--green);transform:translateY(-2px)}button:disabled{cursor:default;opacity:.6;transform:none}button:focus-visible,a:focus-visible{outline:3px solid #e5a300;outline-offset:3px}.primary{background:var(--green);border-color:var(--green);color:white;font-weight:700}.gold{background:var(--gold);border-color:var(--gold)}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:center;background:#edf5e9;padding:42px;border-radius:32px}.eyebrow{font-size:13px;font-weight:800;letter-spacing:2px;text-transform:uppercase}.muted{color:#5d716c;font-size:15px}.panel{background:#fff;border:1px solid var(--line);border-radius:26px;padding:30px;margin:22px 0}.center{text-align:center}.cards,.options{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{text-align:left;padding:24px;box-shadow:0 5px 0 #e0e9df}.card p{margin:8px 0}.icon{font-size:40px}.art{width:200px;height:200px;object-fit:contain}.tile img{width:100%;height:150px;object-fit:contain}.tile{padding:18px;min-height:120px}.big{font-size:72px;font-weight:900}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.map{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}.map span{padding:8px 14px;border-radius:30px;background:#eee}.map .active{background:var(--gold);font-weight:700}.map .done{background:#d9eadc}.progress{height:9px;border-radius:20px;background:#e4ece4;overflow:hidden;margin:20px 0}.progress i{display:block;height:100%;background:var(--green)}.feedback{min-height:38px;margin:20px 0;font-weight:700}.good{border-color:var(--green)!important;background:#e4f2de}.bad{border-color:#c36951!important;background:#fff1e8}.slots{font-size:44px;letter-spacing:10px;min-height:70px;font-weight:800}.letter{font-size:30px;min-width:65px;margin:5px}.sticker{font-size:100px;line-height:1.2}.hero-art{display:grid;grid-template-columns:1fr 1fr;gap:10px;transform:rotate(-3deg)}.hero-art>div{background:white;border-radius:25px;padding:20px;text-align:center}.hero-art img{height:110px;width:100%;object-fit:contain}#sync{max-width:1100px;margin:10px auto;padding:0 24px;font-size:14px}#clock{font-weight:800;color:var(--green)}table{width:100%;border-collapse:collapse}td,th{text-align:left;border-bottom:1px solid var(--line);padding:14px;font-size:15px}.sheet{max-width:760px;margin:auto;background:white;padding:30px}.sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sheet-item{border:1px solid #bbb;padding:14px;break-inside:avoid}.sheet-item img{width:90px;height:90px;object-fit:contain;float:left;margin-right:16px}.writing{border-bottom:1px solid #bbb;height:38px}.slide{min-height:65vh;text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#fff;border-radius:30px;padding:36px}.slide img{height:220px;max-width:100%;object-fit:contain}.slide h1{font-size:62px}.memory{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.memory button{min-height:145px;font-size:32px}.memory img{width:100%;height:100px;object-fit:contain}label{display:block;margin:12px 0}label input[type=checkbox]{margin-right:10px}dialog{border:none;border-radius:25px;padding:35px;max-width:500px}dialog::backdrop{background:#183c3a99}@media(max-width:700px){.hero{grid-template-columns:1fr;padding:25px}.cards,.options{grid-template-columns:1fr 1fr}.hero-art{display:none}header{gap:10px;padding:16px}.brand{font-size:20px}nav a{display:none}nav button{font-size:14px;padding:9px}.panel{padding:20px}.memory{grid-template-columns:repeat(2,1fr)}.sheet-grid{grid-template-columns:1fr}table{display:block;overflow:auto}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media print{@page{size:A4;margin:14mm}header,#sync,.no-print{display:none!important}body{font-size:12px;background:white}main{margin:0;padding:0;max-width:none}.sheet{padding:0}.sheet-grid{grid-template-columns:1fr 1fr}.sheet-item{min-height:120px}.answer-key{break-before:page}.panel{border:0}.slide{break-after:page;min-height:250mm}}

.story-blending-dialog{width:min(680px,calc(100vw - 32px));box-sizing:border-box;border:3px solid #b9d8cd;border-radius:26px;padding:28px;color:#163f34;background:#fff;max-height:90vh;overflow:auto;text-align:center;box-shadow:0 18px 70px #12352a40}.story-blending-dialog::backdrop{background:#163e3480}.blend-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.blend-top h2{font-size:26px;margin:0}.blend-top button{font-size:14px;padding:10px}.blend-chunks{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:28px 0}.blend-chunk{font-size:clamp(28px,5vw,48px);font-weight:800;background:#eef3f0;border:3px solid transparent;border-radius:15px;padding:10px 16px}.blend-active{background:#ffdf70;border-color:#e8b031}.blend-read{background:#d8f0d8}.blend-silent{color:#80908a;border-bottom:3px dashed #82978f}.blend-word{font-size:clamp(34px,6vw,60px);font-weight:800;letter-spacing:.18em;transition:letter-spacing .35s,color .35s;margin:15px 0}.blend-joined{letter-spacing:0;color:#087d48}.blend-note{font-size:15px;background:#f4f7fc;padding:12px;border-radius:12px}.blend-status{min-height:30px;font-weight:600}.blend-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}.blend-actions button{font-size:16px;padding:13px 18px}@media(max-width:650px){header{flex-wrap:wrap;gap:10px}.story-listening-speed{margin-left:0}.story-blending-dialog{padding:20px}.blend-chunk{padding:8px 11px}}@media print{.story-word-tools,.story-blending-dialog{display:none}}
.bingo{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:650px;margin:20px auto}.bingo img{width:100%;height:120px;object-fit:contain}.story-page{display:block;width:min(100%,800px);height:auto;margin:20px auto}.story-speaking-card{display:flex;flex-direction:column}.story-word-tools{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:12px 0}

.memory{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:900px;margin:20px auto}.memory button{min-height:130px;overflow:hidden;font-size:clamp(16px,3vw,28px);padding:12px}.memory img{max-width:100%;height:110px;object-fit:contain}@media(max-width:600px){.memory{gap:6px}.memory button{min-height:90px;padding:4px}.memory img{height:75px}}

.worksheet-brand{display:flex;justify-content:flex-end;margin-bottom:10px}.worksheet-brand img{width:180px;height:65px;object-fit:contain}.writing-label{clear:both;font-size:15px;margin:14px 0 6px}.writing-label b{font-size:26px}.sheet-item .writing{height:65px;border-top:1px solid #7e9cb9;border-bottom:2px solid #7e9cb9;position:relative;background:none;margin:10px 0 20px}.writing:after{content:"";position:absolute;top:50%;left:0;right:0;border-top:1px dashed #aac0d4}.sheet-item{break-inside:avoid}.sheet-item .letter-writing{height:72px}@media print{.sheet-grid{gap:20px}.worksheet-brand img{width:160px;height:60px}}

.book-cover{height:260px;max-width:100%;object-fit:contain}.books .card{text-align:center}.review-answer{padding:20px;border-bottom:1px solid #dce8df}.review-answer img{height:150px;max-width:100%;object-fit:contain}.wrong-dialog{width:min(800px,90vw);max-height:85vh;overflow:auto;border-radius:22px}.worksheet-brand img{height:110px;width:180px}

.question-prompt{padding:24px 28px;margin:0 auto 24px;max-width:980px;background:#fff5cf;border:3px solid #dfb441;border-radius:22px;font-size:clamp(26px,3vw,36px);font-weight:700;line-height:1.5;color:#203f35}.question-prompt [lang="ko"]{display:inline-block;margin-top:10px;font-size:.85em;font-weight:500}@media(max-width:600px){.question-prompt{padding:18px 14px}}

/* Roomy Grade 1 handwriting: three tasks per A4 page. */
.phonics-roomy-sheet,.phonics-roomy-key{box-sizing:border-box;width:182mm;min-height:269mm;height:269mm;margin:22px auto;padding:6mm;border:2px solid #194c3a;border-radius:5mm;font-size:14px;display:flex;flex-direction:column;background:white}.worksheet-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.worksheet-heading h1{font-size:26px;letter-spacing:0;margin:4px 0}.worksheet-heading .eyebrow{font-size:11px;letter-spacing:1px}.worksheet-heading span{font-size:12px}.worksheet-heading .worksheet-brand{margin:0}.worksheet-heading .worksheet-brand img{width:120px;height:68px;object-fit:contain}.sheet-name{background:#edf5ee;padding:7px 10px;border-radius:8px;margin:8px 0 12px;font-size:14px}.phonics-roomy-sheet .sheet-grid{grid-template-columns:1fr;gap:4mm}.phonics-roomy-sheet .sheet-item{padding:3mm;border:1px solid #9ab7a5;border-radius:3mm;min-height:61mm}.word-task{display:flex;align-items:center;gap:4mm;min-height:21mm}.phonics-roomy-sheet .sheet-item img{float:none;width:23mm;height:21mm;flex:0 0 23mm;margin:0;object-fit:contain}.word-task p{font-size:13px;line-height:1.5;margin:0 0 4px}.word-task .sheet-choices{font-size:15px}.writing-pair{display:grid;grid-template-columns:1fr 1fr;gap:6mm}.phonics-roomy-sheet .writing-label{margin:2mm 0;font-size:13px}.phonics-roomy-sheet .writing-label b{font-size:22px}.phonics-roomy-sheet .sheet-item .writing{height:22mm;margin:0;border-top:1px solid #9eb6a7;border-bottom:2px solid #476c58}.phonics-roomy-sheet .writing:after{border-top:1px dashed #9eb6a7}.roomy-word-bank{background:#fff3ca;padding:2mm 3mm;border-radius:3mm;margin-top:4mm;font-size:13px}.roomy-word-bank p{font-size:13px;line-height:1.5;margin:3px 0}.roomy-read{font-size:12px;line-height:1.5;margin-top:auto;padding-top:3mm}.phonics-roomy-key p{font-size:16px}@media(max-width:730px){.phonics-roomy-sheet,.phonics-roomy-key{width:100%;min-height:0;height:auto}.phonics-roomy-sheet .writing-pair{gap:4mm}}@media print{@page{size:A4 portrait;margin:14mm}.phonics-roomy-sheet,.phonics-roomy-key{width:182mm!important;height:269mm!important;min-height:269mm!important;margin:0!important;padding:6mm!important;break-inside:avoid;break-after:page;page-break-after:always}.phonics-roomy-sheet:last-of-type,.phonics-roomy-key:last-of-type{break-after:auto;page-break-after:auto}.phonics-roomy-sheet .sheet-grid{grid-template-columns:1fr!important;gap:4mm!important}.phonics-roomy-sheet .sheet-item{min-height:61mm!important}.worksheet-heading .worksheet-brand img{width:120px;height:68px}.writing-pair{grid-template-columns:1fr 1fr!important}.sheet *{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

.wrong-slideshow{width:min(1000px,94vw);max-width:1000px;max-height:94vh;padding:24px}.wrong-slide{min-height:440px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px}.wrong-slide>img{width:240px;height:220px;object-fit:contain}.wrong-slide h2{font-size:28px;margin:10px}.wrong-slide h1{font-size:52px;margin:8px}.review-choices{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.review-choices span{padding:12px 22px;border:2px solid #194c3a;border-radius:14px;font-size:25px}.review-correct{background:#edf6e8;border-radius:20px;padding:12px 30px}.wrong-slideshow:fullscreen{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0;display:flex;flex-direction:column}.wrong-slideshow:fullscreen .wrong-slide{flex:1}@media(max-width:600px){.wrong-slide{min-height:320px}.wrong-slide>img{width:180px;height:160px}.wrong-slide h2{font-size:22px}.review-choices span{font-size:20px;padding:8px 14px}.wrong-slideshow{padding:16px}}

/* worksheet-polish-19 */
.phonics-roomy-sheet{font-size:17px}.phonics-roomy-sheet .word-task p,.phonics-roomy-sheet .writing-label,.phonics-roomy-sheet .roomy-word-bank,.phonics-roomy-sheet .roomy-word-bank p{font-size:16px}.phonics-roomy-sheet .sheet-choices{font-size:19px}.phonics-roomy-sheet .roomy-read{font-size:14px}.phonics-roomy-sheet .sheet-name{font-size:16px}
