.growth-hero{position:relative;overflow:hidden;border-radius:22px;background:linear-gradient(115deg,#e8a26e 0%,#e9b487 52%,#f2cfa6 100%);padding:28px 32px;color:#fffdf6;box-shadow:0 8px 24px #c58d5912;margin-bottom:18px}.growth-hero:before{content:"";position:absolute;width:260px;height:260px;border:1px solid #fff3;border-radius:50%;right:-80px;top:-120px;pointer-events:none}.growth-hero:after{content:"";position:absolute;width:190px;height:190px;border:1px solid #fff3;border-radius:50%;right:-45px;top:-86px;pointer-events:none}.growth-top{display:flex;align-items:center;gap:16px}.reader-avatar{width:63px;height:63px;display:grid;place-items:center;border:3px solid #ffffff80;background:#fff1db;border-radius:23px;font-size:39px;transform:rotate(-5deg);flex-shrink:0}.hero-greeting{font-size:11px;color:#fffaed}.growth-top h2{font-size:21px;letter-spacing:1px;margin:7px 0 9px;font-weight:600}.level-pill{font-size:10px;display:inline-block;border-radius:20px;background:#ffffff2b;border:1px solid #ffffff40;padding:5px 10px}.growth-doodle{margin-left:auto;text-align:center;font-size:46px;transform:rotate(12deg);line-height:.9;color:#ffedc5}.points-row{display:flex;justify-content:space-between;align-items:flex-end;margin-top:23px}.points-row>div>span{font-size:10px;letter-spacing:1px}.points-row p{margin-top:4px}.points-row b{font-size:51px;font-weight:650;line-height:1.2;letter-spacing:1px}.points-row small{font-size:12px;margin-left:5px}.points-row button{border-radius:20px;background:#fff8e72b;color:#fffdf3;border:1px solid #fff6;padding:9px 15px;margin-bottom:9px;font-size:11px}.growth-progress{margin-top:17px;height:8px;background:#9f6e4424;border-radius:9px;overflow:hidden}.growth-progress i{display:block;height:100%;border-radius:9px;background:#fff3c8;min-width:5px;transition:width .5s}.growth-bottom{display:flex;justify-content:space-between;font-size:10px;margin-top:10px;color:#fff7e9;gap:8px}.quick-stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fffdf9;border:1px solid var(--border);border-radius:15px;padding:19px 0;margin-bottom:18px}.quick-stats>div{display:grid;text-align:center;border-right:1px solid var(--border);gap:5px;grid-template-columns:1fr 1fr;max-width:180px;width:100%;margin:auto;padding:0 20px}.quick-stats>div:last-child{border:0}.quick-stats>div>span{font-size:20px;grid-row:1/3;align-self:center;text-align:right;padding-right:9px}.quick-stats b{font-size:23px;text-align:left;font-weight:600}.quick-stats small{font-size:9px;color:#a69889;text-align:left;white-space:nowrap}.piggy-card{border:1px solid #efdfd7;border-radius:15px;background:#faeee7;display:flex;align-items:center;gap:17px;padding:19px 23px;margin-bottom:23px}.pig-icon{font-size:36px;transform:rotate(-8deg)}.piggy-card h3{font-size:14px}.piggy-card h3>span{font-size:9px;font-weight:400;color:#b79887;margin-left:8px}.piggy-card p{font-size:10px;color:#af9684;margin-top:8px}.piggy-card button{background:transparent;margin-left:auto;display:grid;gap:3px;text-align:right;color:#b78571;white-space:nowrap}.piggy-card button b{font-size:27px;font-weight:600}.piggy-card button span{font-size:9px}.home-grid{margin-bottom:22px}.home-grid+.stats-grid{display:none}.map-card{border:1px solid var(--border);border-radius:20px;background:linear-gradient(#f3f2e7,#fffaf3);padding:25px;margin-bottom:25px}#map-points,#badge-count{font-size:11px;color:#a3987e}#level-map{position:relative;max-width:650px;margin:40px auto 15px}#level-map:before{content:"";position:absolute;left:calc(50% - 1px);top:35px;bottom:65px;border-left:3px dashed #d5d5be}.map-stop{display:flex;position:relative;align-items:center;gap:25px;min-height:144px;width:100%;padding-left:calc(50% - 39px)}.map-stop:nth-child(even){flex-direction:row-reverse;padding-left:0;padding-right:calc(50% - 39px);text-align:right}.map-medallion{height:78px;width:78px;flex-shrink:0;display:grid;place-items:center;font-size:35px;border-radius:50%;background:#e9e6de;border:6px solid #f8f5ec;box-shadow:0 0 0 1px #dcd8c9;filter:grayscale(1);position:relative;z-index:1}.map-medallion>span{position:absolute;bottom:-6px;right:-2px;background:#c2bfaf;border-radius:50%;font-size:13px;color:white;width:23px;height:23px;display:grid;place-items:center}.unlocked .map-medallion{filter:none;background:#e5ead8;box-shadow:0 0 0 1px #bdc6a3}.unlocked .map-medallion>span{background:#96a77d}.current .map-medallion{background:#f9e5cb;box-shadow:0 0 0 2px #dda773,0 0 0 8px #dda77312}.current .map-medallion>span{background:#d6a06e}.map-stop>div:last-child{min-width:0;width:220px}.map-stop small{font-size:8px;letter-spacing:1px;color:#aaa089}.map-stop h3{font-size:22px;margin:7px 0}.map-stop h3 em{display:inline-block;font-size:9px;background:#f3debf;padding:4px 7px;border-radius:5px;font-style:normal;margin-left:8px;vertical-align:middle;font-weight:400;color:#a17c56}.map-stop p{font-size:10px;line-height:1.8;color:#a39885}.map-status{display:inline-block;font-size:9px;margin-top:8px;color:#b2a693}.unlocked .map-status{color:#91a078}#badge-wall{display:grid;grid-template-columns:repeat(5,1fr);gap:15px;margin-top:25px}.badge{text-align:center;background:#f7f4ee;border:1px solid #ede8df;border-radius:13px;padding:20px 8px;opacity:.75}.badge>span{display:grid;place-items:center;width:58px;height:58px;background:#edeae1;border-radius:50%;margin:auto;font-size:29px;filter:grayscale(1);border:3px solid #fefaf3;box-shadow:0 0 0 1px #e2dcd1}.badge h4{font-size:11px;font-weight:500;margin:14px 0 8px}.badge p{font-size:9px;color:#ada091;line-height:1.6}.badge small{display:inline-block;margin-top:12px;color:#b2a592;font-size:9px}.badge.earned{opacity:1;background:#fbf2df;border-color:#ead9b5}.badge.earned>span{filter:none;background:#f4e2ac;box-shadow:0 0 0 1px #dfc58a}.badge.earned small{color:#b39556}.utility-panel{max-width:1240px;margin:5px auto 25px;padding:20px 35px;border-top:1px dashed #e5ddd1;text-align:center}.utility-panel>span{font-size:10px;color:#91a181}.utility-panel>div{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:15px}.utility-panel button{font-size:10px;padding:9px 13px;background:#f1ece2;color:#a18e7b;border-radius:7px;min-height:36px}.utility-panel>p{font-size:9px;color:#b5a797;line-height:1.8;margin-top:14px}.close-x{background:transparent;font-size:26px;color:#aa9480;min-width:40px;min-height:40px}.settings-note{font-size:11px;line-height:1.9;color:#a69785;background:#f7f1e7;padding:13px;border-radius:10px;margin-top:20px}.install-copy p{font-size:12px;line-height:2;margin-top:20px;color:#9a8874}.install-copy b{color:#675748}.wallet-balance{display:flex;align-items:center;flex-direction:column;gap:13px;background:#f9eade;border-radius:14px;padding:25px 15px;margin-top:20px}.wallet-balance>span{font-size:11px;color:#b08f76}.wallet-balance b{font-size:43px;font-weight:550;color:#bd866b}.wallet-balance small{font-size:10px;color:#b1947b}.ledger{max-height:260px;overflow:auto;overscroll-behavior:contain;margin-top:16px}.ledger>div:not(.empty-state){display:flex;align-items:center;gap:15px;justify-content:space-between;padding:15px 0;border-bottom:1px dashed #e9dfd2}.ledger b{font-size:12px;font-weight:500;overflow-wrap:anywhere}.ledger small{display:block;font-size:9px;margin-top:7px;color:#b29d87}.ledger strong{font-size:16px;color:#a2ad89;white-space:nowrap}.ledger .redeem{color:#cb9b87}.week-switch{display:flex;align-items:center;gap:8px;font-size:10px;color:#a59480}.week-switch button{width:35px;height:35px;border-radius:50%;background:#f5efe4;color:#ab947c;font-size:22px}.week-switch button:disabled{opacity:.3}.empty-state{border:0;width:100%;color:#a39481}.book-card h3,.book-info h4{overflow-wrap:anywhere}.book-card p{overflow-wrap:anywhere}.book-actions button{min-height:36px}dialog{max-height:85dvh;overflow-y:auto;overscroll-behavior:contain}#celebration{pointer-events:none;position:fixed;inset:0;overflow:hidden;z-index:20}#celebration i{position:absolute;left:var(--x);top:-20px;width:9px;height:16px;border-radius:2px;animation:confetti 1.8s var(--delay) ease-out both}@keyframes confetti{to{transform:translateY(100vh) rotate(var(--turn));opacity:0}}@media(max-width:1150px){#badge-wall{grid-template-columns:repeat(3,1fr)}.growth-hero{padding:25px}.piggy-card h3>span{display:none}.quick-stats>div{padding:0 13px}.map-stop{gap:18px}.map-stop>div:last-child{width:180px}.map-stop p{font-size:9px}}@media(max-width:850px){.growth-doodle{font-size:36px}.growth-top h2{font-size:19px}.points-row button{font-size:9px;padding:9px}.growth-bottom{font-size:9px}.quick-stats>div{display:flex;flex-direction:column;align-items:center;padding:0 8px}.quick-stats>div>span{padding:0;font-size:18px}.quick-stats b{font-size:22px}.quick-stats small{font-size:9px}.map-stop h3{font-size:20px}.map-stop h3 em{display:block;width:max-content;margin:7px 0}.map-stop:nth-child(even) h3 em{margin-left:auto}.map-stop{gap:15px}.map-stop>div:last-child{width:160px}.piggy-card{padding:17px}.piggy-card h3{font-size:13px}.piggy-card p{font-size:9px}}@media(max-width:600px){.growth-hero{padding:23px 21px;margin-bottom:13px;border-radius:19px}.growth-top{gap:12px}.reader-avatar{width:54px;height:54px;font-size:33px;border-radius:19px}.hero-greeting{font-size:10px}.growth-top h2{font-size:17px;letter-spacing:0;margin:7px 0 8px}.growth-doodle{font-size:30px;margin-left:auto;opacity:.8}.level-pill{font-size:9px;padding:4px 8px}.points-row{margin-top:24px}.points-row b{font-size:49px}.points-row>div>span{font-size:9px}.points-row button{font-size:9px;padding:9px 11px}.growth-progress{height:7px;margin-top:16px}.growth-bottom{font-size:8px}.quick-stats{padding:15px 0;margin-bottom:13px;border-radius:13px}.quick-stats>div{gap:5px}.quick-stats>div>span{font-size:19px}.quick-stats b{font-size:23px}.quick-stats small{font-size:9px}.piggy-card{gap:11px;padding:16px 14px;margin-bottom:21px;border-radius:13px}.pig-icon{font-size:33px}.piggy-card h3{font-size:13px}.piggy-card p{font-size:8px;margin-top:7px}.piggy-card button b{font-size:25px}.piggy-card button span{font-size:8px}.hero-card{display:none}.checkin-card{scroll-margin:18px}.page-heading .heading-stamp{display:none}.home-grid+.stats-grid{display:none}.map-card{padding:20px 15px}.map-card .section-title h3{font-size:13px}.map-card .section-title p{font-size:8px}#map-points{font-size:9px;white-space:nowrap}#level-map{margin-top:25px}#level-map:before{left:39px;top:39px;bottom:76px}.map-stop,.map-stop:nth-child(even){flex-direction:row;text-align:left;padding:0;gap:22px;min-height:150px}.map-medallion{width:78px;height:78px}.map-stop>div:last-child{width:auto;flex:1}.map-stop h3{font-size:23px;margin:7px 0}.map-stop h3 em,.map-stop:nth-child(even) h3 em{display:inline-block;font-size:9px;margin:0 0 0 9px}.map-stop p{font-size:10px}.map-status{font-size:9px}#badge-wall{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:20px}.badge{padding:21px 7px}.badge>span{width:61px;height:61px;font-size:31px}.badge h4{font-size:12px}.badge p{font-size:9px}.utility-panel{padding:22px 20px 10px;margin:0 19px 8px}.utility-panel>div{display:grid;grid-template-columns:1fr 1fr;gap:9px}.utility-panel button{min-height:42px;font-size:11px}.utility-panel>span{font-size:9px}.utility-panel>p{font-size:9px}.week-switch{gap:4px;font-size:9px}.week-switch button{width:32px;height:36px}.report-chart .section-title h3{font-size:11px}.report-chart .section-title p{font-size:8px}.nav-item{font-size:10px;min-height:65px}.nav-item>span{font-size:24px}input,textarea,select{font-size:16px!important}textarea{line-height:1.8!important}input::placeholder,textarea::placeholder{font-size:12px}#custom-minutes{padding:10px}.book-card select{font-size:16px!important;min-height:44px}.duration-options button{min-height:44px}.checkin-button{min-height:46px}.book-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.book-actions button{font-size:10px;padding:7px 3px;min-height:40px}.book-actions button:nth-child(3){margin:0}.shelf-tabs{gap:3px}.shelf-tabs button{padding:10px 11px;font-size:11px;min-height:42px}.book-card .mini-cover{margin-bottom:18px}dialog{padding:24px 21px;border-radius:18px}.dialog-heading h2{font-size:18px}.dialog-submit{min-height:46px}.utility-panel{padding-bottom:env(safe-area-inset-bottom,0px)}.topbar{gap:8px}.topbar>div:first-child{font-size:9px}.avatar{flex-shrink:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
