:root{
  color-scheme:light;
  --paper:#fffae8;--cream:#fff1ad;--ink:#4f344d;--muted:#775d62;
  --coral:#f76e80;--coral-dark:#c83d64;--sun:#ffcf4c;--leaf:#33ab7d;
  --sky:#c9e9dc;--lilac:#d9c8e9;--line:#ead9bd;--white:#fffdf6;
  --display:"Baloo 2","Noto Sans Devanagari",sans-serif;--body:"Nunito","Noto Sans Devanagari",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font-family:var(--body);font-weight:700}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 7% 12%,#ffde6966,transparent 35%),radial-gradient(ellipse at 98% 45%,#9cf3d877,transparent 31%),linear-gradient(180deg,#fff6ca 0,#fffef3 47%,#fff0d7 100%)}
button,a,input{font:inherit}button{color:inherit}
a{color:inherit}
.skip-link{position:absolute;left:14px;top:-60px;z-index:10;padding:12px 18px;background:var(--ink);color:white;border-radius:12px}.skip-link:focus{top:12px}
.topbar{max-width:1180px;margin:auto;padding:20px 28px 8px;display:flex;justify-content:space-between;align-items:center;gap:16px}
.back-link{text-decoration:none;font-size:.94rem;color:#82685d;font-weight:900;display:flex;align-items:center;gap:8px;padding:10px 13px;border-radius:999px;transition:background .2s,transform .2s}
.back-link:hover{background:#f7e6bf;transform:translateX(-2px)}.back-link span{font-size:1.3rem;color:var(--coral-dark)}
.top-note{font-size:.86rem;color:#927960;letter-spacing:.035em;display:flex;align-items:center;gap:9px}.sun-dot{width:11px;height:11px;background:var(--sun);border-radius:50%;box-shadow:0 0 0 4px #f1c65d38}
.age-tag{background:#f4e4b7;color:#7b6349;border-radius:999px;padding:8px 13px;font-size:.73rem;font-weight:1000;letter-spacing:.08em}.age-tag span{color:#d58e55;margin-left:3px}
main{max-width:1180px;margin:auto;padding:0 28px 18px}
.welcome{min-height:322px;display:grid;grid-template-columns:1fr .94fr;align-items:center;gap:24px;padding:20px 28px 25px 34px}
.welcome-copy{position:relative;z-index:1}
.eyebrow{margin:0 0 9px;color:#ad7968;font-size:.7rem;letter-spacing:.16em;font-weight:1000}
.sparkle{color:#e1a73e;margin-right:6px}
h1,h2,h3,p{margin-top:0}
h1{font-family:var(--display);font-weight:800;font-size:clamp(2.35rem,5.3vw,4.1rem);line-height:1.04;letter-spacing:-.035em;margin:0;color:#5b454b}
.title-word{display:block;font-size:1.23em;color:#ec5274;letter-spacing:-.04em;-webkit-text-stroke:.7px #be3d5b;text-shadow:1px 2px 0 #fff4d4,3px 5px 0 #ffbf9b}
.title-period{color:#e9b744}
.intro{max-width:440px;font-size:1.08rem;line-height:1.55;color:#816b68;font-weight:700;margin:11px 0 17px}
.welcome-chips{display:flex;gap:8px}.welcome-chips span{padding:7px 12px;border:1px solid #ead8b7;border-radius:999px;color:#8a715d;background:#fffaf0;font-size:.8rem;font-weight:900}
.scene{position:relative;width:min(100%,470px);justify-self:end;filter:drop-shadow(0 14px 13px #bc93692b);animation:float-in .85s both}
.scene svg{width:100%;display:block;overflow:visible}.scene-caption{position:absolute;bottom:-1px;right:15px;background:#fff9e9;color:#886e61;border:1px solid #ead9bd;padding:8px 13px;border-radius:14px;font-size:.76rem;font-weight:900;box-shadow:0 5px 12px #755b4010}.scene-caption span{color:var(--coral);padding-left:4px}
.scene-hill{stroke:none}.hill-back{fill:#d0e6c0}.hill-front{fill:#a5cb99}
.sun-face{fill:#f6cf70;stroke:#dcaa51;stroke-width:3}.sun-rays{animation:sunshine 18s linear infinite;transform-origin:315px 81px}
.doorway{padding:8px 12px 25px}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;margin:0 8px 15px}
h2{font-family:var(--display);font-weight:800;font-size:clamp(1.65rem,3vw,2.2rem);letter-spacing:-.025em;margin:0;color:#5c464a;line-height:1.1}
.section-heading .eyebrow{margin-bottom:3px}.heading-aside{font-size:.85rem;color:#9c8074;margin:0 4px 3px}
.room-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.room-card{--room:#f8dfaa;--room-shadow:#ead092;grid-column:span 2;position:relative;text-align:left;text-decoration:none;min-height:142px;padding:16px 17px 15px;border:2px solid #ead6b7;border-radius:23px;background:var(--room);box-shadow:0 5px 0 var(--room-shadow);cursor:pointer;display:grid;grid-template-columns:62px 1fr 20px;grid-template-rows:1fr auto auto;align-items:center;column-gap:9px;transition:transform .18s,box-shadow .18s,border-color .18s}
.room-card:hover{transform:translateY(-3px);box-shadow:0 8px 0 var(--room-shadow)}
.room-card:focus-visible,.back-link:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #754f5b;outline-offset:3px}
.room-card.is-selected{border-color:#d97a68;box-shadow:0 5px 0 #df9a7c,0 0 0 4px #fff7e7}
.room-story{--room:#ffe5a0;--room-shadow:#f2bc65}.room-writing{--room:#ffc9d1;--room-shadow:#ef9eaa}.room-sound{--room:#bcf3d6;--room-shadow:#8dd8bb}.room-learning{--room:#decaff;--room-shadow:#bda3e9}.room-song{--room:#bfe9fc;--room-shadow:#93cce9}.room-card:nth-child(n+4){grid-column:span 3}
.room-icon{grid-row:1 / span 2;grid-column:1;width:60px;height:60px;border-radius:19px;display:grid;place-items:center;background:#fff8e7b8}
.room-icon svg{width:56px;height:51px}.room-label{align-self:end;font-family:var(--display);font-size:1.32rem;font-weight:800;color:#5d4749}.room-hint{align-self:start;font-size:.77rem;color:#816d66;font-weight:800}.room-arrow{grid-column:3;grid-row:1;align-self:start;justify-self:end;color:#8e7162;font-size:1.12rem}
.activity-area{padding:0 8px}
.activity-panel{border:2px solid #f6daab;border-radius:25px;background:#fffefa;padding:23px 25px 24px;box-shadow:0 12px 28px #79542b12;animation:panel-in .3s ease-out}
.activity-panel[hidden]{display:none}
.writing-panel{overflow:hidden}
.game-intro{margin:0 0 15px;color:#77636b;font-size:.94rem}
.practice-modes{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:17px}
.practice-modes button{border:2px solid #e0c6cf;border-radius:15px;background:#fffaf2;min-height:48px;padding:9px 16px;color:#65495d;font:800 .95rem var(--body);cursor:pointer}
.practice-modes button.is-active{background:#fbe3ef;border-color:#c97899;box-shadow:0 3px 0 #e6b6ca}
.practice-modes button:focus-visible,.word-game-choices button:focus-visible{outline:3px solid #754f5b;outline-offset:3px}
.word-game{background:linear-gradient(130deg,#fff0f5,#fff8dc);border:2px solid #edd4de;border-radius:20px;padding:22px;min-height:245px}
.word-game h3{font-family:var(--display);font-size:1.5rem;color:#624953;margin:6px 0}
.word-game p{color:#705d63;margin:8px 0}
.word-game .word-game-question{font:800 clamp(2rem,5vw,3.4rem) "Noto Sans Devanagari",sans-serif;color:#ae5476;margin:12px 0}
.word-game-choices{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.word-game-choices button{border:2px solid #d5b9c3;border-radius:13px;background:white;min-height:50px;padding:9px 15px;font:800 1.02rem var(--body);color:#654959;cursor:pointer}
.word-game-choices button:hover{background:#fff0f5;border-color:#b56b8b}
.word-game-choices button.is-try-again{background:#fff0e3;border-color:#da9b76}
.word-game-choices button.is-right{background:#e6f5df;border-color:#65a17c}
.word-game-choices button:disabled{cursor:default}
.word-game #word-game-feedback{font-weight:800;min-height:1.5em}
.word-game button[hidden],.word-game[hidden],#game-writing[hidden]{display:none}
#writing-practice{display:block;width:100%;height:1450px;border:0;border-radius:16px;background:#fffaf0}
.panel-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}
.panel-top .eyebrow{margin-bottom:3px}.chapter-count{background:#f8edcf;border-radius:999px;padding:7px 11px;color:#98765a;font-size:.68rem;letter-spacing:.11em;font-weight:1000;white-space:nowrap}
.story-layout{display:grid;grid-template-columns:.97fr 1.03fr;gap:24px;align-items:stretch}
.story-art{position:relative;min-height:264px;border-radius:20px;overflow:hidden;background:linear-gradient(#cde9df 0 55%,#dff0d9 55%);display:flex;align-items:flex-end}
.story-art svg{width:100%;height:auto;display:block;max-height:260px}.art-label{position:absolute;top:14px;left:14px;border-radius:999px;padding:7px 11px;background:#fff9e9d9;color:#738875;font-size:.73rem;font-weight:900}
.lotus-petal{transform-box:fill-box;transform-origin:50% 100%;animation:petal-bloom 2.1s ease-in-out infinite alternate}.petal-b{animation-delay:.2s}.petal-c{animation-delay:.4s}
.story-reading{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:2px 5px}
.story-word{font-family:"Noto Sans Devanagari",var(--display);font-size:2.25rem;line-height:1.3;color:#bc625e}.story-translit{color:#9b7969;font-size:.89rem;font-weight:900;margin-bottom:12px}
.story-text{font-size:1.02rem;line-height:1.62;color:#685658;max-width:450px;margin-bottom:19px}
.story-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.primary-button,.soft-button,.sound-button{border:0;border-radius:13px;min-height:45px;padding:10px 16px;font-weight:1000;cursor:pointer;transition:transform .16s,filter .16s,box-shadow .16s}
.primary-button{background:#d94d71;color:white;box-shadow:0 4px 0 #aa365b}.primary-button:hover{transform:translateY(-2px);filter:saturate(1.08);box-shadow:0 6px 0 #aa365b}.primary-button:active,.soft-button:active,.sound-button:active{transform:translateY(1px)}
.soft-button{background:#f3e8d1;color:#786352;box-shadow:0 3px 0 #dfd0b1}.soft-button:disabled{opacity:.48;cursor:not-allowed;transform:none}
.sound-button{background:#dcefe3;color:#4d7965;box-shadow:0 3px 0 #bdd9c4}.sound-button span{font-size:.9rem;margin-right:5px}
.speech-note{font-size:.72rem;line-height:1.35;color:#a18878;margin:11px 0 0;font-weight:800}
.pronunciation-layout{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}
.picker-column{min-width:0}.picker-group{margin-bottom:13px}.picker-group h3{font-size:.83rem;margin:0 0 7px;color:#8b6b5e;font-weight:1000}.picker-group h3 span{font-family:"Noto Sans Devanagari",var(--body);margin-left:5px;color:#bd8171}
.letter-picker{display:flex;gap:6px;flex-wrap:wrap}.letter-button{font-family:"Noto Sans Devanagari",var(--body);font-size:1.12rem;font-weight:700;width:43px;height:43px;border-radius:12px;border:1px solid #e5d7bc;background:#fff8e8;cursor:pointer;color:#654f52;transition:background .16s,transform .16s,border-color .16s}
.letter-button:hover{transform:translateY(-2px);background:#f8e6c6}.letter-button[aria-pressed="true"]{background:#e88473;color:white;border-color:#d17466;box-shadow:0 3px 0 #bd675d}
.letter-button[aria-pressed="true"]{background:#d94d71;border-color:#b83c5e;box-shadow:0 3px 0 #a9365b}
.consonant-picker .letter-button{width:39px;height:39px;font-size:1.04rem}
.selected-letter{display:flex;align-items:center;gap:12px;margin:13px 0 11px;padding:10px 13px;background:#f7efd9;border-radius:16px;width:fit-content;min-width:210px}
.selected-devanagari{font-family:"Noto Sans Devanagari",var(--display);font-size:2.55rem;line-height:1;color:#bd625d}
.selected-letter strong,.selected-letter small{display:block}.selected-letter strong{font-size:1rem}.selected-letter small{font-size:.74rem;color:#92776b;margin-top:2px}
.say-button{min-width:190px}.mouth-stage{border-radius:22px;background:#f7e9d5;padding:15px 17px 12px;text-align:center;box-shadow:inset 0 0 0 1px #ecddc4}
.mouth-stage{background:#fff0ca;box-shadow:inset 0 0 0 1px #f0d99e}
.mouth-heading{display:flex;justify-content:center;align-items:center;gap:7px;color:#8c7163;font-size:.83rem;font-weight:1000}.breath-mark{font-size:1.35rem;color:#73a28a}
.mouth-svg{display:block;width:min(100%,360px);height:auto;margin:2px auto 0;overflow:visible}
.mouth-lips{transition:d .3s,fill .3s}.mouth-opening,.mouth-teeth,.mouth-tongue{transition:d .3s,opacity .2s}
.mouth-svg.mouth-a .mouth-opening{d:path("M150 182q40-12 80 0-6 18-40 19-34-1-40-19")}.mouth-svg.mouth-a .mouth-tongue{d:path("M165 197q25-8 50 0l-5 10q-20 5-40 0z")}
.mouth-svg.mouth-aa .mouth-opening{d:path("M146 179q44-17 88 0-6 28-44 29-38-1-44-29")}.mouth-svg.mouth-aa .mouth-tongue{d:path("M159 199q31-10 62 0l-5 13q-26 6-52 0z")}
.mouth-svg.mouth-i .mouth-opening{d:path("M158 181q32-7 64 0-4 15-32 16-28-1-32-16")}.mouth-svg.mouth-i .mouth-tongue{d:path("M161 194q29-5 58 0l-4 7q-25 4-50 0z")}
.mouth-svg.mouth-u .mouth-lips{d:path("M163 182q25-20 54 0-3 20-27 21-24-1-27-21")}.mouth-svg.mouth-u .mouth-opening{d:path("M169 183q21-12 42 0-3 13-21 14-18-1-21-14")}.mouth-svg.mouth-u .mouth-tongue{d:path("M175 195q15-4 30 0l-3 6q-12 3-24 0z")}
.mouth-svg.mouth-e .mouth-opening{d:path("M151 181q39-9 78 0-6 16-39 17-33-1-39-17")}.mouth-svg.mouth-e .mouth-tongue{d:path("M161 195q29-6 58 0l-4 8q-25 3-50 0z")}
.mouth-svg.mouth-o .mouth-lips{d:path("M158 181q30-24 64 0-4 23-32 24-28-1-32-24")}.mouth-svg.mouth-o .mouth-opening{d:path("M166 183q22-15 48 0-4 16-24 17-20-1-24-17")}.mouth-svg.mouth-o .mouth-tongue{d:path("M174 197q16-6 32 0l-3 7q-13 4-26 0z")}
.mouth-svg.mouth-lips .mouth-lips{d:path("M146 182q44-10 88 0-10 7-44 8-34-1-44-8")}.mouth-svg.mouth-lips .mouth-opening{d:path("M155 182q35-3 70 0-12 3-35 3-23 0-35-3")}.mouth-svg.mouth-lips .mouth-teeth,.mouth-svg.mouth-lips .mouth-tongue{opacity:0}
.mouth-svg.mouth-pha .mouth-lips{d:path("M143 179q47-20 94 0-7 31-47 32-40-1-47-32")}
.mouth-svg.mouth-pha .mouth-opening{d:path("M151 181q39-13 78 0-7 23-39 24-32-1-39-24")}
.mouth-svg.mouth-pha .mouth-tongue{d:path("M163 197q27-13 54 0l-5 11q-22 8-44 0z");fill:#f1808b;stroke:#b75566;stroke-width:2}
.mouth-svg.mouth-pha .mouth-teeth{opacity:0}
.mouth-svg.mouth-lipteeth .mouth-lips{d:path("M147 181q43-13 86 0-13 19-43 17-30-1-43-17")}
.mouth-svg.mouth-lipteeth .mouth-opening{d:path("M158 183q32-7 64 0-8 11-32 12-24-1-32-12")}
.mouth-svg.mouth-lipteeth .mouth-tongue{opacity:.35}
.mouth-svg.mouth-ridge .mouth-tongue{d:path("M159 194q20-31 36-30 17 6 28 32l-6 10q-30 4-58-12z")}
.mouth-svg.mouth-hiss .mouth-lips{d:path("M144 181q46-12 92 0-7 14-46 15-39-1-46-15")}
.mouth-svg.mouth-hiss .mouth-opening{d:path("M150 183q40-5 80 0-8 10-40 11-32-1-40-11")}
.mouth-svg.mouth-hiss .mouth-tongue{d:path("M157 196q23-18 43-16 12 2 23 17l-6 7q-30 2-60-8z")}
.mouth-svg.mouth-ha .mouth-opening{d:path("M148 179q42-14 84 0-5 29-42 30-37-1-42-30")}
.mouth-svg.mouth-ha .mouth-tongue{d:path("M159 203q31-8 62 0l-5 10q-26 4-52 0z")}
.pha-air,.pha-tongue-label{opacity:0}
.mouth-svg.mouth-pha .pha-tongue-label{opacity:1}
.mouth-svg.mouth-dental .mouth-opening{d:path("M150 181q40-12 80 0-7 19-40 19-33 0-40-19")}.mouth-svg.mouth-dental .mouth-tongue{d:path("M175 192q-7-20 8-19 16 0 29 17l-3 13q-17 8-34-11z")}
.mouth-svg.mouth-retro .mouth-opening{d:path("M151 181q39-11 78 0-5 24-39 24-34 0-39-24")}.mouth-svg.mouth-retro .mouth-tongue{d:path("M167 199q-4-27 17-29 17-2 33 29l-6 9q-22 3-44-9z")}
.mouth-svg.mouth-back .mouth-opening{d:path("M150 181q40-12 80 0-6 19-40 20-34-1-40-20")}.mouth-svg.mouth-back .mouth-tongue{d:path("M157 196q20-6 30-3 23-24 39-15l-10 28q-32 8-59-10z")}
.mouth-svg.mouth-palatal .mouth-opening{d:path("M152 181q38-10 76 0-4 17-38 19-34-2-38-19")}.mouth-svg.mouth-palatal .mouth-tongue{d:path("M158 196q24-26 45-21 10 2 20 22l-6 9q-30 3-59-10z")}
.face-outline{transition:d .3s}.mouth-svg.mouth-aa .face-outline{d:path("M55 128q-8-87 56-105 75-23 145 7 61 27 55 108l-13 74q-5 47-49 80-38 28-74 28-40 0-77-29-42-32-46-78z")}.mouth-svg.mouth-a .face-outline{d:path("M55 128q-8-87 56-105 75-23 145 7 61 27 55 108l-13 68q-4 40-47 71-37 25-73 25-38 0-75-26-39-28-43-69z")}
.mouth-caption{display:flex;justify-content:center;align-items:center;gap:8px;color:#7f655e;font-size:.79rem;min-height:27px}.mouth-pulse{width:8px;height:8px;background:#e78372;border-radius:50%;box-shadow:0 0 0 4px #e7837224}
.mouth-svg.is-speaking .mouth-lips,.mouth-svg.is-speaking .mouth-opening,.mouth-svg.is-speaking .mouth-tongue{transform-box:fill-box;transform-origin:center top;animation:mouth-articulate .26s ease-in-out 4 alternate}
.mouth-svg.mouth-pha.is-speaking .mouth-lips{animation:pha-lips 1.2s ease-in-out both}
.mouth-svg.mouth-pha.is-speaking .mouth-opening{animation:pha-opening 1.2s ease-in-out both}
.mouth-svg.mouth-pha.is-speaking .mouth-tongue{animation:pha-tongue 1.2s ease-in-out both}
.mouth-svg.mouth-pha.is-speaking .pha-air{animation:pha-puff 1.2s ease-out both}
.mouth-svg.is-aspirated.is-speaking .pha-air{animation:pha-puff 1.2s ease-out both}
.mouth-svg.is-fricative.is-speaking .pha-air{animation:pha-puff 1.4s ease-out both}
.nasal-pulse{opacity:0}
.mouth-svg.is-nasal.is-speaking .nasal-pulse{animation:nose-hum 1.1s ease-out both}
.mouth-svg.is-long.is-speaking .mouth-lips,.mouth-svg.is-long.is-speaking .mouth-opening,.mouth-svg.is-long.is-speaking .mouth-tongue{animation-duration:.41s;animation-iteration-count:4}
.tongue-guide{margin-top:10px;padding:9px 12px 7px;border-radius:15px;background:#fffaf0;border:1px solid #ebd39b;text-align:left}
.tongue-guide-title{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;color:#7c5660;font-size:.78rem}
.tongue-guide-title span{color:#447c79;font-weight:1000}
.tongue-diagram{display:block;width:min(100%,320px);height:100px;margin:auto}
.diagram-tongue{transition:d .3s}.diagram-target{transition:cx .3s,cy .3s}
.diagram-air,.diagram-nose,.diagram-voice{opacity:0}
.tongue-diagram.is-speaking .diagram-tongue{animation:tongue-release .95s ease-in-out both}
.tongue-diagram.is-speaking.is-long .diagram-tongue{animation-duration:1.55s}
.tongue-diagram.is-speaking.is-continuous .diagram-tongue{animation:tongue-flow 1.35s ease-in-out both}
.tongue-diagram.is-speaking .diagram-target{animation:contact-point .95s ease-in-out both}
.tongue-diagram.is-speaking.is-aspirated .diagram-air{animation:pha-puff 1.2s ease-out both}
.tongue-diagram.is-speaking.is-nasal .diagram-nose{animation:nose-hum 1.1s ease-out both}
.tongue-diagram.is-speaking.is-voiced .diagram-voice{animation:nose-hum .42s ease-in-out 3}
.tongue-guide p{margin:0;text-align:center;color:#765b59;font-size:.73rem;line-height:1.35}
.lesson-layout{display:grid;grid-template-columns:1.45fr .75fr;gap:23px;align-items:center}
.lesson-board{border:7px solid #b8a07a;border-radius:20px;background:#fffefa;box-shadow:inset 0 0 0 2px #e8dcc5,0 5px 0 #c3ae89;overflow:hidden}
.board-top,.board-bottom{height:36px;display:flex;align-items:center;padding:0 12px;color:#967966;font-size:.69rem;font-weight:1000;letter-spacing:.1em;background:#fbf4e4}
.board-top{justify-content:space-between;border-bottom:1px dashed #e8dcc5}.board-pin{height:9px;width:9px;background:#e77e70;border-radius:50%;box-shadow:0 0 0 3px #edb5a3}.board-sun{font-size:1rem;color:#e8b94f}.board-bottom{justify-content:space-between;border-top:1px dashed #e8dcc5;letter-spacing:0;font-size:.71rem}
.lesson-svg{display:block;width:100%;height:auto;min-height:210px}.draw-path{opacity:0;stroke-dasharray:1;stroke-dashoffset:1}.draw-text{opacity:0;font-family:"Noto Sans Devanagari",var(--display);fill:#bc665b;font-weight:800}.draw-text:not([lang]){font-family:var(--body);font-size:21px;fill:#776456}.draw-text[lang]{font-size:79px}.lesson-sticker{opacity:0}
.lesson-svg.is-playing .draw-1{stroke-dasharray:340;stroke-dashoffset:340;animation:draw 1.5s .3s forwards}.lesson-svg.is-playing .draw-2{stroke-dasharray:100;stroke-dashoffset:100;animation:draw .65s 1.8s forwards}.lesson-svg.is-playing .draw-3{stroke-dasharray:100;stroke-dashoffset:100;animation:draw .7s 2.4s forwards}.lesson-svg.is-playing .draw-4{stroke-dasharray:90;stroke-dashoffset:90;animation:draw .55s 3.25s forwards}.lesson-svg.is-playing .draw-5{stroke-dasharray:50;stroke-dashoffset:50;animation:draw .45s 3.65s forwards}.lesson-svg.is-playing .draw-6{animation:write-in .7s 4.2s forwards}.lesson-svg.is-playing .draw-7{animation:write-in .6s 5.05s forwards}.lesson-svg.is-playing .draw-8{animation:write-in .6s 5.5s forwards}.lesson-svg.is-playing .draw-9{stroke-dasharray:90;stroke-dashoffset:90;animation:draw .55s 6s forwards}.lesson-svg.is-playing .lesson-sticker{animation:write-in .5s 6.45s forwards}
.lesson-svg.is-playing .draw-1{stroke-dasharray:var(--draw-1-length,340);stroke-dashoffset:var(--draw-1-length,340)}.lesson-svg.is-playing .draw-2{stroke-dasharray:var(--draw-2-length,100);stroke-dashoffset:var(--draw-2-length,100)}.lesson-svg.is-playing .draw-3{stroke-dasharray:var(--draw-3-length,100);stroke-dashoffset:var(--draw-3-length,100)}
.lesson-svg.is-paused *{animation-play-state:paused!important}
.marker-cursor{opacity:0;transform:translate(120px,229px)}.lesson-svg.is-playing .marker-cursor{opacity:1;animation:marker-travel 6.5s linear forwards}
.lesson-svg.is-done .draw-path{stroke-dashoffset:0}.lesson-svg.is-done .draw-text,.lesson-svg.is-done .lesson-sticker{opacity:1}.lesson-svg.is-done .marker-cursor{opacity:0}
.progress-track{height:7px;width:90px;background:#eadfca;border-radius:99px;overflow:hidden}.progress-track span{display:block;width:0;height:100%;background:#e77e70;border-radius:inherit}.lesson-svg.is-playing~.board-bottom #lesson-progress{animation:progress 6.9s linear forwards}
/* Give the teacher enough time to finish each explanation before the next drawing. */
.lesson-svg.is-playing .draw-1{animation:draw 6s .6s forwards}
.lesson-svg.is-playing .draw-2{animation:draw 2.8s 6.4s forwards}
.lesson-svg.is-playing .draw-3{animation:draw 2.5s 9s forwards}
.lesson-svg.is-playing .draw-4{animation:draw 2s 14.5s forwards}
.lesson-svg.is-playing .draw-5{animation:draw 1.6s 16.4s forwards}
.lesson-svg.is-playing .draw-6{animation:write-in .9s 19s forwards}
.lesson-svg.is-playing .draw-7{animation:write-in .9s 11.5s forwards}
.lesson-svg.is-playing .draw-8{animation:write-in .9s 25s forwards}
.lesson-svg.is-playing .draw-9{animation:draw 1.9s 27s forwards}
.lesson-svg.is-playing .lesson-sticker{animation:write-in .8s 29s forwards}
.lesson-svg.is-playing .marker-cursor{animation:none}
.lesson-svg.is-playing~.board-bottom #lesson-progress{animation:progress 42s linear forwards}
.lesson-side{display:flex;flex-direction:column;gap:15px}
.teacher-note{display:flex;gap:11px;align-items:flex-start;padding:15px 14px;border-radius:18px;background:#edf2dc}.teacher-mark{flex:none;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#f1cb6c;color:#735843;font-family:var(--display);font-size:1.25rem}.teacher-note small{display:block;font-size:.66rem;letter-spacing:.12em;color:#8b7960;font-weight:1000}.teacher-note p{margin:4px 0 0;font-size:.94rem;line-height:1.42;color:#6b6051}
.lesson-photo{margin:0;display:flex;align-items:center;gap:12px;padding:8px;border:1px solid #e9d8b9;border-radius:16px;background:#fff8e7}.lesson-photo img{width:84px;height:76px;object-fit:cover;border-radius:11px}.lesson-photo figcaption{font-size:.83rem;color:#78614f}.lesson-photo figcaption span{display:block;font-family:"Noto Sans Devanagari",sans-serif;font-size:1.16rem;color:#bc665b}
.lesson-controls{display:flex;gap:8px}.lesson-controls .primary-button{flex:1}.lesson-controls .soft-button{min-width:83px}
.continue-button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:52px;padding:11px 16px;border:2px solid #dcac28;border-radius:15px;background:#ffda60;color:#563a37;font-family:var(--display);font-size:1rem;font-weight:800;cursor:pointer;box-shadow:0 4px 0 #daa845;transition:transform .16s,background .16s}.continue-button:hover{background:#ffe57c;transform:translateY(-2px)}.continue-button span{font-size:1.2rem}
.narration-toggle{cursor:pointer;display:flex;align-items:center;gap:9px;font-size:.84rem;color:#826b61;width:fit-content}.narration-toggle input{position:absolute;opacity:0;width:1px;height:1px}.toggle-look{width:39px;height:23px;border-radius:999px;background:#d8cab7;position:relative;transition:background .2s}.toggle-look:after{content:"";position:absolute;left:3px;top:3px;width:17px;height:17px;border-radius:50%;background:#fffaf0;box-shadow:0 1px 2px #6c4e3e40;transition:transform .2s}.narration-toggle input:checked+.toggle-look{background:#7ba68a}.narration-toggle input:checked+.toggle-look:after{transform:translateX(16px)}.narration-toggle input:focus-visible+.toggle-look{outline:3px solid #754f5b;outline-offset:3px}
.page-footer{padding:24px 10px 11px;text-align:center;color:#9c8271;font-size:.78rem;font-weight:900}.footer-flower{color:#df8d79;font-size:1rem;padding-right:5px}.footer-dot{display:inline-block;vertical-align:middle;margin:0 8px;width:4px;height:4px;border-radius:50%;background:#d6ab5f}
@keyframes float-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes panel-in{from{opacity:.5;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes sunshine{to{transform:rotate(360deg)}}
@keyframes petal-bloom{from{transform:scale(.97) rotate(-2deg)}to{transform:scale(1.035) rotate(2deg)}}
@keyframes mouth-articulate{from{transform:scaleY(.55)}to{transform:scaleY(1.45)}}
@keyframes pha-lips{0%,24%{d:path("M146 182q44-10 88 0-10 7-44 8-34-1-44-8")}42%,85%,100%{d:path("M143 179q47-20 94 0-7 31-47 32-40-1-47-32")}}
@keyframes pha-opening{0%,24%{d:path("M155 182q35-3 70 0-12 3-35 3-23 0-35-3")}42%,85%,100%{d:path("M151 181q39-13 78 0-7 23-39 24-32-1-39-24")}}
@keyframes pha-tongue{0%,26%{opacity:0}44%,100%{opacity:1}}
@keyframes pha-puff{0%,28%{opacity:0;transform:translateX(-12px)}40%,65%{opacity:1;transform:translateX(0)}100%{opacity:0;transform:translateX(10px)}}
@keyframes nose-hum{0%,100%{opacity:0;transform:scale(.9)}30%,70%{opacity:1;transform:scale(1.15)}}
@keyframes tongue-release{0%,26%{transform:translateY(-4px)}45%,100%{transform:translateY(5px)}}
@keyframes tongue-flow{0%,100%{transform:translateY(1px)}50%{transform:translateY(-3px)}}
@keyframes contact-point{0%,30%{opacity:1;transform:scale(1.2)}60%,100%{opacity:.3;transform:scale(.8)}}
@keyframes draw{0%{opacity:1}to{opacity:1;stroke-dashoffset:0}}
@keyframes write-in{from{opacity:0}to{opacity:1}}
@keyframes progress{to{width:100%}}
@keyframes marker-travel{0%{transform:translate(121px,229px)}25%{transform:translate(186px,110px)}45%{transform:translate(220px,130px)}58%{transform:translate(310px,170px)}75%{transform:translate(425px,191px)}100%{transform:translate(473px,222px)}}
.lesson-jump{display:inline-block;margin:-3px 0 17px;color:#ad476d;font-size:.87rem;font-weight:1000;text-underline-offset:3px}
.whiteboard-menu{border:2px solid #e5d7bc;border-radius:20px;background:#fffaf0;margin:2px 0 15px;overflow:hidden}
.whiteboard-menu summary{cursor:pointer;padding:13px 17px;font-family:var(--display);font-weight:900;color:#684e51;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px}
.whiteboard-menu summary::-webkit-details-marker{display:none}
.whiteboard-menu summary:before{content:"▸";color:#ba6379}.whiteboard-menu[open] summary:before{content:"▾"}
.whiteboard-menu summary span{font-family:var(--body);font-size:.76rem;color:#846970;font-weight:800;margin-left:auto}
.whiteboard-menu-body{border-top:1px solid #eadbc3;padding:12px 16px 16px}
.whiteboard-menu-body>p{font-size:.85rem;color:#806a64;margin:0 0 10px}
.whiteboard-filters{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.whiteboard-filters button{cursor:pointer;background:#fff;border:1px solid #d9c7ac;border-radius:99px;padding:6px 12px;color:#6b5650;font:800 .78rem var(--body)}
.whiteboard-filters button.is-active{background:#efd9ee;border-color:#bc76a7;color:#703c65}
.whiteboard-overview{background:#eff5e9;border-radius:11px;padding:9px 12px;font-size:.82rem;color:#536b56;font-weight:800;margin-bottom:10px}
.whiteboard-lesson-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-height:216px;overflow-y:auto;overscroll-behavior:contain;padding:2px 4px 4px 2px}
.whiteboard-lesson-choice{cursor:pointer;min-width:0;border:2px solid #e5d7c2;border-radius:12px;background:#fff;padding:9px 7px;text-align:left;display:flex;flex-direction:column;gap:2px;color:#665057}
.whiteboard-lesson-choice small{font-size:.61rem;letter-spacing:.05em;color:#9a7380;font-weight:1000}
.whiteboard-lesson-choice strong{font-family:var(--display);font-size:.93rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.whiteboard-lesson-choice span{font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#886f65}
.whiteboard-lesson-choice:hover,.whiteboard-lesson-choice:focus-visible{border-color:#b46d8d;background:#fff3f5}
.whiteboard-lesson-choice.is-current{border-color:#cb658a;background:#fff0f5;box-shadow:0 2px 0 #dfa9bc}
.whiteboard-lesson-choice.is-complete small{color:#9b7330}
.lesson-board-emoji{opacity:0;font-size:58px;paint-order:stroke}
.lesson-svg.is-playing .lesson-board-emoji{animation:write-in .8s 12s forwards}
.lesson-svg.is-done .lesson-board-emoji{opacity:1}
.lesson-photo-emoji{display:grid;place-items:center;flex:none;width:84px;height:76px;border-radius:11px;background:#f4e9d8;font-size:2.8rem}
.lesson-photo img[hidden],.lesson-photo-emoji[hidden]{display:none}
.lesson-mini{margin:20px 0 10px;border:2px solid #e9d3df;background:linear-gradient(125deg,#fff0f5,#fff9e8);border-radius:19px;padding:17px 20px}
.lesson-mini-badge{font-size:.68rem;letter-spacing:.12em;color:#a25278;font-weight:1000}
.lesson-mini h3{font-family:var(--display);color:#5c4758;font-size:1.35rem;margin:4px 0 0}
.lesson-mini p{font-size:.88rem;color:#7a626b;margin:8px 0}
.lesson-mini-options{display:flex;flex-wrap:wrap;gap:9px;margin-top:14px}
.lesson-mini-answer{cursor:pointer;border:2px solid #d6b5c6;border-radius:13px;background:#fff;padding:10px 17px;min-width:75px;min-height:47px;color:#644b59;font-family:var(--display);font-size:1.05rem;font-weight:800}
.lesson-mini-answer:hover,.lesson-mini-answer:focus-visible{border-color:#b15787;background:#fff4f8}
.lesson-mini-answer.is-try-again{border-color:#df9976;background:#fff4e8}
.lesson-mini-answer.is-right{border-color:#609b76;background:#e3f4df}
.lesson-mini-answer:disabled{cursor:default}
.lesson-mini .lesson-mini-feedback{font-weight:800;margin-bottom:0}
.lesson-mini-feedback.is-celebrating{color:#387355}
.lesson-svg.is-done .draw-path{opacity:1}
.word-lessons{margin-top:28px;padding-top:25px;border-top:2px dashed #e8d6be}
.word-lessons-heading{display:flex;justify-content:space-between;align-items:end;gap:12px}
.word-lessons-heading h3{font-family:var(--display);font-size:1.65rem;line-height:1.15;margin:0;color:#5c464a}
.lesson-total{flex-shrink:0;border-radius:999px;background:#efe5ff;color:#73559a;padding:7px 12px;font-size:.76rem;font-weight:1000}
.word-lessons-intro{color:#806c68;font-size:.91rem;margin:8px 0 16px}
.lesson-tracks{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.lesson-track{border:2px solid #e5d7bc;background:#fff9e9;border-radius:15px;padding:10px 16px;text-align:left;cursor:pointer;font-family:var(--display);font-size:1.1rem;font-weight:800}
.lesson-track span{display:block;font-family:var(--body);font-size:.7rem;color:#92776b}
.lesson-track.is-active{border-color:#cf7292;background:#ffeaf2;box-shadow:0 3px 0 #e6a5b8}
.vocab-card{border:2px solid #e8d7ee;border-radius:22px;background:linear-gradient(135deg,#fff6e3,#fff1f5 65%,#eee7ff);padding:20px 24px;max-width:700px}
.vocab-card-top{display:flex;justify-content:space-between;align-items:center;color:#996b78;font-size:.75rem;font-weight:1000;letter-spacing:.08em}
#vocab-emoji{font-size:2.2rem;letter-spacing:0}
.vocab-word{font-family:"Noto Sans Devanagari",var(--display);font-size:clamp(2.1rem,4vw,3rem);line-height:1.3;color:#ae4e70;margin:0 0 2px}
.vocab-roman{font-size:1.03rem;color:#816783}.vocab-meaning{font-family:var(--display);font-size:1.35rem;color:#5b464b;margin-top:7px}
.vocab-try{margin:11px 0 17px;padding:10px 14px;background:#fffdf7;border-radius:12px;color:#725f5d;font-size:.92rem}
.vocab-progress{display:flex;gap:5px;margin-bottom:16px}.vocab-progress span{height:6px;flex:1;border-radius:9px;background:#e5d7d0}.vocab-progress span.is-reached{background:#d65c80}
.vocab-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.song-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:24px;align-items:start}
.song-art{min-height:340px;border-radius:22px;background:radial-gradient(circle at 70% 20%,#ffec99 0 13%,transparent 14%),linear-gradient(160deg,#b9e8f0,#d8f5db 62%,#fdf0be);position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden}
.song-sun{font-size:6rem;position:absolute;top:6%;right:10%}.song-friends{font-size:clamp(2.7rem,5vw,4rem);z-index:1;white-space:nowrap}
.song-note{position:absolute;font-family:var(--display);font-size:4rem;color:#be5f85}.note-one{top:11%;left:14%}.note-two{bottom:12%;right:15%;color:#6e9b89}
.song-lyrics{min-width:0}.song-prompt{font-size:.92rem;color:#886a63;margin-bottom:14px}
.song-verse{background:#fff6df;border:2px solid #f2dfbc;border-radius:19px;padding:17px 20px;margin-bottom:13px}
.song-verse p{font-family:var(--display);font-size:1.25rem;line-height:1.35;margin:0 0 12px}.song-verse p:last-child{margin-bottom:0}
.song-verse p span{font-family:"Noto Sans Devanagari",var(--display);color:#bd5476}
.song-verse small{display:block;font-family:var(--body);font-size:.71rem;color:#917979}
.song-chorus{background:#f5ebff;border-color:#e6d5f3}.song-footnote{color:#8b7370;font-size:.78rem;margin:4px 0 0}
@media(max-width:800px){.welcome{grid-template-columns:1fr .8fr;padding-left:20px}.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-card,.room-card:nth-child(n+4){grid-column:span 1}.room-card:last-child{grid-column:1/-1}.room-card{min-height:129px}.lesson-layout{grid-template-columns:1fr}.lesson-side{display:grid;grid-template-columns:1fr 1fr;align-items:center}.teacher-note{grid-row:span 2}.song-layout{grid-template-columns:1fr}.song-art{min-height:220px}}
@media(max-width:800px){.whiteboard-lesson-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.whiteboard-lesson-list{grid-template-columns:repeat(2,minmax(0,1fr))}.whiteboard-menu summary{font-size:.9rem}.whiteboard-menu-body{padding:11px}.lesson-mini{padding:14px}}
@media(max-width:620px){.topbar{padding:12px 16px 2px}.top-note{display:none}main{padding:0 14px 12px}.welcome{padding:19px 4px 12px;grid-template-columns:1fr;gap:2px;min-height:0}.welcome-copy{padding:0 10px}.eyebrow{font-size:.65rem}.intro{font-size:.98rem;max-width:380px}.scene{width:min(100%,290px);justify-self:center;margin-top:-2px;animation:none}.scene-caption{right:4px;bottom:0;font-size:.69rem}.doorway{padding:5px 0 18px}.section-heading{margin:0 4px 12px}.heading-aside{font-size:.73rem}.room-grid{gap:10px}.room-card{min-height:122px;padding:12px 11px;grid-template-columns:50px 1fr 15px;column-gap:6px;border-radius:18px}.room-icon{height:49px;width:49px;border-radius:15px}.room-icon svg{width:47px;height:43px}.room-label{font-size:1.16rem}.room-hint{font-size:.72rem}.activity-area{padding:0}.activity-panel{padding:17px 15px 18px;border-radius:21px}.panel-top{align-items:flex-start}.chapter-count{font-size:.59rem;padding:7px 8px;margin-top:3px}.story-layout,.pronunciation-layout{grid-template-columns:1fr;gap:15px}.story-art{min-height:215px}.story-art svg{max-height:230px}.story-reading{padding:0 3px}.story-word{font-size:1.9rem}.story-text{font-size:.96rem;margin-bottom:14px}.story-controls{gap:7px}.primary-button,.soft-button,.sound-button{min-height:43px;padding:9px 12px;font-size:.84rem}.pronunciation-layout{gap:14px}.mouth-stage{order:-1;padding:12px}.mouth-svg{max-width:300px}.mouth-caption{font-size:.74rem}.letter-button{width:40px;height:40px}.consonant-picker .letter-button{width:36px;height:36px}.lesson-board{border-width:5px}.lesson-svg{min-height:0}.lesson-side{display:flex;gap:12px}.lesson-controls{width:100%}.page-footer{font-size:.69rem;padding-top:19px}}
@media(max-width:620px){.word-lessons-heading{align-items:start;flex-wrap:wrap}.vocab-card{padding:17px}.song-verse{padding:14px}.song-verse p{font-size:1.1rem}}
@media(max-width:370px){.room-card{grid-template-columns:44px 1fr 12px;padding:10px 9px}.room-icon{width:43px;height:43px}.room-label{font-size:1.06rem}.heading-aside{display:none}.story-controls{display:grid;grid-template-columns:1fr 1fr;width:100%}.story-controls .primary-button{grid-column:2;grid-row:1}.story-controls .sound-button{grid-column:1;grid-row:2}.story-controls .soft-button{grid-column:1;grid-row:1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(prefers-reduced-motion:reduce){
  .lesson-svg.is-playing .draw-path{opacity:1;stroke-dashoffset:0;animation:none!important}
  .lesson-svg.is-playing .draw-text,.lesson-svg.is-playing .lesson-board-emoji,.lesson-svg.is-playing .lesson-sticker{opacity:1;animation:none!important}
  .lesson-svg.is-playing .marker-cursor{opacity:0!important}
}