
/* Rizo.game launch layer: install onboarding, legal footer, and ad presentation. */
:root{--launch-cyan:#16c8ff;--launch-ink:#07090d;--launch-cream:#f5f0df}
.install-gate[hidden]{display:none!important}
.install-gate{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:max(18px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom));background:radial-gradient(circle at 50% 12%,rgba(22,200,255,.2),transparent 34%),rgba(4,6,9,.97);backdrop-filter:blur(12px);overflow:auto}
.install-card{width:min(100%,470px);border:1px solid #35414e;border-radius:28px;background:linear-gradient(160deg,#171d26,#0b0e13 64%);box-shadow:0 28px 80px rgba(0,0,0,.65),inset 0 1px 0 rgba(255,255,255,.08);padding:18px;color:var(--launch-cream);text-align:center}
.install-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:9px}.install-brand img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 0 12px rgba(22,200,255,.32))}.install-brand b{font-size:20px;letter-spacing:.08em}.install-brand small{display:block;color:#9ba8b7;font-size:8px;letter-spacing:.12em;margin-top:3px}
.install-card h1{font-size:22px;line-height:1.08;margin:10px 0 7px;letter-spacing:.04em}.install-card>p{font-size:10px;line-height:1.55;color:#aab4c1;margin:0 auto 13px;max-width:370px}
.install-benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:13px 0}.install-benefits div{border:1px solid #2c3743;background:#0b1016;border-radius:12px;padding:10px 5px}.install-benefits b{display:block;font-size:17px}.install-benefits span{display:block;font-size:7px;color:#9ca8b5;margin-top:4px}
.install-steps{border:1px solid #2b3743;background:#0a0e13;border-radius:15px;padding:11px;text-align:left;margin:11px 0}.install-steps strong{font-size:9px;color:var(--launch-cyan);letter-spacing:.08em}.install-steps ol{padding-left:20px;margin:7px 0 0}.install-steps li{font-size:9px;line-height:1.55;color:#c6ced7}
.install-actions{display:grid;gap:8px;margin-top:12px}.install-primary,.install-secondary{border-radius:14px;padding:13px 12px;font:1000 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;cursor:pointer}.install-primary{border:1px solid #55ddff;background:linear-gradient(180deg,#18bfe9,#087c9b);color:white;box-shadow:0 5px 0 #054b5d}.install-primary:active{transform:translateY(4px);box-shadow:0 1px 0 #054b5d}.install-secondary{border:1px solid #384452;background:#1b222c;color:#d9e0e7}.install-meta{font-size:7px!important;color:#74808d!important;margin-top:12px!important}.install-meta a{color:#a8eaff}
.install-status{display:inline-flex;align-items:center;gap:6px;border:1px solid #2f3c48;background:#0a0f14;border-radius:999px;padding:6px 9px;font-size:7px;color:#aab4bf}.install-status i{width:7px;height:7px;border-radius:50%;background:#66ff8c;box-shadow:0 0 9px #66ff8c}
.ad-slot.rizo-ad-live{display:block!important;min-height:90px;padding:8px 7px 10px;border-style:solid;background:#0c1117}.rizo-sponsored-label{font-size:6px;letter-spacing:.13em;color:#7d8793;text-align:center;margin:0 0 6px}.rizo-ad-placeholder{min-height:72px;display:grid;place-items:center;border:1px dashed #3a4654;border-radius:11px;color:#7f8b98;font-size:8px;text-align:center;padding:12px}.rizo-ad-error{font-size:7px;color:#ff8c98;text-align:center;padding:8px}
.rizo-legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:9px}.rizo-legal-links a{font-size:7px;color:#8da1b4;text-decoration:none}.rizo-legal-links a:hover{color:#fff}
@media(max-height:680px){.install-card{padding:13px}.install-benefits{display:none}.install-card h1{font-size:18px}.install-steps{margin:8px 0}.install-actions{margin-top:8px}}


/* QA HARDENING — mobile ergonomics, safe scrolling, and overlay isolation. */
html{scroll-padding-bottom:calc(112px + env(safe-area-inset-bottom));max-width:100%;overflow-x:clip}
body{max-width:100%;overflow-x:clip}
html.ui-locked,body.ui-locked{overflow:hidden!important;overscroll-behavior:none!important}
button,a,input{touch-action:manipulation}
.install-gate,.bottom-sheet,.modal-overlay,.minigame-overlay{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.bottom-sheet,.modal-overlay,.minigame-overlay{overflow-y:auto}
.bottom-sheet{scrollbar-gutter:stable;max-height:min(88dvh,800px)}
.modal-overlay{align-items:safe center;justify-items:center}
.modal-card{margin:auto}
.game-shell{padding-bottom:calc(112px + var(--safe-bottom))}
.bottom-nav button{min-height:52px}
.scene-menu-button,.tutorial-banner button,.bottom-sheet header>button{min-width:44px!important;min-height:44px!important}
.story-next,.story-choice,.install-primary,.install-secondary,.settings-actions button,.wide-button,.ghost-button{min-height:44px}
.store-pill,.daily-gift,.brand-button{min-height:40px}
.sheet-card>a.sheet-action-link{display:inline-grid;place-items:center;min-width:65px;min-height:38px;border:1px solid #3d4856;background:#252d38;border-radius:10px;padding:9px 8px;color:inherit;text-decoration:none;font-size:8px;font-weight:1000}
.mini-arena{height:clamp(240px,63dvh,520px)!important;min-height:0!important}
@media(max-width:370px){
  .game-shell{padding-left:9px;padding-right:9px}
  .game-header{gap:5px}
  .header-right{gap:4px}
  .brand-button{gap:5px;min-width:0}
  .brand-button img{width:31px;height:31px}
  .brand-button strong{font-size:12px;letter-spacing:.09em}
  .brand-button em{font-size:6px}
  .brand-button small{display:none}
  .currency-pill{padding:0 7px}
  .currency-pill b{font-size:10px;max-width:54px;overflow:hidden;text-overflow:ellipsis}
  .store-pill{min-width:38px;padding:0 6px;font-size:7px}
  .daily-gift{min-width:39px;padding:0 6px}
  .sheet-card,.shop-item{grid-template-columns:44px minmax(0,1fr) auto;gap:7px;padding:8px}
  .sheet-card-icon,.shop-item-icon{width:43px;height:43px}
}
@media(max-height:560px) and (orientation:landscape){
  .game-shell{padding-top:8px}
  .minigame-shell header{margin-bottom:6px}
  .minigame-shell header h2{font-size:16px}
  .minigame-shell>p{margin:6px 0}
  .mini-arena{height:55dvh!important}
}

/* Comfortable tap targets without changing the compact retro look. */
.text-button,#moreCareButton,#journalJump,.game-card>button,.profile-card>button,
.shop-tabs button,.journal-tabs button,.shop-item button,.sheet-card button{
  min-height:40px;
}
.brand-drop-card a,.settings-board .wide-button{min-height:44px;display:grid!important;place-items:center}
.install-meta a{display:inline-flex;align-items:center;min-height:30px;padding:0 3px}
#moreCareButton{min-width:44px}
.real-shop-banner a{min-height:44px;display:grid;place-items:center}
.install-meta a{min-width:36px;justify-content:center}
.install-meta a{min-height:36px}


/* FINAL BETA POLISH — clearer actions, calmer notifications, faster-feeling UI. */
.toast-stack{top:auto!important;bottom:calc(88px + var(--safe-bottom));align-content:end}
.toast{padding:9px 11px}
.need-card.actionable-need:not(:disabled){cursor:pointer}
.need-card.actionable-need:not(:disabled)::after{content:"›";position:absolute;right:8px;top:7px;color:#657286;font-size:13px;font-weight:1000}
.need-card.actionable-need:not(:disabled):active{transform:translateY(1px);border-color:#4a5c6e;background:#18202a}
.need-card:disabled{cursor:default}
.shop-item button:disabled.owned{opacity:.72;color:#a8f0ff;border-color:#2e6b7c}
@media(max-height:620px){.toast-stack{bottom:calc(76px + var(--safe-bottom))}}
/* Keep the daily reward action comfortably tappable on every phone. */
.quest-card > button{min-width:44px;min-height:40px;padding:9px 10px}

/* INTUITIVE FINAL PASS: show the best next action without flattening the retro UI. */
.care-action.recommended{position:relative;border-color:#8cecff;box-shadow:0 0 0 2px rgba(22,200,255,.16),0 5px 0 #090b0f,inset 0 1px 0 rgba(255,255,255,.11)}
.care-action.recommended::after{content:"NOW";position:absolute;right:5px;top:5px;border-radius:999px;padding:2px 4px;background:var(--cyan);color:#061117;font-size:5px;font-weight:1000;letter-spacing:.08em}
.short-on-embers:not(:disabled){opacity:.62;filter:saturate(.72);cursor:pointer}
.short-on-embers:not(:disabled):active{opacity:1;filter:none}
.quest-card>button.locked{opacity:.72;background:#302a19;color:#c9b968;animation:none}
.quest-card>button.claimed{opacity:.55;background:#20262d;color:#8c96a3;border-color:#3c4652;animation:none}

/* GARDEN UPDATE — growth, autonomous behavior, distinct games, music-era polish. */
.pet-actor.stage-spark{transform:scale(.50)}
.pet-actor.stage-kid{transform:scale(.66)}
.pet-actor.stage-teen{transform:scale(.82)}
.pet-actor.stage-beast{transform:scale(.99)}
.pet-actor.stage-legend{transform:scale(1.13)}
.pet-actor.stage-spark.sleeping{transform:translateY(19px) scale(.44) rotate(-6deg)}
.pet-actor.stage-kid.sleeping{transform:translateY(19px) scale(.58) rotate(-6deg)}
.pet-actor.stage-teen.sleeping{transform:translateY(19px) scale(.72) rotate(-6deg)}
.pet-actor.stage-beast.sleeping{transform:translateY(19px) scale(.87) rotate(-6deg)}
.pet-actor.stage-legend.sleeping{transform:translateY(19px) scale(.99) rotate(-6deg)}
.pet-actor.stage-spark.sad{transform:translateY(7px) scale(.45)}
.pet-actor.stage-kid.sad{transform:translateY(7px) scale(.59)}
.pet-actor.stage-teen.sad{transform:translateY(7px) scale(.74)}
.pet-actor.stage-beast.sad{transform:translateY(7px) scale(.89)}
.pet-actor.stage-legend.sad{transform:translateY(7px) scale(1.02)}

/* The pet occasionally lives its own life in the den. */
.pet-actor.behavior-wander-left{animation:petWanderLeft 3.4s ease-in-out both}
.pet-actor.behavior-wander-right{animation:petWanderRight 3.4s ease-in-out both}
.pet-actor.behavior-hide{animation:petHide 4.3s ease-in-out both;z-index:2}
.pet-actor.behavior-window{animation:petWindow 3.4s ease-in-out both}
.pet-actor.behavior-ball{animation:petBall 3.4s ease-in-out both}
.pet-actor.behavior-dance img{animation:petDance .42s ease-in-out 7!important}
.pet-actor.behavior-zoomies{animation:petZoomies 2.6s cubic-bezier(.3,.8,.3,1) both}
.pet-actor.behavior-stretch img{animation:petStretch 1.1s ease-in-out 3!important}
@keyframes petWanderLeft{0%,100%{transform:translateX(0) scale(var(--life-scale,1))}45%{transform:translateX(-92px) scale(var(--life-scale,1)) rotate(-4deg)}70%{transform:translateX(-72px) scale(var(--life-scale,1)) rotate(3deg)}}
@keyframes petWanderRight{0%,100%{transform:translateX(0) scale(var(--life-scale,1))}45%{transform:translateX(92px) scale(var(--life-scale,1)) rotate(4deg)}70%{transform:translateX(72px) scale(var(--life-scale,1)) rotate(-3deg)}}
@keyframes petHide{0%,100%{transform:translate(0,0) scale(var(--life-scale,1));opacity:1}36%{transform:translate(122px,28px) scale(var(--life-scale,1));opacity:1}52%,78%{transform:translate(142px,58px) scale(var(--life-scale,1));opacity:.22}88%{transform:translate(108px,20px) scale(var(--life-scale,1));opacity:1}}
@keyframes petWindow{0%,100%{transform:translate(0,0) scale(var(--life-scale,1))}40%,74%{transform:translate(-88px,-35px) scale(var(--life-scale,1)) rotate(-7deg)}}
@keyframes petBall{0%,100%{transform:translate(0,0) scale(var(--life-scale,1))}28%{transform:translate(-110px,35px) scale(var(--life-scale,1)) rotate(-8deg)}55%{transform:translate(-60px,12px) scale(var(--life-scale,1)) rotate(8deg)}78%{transform:translate(-118px,28px) scale(var(--life-scale,1)) rotate(-5deg)}}
@keyframes petDance{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-16px) rotate(7deg) scale(1.04,.96)}}
@keyframes petZoomies{0%,100%{transform:translateX(0) scale(var(--life-scale,1))}18%{transform:translateX(-130px) scale(var(--life-scale,1)) rotate(-8deg)}38%{transform:translateX(132px) scale(var(--life-scale,1)) rotate(9deg)}58%{transform:translateX(-90px) scale(var(--life-scale,1)) rotate(-7deg)}78%{transform:translateX(86px) scale(var(--life-scale,1)) rotate(7deg)}}
@keyframes petStretch{0%,100%{transform:scale(1)}50%{transform:scale(1.1,.82) translateY(11px)}}

/* New cosmetic silhouettes. They remain pure CSS so every color Rizo can wear them. */
.accessory-layer.cap:before{content:"";position:absolute;left:28%;top:10%;width:45%;height:24%;background:#131923;border:7px solid #080b0f;border-radius:55% 55% 22% 22%;transform:rotate(-6deg)}
.accessory-layer.cap:after{content:"";position:absolute;left:53%;top:29%;width:28%;height:7%;background:#16c8ff;border:5px solid #080b0f;border-radius:0 50% 50% 0;transform:rotate(-9deg)}
.accessory-layer.bow:before,.accessory-layer.bow:after{content:"";position:absolute;top:15%;width:24%;height:22%;background:#ff68bd;border:6px solid #080b0f;clip-path:polygon(0 0,100% 50%,0 100%)}
.accessory-layer.bow:before{left:25%}.accessory-layer.bow:after{right:25%;transform:scaleX(-1)}
.accessory-layer.goggles:before{content:"";position:absolute;left:25%;top:41%;width:50%;height:18%;border:7px solid #0a0e13;border-radius:10px;background:radial-gradient(circle at 24% 50%,#8df4ff 0 26%,#12202b 27% 35%,transparent 36%),radial-gradient(circle at 76% 50%,#8df4ff 0 26%,#12202b 27% 35%,transparent 36%)}
.accessory-layer.antenna:before{content:"";position:absolute;left:48%;top:0;width:7px;height:28%;background:#11151c;border-radius:8px;transform:rotate(-5deg)}
.accessory-layer.antenna:after{content:"";position:absolute;left:43%;top:-3%;width:18%;height:12%;border-radius:50%;background:#16c8ff;border:5px solid #080b0f;box-shadow:0 0 14px #16c8ff}
.accessory-layer.leafcrown:before{content:"❧ ❧ ❧";position:absolute;left:24%;top:6%;font-size:34px;color:#9eff75;text-shadow:2px 3px 0 #08120d;letter-spacing:-10px;transform:rotate(-5deg)}
.accessory-layer.visor:before{content:"";position:absolute;left:24%;top:39%;width:52%;height:20%;background:linear-gradient(110deg,#09364a,#31eaff 48%,#fff 52%,#126e8a);border:7px solid #070b10;border-radius:45% 45% 32% 32%;transform:rotate(-2deg)}
.accessory-layer.cape:before{content:"";position:absolute;z-index:-1;right:7%;top:38%;width:40%;height:48%;background:#ff4f62;border:7px solid #080b0f;clip-path:polygon(0 0,100% 13%,75% 100%,18% 82%);transform:rotate(-10deg)}
.accessory-layer.backpack:before{content:"";position:absolute;z-index:-1;right:2%;top:39%;width:35%;height:40%;background:#75552e;border:7px solid #080b0f;border-radius:20% 40% 38% 20%;box-shadow:inset 0 12px 0 rgba(255,255,255,.08)}
.accessory-layer.starclip:before{content:"★";position:absolute;right:24%;top:14%;font-size:43px;color:#ffd45a;text-shadow:2px 3px 0 #080b0f}
.accessory-layer.mask:before{content:"";position:absolute;left:25%;top:41%;width:50%;height:18%;background:#171b26;border:6px solid #080b0f;clip-path:polygon(0 0,48% 30%,100% 0,89% 100%,53% 71%,10% 100%)}
.accessory-layer.earmuffs:before{content:"";position:absolute;left:22%;top:33%;width:56%;height:27%;border:8px solid #d9f9ff;border-bottom:0;border-radius:50% 50% 0 0}
.accessory-layer.earmuffs:after{content:"";position:absolute;left:18%;top:49%;width:20%;height:24%;background:#d9f9ff;border:6px solid #080b0f;border-radius:50%;box-shadow:165px 0 0 -6px #d9f9ff,165px 0 0 0 #080b0f}
.accessory-layer.bucket:before{content:"";position:absolute;left:26%;top:9%;width:48%;height:29%;background:#4e86a6;border:7px solid #080b0f;border-radius:50% 50% 25% 25%;clip-path:polygon(15% 0,85% 0,100% 100%,0 100%)}
.accessory-layer.bucket:after{content:"";position:absolute;left:20%;top:32%;width:61%;height:8%;background:#4e86a6;border:5px solid #080b0f;border-radius:50%}

.theme-sunset .habitat-sky{background:radial-gradient(circle at 73% 20%,#fff0a3 0 28px,transparent 29px),linear-gradient(180deg,#fb7f77,#7e4e95 58%,#55466a 58.5%,#302e45)}
.theme-sunset .habitat-floor{background:linear-gradient(#725844,#40382f)}
.theme-snow .habitat-sky{background:radial-gradient(circle at 18% 22%,#fff 0 2px,transparent 3px),radial-gradient(circle at 65% 18%,#fff 0 3px,transparent 4px),linear-gradient(#7fb9d5,#d8f2f5 60%,#dce8e8 60.5%,#abbfc2);background-size:42px 42px,61px 61px,100% 100%}
.theme-snow .habitat-floor{background:linear-gradient(#eefbff,#b9d2d8)}
.theme-space .habitat-sky{background:radial-gradient(circle at 70% 18%,#e4faff 0 22px,transparent 23px),radial-gradient(circle at 30% 32%,#16c8ff 0 2px,transparent 3px),radial-gradient(circle at 80% 43%,#fff 0 1px,transparent 2px),linear-gradient(#080b20,#15183e 60%,#11142b 60.5%,#080a18);background-size:100% 100%,47px 47px,31px 31px,100% 100%}
.theme-space .habitat-floor{background:linear-gradient(#252946,#111426)}
.theme-studio .habitat-sky{background:linear-gradient(90deg,rgba(22,200,255,.08) 1px,transparent 1px),linear-gradient(#1a1722,#2a1d31 60%,#18151e 60.5%,#0f0d13);background-size:32px 32px,100% 100%}
.theme-studio .habitat-window{background:linear-gradient(135deg,#ff68bd,#16c8ff);box-shadow:0 0 24px rgba(255,104,189,.32)}

/* Random event presentation. */
.world-event-card>small{display:block;color:var(--cyan);font-size:8px;letter-spacing:.13em;margin-bottom:8px}
.event-stage{height:155px;border:1px solid #34404d;border-radius:18px;background:radial-gradient(circle at 50% 55%,rgba(22,200,255,.18),transparent 42%),linear-gradient(#151c27,#0b0f15);position:relative;overflow:hidden;display:grid;place-items:center;margin-bottom:12px}
.event-stage img{width:145px;height:145px;object-fit:contain;filter:drop-shadow(0 10px 0 rgba(0,0,0,.22));animation:rizoIdle 2s ease-in-out infinite}
.event-icon{position:absolute;right:16px;top:13px;font-size:42px;z-index:2;filter:drop-shadow(0 5px 0 rgba(0,0,0,.25))}
.event-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.event-choices button{min-height:48px;border:1px solid #41505f;background:#222b37;border-radius:13px;font-size:9px;font-weight:1000;padding:10px}.event-choices button:first-child{border-color:#1788a7;background:#0d5e75}
.event-reward{margin:10px 0;border:1px solid #8c7426;background:#3a3116;color:#ffe887;border-radius:12px;padding:10px;font-size:9px;font-weight:1000}

/* Walk treasure shelf. */
.treasure-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.treasure-card{min-height:105px;border:1px solid #2d3743;background:#11161d;border-radius:15px;padding:12px;display:grid;place-items:center;text-align:center;gap:5px}.treasure-card b{font-size:30px;color:var(--gold)}.treasure-card strong{font-size:8px}.treasure-card span{font-size:6px;color:var(--muted)}.treasure-card.locked{opacity:.34;filter:grayscale(1)}

/* Arcade cards and score layout accommodate the added walk. */
.walk-art{background:linear-gradient(145deg,#2d5360,#15252a)}
.score-grid{grid-template-columns:repeat(3,1fr)}

/* Shared actual-Rizo mini game actor. */
.mini-arena{touch-action:none;user-select:none;-webkit-user-select:none;background:#0a0e14!important}
.mini-world{position:absolute;inset:0;overflow:hidden;border-radius:20px}
.mini-pet{position:absolute;width:132px;height:132px;display:grid;place-items:center;transform-origin:50% 80%;z-index:12;transition:left .18s ease,top .18s ease,filter .2s}
.mini-pet img{position:relative;z-index:3;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 0 rgba(0,0,0,.2));pointer-events:none}
.mini-pet .accessory-layer{z-index:5}.mini-pet-shadow{position:absolute;left:19%;right:19%;bottom:11px;height:20px;border-radius:50%;background:rgba(0,0,0,.25);filter:blur(3px)}
.mini-pet.stage-spark{width:82px;height:82px}.mini-pet.stage-kid{width:101px;height:101px}.mini-pet.stage-teen{width:118px;height:118px}.mini-pet.stage-beast{width:137px;height:137px}.mini-pet.stage-legend{width:148px;height:148px}

/* Power Tap is a timing game, not a moving circle. */
.power-world{background:radial-gradient(circle at 25% 30%,rgba(255,92,108,.17),transparent 28%),linear-gradient(#2a1820 0 72%,#171116 72%)}
.training-floor{position:absolute;left:0;right:0;bottom:0;height:29%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 2px,transparent 2px 42px),#191319;border-top:3px solid #3b2730}
.power-rizo{left:12%;bottom:76px}.training-bag{position:absolute;right:17%;bottom:93px;width:74px;height:175px;border-radius:40px 40px 22px 22px;background:linear-gradient(90deg,#7d2835,#d14d5f 45%,#7a2632);border:7px solid #080b10;transform-origin:50% 8%;display:grid;place-items:center;z-index:8}.training-bag:before{content:"";position:absolute;top:-78px;width:8px;height:82px;background:#222b35;border:2px solid #070a0e}.training-bag i{position:absolute;top:34%;left:13%;right:13%;height:6px;background:#080b10}.training-bag b{font-size:31px;color:#ffd45a}.training-bag.bag-hit{animation:bagHit .35s ease-out}.power-rizo.mini-punch{animation:miniPunch .35s ease-out}
.timing-console{position:absolute;left:12px;right:12px;bottom:14px;z-index:20}.timing-track{height:28px;border:4px solid #080b10;background:#252d38;border-radius:999px;position:relative;overflow:hidden;box-shadow:inset 0 5px 10px rgba(0,0,0,.35)}.timing-perfect{position:absolute;left:43%;width:14%;top:0;bottom:0;background:linear-gradient(90deg,#0e9fbe,#78ebff,#0e9fbe);box-shadow:0 0 16px #16c8ff}.timing-track b{position:absolute;top:-5px;left:0;width:11px;height:31px;border-radius:5px;background:#fff;border:3px solid #081217;transform:translateX(-50%);box-shadow:0 0 11px #fff}.timing-console strong{display:block;text-align:center;font-size:9px;margin-top:6px;color:#c7d1dc}.timing-console strong[data-grade="5"]{color:#75efff}.timing-console strong[data-grade="0"]{color:#ff8793}
@keyframes bagHit{45%{transform:rotate(17deg) translateX(8px)}100%{transform:none}}@keyframes miniPunch{45%{transform:translateX(74px) rotate(9deg) scale(1.08,.92)}100%{transform:none}}

/* Spark Catch: the pet visibly chases every spark. */
.spark-world{background:radial-gradient(circle at 50% 35%,rgba(22,200,255,.28),transparent 37%),linear-gradient(#172d3b,#0c141c 72%,#10272a 72%)}
.spark-world:after{content:"";position:absolute;left:0;right:0;bottom:0;height:28%;background:radial-gradient(ellipse at 50% 0,#2f6d55,#153d30 65%)}
.spark-rizo{left:50%;top:62%;transform:translate(-50%,-50%);z-index:9}.spark-rizo.spark-dash{filter:brightness(1.3);transition:left .12s cubic-bezier(.2,.8,.2,1),top .12s cubic-bezier(.2,.8,.2,1)}
.spark-orb{position:absolute;width:64px;height:64px;border:4px solid #061015;border-radius:50%;background:radial-gradient(circle,#fff 0 10%,#77edff 12% 40%,#0b8eb3 42% 70%,#06394c 72%);color:#fff;font-size:29px;display:grid;place-items:center;z-index:15;box-shadow:0 0 0 8px rgba(22,200,255,.15),0 0 30px rgba(22,200,255,.75);animation:sparkBob .75s ease-in-out infinite alternate}.spark-trail{position:absolute;left:50%;top:18%;z-index:18;color:#fff;font-size:24px;font-weight:1000;opacity:0}.spark-trail.pop{animation:sparkScore .5s ease-out}
@keyframes sparkBob{to{transform:translateY(-8px) rotate(12deg)}}@keyframes sparkScore{0%{opacity:0;transform:translate(-50%,20px) scale(.5)}35%{opacity:1}100%{opacity:0;transform:translate(-50%,-45px) scale(1.4)}}

/* Forest Forage: three-lane catching. */
.forage-world{background:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(#315e42,#183825 74%,#1d2c19 74%);background-size:28px 28px,28px 28px,100% 100%}
.forage-lanes{position:absolute;inset:0}.forage-lanes i{position:absolute;top:0;bottom:0;width:2px;background:linear-gradient(transparent,rgba(255,255,255,.16),transparent)}.forage-lanes i:first-child{left:33.33%}.forage-lanes i:last-child{left:66.66%}.forage-rizo{left:50%;bottom:35px;transform:translateX(-50%);transition:left .12s ease}.forage-drop{position:absolute;top:0;width:48px;height:48px;margin-left:-24px;border-radius:50%;display:grid;place-items:center;font-size:29px;z-index:16;filter:drop-shadow(0 7px 0 rgba(0,0,0,.22))}.forage-drop.good{background:#e9f9ce;border:4px solid #163421}.forage-drop.bad{background:#ff7b88;border:4px solid #3f1117}.forage-drop.rare{box-shadow:0 0 22px #a4f6ff}.forage-drop.caught{animation:itemCaught .16s ease-out forwards}.forage-rizo.forage-catch img{animation:forageCatch .2s ease-out}.forage-rizo.forage-hit img{animation:headNo .32s ease-out}.lane-labels{position:absolute;left:0;right:0;bottom:5px;display:grid;grid-template-columns:repeat(3,1fr);font-size:6px;color:rgba(255,255,255,.45);text-align:center;letter-spacing:.1em}
@keyframes itemCaught{to{opacity:0;transform:translate(-50%,30px) scale(1.7)}}@keyframes forageCatch{50%{transform:translateY(-16px) scale(1.08,.92)}}

/* Rizo Rush: tiny side-scrolling runner. */
.rush-world{background:linear-gradient(#3e5a81 0 58%,#263b5a 58% 72%,#192433 72%);isolation:isolate}
.rush-clouds,.rush-hills,.rush-ground{position:absolute;left:0;right:0;pointer-events:none}.rush-clouds{top:20px;height:100px;background:radial-gradient(ellipse at 20% 35%,rgba(255,255,255,.6) 0 10%,transparent 11%),radial-gradient(ellipse at 75% 55%,rgba(255,255,255,.45) 0 13%,transparent 14%);background-size:230px 90px;animation:rushScroll 7s linear infinite}.rush-hills{bottom:28%;height:32%;background:linear-gradient(135deg,transparent 0 30%,#273c55 31% 48%,transparent 49%) 0 0/160px 100%;animation:rushScroll 4s linear infinite}.rush-ground{bottom:0;height:29%;background:repeating-linear-gradient(90deg,#31462d 0 28px,#283c25 28px 56px);border-top:6px solid #6b8f50;animation:rushScroll 1.3s linear infinite}.rush-rizo{left:14%;bottom:45px;transform:translateY(calc(-1 * var(--jump-y,0px)));transition:filter .15s;z-index:15}.rush-rizo img{animation:rushRun .28s ease-in-out infinite}.rush-rizo.rush-hurt{filter:brightness(2) sepia(1);animation:rushHurt .5s steps(2)}.rush-entity{position:absolute;left:0;z-index:14}.rush-entity.stump{bottom:48px;width:48px;height:55px;background:#75492d;border:5px solid #1b100b;border-radius:8px 8px 16px 16px;box-shadow:inset 0 8px 0 #9a6741}.rush-entity.flame{bottom:93px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#16c8ff;border:4px solid #071219;color:#fff;font-size:24px;box-shadow:0 0 20px #16c8ff}.rush-entity.flame.collected{animation:itemCaught .18s ease-out forwards}.rush-hearts{position:absolute;left:12px;top:10px;color:#ff5c6c;font-size:20px;letter-spacing:4px;z-index:20;text-shadow:2px 2px 0 #090b0f}.rush-callout{position:absolute;right:12px;top:13px;font-size:7px;font-weight:1000;color:rgba(255,255,255,.7);z-index:20}
@keyframes rushScroll{to{background-position-x:-230px}}@keyframes rushRun{50%{transform:translateY(-5px) rotate(2deg)}}@keyframes rushHurt{50%{opacity:.2}}

/* Rain Walk: slower exploratory loop with tappable finds. */
.walk-world{background:linear-gradient(#526c78 0 65%,#3f4a45 65%);isolation:isolate}.walk-rain{position:absolute;inset:0;background:repeating-linear-gradient(105deg,transparent 0 21px,rgba(210,240,255,.18) 22px 23px,transparent 24px 43px);animation:walkRain .8s linear infinite}.walk-trees{position:absolute;left:0;right:0;bottom:26%;height:58%;background:radial-gradient(ellipse at 20% 60%,#263e35 0 21%,transparent 22%),radial-gradient(ellipse at 65% 48%,#1c332a 0 24%,transparent 25%);background-size:240px 180px;animation:rushScroll 12s linear infinite}.walk-trees.front{opacity:.7;bottom:20%;transform:scale(1.25);animation-duration:7s}.walk-path{position:absolute;left:0;right:0;bottom:0;height:31%;background:linear-gradient(#59604f,#353b31);border-top:5px solid #73816a}.walk-rizo{left:16%;bottom:35px;animation:walkBob .52s ease-in-out infinite}.walk-find{position:absolute;left:0;bottom:82px;width:58px;height:58px;border-radius:50%;border:4px solid #091015;background:#f3efe0;font-size:29px;display:grid;place-items:center;z-index:16;box-shadow:0 9px 0 rgba(0,0,0,.2)}.walk-find.rare{background:#dffbff;box-shadow:0 0 24px #9defff,0 9px 0 rgba(0,0,0,.2)}.walk-find.mud{background:#72513b}.walk-find.collected{animation:itemCaught .22s ease-out forwards}.walk-caption{position:absolute;left:12px;right:12px;top:12px;padding:8px;border-radius:10px;background:rgba(7,10,14,.65);border:1px solid rgba(255,255,255,.13);z-index:20;text-align:center;font-size:7px;font-weight:1000;color:#dbe4e9}.walk-rizo.walk-inspect img{animation:happyJump .42s ease-out}.walk-rizo.walk-splash img{animation:headNo .45s ease-out;filter:hue-rotate(35deg) saturate(.65)}
@keyframes walkRain{to{background-position:-43px 80px}}@keyframes walkBob{50%{transform:translateY(-6px) rotate(2deg)}}

@media(max-width:370px){
  .mini-pet{width:112px;height:112px}.mini-pet.stage-spark{width:72px;height:72px}.mini-pet.stage-kid{width:88px;height:88px}.mini-pet.stage-legend{width:130px;height:130px}
  .training-bag{right:11%;width:65px;height:155px}.power-rizo{left:7%}
  .event-choices{grid-template-columns:1fr}.event-stage{height:132px}.event-stage img{width:122px;height:122px}
  .treasure-grid{grid-template-columns:1fr 1fr}
}
@media(max-height:620px){
  .timing-console{bottom:7px}.training-bag{height:130px;bottom:70px}.power-rizo{bottom:55px}
  .walk-find{bottom:64px}.walk-rizo{bottom:22px}.rush-rizo{bottom:30px}.rush-entity.stump{bottom:34px}.rush-entity.flame{bottom:78px}
}
body.reduce-motion .pet-actor[class*="behavior-"]{animation:none!important}
body.reduce-motion .rush-clouds,body.reduce-motion .rush-hills,body.reduce-motion .rush-ground,body.reduce-motion .walk-rain,body.reduce-motion .walk-trees{animation:none!important}


/* ===== TRUE GARDEN PASS: lineage, inheritance and raising clarity ===== */
.raising-influences{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0}
.raising-influences span{min-width:0;border:1px solid #2d3947;background:#111720;border-radius:11px;padding:9px;color:#e9f2f5;font-size:8px;line-height:1.35;overflow-wrap:anywhere}
.raising-influences b{display:block;color:var(--muted);font-size:6px;letter-spacing:.1em;margin-bottom:4px}
.bond-seed-mini,.pairing-card,.bond-seed-card{border:1px solid #6150a1;background:linear-gradient(135deg,rgba(121,84,255,.18),rgba(22,200,255,.07));border-radius:13px;padding:11px;margin-top:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.bond-seed-mini b,.pairing-card>span,.bond-seed-card>span{display:block;color:#b9aaff;font-size:7px;letter-spacing:.12em;margin-bottom:5px}
.bond-seed-mini span,.pairing-card>b,.bond-seed-card>b{display:block;font-size:10px;color:#fff;margin-bottom:4px}
.bond-seed-mini small,.pairing-card small,.bond-seed-card small{display:block;color:#aab4c0;font-size:8px;line-height:1.45}
.pairing-card button,.bond-seed-card button{width:100%;min-height:42px;margin-top:9px;border:1px solid #6e63b1;background:#30275b;color:#fff;border-radius:10px;font-size:8px;font-weight:1000}
.legacy-modal .gene-preview{margin-bottom:7px}
.collection-card.variant-retro img{image-rendering:pixelated;filter:drop-shadow(0 0 10px rgba(22,200,255,.35))}
.collection-card.variant-shadow img{filter:drop-shadow(0 0 14px rgba(121,84,255,.55))}
.collection-card.resonating{outline:2px solid #79eaff;box-shadow:0 0 22px rgba(22,200,255,.18)}

/* Moving targets begin inside the playable area and remain easy to hit on narrow phones. */
.walk-find{will-change:transform;touch-action:manipulation}
@media(max-width:350px){
  .raising-influences{grid-template-columns:1fr}
  .walk-find{width:54px;height:54px;font-size:26px}
  .pairing-card,.bond-seed-card,.bond-seed-mini{padding:9px}
}
