/* One account experience: the pasture and all account pages share this shell. */
:root{--joy-gold:#ffd35c;--joy-green:#91e474;--joy-pink:#ff99ba;--joy-blue:#94ceff}
body{color:#f4f6ec}
.app-shell{max-width:1180px;margin-top:14px}
.topbar{background:linear-gradient(135deg,#182632ed,#1c302eeb);border-color:#526342;padding:15px 20px;box-shadow:0 9px 28px #07131f44,inset 0 1px 0 #ffffff08}
.topbar-brand strong{font-size:25px;letter-spacing:-.3px}
.brand-mark{width:48px;height:48px;font-size:29px;box-shadow:0 0 20px #f8bf152b}
.balance-mini b{font-size:29px;letter-spacing:-.4px;font-variant-numeric:tabular-nums}
.balance-mini small{font-size:10px}
.balance-mini{padding:10px 18px;min-width:190px}
.sound-switch{width:42px;height:42px;border-radius:14px;background:#2b4133;border:1px solid #769456;font-size:21px;box-shadow:inset 0 1px 0 #ffffff15;color:#fff1b9;flex-shrink:0}
.sound-switch:hover{background:#3a5340}
.portal-quicknav{gap:9px;margin-top:14px;padding-bottom:4px;scrollbar-width:none}
.portal-quicknav::-webkit-scrollbar{display:none}
.portal-quicknav a{padding:10px 18px;font-family:var(--display);font-size:14px;font-weight:500;border-color:#637650;min-height:41px}
.portal-quicknav a.active{box-shadow:0 3px 13px #ffca2225}
.farm-guide{padding:11px 17px;margin-top:13px;border-color:#ba9344;border-radius:22px;background:linear-gradient(110deg,#192932,#192735)}
.farm-guide>img{width:61px;height:61px;border-width:2px;box-shadow:0 0 0 4px #5f714033}
.farm-guide-copy p{font-size:14px;line-height:1.45;color:#d6e6cf}
.farm-guide-copy strong{font-size:19px}
.page-heading h1{font-size:clamp(29px,3.2vw,39px);line-height:1.15}
.page-heading{margin-bottom:22px}
.page-heading p{font-size:14px;line-height:1.55;max-width:720px}
.page-main{padding-top:25px;min-height:55vh}
.view-arrived{animation:view-arrive .32s ease-out both}
@keyframes view-arrive{from{opacity:.6;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.focus-number,.stat strong,.reward,.wallet-number,.animal-specs b,.balance-mini b,.animal-harvest{font-variant-numeric:tabular-nums;font-feature-settings:'tnum'}
.pasture-balance-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:18px}
.balance-focus,.collect-focus{position:relative;overflow:hidden;border-radius:25px;padding:24px 26px;box-shadow:0 8px 24px #07141f2b;min-width:0}
.balance-focus{background:linear-gradient(120deg,#fff1bb,#ffdc70);border:2px solid #f8c947;color:#51390b}
.balance-focus:after{content:'🌾';position:absolute;right:16px;top:22px;font-size:112px;opacity:.09;transform:rotate(12deg);pointer-events:none}
.collect-focus{background:radial-gradient(ellipse at 95% 20%,#375332aa,transparent 70%),linear-gradient(135deg,#203c2e,#1d2f35);border:2px solid #78b85b;color:#ecf7df}
.focus-label{font-size:12px;text-transform:uppercase;font-weight:700;letter-spacing:.75px;line-height:1.4}
.focus-number{display:block;font-family:var(--display);font-size:clamp(38px,4.4vw,56px);font-weight:600;letter-spacing:-1.3px;line-height:1.15;margin:11px 0 9px;overflow-wrap:anywhere}
.collect-focus .focus-number{color:#b3f18a;text-shadow:0 2px 18px #80d95020}
.focus-hint{display:block;font-size:12px;line-height:1.5;max-width:300px;color:inherit;opacity:.83}
.balance-focus .btn{margin-top:18px;background:#203e28;border-color:#537940;border-bottom-color:#172e1e;color:#f4f8d7;font-size:13px;min-height:39px;padding:9px 16px}
.focus-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.focus-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:15px}
.focus-bottom .btn{flex-shrink:0}
.live-dot{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:#c5efb0;white-space:nowrap;background:#203b2b;border:1px solid #679850;padding:3px 8px;border-radius:20px}
.live-dot:before{content:'';width:6px;height:6px;background:#a4e377;border-radius:50%;box-shadow:0 0 8px #a6e56980}
.stats-grid{gap:13px}
.stat{display:flex;flex-direction:column;align-items:flex-start;position:relative;padding:21px 20px 18px;border:1px solid #6d7440;border-radius:22px;background:linear-gradient(130deg,#233630,#192b35);min-height:160px}
.stat:nth-child(2){border-color:#557c48;background:linear-gradient(130deg,#263b2e,#192c31)}
.stat:nth-child(3){border-color:#4e7085;background:linear-gradient(130deg,#233443,#1b2c35)}
.stat:nth-child(4){border-color:#776082;background:linear-gradient(130deg,#352e40,#222b37)}
.stat-icon{position:absolute;right:15px;top:17px;width:33px;height:33px;border-radius:11px;opacity:.95}
.stat-label{padding-right:29px;font-size:11px;line-height:1.4;letter-spacing:.25px;color:#deead4;max-width:100%}
.stat strong{font-size:clamp(27px,2.9vw,37px);margin:15px 0 6px;letter-spacing:-.6px;font-weight:600;color:#ffe8a0;line-height:1.12;overflow-wrap:anywhere}
.stat:nth-child(2) strong{color:#b9ed96}.stat:nth-child(3) strong{color:#bbdfff}.stat:nth-child(4) strong{color:#dfbdf4}
.stat small{font-size:11px;color:#bacdb3;line-height:1.4}
.rex-companion{display:flex;align-items:center;gap:17px;padding:18px 22px;border:1px dashed #899974;border-radius:24px;background:linear-gradient(100deg,#23374a,#21382e);margin:22px 0 31px;box-shadow:0 5px 16px #07131f20}
.rex-companion>img{width:79px;height:79px;object-fit:cover;border-radius:50%;border:3px solid #edc55e;box-shadow:0 0 0 5px #d4d88e12}
.rex-companion>div{flex:1}.rex-companion .eyebrow{font-size:9px;margin-bottom:6px;color:#ebd48b;letter-spacing:1.2px}
.rex-companion h2{font-size:24px;font-weight:600;color:#ffda76;margin-bottom:6px}
.rex-companion p{font-size:13px;color:#cde0c4}
.rex-companion .btn{font-size:13px}
.herd-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:7px 0 22px}
.herd-heading h2{font-size:32px;font-weight:600;color:#edf5dc}
.herd-heading h2 span{font-size:23px}
.herd-heading .eyebrow{font-size:10px;color:#e1ce88}
.filters .filter-btn{font-size:14px;padding:9px 17px;display:inline-flex;align-items:center;gap:9px}
.filters .filter-btn span{display:grid;place-items:center;background:#ffffff12;min-width:22px;min-height:22px;border-radius:50%;font-size:11px;font-family:var(--font);font-weight:700}
.filters .filter-btn.active span{background:#835b1720}
.happy-animal{position:relative;border:2px solid #edc35d;border-radius:26px;background:linear-gradient(170deg,#1b2b34,#172a31);box-shadow:0 8px 24px #06122140;transition:box-shadow .22s,border-color .22s,translate .22s}
.happy-animal:hover,.happy-animal:focus-within{border-color:#ffdb6c;box-shadow:0 12px 36px #06121d70,0 0 16px #dfb93d15;translate:0 -3px}
.happy-art{isolation:isolate;aspect-ratio:1.4;position:relative;background:#597747;overflow:hidden}
.animal-portrait-button{display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:transparent;cursor:pointer;overflow:hidden}
.animal-portrait-button:focus-visible{outline:4px solid #ffdc5e;outline-offset:-5px}
.animal-portrait-button .happy-art-image{width:100%;height:100%;object-fit:cover;transform-origin:50% 85%;transition:filter .2s;will-change:auto}
.happy-art:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#402f0010,transparent 50%,#19292b60)}
.happy-animal.in-view .happy-art-image{animation:animal-breathe 5s ease-in-out infinite;animation-delay:var(--idle-delay,0s)}
@keyframes animal-breathe{0%,100%{transform:scale(1.015) rotate(-.4deg)}50%{transform:scale(1.04) rotate(.4deg)}}
.animal-rarity{z-index:2;left:12px!important;top:12px!important;pointer-events:none}
.animal-product{position:absolute;right:10px;top:12px;max-width:52%;font-size:10px;line-height:1.2;background:#fff5ceec;color:#66501a;border:1px solid #c8a349;border-radius:8px;padding:6px 8px;pointer-events:none;z-index:2;backdrop-filter:blur(3px)}
.animal-speech{position:absolute;left:50%;top:50%;translate:-50% -50%;padding:8px 12px;background:#fff7d6f2;color:#624510;border:1px solid #e5b849;border-radius:14px;font-family:var(--display);font-size:14px;text-align:center;max-width:80%;width:max-content;opacity:0;transform:translateY(10px) scale(.9);transition:opacity .2s,transform .2s;pointer-events:none;z-index:4;box-shadow:0 5px 17px #161c1e25}
.animal-portrait-button:hover~.animal-speech,.animal-portrait-button:focus-visible~.animal-speech,.is-happy .animal-speech{opacity:1;transform:translateY(0) scale(1)}
.happy-spark{position:absolute;opacity:0;pointer-events:none;z-index:3;font-size:25px}
.happy-spark-one{left:13%;top:36%}.happy-spark-two{right:14%;top:20%}
.is-happy .happy-spark{animation:happy-hearts 1.1s ease-out both}.is-happy .happy-spark-two{animation-delay:.15s}
.is-happy.in-view .happy-art-image{animation:animal-bounce .6s ease-in-out both!important}
@keyframes happy-hearts{0%{opacity:0;transform:translateY(12px) scale(.5)}25%{opacity:1;transform:translateY(0) scale(1.1)}100%{opacity:0;transform:translateY(-40px) scale(.85)}}
@keyframes animal-bounce{0%,100%{transform:scale(1.02)}30%{transform:scale(1.07) rotate(-2deg)}65%{transform:scale(1.035) rotate(2deg)}}
.animal-harvest{position:absolute;left:50%;bottom:13px;translate:-50% 0;z-index:5;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;border:2px solid #f6d667;border-bottom:4px solid #b87c17;border-radius:30px;padding:8px 16px;background:linear-gradient(180deg,#ffe579,#ffbf2e);color:#5f3f0a;font:600 25px var(--display);box-shadow:0 5px 15px #4e34083d;transition:scale .15s}
.animal-harvest:hover:not(:disabled){scale:1.06}.animal-harvest:disabled{opacity:.8;cursor:default;background:#e8dcad;border-color:#c4b781;border-bottom-color:#a49567}
.animal-name-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.animal-name-row h3{font-size:24px;line-height:1.1;flex:1}
.animal-content{padding:19px;gap:13px}
.pet-pill{background:#ffe5eb;color:#a33056;border:1px solid #ffabc6;border-bottom:3px solid #cf7998;border-radius:24px;font-family:var(--display);font-size:12px;font-weight:600;padding:7px 11px;white-space:nowrap;transition:scale .15s}
.pet-pill:hover{scale:1.06;background:#fff0f5}
.animal-mood{display:flex;align-items:center;gap:5px;font-size:12px;color:#bde69c;font-weight:500}
.animal-specs{padding:14px 0;border-color:#50624b;gap:10px}
.animal-specs b{font-size:29px;font-weight:600;color:#dbefbf;letter-spacing:-.4px;overflow-wrap:anywhere;line-height:1.25}
.animal-specs>div:nth-child(2) b{color:#ffe19a}
.animal-specs small{font-size:11px;margin-bottom:4px;color:#c3d2b8}
.animal-cycle-note{font-size:11px;color:#bacbad;line-height:1.6}
.animal-cycle-note strong{color:#e9e3b8;font-weight:500}
.animal-content .progress-track{height:10px;margin:1px 0 8px;background:#354631;border:1px solid #58694b}
.animal-content .progress-track>span{background:linear-gradient(90deg,#65c657,#ace26c,#ffdb66)}
.animal-content .progress-meta{font-size:11px;color:#c6d5b7}
.animal-description{font-size:13px!important;line-height:1.5;min-height:40px;color:#d2ddc6!important}
.shop-cycle-summary{display:grid;gap:5px;font-size:12px;color:#c7dab7}.shop-cycle-summary strong{color:#ffe29b;font-weight:600}
.happy-animal .btn-full{font-size:14px}
.pasture-help{padding:19px 5px;color:#c2d4b7;font-size:12px;line-height:1.6;text-align:center;margin-bottom:10px}
.wallet-card .wallet-number{font-size:clamp(40px,5vw,57px)}
.reward{font-size:37px}
.btn:not(:disabled){transition:filter .18s,translate .18s,box-shadow .18s}
.btn:hover:not(:disabled){filter:brightness(1.07)}
.btn:active:not(:disabled){translate:0 2px;box-shadow:inset 0 1px 1px #fff2}
.btn:disabled{cursor:not-allowed}
.number-celebrate{animation:number-reward .75s ease-out}
@keyframes number-reward{0%,100%{scale:1}30%{scale:1.07;filter:brightness(1.25)}}
.portal-dock{border-color:#859c73;box-shadow:0 12px 35px #0007,0 0 22px #c9d9840c,inset 0 2px 1px #ffffff26}
.portal-dock .dock-shop{background:#2a3b4b;color:#f4f3db;border-color:#687563;border-bottom-color:#101e27}
.portal-dock a.active,.portal-dock .dock-shop.active{background:linear-gradient(180deg,#ffdf69,#ffbc2d);color:#5a3c0e;border-color:#dfae39;border-bottom-color:#99651d}
#aurora-fx{position:fixed;inset:0;width:100%;height:100%;z-index:90;pointer-events:none}
#portal-toast{font-size:14px;padding:15px 22px;background:#263f30;border-color:#baad5a;box-shadow:0 8px 30px #06140e66;max-width:min(600px,calc(100vw - 26px));text-align:center;line-height:1.5}
.auth-story-content h1{font-size:clamp(39px,4.2vw,54px)}
.auth-main .btn{min-height:47px}.auth-main input{min-height:48px}
@media(max-width:1000px){.focus-number{font-size:44px}.focus-bottom{align-items:flex-start;flex-direction:column}.focus-bottom .btn{width:100%}.stat{padding:18px 16px;min-height:145px}.stat strong{font-size:33px}.topbar{gap:13px}.topbar-right{gap:9px}.balance-mini{min-width:170px}.balance-mini b{font-size:26px}}
@media(max-width:820px){.app-shell{padding:0 14px}.topbar-brand strong{font-size:22px}.pasture-balance-grid{gap:13px;grid-template-columns:1fr 1fr}.balance-focus,.collect-focus{padding:21px 19px}.focus-number{font-size:40px;letter-spacing:-.8px}.focus-label{font-size:10px}.focus-hint{font-size:11px}.balance-focus .btn{font-size:12px;padding-inline:12px}.rex-companion{gap:14px;flex-wrap:wrap}.rex-companion h2{font-size:22px}.rex-companion .btn{margin-left:94px}.rex-companion>div{min-width:170px}.herd-heading h2{font-size:29px}.herd-heading{gap:13px}.animal-specs b{font-size:30px}.farm-guide-copy p{font-size:13px}.page-heading h1{font-size:31px}.portal-quicknav a{font-size:13px;padding:9px 15px}}
@media(max-width:560px){.app-shell{padding:0 11px;margin-top:11px}.topbar{padding:14px 15px;border-radius:24px;gap:12px}.topbar-brand strong{font-size:24px}.topbar-right{flex-wrap:wrap;gap:9px}.balance-mini{order:0;flex:1;min-width:166px;padding:8px 13px}.balance-mini b{font-size:27px}.balance-mini small{font-size:9px}.sound-switch{order:1;width:38px;height:38px;font-size:19px}.user-mini{order:2}.topbar-right>.menu-toggle{order:3;padding:10px;font-size:11px}.topbar-right .avatar{width:35px;height:35px;font-size:21px}.portal-level{font-size:10px;gap:6px}.brand-mark{width:43px;height:43px;font-size:27px}.farm-guide{padding:12px;gap:12px}.farm-guide>img{width:48px;height:48px}.farm-guide-copy strong{font-size:17px}.farm-guide-copy p{font-size:12px;line-height:1.5}.page-heading{margin-bottom:19px}.page-heading h1{font-size:28px;line-height:1.2}.page-heading .eyebrow{font-size:9px;letter-spacing:1.2px}.page-heading p{font-size:13px}.pasture-balance-grid{grid-template-columns:1fr;gap:13px}.balance-focus,.collect-focus{padding:20px 22px;border-radius:25px}.focus-number{font-size:51px;line-height:1.15;margin:9px 0;letter-spacing:-1px}.focus-label{font-size:11px}.focus-hint{font-size:12px;max-width:none}.focus-bottom{flex-direction:row;align-items:center;gap:14px;margin-top:15px}.focus-bottom .focus-hint{max-width:145px;font-size:11px}.focus-bottom .btn{width:auto;min-height:42px;padding:10px 15px;white-space:nowrap}.balance-focus .btn{min-height:40px;font-size:13px;margin-top:15px}.balance-focus:after{font-size:110px;top:14px}.stats-grid{gap:10px;margin:16px 0}.stat{padding:17px 13px;min-height:141px;display:flex;flex-direction:column}.stat-icon{width:27px;height:29px;right:11px;top:12px}.stat-icon svg{width:17px;height:17px}.stat-label{font-size:10px;padding-right:24px;max-width:100%;min-height:28px}.stat strong{font-size:29px;margin:11px 0 7px}.stat small{font-size:10px;line-height:1.4}.rex-companion{padding:17px;gap:14px;margin:20px 0 28px}.rex-companion>img{width:64px;height:64px;box-shadow:0 0 0 4px #d4d88e12}.rex-companion>div{min-width:calc(100% - 80px)}.rex-companion .eyebrow{font-size:8px;letter-spacing:.8px}.rex-companion h2{font-size:20px}.rex-companion p{font-size:12px;line-height:1.5}.rex-companion .btn{width:100%;margin:0;font-size:13px}.herd-heading{align-items:flex-start;flex-direction:column;gap:14px;margin-bottom:20px}.herd-heading h2{font-size:29px}.herd-heading .eyebrow{font-size:9px}.herd-heading .btn{font-size:12px;min-height:38px;padding:9px 16px}.filters{gap:7px;margin-bottom:19px}.filters .filter-btn{font-size:12px;padding:8px 12px;gap:6px}.filters .filter-btn span{font-size:10px;min-width:20px;min-height:20px}.happy-art{aspect-ratio:1.32}.happy-animal{border-radius:27px}.animal-product{font-size:10px}.animal-name-row h3{font-size:25px}.animal-content{padding:19px 18px}.animal-specs b{font-size:32px}.animal-specs small{font-size:11px}.animal-harvest{font-size:27px;padding:8px 19px;bottom:14px}.pet-pill{font-size:12px}.animal-mood{font-size:12px}.animal-speech{font-size:14px}.pasture-help{font-size:12px;text-align:left;padding:19px 5px;max-width:370px;margin:auto}.portal-dock a,.portal-dock button{font-size:12px;min-height:42px}.portal-dock{bottom:max(11px,env(safe-area-inset-bottom));padding:7px}.portal-footer{padding-bottom:112px}.wallet-card .wallet-number{font-size:45px}.reward{font-size:34px}.panel h2{font-size:25px}.list-value{font-size:15px}#portal-toast{font-size:13px;bottom:88px;padding:13px 17px}}
@media(max-width:365px){.topbar-right>.menu-toggle{font-size:0;gap:0}.topbar-right>.menu-toggle svg{width:18px}.balance-mini{min-width:155px}.topbar-brand strong{font-size:22px}.focus-number{font-size:45px}.stat strong{font-size:25px}.animal-specs b{font-size:28px}.focus-bottom .btn{font-size:12px;padding-inline:12px}}
@media(prefers-reduced-motion:reduce){.view-arrived,.happy-animal.in-view .happy-art-image,.is-happy.in-view .happy-art-image,.is-happy .happy-spark,.number-celebrate{animation:none!important}.happy-animal{transition:none}.happy-spark{display:none}.animal-speech{transition:none}.happy-animal:hover,.happy-animal:focus-within{translate:0}.btn:active:not(:disabled){translate:0}}
