:root{
  --ink:#12386f;--blue:#1468c9;--green:#0e9460;--yellow:#ffc729;--sky:#7bd7ff;
}
*{box-sizing:border-box} html{background:#b9ecff} body{margin:0;min-height:100vh;overflow-x:hidden;color:var(--ink);font-family:'Baloo 2','Nunito',sans-serif;background:linear-gradient(180deg,#67cdf8 0%,#b8edff 38%,#ebfbff 72%,#d7f4cc 100%)}
body:before{content:"";position:fixed;inset:auto 0 0;height:18vh;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 5% 100%,#5ebf57 0 22%,transparent 23%),radial-gradient(ellipse at 25% 105%,#7bd269 0 26%,transparent 27%),radial-gradient(ellipse at 54% 104%,#65c55b 0 28%,transparent 29%),radial-gradient(ellipse at 80% 110%,#83d470 0 26%,transparent 27%),radial-gradient(ellipse at 100% 100%,#58b955 0 22%,transparent 23%)}
.kid-dashboard{position:relative;z-index:2;width:min(100%,941px);margin:auto;padding:18px clamp(10px,2.4vw,24px) 26px}
.hero{position:relative;height:590px;padding-top:14px}.hero__title-wrap{position:relative;z-index:6;text-align:center}.hero__eyebrow{font-size:clamp(38px,6.7vw,62px);font-weight:900;line-height:.95;color:#123f80;text-shadow:0 5px 0 rgba(255,255,255,.45),0 8px 14px rgba(24,76,122,.17)}
.hero__title{margin:5px 0 0;font-size:clamp(58px,9vw,90px);line-height:.86;letter-spacing:-5px}.hero__title span{display:inline-block;animation:letterBob 3.2s ease-in-out infinite;animation-delay:calc(var(--i)*.08s);text-shadow:0 5px 0 rgba(255,255,255,.45),0 8px 10px rgba(0,84,158,.12)}.hero__title span:nth-child(6n+1){color:#2787ed}.hero__title span:nth-child(6n+2){color:#35b977}.hero__title span:nth-child(6n+3){color:#45bfc1}.hero__title span:nth-child(6n+4){color:#f7b126}.hero__title span:nth-child(6n+5){color:#ff8247}.hero__title span:nth-child(6n){color:#f3533c}
.hero__tagline{margin:13px 0 0;font:900 clamp(17px,2.7vw,24px)/1.2 'Nunito',sans-serif}.hero__tagline span{color:#ef4f43}.hero__speech{position:absolute;z-index:8;left:2.5%;top:16px;width:170px;padding:18px 16px;text-align:center;background:#fff;border-radius:48% 52% 46% 54%/55% 46% 54% 45%;font:900 18px/1.15 'Nunito',sans-serif;box-shadow:0 12px 25px rgba(49,105,146,.12);transform:rotate(-5deg)}.hero__speech:after{content:"";position:absolute;left:42px;bottom:-15px;border:16px solid transparent;border-top-color:#fff;transform:rotate(28deg)}.hero__speech span{color:#ec4641}
.hero__boy,.hero__sun,.hero__sign,.points-card__star,.deeds-star,.gift-icon,.reward-icon{display:block;object-fit:contain;pointer-events:none;user-select:none}.hero__boy{position:absolute;z-index:5;left:-3%;bottom:25px;width:31%;max-width:285px;filter:drop-shadow(0 18px 14px rgba(29,77,119,.12))}.hero__sun{position:absolute;z-index:3;right:1%;top:-3px;width:16%;max-width:145px}.hero__sign{position:absolute;z-index:4;right:-1%;bottom:80px;width:17%;max-width:155px;filter:drop-shadow(0 10px 12px rgba(81,57,31,.14))}
.points-card{position:absolute;z-index:7;left:50%;bottom:0;transform:translateX(-50%);width:min(59%,555px);height:340px;padding:28px 18px 24px;text-align:center;background:linear-gradient(165deg,#fffef9,#fff9eb 70%);border:5px solid #ffe174;border-radius:58px;box-shadow:0 20px 35px rgba(44,116,167,.18),inset 0 7px 0 rgba(255,255,255,.9)}.points-card:before{content:"";position:absolute;inset:10px;border:1px solid rgba(255,204,52,.25);border-radius:47px}.points-card__label{position:relative;z-index:2;font:900 clamp(20px,3vw,28px)/1.1 'Nunito',sans-serif}.crown{display:inline-block;margin-right:7px;color:#ffb713;font-size:34px;animation:crown 3s ease-in-out infinite}.points-card__score{position:relative;z-index:2;margin-top:6px;font:900 clamp(112px,17vw,158px)/.83 'Baloo 2',sans-serif;letter-spacing:-8px;color:#ffc036;-webkit-text-stroke:4px #f39918;text-shadow:0 7px 0 #e68212,0 12px 18px rgba(208,127,8,.25)}.points-card__unit{position:relative;z-index:2;font-size:44px;font-weight:900;line-height:1;color:#173e7c}.points-card__message{position:relative;z-index:2;margin-top:8px;font:900 20px/1.2 'Nunito',sans-serif}.points-card__star{position:absolute;z-index:3;filter:drop-shadow(0 8px 7px rgba(211,145,0,.2));animation:starFloat 3.4s ease-in-out infinite}.points-card__star--small{left:-9%;bottom:10px;width:25%}.points-card__star--large{right:-13%;bottom:4px;width:34%;animation-delay:.7s}.spark{position:absolute;color:#ffcf24;font-style:normal;font-size:32px;animation:sparkle 1.7s ease-in-out infinite}.spark--a{left:4%;top:50%}.spark--b{right:4%;top:31%;animation-delay:.5s}.spark--c{right:13%;bottom:12%;animation-delay:.9s}
.panel{position:relative;margin-top:20px;border-radius:36px;box-shadow:0 14px 28px rgba(58,110,148,.13),inset 0 2px 0 #fff}.panel--deeds{padding:22px 22px 24px;background:linear-gradient(145deg,#f6fff9,#e3fbed);border:3px solid #c8f4dc}.panel__heading{display:grid;grid-template-columns:1fr auto 180px;align-items:center;gap:14px;margin-bottom:14px}.panel__title{display:flex;align-items:center;gap:14px;font-size:43px;font-weight:900;line-height:1}.panel__title--green{color:#0e8b5c}.clipboard{display:grid;place-items:center;width:55px;height:55px;border-radius:15px;background:linear-gradient(145deg,#36d983,#14aa5e);color:white;box-shadow:0 6px 0 #0b9350;font-size:31px}.done-pill{padding:10px 18px;background:#c9f3da;border-radius:999px;color:#168255;font:900 18px/1 'Nunito',sans-serif}.hand-note{text-align:center;color:#5277b1;font:900 18px/1.12 'Nunito',sans-serif;transform:rotate(-5deg)}.hand-note span{color:#7e9dd0}
.deed-list{display:grid;gap:8px}.deed-row{display:grid;grid-template-columns:48px 62px 1fr 110px;align-items:center;gap:10px;min-height:78px;padding:8px 14px;background:#fff;border-radius:19px;box-shadow:0 3px 10px rgba(65,117,150,.07)}.check-circle{display:grid;place-items:center;width:39px;height:39px;border-radius:50%;background:linear-gradient(145deg,#39d47e,#15b763);box-shadow:0 4px 0 #0b9f54;color:#fff;font-size:25px;font-weight:900}.check-circle--empty{background:#f4f7f8;border:3px solid #c9d0d6;box-shadow:none}.deed-icon{font-size:34px;text-align:center}.deed-name{font:900 20px/1.15 'Nunito',sans-serif}.deed-points{justify-self:end;font:900 19px/1 'Nunito',sans-serif}.deed-points b{color:#ffc428;font-size:32px;text-shadow:0 3px 0 #e69b00}.deed-row--placeholder{opacity:.74}.finish-button{position:relative;margin-top:14px;height:69px;display:flex;align-items:center;justify-content:center;border-radius:22px;background:linear-gradient(180deg,#35cc78,#10aa58);box-shadow:0 6px 0 #0a934c;color:#fff;font-size:31px;font-weight:900;text-shadow:0 2px 0 rgba(0,0,0,.08)}.finish-button span{position:absolute;right:24px;font-size:48px;line-height:1}.deeds-star{position:absolute;right:-1.5%;bottom:-1%;width:16%;max-width:135px;animation:starFloat 3s ease-in-out infinite}
.panel--rewards{padding:20px 22px 22px;background:linear-gradient(145deg,#fafeff,#e7f7ff);border:3px solid #caebff}.reward-heading{display:grid;grid-template-columns:110px 1fr 150px;align-items:center;gap:10px;margin-bottom:13px}.gift-icon{width:98px;animation:giftWiggle 3s ease-in-out infinite}.reward-heading h2{margin:0;color:#136fd2;font-size:43px;line-height:1;font-weight:900}.reward-heading p{margin:5px 0 0;font:800 18px/1.2 'Nunito',sans-serif;color:#38639b}.reward-note{justify-self:end;padding:12px 16px;border-radius:26px;background:linear-gradient(145deg,#fff69d,#ffe660);box-shadow:0 7px 15px rgba(216,164,14,.15);text-align:center;color:#784416;font:900 18px/1.12 'Nunito',sans-serif;transform:rotate(-4deg)}.reward-note span{color:#e74b44}.reward-list{display:grid;gap:9px}.reward-row{display:grid;grid-template-columns:96px 1fr 170px 115px;align-items:center;gap:8px;min-height:81px;padding:6px 12px;background:#fff;border-radius:19px;box-shadow:0 3px 10px rgba(65,117,150,.07)}.reward-icon-wrap{height:68px;display:grid;place-items:center}.reward-icon{width:75px;height:68px;object-fit:contain}.reward-icon-fallback{font-size:40px}.reward-name{font:900 20px/1.15 'Nunito',sans-serif}.reward-cost{display:flex;align-items:center;gap:5px;font:900 17px/1 'Nunito',sans-serif;white-space:nowrap}.reward-cost b{color:#ffc42b;font-size:34px;text-shadow:0 3px 0 #e69b00}.reward-button{justify-self:end;display:grid;place-items:center;width:110px;height:52px;border-radius:18px;background:linear-gradient(180deg,#43a7ff,#0b82eb);box-shadow:0 5px 0 #0870cc;color:#fff;font-size:21px;font-weight:900}.reward-row--locked{opacity:.58;filter:saturate(.7)}
.kindness-footer{position:relative;margin-top:20px;padding:34px 8px 12px}.footer-board{margin:auto;width:min(72%,660px);padding:15px 20px;border-radius:14px;background:linear-gradient(180deg,#e5b16f,#c98746);box-shadow:inset 0 4px 0 rgba(255,255,255,.2),0 9px 18px rgba(88,58,26,.15);text-align:center;color:#68401d;font:900 18px/1.2 'Nunito',sans-serif}.footer-board span{color:#e74d48}
.cloud{position:fixed;z-index:0;width:160px;height:52px;border-radius:999px;background:rgba(255,255,255,.65);animation:cloudDrift 22s linear infinite}.cloud:before,.cloud:after{content:"";position:absolute;background:inherit;border-radius:50%}.cloud:before{width:70px;height:70px;left:20px;bottom:10px}.cloud:after{width:90px;height:90px;right:15px;bottom:5px}.cloud--1{top:10%;left:-180px}.cloud--2{top:35%;left:-240px;transform:scale(.72);animation-delay:-10s}.cloud--3{top:58%;left:-200px;transform:scale(.5);animation-delay:-4s}
.asset-float{animation:float 4.2s ease-in-out infinite}.asset-float--slow{animation-duration:5s}.asset-float--tiny{animation-duration:4.7s}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -8px}}@keyframes starFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(3deg)}}@keyframes sparkle{0%,100%{opacity:.3;transform:scale(.7) rotate(0)}50%{opacity:1;transform:scale(1.25) rotate(45deg)}}@keyframes letterBob{0%,78%,100%{transform:translateY(0)}84%{transform:translateY(-7px)}90%{transform:translateY(2px)}}@keyframes crown{0%,80%,100%{transform:rotate(0)}86%{transform:rotate(-9deg)}92%{transform:rotate(9deg)}}@keyframes giftWiggle{0%,80%,100%{transform:rotate(0)}86%{transform:rotate(-7deg)}92%{transform:rotate(7deg)}}@keyframes cloudDrift{from{translate:0 0}to{translate:calc(100vw + 450px) 0}}@keyframes scorePop{0%{transform:scale(1)}50%{transform:scale(1.1)}100%{transform:scale(1)}}.points-card__score.is-complete{animation:scorePop .55s ease}
@media(max-width:720px){.kid-dashboard{padding:10px 7px 22px}.hero{height:540px}.hero__speech{width:122px;left:0;top:53px;padding:13px 9px;font-size:14px}.hero__sun{width:15%;top:48px}.hero__boy{left:-7%;bottom:27px;width:36%}.hero__sign{right:-4%;bottom:85px;width:20%}.points-card{width:67%;height:318px;border-radius:46px;padding-top:25px}.points-card__score{font-size:116px}.points-card__unit{font-size:35px}.points-card__message{font-size:16px}.panel{border-radius:27px}.panel--deeds,.panel--rewards{padding:16px 10px}.panel__heading{grid-template-columns:1fr auto}.panel__title{font-size:29px}.clipboard{width:44px;height:44px}.hand-note{display:none}.done-pill{font-size:14px;padding:9px 11px}.deed-row{grid-template-columns:40px 42px 1fr 77px;gap:5px;padding:7px}.deed-name{font-size:15px}.deed-points{font-size:14px}.deed-points b{font-size:25px}.finish-button{height:57px;font-size:24px}.deeds-star{width:18%}.reward-heading{grid-template-columns:74px 1fr}.gift-icon{width:70px}.reward-heading h2{font-size:30px}.reward-heading p{font-size:14px}.reward-note{display:none}.reward-row{grid-template-columns:62px 1fr 100px 76px;gap:4px;padding:5px}.reward-icon{width:56px;height:55px}.reward-name{font-size:14px}.reward-cost{font-size:12px}.reward-cost b{font-size:25px}.reward-button{width:72px;height:42px;font-size:16px}.footer-board{width:90%;font-size:14px}}
@media(max-width:430px){.hero{height:500px}.hero__eyebrow{font-size:31px}.hero__title{font-size:55px}.hero__tagline{font-size:14px}.hero__boy{width:39%;left:-9%;bottom:23px}.hero__sun{width:17%;right:0}.hero__sign{width:22%;right:-5%;bottom:76px}.points-card{width:69%;height:293px;padding-top:22px;border-width:4px}.points-card__label{font-size:15px}.points-card__score{font-size:101px}.points-card__unit{font-size:31px}.points-card__star--small{width:28%}.points-card__star--large{width:38%;right:-15%}.reward-row{grid-template-columns:55px 1fr 83px 66px}.reward-name{font-size:12px}.reward-cost{font-size:10px}.reward-button{width:62px;font-size:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}
