@font-face{font-family:"Fredoka";src:url(assets/fonts/fredoka-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:"Fredoka";src:url(assets/fonts/fredoka-500.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:"Fredoka";src:url(assets/fonts/fredoka-600.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:"DM Sans";src:url(assets/fonts/dm-sans-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:"DM Sans";src:url(assets/fonts/dm-sans-500.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:"DM Sans";src:url(assets/fonts/dm-sans-600.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:"DM Sans";src:url(assets/fonts/dm-sans-700.woff2) format("woff2");font-weight:700;font-display:swap}
:root{--ink:#314d40;--green:#4b7954;--paper:#f8f6ef}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #d88c34;outline-offset:5px}header{max-width:1180px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:28px 40px}.brand{text-decoration:none;color:var(--ink);font:500 25px 'Fredoka',sans-serif;display:flex;align-items:center;gap:10px}.brand-icon{color:#d99554;font-size:35px}.for{font:11px 'DM Sans',sans-serif;letter-spacing:1px;text-transform:uppercase;margin-left:17px;padding-left:20px;border-left:1px solid #dedfd4;color:#7d8776}.tools{display:flex;gap:10px}.tools button{background:#fffdf8;border:1px solid #e3e5d9;border-radius:30px;padding:10px 17px;color:#61725f;font-size:13px}main{max-width:960px;margin:26px auto 0;padding:0 32px}.eyebrow{text-align:center;font-size:10px;letter-spacing:2.4px;color:#7a8b6e;font-weight:700}.eyebrow span{display:inline-block;width:7px;height:7px;background:#8faa75;border-radius:50%;margin-right:8px}h1{font:500 clamp(34px,5vw,53px) 'Fredoka',sans-serif;text-align:center;margin:12px 0 8px;letter-spacing:-1px}h1>span{color:#da9d51}.intro{text-align:center;font-size:15px;color:#809080;margin:0 0 32px}.garden{position:relative;overflow:hidden;background:#eaf0df;border:1px solid #dfe6d4;border-radius:28px;min-height:306px;padding:25px 70px 28px}.garden-copy{position:relative;text-align:center;z-index:2}.picture{font-size:45px;display:block;height:59px}.garden-copy p{font-size:14px;font-weight:500;margin:5px 0 19px;color:#738566}.word-line{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;gap:8px;min-height:80px;background:#ffffff9c;border:2px dashed #bdcba8;border-radius:17px;padding:10px;transition:.2s}.word-line.over{background:#fff8cd;border-color:#c4aa58;transform:scale(1.02)}.empty{color:#8e9d80;font-family:'Fredoka',sans-serif;font-size:20px}.placed{width:54px;height:58px;border:0;border-radius:10px;background:#fffaf1;box-shadow:0 4px 0 #e2d8bf;color:var(--ink);font:500 38px 'Fredoka',sans-serif;animation:pop .2s}.word-actions{position:relative;z-index:2;display:flex;justify-content:center;gap:24px;margin-top:19px}.word-actions button{background:none;border:0;font-size:13px;color:#58754c;padding:7px;min-height:36px}.word-actions button:disabled{opacity:.38;cursor:default}.ground{position:absolute;left:-5%;bottom:-58px;width:110%;height:98px;background:#dce7c8;border-radius:50% 50% 0 0}.flower{position:absolute;left:24px;bottom:33px;font-size:51px;transform:rotate(-9deg)}.sprout{position:absolute;right:22px;bottom:26px;font-size:54px}.bee{position:absolute;right:50px;top:38px;font-size:29px;transform:rotate(-18deg)}.cloud{position:absolute;width:85px;height:22px;background:#ffffff7d;border-radius:30px;top:52px;left:30px}.cloud:before{content:'';position:absolute;width:35px;height:35px;background:inherit;border-radius:50%;left:20px;bottom:0}.cloud-two{left:auto;right:87px;top:100px;transform:scale(.6)}.spark{position:absolute;color:#b1bf8e;font-size:22px}.spark-one{left:150px;top:45px}.spark-two{right:175px;top:40px}.letters-section{margin-top:30px}.letters-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}h2{font:500 20px 'Fredoka',sans-serif;margin:0}.legend{font-size:11px;color:#85917d;display:flex;align-items:center;gap:7px}.legend i{width:9px;height:9px;background:#9fbd7d;border-radius:50%;box-shadow:0 0 0 3px #e7ecd9}.letters{display:grid;grid-template-columns:repeat(13,1fr);gap:10px}.letter{height:65px;border:1px solid #e6deca;border-radius:13px;background:#f3e8d3;color:#766750;font:500 34px 'Fredoka',sans-serif;box-shadow:0 4px 0 #ded3bb;touch-action:none;user-select:none;transition:opacity .2s,transform .2s,background .2s}.letter:nth-child(4n+2){background:#e9e9f2;border-color:#dbdcea;box-shadow:0 4px 0 #d5d5e3;color:#77768e}.letter:nth-child(4n+3){background:#f3dfd6;border-color:#e9d1c6;box-shadow:0 4px 0 #e4cbbb;color:#ac7964}.letter:nth-child(4n){background:#e0e9e7;border-color:#cfdfd9;box-shadow:0 4px 0 #cbdcd6;color:#61887f}.letter.glow{background:#e0ebc8;border:2px solid #94b66c;box-shadow:0 4px 0 #aac488,0 0 0 3px #e8efd9;color:#486b34}.letter.dim{opacity:.43}.letter:hover{transform:translateY(-3px)}.letter:active{transform:translateY(2px)}.hint{text-align:center;font-size:12px;color:#8a9482;margin-top:20px}.collection{margin:31px 0 0;border-top:1px solid #e5e6da;padding-top:22px;display:flex;flex-direction:column;gap:15px}.collection>div:first-child{display:flex;align-items:center;gap:10px}.collection-icon{font-size:24px;color:#cfa66b}.collection h2{font-size:17px}.collection h2 span{font-family:'DM Sans';font-size:11px;display:inline-grid;place-items:center;background:#e7ecdd;border-radius:50%;width:23px;height:23px;margin-left:8px}#collected{display:flex;gap:8px;flex-wrap:wrap}.collection-empty{font-size:12px;color:#9aa28e}.word-chip{border:1px solid #e2e5d7;background:#fffdf7;padding:8px 13px;border-radius:20px;color:#5d7154;font-size:13px}footer{text-align:center;font-size:10px;color:#a1a893;padding:31px 0 22px;letter-spacing:.3px}footer span{padding:0 12px;color:#c5b281}.drag-ghost{position:fixed;pointer-events:none;z-index:1000;width:58px;height:65px;border-radius:13px;background:#e0ebc8;border:2px solid #94b66c;color:#486b34;display:grid;place-items:center;font:500 36px 'Fredoka';box-shadow:0 8px 20px #314d4026}.confetti-piece{position:fixed;top:35%;left:50%;font-size:23px;pointer-events:none;z-index:100;animation:scatter 1.3s ease-out forwards}@keyframes pop{from{transform:scale(.65)}to{transform:scale(1)}}@keyframes scatter{to{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:0}}@media(max-width:700px){header{padding:18px 20px}.for{display:none}.brand{font-size:22px}.tools button{padding:9px 12px}.tools #sound span{display:none}main{padding:0 18px;margin-top:20px}.intro{font-size:13px;margin-bottom:23px}.garden{padding:22px 20px;min-height:280px}.flower{left:1px;bottom:9px;font-size:33px}.sprout{right:0;bottom:6px;font-size:36px}.bee{right:16px;top:25px}.cloud-one{left:10px;transform:scale(.65)}.spark{display:none}.word-line{gap:5px;min-height:75px}.placed{width:clamp(27px,7vw,48px);height:49px;font-size:30px}.letters{grid-template-columns:repeat(7,1fr);gap:10px}.letter{height:57px;font-size:31px}.letters-heading{align-items:flex-start;gap:10px}.letters-heading h2{font-size:18px}.legend{max-width:145px;font-size:10px}.legend i{flex-shrink:0}.word-actions{gap:12px}.word-actions button{font-size:12px}.garden-copy p{font-size:12px}.collection{margin-top:24px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Simple picture controls and generous touch targets for Arthur. */
.parent-settings{position:relative}.parent-settings summary{list-style:none;cursor:pointer;width:48px;height:48px;display:grid;place-items:center;border:1px solid #dedfd4;border-radius:50%;font-size:23px;background:#fffdf8}.parent-settings summary::-webkit-details-marker{display:none}.parent-settings .tools{position:absolute;right:0;top:56px;z-index:20;background:#fffdf8;border:1px solid #dedfd4;border-radius:16px;padding:12px;box-shadow:0 10px 30px #314d401a;white-space:nowrap}.parent-settings .tools button{min-height:48px}.word-actions{gap:16px;margin-top:12px}.word-actions button{min-width:86px;min-height:70px;background:#fffdf1;border:1px solid #d1ddbc;border-radius:17px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;box-shadow:0 3px 0 #cedabb;color:#42653d;padding:7px 13px}.word-actions button b{font-size:27px;line-height:1.1;font-weight:500}.word-actions button:disabled{opacity:.46}.placed{pointer-events:none}.picture{position:relative;display:block;margin:auto;width:100%;height:140px;background:none;border:0;overflow:hidden;border-radius:14px;touch-action:manipulation}.picture .emoji{display:grid;place-items:center;height:100%;font-size:68px}.picture .actor{position:absolute;width:430px;height:auto;max-width:none;left:calc(50% - 215px);top:-70px;pointer-events:none}.picture.bus-scene .actor{animation:bus-arrives 1.6s ease-out both;top:-82px}.garden{padding-top:12px;min-height:340px}.garden-copy p{margin:0 0 12px}.word-line{min-height:86px}.letter.dim{opacity:.6}.word-chip{min-height:48px;padding:10px 15px}.letter{touch-action:none}.word-actions button,.picture,.word-chip{touch-action:manipulation}h1{margin-top:0}@keyframes bus-arrives{from{transform:translateX(280px)}to{transform:translateX(0)}}
@media(max-width:700px){header{padding:10px 18px}.brand{font-size:21px}.brand-icon{font-size:30px}.for{display:none}main{margin-top:4px;padding:0 14px}h1{font-size:31px;margin:0 0 4px}.intro{font-size:12px;margin:0 0 12px}.garden{min-height:0;padding:5px 14px 14px;border-radius:22px}.picture{height:100px}.picture .emoji{font-size:58px}.picture .actor{width:330px;left:calc(50% - 165px);top:-61px}.picture.bus-scene .actor{top:-68px}.garden-copy p{font-size:12px;margin-bottom:8px}.bee{top:14px;right:11px;font-size:22px}.cloud{top:28px}.cloud-two{display:none}.word-line{min-height:70px;padding:8px}.word-actions{margin-top:9px;gap:12px}.word-actions button{min-width:74px;min-height:61px;font-size:11px;border-radius:14px}.word-actions button b{font-size:25px}.letters-section{margin-top:15px}.letters-heading{margin-bottom:10px}.letters{grid-template-columns:repeat(6,1fr);gap:9px}.letter{height:52px;min-width:44px;font-size:32px;border-radius:12px}.legend{max-width:150px}.hint{margin:13px 0 0;font-size:11px}.collection{margin-top:16px;padding-top:14px}.collection-empty{font-size:11px}footer{padding:20px 0 12px}.flower{font-size:24px;bottom:4px}.sprout{font-size:26px;bottom:2px}.parent-settings .tools #sound span{display:inline}}
@media(max-width:359px){.letters{gap:7px}.letter{min-width:40px}.word-actions{gap:8px}}
.picture.dog-scene .actor{top:-58px}
@media(max-width:700px){.picture{height:112px}.picture.dog-scene .actor{top:-45px}}
/* The downloaded Moho ink and watercolour stamps texture the letter shapes. */
.letter,.placed{--letter-ink:#526c45;position:relative}
.letter:nth-child(4n+2){--letter-ink:#5a537c}.letter:nth-child(4n+3){--letter-ink:#975d47}.letter:nth-child(4n){--letter-ink:#3f7768}.letter.glow{--letter-ink:#345926}
.glyph{position:relative;display:inline-block;color:var(--letter-ink);background-color:var(--letter-ink);background-image:linear-gradient(135deg,transparent 12%,#fff9 35%,transparent 53%,#fff6 74%,transparent 90%);background-size:200% 200%;background-position:center;background-blend-mode:multiply;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.letter:nth-child(even) .glyph{background-image:repeating-linear-gradient(165deg,transparent 0 4px,#ffffff50 5px 7px,transparent 8px 11px);background-size:140% 140%}
.picture .actor.rendered-actor{width:360px;left:calc(50% - 180px);top:-66px;animation:none}
@media(max-width:700px){.picture .actor.rendered-actor{width:330px;left:calc(50% - 165px);top:-71px}}
/* Keep a solid letter beneath the brush texture so every glyph stays readable. */
.glyph{background:none!important;color:var(--letter-ink);-webkit-text-fill-color:var(--letter-ink)}
.glyph::after{content:attr(data-glyph);position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(135deg,transparent 12%,#fff9 35%,transparent 53%,#fff6 74%,transparent 90%);background-size:200% 200%;background-position:center;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;opacity:.27}
.letter:nth-child(even) .glyph::after{background-image:repeating-linear-gradient(165deg,transparent 0 4px,#ffffff50 5px 7px,transparent 8px 11px);background-size:140% 140%}
.letter.dim{opacity:.72}
[hidden]{display:none!important}.mode-tabs{display:flex;gap:10px;justify-content:center;margin:0 0 18px}.mode-tabs button{border:1px solid #dce2ce;background:#fffdf8;border-radius:20px;min-height:50px;padding:10px 22px;color:#66725d;font-size:15px}.mode-tabs button[aria-pressed=true]{background:#e2edcc;border:2px solid #92b271;color:#375a2c;font-weight:700}.word-alphabet{display:grid;grid-template-columns:repeat(13,1fr);gap:9px;margin:15px 0 23px}.initial{min-height:52px;min-width:44px;border:1px solid #d8dfc9;border-radius:13px;background:#fffdf4;color:#567342;font:500 26px 'Fredoka'}.initial[aria-pressed=true]{background:#dcebbf;border:2px solid #8cab63;box-shadow:0 3px 0 #b2c895}.choices-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.choices-heading button,#choose-again{min-height:48px;border:1px solid #dce2ce;background:#fffdf8;border-radius:14px;color:#526d40;padding:10px 15px}.word-options{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.word-option{min-height:150px;border:1px solid #d8dfc9;border-radius:20px;background:#fffdf5;color:#476239;font:500 25px 'Fredoka';padding:10px;box-shadow:0 4px 0 #e1e5d3}.option-picture{display:grid;place-items:center;font-size:52px;height:95px;overflow:hidden}.option-picture img{width:175px;max-width:none}#target-banner{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font:500 22px 'Fredoka'}#target-banner button{font:13px 'DM Sans'}.ghost-slot{display:grid;place-items:center;width:54px;height:58px;color:#87956a80;border-bottom:3px solid #c4d1b0;border-radius:10px;font:500 36px 'Fredoka'}
@media(max-width:700px){.mode-tabs{margin-bottom:12px;gap:8px}.mode-tabs button{min-height:48px;padding:8px 20px;font-size:14px}.word-alphabet{grid-template-columns:repeat(6,1fr);gap:9px;margin-bottom:20px}.initial{min-height:48px}.word-options{grid-template-columns:repeat(2,1fr);gap:12px}.word-option{min-height:125px;font-size:23px}.option-picture{height:78px;font-size:46px}.ghost-slot{width:clamp(27px,7vw,48px);height:49px;font-size:30px}#target-banner{font-size:19px}}
@media(max-width:700px){.letter{height:48px}.picture{height:100px}.target-active main>h1,.target-active main>.intro{display:none}}
.picture.character-scene .actor.rendered-actor{height:100%;width:auto;left:50%;top:0;transform:translateX(-50%)}
/* Gentle garden movement and clear feedback, animated through transforms only. */
.bee{animation:bee-float 5s ease-in-out infinite}.flower,.sprout{transform-origin:bottom center;animation:garden-sway 4.5s ease-in-out infinite}.sprout{animation-delay:-2s}.cloud-one{animation:cloud-drift 16s ease-in-out infinite}.cloud-two{animation:cloud-drift 20s ease-in-out infinite reverse}
.picture .emoji{animation:picture-float 4s ease-in-out infinite}.picture.letter-cheer{animation:letter-cheer .45s ease-out}.word-complete .picture{animation:happy-picture .7s ease-in-out 2}.letter.glow .glyph{animation:hint-lift 2.5s ease-in-out infinite}.needs-back #undo{border:2px solid #b16b36;background:#fff0cf}.needs-back #undo b{animation:hint-lift 1.8s ease-in-out infinite}.needs-back .wrong-letter{background:#ffe3d6;outline:2px solid #c17656}.needs-back .letter{opacity:.5}.needs-back .hint{color:#8a482f;font-weight:700}
.word-option{transition:transform .15s}.word-option:active{transform:translateY(3px)}.word-option:nth-child(2){animation-delay:.05s}.word-option:nth-child(3){animation-delay:.1s}.word-option:nth-child(4){animation-delay:.15s}.word-option{animation:card-appear .25s ease-out both}.placed{animation:none}.placed.just-added{animation:pop .22s ease-out}.word-line .placed,.word-line .ghost-slot{flex:1 1 0;min-width:0;max-width:54px}.word-line[data-length="8"] .glyph,.word-line[data-length="9"] .glyph,.word-line[data-length="10"] .glyph{font-size:23px}.word-line[data-length="8"] .ghost-slot,.word-line[data-length="9"] .ghost-slot,.word-line[data-length="10"] .ghost-slot{font-size:23px}.word-line{gap:5px}.mode-tabs button{min-width:130px}.word-actions button:active{transform:translateY(2px)}
@keyframes bee-float{0%,100%{transform:translate(0,0) rotate(-12deg)}50%{transform:translate(-12px,7px) rotate(5deg)}}
@keyframes garden-sway{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@keyframes cloud-drift{0%,100%{translate:0 0}50%{translate:18px 0}}
@keyframes picture-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-6px) rotate(2deg)}}
@keyframes letter-cheer{50%{transform:translateY(-5px)}}
@keyframes happy-picture{25%{transform:translateY(-9px) rotate(-3deg)}75%{transform:translateY(-6px) rotate(3deg)}}
@keyframes hint-lift{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes card-appear{from{transform:translateY(7px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(max-width:359px){.initial{min-width:40px}.word-alphabet{gap:7px}.word-line[data-length="10"] .glyph,.word-line[data-length="10"] .ghost-slot{font-size:19px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.picture.milk-scene .actor.rendered-actor{height:100%;width:auto;left:50%;top:0;transform:translateX(-50%)}
/* Grow Word: a small, colourful garden game. */
:root{--ink:#315448;--green:#388452;--paper:#faf6e9}body{background:radial-gradient(ellipse at 10% 0%,#e7f3e4 0,transparent 40%),radial-gradient(ellipse at 90% 15%,#fff0cf 0,transparent 36%),var(--paper)}.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}
header{max-width:1010px;padding:12px 32px 3px}.brand{gap:12px}.brand img{display:block;width:220px;height:74px}.brand .for{font-size:12px;text-transform:none;letter-spacing:0;border:0;padding:0;margin:0;color:#5a8061}main{margin-top:0}.intro{font:400 14px 'Fredoka',sans-serif;color:#58765c;margin-bottom:15px}.parent-settings summary{background:#fffdf5;border:2px solid #e0e8d5;box-shadow:0 3px 0 #d4dfc9}.mode-tabs button{border:2px solid #dbe6d1;box-shadow:0 4px 0 #dce3ce;font:500 16px 'Fredoka',sans-serif;border-radius:18px;background:#fffdf6;color:#586d66}.mode-tabs button[aria-pressed=true]{background:#ddedc5;border-color:#8fb85d;box-shadow:0 4px 0 #a9c881;color:#355d30}.mode-tabs button:active{translate:0 2px}.garden{background:linear-gradient(#edf4dc,#e8f0d4);border:2px solid #d6e3c4;box-shadow:0 5px 0 #dbe4cb}.word-line{background:#fffdf5;border-color:#b3c997}.word-complete .word-line{border-style:solid;border-color:#84ad5b;background:#f5ffe9}.word-complete #message{color:#367642;font-weight:700}.letter{border-width:2px;color:#365548}.letter.dim{opacity:.8}.letter.glow{background:#e2f3b9;border-color:#86b45c;box-shadow:0 4px 0 #9bbd77,0 0 0 3px #eff8db}.word-actions button{border-width:2px;background:#fffef5}.word-actions #hear:not(:disabled){background:#e5f2f7;border-color:#b0d7e0}.word-actions #clear:not(:disabled){background:#fff0cf;border-color:#e5cd98}.legend{color:#697a56}.hint{color:#617859}.initial{border-width:2px;box-shadow:0 3px 0 #e1e7d4}.initial[aria-pressed=true]{background:#dceeb8}.word-option{border:2px solid #dce7c9;box-shadow:0 5px 0 #d4dfc1}.word-option:nth-child(4n+2){background:#fff0df;border-color:#ebd2b2;box-shadow:0 5px 0 #e9d7bf}.word-option:nth-child(4n+3){background:#edf0fc;border-color:#cdd7ed;box-shadow:0 5px 0 #d4dcef}.word-option:nth-child(4n){background:#fcebed;border-color:#efd0d6;box-shadow:0 5px 0 #e8d0d4}
.collection{border:0;padding:20px;background:#f1f0df;border-radius:24px;margin-bottom:30px}.collection h2{font-size:21px}.collection-icon{font-size:30px;color:#df9c37}.collection h2 span{background:#e0ebc7;color:#41633b;font-size:13px;width:28px;height:28px}#collected{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.collection-empty{grid-column:1/-1;text-align:center;padding:12px;font:400 15px 'Fredoka';color:#738063}.word-chip{position:relative;display:flex;align-items:center;gap:10px;padding:12px 15px;min-height:86px;width:100%;min-width:0;border:2px solid #d4e2bb;border-radius:20px;background:#fffef6;box-shadow:0 5px 0 #d5dfc1;transition:transform .12s}.word-chip:nth-child(4n+2){border-color:#d6d5ee;box-shadow:0 5px 0 #dcd7e9}.word-chip:nth-child(4n+3){border-color:#efd1bd;box-shadow:0 5px 0 #e8d5bf}.word-chip:nth-child(4n){border-color:#bcdce2;box-shadow:0 5px 0 #c4dfe0}.word-chip:active{transform:translateY(3px)}.word-chip-picture{font-size:35px;flex-shrink:0}.colour-word{display:flex;justify-content:center;gap:1px;min-width:0;flex:1;font:600 clamp(17px,calc(165px / var(--word-length)),33px) 'Fredoka',sans-serif;line-height:1.25}.word-letter{display:inline-block;color:#aa4258;transform:rotate(-4deg)}.word-letter:nth-child(5n+2){color:#927015;transform:rotate(4deg)}.word-letter:nth-child(5n+3){color:#27799a}.word-letter:nth-child(5n+4){color:#79569b;transform:rotate(3deg)}.word-letter:nth-child(5n){color:#328251}.word-chip-play{position:absolute;right:8px;bottom:5px;color:#809364;font-size:12px}.word-chip:hover .word-letter{animation:word-wiggle .4s ease-in-out}.replay{position:fixed;max-width:420px;width:calc(100% - 32px);max-height:90dvh;overflow:auto;border:3px solid #d0dfa8;border-radius:30px;background:#fffdf1;color:var(--ink);padding:55px 24px 28px;box-shadow:0 15px 0 #2e513218,0 25px 70px #304e3d30}.replay::backdrop{background:#203c3b80}.replay-close{position:absolute;right:12px;top:12px;width:48px;height:48px;border:2px solid #dce7cd;border-radius:50%;background:#fffef8;color:#587752;font-size:22px}.replay-picture{height:160px}.replay #replay-word{margin:10px 0 22px}.replay .colour-word{font-size:clamp(28px,calc(300px / var(--word-length)),55px)}.replay-hear{display:flex;align-items:center;justify-content:center;gap:12px;margin:auto;min-height:58px;padding:10px 22px;border:2px solid #a6cdda;border-radius:18px;background:#e5f3fa;box-shadow:0 4px 0 #c5dce4;color:#326676;font:500 20px 'Fredoka'}.replay-hear span{font-size:27px}.replay[open]{animation:card-appear .2s ease-out}.replay .emoji{font-size:100px}.replay .actor.rendered-actor{width:430px;left:calc(50% - 215px);top:-75px}.replay .character-scene .actor,.replay .milk-scene .actor{height:100%;width:auto;left:50%;top:0;transform:translateX(-50%)}
@keyframes word-wiggle{50%{transform:translateY(-4px) rotate(5deg)}}
@media(max-width:700px){header{padding:8px 14px 0}.brand img{width:190px;height:64px}.brand .for{display:none}.intro{font-size:13px;margin:0 0 10px}.mode-tabs{margin-bottom:13px}.mode-tabs button{font-size:15px;min-height:48px;min-width:132px;padding:8px 12px}.garden{padding:5px 12px 12px}.letters-heading h2{font-size:19px}.letters{gap:9px}.letter{height:48px}.collection{padding:14px;margin-top:20px}.collection h2{font-size:21px}#collected{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.word-chip{gap:6px;padding:12px 8px;min-height:83px;border-radius:17px;flex-direction:column}.word-chip-picture{font-size:31px;line-height:1}.colour-word{font-size:clamp(16px,calc(144px / var(--word-length)),32px)}.word-chip-play{bottom:7px;right:7px}.collection-empty{font-size:14px}.hint{margin-top:12px}.legend{font-size:10px}.parent-settings summary{width:46px;height:46px}}
@media(max-width:359px){.brand img{width:174px;height:58px}.letter{min-width:40px}.mode-tabs button{min-width:125px}.word-chip .colour-word{font-size:clamp(14px,calc(120px / var(--word-length)),28px)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Optional learning play: a small number of big, stable touch controls. */
[hidden]{display:none!important}.mode-tabs{display:flex;gap:9px}.mode-tabs button{flex:1;min-width:0}.play-title{text-align:center;font:500 27px 'Fredoka';margin:14px 0 18px}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0 24px}.game-card{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;min-width:0;min-height:154px;padding:16px 10px;border:2px solid #d5dfbc;border-radius:25px;box-shadow:0 5px 0 #d4dfbd;background:#fffdf2;color:#36564b;font:500 20px 'Fredoka'}.game-card:nth-child(4n+2){background:#fcead9;border-color:#e9ceb0;box-shadow:0 5px 0 #e6d0b4}.game-card:nth-child(4n+3){background:#e9e9fb;border-color:#d6d2ed;box-shadow:0 5px 0 #d3cfe7}.game-card:nth-child(4n){background:#e1f2ef;border-color:#beded6;box-shadow:0 5px 0 #c4dcd2}.game-icon{font:500 55px 'Fredoka';line-height:1.15}.game-card:active,.play-button:active,.picture-choice:active{translate:0 2px}.play-button,.quiet-button,.choice-listen,#custom-form button,#preview-sounds{min-height:48px;min-width:48px;padding:10px 16px;border:2px solid #c6dcb9;border-radius:16px;background:#faffee;color:#365847;font:500 17px 'Fredoka'}.play-button:disabled{opacity:.45}.quiet-button{background:#fffaf0;border-color:#e1dfcd;font-size:15px}.activity-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.activity-bar h2{text-align:right;font-size:23px}.activity-instruction{text-align:center;font:400 18px 'Fredoka';line-height:1.45;margin:16px 0;color:#46694f}#activity{padding:22px;background:#f0f3df;border:2px solid #d7e3c1;border-radius:25px;box-shadow:0 5px 0 #d6dfc8;--blend:0}.choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0}.choice-wrap{min-width:0;display:flex;flex-direction:column;gap:10px;align-items:stretch}.picture-choice{width:100%;min-height:140px;background:#fffcf4;border:3px solid #d7dfc3;border-radius:20px;box-shadow:0 4px 0 #d9dfc8;display:grid;place-items:center;color:#3c6462}.choice-picture{font-size:64px;line-height:1.25}.choice-listen{align-self:center;background:#e8f3f7;border-color:#bcd8e0}.picture-choice.chosen{background:#e3f3bd;border-color:#89b64c}.activity-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.activity-feedback{min-height:45px;text-align:center;font:500 18px 'Fredoka';line-height:1.4;color:#416944}.capital-twin{font:600 104px 'Fredoka';text-align:center;line-height:1.2;color:#986538}.twin-letter{font:500 66px 'Fredoka';color:#6b568d}.sound-reference{display:flex;align-items:center;justify-content:center;gap:14px;margin:auto;border:2px solid #d6dfbb;border-radius:18px;background:#fffdf4;padding:10px 22px;min-height:80px;color:#3e684e;font:500 25px 'Fredoka'}.sound-reference span:first-child{font-size:48px}.chain-picture{display:block;background:none;border:0;margin:auto;font-size:60px;min-height:90px}.chain-tiles{display:flex;gap:12px;justify-content:center;margin:20px 0}.chain-tile{width:72px;min-height:80px;display:grid;place-items:center;border:3px solid #d2dcbd;border-radius:18px;background:#fffdf3;font:500 51px 'Fredoka';color:#437061}.chain-tile.change-slot{border-style:dashed;border-color:#a37ac6;animation:slot-wiggle 1.8s infinite}.chain-tile.wrong-letter{background:#ffe6ce;border-color:#e1b380}#chain-back{display:block;margin:auto}.sound-bubbles{display:flex;justify-content:center;gap:calc(26px - var(--blend) * 21px);margin:25px 0 10px;transition:gap .3s}.sound-bubble{width:78px;height:86px;border-radius:50% 50% 38% 38%;border:3px solid #bad7e1;background:#e6f5fb;color:#356981;font:500 55px 'Fredoka';box-shadow:0 5px 0 #c7e0e6}.sound-bubble:nth-child(2){background:#fff0d7;color:#a17528;border-color:#e9d19f;box-shadow:0 5px 0 #e9d7b7}.sound-bubble.sounding{background:#d9f6ad;border-color:#81b152}.sound-bubble.heard:after{content:'·';position:absolute;margin-top:35px;font-size:22px}.blend-slider{display:block;width:85%;height:56px;margin:8px auto 18px;accent-color:#69a85a;cursor:pointer;touch-action:pan-y}.blend-picture{display:block;min-height:95px;background:#fffdf2;border:2px solid #d7e3bc;border-radius:22px;margin:20px auto 0;padding:12px 25px;color:#4d7047;font:500 37px 'Fredoka'}.help-row{position:relative;z-index:3;display:flex;gap:10px;align-items:center;justify-content:center;margin:8px 0}.help-row:has([hidden]){display:none}#help-word{min-height:46px;min-width:80px;border:2px solid #d6c7ea;background:#f3eafb;color:#6c4c86;border-radius:14px;font:500 17px 'Fredoka'}#hint-level{max-width:220px;font-size:12px;color:#586e56}.word-line.long-word{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));justify-items:center}.word-line.long-word .placed,.word-line.long-word .ghost-slot{width:100%;font-size:27px;height:48px}.word-line.long-word .glyph{font-size:27px}.mission-caption{text-align:center;font:500 18px 'Fredoka';margin:16px 0 12px}#build-extra{text-align:center}#world-panel{border:2px solid #ceddbd;border-radius:23px;overflow:hidden;margin-bottom:15px;background:#f9ffe8}.world-stage{position:relative;height:200px;background:linear-gradient(#dff2f9 0 72%,#b7d69b 72%);overflow:hidden}.world-stage:before{content:'☁';position:absolute;left:8%;top:10px;font-size:60px;color:#fff9}.world-grass{position:absolute;bottom:4px;left:8%;letter-spacing:25px;font-size:22px;white-space:nowrap}.world-dog{position:absolute;left:33%;bottom:16px;width:135px;height:130px;transform:scale(var(--size));transform-origin:bottom center;z-index:2;transition:transform .8s}.world-dog-picture{width:135px;height:130px;position:relative;overflow:hidden}.world-dog img{position:absolute;width:400px;max-width:none;left:-132px;top:-57px}.world-hat{position:absolute;top:2px;left:42px;font-size:43px;transform:rotate(-10deg)}.world-ball{position:absolute;bottom:16px;right:15%;font-size:36px;z-index:3}.world-sun{position:absolute;right:12%;top:10px;font-size:65px;animation:sun-turn 18s linear infinite}.world-seed{position:absolute;left:44%;bottom:17px;font-size:80px;animation:grow-seed .8s ease-out}.world-water{position:absolute;left:65%;bottom:65px;font-size:35px;animation:water-drop 1.5s infinite}.world-robot{position:absolute;bottom:14px;left:12%;height:130px;width:auto}.world-bus{position:absolute;left:40%;bottom:2px;font-size:112px;line-height:1.2}.world-stop{position:absolute;right:8%;bottom:25px;font-size:48px}.world-home{position:absolute;right:5%;bottom:22px;font-size:100px}#world-story{text-align:center;font:500 17px 'Fredoka';margin:10px 12px;min-height:21px}#mission-path{display:flex;justify-content:center;gap:10px;padding:0 10px 13px}.mission-step{width:40px;height:40px;display:grid;place-items:center;border:2px solid #dbe4c7;background:#fffdf4;border-radius:50%;font-size:21px;opacity:.55}.mission-step.active{border-color:#b499d2;opacity:1}.mission-step.finished{border-color:#8abd6a;background:#e1f0c7;opacity:1}.world-dog.running{animation:puppy-run 3.2s ease-in-out infinite}.world-ball.rolling{animation:ball-roll 3.2s ease-in-out infinite}.world-bus.driving{animation:bus-drive 4s ease-in-out infinite}.finish-picture{text-align:center;font-size:100px;margin:30px 0}#play-hub:has(.finish-picture){text-align:center}#finish-play{display:block;margin:25px auto 35px}.parent-settings .tools{flex-wrap:wrap;max-width:290px;white-space:normal;width:290px}#notebook{max-width:650px;width:calc(100% - 24px);font-size:14px}#notebook h3{font:500 21px 'Fredoka';margin:22px 0 8px}#notebook p{line-height:1.55}#notebook input:not([type=checkbox]),#notebook select{width:100%;min-height:48px;border:2px solid #cbd9b7;border-radius:10px;padding:8px;font:18px 'Fredoka';color:#3f5c43;background:#fff}#notebook label{display:block;margin:12px 0 7px}.setting{min-height:48px;display:flex!important;gap:12px;align-items:center}.setting input{width:24px;height:24px;accent-color:#548c43;flex-shrink:0}.progress-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:13px}.progress-table th,.progress-table td{padding:9px 6px;border-bottom:1px solid #dee5ce;text-align:left;overflow-wrap:anywhere}#favourite-list{display:flex;flex-wrap:wrap;gap:8px}.favourite{min-height:44px;background:#fffdf2;border:2px solid #dedbca;border-radius:12px;padding:8px 12px;color:#4f6650}.favourite[aria-pressed=true]{background:#e5f2c9;border-color:#98b975}#custom-form button{margin-top:14px}.gentle-wiggle{animation:slot-wiggle .3s ease-out}
@keyframes slot-wiggle{0%,100%{rotate:0deg}35%{rotate:-4deg}65%{rotate:4deg}}@keyframes puppy-run{0%,100%{translate:-65px 0}50%{translate:55px -7px}}@keyframes ball-roll{0%,100%{translate:-35px 0;rotate:0deg}50%{translate:25px 0;rotate:170deg}}@keyframes sun-turn{to{rotate:360deg}}@keyframes grow-seed{from{scale:.3;transform-origin:bottom}}@keyframes water-drop{0%{translate:0 -10px;opacity:0}50%{opacity:1}100%{translate:0 25px;opacity:0}}@keyframes bus-drive{0%,100%{translate:-50px 0}50%{translate:60px 0}}
@media(max-width:700px){.mode-tabs{gap:7px}.mode-tabs button{font-size:14px;min-width:0;padding:8px 5px}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.game-card{min-height:140px;font-size:18px}.game-icon{font-size:49px}.play-title{font-size:25px}#activity{padding:15px 12px}.activity-bar h2{font-size:21px}.activity-bar .quiet-button{font-size:14px;padding:8px}.choice-grid{gap:9px}.picture-choice{min-height:105px;border-radius:17px}.choice-picture{font-size:48px}.choice-listen{padding:8px;font-size:19px}.activity-instruction{font-size:17px}.twin-letter{font-size:53px}.capital-twin{font-size:86px}.activity-feedback{font-size:17px}.world-stage{height:160px}.world-dog{bottom:10px;scale:.85}.world-dog.running{animation-name:puppy-run-phone}.world-robot{height:108px}.world-bus{font-size:90px}.world-home{font-size:76px}.world-seed{font-size:70px}.world-sun{font-size:49px}.world-hat{font-size:40px}.world-ball{font-size:31px}.world-grass{font-size:18px}#world-story{font-size:15px}.mission-step{width:34px;height:34px;font-size:19px}.sound-bubble{width:67px;height:77px;font-size:49px}.sound-bubbles{gap:calc(17px - var(--blend) * 13px)}.word-line.long-word .glyph{font-size:24px}.parent-settings .tools{width:260px}.help-row{margin:7px 0}.chain-tile{width:66px;height:74px}}
@keyframes puppy-run-phone{0%,100%{translate:-36px 0}50%{translate:29px -5px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.world-dog.running{translate:20px 0}.world-bus.driving{translate:20px 0}}
/* Keep the whole puppy in its frame, including its hat and wagging tail. */
.world-dog img{width:330px;left:-149px;top:-48px}.world-hat{top:20px;left:2px;font-size:32px}.world-dog-picture{width:145px}.world-dog{width:145px;height:130px}.world-dog.running{transform:scale(var(--size))}.mission-playing .garden-copy #picture{display:none}.mission-playing .garden-copy p{padding-top:9px}.mission-playing .help-row:has(#hint-level:empty){justify-content:flex-end;position:absolute;right:10px;top:0;margin:0}.mission-playing .garden-copy{min-height:48px;padding-right:85px;display:flex;align-items:center;justify-content:center}.mission-playing .garden{min-height:0}.mission-playing .help-row #help-word{min-height:44px}.mission-playing .garden-copy p{margin-bottom:5px}#build-extra{margin-bottom:8px}.long-colour-word{font-size:clamp(10px,calc(220px / var(--word-length)),24px)!important;flex-wrap:wrap}.replay .long-colour-word{font-size:clamp(14px,calc(420px / var(--word-length)),32px)!important}.mission-playing #world-panel{margin-bottom:10px}.mission-playing .mission-caption{font-size:15px;margin:10px 0}#activity:has(.chain-tiles)> .play-button{display:inline-block;margin:5px 7px}#activity:has(.chain-tiles){text-align:center}
@media(max-width:700px){.mission-playing .world-stage{height:135px}.mission-playing .world-dog{bottom:0;scale:.77}.mission-playing .world-ball{bottom:10px}.mission-playing #mission-path{padding-bottom:8px}.mission-playing #world-story{margin:7px 9px}.mission-playing .letters-section{margin-top:10px}.mission-playing .garden-copy{min-height:44px}.mission-playing .help-row{margin:3px 0}.mission-playing .word-actions{margin-top:7px}.mission-playing .word-actions button{min-height:52px}.mission-playing .word-line{min-height:58px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.world-bus{width:175px;height:112px;overflow:hidden;left:42%;bottom:10px;line-height:1}.world-bus img{position:absolute;width:365px;max-width:none;left:-62px;top:-72px}#build-extra:empty{display:none}.mission-playing #world-panel{position:relative}.mission-playing #mission-path{position:absolute;top:7px;right:5px;padding:0;gap:5px}.mission-playing .mission-step{width:27px;height:27px;font-size:15px;background:#fffdeedd}.mission-playing .world-sun{left:9%;right:auto}.mission-playing .world-stage:before{left:7%;top:25px}.mission-playing #world-story{padding:0 4px}.mission-playing .garden-copy p{font-size:13px}.mission-playing .mode-tabs{margin-bottom:9px}
@media(max-width:700px){.mission-playing .world-stage{height:110px}.mission-playing .world-dog{scale:.69;bottom:0}.mission-playing .world-sun{top:25px;font-size:40px}.mission-playing .world-seed{font-size:62px;bottom:7px}.mission-playing .world-water{bottom:45px}.mission-playing .world-robot{height:85px;bottom:8px}.mission-playing .world-bus{scale:.8;transform-origin:bottom left;bottom:5px}.mission-playing .world-home{font-size:66px;bottom:10px}.mission-playing .world-stop{font-size:34px;bottom:12px}.mission-playing .letters{gap:8px}.mission-playing .letter{height:44px}.mission-playing .letters-heading{margin-bottom:8px}.mission-playing .garden{padding-bottom:10px}.mission-playing #world-story{font-size:14px;margin:7px 4px}.mission-playing .word-line{padding:5px;min-height:60px}.mission-playing .word-actions button{min-height:49px}.mission-playing .help-row:has(#hint-level:empty){right:7px;top:0}.mission-playing .letters-section{margin-top:13px}.mission-playing #target-banner{margin-bottom:7px}.mission-playing #choose-again{min-height:44px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Tiny success moments; the letter tray and its hit targets never move. */
.reward-toast{position:fixed;top:12px;left:50%;translate:-50% 0;z-index:70;max-width:calc(100vw - 24px);padding:11px 19px;border:2px solid #d5df9d;border-radius:19px;background:#ffffedf2;box-shadow:0 5px 0 #d5dfad;color:#4c7038;font:500 19px 'Fredoka';text-align:center;pointer-events:none;white-space:normal}.reward-pop{animation:reward-arrives .24s ease-out}.minute-guide{text-align:center;font:400 17px 'Fredoka';line-height:1.5;max-width:400px;margin:16px auto 22px;color:#607250}#minute-panel{padding:18px;background:linear-gradient(#ecf5e1,#f6f7e7);border:2px solid #d2e3bf;border-radius:24px;box-shadow:0 5px 0 #dbe5cd;margin-bottom:14px;--minute-left:1}.minute-flowers{text-align:center;font-size:63px;margin:20px 0;letter-spacing:10px}.minute-start{display:block;margin:18px auto 14px;min-height:60px;font-size:22px;background:#e5f5b8;border-color:#94b94c;padding:12px 27px}.minute-scoreboard{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 15px}.minute-clock{font:600 37px 'Fredoka';font-variant-numeric:tabular-nums;color:#52793f;min-width:90px}.minute-count{font:500 27px 'Fredoka';color:#8a6a27}.minute-meter{height:8px;border-radius:20px;background:#dde7c9;overflow:hidden}.minute-meter span{display:block;width:100%;height:100%;background:#95b85c;transform:scaleX(var(--minute-left));transform-origin:left;transition:transform .1s linear;border-radius:inherit}.minute-latest{font:400 15px 'Fredoka';color:#648249;margin:11px 0 0;text-align:center;min-height:19px}.minute-result-title{font:500 30px 'Fredoka';text-align:center;color:#527a3a}.minute-word-garden{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.minute-building .intro{display:none}.minute-building .picture{height:90px}.minute-building .word-actions #clear:not(:disabled){background:#e2f4b7;border-color:#97b966}.minute-building .word-actions{margin-top:8px}.minute-building .garden-copy p{margin-bottom:7px}.minute-building .letters-section{margin-top:15px}.minute-building .garden{min-height:0}.minute-building .legend{display:none}
@keyframes reward-arrives{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
@media(max-width:700px){#minute-panel{padding:12px;margin-bottom:12px}.minute-scoreboard{margin:7px 0 10px}.minute-clock{font-size:32px;min-width:79px}.minute-count{font-size:24px}#minute-pause{padding:8px 12px;font-size:16px}.minute-building #minute-panel .activity-bar{margin-bottom:4px}.minute-building #minute-panel h2{font-size:20px}.minute-building .garden{padding-top:2px;padding-bottom:9px}.minute-building .garden-copy .picture{height:54px}.minute-building .picture .emoji{font-size:43px}.minute-building .picture .actor{scale:.75;transform-origin:center top;top:-47px}.minute-building .picture.character-scene .actor,.minute-building .picture.milk-scene .actor{height:100%;scale:1;top:0}.minute-building .word-actions button{min-height:50px}.minute-building .word-line{min-height:62px}.minute-building .letters{gap:8px}.minute-building .letter{height:44px}.minute-building .letters-heading{margin-bottom:9px}.minute-building .letters-section{margin-top:13px}.minute-building .hint{font-size:11px}.minute-word-garden{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.minute-guide{font-size:17px}.reward-toast{font-size:17px;padding:10px 16px}.minute-result-title{font-size:27px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

@media(max-width:700px){.minute-building .garden-copy .picture{height:48px}.minute-building .minute-latest{margin-top:8px}}
