:root{--ink:#203027;--muted:#617065;--paper:#fbfcf8;--card:rgba(255,255,255,.88);--line:rgba(46,76,57,.15);--shadow:0 18px 48px rgba(35,60,43,.12);--season:#d87935;--season-dark:#984320;--accent:#2c8f73;--accent-soft:#d9f2e8;--navy:#244b36;--warm:#fff1cd;--danger:#c44352;--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;color:var(--ink);background:linear-gradient(145deg,#fcf8ec 0%,var(--paper) 45%,#ecf7ef 100%);font-family:ui-rounded,"Nunito",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body[data-season="winter"]{--season:#5e9fd0;--season-dark:#2e628f;--accent:#4d7fa4;--accent-soft:#e1f2fb;--warm:#e7f5ff;background:linear-gradient(150deg,#f0f8fd,#fbfdff 48%,#e9f5f1)}body[data-season="spring"]{--season:#e06587;--season-dark:#a83760;--accent:#398f68;--accent-soft:#dff5e8;--warm:#ffecf3;background:linear-gradient(150deg,#fff5f8,#f8fff8 48%,#e9f8ef)}body[data-season="summer"]{--season:#e7a42c;--season-dark:#a8670f;--accent:#167e98;--accent-soft:#dcf6f6;--warm:#fff5d2;background:linear-gradient(150deg,#fffbe8,#fcfff9 48%,#e7f9fc)}body[data-season="autumn"]{--season:#d87935;--season-dark:#984320;--accent:#2c8f73;--accent-soft:#d9f2e8;--warm:#fff1cd;background:linear-gradient(150deg,#fff7e8,#fcfaf5 48%,#edf8f0)}button,input,textarea{font:inherit}button{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 55%,white);outline-offset:3px}.ambient{position:fixed;z-index:-2;inset:0;overflow:hidden;pointer-events:none}.ambient-orb{position:absolute;width:39vw;height:39vw;min-width:250px;min-height:250px;border-radius:50%;filter:blur(74px);opacity:.2}.orb-a{top:-18vw;right:-7vw;background:var(--season)}.orb-b{left:-20vw;bottom:-20vw;background:var(--accent)}.orb-c{right:21%;bottom:-30vw;background:#f3c650}.app-shell{min-height:100vh;padding-bottom:90px}.appbar{position:sticky;top:0;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px max(4vw,18px);border-bottom:1px solid var(--line);background:rgba(255,255,255,.76);backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:10px;min-width:0;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;flex:0 0 43px;width:43px;height:43px;border-radius:15px;background:linear-gradient(135deg,var(--season),var(--accent));box-shadow:0 9px 23px color-mix(in srgb,var(--season) 36%,transparent);font-size:23px}.brand strong{display:block;font-size:16px;letter-spacing:-.3px}.brand small{display:block;overflow:hidden;margin-top:2px;color:var(--muted);font-size:11px;white-space:nowrap;text-overflow:ellipsis}.header-actions{display:flex;align-items:center;gap:7px}.header-chip,.season-chip,.count-badge{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;font-size:11px;font-weight:800}.header-chip{padding:8px 10px;color:#6a4c11;background:var(--warm)}.season-chip{max-width:160px;padding:8px 10px;color:var(--season-dark);background:color-mix(in srgb,var(--season) 13%,white);cursor:pointer;white-space:nowrap}.icon-action{display:grid;place-items:center;width:37px;height:37px;padding:0;border:1px solid var(--line);border-radius:12px;color:var(--ink);background:rgba(255,255,255,.78);cursor:pointer;font-size:18px;transition:.2s}.icon-action:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.main-content{width:min(1140px,calc(100% - 32px));margin:auto}.view{display:none;padding:38px 0 32px;animation:view-in .34s ease}.view.active{display:block}.view-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.view-heading h1{margin:2px 0 0;color:#244b36;font-size:clamp(30px,4.2vw,47px);line-height:1.05;letter-spacing:-1.8px}.eyebrow{display:block;margin:0 0 7px;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:1.55px}.muted{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.profile-switch,.filters{display:flex;flex-wrap:wrap;gap:6px}.profile-switch{justify-content:flex-end}.profile-option,.filter-button,.subject-chip{border:1px solid var(--line);border-radius:11px;color:var(--muted);background:rgba(255,255,255,.68);cursor:pointer;font-size:11px;font-weight:700;transition:.18s}.profile-option,.filter-button{padding:8px 10px}.profile-option:hover,.profile-option.selected,.filter-button:hover,.filter-button.active{border-color:color-mix(in srgb,var(--accent) 55%,white);color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.season-banner{position:relative;display:flex;align-items:center;gap:17px;overflow:hidden;padding:17px 19px;margin-bottom:18px;border:1px solid color-mix(in srgb,var(--season) 24%,white);border-radius:var(--radius);background:linear-gradient(112deg,color-mix(in srgb,var(--season) 16%,white),rgba(255,255,255,.82) 50%,color-mix(in srgb,var(--accent) 13%,white));box-shadow:var(--shadow)}.season-banner:after{position:absolute;right:-65px;bottom:-85px;width:220px;height:220px;border:20px solid color-mix(in srgb,var(--season) 18%,transparent);border-radius:50%;content:""}.season-scene{position:relative;display:grid;place-items:center;flex:0 0 82px;width:82px;height:82px;border-radius:25px;color:#fff;background:linear-gradient(135deg,var(--season),var(--accent));box-shadow:inset 0 1px rgba(255,255,255,.4),0 11px 22px color-mix(in srgb,var(--season) 27%,transparent)}.season-scene #seasonEmoji{font-size:39px}.season-scene #companionEmoji{position:absolute;right:-7px;bottom:-8px;display:grid;place-items:center;width:34px;height:34px;border:2px solid white;border-radius:50%;background:var(--paper);font-size:20px}.season-copy{position:relative;z-index:1;flex:1}.season-copy h2{margin:0;color:var(--season-dark);font-size:20px;letter-spacing:-.5px}.season-copy p{max-width:680px;margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.season-meter,.world-progress,.level-bar{height:8px;overflow:hidden;border-radius:99px;background:rgba(46,76,57,.12)}.season-meter{max-width:570px;margin:11px 0 4px}.season-meter span,.world-progress span,.level-bar span,.summary-bar span,.game-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--season),var(--accent));transition:width .7s cubic-bezier(.2,.8,.2,1)}.season-copy small{color:var(--season-dark);font-size:10px;font-weight:800}.outline-button,.small-action,.secondary-action{padding:8px 11px;border:1px solid color-mix(in srgb,var(--accent) 42%,white);border-radius:10px;color:var(--accent);background:rgba(255,255,255,.62);cursor:pointer;font-size:11px;font-weight:800;transition:.18s}.outline-button{position:relative;z-index:1;white-space:nowrap}.outline-button:hover,.small-action:hover,.secondary-action:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}.days{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:18px}.day-tab{padding:12px 9px;border:1px solid var(--line);border-radius:15px;color:var(--muted);background:rgba(255,255,255,.74);cursor:pointer;text-align:left;transition:.2s}.day-tab b{display:block;color:var(--ink);font-size:14px}.day-tab small{display:block;margin-top:3px;font-size:10px}.day-tab:hover{border-color:var(--accent);transform:translateY(-2px)}.day-tab.active{color:#fff;background:linear-gradient(135deg,var(--season-dark),var(--accent));box-shadow:0 8px 19px color-mix(in srgb,var(--accent) 26%,transparent)}.day-tab.active b,.day-tab.active small{color:#fff}.day-tab.today:not(.active){box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--season) 65%,white)}.plan-layout{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:16px}.today-panel,.day-summary,.task-card,.game-card,.collection-panel,.progress-cards>div,.badges-panel,.notebook-card,.feedback-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}.today-panel{padding:20px}.panel-heading,.collection-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-heading h2,.collection-heading h2{margin:0;color:#244b36;font-size:22px;letter-spacing:-.6px}.panel-actions{display:flex;align-items:center;gap:8px}.count-badge{padding:6px 9px;color:var(--accent);background:var(--accent-soft);white-space:nowrap}.optional-note{margin:8px 0 12px;color:var(--muted);font-size:11px}.lesson-list{display:grid;gap:9px}.lesson-card{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid color-mix(in srgb,var(--line) 75%,white);border-left:4px solid color-mix(in srgb,var(--season) 70%,white);border-radius:15px;background:rgba(255,255,255,.68);transition:.2s;animation:card-in .3s both}.lesson-card:hover{border-color:color-mix(in srgb,var(--accent) 40%,white);transform:translateX(2px)}.lesson-card.done{opacity:.66;border-left-color:#42a76b;background:#f0faef}.lesson-time{flex:0 0 54px;color:#244b36;font-size:12px}.lesson-time b{display:block}.lesson-time span{display:block;margin-top:2px;color:var(--muted);font-size:10px}.lesson-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--accent-soft);font-size:18px}.lesson-body{flex:1;min-width:0}.lesson-body h3{margin:0;font-size:14px}.lesson-body p{margin:3px 0 0;color:var(--muted);font-size:11px}.optional-tag{display:inline-block;margin-top:4px;padding:2px 6px;border-radius:6px;color:var(--season-dark);background:var(--warm);font-size:9px;font-weight:800}.lesson-check{width:34px;height:34px;border:2px solid color-mix(in srgb,var(--accent) 25%,white);border-radius:50%;color:var(--accent);background:#fff;cursor:pointer;font-size:17px;transition:.18s}.lesson-check:hover{border-color:var(--accent);transform:scale(1.08)}.lesson-check.checked{border-color:#42a76b;color:#fff;background:#42a76b}.empty-state{grid-column:1/-1;padding:34px;border:1px dashed color-mix(in srgb,var(--accent) 40%,white);border-radius:17px;color:var(--muted);background:rgba(255,255,255,.55);text-align:center}.empty-state strong{display:block;margin:7px;color:var(--ink)}.empty-state p{margin:0;font-size:12px}.day-summary{align-self:start;padding:22px;color:#fff;background:linear-gradient(145deg,var(--season-dark),var(--accent))}.day-summary .eyebrow{color:rgba(255,255,255,.78)}.summary-icon{font-size:32px}.day-summary strong{display:block;margin-top:5px;font-size:27px}.day-summary p{margin:4px 0;color:rgba(255,255,255,.8);font-size:12px}.summary-bar{height:7px;margin:15px 0 23px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.25)}.summary-bar span{background:#fff2b8}.day-summary hr{border:0;border-top:1px solid rgba(255,255,255,.22);margin:0 0 19px}.day-summary small{display:block;margin-top:5px;color:rgba(255,255,255,.78);font-size:11px}.library-total{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:15px;color:var(--season-dark);background:var(--warm)}.library-total b{font-size:27px;line-height:1}.library-total span{font-size:10px;font-weight:800;line-height:1.25}.task-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.search-field{display:flex;align-items:center;gap:8px;flex:1;max-width:420px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.74);color:var(--muted)}.search-field input{width:100%;padding:11px 0;border:0;outline:none;color:var(--ink);background:transparent;font-size:12px}.subject-chips{display:flex;gap:7px;overflow-x:auto;margin:0 -2px 6px;padding:4px 2px 7px;scrollbar-width:thin}.subject-chip{padding:7px 10px;white-space:nowrap}.subject-chip.active,.subject-chip:hover{border-color:var(--season);color:var(--season-dark);background:var(--warm)}.library-result{margin:5px 0 13px;color:var(--muted);font-size:11px}.tasks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.task-card{position:relative;display:flex;gap:13px;padding:17px;overflow:hidden;transition:.2s}.task-card:before{position:absolute;top:0;right:0;width:88px;height:88px;border-radius:0 0 0 80px;background:color-mix(in srgb,var(--task-color,var(--season)) 10%,transparent);content:""}.task-card:hover{border-color:color-mix(in srgb,var(--accent) 37%,white);transform:translateY(-4px);box-shadow:0 19px 35px rgba(35,60,43,.13)}.task-card.completed{background:linear-gradient(135deg,#f5fcf5,rgba(255,255,255,.94))}.task-number{position:relative;z-index:1;display:grid;place-items:center;flex:0 0 37px;width:37px;height:37px;border-radius:12px;color:var(--season-dark);background:var(--warm);font-size:12px;font-weight:900}.task-content{position:relative;z-index:1;flex:1;min-width:0}.task-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.task-heading h3{margin:0;font-size:15px}.task-subject{display:block;margin-top:3px;color:var(--muted);font-size:10px}.difficulty{padding:4px 7px;border-radius:7px;color:#26764c;background:#ddf5e5;font-size:10px;font-weight:800;white-space:nowrap}.difficulty.medium{color:#a46509;background:#fff1cc}.difficulty.hard{color:#af4058;background:#ffe7ed}.task-card p{margin:11px 0;color:var(--muted);font-size:12px;line-height:1.45}.task-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:10px}.xp{margin-left:auto;color:var(--accent);font-weight:900}.complete-button,.play-button,.next-button{padding:8px 11px;border:0;border-radius:9px;color:#fff;background:linear-gradient(135deg,var(--season-dark),var(--accent));box-shadow:0 6px 13px color-mix(in srgb,var(--accent) 20%,transparent);font-size:11px;font-weight:900;cursor:pointer;transition:.2s}.complete-button:hover,.play-button:hover,.next-button:hover{filter:brightness(1.05);transform:translateY(-2px)}.complete-button.done-button{color:#287348;background:#dff5e6;box-shadow:none}.game-world{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:21px;margin-bottom:16px;border:1px solid color-mix(in srgb,var(--season) 28%,white);border-radius:var(--radius);background:linear-gradient(115deg,color-mix(in srgb,var(--season) 20%,white),rgba(255,255,255,.86),color-mix(in srgb,var(--accent) 14%,white));box-shadow:var(--shadow)}.world-copy{flex:1}.world-copy h2{margin:2px 0 7px;color:var(--season-dark);font-size:24px}.world-copy p{max-width:620px;margin:0;color:var(--muted);font-size:12px;line-height:1.45}.world-progress{max-width:560px;margin:14px 0 5px}.world-copy>small{color:var(--season-dark);font-size:10px;font-weight:800}.world-art{display:flex;flex-wrap:wrap;justify-content:center;gap:-8px;max-width:210px;padding:13px;border-radius:17px;background:rgba(255,255,255,.56);font-size:32px;letter-spacing:-8px}.games-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.game-card{position:relative;display:flex;flex-direction:column;min-height:238px;padding:18px;overflow:hidden}.game-card:after{position:absolute;right:-22px;bottom:-30px;color:color-mix(in srgb,var(--game-color,var(--season)) 15%,transparent);content:attr(data-symbol);font-size:125px;line-height:1}.game-card>*{position:relative;z-index:1}.game-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--game-color,var(--season)) 44%,white);box-shadow:0 19px 35px rgba(35,60,43,.13)}.game-icon{font-size:37px}.game-label{margin-top:10px;color:var(--accent);font-size:10px;font-weight:900;letter-spacing:1.2px}.game-card h2{margin:5px 0;color:#244b36;font-size:19px}.game-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.game-status{display:block;min-height:30px;margin-top:auto;padding-top:11px;color:var(--accent);font-size:10px;font-weight:800}.play-button{align-self:flex-start;background:linear-gradient(135deg,var(--game-color,var(--season-dark)),var(--accent))}.collection-panel,.badges-panel{padding:20px;margin-top:16px}.collection-panel .muted{margin-bottom:14px}.animal-collection{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.animal-card{display:grid;justify-items:center;gap:4px;min-width:0;padding:11px 6px;border:1px solid var(--line);border-radius:15px;color:var(--muted);background:rgba(255,255,255,.53);cursor:default;text-align:center;transition:.2s}.animal-card .animal-emoji{font-size:29px;filter:grayscale(1);opacity:.32}.animal-card b{max-width:100%;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.animal-card small{font-size:9px}.animal-card.unlocked{cursor:pointer;color:var(--ink);background:linear-gradient(145deg,#fff,var(--accent-soft))}.animal-card.unlocked .animal-emoji{filter:none;opacity:1}.animal-card.unlocked:hover,.animal-card.selected{border-color:var(--accent);transform:translateY(-2px)}.animal-card.selected{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 48%,white)}.progress-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:25px;border-radius:var(--radius);color:#fff;background:linear-gradient(135deg,var(--season-dark),var(--accent));box-shadow:var(--shadow)}.progress-hero .eyebrow{color:rgba(255,255,255,.76)}.progress-hero strong{display:block;font-size:29px}.progress-hero p{margin:7px 0 12px;color:rgba(255,255,255,.79);font-size:12px}.level-bar{max-width:410px;background:rgba(255,255,255,.2)}.level-bar span{background:#fff1b6}.big-xp{text-align:right}.big-xp b{font-size:42px}.big-xp span{color:rgba(255,255,255,.8);font-size:12px;font-weight:800}.progress-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:11px;margin-top:14px}.progress-cards>div{padding:17px}.progress-cards span{display:block;color:var(--muted);font-size:10px}.progress-cards b{display:block;margin-top:8px;color:#244b36;font-size:26px}.badges-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.badge{display:flex;align-items:center;gap:9px;padding:11px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.54)}.badge-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:12px;background:#edf0eb;filter:grayscale(1);font-size:20px}.badge.unlocked .badge-icon{background:var(--warm);filter:none}.badge b{display:block;font-size:11px}.badge small{display:block;margin-top:2px;color:var(--muted);font-size:9px;line-height:1.3}.more-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:15px}.settings-list{display:grid;gap:10px}.setting-row{display:flex;align-items:center;gap:13px;width:100%;padding:16px;border:1px solid var(--line);border-radius:16px;color:var(--ink);background:var(--card);box-shadow:0 8px 22px rgba(35,60,43,.06);cursor:pointer;text-align:left;transition:.18s}.setting-row:hover{border-color:color-mix(in srgb,var(--accent) 35%,white);transform:translateY(-2px)}.setting-icon{display:grid;place-items:center;flex:0 0 37px;width:37px;height:37px;border-radius:12px;background:var(--accent-soft);font-size:19px}.setting-row span:nth-child(2){flex:1}.setting-row b{display:block;font-size:13px}.setting-row small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.35}.setting-state{color:var(--accent);font-size:10px;font-weight:900}.setting-row.danger{color:#a13c4a}.setting-row.danger .setting-icon{background:#ffe8e9}.notebook-card,.feedback-card{padding:20px;margin-top:15px}.tool-heading{display:flex;align-items:flex-start;gap:10px}.tool-heading>span{font-size:24px}.tool-heading b{display:block;font-size:15px}.tool-heading small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.35}.notebook-card textarea,.feedback-form input,.feedback-form textarea,.editor-field input,.task-answer{display:block;width:100%;border:1px solid var(--line);border-radius:11px;color:var(--ink);background:rgba(255,255,255,.72);font-size:12px}.notebook-card textarea{min-height:145px;margin:15px 0 9px;padding:12px;resize:vertical;line-height:1.5}.tool-footer{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px}.feedback-card{align-self:start;margin-top:0}.content-note{margin:15px 0;color:var(--muted);font-size:11px;line-height:1.5}.feedback-form{display:grid;gap:11px}.feedback-form label{display:grid;gap:5px;color:var(--ink);font-size:11px;font-weight:800}.feedback-form input,.feedback-form textarea{padding:10px;resize:vertical}.feedback-form textarea{min-height:126px;line-height:1.45}.wide-button{width:100%;margin-top:3px}.privacy-note{margin:20px 0 0;color:var(--muted);font-size:11px;line-height:1.45}.tabbar{position:fixed;z-index:26;right:0;bottom:0;left:0;display:flex;justify-content:center;gap:4px;padding:8px max(12px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,255,255,.84);backdrop-filter:blur(18px)}.tab{display:flex;align-items:center;justify-content:center;gap:5px;min-width:89px;padding:9px 12px;border:0;border-radius:12px;color:var(--muted);background:transparent;cursor:pointer;font-size:11px;font-weight:800;transition:.18s}.tab span{font-size:16px}.tab:hover,.tab.active{color:var(--accent);background:var(--accent-soft)}.modal{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:18px;background:rgba(26,42,32,.54);backdrop-filter:blur(9px)}.modal.hidden{display:none}.game-box{position:relative;width:min(650px,100%);max-height:92vh;overflow:auto;padding:28px;border:1px solid color-mix(in srgb,var(--accent) 25%,white);border-radius:23px;background:#fffdfa;box-shadow:0 28px 90px rgba(24,48,34,.34);animation:zoom-in .25s ease}.compact-box{width:min(520px,100%)}.close-button{position:absolute;top:8px;right:12px;border:0;color:var(--muted);background:transparent;cursor:pointer;font-size:29px;line-height:1}.game-topline{display:flex;align-items:center;justify-content:space-between;padding-right:25px}.live-score{color:var(--season-dark);font-size:12px;font-weight:900}.game-progress{height:7px;margin-top:8px;overflow:hidden;border-radius:9px;background:#e6ebe4}.game-question{margin:23px 0 8px;color:#244b36;font-size:25px;line-height:1.2;letter-spacing:-.6px}.game-instruction{margin:0 0 17px;color:var(--muted);font-size:13px;line-height:1.5}.answers{display:grid;gap:9px}.answer-button{padding:13px;border:1px solid var(--line);border-radius:11px;color:var(--ink);background:#fbfdf9;cursor:pointer;text-align:left;transition:.18s}.answer-button:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);transform:translateX(3px)}.answer-button.correct{border-color:#42a76b;background:#e0f7e5}.answer-button.wrong{border-color:#df6b7b;background:#ffe7ea}.answer-button:disabled{cursor:default}.game-message{min-height:25px;margin:16px 0 0;color:var(--muted);font-size:13px;line-height:1.5}.feedback-good{color:#26764c;font-weight:900}.feedback-help{color:#a46509;font-weight:900}.next-button{display:block;margin:16px 0 0 auto}.result-card{display:grid;place-items:center;gap:8px;padding:27px 18px;border-radius:17px;background:linear-gradient(145deg,var(--warm),var(--accent-soft));text-align:center}.result-stars{font-size:53px}.result-card strong{font-size:20px}.result-card span{color:var(--muted);font-size:12px}.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.memory-card{height:96px;padding:0;border:0;background:transparent;perspective:700px;cursor:pointer}.memory-inner{position:relative;display:block;width:100%;height:100%;transition:transform .42s;transform-style:preserve-3d}.memory-card.flipped .memory-inner,.memory-card.matched .memory-inner{transform:rotateY(180deg)}.memory-front,.memory-back{position:absolute;inset:0;display:grid;place-items:center;border-radius:13px;backface-visibility:hidden}.memory-front{position:relative;color:var(--season-dark);background:linear-gradient(135deg,var(--warm),var(--accent-soft));font-size:27px;font-weight:900}.memory-back{padding:5px;color:#244b36;background:#edf8ef;transform:rotateY(180deg);text-align:center}.memory-back b{font-size:23px}.memory-back small{font-size:10px}.word-board{display:grid;gap:11px}.letter-bank{display:flex;flex-wrap:wrap;gap:7px}.letter-button{display:grid;place-items:center;min-width:38px;height:39px;padding:0 9px;border:1px solid var(--line);border-radius:10px;color:var(--season-dark);background:var(--warm);cursor:pointer;font-weight:900}.letter-button.used{opacity:.3;cursor:default}.built-word{min-height:50px;padding:9px;border:1px dashed var(--accent);border-radius:12px;color:#244b36;background:var(--accent-soft);font-size:20px;font-weight:900;letter-spacing:3px}.word-actions,.modal-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:14px}.task-stage{display:grid;gap:11px}.task-item{padding:12px;border:1px solid var(--line);border-radius:13px;background:#fbfdf9}.task-item b{display:block;font-size:12px;line-height:1.45}.task-item .task-answer{margin-top:8px;padding:9px}.task-hint{display:none;margin:8px 0 0;color:var(--season-dark);font-size:11px;line-height:1.4}.task-stage.show-hints .task-hint{display:block}.editor-box{width:min(720px,100%)}.editor-field{display:grid;grid-template-columns:1.25fr 1fr .6fr;gap:7px;margin:0 0 10px;padding:10px;border:1px solid var(--line);border-radius:11px}.editor-field legend{padding:0 5px;color:var(--accent);font-size:10px;font-weight:900}.editor-field input{min-width:0;padding:9px}.editor-actions{display:flex;justify-content:space-between;gap:10px;margin-top:16px}.editor-actions .next-button{margin:0}.season-options{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.season-option{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--line);border-radius:13px;color:var(--ink);background:#fff;cursor:pointer;text-align:left}.season-option:hover,.season-option.selected{border-color:var(--accent);background:var(--accent-soft)}.season-option .option-emoji{font-size:25px}.season-option b{display:block;font-size:12px}.season-option small{display:block;margin-top:2px;color:var(--muted);font-size:9px}.toast{position:fixed;z-index:70;bottom:80px;left:50%;max-width:calc(100% - 30px);padding:12px 16px;border:1px solid color-mix(in srgb,var(--accent) 32%,white);border-radius:12px;color:#fff;background:#284735;box-shadow:0 13px 40px rgba(0,0,0,.28);font-size:12px;font-weight:700;opacity:0;pointer-events:none;transform:translate(-50%,18px);transition:.25s}.toast.visible{opacity:1;transform:translate(-50%,0)}@keyframes view-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes card-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes zoom-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes float{50%{transform:translateY(-7px) rotate(3deg)}}@keyframes drift{50%{transform:translate(12px,-8px) scale(1.06)}}body[data-animations="on"] .season-scene #seasonEmoji,body[data-animations="on"] .world-art{animation:float 3.8s ease-in-out infinite}body[data-animations="on"] .ambient-orb{animation:drift 12s ease-in-out infinite}.orb-b{animation-delay:-4s!important}.orb-c{animation-delay:-8s!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:900px){.games-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-cards{grid-template-columns:repeat(2,1fr)}.more-grid{grid-template-columns:1fr}.feedback-card{margin-top:0}.animal-collection{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.plan-layout{grid-template-columns:1fr}.day-summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 12px}.day-summary .summary-icon{grid-row:span 2}.day-summary .summary-bar,.day-summary hr{display:none}.day-summary p{margin:0}.tasks{grid-template-columns:1fr}.badges-grid{grid-template-columns:repeat(2,1fr)}.season-banner{align-items:flex-start}.outline-button{align-self:center}.task-toolbar{align-items:stretch;flex-direction:column}.search-field{max-width:none}.library-heading{align-items:flex-start;flex-direction:column}.profile-switch{justify-content:flex-start}}@media(max-width:590px){.appbar{padding:9px 11px}.brand-mark{flex-basis:38px;width:38px;height:38px;font-size:20px}.brand strong{font-size:14px}.header-actions{gap:5px}.season-chip{display:none}.header-chip{padding:7px;font-size:10px}.icon-action{width:33px;height:33px;font-size:16px}.main-content{width:min(100% - 22px,1140px)}.view{padding-top:26px}.view-heading{display:block}.profile-switch{margin-top:14px}.days{gap:5px}.day-tab{padding:9px 6px}.day-tab b{font-size:12px}.day-tab small{font-size:9px}.season-banner{gap:11px;padding:14px}.season-scene{flex-basis:59px;width:59px;height:59px;border-radius:18px}.season-scene #seasonEmoji{font-size:28px}.season-scene #companionEmoji{right:-6px;bottom:-7px;width:28px;height:28px;font-size:16px}.season-copy h2{font-size:17px}.season-copy p{font-size:10px}.outline-button{padding:7px;font-size:10px}.panel-actions{align-items:flex-end;flex-direction:column}.lesson-card{gap:8px;padding:11px 8px}.lesson-time{flex-basis:47px;font-size:11px}.lesson-icon{width:31px;height:31px;font-size:16px}.lesson-body h3{font-size:13px}.lesson-body p{font-size:10px}.games-grid,.progress-cards{grid-template-columns:1fr}.game-card{min-height:200px}.game-world{align-items:flex-start;flex-direction:column}.world-art{align-self:flex-end;margin-top:-62px}.game-box{padding:24px 17px}.game-question{font-size:22px}.memory-board{gap:6px}.memory-card{height:77px}.memory-back small{font-size:8px}.tab{min-width:0;flex:1;padding:8px 3px;font-size:9px}.tab span{font-size:14px}.editor-field{grid-template-columns:1fr}.editor-actions{align-items:stretch;flex-direction:column}.editor-actions button{width:100%}.season-options{grid-template-columns:1fr}.toast{bottom:73px}.library-total{display:inline-flex;margin-top:14px}}

/* Primary games: Zwierzakowa Farma and Gospodarstwo */
:root{--girl:#d96a91;--girl-soft:#fff0f6;--boy:#357cc9;--boy-soft:#eaf4ff}
body[data-player-theme="girl"]{--accent:var(--girl);--accent-soft:var(--girl-soft);--season:#c96591;--season-dark:#9b3d68;background:linear-gradient(145deg,#fff5fa,#fffdfa 48%,#f4eefb)}
body[data-player-theme="boy"]{--accent:var(--boy);--accent-soft:var(--boy-soft);--season:#357cc9;--season-dark:#235b9a;background:linear-gradient(145deg,#eff7ff,#fbfdff 48%,#edf7f2)}
.primary-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(120deg,var(--accent-soft),rgba(255,255,255,.76));box-shadow:0 9px 25px rgba(35,60,43,.08)}.primary-header>div:first-child{display:flex;align-items:center;gap:11px}.primary-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:var(--warm);font-size:27px}.primary-header h2{margin:0;color:#244b36;font-size:20px}.primary-header p{margin:3px 0 0;color:var(--muted);font-size:11px}.primary-wallet{display:grid;justify-items:end;color:var(--season-dark)}.primary-wallet b{font-size:17px}.primary-wallet small{margin-top:3px;color:var(--muted);font-size:10px}.primary-tabs{display:flex;gap:6px;overflow-x:auto;margin:13px 0;padding-bottom:3px}.primary-tab{min-width:86px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;color:var(--muted);background:#fff;cursor:pointer;font-size:11px;font-weight:800}.primary-tab.active,.primary-tab:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.farm-scene{position:relative;overflow:hidden;min-height:225px;padding:16px;border:1px solid #bfe1c8;border-radius:20px;background:linear-gradient(175deg,#cceeff 0 34%,#98d49c 35% 69%,#72ba75 70%);box-shadow:inset 0 -12px rgba(70,130,78,.13)}.farm-scene:after{position:absolute;right:10%;bottom:17px;width:145px;height:24px;border-radius:50%;background:rgba(51,99,55,.2);content:""}.farm-cloud,.farm-tree,.farm-flower{position:absolute;z-index:0;animation:primary-float 5s ease-in-out infinite}.farm-cloud{top:12px;right:14%;font-size:33px}.farm-tree{right:3%;bottom:33px;font-size:55px}.farm-flower{bottom:14px;left:12%;font-size:25px}.pet-focus{position:relative;z-index:1;display:grid;grid-template-columns:100px 1fr;gap:13px;max-width:650px;margin:25px auto 0;padding:15px;border:1px solid rgba(255,255,255,.72);border-radius:19px;background:rgba(255,255,255,.84);box-shadow:0 10px 25px rgba(44,83,45,.16)}.pet-portrait{position:relative;display:grid;place-items:center;min-height:105px;border-radius:17px;background:linear-gradient(145deg,var(--warm),var(--accent-soft));font-size:55px}.pet-bubble{position:absolute;top:5px;right:5px;font-size:19px}.pet-level{position:absolute;bottom:5px;color:var(--season-dark);font-size:8px;font-weight:900}.pet-bio h3{margin:1px 0 5px;color:#244b36;font-size:17px}.pet-bio p{margin:4px 0;color:var(--muted);font-size:11px;line-height:1.4}.pet-dialog{padding:8px;border-left:3px solid var(--accent);border-radius:7px;background:var(--accent-soft);font-style:italic}.pet-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.primary-stat{padding:6px 8px;border-radius:9px;background:rgba(255,255,255,.72)}.primary-stat-top{display:flex;justify-content:space-between;color:var(--muted);font-size:9px}.primary-stat-top b{color:#244b36}.primary-bar{height:6px;margin-top:5px;overflow:hidden;border-radius:99px;background:rgba(40,70,44,.12)}.primary-bar span{display:block;height:100%;border-radius:inherit;transition:width .45s}.pet-actions,.primary-actions-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.primary-action{min-height:44px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--accent) 30%,white);border-radius:10px;color:var(--accent);background:#fff;cursor:pointer;font-size:11px;font-weight:900;transition:.18s}.primary-action:hover{border-color:var(--accent);background:var(--accent-soft);transform:translateY(-2px)}.pet-collection,.trip-grid,.shop-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.pet-tile,.trip-card,.shop-item{display:grid;justify-items:center;gap:4px;min-height:93px;padding:9px 6px;border:1px solid var(--line);border-radius:13px;background:#fff;text-align:center}.pet-tile{cursor:pointer}.pet-tile.selected{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent-soft)}.pet-tile span,.trip-icon,.shop-item>span{font-size:28px}.pet-tile b,.trip-card b,.shop-item b{font-size:10px}.pet-tile small,.trip-card small,.shop-item small{color:var(--muted);font-size:9px}.trip-card,.shop-item{justify-items:start;text-align:left}.trip-card .primary-action,.shop-item .primary-action{width:100%;margin-top:auto}.trip-timer{padding:11px;border-radius:11px;color:var(--season-dark);background:var(--warm);font-size:12px;text-align:center}.primary-tutorial{display:grid;gap:6px;margin-top:13px;padding:13px;border:1px dashed var(--accent);border-radius:13px;background:var(--accent-soft);font-size:11px;line-height:1.4}.primary-tutorial .primary-action{justify-self:start}.homestead-stats{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.homestead-stats span{padding:7px 9px;border-radius:9px;color:var(--muted);background:var(--accent-soft);font-size:10px;font-weight:800}.homestead-yard{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:53px 12px 14px;border:1px solid #e6c894;border-radius:19px;background:linear-gradient(165deg,#ffe5ac,#c4df94);box-shadow:inset 0 -12px rgba(126,116,58,.12)}.yard-building,.yard-windmill,.yard-scarecrow{position:absolute;top:6px;font-size:31px}.yard-building{left:13px}.yard-windmill{right:80px}.yard-scarecrow{right:15px}.homestead-animal{display:grid;justify-items:center;gap:3px;padding:10px 5px;border:1px solid rgba(125,107,59,.2);border-radius:13px;background:rgba(255,255,255,.75);text-align:center}.homestead-animal.locked{filter:grayscale(1);opacity:.68}.homestead-animal>span{font-size:31px}.homestead-animal b{font-size:10px}.homestead-animal small{min-height:24px;color:var(--muted);font-size:9px}.homestead-log{margin-top:12px;padding:12px;border-radius:13px;background:rgba(255,255,255,.7)}.homestead-log>b{font-size:12px;color:#244b36}.homestead-log p{margin:7px 0 0;color:var(--muted);font-size:10px}.modal:has(.primary-header) .game-box{width:min(790px,100%);padding:20px}.modal:has(.primary-header) .game-question{display:none}@keyframes primary-float{50%{transform:translateY(-5px)}}
@media(max-width:590px){.pet-focus{grid-template-columns:78px 1fr;padding:10px}.pet-portrait{min-height:90px;font-size:43px}.pet-bio h3{font-size:15px}.pet-stats{grid-template-columns:1fr}.pet-actions .primary-action,.primary-actions-row .primary-action{flex:1;min-width:125px}.pet-collection,.trip-grid,.shop-grid{grid-template-columns:repeat(2,1fr)}.homestead-yard{grid-template-columns:repeat(2,1fr)}.primary-header{align-items:flex-start}.primary-wallet b{font-size:14px}.primary-wallet small{font-size:9px}.modal:has(.primary-header) .game-box{padding:15px 11px}}

/* Dedykowane, lekkie efekty sezonowe — bez bibliotek i bez zewnętrznych zasobów. */
body{background-size:300% 300%;animation:season-gradient 18s ease-in-out infinite}
body[data-season="winter"]{background-image:linear-gradient(135deg,#dff2ff,#fbfdff 38%,#dceff0 70%,#eef8ff)}
body[data-season="spring"]{background-image:linear-gradient(135deg,#fff1f6,#e9fff0 38%,#f8fbdc 70%,#eaf8ff)}
body[data-season="summer"]{background-image:linear-gradient(135deg,#fff4bf,#e9fbff 38%,#fffbdc 70%,#d9f6ef)}
body[data-season="autumn"]{background-image:linear-gradient(135deg,#ffe2b5,#fff9e9 38%,#e2f3e8 70%,#ffd9c2)}
body:before,body:after{position:fixed;z-index:-1;pointer-events:none;content:"";opacity:.5}
body:before{inset:0;background-image:radial-gradient(circle at 12% 24%,color-mix(in srgb,var(--season) 35%,transparent) 0 2px,transparent 3px),radial-gradient(circle at 78% 16%,color-mix(in srgb,var(--accent) 30%,transparent) 0 3px,transparent 4px),radial-gradient(circle at 64% 82%,color-mix(in srgb,var(--season) 28%,transparent) 0 2px,transparent 3px);background-size:140px 170px,190px 230px,220px 190px;animation:season-specks 16s linear infinite}
body:after{top:12%;right:4%;width:130px;height:130px;border:1px solid color-mix(in srgb,var(--season) 22%,transparent);border-radius:42% 58% 61% 39%;transform:rotate(22deg);animation:season-drift 11s ease-in-out infinite}
body[data-season="winter"]:before{background-image:radial-gradient(circle,color-mix(in srgb,#fff 80%,transparent) 0 3px,transparent 4px);background-size:100px 100px;animation:snow-fall 12s linear infinite}
body[data-season="spring"]:before{background-image:radial-gradient(ellipse at center,color-mix(in srgb,#e06587 45%,transparent) 0 3px,transparent 4px),radial-gradient(ellipse at center,color-mix(in srgb,#62b879 45%,transparent) 0 3px,transparent 4px);background-size:130px 170px,190px 210px;animation:petals-drift 14s ease-in-out infinite}
body[data-season="summer"]:before{background-image:radial-gradient(circle,color-mix(in srgb,#ffd34e 65%,transparent) 0 3px,transparent 4px);background-size:170px 170px;animation:sun-specks 8s ease-in-out infinite}
body[data-season="autumn"]:before{background-image:radial-gradient(ellipse at center,#d87935 0 3px,transparent 4px),radial-gradient(ellipse at center,#e6ad3b 0 3px,transparent 4px);background-size:150px 180px,210px 230px;animation:leaf-fall 15s linear infinite}
.ambient-orb{animation:orb-breathe 13s ease-in-out infinite;will-change:transform,opacity}.orb-b{animation-delay:-4s}.orb-c{animation-delay:-8s}
.season-banner,.game-world{animation:season-card-glow 7s ease-in-out infinite}.season-scene{animation:scene-float 4s ease-in-out infinite}.season-scene #seasonEmoji{animation:season-icon-pulse 3s ease-in-out infinite}.world-animal{display:inline-block;animation:animal-hop 3.6s ease-in-out infinite;animation-delay:var(--animal-delay,0ms)}
.game-card{transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.game-card:hover{animation:game-card-bounce .7s ease both}.game-icon{display:inline-block;transform-origin:50% 80%;animation:game-icon-idle 4s ease-in-out infinite}.game-card:nth-child(3n+2) .game-icon{animation-delay:-1.2s}.game-card:nth-child(3n) .game-icon{animation-delay:-2.4s}.memory-card.flipped .memory-inner{animation:card-flip-pop .45s ease}.answer-button:active,.play-button:active,.next-button:active,.complete-button:active{animation:button-squish .24s ease}.lesson-card.done{animation:lesson-success .55s ease}.season-shift .season-banner,.season-shift .game-world{animation:season-shift .9s ease both}
@keyframes season-gradient{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes season-specks{0%{transform:translate3d(0,0,0)}50%{transform:translate3d(12px,-18px,0)}100%{transform:translate3d(0,0,0)}}
@keyframes snow-fall{0%{transform:translateY(-5%)}100%{transform:translateY(18%)}}
@keyframes petals-drift{0%,100%{transform:translate3d(-8px,-5px,0) rotate(0)}50%{transform:translate3d(12px,14px,0) rotate(8deg)}}
@keyframes sun-specks{0%,100%{opacity:.25;transform:scale(.95)}50%{opacity:.65;transform:scale(1.08)}}
@keyframes leaf-fall{0%{transform:translate3d(-10px,-4%,0) rotate(0)}50%{transform:translate3d(16px,9%,0) rotate(9deg)}100%{transform:translate3d(-10px,20%,0) rotate(-8deg)}}
@keyframes orb-breathe{0%,100%{transform:scale(1) translate(0,0);opacity:.18}50%{transform:scale(1.14) translate(3vw,-2vw);opacity:.28}}
@keyframes season-drift{0%,100%{transform:rotate(22deg) translate(0,0)}50%{transform:rotate(34deg) translate(-12px,18px)}}
@keyframes season-card-glow{0%,100%{box-shadow:var(--shadow)}50%{box-shadow:0 20px 58px color-mix(in srgb,var(--season) 17%,transparent)}}
@keyframes scene-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(2deg)}}
@keyframes season-icon-pulse{0%,100%{transform:scale(1) rotate(0)}50%{transform:scale(1.1) rotate(-5deg)}}
@keyframes animal-hop{0%,80%,100%{transform:translateY(0)}88%{transform:translateY(-6px) rotate(-4deg)}}
@keyframes game-icon-idle{0%,100%{transform:rotate(-3deg) scale(1)}50%{transform:rotate(4deg) scale(1.08)}}
@keyframes game-card-bounce{0%{transform:translateY(-4px)}45%{transform:translateY(-9px) rotate(-.5deg)}100%{transform:translateY(-4px)}}
@keyframes card-flip-pop{0%{transform:scale(.96)}60%{transform:scale(1.04)}100%{transform:scale(1)}}
@keyframes button-squish{50%{transform:scale(.94)}}
@keyframes lesson-success{0%{transform:scale(1)}45%{transform:scale(1.015)}100%{transform:scale(1)}}
@keyframes season-shift{0%{opacity:.5;transform:scale(.985)}100%{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
body[data-animations="off"]:before,body[data-animations="off"]:after,body[data-animations="off"] .ambient-orb{animation-play-state:paused}.app-shell{position:relative}

/* Nowa minigra zręcznościowa */
.reflex-board{display:grid;grid-template-columns:repeat(3,minmax(70px,1fr));gap:12px;max-width:440px;margin:auto;padding:12px}.reflex-target{min-height:82px;border:1px solid color-mix(in srgb,var(--season) 24%,white);border-radius:20px;color:var(--ink);background:linear-gradient(145deg,rgba(255,255,255,.95),color-mix(in srgb,var(--accent-soft) 68%,white));font-size:34px;cursor:pointer;box-shadow:0 8px 18px rgba(35,60,43,.08);animation:reflex-shake 2.8s ease-in-out infinite;animation-delay:var(--target-delay,0ms);transition:.18s}.reflex-target:hover{transform:translateY(-5px) rotate(-3deg);border-color:var(--season)}.reflex-target.hit{background:#dff5e6;box-shadow:0 0 0 5px rgba(66,167,107,.2);animation:reflex-hit .5s ease both}.reflex-target.miss{background:#ffe7ed;animation:reflex-miss .4s ease both}
@keyframes reflex-shake{0%,85%,100%{transform:translate(0,0) rotate(0)}88%{transform:translate(2px,-2px) rotate(2deg)}92%{transform:translate(-2px,1px) rotate(-2deg)}}
@keyframes reflex-hit{50%{transform:scale(1.18) rotate(8deg)}100%{transform:scale(1)}}
@keyframes reflex-miss{25%,75%{transform:translateX(-7px)}50%{transform:translateX(7px)}}
@media (max-width:520px){.reflex-board{gap:8px}.reflex-target{min-height:72px;font-size:29px}}

/* Reward moments and game feedback */
.result-card.reward-reveal{position:relative;overflow:hidden;border-color:#d9a83d;box-shadow:0 18px 50px rgba(217,168,61,.22);animation:reward-in .36s cubic-bezier(.23,1,.32,1)}.result-card.reward-reveal:after{content:'✦  ✧  ✦';position:absolute;top:12px;right:17px;color:#e4b343;letter-spacing:5px;animation:sparkle 1.6s ease-in-out infinite}.reward-number{display:inline-block;margin-top:10px;padding:8px 13px;border-radius:999px;color:#603d08;background:#f8d36b;box-shadow:0 5px 16px rgba(248,211,107,.3);animation:reward-pop .5s .1s both}.answer-button.correct{animation:answer-correct .28s ease}.answer-button.wrong{animation:answer-wrong .32s ease}.game-message .feedback-good{animation:feedback-in .2s ease}.settings-list .setting-row:active,.play-button:active,.next-button:active{transform:scale(.97)}@keyframes reward-in{from{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:none}}@keyframes reward-pop{from{opacity:0;transform:scale(.75)}to{opacity:1;transform:scale(1)}}@keyframes sparkle{50%{opacity:.35;transform:translateY(4px) rotate(7deg)}}@keyframes answer-correct{50%{transform:scale(1.035);box-shadow:0 0 0 4px rgba(81,164,110,.18)}}@keyframes answer-wrong{25%,75%{transform:translateX(-5px)}50%{transform:translateX(5px)}}@keyframes feedback-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* Daily goals tracker */
.daily-panel{margin-top:18px;padding:19px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.82);box-shadow:var(--shadow)}.daily-goals{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.daily-goal{display:flex;align-items:flex-start;gap:9px;min-height:84px;padding:12px;border:1px solid var(--line);border-radius:15px;background:#fff;transition:.25s}.daily-goal.complete{border-color:#8fc99c;background:#effaf1}.daily-goal-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:10px;color:#fff;background:var(--accent);font-size:15px}.daily-goal.complete .daily-goal-icon{background:#51a46e}.daily-goal b{display:block;color:var(--ink);font-size:11px;line-height:1.25}.daily-goal small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.daily-goal-bar{height:5px;margin-top:8px;overflow:hidden;border-radius:99px;background:#edf0e9}.daily-goal-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#81ba8c,#d5b64d);transition:width .35s ease}@media(max-width:900px){.daily-goals{grid-template-columns:repeat(2,1fr)}}@media(max-width:590px){.daily-panel{padding:14px}.daily-goals{grid-template-columns:1fr}.daily-goal{min-height:68px}}

body.modal-open{overflow:hidden;touch-action:none}


/* KiwiKids Academy adaptation: neutral, public-ready and mobile-first */
.academy-home{display:inline-flex;align-items:center;gap:5px;color:var(--accent);text-decoration:none;font-weight:800;font-size:.78rem;white-space:nowrap}
.academy-home:hover{text-decoration:underline}
.academy-nav-icon svg{width:20px;height:20px;display:inline-block;vertical-align:middle}
.academy-add{display:inline-flex;margin:13px 0;align-items:center;min-height:44px;border:1px solid var(--accent)}
.academy-editor-label{display:flex;flex-direction:column;gap:4px;font-size:.84rem;font-weight:700;margin:5px 0}
.academy-editor-label input{min-height:42px;width:100%;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);font:inherit;padding:8px}
.editor-field{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;border:1px solid var(--line);padding:12px;border-radius:14px;margin-bottom:14px}
.editor-field legend{grid-column:1/-1;font-weight:800;color:var(--ink)}
.editor-field .academy-editor-label:nth-of-type(3){grid-column:1/-1}
.editor-field button.small-action{grid-column:1/-1;justify-self:start}
@media(max-width:650px){.academy-home span{display:none}.editor-field{grid-template-columns:1fr}.editor-field .academy-editor-label:nth-of-type(3){grid-column:auto}.academy-home{padding:8px;min-width:40px;min-height:44px;justify-content:center}}

/* Local export and import controls, no cloud accounts */
.panel-actions{flex-wrap:wrap;gap:8px}.panel-actions .small-action{min-height:44px}.panel-actions input[hidden]{display:none!important}@media(max-width:600px){.panel-actions{justify-content:flex-start}}
