@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(./nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations")}:root{--ink:#1d2340;--ink-soft:#5a6080;--paper:#fffdf8;--paper-2:#f4f1ea;--chrome:#0e132c75;--chrome-line:#fff3;--gold:#ffc53d;--gold-deep:#c77d0a;--ok:#2fbf71;--bad:#ef5350;--warn:#ffa726;--safe-top:max(var(--safe-area-inset-top,0px), env(safe-area-inset-top,0px));--safe-bottom:max(var(--safe-area-inset-bottom,0px), env(safe-area-inset-bottom,0px));--accent:#ff6f61;--accent-deep:#d9483b;--accent-light:#ff9a90;--accent-pale:#ffeceb;color:#fff;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;font-family:Nunito Variable,Nunito,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body{overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#1f2a5a;height:100%;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}h1,h2,h3,p{margin:0}.muted{color:var(--ink-soft);font-weight:600;line-height:1.45}.center{text-align:center}.app{background:linear-gradient(180deg, var(--sky-1) 0%, var(--sky-2) 48%, var(--sky-3) 100%);position:fixed;top:0;bottom:0;left:0;right:0;overflow:hidden}.scenery{animation:.8s ease-out both fade-in;position:absolute;top:0;bottom:0;left:0;right:0}.scenery svg{width:100%;height:100%;display:block}.cloud{animation:150s linear infinite cloud-drift}@keyframes cloud-drift{0%{transform:translate(-260px)}to{transform:translate(1060px)}}.flock{animation:34s linear -8s infinite flock-fly}@keyframes flock-fly{0%{transform:translate(-120px,360px)}45%{transform:translate(920px,270px)}to{transform:translate(920px,270px)}}.wing{transform-box:fill-box;transform-origin:50%;animation:.45s ease-in-out infinite alternate flap}@keyframes flap{to{transform:scaleY(-.6)}}.shooting-star{stroke:#fff;stroke-width:2.5px;stroke-linecap:round;opacity:0;animation:13s ease-in infinite shoot}@keyframes shoot{0%{opacity:0;transform:translate(var(--sx), var(--sy))}1%{opacity:.9}6%{opacity:0;transform:translate(calc(var(--sx) + 260px), calc(var(--sy) + 96px))}to{opacity:0;transform:translate(calc(var(--sx) + 260px), calc(var(--sy) + 96px))}}.aurora{transform-box:fill-box;transform-origin:50%;animation:14s ease-in-out infinite alternate aurora}.stage{flex-direction:column;max-width:520px;height:100%;margin:0 auto;display:flex;position:relative}.screen{min-height:0;padding:calc(var(--safe-top) + 8px) 12px calc(var(--safe-bottom) + 10px);flex-direction:column;flex:1;animation:.34s cubic-bezier(.2,.9,.3,1) backwards screen-in;display:flex}.journey .scroll,.trophies .scroll{-webkit-mask-image:linear-gradient(#0000 0,#000 16px calc(100% - 16px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 16px calc(100% - 16px),#0000 100%)}.splash{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;display:flex}.particles{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.particles span{border-radius:50%;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:0}.particles-pollen span{background:#ffffffbf;animation-name:drift-up}.particles-bubbles span{border:1.5px solid #ffffffbf;animation-name:drift-up}.particles-fireflies span{background:#fff6a8;animation-name:drift-up;box-shadow:0 0 10px 3px #fff096bf}.particles-stars span{background:#fff;animation-name:twinkle;animation-timing-function:ease-in-out}.particles-snow span{opacity:.9;background:#fff;animation-name:fall}.particles-petals span{background:#ffd1e3;border-radius:70% 0;animation-name:fall-spin}.particles-leaves span{background:#eb9a45;border-radius:0 75%;animation-name:fall-spin}.topbar{justify-content:space-between;align-items:center;gap:10px;min-height:52px;display:flex}.topbar-left{gap:8px;display:flex}a.icon-btn{text-decoration:none}.topbar-title{text-align:center;text-shadow:0 2px 8px #0000004d;flex:1;min-width:0}.topbar-title h1{font-size:21px;font-weight:900;line-height:1.1}.topbar-title small{opacity:.92;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:800;display:block;overflow:hidden}.icon-btn{border:1px solid var(--chrome-line);background:var(--chrome);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;transition:transform .12s;display:grid}.icon-btn:active{transform:scale(.92)}.icon-btn.ghost{width:38px;height:38px;color:var(--ink);background:#1d234012;border:none}.coin-pill{border:1px solid var(--chrome-line);background:var(--chrome);border-radius:999px;flex-shrink:0;align-items:center;gap:6px;height:40px;padding:0 6px;font-size:17px;font-weight:900;display:inline-flex;position:relative}.coin-count{text-align:left;font-variant-numeric:tabular-nums;min-width:2.2em}.coin-plus{background:#3ec46d;border-radius:50%;place-items:center;width:24px;height:24px;display:grid;box-shadow:inset 0 -2px #0000002e}.coin-float{color:var(--gold);text-shadow:0 2px 6px #00000073;pointer-events:none;font-size:18px;font-weight:900;animation:1.3s ease-out forwards coin-float;position:absolute;top:100%;right:12px}.coin-icon{filter:drop-shadow(0 1px 1px #0003);flex-shrink:0}.badge{color:#fff;background:#ff4d4f;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:12px;font-weight:900;display:grid;position:absolute;top:-5px;right:-5px;box-shadow:0 2px 6px #00000040}.bar{background:#ffffff47;border-radius:4px;height:8px;display:block;overflow:hidden}.bar>span{background:var(--gold);border-radius:4px;height:100%;transition:width .6s;display:block}.bar.thin{background:#eceef5;height:6px;margin-top:4px}.bar.thin>span{background:var(--accent)}.spinner{border:4px solid #e3e6f0;border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;margin:18px auto;animation:.8s linear infinite spin}.spinner.light{border-color:#fff #ffffff59 #ffffff59}.segmented{background:#eef1fb;border-radius:12px;gap:4px;margin-bottom:12px;padding:4px;display:flex}.segmented button{height:36px;color:var(--ink-soft);background:0 0;border:none;border-radius:9px;flex:1;font-weight:900}.segmented button.on{color:var(--ink);background:#fff;box-shadow:0 2px 6px #00000014}.segmented.wide{background:var(--chrome);margin:8px 0 10px}.segmented.wide button{color:#fff}.segmented.wide button.on{color:var(--ink)}.scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:1;min-height:0;padding:6px 2px 20px;overflow-y:auto}.home-hero{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;min-height:0;display:flex}.logo{flex-direction:column;align-items:center;gap:8px;display:flex}.logo-line{gap:6px;display:flex}.logo-tile{aspect-ratio:1;background:var(--paper);width:clamp(40px,12.5vw,58px);color:var(--accent-deep);transform:rotate(var(--tilt));animation:.55s cubic-bezier(.2,1.4,.4,1) both tile-in;animation-delay:calc(var(--i) * 55ms);border-radius:12px;place-items:center;font-size:clamp(26px,8.2vw,38px);font-weight:900;display:grid;box-shadow:0 5px #00000026,0 12px 24px #00000029}.logo.small .logo-tile{border-radius:9px;width:34px;font-size:22px}.tagline{letter-spacing:.16em;text-transform:uppercase;text-shadow:0 2px 8px #00000059;font-size:13px;font-weight:900}.home-actions{flex-direction:column;gap:12px;padding-bottom:12px;display:flex}.play-btn{background:linear-gradient(180deg, var(--accent-light), var(--accent));color:#fff;letter-spacing:.06em;text-transform:uppercase;text-shadow:0 2px #0000002e;height:78px;box-shadow:0 6px 0 var(--accent-deep), 0 16px 32px #00000038;border:none;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;font-size:30px;font-weight:900;transition:transform .1s,box-shadow .1s;display:flex}.play-btn small{letter-spacing:.02em;text-transform:none;opacity:.95;font-size:14px;font-weight:800}.play-btn:active{box-shadow:0 2px 0 var(--accent-deep), 0 8px 18px #0003;transform:translateY(4px)}.chapter-card{background:var(--chrome);border:1px solid var(--chrome-line);border-radius:18px;gap:7px;padding:12px 14px;display:grid}.chapter-head{justify-content:space-between;align-items:baseline;display:flex}.chapter-card small{opacity:.85;font-weight:800}.chapter-path{justify-content:space-between;align-items:center;height:26px;display:flex;position:relative}.path-track{border-radius:2px;height:4px;margin-top:-2px;position:absolute;top:50%;left:5px;right:13px;overflow:hidden}.path-fill{background:var(--gold);transform-origin:0;width:100%;height:100%;transform:scaleX(var(--p));display:block}.path-fill.grow{animation:.6s ease-out .35s both path-grow}.path-stop{border-radius:50%;flex-shrink:0;width:9px;height:9px;position:relative}.path-stop.next{width:15px;height:15px}.path-stop.pop{animation:.55s cubic-bezier(.2,1.7,.4,1) .8s both stop-pop}.path-chest{border-radius:8px;flex-shrink:0;place-items:center;width:26px;height:26px;display:grid;position:relative}.chapter-path.on-dark .path-track{background:#ffffff38}.chapter-path.on-dark .path-stop.todo{background:#ffffff61}.chapter-path.on-dark .path-stop.done,.chapter-path.on-light .path-stop.done{background:var(--gold)}.chapter-path.on-dark .path-stop.next{box-shadow:0 0 0 3px var(--gold), 0 0 12px 3px #ffd25aa6;background:#fff}.chapter-path.on-dark .path-chest{color:#ffd766;background:#ffffff2e}.chapter-path.on-light .path-track{background:#e6e9f2}.chapter-path.on-light .path-stop.todo{background:#dde1ec}.chapter-path.on-light .path-stop.next{box-shadow:0 0 0 3px var(--accent);background:#fff}.chapter-path.on-light .path-chest{color:#e0a100;background:#fff4d6}.chapter-path .path-chest.open{background:var(--gold);color:#fff}.chapter-foot{justify-content:space-between;align-items:center;display:flex}.chapter-foot .chapter-reward{align-items:center;gap:4px;display:inline-flex}@keyframes path-grow{0%{transform:scaleX(var(--p0))}}@keyframes stop-pop{0%{transform:scale(.2)}}.daily-card{background:var(--paper);color:var(--ink);text-align:left;border:none;border-radius:18px;align-items:center;gap:12px;padding:12px 14px;display:flex;box-shadow:0 8px 22px #00000024}.daily-icon{background:var(--accent);color:#fff;border-radius:14px;flex-shrink:0;place-items:center;width:46px;height:46px;display:grid}.daily-text{flex-direction:column;flex:1;display:flex}.daily-text strong{font-size:17px}.daily-text small{color:var(--ink-soft);font-weight:700}.streak-chip{color:#ef6c00;background:#fff1e0;border-radius:999px;align-items:center;gap:3px;padding:4px 9px;font-size:14px;font-weight:900;display:inline-flex}.daily-dot{background:#ff4d4f;border-radius:50%;width:12px;height:12px;position:relative}.daily-dot:after{content:"";background:#ff4d4f99;border-radius:50%;animation:1.6s ease-out infinite ping;position:absolute;top:0;bottom:0;left:0;right:0}.daily-check{color:var(--ok)}.bottom-nav{background:var(--chrome);border:1px solid var(--chrome-line);border-radius:22px;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px;display:grid}.nav-btn{color:#fff;background:0 0;border:none;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:8px 0 6px;font-size:12px;font-weight:800;display:flex;position:relative}.nav-btn:active{background:#ffffff1f}.nav-btn .badge{top:2px;right:calc(50% - 22px)}.game{padding-bottom:calc(var(--safe-bottom) + var(--banner-h,0px) + 8px)}.words-left{background:var(--chrome);letter-spacing:.03em;border-radius:999px;align-self:center;margin-top:2px;padding:3px 12px;font-size:12.5px;font-weight:900}.grid-wrap{flex-direction:column;flex:auto;min-height:110px;display:flex;position:relative}.grid-box{flex:auto;justify-content:center;align-items:center;min-height:110px;padding:10px 4px;display:flex}.grid{display:grid}.cell{border-radius:calc(var(--cell) * .2);color:var(--ink);cursor:default;background:#fff6;border:1.5px solid #fffc;place-items:center;padding:0;font-weight:900;line-height:1;display:grid;box-shadow:inset 0 -3px #141e4612,0 2px 8px #141e4614}.cell.filled{background:var(--paper);cursor:pointer;border-color:#fff;box-shadow:0 3px #00000024,0 6px 14px #0000001a}.cell.hinted{color:var(--accent-deep)}.cell.hl-found.hl-v0{animation:.5s cubic-bezier(.2,1.5,.4,1) both pop-a}.cell.hl-found.hl-v1{animation:.5s cubic-bezier(.2,1.5,.4,1) both pop-b}.cell.hl-repeat.hl-v0{animation:.7s ease-out both flash-a}.cell.hl-repeat.hl-v1{animation:.7s ease-out both flash-b}.cell.hl-hint{animation:.9s ease-out both glow}.grid.picking .cell.pickable{cursor:pointer;border-color:var(--gold);background:#ffe5968c;animation:1.1s ease-in-out infinite breathe}.preview-row{flex-shrink:0;justify-content:center;align-items:center;height:52px;display:flex}.preview{background:var(--accent);color:#fff;letter-spacing:.1em;white-space:nowrap;border-radius:14px;padding:6px 18px;font-size:27px;font-weight:900;box-shadow:0 6px 18px #0000002e}.preview.live{animation:.12s ease-out preview-in}.preview.note{background:var(--chrome);letter-spacing:0;box-shadow:none;font-size:14.5px;font-weight:800}.preview.result-found{background:var(--ok);animation:.75s ease-in forwards result-up}.preview.flying{animation:.35s forwards fade-out}.preview.flying .pl{visibility:hidden}.preview.result-bonus{background:var(--gold);color:var(--ink);animation:.85s cubic-bezier(.5,0,.75,.4) forwards to-jar}.preview.result-bonus.flying{animation:.3s forwards fade-out}.preview.result-repeat{background:var(--warn);letter-spacing:.02em;font-size:17px;animation:.45s both shake,.4s .9s forwards fade-out}.preview.result-invalid{background:var(--bad);animation:.45s both shake,.35s .55s forwards fade-out}.preview.result-short{background:var(--chrome);animation:.3s forwards fade-out}.play-area{flex-shrink:0;justify-content:center;align-items:center;padding-bottom:6px;display:flex;position:relative}.wheel{aspect-ratio:1;touch-action:none;width:min(100% - 100px,340px,42vh);position:relative}.wheel-disc{background:radial-gradient(circle at 50% 40%,#ffffffeb,#ffffffc7);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 12px 34px #0003,inset 0 0 0 6px #ffffff80}.wheel.disabled .wheel-disc{opacity:.85}.wheel-lines{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.wheel-lines polyline{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;opacity:.9}.wheel-letter{color:var(--ink);pointer-events:none;border-radius:50%;place-items:center;font-weight:900;line-height:1;transition:left .4s cubic-bezier(.3,1.3,.5,1),top .4s cubic-bezier(.3,1.3,.5,1),background .12s,transform .12s,color .12s;display:grid;position:absolute}.wheel-letter.on{background:var(--accent);color:#fff;transform:scale(1.08);box-shadow:0 4px 12px #0003}.tutorial-hand{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.tutorial-trail{fill:none;stroke:#ffffffe6;stroke-width:6px;stroke-dasharray:2 12;stroke-linecap:round}.tutorial-finger{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.tutorial-dot,.tutorial-ring{border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.tutorial-dot{width:var(--dot);height:var(--dot);background:#fff;box-shadow:0 2px 6px #00000059}.tutorial-ring{width:var(--ring);height:var(--ring);border:4px solid var(--accent);opacity:.8}.side{flex-direction:column;gap:14px;display:flex;position:absolute;top:50%;transform:translateY(calc(-50% - 3px))}.side.left{left:0}.side.right{right:0}.action-btn{border:1.5px solid var(--chrome-line);background:var(--chrome);color:#fff;border-radius:50%;place-items:center;width:52px;height:52px;transition:transform .12s,background .2s;display:grid;position:relative;box-shadow:0 5px 14px #00000029}.action-btn:active{transform:scale(.9)}.action-btn.active{background:var(--accent)}.action-btn.jar{background:linear-gradient(to top, #ffc53db3 var(--fill,0%), var(--chrome) var(--fill,0%))}.action-btn .price{background:var(--gold);color:var(--ink);border-radius:999px;padding:1px 7px;font-size:11.5px;font-weight:900;position:absolute;bottom:-7px;left:50%;transform:translate(-50%);box-shadow:0 2px 4px #0003}.action-btn.coach:after{content:"";pointer-events:none;border:3px solid #fffc;border-radius:50%;animation:1.5s ease-out infinite coach-pulse;position:absolute;top:-1.5px;bottom:-1.5px;left:-1.5px;right:-1.5px}.action-btn.coach .price{background:var(--ok);color:#fff}.coach-mark{color:var(--ink);white-space:nowrap;pointer-events:none;background:#fff;border-radius:12px;padding:7px 11px;font-size:12.5px;font-weight:900;animation:1.4s ease-in-out infinite bob;position:absolute;bottom:calc(50% + 104px);right:0;box-shadow:0 6px 18px #0003}.coach-mark:after{content:"";border:7px solid #0000;border-top-color:#fff;border-bottom:none;position:absolute;bottom:-7px;right:19px}.chapter-tile{background:var(--chrome);border:1px solid var(--chrome-line);border-radius:20px;margin-bottom:12px;overflow:hidden}.chapter-tile.locked{opacity:.62}.chapter-summary{text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:10px;display:flex}.chapter-art{background:radial-gradient(circle at 72% 30%, #ffffffe6 0 7px, transparent 8px), linear-gradient(180deg, var(--c1) 0%, var(--c2) 55%, var(--c3) 56%, var(--c4) 100%);border-radius:14px;flex-shrink:0;width:64px;height:64px;box-shadow:inset 0 0 0 2px #ffffff59}.chapter-info{flex-direction:column;flex:1;gap:2px;display:flex}.chapter-info strong{font-size:16.5px}.chapter-info small{opacity:.85;font-size:12.5px;font-weight:700}.chapter-status{text-align:right;min-width:44px;font-weight:900}.level-dots{grid-template-columns:repeat(5,1fr);gap:10px;padding:4px 14px 16px;display:grid}.level-dot{aspect-ratio:1;background:#ffffff38;border:none;border-radius:50%;font-size:15px;font-weight:900}.level-dot.solved{background:var(--paper);color:var(--accent-deep)}.level-dot.current{background:var(--accent);animation:1.4s ease-in-out infinite breathe;box-shadow:0 0 0 4px #ffffff8c}.level-dot.locked{opacity:.45}.journey-foot{color:#fff;opacity:.9;text-shadow:0 1px 6px #0000004d;padding:6px 20px 0}.achievements{gap:10px;margin:0;padding:0;list-style:none;display:grid}.achievements li{background:var(--paper);color:var(--ink);border-radius:16px;align-items:center;gap:12px;padding:12px;display:flex}.achievements li.ready{box-shadow:0 0 0 3px var(--gold)}.achievements li.claimed{opacity:.72}.trophy-icon{width:44px;height:44px;color:var(--ink-soft);background:#eef0f8;border-radius:14px;flex-shrink:0;place-items:center;display:grid}.achievements li.ready .trophy-icon{color:#fff;background:linear-gradient(160deg,#ffd766,#f5a623);box-shadow:0 3px #c98110}.achievements li.claimed .trophy-icon{color:#e0a100;background:#fff4d6}.achievement-progress{align-items:center;gap:8px;margin-top:3px;display:flex}.achievement-progress .bar{flex:1}.achievement-progress small{font-variant-numeric:tabular-nums;font-size:12px}.achievement-body{flex-direction:column;flex:1;gap:2px;display:flex}.achievement-body small{color:var(--ink-soft);font-weight:700}.reward-preview{color:var(--gold-deep);align-items:center;gap:4px;font-weight:900;display:inline-flex}.claimed-check{color:var(--ok)}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stat-grid>div{background:var(--chrome);border:1px solid var(--chrome-line);border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:16px 8px;display:flex}.stat-grid strong{font-size:26px;font-weight:900}.stat-grid span{opacity:.85;font-size:12.5px;font-weight:800}.stat-grid.compact{grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0 4px}.stat-grid.compact>div{background:var(--paper-2);color:var(--ink);border:none;padding:10px 4px}.stat-grid.compact strong{font-size:19px}.btn{border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;height:52px;padding:0 16px;font-size:16px;font-weight:900;transition:transform .1s,box-shadow .1s;display:inline-flex}.btn:active:not(:disabled){transform:translateY(3px)}.btn:disabled{opacity:.55}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 4px 0 var(--accent-deep)}.btn.secondary{color:var(--ink);background:#eef1fb;box-shadow:0 4px #d3d9ee}.btn.danger{background:var(--bad);color:#fff;box-shadow:0 4px #c62828}.btn.small{border-radius:12px;gap:4px;height:36px;padding:0 12px;font-size:14px}.link-btn{color:var(--ink-soft);background:0 0;border:none;align-items:center;gap:6px;margin-top:14px;font-weight:800;display:inline-flex}.modal-backdrop{z-index:50;padding:calc(var(--safe-top) + 12px) 14px calc(var(--safe-bottom) + 12px);background:#0a0e2294;justify-content:center;align-items:center;animation:.2s ease-out both fade-in;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--paper);width:100%;max-width:440px;max-height:100%;color:var(--ink);-webkit-user-select:text;user-select:text;border-radius:26px;padding:18px 18px 20px;animation:.32s cubic-bezier(.2,1.1,.3,1) both sheet-up;position:relative;overflow-y:auto;box-shadow:0 24px 60px #00000059}.modal-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.modal-header h2{font-size:22px;font-weight:900}.modal-actions{gap:10px;margin-top:18px;display:flex}.modal-actions>.btn{white-space:nowrap;flex:1}.modal-actions.stacked{flex-direction:column}.modal-actions.stacked>.btn{flex:none}.celebrate{text-align:center;margin-top:36px;overflow:visible}.confetti{pointer-events:none;z-index:60;width:100vw;height:100vh;position:fixed;top:0;bottom:0;left:0;right:0}.celebrate-badge{border:5px solid var(--paper);background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:76px;height:76px;margin:-56px auto 8px;animation:.6s cubic-bezier(.2,1.4,.4,1) both tile-in;display:grid;box-shadow:0 8px 20px #0003}.celebrate-title{color:var(--accent-deep);font-size:31px;font-weight:900}.level-progress{gap:4px;margin:12px 4px 4px;display:grid}.level-progress small{color:var(--ink-soft);font-size:12.5px;font-weight:800}.reward-rows{gap:8px;margin:14px 0 6px;display:grid}.reward-row{background:var(--paper-2);text-align:left;border-radius:14px;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-weight:800;display:flex}.reward-row strong{color:var(--gold-deep);white-space:nowrap;align-items:center;gap:6px;font-size:20px;display:inline-flex}.reward-row.highlight{background:#fff4d6}.reward-row.challenge{color:#c2410c;background:#ffe9dc}.reward-row.challenge>span{align-items:center;gap:6px;display:inline-flex}.next-chapter{color:var(--accent-deep);margin:6px 0;font-weight:900}.word-chips{flex-wrap:wrap;justify-content:center;gap:6px;margin:12px 0 4px;display:flex}.chip{background:var(--accent-pale);color:var(--ink);letter-spacing:.05em;border:none;border-radius:10px;padding:6px 10px;font-size:13px;font-weight:900}.chip.bonus{background:#fff1c7}.hint-text{color:var(--ink-soft);font-size:12px;font-weight:700}.streak-banner{color:#e65100;background:#fff1e0;border-radius:16px;justify-content:center;align-items:center;gap:8px;margin:14px 0 8px;padding:10px;font-size:17px;font-weight:800;display:flex}.streak-coins{color:var(--gold-deep);align-items:center;gap:4px;margin-left:6px;font-weight:900;display:inline-flex}.countdown{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:900}.gift-days{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px;display:grid}.gift-day{background:var(--paper-2);border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-weight:900;display:flex}.gift-day.big{background:#fff1e0;grid-column:span 2}.gift-label{color:var(--ink-soft);font-size:11.5px;font-weight:800}.gift-day.today{box-shadow:0 0 0 3px var(--gold);background:#fff4d6;animation:1.6s ease-in-out infinite breathe}.gift-day.past{opacity:.55;color:var(--ok)}.shop-balance{justify-content:center;align-items:center;gap:8px;margin-bottom:14px;font-size:28px;font-weight:900;display:flex}.shop-item{background:var(--paper-2);width:100%;color:var(--ink);text-align:left;border:none;border-radius:18px;align-items:center;gap:12px;margin-bottom:10px;padding:12px 14px;display:flex;position:relative}.shop-item.free{color:#1b7a47;background:#e6f7ed}.shop-item:disabled{opacity:.6}.shop-text{flex-direction:column;flex:1;gap:2px;display:flex}.shop-text strong{color:var(--ink);font-size:16px}.shop-text small{color:var(--ink-soft);font-weight:700}.shop-price{background:var(--accent);color:#fff;white-space:nowrap;border-radius:12px;align-items:center;gap:4px;padding:8px 12px;font-weight:900;display:inline-flex}.shop-badge{color:#fff;background:#ff4d4f;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:900;position:absolute;top:-8px;left:14px}.settings{flex-direction:column;display:flex}.toggle-row{cursor:pointer;border-bottom:1px solid #ece8de;align-items:center;gap:12px;padding:12px 2px;font-weight:800;display:flex;position:relative}.toggle-icon{color:var(--accent-deep);display:grid}.toggle-label{flex:1}.toggle-row input{opacity:0;width:1px;height:1px;position:absolute}.switch{background:#cfd3e0;border-radius:15px;width:50px;height:30px;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 4px #0003}.toggle-row input:checked+.switch{background:var(--ok)}.toggle-row input:checked+.switch:after{transform:translate(20px)}.toggle-row input:focus-visible+.switch{outline:3px solid var(--gold);outline-offset:2px}.settings-links{flex-direction:column;margin-top:6px;display:flex}.list-btn{width:100%;color:var(--ink);text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:12px 2px;font-size:15px;font-weight:800;text-decoration:none;display:flex}.list-btn svg{color:var(--accent-deep)}.list-btn.danger,.list-btn.danger svg{color:var(--bad)}.credits{color:var(--ink-soft);margin-top:12px;font-size:11.5px;font-weight:600;line-height:1.5}.how-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.how-list li{align-items:flex-start;gap:12px;display:flex}.how-list li>span:last-child{flex-direction:column;gap:2px;display:flex}.how-list small{color:var(--ink-soft);font-weight:700;line-height:1.4}.how-icon{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.definition-word{letter-spacing:.04em;margin-bottom:8px;font-size:26px;font-weight:900}.phonetic{letter-spacing:0;color:var(--ink-soft);margin-left:8px;font-size:15px;font-weight:700}.meaning{margin-bottom:10px}.meaning em{color:var(--accent-deep);font-weight:800}.meaning ol{margin:4px 0 0;padding-left:20px;font-weight:600;line-height:1.45}.meaning .example{color:var(--ink-soft);margin:4px 0 0 20px;font-style:italic;font-weight:600}.form-of{color:var(--ink-soft);border-top:1.5px dashed #1d234024;margin:14px 0 6px;padding-top:12px;font-weight:700}.form-of strong{color:var(--accent-deep);letter-spacing:.04em}.definition .source{color:var(--ink-soft);opacity:.75;margin:14px 0 0;font-size:11.5px;font-weight:600}.jar-progress{gap:6px;margin-bottom:10px;display:grid}.jar-progress .bar{background:#eceef5}.jar-progress small{color:var(--ink-soft);align-items:center;gap:4px;font-weight:800;display:inline-flex}.toasts{top:calc(var(--safe-top) + 64px);z-index:80;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:92vw;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{color:#fff;background:#12162eeb;border-radius:14px;align-items:center;gap:8px;padding:10px 14px;font-size:14px;font-weight:800;animation:.3s cubic-bezier(.2,1.2,.4,1) both toast-in,.3s 2.1s forwards fade-out;display:flex;box-shadow:0 8px 22px #0000004d}.toast-trophy svg{color:var(--gold)}.mock-ad{z-index:100;background:#0d0f1a;place-items:center;padding:24px;animation:.2s both fade-in;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.mock-ad-card{text-align:center;border:2px dashed #ffffff4d;border-radius:22px;flex-direction:column;gap:10px;max-width:300px;padding:28px 22px;display:flex}.mock-ad-card small{text-transform:uppercase;letter-spacing:.14em;opacity:.7;font-weight:800}.mock-ad-card strong{font-size:22px}.mock-ad-close{top:calc(var(--safe-top) + 14px);color:#fff;background:#ffffff29;border:none;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;right:14px}.mock-ad-close:disabled{opacity:.35}@keyframes fade-in{0%{opacity:0}}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}}@keyframes fade-out{to{opacity:0}}@keyframes sheet-up{0%{opacity:0;transform:translateY(36px)scale(.96)}}@keyframes tile-in{0%{opacity:0;transform:translateY(-24px) scale(.5) rotate(var(--tilt,0deg))}}@keyframes pop-a{0%,15%{box-shadow:none;color:#0000;background:#fff6;border-color:#fffc;transform:scale(1)}16%{background:var(--accent-light);color:var(--ink);transform:scale(.86)}60%{background:var(--accent-pale);transform:scale(1.12)}to{transform:scale(1)}}@keyframes pop-b{0%,15%{box-shadow:none;color:#0000;background:#fff6;border-color:#fffc;transform:scale(1)}16%{background:var(--accent-light);color:var(--ink);transform:scale(.86)}60%{background:var(--accent-pale);transform:scale(1.12)}to{transform:scale(1)}}@keyframes flash-a{30%{background:#ffe0a3;transform:scale(1.12)}}@keyframes flash-b{30%{background:#ffe0a3;transform:scale(1.12)}}@keyframes glow{0%{box-shadow:none;color:#0000;background:#fff6;border-color:#fffc;transform:scale(1)}1%{box-shadow:0 0 0 0 var(--gold);background:#fff3c4;transform:scale(.8)}50%{transform:scale(1.14);box-shadow:0 0 0 7px #ffc53d8c}to{transform:scale(1)}}@keyframes breathe{50%{transform:scale(1.06)}}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}@keyframes preview-in{0%{transform:scale(.85)}}@keyframes result-up{0%{transform:scale(1.08)}30%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-46px)scale(.9)}}@keyframes to-jar{20%{opacity:1;transform:scale(1.08)}to{opacity:0;transform:translate(-38vw,18vh)scale(.2)}}@keyframes coin-float{0%{opacity:0;transform:translateY(0)scale(.6)}20%{opacity:1;transform:translateY(4px)scale(1.1)}to{opacity:0;transform:translateY(26px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{0%{opacity:1;transform:scale(1)}70%,to{opacity:0;transform:scale(2.7)}}@keyframes coach-pulse{0%{opacity:1;transform:scale(1)}80%,to{opacity:0;transform:scale(1.6)}}@keyframes bob{50%{transform:translateY(-5px)}}@keyframes toast-in{0%{opacity:0;transform:translateY(-14px)scale(.9)}}@keyframes drift-up{0%{opacity:0;transform:translateY(105vh)}10%,85%{opacity:1}to{transform:translate(var(--drift), -8vh);opacity:0}}@keyframes fall{0%{transform:translateY(-6vh)}to{transform:translate(var(--drift), 105vh)}}@keyframes fall-spin{0%{transform:translateY(-6vh)rotate(0)}to{transform:translate(var(--drift), 105vh) rotate(560deg)}}@keyframes twinkle{0%,to{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}@keyframes aurora{0%{opacity:.45;transform:translate(-24px)skew(-4deg)}to{opacity:.75;transform:translate(24px)skew(4deg)}}@media (prefers-reduced-motion:reduce){.particles{display:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-height:640px){.logo-tile{width:38px;font-size:24px}.play-btn{height:66px}.preview-row{height:44px}.preview{font-size:22px}}@media (orientation:landscape) and (max-height:540px){.stage:has(>.game){max-width:980px}.stage:has(>.home){max-width:980px}.screen.home{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;display:grid}.home>.topbar{grid-area:1/1}.home>.home-hero{grid-area:2/1}.home>.bottom-nav{grid-area:3/1}.home>.home-actions{grid-area:1/2/4;align-self:center;padding-bottom:0}.screen.game{grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px;display:grid}.game>.topbar{grid-area:1/1}.game>.words-left{grid-area:2/1;justify-self:center}.game>.grid-wrap{grid-area:3/1;min-height:0}.game>.preview-row{grid-area:1/2/3;height:auto;min-height:44px}.game>.play-area{grid-area:3/2;min-height:0}.wheel{width:min(calc(100% - 120px), 340px, calc(100dvh - var(--safe-top) - var(--safe-bottom) - 100px))}}.fly-layer{z-index:45;pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}.fly-letter{color:#fff;text-shadow:0 2px 6px #00000059;will-change:transform;place-items:center;font-weight:900;line-height:1;display:grid;position:fixed}.praise{z-index:5;color:#fff;letter-spacing:.02em;white-space:nowrap;pointer-events:none;text-shadow:0 3px 0 var(--accent-deep);background:#1d23409e;border-radius:22px;padding:2px 20px 6px;font-size:32px;font-weight:900;animation:1.3s cubic-bezier(.2,1.3,.4,1) both praise;position:absolute;top:42%;left:50%;box-shadow:0 8px 22px #00000040}.cell.coin-cell{position:relative}.coin-mark{place-items:center;animation:2.4s ease-in-out infinite coin-bob;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.coin-pop{pointer-events:none;place-items:center;animation:.25s ease-out .36s both coin-pop;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.fly-coin{will-change:transform;place-items:center;display:grid;position:fixed}.fly-coin>svg{filter:drop-shadow(0 3px 6px #00000040);width:100%;height:100%}@keyframes praise{0%{opacity:0;transform:translate(-50%,10px)scale(.4)}25%{opacity:1;transform:translate(-50%)scale(1.08)}70%{opacity:1;transform:translate(-50%,-8px)scale(1)}to{opacity:0;transform:translate(-50%,-30px)scale(.96)}}@keyframes coin-bob{50%{transform:translateY(-2px)rotate(-6deg)}}@keyframes coin-pop{to{opacity:0;transform:scale(1.6)}}.topbar-right{align-items:center;gap:8px;display:flex}.piggy-chip{border:1px solid var(--chrome-line);background:var(--chrome);color:#ffd1e3;border-radius:999px;align-items:center;gap:5px;height:40px;padding:0 11px 0 9px;font-size:14px;font-weight:900;display:inline-flex}.piggy-chip span{color:#fff}.piggy-chip.ready{color:#fff;background:#e0417f;animation:1.6s ease-in-out infinite breathe}.offer-ribbon-btn{color:#fff;background:linear-gradient(90deg,#ff6f61,#e0417f);border:none;border-radius:16px;align-items:center;gap:8px;padding:9px 12px;font-size:14.5px;font-weight:800;display:flex;box-shadow:0 6px 16px #e0417f59}.offer-ribbon-btn>span:nth-child(2){text-align:left;flex:1}.countdown-chip{font-variant-numeric:tabular-nums;background:#00000038;border-radius:999px;padding:3px 8px;font-size:12.5px}.offer-card{text-align:left;background:linear-gradient(135deg,#fff1e6,#ffe0ee);border-radius:20px;margin-bottom:12px;padding:16px;position:relative;box-shadow:inset 0 0 0 2px #ffb3cc}.offer-ribbon{color:#fff;background:#e0417f;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:900;position:absolute;top:-9px;right:14px}.offer-head{flex-direction:column;gap:2px;margin-bottom:10px;display:flex}.offer-head strong{font-size:19px}.offer-head small{color:#b8336a;font-variant-numeric:tabular-nums;font-weight:800}.offer-items{gap:6px;margin:0 0 12px;padding:0;list-style:none;display:grid}.offer-items li{align-items:center;gap:8px;font-weight:800;display:flex}.btn.wide{width:100%}.piggy-card{text-align:left;background:#ffeaf3;border-radius:18px;align-items:center;gap:12px;margin-bottom:10px;padding:12px 14px;display:flex}.piggy-icon{color:#fff;background:#f7a8c8;border-radius:50%;flex-shrink:0;place-items:center;width:48px;height:48px;display:grid}.piggy-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.piggy-body small{color:var(--ink-soft);font-weight:700}.piggy-bar{background:#fbd3e3;height:7px}.piggy-bar>span{background:#e0417f}.piggy-amount{align-items:center;gap:4px;display:inline-flex}.pack-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:10px;display:grid}.pack{background:var(--paper-2);color:var(--ink);border:none;border-radius:18px;flex-direction:column;align-items:center;gap:2px;padding:16px 8px 10px;display:flex;position:relative}.pack strong{font-size:20px}.pack small{color:var(--ink-soft);margin-bottom:6px;font-weight:700}.pack .shop-badge{white-space:nowrap;left:50%;transform:translate(-50%)}.pack:disabled{opacity:.6}.coin-pile{justify-content:center;align-items:flex-end;height:44px;display:flex;position:relative}.coin-pile>span{transform:translateY(calc(var(--i) * -3px)) rotate(calc(var(--i) * 8deg - 8deg));margin-left:-12px}.coin-pile>span:first-child{margin-left:0}.shop-price.coins{background:var(--paper);color:var(--gold-deep);box-shadow:inset 0 0 0 2px #f3d9a0}.quest-list{gap:10px;margin:12px 0;padding:0;list-style:none;display:grid}.quest-list li,.quest-chest{background:var(--paper-2);border-radius:16px;align-items:center;gap:12px;padding:12px;display:flex}.quest-list li.ready{box-shadow:0 0 0 3px var(--gold)}.quest-list li.claimed{opacity:.65}.quest-icon{background:var(--accent);color:#fff;border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.quest-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.quest-body small{color:var(--ink-soft);font-weight:700}.quest-chest{color:#b8860b;background:#fff4d6}.quest-chest .quest-body strong{color:var(--ink)}.quest-chest.ready{box-shadow:0 0 0 3px var(--gold)}.quest-chest.ready>svg{animation:1.6s ease-in-out infinite breathe}.offer-modal .link-btn,.reminder-modal .link-btn{margin:10px auto 0;display:flex}.reminder-modal .btn.wide{margin-top:14px}.doc h2{margin:18px 0 4px;font-size:16px}.doc p,.doc li{color:var(--ink-soft);margin:0 0 8px;font-size:14.5px;font-weight:600;line-height:1.5}.doc ul{margin:0;padding-left:20px}.doc a{color:var(--accent-deep)}.doc strong{color:var(--ink)}.licenses details{background:var(--paper-2);border-radius:14px;margin-bottom:8px}.licenses summary{cursor:pointer;flex-direction:column;gap:1px;padding:10px 14px;list-style:none;display:flex}.licenses summary::-webkit-details-marker{display:none}.licenses summary small{color:var(--ink-soft);font-weight:700}.licenses pre{white-space:pre-wrap;max-height:260px;color:var(--ink-soft);margin:0;padding:0 14px 12px;font-size:11.5px;line-height:1.45;overflow:auto}.challenge-tag{color:#ffd29a;align-items:center;gap:4px;display:inline-flex!important}.challenge-banner{z-index:6;color:#fff;white-space:nowrap;pointer-events:none;background:linear-gradient(135deg,#ff8a3d,#e0417f);border-radius:18px;align-items:center;gap:10px;padding:10px 16px 10px 12px;animation:3s cubic-bezier(.2,1.2,.4,1) .35s both challenge-in;display:flex;position:absolute;top:6px;left:50%;box-shadow:0 10px 26px #e0417f66}.challenge-banner>span{flex-direction:column;line-height:1.15;display:flex}.challenge-banner strong{font-size:17px;font-weight:900}.challenge-banner small{opacity:.95;align-items:center;gap:4px;font-size:12.5px;font-weight:800;display:inline-flex}.play-btn.challenge{background:linear-gradient(#ff9a52,#e8505b);box-shadow:0 6px #b8324a,0 16px 32px #00000038}.play-btn.challenge:active{box-shadow:0 2px #b8324a,0 8px 18px #0003}.play-btn small{align-items:center;gap:5px;display:inline-flex}.level-dot{position:relative}.level-dot.challenge.locked,.level-dot.challenge.solved{box-shadow:inset 0 0 0 2.5px #ff8a3d}.dot-flame{color:#fff;background:linear-gradient(135deg,#ff9a52,#e8505b);border-radius:50%;place-items:center;width:20px;height:20px;display:grid;position:absolute;top:-3px;right:-3px}.chapter-path .path-stop.challenge{border-radius:4px;width:13px;height:13px;transform:rotate(45deg)}.chapter-path .path-stop.challenge.todo{background:#ff9a52}.chapter-path.on-light .path-stop.challenge.todo{background:#ffb27d}.chapter-path .path-stop.challenge.next{background:#fff;border-radius:5px;box-shadow:0 0 0 3px #ff8a3d,0 0 12px 3px #ff8a3d99}.fly-spark{will-change:transform;background:radial-gradient(circle,#fff 0 25%,#ffd766 45%,#ffb02000 72%);border-radius:50%;width:22px;height:22px;position:fixed}.fly-rocket{color:#fff;filter:drop-shadow(0 3px 6px #00000059);will-change:transform;place-items:center;width:34px;height:34px;display:grid;position:fixed}.fly-rocket>svg{width:30px;height:30px}.coin-slot{display:inline-flex}.coin-slot.bump{animation:.45s cubic-bezier(.2,1.6,.4,1) coin-bump}.streak-banner svg{animation:.6s ease-in-out .4s 3 flicker}@keyframes challenge-in{0%{opacity:0;transform:translate(-50%,-24px)scale(.85)}12%{opacity:1;transform:translate(-50%)scale(1)}85%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-12px)scale(.96)}}@keyframes coin-bump{40%{transform:scale(1.35)}}@keyframes flicker{30%{transform:scale(1.18)rotate(-6deg)}65%{transform:scale(.95)rotate(4deg)}}
