@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(./andika-cyrillic-ext-400-normal-VNDy5CZS.woff2)format("woff2"),url(./andika-cyrillic-ext-400-normal-BJwze9_g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(./andika-cyrillic-400-normal-DYbdP60f.woff2)format("woff2"),url(./andika-cyrillic-400-normal-CIdpN1kB.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(./andika-vietnamese-400-normal-afg23LQ3.woff2)format("woff2"),url(./andika-vietnamese-400-normal-Bw99zChb.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(./andika-latin-ext-400-normal-D580Nkki.woff2)format("woff2"),url(./andika-latin-ext-400-normal-NXfvB_tZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:400;src:url(./andika-latin-400-normal-BTFTIZb-.woff2)format("woff2"),url(./andika-latin-400-normal-BK42By1L.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(./andika-cyrillic-ext-700-normal-DvCsrHON.woff2)format("woff2"),url(./andika-cyrillic-ext-700-normal-BdIUMeTx.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(./andika-cyrillic-700-normal-D404ywHU.woff2)format("woff2"),url(./andika-cyrillic-700-normal-Bzg0mZT8.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(./andika-vietnamese-700-normal-CS3rZngu.woff2)format("woff2"),url(./andika-vietnamese-700-normal-CZOGxJjV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(./andika-latin-ext-700-normal-Ch3SGZaH.woff2)format("woff2"),url(./andika-latin-ext-700-normal-DBt0PRsd.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Andika;font-style:normal;font-display:swap;font-weight:700;src:url(./andika-latin-700-normal-Dk95f5lc.woff2)format("woff2"),url(./andika-latin-700-normal-CAUSQC6x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink:#3a3355;--muted:#bdb8cc;--bg1:#fff4dc;--bg2:#dff3ff;--good:#7ed957;--good-dark:#5bb236;--sun:#ffc93c;--sun-dark:#e0a800;--shadow:#3a33551a;--emoji:"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;--letters:"Andika", "Comic Sans MS", "Chalkboard SE", system-ui, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0;overflow:hidden}body{font-family:var(--letters);color:var(--ink);background:radial-gradient(circle at 15% 10%, #ffffffe6 0, transparent 35%), radial-gradient(circle at 90% 85%, #ffffffb3 0, transparent 30%), linear-gradient(160deg, var(--bg1), var(--bg2));-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:focus-visible{outline:6px solid var(--sun);outline-offset:4px}svg{display:block}.screen{height:100dvh;padding:max(10px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;align-items:center;display:flex}.confetti{pointer-events:none;z-index:30;width:100%;height:100%;position:fixed;inset:0}.topbar{align-self:stretch;align-items:center;gap:12px;min-height:64px;display:flex}.topbar-content{flex:1;justify-content:flex-end;align-items:center;gap:16px;display:flex}.icon-btn{aspect-ratio:1;width:min(13vw,60px);box-shadow:0 5px 0 var(--shadow);font-family:var(--emoji);background:#fff;border-radius:50%;flex:none;place-items:center;font-size:min(6.5vw,30px);display:grid}.icon-btn:active{box-shadow:0 2px 0 var(--shadow);transform:translateY(3px)}.actions{justify-content:center;align-items:center;gap:min(6vw,40px);display:flex}.round-btn{aspect-ratio:1;width:min(24vw,18vh,130px);font-family:var(--emoji);border-radius:50%;flex:none;place-items:center;font-size:min(11vw,8vh,60px);display:grid}.round-btn svg{width:44%;margin-left:8%}.round-btn.speaker{background:var(--sun);box-shadow:0 8px 0 var(--sun-dark)}.round-btn.go,.round-btn.home{background:var(--good);color:#fff;box-shadow:0 8px 0 var(--good-dark)}.round-btn.go{animation:2s ease-in-out infinite breathe}.round-btn:active{animation:none;transform:translateY(5px);box-shadow:0 3px #00000026}.home{justify-content:flex-start;gap:min(4vh,28px);overflow-y:auto}.home>:first-child{margin-top:auto}.home>:last-child{margin-bottom:auto}.home-head{align-items:baseline;gap:14px;display:flex}.title{margin:0;font-size:clamp(22px,4.5vmin,38px);font-weight:700}.count{opacity:.5;font-size:clamp(16px,2.6vmin,22px)}.big-play{aspect-ratio:1;background:var(--good);color:#fff;width:min(26vmin,160px);box-shadow:0 10px 0 var(--good-dark), 0 20px 40px #5bb2364d;border-radius:50%;flex:none;place-items:center;animation:2s ease-in-out infinite breathe;display:grid}.big-play svg{width:44%;margin-left:8%}.big-play:active{box-shadow:0 3px 0 var(--good-dark);animation:none;transform:translateY(7px)}.alphabet{--a:clamp(54px, 11vmin, 92px);grid-template-columns:repeat(auto-fill, var(--a));justify-content:center;gap:clamp(8px,1.8vmin,16px);width:min(100%,980px);display:grid}.alpha-tile{width:var(--a);aspect-ratio:1;box-shadow:0 6px 0 var(--shadow);font-size:calc(var(--a) * .58);color:var(--muted);background:#fff;border-radius:28%;font-weight:700;line-height:1;transition:transform .15s;position:relative}.alpha-tile:active{box-shadow:0 2px 0 var(--shadow);transform:translateY(4px)}.alpha-tile.learned{background:var(--lc);color:#fff;box-shadow:0 6px 0 color-mix(in srgb, var(--lc) 70%, #000)}.alpha-tile.learned:after{content:"⭐";font-family:var(--emoji);font-size:calc(var(--a) * .26);position:absolute;top:-.35em;right:-.35em}.alpha-tile.next{color:var(--ink);box-shadow:0 0 0 5px var(--sun), 0 6px 0 var(--shadow);animation:2s ease-in-out infinite breathe}.parents{text-align:center;opacity:.6;max-width:40em;margin:0;font-size:14px;line-height:1.5}.link{font-size:inherit;text-decoration:underline}.cloud{text-align:center;opacity:.75;max-width:40em;margin:0;font-size:14px;line-height:1.5}a.link{color:inherit}.alpha-tile.multi{font-size:calc(var(--a) * .4)}.modes{justify-content:center;align-items:center;gap:min(5vw,32px);width:min(100%,980px);display:flex}.mode-list{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.mode-reading{width:min(27vw,128px);box-shadow:0 6px 0 var(--shadow);background:#fff;border-radius:24px;flex-direction:column;align-items:center;gap:4px;padding:12px 14px;display:flex}.mode-reading:active{box-shadow:0 2px 0 var(--shadow);transform:translateY(4px)}.mode-icon{font-family:var(--emoji);place-items:center;height:1.1em;font-size:min(10vmin,48px);line-height:1;display:grid}.mode-syl{font-family:var(--letters)}.mode-label{text-align:center;font-size:14px;line-height:1.2}.mode-reading.mode-path{background:linear-gradient(160deg,#fff3c4,#ffe1f0);box-shadow:0 6px #f2c94c}.path{justify-content:center;gap:min(5vh,32px)}.path>.topbar{top:max(10px, env(safe-area-inset-top));position:absolute;left:16px;right:16px}.path-trail{flex-wrap:wrap;justify-content:center;gap:10px;max-width:760px;display:flex}.path-step{width:58px;height:58px;font-family:var(--emoji);opacity:.55;background:#fff9;border-radius:50%;place-items:center;font-size:28px;display:grid}.path-step.now{opacity:1;box-shadow:0 0 0 5px var(--sun), 0 5px 0 var(--shadow);background:#fff;transform:scale(1.15)}.path-step.done{opacity:1;box-shadow:0 0 0 4px var(--good);background:#fff}.path-letter{font-family:var(--letters);color:var(--ink);font-size:28px;font-weight:700}.path-letter.multi{font-size:20px}.path-step .mode-syl{font-size:24px}.reading-setup{gap:min(3vh,20px);overflow-y:auto}.reading-intro{text-align:center;width:min(100%,720px)}.reading-intro p{margin:.5em 0;line-height:1.5}.reading-tools{font-size:15px}.reading-start{align-items:center;gap:16px;padding-bottom:8px;display:flex}.big-play:disabled{background:var(--muted);cursor:default;animation:none;box-shadow:0 10px #9d98ad}.alpha-tile.selected{background:var(--lc);color:#fff;box-shadow:0 6px 0 color-mix(in srgb, var(--lc) 70%, #000)}.alpha-tile.review:before{content:"🔁";font-family:var(--emoji);font-size:calc(var(--a) * .26);position:absolute;bottom:-.45em;left:-.35em}.alpha-tile.selected:after{content:"✓";background:var(--good);color:#fff;width:1.5em;height:1.5em;font-size:calc(var(--a) * .2);box-shadow:0 2px 0 var(--good-dark);border-radius:50%;place-items:center;display:grid;position:absolute;top:-.4em;right:-.4em}.reading{justify-content:space-between}.reading-progress{height:14px;box-shadow:inset 0 0 0 2px var(--shadow);background:#fffc;border-radius:999px;flex:1;overflow:hidden}.reading-progress-bar{background:var(--good);border-radius:999px;height:100%;transition:width .4s}.reading-letter{cursor:default;animation:.45s cubic-bezier(.3,1.6,.5,1) enter}.round-btn.go{font-family:var(--letters);font-weight:700}.reading-done{justify-content:space-between}.reading-summary{text-align:center;font-size:18px}.reading-summary strong{font-size:1.6em}:root{--cons:#e63946;--vow:#2f6fed}.syl-c{color:var(--cons)}.syl-v{color:var(--vow)}.mode-syl{font-family:var(--letters);letter-spacing:.02em;font-weight:700}.syl-done{color:var(--ink)}.syllables{justify-content:space-between}.syl-stage{flex-direction:column;align-items:center;gap:min(5vh,36px);display:flex}.syl-pair{gap:min(8vw,64px);transition:gap .45s cubic-bezier(.3,1.4,.5,1);display:flex}.syl-tile{aspect-ratio:1;width:min(36vw,34vh,280px);box-shadow:0 10px 0 var(--shadow), 0 20px 36px #3a335514;background:#fff;border-radius:22%;place-items:center;font-size:min(25vw,24vh,200px);font-weight:700;line-height:1;transition:border-radius .45s,box-shadow .3s;display:grid}.syl-tile.bump{animation:.6s wobble}.syl-pair.merged{gap:0}.syl-pair.merged .syl-c{border-radius:22% 0 0 22%}.syl-pair.merged .syl-v{border-radius:0 22% 22% 0}.syl-pair.merged .syl-tile{box-shadow:0 0 0 8px #7ed95759, 0 10px 0 var(--shadow)}.syl-bridge{touch-action:none;cursor:pointer;width:min(80vw,640px);height:72px;position:relative}.syl-rail,.syl-fill{border-radius:999px;height:16px;margin-top:-8px;position:absolute;top:50%;left:0}.syl-rail{background:linear-gradient(90deg, var(--cons), var(--vow));opacity:.18;right:0}.syl-fill{background:linear-gradient(90deg, var(--cons), var(--vow))}.syl-ball{background:var(--sun);width:64px;height:64px;box-shadow:0 6px 0 var(--sun-dark);font-family:var(--emoji);pointer-events:none;border-radius:50%;place-items:center;margin:-32px 0 0 -32px;font-size:30px;display:grid;position:absolute;top:50%}.syl-bridge.merged .syl-ball{background:var(--good);box-shadow:0 6px 0 var(--good-dark)}.compose{justify-content:space-between}.word-picture{aspect-ratio:1;width:min(34vw,26vh,220px);box-shadow:0 8px 0 var(--shadow);background:#fff;border-radius:24%;place-items:center;display:grid;position:relative}.word-picture:active{box-shadow:0 4px 0 var(--shadow);transform:translateY(4px)}.word-emoji{font-family:var(--emoji);font-size:min(22vw,17vh,140px);line-height:1}.word-speaker{font-family:var(--emoji);background:var(--sun);width:48px;height:48px;box-shadow:0 4px 0 var(--sun-dark);border-radius:50%;place-items:center;font-size:28px;display:grid;position:absolute;bottom:-10px;right:-10px}.word-slots{flex-wrap:nowrap;gap:min(1.6vw,10px);display:flex}.word-slot{--s:min(12.5vw, 10vh, 86px);width:var(--s);height:calc(var(--s) * 1.15);font-size:calc(var(--s) * .62);border:3px dashed var(--muted);background:#ffffff80;border-radius:18px;place-items:center;font-weight:700;line-height:1;display:grid}.word-slot.current{border-color:var(--sun);border-style:solid;box-shadow:0 0 0 5px #ffc93c59}.word-slot.filled{box-shadow:0 5px 0 var(--shadow);background:#fff;border:3px solid #fff;animation:.45s cubic-bezier(.3,1.8,.5,1) starPop}.word-slot.silent{color:#c9c5d6;background:0 0;border:3px solid #0000}.word-slots.done .word-slot.filled{box-shadow:0 0 0 5px #7ed95766, 0 5px 0 var(--shadow)}.word-tray{flex-wrap:wrap;justify-content:center;gap:min(2.5vw,16px);max-width:720px;padding-bottom:8px;display:flex}.word-tile{--s:min(17vw, 12vh, 100px);width:var(--s);aspect-ratio:1;box-shadow:0 7px 0 var(--shadow);font-size:calc(var(--s) * .55);background:#fff;border-radius:24%;font-weight:700;line-height:1;transition:opacity .3s,transform .3s}.word-tile:active{box-shadow:0 3px 0 var(--shadow);transform:translateY(4px)}.word-tile.used{opacity:0;pointer-events:none;transform:scale(.4)}.word-tile.shake{animation:.6s shake}.word-tile.hint{animation:1.3s ease-in-out infinite hint}.word-done{font-family:var(--emoji);letter-spacing:.15em;font-size:44px}.read-words{justify-content:space-between}.read-stage{flex-direction:column;align-items:stretch;gap:18px;display:flex}.read-word{--w:min(calc(84vw / var(--n)), 15vh, 110px);grid-template-columns:repeat(var(--n), var(--w));box-shadow:0 8px 0 var(--shadow);background:#fff;border-radius:28px;padding:14px 18px;display:grid}.read-letter{height:calc(var(--w) * 1.25);font-size:calc(var(--w) * .82);border-radius:16px;place-items:center;font-weight:700;line-height:1;transition:background-color .2s,transform .2s;display:grid}.read-letter.silent{color:#c9c5d6}.read-letter.active{background:#ffc93c59;transform:translateY(-4px)}.read-word.found{box-shadow:0 0 0 8px #7ed95766, 0 8px 0 var(--shadow)}.read-bridge{width:auto}.read-bridge .syl-rail{opacity:.25}.read-choices{gap:min(4vw,28px);padding-bottom:8px;display:flex}.read-choice{aspect-ratio:1;width:min(27vw,22vh,180px);box-shadow:0 8px 0 var(--shadow);font-family:var(--emoji);background:#fff;border-radius:24%;font-size:min(17vw,14vh,110px);line-height:1}.read-choice:active{box-shadow:0 4px 0 var(--shadow);transform:translateY(4px)}.read-choice.shake{animation:.6s shake}.read-choice.hint{animation:1.3s ease-in-out infinite hint}.gesture{background:#ffffffbf;border-radius:20px;align-items:center;gap:12px;max-width:min(92vw,560px);margin:0;padding:10px 16px;font-size:16px;line-height:1.35;display:flex}.gesture-icon{font-family:var(--emoji);flex:none;font-size:36px;line-height:1}.sentences{justify-content:space-between}.sentence{max-width:min(94vw,980px);box-shadow:0 8px 0 var(--shadow);background:#fff;border-radius:30px;flex-wrap:wrap;justify-content:center;gap:6px 22px;padding:22px 26px;display:flex}.sentence.found{box-shadow:0 0 0 8px #7ed95766, 0 8px 0 var(--shadow)}.sentence-word{color:var(--ink);border-radius:16px;padding:2px 8px;font-size:clamp(32px,6.8vmin,66px);font-weight:700;line-height:1.2;transition:background-color .2s,transform .2s}.sentence-word .silent{color:#c9c5d6}.sentence-word.tool{text-underline-offset:8px;-webkit-text-decoration:underline #9c8fd9;text-decoration:underline #9c8fd9;text-decoration-thickness:4px}.sentence-word.active{background:#ffc93c59;transform:translateY(-4px)}.sentence-hear{background:var(--sun);width:76px;height:76px;box-shadow:0 6px 0 var(--sun-dark);font-family:var(--emoji);border-radius:50%;font-size:36px}.sentence-hear:active{box-shadow:0 2px 0 var(--sun-dark);transform:translateY(4px)}.sentence-choice{letter-spacing:-.05em;font-size:min(11vw,9vh,72px)}.sentence-done{font-size:20px;line-height:1.5}.sentence-done p{margin:0}.ear-menu{gap:min(4vh,28px)}.ear-games{flex-wrap:wrap;justify-content:center;gap:20px;margin-top:auto;margin-bottom:auto;display:flex}.ear-game{width:min(80vw,280px);box-shadow:0 8px 0 var(--shadow);background:#fff;border-radius:28px;flex-direction:column;align-items:center;gap:10px;padding:24px 18px;font-size:20px;font-weight:700;display:flex}.ear-game:active{box-shadow:0 4px 0 var(--shadow);transform:translateY(4px)}.ear-game-icon{font-family:var(--emoji);font-size:56px;line-height:1}.ear{justify-content:space-between}.ear-target{align-items:center;gap:14px;display:flex}.ear-target-label{color:var(--muted);font-size:18px}.ear-target .word-tile{--s:min(16vw, 10vh, 80px)}.ear-choice{--s:min(24vw, 18vh, 140px)}.ear-answers{gap:min(4vw,24px);padding-bottom:8px;display:flex}.ear-answer{color:#fff;border-radius:28px;flex-direction:column;align-items:center;gap:6px;width:min(40vw,220px);padding:16px 10px;font-size:18px;font-weight:700;display:flex}.ear-answer span{font-family:var(--emoji);font-size:min(14vw,64px);line-height:1}.ear-answer.yes{background:var(--good);box-shadow:0 8px 0 var(--good-dark)}.ear-answer.no{background:#9c8fd9;box-shadow:0 8px #7465bd}.ear-answer:active{transform:translateY(5px);box-shadow:0 3px #00000026}.ear-answer.shake{animation:.6s shake}.board-parent{overflow-y:auto}.board-parent h2{margin:1.2em 0 .5em;font-size:20px}.week{grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.day{box-shadow:0 4px 0 var(--shadow);background:#fff;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:10px 2px;display:flex}.day-name{font-weight:700}.day-min{color:var(--muted);min-height:1.2em;font-size:13px}.day.played{background:#e9f8df}.day.goal{background:var(--good);color:#fff}.day.goal .day-min{color:#fff}.day.today{box-shadow:0 0 0 3px var(--sun), 0 4px 0 var(--shadow)}.day.future{opacity:.45}.legend{padding:0;list-style:none}.legend li{margin:.25em 0}.legend-dot{vertical-align:-2px;border-radius:50%;width:14px;height:14px;display:inline-block}.board-parent .alphabet{--a:clamp(46px, 9vmin, 72px);margin-top:12px}.board-parent .alpha-tile{place-items:center;display:grid}.st-mastered{color:#fff!important;background:#6cc24a!important}.st-learning{color:var(--ink)!important;background:#ffd45e!important}.st-review{color:#fff!important;background:#ff9f5a!important}.st-new{color:var(--muted);background:#fff}.legend-dot.st-new{box-shadow:inset 0 0 0 2px var(--muted)}.credits{overflow-y:auto}.credits-body{-webkit-user-select:text;user-select:text;width:min(100%,720px);font-size:16px;line-height:1.55}.credits-body ul{padding-left:1.2em}.credits-body li{margin:.3em 0}.credits-body a{color:#3a86ff}.lesson{justify-content:space-between}.giant-letter{min-width:min(52vh,62vw);height:min(56vh,64vw);box-shadow:0 12px 0 var(--shadow), 0 24px 50px #3a335514;color:var(--ink);background:#fff;border-radius:min(8vw,56px);place-items:center;padding:0 min(6vw,48px);font-size:min(46vh,54vw);font-weight:700;line-height:1;transition:color .4s;display:grid}.giant-letter.multi{font-size:min(36vh,34vw)}.giant-letter.colored{color:var(--lc)}.giant-letter.bump{animation:.6s wobble}.round-dots{gap:10px;margin-right:auto;display:flex}.round-dots span{width:16px;height:16px;box-shadow:inset 0 0 0 3px var(--muted);background:#ffffffb3;border-radius:50%}.round-dots .now{box-shadow:inset 0 0 0 3px var(--ink)}.round-dots .done{background:var(--good);box-shadow:none}.model{height:min(16vw,72px);box-shadow:0 5px 0 var(--shadow);background:#fff;border-radius:999px;align-items:center;gap:10px;padding:0 18px 0 22px;display:flex}.model:active{box-shadow:0 2px 0 var(--shadow);transform:translateY(3px)}.model-letter{font-size:min(11vw,52px);font-weight:700;line-height:1}.model-letter.multi{font-size:min(8vw,40px)}.model-speaker{font-family:var(--emoji);font-size:min(7vw,32px)}.model.sound-only{background:var(--sun);box-shadow:0 5px 0 var(--sun-dark);padding:0 22px;animation:2s ease-in-out infinite breathe}.model.sound-only .model-speaker{font-size:min(10vw,44px)}.round{flex-direction:column;flex:1;justify-content:space-evenly;align-items:center;width:100%;min-height:0;display:flex}.slots{gap:12px;display:flex}.slot{width:52px;height:52px;color:var(--muted);border:3px dashed var(--muted);border-radius:30%;place-items:center;font-size:34px;font-weight:700;line-height:1;display:grid}.slot.multi{font-size:24px}.slot.filled{background:var(--lc);color:#fff;border:3px solid var(--lc);animation:.6s cubic-bezier(.3,1.8,.5,1) starPop}.board{--gap:min(3vmin, 24px);--tile:min(calc((100vw - 40px - (var(--cols) - 1) * var(--gap)) / var(--cols)), calc((100dvh - 190px - (var(--rows) - 1) * var(--gap)) / var(--rows)), 220px);gap:var(--gap);grid-template-columns:repeat(var(--cols), var(--tile));display:grid}.board.n6{--cols:3;--rows:2}.board.n8{--cols:4;--rows:2}@media (orientation:portrait){.board.n6{--cols:2;--rows:3}.board.n8{--cols:2;--rows:4}}.tile{width:var(--tile);aspect-ratio:1;box-shadow:0 8px 0 var(--shadow), 0 16px 26px #3a33550f;color:var(--ink);animation:enter .5s cubic-bezier(.3,1.6,.5,1) var(--delay,0s) backwards;background:#fff;border-radius:24%;place-items:center;line-height:1;transition:background-color .35s,color .35s,box-shadow .2s;display:grid}.tile:active{box-shadow:0 4px 0 var(--shadow);transform:translateY(4px)scale(.97)}.tile-letter{font-size:calc(var(--tile) * .66);font-weight:700}.tile-letter.multi{font-size:calc(var(--tile) * .48)}.tile-emoji{font-family:var(--emoji);font-size:calc(var(--tile) * .56)}.tile.found{background:var(--lc);color:#fff;box-shadow:0 0 0 8px color-mix(in srgb, var(--lc) 30%, transparent), 0 8px 0 var(--shadow);animation:.8s win}.tile.hint{animation:1.3s ease-in-out infinite hint}.tile.shake{animation:.6s shake}.celebration{justify-content:space-between}.medal{place-items:center;animation:1s cubic-bezier(.3,1.5,.5,1) spinIn;display:grid;position:relative}.medal-star{font-family:var(--emoji);font-size:min(56vh,80vw);line-height:1}.medal-letter{color:var(--lc);text-shadow:0 0 6px #fff,0 0 2px #fff,0 6px #fffc;font-size:min(26vh,34vw);font-weight:700;line-height:1;position:absolute;top:52%;left:50%;transform:translate(-50%,-50%)}.medal-letter.multi{font-size:min(18vh,24vw)}@keyframes enter{0%{opacity:0;transform:scale(0)rotate(-12deg)}}@keyframes shake{0%,to{transform:none}15%{transform:translate(-10px)rotate(-4deg)}35%{transform:translate(9px)rotate(3deg)}55%{transform:translate(-6px)rotate(-2deg)}75%{transform:translate(3px)rotate(1deg)}}@keyframes win{0%{transform:scale(1)}35%{transform:scale(1.18)rotate(-5deg)}65%{transform:scale(.97)rotate(3deg)}to{transform:none}}@keyframes hint{0%,to{transform:scale(1)}50%{box-shadow:0 0 0 14px #ffc93c80, 0 8px 0 var(--shadow);transform:scale(1.07)}}@keyframes wobble{0%,to{transform:none}25%{transform:scale(1.06)rotate(-3deg)}55%{transform:scale(.98)rotate(2deg)}}@keyframes starPop{0%{transform:scale(.3)}60%{transform:scale(1.3)}to{transform:none}}@keyframes spinIn{0%{transform:scale(0)rotate(-200deg)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media (prefers-reduced-motion:reduce){.round-btn.go,.big-play,.alpha-tile.next,.tile.hint{animation:none}}.home-head{align-items:center}.avatar-button{aspect-ratio:1;width:clamp(44px,8vmin,64px);box-shadow:0 4px 0 var(--shadow);font-family:var(--emoji);background:#fff;border-radius:50%;flex:none;font-size:clamp(26px,5vmin,40px)}.avatar-button:active{box-shadow:0 1px 0 var(--shadow);transform:translateY(3px)}.profiles{gap:24px}.avatar-grid{flex-wrap:wrap;justify-content:center;gap:18px;max-width:760px;display:flex}.avatar-tile{aspect-ratio:1;width:min(28vw,150px);box-shadow:0 8px 0 var(--shadow);font-family:var(--emoji);background:#fff;border-radius:32px;font-size:min(16vw,84px)}.avatar-tile.current{box-shadow:0 0 0 6px var(--sun), 0 8px 0 var(--shadow)}.avatar-tile.add{color:#b9b3cf;font-family:inherit;font-weight:700}.avatar-tile:active{box-shadow:0 3px 0 var(--shadow);transform:translateY(5px)}.remove-profile{font-family:var(--emoji), inherit;margin:0 4px}.board-avatar{font-family:var(--emoji)}.case-switch{flex-wrap:wrap;gap:10px;display:flex}.case-switch button{box-shadow:0 4px 0 var(--shadow);background:#fff;border-radius:16px;padding:10px 18px;font-size:20px;font-weight:700}.case-switch button.on{background:var(--sun);box-shadow:0 4px 0 var(--sun-dark)}.case-pair{opacity:.8;margin:-8px 0 0;font-size:clamp(18px,3vmin,26px)}.case-pair span{color:var(--lc);font-size:1.4em;font-weight:700}
