@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Nunito:wght@500;600;700;800;900&display=swap');
:root{font-family:'Nunito',system-ui,sans-serif;color:#302851;--purple:#7b4dda;--pink:#ff5caf;--blue:#41b8f5;--gold:#ffba35;--good:#189b67}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:4px solid #ffbe45;outline-offset:3px}.world-bg{position:fixed;inset:0;background:url('assets/world.png') center/cover no-repeat;z-index:-3}.wash{position:fixed;inset:0;background:linear-gradient(105deg,#eff4ff99,#fff9f270,#f6f3ff90);z-index:-2}.app{min-height:100vh;display:flex;flex-direction:column;max-width:1450px;margin:auto;padding:16px clamp(12px,3vw,42px)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.brand{background:#ffffffdf;border:2px solid #fff;border-radius:24px;box-shadow:0 10px 28px #4d238f2e;padding:5px 14px;width:clamp(114px,15vw,190px);display:flex;align-items:center}.brand img{display:block;width:100%;height:78px;object-fit:contain}.top-actions{display:flex;align-items:center;gap:9px}.kid-pill,.icon-btn{background:#fffef5ed;border:2px solid #fff;border-radius:30px;box-shadow:0 6px 17px #48267e25;font-weight:900;padding:12px 17px}.icon-btn{width:50px;height:50px;padding:0;font-size:23px}.kid-pill{font-size:14px}main{flex:1;display:grid;align-content:center;margin:18px auto;width:100%;max-width:1120px}footer{padding:15px;text-align:center;color:#3c3571;font-weight:900;text-shadow:0 1px white;font-size:12px}footer span{margin-left:14px}.glass{background:#fffffff0;border:3px solid #ffffff;border-radius:35px;box-shadow:0 24px 65px #52338b4b,0 3px 0 #dcc8fc;backdrop-filter:blur(17px)}.welcome{max-width:620px;margin:auto;padding:clamp(18px,4vw,38px);width:100%;text-align:center}.mascot{display:block;object-fit:contain;width:clamp(120px,24vw,205px);height:clamp(120px,24vw,205px);margin:-30px auto -8px;filter:drop-shadow(0 10px 15px #8a61c03b)}h1,h2,h3{font-family:'Baloo 2',system-ui;line-height:1.13;margin:0}h1{font-size:clamp(30px,5vw,56px);color:#6734bc;letter-spacing:-1px}h2{font-size:clamp(26px,3.6vw,40px);color:#693ac2}h3{font-size:23px}.small{font-size:14px;color:#6b6382}.lead{font-size:17px;font-weight:800;color:#716091;margin:10px auto 22px}.field{display:grid;text-align:left;gap:7px;margin:17px 0}.field label{font-weight:900}.field input,.field select{width:100%;border:2px solid #d9c6f6;border-radius:16px;padding:13px 16px;background:white;font-size:18px;color:#37235e}.button{border:0;border-radius:21px;padding:14px 23px;font-weight:1000;font-size:17px;background:linear-gradient(145deg,#9a61ed,#6a39c9);color:white;box-shadow:0 7px 0 #4c278e,0 12px 20px #6932bf48;transition:transform .13s}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(5px);box-shadow:0 2px 0 #4c278e}.button.secondary{background:#fff;color:#713dc9;box-shadow:0 5px 0 #d9c6f6;border:2px solid #e6d8fc}.button.gold{background:linear-gradient(130deg,#ffd85c,#ff954d);color:#66420d;box-shadow:0 6px 0 #ce7f2e}.button.danger{background:#ffe1e4;color:#ad3355;box-shadow:none}.button:disabled{opacity:.45;cursor:not-allowed}.full{width:100%}.profile-list{display:grid;gap:10px}.profile{padding:15px;background:#f3ecff;border:2px solid #e0d0ff;border-radius:18px;font-size:19px;font-weight:900;color:#4f329c}.hub{text-align:center}.hub-hero{margin:0 auto 16px;padding:17px 26px;max-width:770px}.hub-hero h1{font-size:clamp(28px,4vw,45px)}.hub-hero p{margin:7px;color:#655384;font-weight:800}.worlds{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.world-card{border:4px solid white;border-radius:32px;padding:26px 16px 22px;min-height:255px;display:flex;align-items:center;flex-direction:column;justify-content:space-between;box-shadow:0 15px 40px #5a399648,0 6px 0 #ffffff99;transition:transform .2s;text-align:center;color:#41316f}.world-card:hover{transform:translateY(-6px) rotate(-1deg)}.world-card .picture{font-size:clamp(58px,8vw,100px);filter:drop-shadow(0 10px 6px #7766b23d)}.world-card h2{font-size:clamp(30px,4vw,43px);color:#49317d}.world-card p{margin:2px 0 14px;font-weight:900}.world-abc{background:linear-gradient(155deg,#fff6ff,#e9d0ff)}.world-num{background:linear-gradient(155deg,#efffff,#b9ecff)}.world-words{background:linear-gradient(155deg,#fff9e6,#ffe1a5)}.mini-progress{height:12px;width:100%;border-radius:12px;overflow:hidden;background:#ffffffae}.mini-progress>span,.track>span{display:block;height:100%;background:linear-gradient(90deg,#9b68ee,#ff80c1,#ffc45b);border-radius:inherit;transition:width .3s}.progress-panel{max-width:700px;margin:22px auto 0;padding:20px 24px}.progress-meta{display:flex;justify-content:space-between;align-items:center;font-weight:1000;gap:10px}.track{height:22px;background:#e7dafa;border-radius:30px;overflow:hidden;margin:12px 0}.game{padding:clamp(15px,3vw,30px);max-width:900px;margin:auto;width:100%}.game-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.game h2{font-size:clamp(27px,4vw,42px)}.game-sub{text-align:center;font-size:20px;font-weight:900;margin:20px 0 12px;min-height:28px}.challenge{background:linear-gradient(125deg,#f9f0ff,#fff8e8);border-radius:26px;padding:17px;min-height:115px;display:flex;justify-content:center;align-items:center;flex-direction:column}.challenge .big-symbol{font-size:clamp(65px,11vw,116px);font-family:'Baloo 2';font-weight:800;color:#794cce;line-height:1.15}.challenge .big-emoji{font-size:75px}.choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0}.choice{min-height:100px;background:linear-gradient(140deg,#f4deff,#e6f3ff);color:#693ac2;border:3px solid white;border-radius:26px;font-family:'Baloo 2';font-size:clamp(34px,6vw,65px);font-weight:800;box-shadow:0 7px 0 #d0bcf7;display:flex;align-items:center;justify-content:center;transition:transform .15s}.choice:hover:not(:disabled){transform:scale(1.035)}.choice.hint{border-color:#f6b72f;box-shadow:0 0 0 5px #ffe7a1,0 7px 0 #d0bcf7;animation:breathe 1s ease-in-out infinite alternate}.choice:disabled{cursor:default}.choice.correct{background:#c9ffdf;border-color:#5ac28b;color:#13844b}.choice.wiggle{animation:wiggle .32s}.choice.emoji-choice{font-size:clamp(28px,5vw,48px)}.toast{text-align:center;min-height:60px;display:grid;place-items:center;font-weight:1000;font-size:20px;color:#6541ae}.game-foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.game-progress{flex:1;min-width:140px}.game-progress .track{height:12px;margin:5px 0}.word-slots{display:flex;gap:9px;margin-top:9px}.slot{width:60px;height:70px;display:grid;place-items:center;background:white;border:3px dashed #b597e2;border-radius:18px;font-size:35px;font-weight:1000;color:#613caa}.word-pick{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:17px 0}.word-pick button{width:74px;height:75px;border:3px solid white;border-radius:18px;background:#e4dcff;color:#5634a8;font-size:39px;font-weight:1000;box-shadow:0 5px 0 #bda8ee}.word-pick button:disabled{opacity:.24}.success{color:#158955}.modal-backdrop{position:fixed;inset:0;background:#201442a8;z-index:10;display:grid;place-items:center;padding:14px}.hidden{display:none!important}.modal{background:#fff;border-radius:28px;border:4px solid white;width:min(96vw,550px);padding:24px;box-shadow:0 25px 90px #12072d77;max-height:92vh;overflow:auto}.modal-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.close{border:0;border-radius:50%;background:#f0e6ff;width:43px;height:43px;font-size:22px;color:#683dbb}.setting-row{padding:14px 0;border-bottom:1px solid #eee7f6}.setting-row button{margin:5px 5px 5px 0}.setting-row input[type=range]{width:100%}.note{background:#fff6d8;padding:13px;border-radius:14px;font-size:13px;color:#705326;font-weight:800}.celebrate{text-align:center;padding:22px}.celebrate .trophy{font-size:85px}.celebrate h2{margin:8px 0}.cert-preview{text-align:center;border:7px double #dfb34a;padding:24px;border-radius:24px;background:#fffaf1}.cert-preview strong{font-size:30px;color:#6d3fae} @keyframes wiggle{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}@keyframes breathe{to{transform:scale(1.045)}}@media(max-width:720px){.app{padding:9px}.brand{width:112px}.brand img{height:55px}.kid-pill{display:none}.worlds{grid-template-columns:1fr;gap:13px}.world-card{min-height:132px;padding:12px 19px;display:grid;grid-template-columns:82px 1fr 66px;align-items:center;text-align:left;gap:8px}.world-card .picture{font-size:64px;grid-row:span 2}.world-card h2{font-size:35px}.world-card p{grid-column:2;grid-row:2;margin:0}.world-card .mini-progress{grid-column:3;grid-row:1 / span 2}.choices{gap:8px}.choice{min-height:84px}.glass{border-radius:24px}.game-foot{justify-content:center}.welcome{padding:17px}.mascot{width:140px;height:140px;margin:-18px auto -8px}footer span{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* --- Supreme refresh patch --- */
.world-card{position:relative}
.world-card .picture{display:flex;align-items:center;justify-content:center;min-height:104px;width:100%}
.card-icon{display:flex;align-items:flex-end;justify-content:center;gap:8px;min-height:98px}
.toy-block,.mini-picture{display:grid;place-items:center;border-radius:22px;border:3px solid rgba(255,255,255,.9);box-shadow:0 10px 26px rgba(92,53,160,.18), inset 0 2px 0 rgba(255,255,255,.65);font-family:'Baloo 2',system-ui;font-weight:800;color:white;text-shadow:0 2px 0 rgba(0,0,0,.08)}
.toy-block{width:72px;height:72px;font-size:40px}
.abc-icon .block-a{background:linear-gradient(145deg,#ff72b6,#ff4f85)}
.abc-icon .block-b{background:linear-gradient(145deg,#6cc8ff,#478bf5);transform:translateY(-10px)}
.abc-icon .block-c{background:linear-gradient(145deg,#ffd56a,#ffae2b)}
.num-icon .num-one{background:linear-gradient(145deg,#ff84c2,#ff5a9f)}
.num-icon .num-two{background:linear-gradient(145deg,#77d7ff,#5a9cff);transform:translateY(-12px)}
.num-icon .num-three{background:linear-gradient(145deg,#80ef95,#39c96b)}
.words-icon .mini-picture{width:58px;height:58px;font-size:30px;background:linear-gradient(145deg,#fff8f5,#f4eaff);color:#583598}
.world-done{position:absolute;top:14px;right:14px;padding:6px 12px;border-radius:999px;background:linear-gradient(145deg,#83f3a0,#32c16a);color:#125a34;font-size:13px;font-weight:1000;box-shadow:0 6px 18px rgba(48,145,89,.2)}
.number-stars{font-size:clamp(20px,3.6vw,42px);line-height:1.45;max-width:680px;overflow-wrap:anywhere;text-align:center}
.word-visual{display:grid;place-items:center;margin-bottom:10px;min-height:96px}
.word-visual.emoji{font-size:84px;line-height:1}
.word-visual.compact.emoji{font-size:52px;min-height:64px}
.word-tile{width:74px;height:75px;border:3px solid white;border-radius:18px;background:#e4dcff;color:#5634a8;font-size:39px;font-weight:1000;box-shadow:0 5px 0 #bda8ee}
.word-tile:disabled{opacity:.25}
.net-art{position:relative;width:126px;height:112px}
.net-handle{position:absolute;left:18px;bottom:12px;width:15px;height:70px;background:linear-gradient(145deg,#d4a566,#af6e32);border-radius:999px;transform:rotate(-26deg);box-shadow:inset 0 2px 0 rgba(255,255,255,.45)}
.net-ring{position:absolute;left:36px;top:12px;width:68px;height:68px;border:7px solid #6db9ff;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 5px 20px rgba(72,132,230,.18)}
.net-mesh{position:absolute;left:43px;top:19px;width:54px;height:54px;border-radius:50%;background-image:linear-gradient(45deg,transparent 45%,rgba(84,123,214,.28) 45%,rgba(84,123,214,.28) 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,rgba(84,123,214,.28) 45%,rgba(84,123,214,.28) 55%,transparent 55%);background-size:16px 16px}
.rug-art{position:relative;width:140px;height:88px}
.rug-main{position:absolute;inset:16px 16px 16px 16px;border-radius:18px;background:linear-gradient(145deg,#ffa8cc,#ff6da4);box-shadow:0 10px 24px rgba(190,86,135,.22), inset 0 2px 0 rgba(255,255,255,.55)}
.rug-stripe{position:absolute;left:33px;right:33px;height:12px;border-radius:999px;background:rgba(255,244,166,.9)}
.rug-art .stripe-1{top:30px}
.rug-art .stripe-2{top:50px}
.rug-fringe{position:absolute;top:27px;bottom:27px;width:16px;background:repeating-linear-gradient(to bottom,#ffe9a6 0 6px,transparent 6px 11px)}
.rug-fringe.left{left:6px}
.rug-fringe.right{right:6px}
@media(max-width:720px){
  .world-card .picture{min-height:unset;width:auto}
  .card-icon{min-height:unset;justify-content:flex-start}
  .toy-block{width:52px;height:52px;font-size:28px;border-radius:15px}
  .words-icon .mini-picture{width:45px;height:45px;font-size:22px;border-radius:14px}
  .world-done{top:10px;right:10px;font-size:11px;padding:4px 9px}
  .word-visual.emoji{font-size:70px}
  .number-stars{font-size:28px}
}

/* --- visual accuracy patch for word pictures --- */
.pan-art{position:relative;width:138px;height:92px}
.pan-body{position:absolute;left:36px;top:20px;width:64px;height:40px;border-radius:999px;background:linear-gradient(145deg,#464646,#1f1f1f);box-shadow:inset 0 3px 0 rgba(255,255,255,.18),0 6px 16px rgba(0,0,0,.12)}
.pan-rim{position:absolute;left:42px;top:26px;width:52px;height:28px;border-radius:999px;border:4px solid rgba(255,255,255,.22)}
.pan-handle{position:absolute;left:92px;top:35px;width:34px;height:10px;border-radius:999px;background:linear-gradient(145deg,#555,#2a2a2a);transform:rotate(12deg);transform-origin:left center}
.mop-art{position:relative;width:120px;height:110px}
.mop-stick{position:absolute;left:63px;top:6px;width:10px;height:72px;border-radius:999px;background:linear-gradient(145deg,#c48b53,#9a6432);transform:rotate(12deg);transform-origin:top center}
.mop-head{position:absolute;left:42px;top:62px;width:42px;height:16px;border-radius:10px;background:linear-gradient(145deg,#6ec3f7,#3ea0e7);transform:rotate(12deg)}
.mop-strings{position:absolute;left:32px;top:74px;width:60px;height:22px;background:repeating-linear-gradient(90deg,#b7ecff 0 5px,transparent 5px 8px);border-radius:0 0 18px 18px;transform:rotate(12deg)}
.pot-art{position:relative;width:130px;height:95px}
.pot-body{position:absolute;left:28px;top:34px;width:74px;height:42px;border-radius:10px 10px 16px 16px;background:linear-gradient(145deg,#9ca5b2,#6d7684);box-shadow:inset 0 2px 0 rgba(255,255,255,.3),0 8px 16px rgba(64,76,103,.14)}
.pot-lid{position:absolute;left:38px;top:22px;width:54px;height:14px;border-radius:999px;background:linear-gradient(145deg,#b7bfca,#8d96a4)}
.pot-knob{position:absolute;left:58px;top:14px;width:14px;height:14px;border-radius:50%;background:linear-gradient(145deg,#666f7b,#414851)}
.pot-handle{position:absolute;top:44px;width:16px;height:18px;border:4px solid #8c95a2;border-radius:10px;background:transparent}
.pot-handle.left{left:16px;border-right:none}
.pot-handle.right{left:98px;border-left:none}
.net-art{position:relative;width:160px;height:102px;transform:translateX(-4px)}
.net-stick{position:absolute;left:26px;top:10px;width:14px;height:76px;border-radius:999px;background:linear-gradient(145deg,#ba793c,#8f5526);transform:rotate(-66deg);transform-origin:top center;box-shadow:inset 0 2px 0 rgba(255,255,255,.25)}
.net-socket{position:absolute;left:77px;top:25px;width:46px;height:30px;border:5px solid #93612d;border-radius:50%;background:#d9eefc;transform:rotate(16deg)}
.net-bag{position:absolute;left:82px;top:41px;width:38px;height:40px;border:4px solid #3d90c9;border-top:none;border-radius:0 0 20px 20px / 0 0 34px 34px;background:linear-gradient(180deg,rgba(227,244,255,.95),rgba(205,234,251,.92));transform:rotate(16deg)}
.net-grid{position:absolute;left:86px;top:41px;width:30px;height:35px;transform:rotate(16deg);background-image:linear-gradient(45deg,transparent 44%,rgba(57,114,171,.45) 44%,rgba(57,114,171,.45) 56%,transparent 56%),linear-gradient(-45deg,transparent 44%,rgba(57,114,171,.45) 44%,rgba(57,114,171,.45) 56%,transparent 56%);background-size:12px 12px;background-position:center;border-radius:0 0 16px 16px}
@media(max-width:720px){
  .pan-art{transform:scale(.88)}
  .mop-art,.pot-art,.net-art{transform:scale(.88)}
}

/* So Smooth ABC Phonics v7 */
.phonics-v7{margin:12px 0 4px;padding:15px 12px;border-radius:22px;background:linear-gradient(135deg,#f6efff,#e9f8ff);border:2px solid #fff;text-align:center}
.phonics-heading{font-weight:1000;color:#6541ae;font-size:clamp(15px,3vw,21px)}
.phonics-letters{display:flex;justify-content:center;gap:12px;margin:12px auto}
.phonics-letter{display:grid;place-items:center;background:white;color:#6234b9;border:3px solid #e0c8ff;border-radius:17px;width:clamp(52px,15vw,72px);height:clamp(52px,15vw,72px);font-size:clamp(30px,8vw,45px);font-weight:1000;transition:transform .2s,background .2s}
.phonics-letter.active{background:#ffe68a;border-color:#ffa726;transform:scale(1.12);box-shadow:0 0 0 5px #fff0aa}
.phonics-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px}
.phonics-actions .button{font-size:clamp(13px,3vw,16px);padding:12px 15px;min-height:48px}
.phonics-status{font-size:13px;font-weight:800;color:#695688;margin:13px 0 0}
@media(max-width:500px){.phonics-v7{padding:11px 8px}.phonics-actions .button{flex:1 1 155px}}

/* So Smooth ABC legal navigation */
.legal-footer-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  padding: 18px 12px 28px;
  position: relative;
  z-index: 10;
}

.legal-footer-links a {
  display: inline-block;
  color: #543393;
  background: rgba(255,255,255,.94);
  border: 2px solid rgba(170,124,235,.4);
  border-radius: 999px;
  padding: 10px 17px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(90,50,150,.12);
}

.legal-footer-links a:hover,
.legal-footer-links a:focus-visible {
  background: #f3e8ff;
  text-decoration: underline;
}
