:root{--ink:#294e43;--muted:#737d70;--green:#34765f;--green-dark:#275d4b;--cream:#fbf8ef;--line:#e7e8dc;--gold:#e7ad53;--shadow:0 8px 24px #34523b08;font-family:ui-rounded,'Arial Rounded MT Bold','Trebuchet MS',Arial,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,input:focus-visible{outline:3px solid #ad7031;outline-offset:5px}button{transition:transform .18s,background .18s,box-shadow .18s}button:active:not(:disabled){transform:scale(.97)}button[hidden],[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.035em}p{line-height:1.65}button{border:0}img{max-width:100%}.app-shell{max-width:1440px;margin:auto;padding:0 56px}.topbar{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;gap:12px;align-items:center;background:none;padding:0;font-size:32px;font-weight:800;letter-spacing:-1.5px;text-align:left}.brand-mark{position:relative;background:var(--green);color:#fff6dd;border-radius:15px 15px 15px 5px;width:47px;height:48px;text-align:center;font-size:39px;line-height:49px}.brand-mark>span{position:absolute;font-size:14px;right:5px;top:-11px;color:#efd191}.brand-sub{display:block;font-size:9px;letter-spacing:2px;margin-top:3px;color:#7f8878}.header-right{display:flex;gap:15px;align-items:center}.star-pill{display:flex;gap:8px;align-items:center;padding:12px 18px;background:#fff2d5;border:1px solid #efdfb6;border-radius:30px;font-size:13px}.star-pill>span:first-child{color:#ce8b2c;font-size:24px}.star-pill b{font-size:19px}.icon-button{height:48px;width:48px;border:1px solid var(--line);border-radius:50%;background:#fffdf7;font-size:25px;flex-shrink:0}.parent-button{min-height:48px;border:1px solid var(--line);background:transparent;border-radius:24px;padding:0 15px;font-size:12px;display:flex;gap:8px;align-items:center;position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.parent-button>span:first-child{font-size:20px}.hold-progress{position:absolute;bottom:0;left:0;width:0;height:4px;background:var(--green)}.holding .hold-progress{width:100%;transition:width 3s linear}.home{padding-top:32px}.welcome-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:bold;color:#818b79}.welcome-row h1{font-size:30px;margin-top:9px}.welcome-row h1 span{font-size:31px;color:#dba550;padding-left:8px}.journey-chip{border:1px dashed #ccd5bc;padding:11px 16px;border-radius:30px;font-size:12px;color:#6c795d}.journey-chip span{margin-right:6px}.hero{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:414px;border-radius:30px;background:#edf2df;overflow:hidden;border:1px solid #e0e7cf}.hero-copy{padding:39px 0 34px 44px;z-index:2}.mini-label{font-size:10px;font-weight:bold;letter-spacing:1.8px;display:flex;align-items:center;gap:8px}.mini-label>span{width:7px;height:7px;background:#81a27c;border-radius:50%}.hero h2{font-size:clamp(36px,3.65vw,52px);line-height:1.13;margin:20px 0 16px;letter-spacing:-1.8px}.hero h2 em{font-style:normal;color:#54866c;position:relative}.hero h2 em:after{content:'';height:5px;background:#e5bd74;position:absolute;bottom:-5px;left:0;width:100%;border-radius:50%;transform:rotate(-3deg)}.hero-copy>p{color:#748067;font-size:15px;margin-bottom:23px}.primary{background:var(--green);color:#fffdf4;border-radius:16px;padding:16px 25px;min-height:54px;font-weight:bold;font-size:16px;box-shadow:0 4px 0 #245540;display:inline-flex;align-items:center;justify-content:center;gap:24px}.primary.big{min-height:60px;min-width:233px;font-size:17px}.primary>span{font-size:24px}.primary:hover{background:var(--green-dark)}.continue-note{font-size:11px;color:#718169;margin-top:18px}.continue-note span{margin-right:5px}.hero-art{position:relative;align-self:stretch}.hero-art>.hasya{width:269px;height:322px;position:absolute;bottom:11px;left:50%;transform:translateX(-47%);z-index:4;filter:drop-shadow(0 9px 3px #52735009)}.sun{position:absolute;right:66px;top:33px;width:69px;height:69px;background:#f3d78b;border-radius:50%;box-shadow:0 0 0 13px #f3d78b22}.cloud{position:absolute;background:#fffdf5;border-radius:60px;width:78px;height:23px;opacity:.85}.cloud:before,.cloud:after{content:'';position:absolute;background:inherit;border-radius:50%;width:35px;height:35px;top:-15px;left:15px}.cloud:after{width:26px;height:26px;left:40px;top:-10px}.cloud-one{top:68px;left:39px;transform:scale(.7)}.cloud-two{top:131px;right:13px;transform:scale(.8)}.hill{position:absolute;border-radius:50% 50% 0 0}.hill-back{height:142px;width:580px;bottom:-42px;right:-158px;background:#cddfb2;transform:rotate(-15deg)}.hill-front{height:108px;width:710px;bottom:-44px;right:-140px;background:#b8d399;transform:rotate(8deg)}.tree{position:absolute;bottom:51px;width:16px;height:103px;background:#a78856;border-radius:9px;z-index:2}.tree i{position:absolute;display:block;border-radius:50%;background:#8fb181;width:63px;height:85px;left:-25px;top:-20px}.tree i:nth-child(2){width:54px;height:67px;left:-41px;top:3px}.tree i:nth-child(3){width:51px;height:64px;left:0;top:2px}.tree-one{right:46px;transform:scale(.8)}.tree-two{left:12px;bottom:30px;transform:scale(.5)}.flower{position:absolute;color:#fff1c6;font-size:32px;z-index:5;text-shadow:1px 2px 0 #e6b65e}.flower-one{right:71px;bottom:31px}.flower-two{left:64px;bottom:23px;font-size:23px}.grass{position:absolute;color:#6d946b;font-size:50px;bottom:12px;z-index:3}.grass-one{right:122px}.grass-two{left:19px}.floating-letter{position:absolute;width:49px;height:52px;display:grid;place-items:center;border-radius:12px;font-size:35px;font-weight:bold;z-index:3;box-shadow:0 5px 0 #4e644110;animation:float 5s ease-in-out infinite}.letter-a{left:48px;top:139px;background:#f4cf86;color:#976f3b;transform:rotate(-13deg)}.letter-b{right:53px;top:197px;background:#d3dfc2;color:#59815d;transform:rotate(13deg);animation-delay:-2s}.letter-c{left:67px;bottom:93px;background:#f2d3bf;color:#b68060;font-size:29px;width:40px;height:43px;transform:rotate(9deg);animation-delay:-3s}.hello-bubble{position:absolute;top:40px;left:100px;background:#fffdf5;border:1px solid #e2e9d3;border-radius:15px;padding:13px 16px;font-size:11px;font-weight:bold;z-index:5;transform:rotate(-4deg);box-shadow:0 4px 0 #7b97660a}.hello-bubble:after{content:'';position:absolute;bottom:-8px;left:45px;border:9px solid transparent;border-bottom:0;border-top-color:#fffdf5}.hello-bubble span{color:#d4a155}.book-art{position:absolute;bottom:25px;right:153px;font-size:36px;z-index:6;transform:rotate(12deg)}.daily-card{display:flex;align-items:center;gap:20px;border:1px solid #e7e4d5;background:#fffdf7;border-radius:21px;padding:23px 26px;margin-top:23px;box-shadow:var(--shadow)}.daily-symbol{height:62px;width:62px;flex-shrink:0;border-radius:18px;background:#fff0cb;display:grid;place-items:center;font-size:37px;color:#cf9b3c}.daily-copy{flex:1}.daily-copy .eyebrow{font-size:9px;color:#ad874a;letter-spacing:1.6px}.daily-copy h3{font-size:18px;margin:6px 0 3px}.daily-copy p{font-size:11px;color:#898b7d}.daily-dots{display:flex;gap:6px}.daily-dots span{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;border:1px dashed #d8d9c8;font-size:14px;color:#8b987c}.daily-dots span:first-child{background:#eef2e0;border-style:solid}.secondary{background:#f3f3e7;border:1px solid #e2e5d3;border-radius:13px;padding:13px 21px;min-height:48px;font-size:13px;font-weight:bold;display:inline-flex;align-items:center;justify-content:center;gap:18px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.section-heading h2{font-size:26px;margin-top:7px}.section-heading h1{font-size:34px;margin:10px 0}.section-heading p{font-size:15px;color:var(--muted)}.world-section{margin-top:36px}.text-button{background:none;font-size:12px;padding:14px 4px;min-height:48px;color:var(--green)}.text-button span{margin-left:8px}.world-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.world-card{position:relative;padding:20px;text-align:left;border-radius:22px;border:1px solid #dbdfcf;min-height:218px;overflow:hidden;background:#fafbf2;box-shadow:var(--shadow)}.world-number{font-size:9px;letter-spacing:1.5px;color:#7f8770;font-weight:bold}.world-status{position:absolute;top:15px;right:16px;background:#ffffff90;width:26px;height:26px;border-radius:50%;display:grid;place-items:center}.world-icon{display:block;font-size:47px;margin:15px 0 13px;filter:drop-shadow(0 5px 0 #78734d0c)}.world-card h3{font-size:18px}.world-card p{font-size:11px;color:#7c8274;margin:5px 0 13px}.card-bottom{border-top:1px solid #74804e16;padding-top:10px;display:flex;justify-content:space-between;font-size:10px;font-weight:bold;color:#788267}.peach{background:#faf0e5}.mint{background:#ecf2e6}.lavender{background:#efedf5}.yellow{background:#f8f2dd}.locked .world-icon{filter:saturate(.6)}footer{display:flex;justify-content:space-between;padding:29px 0 24px;margin-top:12px;font-size:10px;color:#99a08e}footer span span{color:#b9a369;margin-left:5px}.page,.parent-page{padding-top:25px}.back{background:none;font-size:14px;min-height:48px;padding:8px 0;text-align:left}.hasya.small{height:125px;width:110px;object-fit:contain}.full{grid-template-columns:repeat(4,minmax(0,1fr))}.trail{background:#fffdf6;border:1px solid var(--line);padding:25px;margin-top:25px;border-radius:24px}.trail h2{font-size:21px;margin-bottom:20px}.level-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:12px}.level-dot{border-radius:50%;aspect-ratio:1;min-height:48px;background:#e8efdc;font-weight:bold;font-size:17px}.level-dot:disabled{background:#f1f0e9;color:#969a8f}.level-dot.completed{background:#f5deb0;color:#966928}.game-page{max-width:1040px;margin:auto;padding:22px 0}.game-top{display:flex;align-items:center;justify-content:space-between;font-size:14px;gap:15px}.game-top>span:last-child{color:#829078;font-size:13px}.session-progress{height:7px;background:#e7ebda;border-radius:20px;margin:8px 0 20px;overflow:hidden}.session-progress i{display:block;height:100%;background:#e5b76c;transition:width .3s;border-radius:inherit}.guide{display:flex;gap:18px;align-items:center;margin-bottom:10px}.guide-hasya{width:95px;height:113px;object-fit:contain;flex-shrink:0}.guide>div{flex:1}.guide h1{font-size:27px;margin:7px 0}.guide p{font-size:13px;color:#7b8574}.guide .eyebrow{font-size:9px}.play-panel{border-radius:28px;min-height:350px;padding:28px;position:relative;border:1px solid #dde4d0;overflow:hidden}.choices{display:flex;gap:22px;justify-content:center;margin:25px auto;flex-wrap:wrap}.choice{min-width:148px;min-height:125px;padding:20px 27px;border-radius:21px;background:#fffcf4;border:2px solid #e6e2d2;box-shadow:0 5px 0 #c9cbb855;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;font-size:22px;font-weight:bold}.choice-icon{font-size:56px;line-height:1.15}.choice:disabled{opacity:.7}.letter-choices .choice{font-size:44px;min-width:132px;min-height:100px}.game-actions{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:60px;margin-top:15px}.help-button{padding:13px 18px;min-height:48px;background:#fffdf4a6;border-radius:14px;font-size:14px;display:flex;gap:10px;align-items:center}.help-button span{font-size:23px;color:#b28b3c}.feedback{min-height:35px;text-align:center;font-size:20px;font-weight:bold}.feedback small{display:block;font-size:13px;margin-top:6px}.feedback.success>span{color:#c98f29;font-size:28px}.feedback.gentle{color:#7c6d49}.audio-note{font-size:10px;color:#919781;text-align:center;margin:15px 0}.letter-intro{display:flex;justify-content:center;align-items:center;gap:42px}.letter-pair{font-size:90px;font-weight:bold;line-height:1;color:#34765f;letter-spacing:-4px}.letter-pair>span{font-size:67px;color:#6d967e;margin-left:12px}.example-icon{font-size:40px}.letter-intro p{font-size:14px}.sound-label{color:#7c846d}.sound-label small{display:block;font-size:11px;max-width:260px}.sound-cloud{display:flex;justify-content:center;gap:30px;font-size:32px;align-items:center;color:#c6924c}.sound-cloud span{font-size:59px;color:var(--ink);font-weight:bold}.matching{display:flex;gap:30px;justify-content:center;align-items:center;margin:30px auto}.drag-letter{background:#d3ddbf;border:2px solid #aebb9d;box-shadow:0 6px 0 #a7b790;border-radius:24px;font-size:75px;font-weight:bold;width:150px;height:155px;touch-action:none;position:relative;z-index:3}.drag-letter.selected{outline:4px solid #b98538;outline-offset:4px}.match-arrow{font-size:35px;color:#a39c86}.match-targets{margin:0;flex-wrap:nowrap;gap:15px}.match-targets .choice{font-size:60px;min-width:105px;min-height:135px}.drop-target{border-style:dashed}.play-tip{text-align:center;color:#7c816d;font-size:14px;margin:14px 0}.train-scene{position:relative;padding-top:25px;max-width:750px;margin:0 auto}.train-cloud{position:absolute;left:70px;top:-17px;font-size:60px;color:white;opacity:.7}.train{display:flex;justify-content:center;align-items:flex-end;gap:18px;position:relative;transition:transform 1.2s}.engine{font-size:103px;line-height:1.25;transform:scaleX(-1)}.wagon{width:132px;height:105px;border:3px dashed #b3b896;border-radius:15px 15px 9px 9px;background:#fffdf2;font-size:40px;display:grid;place-items:center;position:relative;color:#b8b6a0;font-weight:bold;margin-bottom:16px;flex-shrink:0}.wagon:before,.wagon:after{content:'';width:22px;height:22px;background:#6c7861;border:5px solid #fff7df;border-radius:50%;position:absolute;bottom:-18px;left:13px;box-shadow:0 0 0 2px #6c7861}.wagon:after{left:auto;right:13px}.wagon.filled{background:#ead3a3;border-style:solid;border-color:#d2b981;color:#466248}.rail{height:8px;margin:7px auto 0;border-top:3px solid #9b9e83;border-bottom:3px solid #9b9e83;background:repeating-linear-gradient(90deg,transparent 0 15px,#9b9e83 15px 19px);width:100%}.token-row{display:flex;justify-content:center;gap:17px;margin:25px 0 5px}.token{background:#fffcf4;border:2px solid #e1dbc7;border-radius:15px;min-width:95px;min-height:73px;font-size:28px;font-weight:bold;box-shadow:0 5px 0 #c4b99255;touch-action:none;position:relative;z-index:5}.token:disabled{opacity:.3}.dragging{z-index:20!important;box-shadow:0 12px 28px #324d4733}.play-panel>.text-button,#question-content>.text-button{display:block;margin:auto}.blend-result{text-align:center;font-size:30px;min-height:0}.depart{animation:train-run 1.4s ease-in-out}.reading-word{display:flex;justify-content:center;gap:8px;font-size:65px;letter-spacing:2px;font-weight:bold;padding:20px 0}.reading-word>span{border-radius:14px;padding:8px}.syllable-divider{color:#b5b998;font-size:40px;align-self:center}.highlight{background:#f0d182}.picture-only{min-height:135px}.story-card{background:#fffdf2;border-radius:20px;max-width:700px;margin:0 auto;padding:20px;text-align:center;border:1px solid #e3dcc7}.story-art{font-size:52px;display:block;margin-bottom:12px}.story-card p{font-size:30px;font-weight:bold}.clap-word{text-align:center;display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}.clap-word>span{font-size:45px}.clap-word>b{font-size:28px}#clap-dots{font-size:25px}.completion{text-align:center;padding:42px 0;max-width:700px;margin:auto}.completion>.hasya{display:block;height:225px;width:200px;margin:12px auto 0}.completion h1{font-size:35px;margin:14px 0}.completion p{color:var(--muted)}.reward-stars{color:#d5a447;font-size:40px;letter-spacing:10px}.reward-badge{display:inline-flex;gap:22px;padding:17px;background:#f6e8c7;border-radius:15px;margin:25px 0;font-size:14px}.completion-actions{display:flex;justify-content:center;gap:15px}.confetti{position:absolute;pointer-events:none;top:45%;font-size:24px;animation:celebrate 1.4s forwards}.parent-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:25px}.parent-stats article{background:#fffdf8;border:1px solid var(--line);padding:24px;border-radius:20px}.parent-stats article>span{font-size:13px;color:var(--muted)}.parent-stats b{display:block;font-size:38px;margin-top:10px}.parent-stats small{font-size:17px;color:#899276}.parent-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.parent-card{border:1px solid var(--line);border-radius:24px;padding:26px;background:#fffdf8;margin-bottom:22px}.parent-card h2{font-size:23px;margin-bottom:20px}.parent-card h3{margin:24px 0 13px;font-size:17px}.parent-card p{font-size:14px;margin:13px 0}.mastery-legend{font-size:11px;line-height:1.7;color:#6d786c;margin-bottom:16px}.letter-mastery{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.letter-mastery>span{padding:13px 3px;background:#eeeee6;border-radius:12px;display:grid;text-align:center;gap:5px;font-weight:bold}.letter-mastery small{font-size:10px;font-weight:normal}.letter-mastery .mastery-1{background:#f5e8cf}.letter-mastery .mastery-2,.letter-mastery .mastery-3,.letter-mastery .mastery-4{background:#dbe8d3}.letter-mastery .mastery-5{background:#397660;color:white}.skill-bar{display:block;font-size:13px;margin:17px 0}.skill-bar>span{float:right}progress{display:block;width:100%;height:9px;margin-top:9px;border:0;border-radius:10px;overflow:hidden;background:#eaecde}progress::-webkit-progress-bar{background:#eaecde}progress::-webkit-progress-value{background:#82a887;border-radius:10px}progress::-moz-progress-bar{background:#82a887}.parent-card>small{font-size:11px;line-height:1.6;color:#7e8676}.recommendation{background:#edf2e3;border-radius:15px;padding:18px;font-size:14px;line-height:1.7}.parent-card form>label{display:block;font-size:13px;margin:18px 0}.parent-card input[type=text],.parent-card input:not([type]){width:100%;display:block;margin-top:9px;padding:13px;border:1px solid #cdd6c5;border-radius:10px;background:#fffefa;min-height:48px;color:var(--ink)}input[type=range]{width:100%;display:block;min-height:44px;accent-color:var(--green)}.parent-card form>.toggle-row{display:flex;align-items:center;justify-content:space-between;min-height:48px}.toggle-row input{width:25px;height:25px;accent-color:var(--green)}.data-actions{display:flex;gap:20px;align-items:center}.danger{color:#9a5137}.small-note{font-size:11px!important;color:#7e8475}.modal-backdrop{position:fixed;inset:0;background:#304b4070;backdrop-filter:blur(5px);z-index:100;display:grid;place-items:center;padding:22px;overflow:auto}.modal{background:#fffcf2;border-radius:30px;box-shadow:0 25px 100px #273b4322;text-align:center;max-width:470px;width:100%;padding:30px;max-height:calc(100dvh - 44px);overflow-y:auto}.modal>.hasya{display:block;height:190px;width:160px;margin:0 auto 10px}.modal h2{font-size:28px;margin:15px 0}.modal p{font-size:15px;color:#78816e;margin:15px 0 24px}.modal>.primary,.modal>.secondary{width:100%;margin-bottom:12px}.modal>.eyebrow{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loading{padding:60px;text-align:center}.storage-warning{position:fixed;bottom:12px;left:5%;right:5%;padding:15px;border-radius:12px;background:#fff0cc;color:#6c572d;z-index:150;font-size:13px;box-shadow:0 4px 20px #0002}@keyframes float{50%{translate:0 -7px}}@keyframes train-run{40%{transform:translateX(30px)}80%{transform:translateX(110%);opacity:0}81%{transform:translateX(-110%)}100%{transform:translateX(0);opacity:1}}@keyframes celebrate{0%{transform:translateY(0) scale(.3);opacity:0}30%{opacity:1}100%{transform:translateY(-180px) rotate(80deg);opacity:0}}

.back,.text-button{min-width:48px}.object-image{width:70px;height:60px;object-fit:contain;vertical-align:middle}

/* Locally illustrated vocabulary and story scenes, release 2. */
.choice-icon{max-width:100%}
.choice-icon .object-image{width:104px;height:94px;max-width:100%}
.word-clue{display:flex;justify-content:center;margin:-8px auto 0}
.word-clue .object-image{width:94px;height:76px}
.word-clue+.train-scene{padding-top:10px}
.word-clue+.train-scene .train-cloud{display:none}
.blend-result .object-image{width:100px;height:85px}
.story-scene{display:block;width:100%;height:auto;max-height:225px;object-fit:contain;border-radius:16px;margin:0 auto 14px}
.story-card:has(.story-scene){padding:12px 16px 18px}
@media(max-width:560px){.choice-icon .object-image{width:82px;height:78px}.story-scene{max-height:160px}.word-clue .object-image{width:80px;height:67px}.word-clue+.train-scene{padding-top:12px}}
@media(max-height:760px) and (min-width:900px){.story-scene{max-height:164px}.word-clue .object-image{height:62px}.choice-icon .object-image{height:78px}}
