

: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}}

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);min-height:0}
@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}
}

.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}

.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))}}

.quest-card > button{min-width:44px;min-height:40px;padding:9px 10px}

.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}

.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)}

.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)}}

.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)}

.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}

.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)}

.walk-art{background:linear-gradient(145deg,#2d5360,#15252a)}
.score-grid{grid-template-columns:repeat(3,1fr)}

.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-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-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)}}

.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)}}

.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}}

.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)}
.walk-fork{position:absolute;left:10px;right:10px;bottom:14px;z-index:22;display:grid;gap:8px;animation:walkForkIn .3s ease-out both}
.walk-fork-btn{display:flex;flex-direction:column;gap:2px;padding:11px 12px;border-radius:13px;border:2px solid #16c8ff;background:rgba(9,13,18,.88);color:#eef6f9;text-align:left}
.walk-fork-btn:last-child{border-color:#ff68bd}
.walk-fork-btn b{font-size:10px;letter-spacing:.02em}
.walk-fork-btn span{font-size:7px;color:#a9b6bf;font-weight:600}
@keyframes walkForkIn{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}
.reduce-motion .walk-fork{animation:none}
@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}

.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)}

.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}
}

.rhythm-art{background:linear-gradient(145deg,#4a285f,#16152b)}
.memory-art{background:linear-gradient(145deg,#365e4b,#121f1a)}
.rhythm-card{border-color:#8a5fb4}.memory-card{border-color:#4d8069}

.walk-world{--walk-sky:#526c78;background:linear-gradient(var(--walk-sky) 0 68%,#303a33 68%);isolation:isolate}
.walk-sky{position:absolute;inset:0;background:radial-gradient(circle at 75% 18%,rgba(246,244,207,.5) 0 24px,transparent 25px),linear-gradient(180deg,rgba(255,255,255,.06),transparent 55%)}
.walk-layer{position:absolute;left:-25%;right:-25%;pointer-events:none;background-repeat:repeat-x;will-change:background-position}
.walk-far{bottom:28%;height:58%;opacity:.52;background-image:radial-gradient(ellipse at 45px 82%,#24392f 0 26px,transparent 28px),radial-gradient(ellipse at 120px 68%,#2d493b 0 39px,transparent 41px);background-size:190px 150px}
.walk-mid{bottom:23%;height:55%;opacity:.82;background-image:linear-gradient(87deg,transparent 0 42px,#1d3027 43px 54px,transparent 55px),radial-gradient(ellipse at 88px 62%,#1f3a2d 0 43px,transparent 45px);background-size:170px 170px}
.walk-near{bottom:19%;height:42%;opacity:.92;background-image:radial-gradient(ellipse at 38px 88%,#12251d 0 30px,transparent 32px),linear-gradient(88deg,transparent 0 112px,#14291f 113px 129px,transparent 130px);background-size:205px 135px;filter:blur(.2px)}
.walk-path{height:32%;background:linear-gradient(180deg,#77806c,#454b3e 50%,#292f28);border-top:5px solid rgba(196,217,177,.55);box-shadow:inset 0 12px 28px rgba(0,0,0,.18)}
.walk-path:after{content:"";position:absolute;inset:18px 0 0;background:repeating-linear-gradient(105deg,transparent 0 66px,rgba(255,255,255,.055) 67px 73px,transparent 74px 142px)}
.walk-weather{position:absolute;inset:-20%;z-index:8;pointer-events:none}
.weather-drizzle .walk-weather{background:repeating-linear-gradient(105deg,transparent 0 24px,rgba(210,240,255,.23) 25px 27px,transparent 28px 49px);animation:walkRain .72s linear infinite}
.weather-mist .walk-weather{background:radial-gradient(ellipse at 20% 45%,rgba(220,240,239,.24),transparent 42%),radial-gradient(ellipse at 72% 66%,rgba(220,240,239,.2),transparent 45%);animation:mistDrift 5s ease-in-out infinite alternate}
.weather-storm .walk-weather{background:repeating-linear-gradient(106deg,transparent 0 14px,rgba(220,242,255,.34) 15px 17px,transparent 18px 34px);animation:walkRain .42s linear infinite}.weather-storm.walk-world:after{content:"";position:absolute;inset:0;background:rgba(220,240,255,0);animation:stormFlash 4.8s steps(1) infinite;pointer-events:none;z-index:7}
.weather-clear .walk-weather{background:radial-gradient(circle at 18% 20%,rgba(255,245,178,.15),transparent 28%)}
.biome-rain{--walk-sky:#536d7a}.biome-moss{--walk-sky:#497b62}.biome-moon{--walk-sky:#30375f}.biome-storm{--walk-sky:#354258}
.biome-moss .walk-far{filter:hue-rotate(-10deg) saturate(1.25)}.biome-moss .walk-path{background:linear-gradient(#66795d,#344a35,#233024)}
.biome-moon .walk-sky{background:radial-gradient(circle at 76% 15%,#f6efc4 0 23px,rgba(246,239,196,.15) 24px 44px,transparent 45px),linear-gradient(180deg,#30375f,#1a213f 70%)}.biome-moon .walk-layer{filter:hue-rotate(36deg) brightness(.72)}.biome-moon .walk-path{background:linear-gradient(#4c4f68,#292d42,#1a1d2d)}
.biome-storm .walk-layer{filter:saturate(.65) brightness(.72)}.biome-storm .walk-path{background:linear-gradient(#535c5d,#30383a,#202629)}
.walk-rizo{left:15%;bottom:35px;animation:rizoWalkCycle .58s ease-in-out infinite;transition:filter .18s}.walk-rizo img{transform-origin:50% 80%}.walk-rizo .accessory-layer{transform-origin:50% 80%}
.walk-distance{position:absolute;left:12px;right:12px;bottom:8px;height:5px;background:rgba(0,0,0,.28);border-radius:99px;overflow:hidden;z-index:24}.walk-distance i{display:block;height:100%;width:0;background:linear-gradient(90deg,#16c8ff,#9eff75);transition:width .15s linear}
.walk-caption{display:grid;gap:2px;left:12px;right:12px;top:10px;padding:8px 10px}.walk-caption b{font-size:7px;color:#8ceeff;letter-spacing:.13em}.walk-caption span{font-size:7px;color:#fff}
.walk-find{left:auto;bottom:74px;width:54px;height:54px;border-radius:16px;border:3px solid #091015;background:#f3efe0;transform:none;transition:filter .15s;touch-action:manipulation}.walk-find[data-lane="high"]{filter:drop-shadow(0 9px 8px rgba(0,0,0,.25))}.walk-find.rare{background:linear-gradient(145deg,#fff,#bff7ff);border-color:#72eaff;box-shadow:0 0 25px rgba(121,235,255,.74)}.walk-find.hazard{background:#72513b;border-color:#28170f}.walk-find.obstacle{background:#71472c;border-color:#24140b;color:#f0d1a5}.walk-find.collected{animation:itemCaught .22s ease-out forwards}
.walk-fork{position:absolute;inset:64px 12px 45px;z-index:32;display:grid;align-content:center;gap:9px;padding:12px;border:1px solid rgba(164,234,255,.42);border-radius:18px;background:rgba(6,10,14,.9);box-shadow:0 16px 45px rgba(0,0,0,.42);backdrop-filter:blur(10px)}.walk-fork-btn{min-height:68px;border:1px solid #3b4b58;background:linear-gradient(145deg,#1c2630,#101820);border-radius:14px;padding:11px;text-align:left;color:#fff}.walk-fork-btn b{display:block;font-size:9px;color:#8ceeff}.walk-fork-btn span{display:block;margin-top:5px;font-size:7px;color:#aab5bf;line-height:1.35}.walk-fork-btn:active{transform:scale(.98)}
.walk-rizo.walk-inspect img{animation:walkInspect .48s ease-out}.walk-rizo.walk-splash img{animation:headNo .45s ease-out;filter:hue-rotate(35deg) saturate(.65)}.walk-rizo.walk-jump{animation:walkJump .5s ease-out}.walk-rizo.walk-awe img{animation:walkAwe .55s ease-out}.walk-rizo.walk-shock img{animation:walkShock .42s steps(2)}.walk-rizo.walk-sniff img{animation:walkSniff .55s ease-in-out}.walk-rizo.walk-celebrate img{animation:happyJump .52s ease-out}
@keyframes rizoWalkCycle{0%,100%{transform:translateY(0) rotate(-1.8deg) scaleX(.98)}25%{transform:translateY(-5px) rotate(1.5deg) scaleX(1.02)}50%{transform:translateY(0) rotate(2deg) scaleX(.98)}75%{transform:translateY(-4px) rotate(-1.2deg) scaleX(1.02)}}
@keyframes walkInspect{45%{transform:translateX(22px) rotate(7deg) scale(1.06,.94)}}@keyframes walkJump{45%{transform:translateY(-58px) rotate(10deg) scale(.94,1.06)}}@keyframes walkAwe{40%{transform:translateY(-10px) scale(1.1);filter:brightness(1.45)}}@keyframes walkShock{50%{transform:translateX(6px) rotate(7deg);filter:brightness(1.7)}}@keyframes walkSniff{35%{transform:translateX(18px) rotate(9deg) scaleY(.92)}}
@keyframes mistDrift{to{transform:translateX(8%) scale(1.08)}}@keyframes stormFlash{0%,92%,96%,100%{background:rgba(220,240,255,0)}93%,95%{background:rgba(220,240,255,.26)}}

.rhythm-world{background:radial-gradient(circle at 50% 14%,rgba(255,104,189,.26),transparent 34%),linear-gradient(#251939 0 68%,#12121c 68%)}
.rhythm-lights{position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 46px,rgba(22,200,255,.06) 47px 48px);animation:rhythmLights 2s linear infinite}
.rhythm-stage{position:absolute;left:0;right:0;bottom:0;height:31%;background:repeating-linear-gradient(90deg,#17182a 0 34px,#20213a 34px 68px);border-top:4px solid #6e4c8e}
.rhythm-rizo{left:12%;bottom:61px;animation:rhythmIdle .76s ease-in-out infinite}.rhythm-rizo.rhythm-hit img{animation:rhythmDance .22s ease-out}
.rhythm-lane{position:absolute;left:0;right:0;top:82px;height:92px;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);background:rgba(5,6,13,.36);overflow:hidden;z-index:15}.rhythm-gate{position:absolute;left:22%;top:5px;bottom:5px;width:14px;border-radius:99px;background:#effcff;box-shadow:0 0 0 8px rgba(22,200,255,.18),0 0 24px #16c8ff;transform:translateX(-50%)}
#rhythmNotes{position:absolute;inset:0}.rhythm-note{position:absolute;left:0;top:19px;width:48px;height:48px;border-radius:14px;background:linear-gradient(145deg,#ff68bd,#7544a5);border:3px solid #fff;color:#fff;display:grid;place-items:center;font-style:normal;font-size:24px;box-shadow:0 0 18px rgba(255,104,189,.5)}.rhythm-note.hit{animation:rhythmHit .2s ease-out forwards}.rhythm-note.missed{animation:rhythmMiss .2s ease-out forwards}.rhythm-callout{position:absolute;left:10px;right:10px;bottom:15px;z-index:20;text-align:center;font-size:8px;font-weight:1000;color:#f8ddff;letter-spacing:.08em}
@keyframes rhythmLights{to{background-position-x:-96px}}@keyframes rhythmIdle{50%{transform:translateY(-6px) rotate(3deg)}}@keyframes rhythmDance{45%{transform:translateY(-15px) rotate(-9deg) scale(1.08)}}@keyframes rhythmHit{to{opacity:0;transform:scale(1.8);filter:brightness(2)}}@keyframes rhythmMiss{to{opacity:0;transform:translateY(20px) rotate(18deg);filter:grayscale(1)}}

.memory-world{background:radial-gradient(circle at 50% 18%,rgba(158,255,117,.16),transparent 35%),linear-gradient(#193528 0 66%,#101d17 66%)}
.memory-stars{position:absolute;inset:0;background:radial-gradient(circle at 20% 22%,#fff 0 1px,transparent 2px),radial-gradient(circle at 76% 33%,#baffd4 0 1px,transparent 2px);background-size:53px 53px,71px 71px;opacity:.55}
.memory-rizo{left:50%;top:17%;transform:translateX(-50%);animation:memoryFloat 2s ease-in-out infinite}.memory-rizo.memory-nod img{animation:memoryNod .18s ease-out}.memory-rizo.memory-confused img{animation:headNo .4s ease-out}
.memory-board{position:absolute;left:50%;bottom:38px;transform:translateX(-50%);width:min(82%,310px);display:grid;grid-template-columns:1fr 1fr;gap:10px;z-index:17}.memory-rune{aspect-ratio:1.5;border:3px solid #0b1510;border-radius:16px;background:linear-gradient(145deg,#244d39,#142b21);color:#9eff75;font-size:27px;box-shadow:0 7px 0 rgba(0,0,0,.28);transition:transform .1s,filter .1s,background .1s}.memory-rune.lit{background:#dffff0;color:#173827;box-shadow:0 0 28px #9eff75,0 4px 0 #335b43;transform:translateY(3px) scale(.97)}.memory-callout{position:absolute;left:10px;right:10px;top:10px;text-align:center;font-size:8px;font-weight:1000;color:#d9ffe8;letter-spacing:.1em;z-index:20}
@keyframes memoryFloat{50%{transform:translateX(-50%) translateY(-6px)}}@keyframes memoryNod{50%{transform:rotate(7deg) scale(1.04,.96)}}

.pet-cutscene,.evolution-result,.visitor-arrival{overflow:hidden;background:radial-gradient(circle at 50% 35%,rgba(22,200,255,.15),transparent 42%),linear-gradient(145deg,#171e27,#0b0f15)}
.cutscene-stage,.evolution-stage,.visitor-arrival-stage{position:relative;height:260px;margin:10px 0 15px;border:1px solid rgba(255,255,255,.1);border-radius:19px;overflow:hidden;background:radial-gradient(circle at 50% 32%,rgba(22,200,255,.18),transparent 38%),linear-gradient(#263744 0 70%,#18241d 70%)}
.cutscene-floor{position:absolute;left:0;right:0;bottom:0;height:31%;background:linear-gradient(#345344,#1c3028)}.cutscene-pet,.evolution-pet{left:50%;bottom:35px;transform:translateX(-50%);animation:cutsceneEnter .72s cubic-bezier(.2,.8,.2,1) both}.cutscene-symbol{position:absolute;left:50%;top:12%;transform:translateX(-50%);font-size:58px;color:#8ceeff;text-shadow:0 0 24px currentColor;z-index:3;animation:cutsceneSymbol 1.1s ease-in-out infinite}.scene-shadow .cutscene-stage{background:radial-gradient(circle at 50% 42%,rgba(121,84,255,.32),transparent 38%),linear-gradient(#090812,#171029 70%,#08070c 70%)}.scene-evolution .cutscene-stage,.evolution-stage{background:radial-gradient(circle at 50% 44%,rgba(255,213,74,.26),transparent 37%),linear-gradient(#252141,#131527 70%,#10151d 70%)}.evolution-stage i{position:absolute;inset:-30%;background:conic-gradient(from 0deg,transparent,#16c8ff,transparent,#ffd54a,transparent);opacity:.25;animation:spin 3s linear infinite}.evolution-pet{z-index:2;animation:evolutionRise 1.05s ease-out both}
.premium-event-stage{position:relative;height:210px;margin:10px 0;border-radius:18px;overflow:hidden;background:linear-gradient(#2a3c49 0 70%,#1d3026 70%)}.premium-event-stage .event-pet{left:50%;bottom:22px;transform:translateX(-50%);z-index:3}.premium-event-stage .event-icon{position:absolute;right:12%;top:15%;font-size:52px;z-index:4;animation:cutsceneSymbol 1.3s ease-in-out infinite}.premium-event-stage .event-scenery{position:absolute;inset:0;background:radial-gradient(circle at 22% 25%,rgba(255,255,255,.11),transparent 22%)}
.visitor-arrival-stage .arrival-host{left:25%;bottom:28px;transform:translateX(-50%)}.arrival-visitor{position:absolute;right:8%;bottom:28px;width:128px;height:128px;display:grid;place-items:center;animation:visitorArrive .7s ease-out both}.arrival-visitor img{width:100%;height:100%;object-fit:contain}.visitor-arrival-stage>i{position:absolute;left:50%;top:20%;transform:translateX(-50%);font-style:normal;font-size:38px;color:#ff8fcf;animation:heartPop 1s ease-in-out infinite}
@keyframes cutsceneEnter{from{opacity:0;transform:translateX(-50%) translateY(70px) scale(.7)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}@keyframes cutsceneSymbol{50%{transform:translateX(-50%) translateY(-7px) scale(1.08)}}@keyframes evolutionRise{from{opacity:0;transform:translateX(-50%) translateY(80px) scale(.5) rotate(-12deg);filter:brightness(3)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1);filter:none}}@keyframes visitorArrive{from{opacity:0;transform:translateX(80px) rotate(12deg)}to{opacity:1;transform:none}}@keyframes heartPop{50%{transform:translateX(-50%) scale(1.25)}}@keyframes spin{to{transform:rotate(360deg)}}

.shop-pet-preview{position:relative;width:56px;height:56px;border-radius:14px;background:radial-gradient(circle,#283643,#131a22 70%);overflow:hidden;border:1px solid #33404e}.shop-preview-pet{position:absolute!important;left:50%!important;top:50%!important;bottom:auto!important;width:58px!important;height:58px!important;transform:translate(-50%,-50%) scale(.78)!important}.shop-preview-pet .mini-pet-shadow{bottom:4px;height:9px}.room-swatch{position:relative;width:52px;height:52px;border-radius:13px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(#557786 0 64%,#38483e 64%);border:1px solid #3b4b58}.room-swatch span{position:relative;z-index:2;font-size:22px}.room-swatch i{position:absolute;left:0;right:0;bottom:0;height:35%;background:rgba(0,0,0,.22)}.room-swatch.theme-forest{background:linear-gradient(#5ea67b 0 64%,#203827 64%)}.room-swatch.theme-arcade{background:linear-gradient(135deg,#16c8ff,#ff68bd)}.room-swatch.theme-cloud{background:linear-gradient(#8bdfff,#dff8ff)}.room-swatch.theme-void{background:radial-gradient(circle,#41275f,#070611)}

.pet-actor.retro img,.mini-pet.retro img,.garden-visitor.retro img{image-rendering:pixelated;filter:drop-shadow(0 0 0 #071016) drop-shadow(0 0 9px rgba(22,200,255,.58))}.pet-actor.retro,.mini-pet.retro{animation-timing-function:steps(4)!important}.mini-pet.retro:not(.walk-rizo),.pet-actor.retro{animation:retroIdle .9s steps(4) infinite}
.pet-actor.shadow img,.mini-pet.shadow img{filter:brightness(.72) contrast(1.32) drop-shadow(0 0 3px #fff) drop-shadow(0 0 16px rgba(121,84,255,.95))}.pet-actor.shadow:after,.mini-pet.shadow:after{content:"";position:absolute;inset:13%;border-radius:50%;background:radial-gradient(circle,rgba(121,84,255,.18),transparent 65%);filter:blur(8px);z-index:1;animation:shadowAura 1.8s ease-in-out infinite}
.pet-actor.golden img,.mini-pet.golden img{filter:drop-shadow(0 0 13px rgba(255,213,74,.85))}.pet-actor.golden:after,.mini-pet.golden:after{content:"✦";position:absolute;right:4%;top:15%;color:#fff1a5;text-shadow:0 0 12px #ffd54a;z-index:7;animation:goldSpark 1.3s ease-in-out infinite}
.pet-actor.diamond img,.mini-pet.diamond img{filter:drop-shadow(0 0 5px #fff) drop-shadow(0 0 16px rgba(180,245,255,.9));animation:diamondIdle 2.2s ease-in-out infinite}.pet-actor.diamond:after,.mini-pet.diamond:after{content:"";position:absolute;inset:5%;background:conic-gradient(transparent,rgba(255,104,189,.2),transparent,rgba(22,200,255,.25),transparent);border-radius:50%;z-index:1;animation:spin 4s linear infinite}
.pet-actor.obsidian img,.mini-pet.obsidian img{filter:drop-shadow(0 0 13px rgba(74,82,128,.8))}.pet-actor.obsidian:after,.mini-pet.obsidian:after{content:"";position:absolute;left:18%;right:18%;bottom:8%;height:25%;background:radial-gradient(ellipse,rgba(74,82,128,.38),transparent 68%);filter:blur(7px);animation:obsidianSmoke 2.4s ease-in-out infinite}
.pet-actor.glitch img,.mini-pet.glitch img{animation:glitchIdle 2.7s steps(1) infinite}.pet-actor.aurora img,.mini-pet.aurora img{filter:drop-shadow(0 0 14px rgba(125,244,255,.8));animation:auroraIdle 3s ease-in-out infinite}
@keyframes retroIdle{50%{transform:translateY(-5px) rotate(2deg)}}@keyframes shadowAura{50%{opacity:.35;transform:scale(1.12)}}@keyframes goldSpark{50%{transform:translateY(-8px) scale(1.35);opacity:.45}}@keyframes diamondIdle{50%{filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 24px rgba(255,104,189,.75));transform:translateY(-4px)}}@keyframes obsidianSmoke{50%{transform:translateY(-7px) scale(1.16);opacity:.35}}@keyframes glitchIdle{0%,92%,100%{transform:none;filter:none}93%{transform:translateX(-4px);filter:hue-rotate(80deg)}95%{transform:translateX(5px) skewX(5deg);filter:hue-rotate(-70deg)}}@keyframes auroraIdle{50%{filter:drop-shadow(0 0 20px rgba(255,104,189,.75)) hue-rotate(32deg)}}

@media(max-width:350px){.walk-fork{inset:55px 8px 38px;padding:8px}.walk-fork-btn{min-height:59px;padding:8px}.memory-board{bottom:27px;gap:7px}.memory-rune{font-size:22px}.cutscene-stage,.evolution-stage,.visitor-arrival-stage{height:220px}.shop-item{grid-template-columns:46px minmax(0,1fr) auto}.shop-pet-preview{width:46px;height:46px}.shop-preview-pet{width:50px!important;height:50px!important}}

body.reduce-motion .walk-rizo,body.reduce-motion .rhythm-rizo,body.reduce-motion .memory-rizo,body.reduce-motion .rhythm-lights,body.reduce-motion .walk-weather,body.reduce-motion .cutscene-symbol,body.reduce-motion .cutscene-pet,body.reduce-motion .evolution-pet,body.reduce-motion .evolution-stage i,body.reduce-motion .arrival-visitor,body.reduce-motion .visitor-arrival-stage>i,body.reduce-motion .pet-actor.retro,body.reduce-motion .mini-pet.retro,body.reduce-motion .pet-actor.shadow:after,body.reduce-motion .mini-pet.shadow:after,body.reduce-motion .pet-actor.golden:after,body.reduce-motion .mini-pet.golden:after,body.reduce-motion .pet-actor.diamond img,body.reduce-motion .mini-pet.diamond img,body.reduce-motion .pet-actor.diamond:after,body.reduce-motion .mini-pet.diamond:after,body.reduce-motion .pet-actor.obsidian:after,body.reduce-motion .mini-pet.obsidian:after,body.reduce-motion .pet-actor.glitch img,body.reduce-motion .mini-pet.glitch img,body.reduce-motion .pet-actor.aurora img,body.reduce-motion .mini-pet.aurora img{animation:none!important}

.capsule-stage{position:relative;height:245px;margin:8px 0 14px;border-radius:19px;overflow:hidden;background:radial-gradient(circle at 63% 42%,var(--reveal-color) 0 2%,transparent 34%),linear-gradient(#1a2230 0 72%,#111820 72%);border:1px solid rgba(255,255,255,.1)}.capsule-stage:before{content:"";position:absolute;inset:-20%;background:conic-gradient(from 0deg,transparent,var(--reveal-color),transparent,#fff,transparent);opacity:.16;animation:spin 3.5s linear infinite}.capsule-stage .capsule-reaction-pet{left:18%;bottom:22px;transform:translateX(-50%);animation:walkAwe .8s ease-out}.capsule-stage .rarity-reveal{position:absolute;right:7%;top:28px;width:170px;height:170px;z-index:4;display:grid;place-items:center;animation:capsuleReveal .78s cubic-bezier(.2,.8,.2,1) both}.capsule-stage .rarity-reveal img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 18px var(--reveal-color))}.capsule-stage>i{position:absolute;right:42%;top:12%;font-style:normal;font-size:34px;color:#fff;text-shadow:0 0 16px var(--reveal-color);animation:goldSpark 1.1s ease-in-out infinite}.rare-discovery-stage{position:relative;height:210px;margin:12px 0;border:1px solid rgba(255,255,255,.12);border-radius:18px;overflow:hidden;background:radial-gradient(circle at 67% 38%,rgba(121,84,255,.25),transparent 32%),linear-gradient(#1c2430 0 70%,#14221b 70%)}.rare-discovery-stage .rare-reaction-pet{left:20%;bottom:18px;transform:translateX(-50%)}.rare-found-pet{position:absolute;right:7%;bottom:24px;width:135px;height:135px;animation:visitorArrive .7s ease-out both}.rare-found-pet img{width:100%;height:100%;object-fit:contain}.rare-discovery-stage b{position:absolute;left:10px;right:10px;top:10px;text-align:center;font-size:8px;letter-spacing:.12em;color:#dffbff}.rare-discovery-stage.shadow .rare-found-pet img{filter:brightness(.7) contrast(1.35) drop-shadow(0 0 16px #7954ff)}.rare-discovery-stage.retro .rare-found-pet img{image-rendering:pixelated;filter:drop-shadow(0 0 11px #16c8ff)}
@keyframes capsuleReveal{from{opacity:0;transform:scale(.35) rotate(-18deg);filter:brightness(3)}to{opacity:1;transform:none;filter:none}}
body.reduce-motion .capsule-stage:before,body.reduce-motion .capsule-stage .rarity-reveal,body.reduce-motion .capsule-stage>i,body.reduce-motion .rare-found-pet{animation:none!important}

.profile-avatar{overflow:hidden}.profile-avatar .profile-pet{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:66px!important;height:66px!important;transform:none!important}.profile-avatar .profile-pet .mini-pet-shadow{bottom:4px;height:8px}.rename-pet-stage{position:relative;height:126px;margin:4px 0 8px;border:1px solid #303b49;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 50% 70%,rgba(22,200,255,.2),transparent 48%),linear-gradient(#111923,#090d13)}.rename-pet{left:50%!important;top:50%!important;bottom:auto!important;transform:translate(-50%,-50%) scale(.88)!important}.visitor-arrival-stage .arrival-visitor{position:absolute;right:7%;left:auto;bottom:8%;top:auto}.garden-visitor .accessory-layer{pointer-events:none}
body.reduce-motion .rename-pet,body.reduce-motion .profile-pet{animation:none!important}

.pet-actor.tap-sick-queasy img,.pet-actor.tap-sick-queasy .accessory-layer{animation:tapSickQueasy 1.55s cubic-bezier(.28,.75,.32,1) both!important}
.pet-actor.tap-sick-queasy img{filter:hue-rotate(68deg) saturate(.55) contrast(.92) drop-shadow(0 13px 0 rgba(6,21,22,.15))}
.status-fx.queasy:before{content:"⌁  ×  ⟳";position:absolute;left:50%;top:5%;transform:translateX(-50%);color:#d8ff78;font-size:24px;font-weight:1000;letter-spacing:12px;text-shadow:0 0 12px rgba(158,255,117,.9),2px 2px 0 #172014;animation:queasyOrbit 1.45s ease-in-out both}
.status-fx.queasy:after{content:"•  ○  •";position:absolute;left:50%;bottom:10%;transform:translateX(-50%);color:#9eff75;font-size:20px;letter-spacing:16px;opacity:0;animation:queasyBubbles 1.35s .08s ease-out both}
@keyframes tapSickQueasy{0%{transform:none}12%{transform:translate(-7px,3px) rotate(-8deg) scale(.96,1.03)}25%{transform:translate(8px,-4px) rotate(9deg) scale(1.03,.95)}39%{transform:translate(-5px,7px) rotate(-7deg) scale(.97,1.02)}54%{transform:translate(5px,10px) rotate(6deg) scale(1.01,.94)}70%{transform:translate(-3px,12px) rotate(-4deg) scale(.98,.93)}84%{transform:translate(2px,9px) rotate(2deg) scale(1,.95)}100%{transform:translateY(6px) rotate(0) scale(1,.97)}}
@keyframes queasyOrbit{0%{opacity:0;transform:translateX(-50%) translateY(18px) scale(.45) rotate(-18deg)}22%{opacity:1}55%{transform:translateX(-50%) translateY(-8px) scale(1.12) rotate(12deg)}100%{opacity:0;transform:translateX(-50%) translateY(-24px) scale(.8) rotate(34deg)}}
@keyframes queasyBubbles{0%{opacity:0;transform:translateX(-50%) translateY(12px) scale(.6)}35%{opacity:.95}100%{opacity:0;transform:translateX(-50%) translateY(-42px) scale(1.18)}}

.misfortune-cutscene .cutscene-stage,.misfortune-event .premium-event-stage{background:radial-gradient(circle at 50% 38%,rgba(255,107,120,.2),transparent 35%),linear-gradient(#26202a 0 70%,#261d22 70%)}
.misfortune-cutscene .cutscene-symbol,.misfortune-event .event-icon{color:#ff6b78;text-shadow:0 0 22px rgba(255,107,120,.72)}
.world-event-card.misfortune-event{box-shadow:inset 0 3px 0 #ff6b78,var(--shadow)}
.world-event-card.misfortune-event .event-choices button{border-color:#75404a;background:#241a1e}
.misfortune-result{box-shadow:inset 0 3px 0 #ff6b78,var(--shadow)}
.event-loss{margin:10px 0;padding:9px 10px;border:1px solid #7b3d47;border-radius:10px;background:rgba(255,107,120,.09);color:#ff9eaa;font-size:8px;font-weight:1000;letter-spacing:.1em;text-align:center}

body.reduce-motion .pet-actor.tap-sick-queasy img,body.reduce-motion .pet-actor.tap-sick-queasy .accessory-layer,body.reduce-motion .status-fx.queasy:before,body.reduce-motion .status-fx.queasy:after{animation:none!important}
body.reduce-motion .status-fx.queasy:before{opacity:1;transform:translateX(-50%)}

.muscle{display:none!important}
.evolution-echo,.evolution-rune{position:absolute;inset:0;pointer-events:none;transform-origin:50% 72%}
.evolution-echo{z-index:2;opacity:0;background:var(--pet-color,var(--cyan));-webkit-mask-image:var(--pet-sprite);mask-image:var(--pet-sprite);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;filter:blur(5px);transition:opacity .35s ease,transform .45s cubic-bezier(.2,.8,.2,1)}
.evolution-rune{z-index:6;opacity:0;color:var(--pet-color,var(--cyan));transition:opacity .35s ease}
.mini-pet .evolution-echo{z-index:2}.mini-pet .evolution-rune{z-index:4}

.stage-spark .evolution-echo,.stage-kid .evolution-echo{opacity:0}
.stage-teen .evolution-echo{opacity:.10;transform:translateY(-.5%) scale(1.025,1.03)}
.stage-beast .evolution-echo{opacity:.17;transform:translateY(-.8%) scale(1.055,1.04)}
.stage-legend .evolution-echo{opacity:.25;transform:translateY(-1.2%) scale(1.075,1.075);filter:blur(7px);animation:evolutionBreathe 2.8s ease-in-out infinite}
.stage-teen .evolution-rune{opacity:.12}.stage-beast .evolution-rune{opacity:.38}.stage-legend .evolution-rune{opacity:.65}

.stage-teen.form-speed .evolution-echo{transform:translate(-1.5%,-.3%) skewY(-1deg) scale(1.04,1.02)}
.stage-beast.form-speed .evolution-echo,.stage-legend.form-speed .evolution-echo{transform:translate(-2.5%,-.5%) skewY(-1.5deg) scale(1.075,1.03)}
.stage-teen.form-power .evolution-echo{transform:translateY(.4%) scale(1.05,1.01)}
.stage-beast.form-power .evolution-echo,.stage-legend.form-power .evolution-echo{transform:translateY(.5%) scale(1.095,1.02)}
.stage-teen.form-instinct .evolution-echo{transform:translateY(-1.8%) scale(1.01,1.055)}
.stage-beast.form-instinct .evolution-echo,.stage-legend.form-instinct .evolution-echo{transform:translateY(-2.6%) scale(1.02,1.09)}
.stage-teen.form-stamina .evolution-echo{transform:translateY(1%) scale(1.045,1.01)}
.stage-beast.form-stamina .evolution-echo,.stage-legend.form-stamina .evolution-echo{transform:translateY(1.5%) scale(1.075,1.02)}
.stage-beast.form-luck .evolution-echo,.stage-legend.form-luck .evolution-echo,.stage-beast.form-royal .evolution-echo,.stage-legend.form-royal .evolution-echo{filter:blur(6px) drop-shadow(0 0 7px rgba(255,212,90,.65))}
.stage-beast.form-prism .evolution-echo,.stage-legend.form-prism .evolution-echo{filter:blur(6px) drop-shadow(0 0 8px #fff) drop-shadow(0 0 12px rgba(22,200,255,.65))}
.stage-beast.form-eclipse .evolution-echo,.stage-legend.form-eclipse .evolution-echo{background:#7654ff;filter:blur(7px) drop-shadow(0 0 10px rgba(121,84,255,.7))}

.evolution-rune::before,.evolution-rune::after{position:absolute;pointer-events:none}
.form-speed .evolution-rune::before{content:"";left:7%;top:43%;width:17%;height:2px;border-radius:999px;background:currentColor;box-shadow:8px 9px 0 -1px currentColor,2px 17px 0 -1px currentColor;transform:rotate(-10deg)}
.form-instinct .evolution-rune::before{content:"☾";right:10%;top:15%;font-size:18px;text-shadow:0 0 9px currentColor}
.form-luck .evolution-rune::before,.form-royal .evolution-rune::before{content:"✦";right:9%;top:18%;font-size:17px;text-shadow:-16px 10px 0 currentColor,0 0 9px currentColor}
.form-prism .evolution-rune::before{content:"◇";right:9%;top:16%;font-size:20px;color:#fff;text-shadow:-17px 11px 0 #16c8ff,0 0 11px #ff68bd}
.form-eclipse .evolution-rune::before{content:"◐";right:8%;top:16%;font-size:18px;color:#9a75ff;text-shadow:0 0 10px #7a54ff}
.form-pixel .evolution-rune::before{content:"+ +";left:7%;top:25%;font:1000 11px/1 ui-monospace,monospace;letter-spacing:4px;text-shadow:0 0 7px currentColor}

@keyframes evolutionBreathe{0%,100%{opacity:.2}50%{opacity:.29}}
body.reduce-motion .evolution-echo{animation:none!important;transition:none!important}
body.reduce-motion .evolution-rune{transition:none!important}

.pet-actor img,.mini-pet img{
  translate:var(--rizo-offset-x,0%) var(--rizo-offset-y,0%);
  scale:var(--rizo-image-scale,1);
  transform-origin:50% 78%;
}
.body-shadow,.mini-pet-shadow{
  translate:var(--rizo-shadow-x,0%) var(--rizo-shadow-y,0%);
  scale:var(--rizo-shadow-scale,1);
  opacity:var(--rizo-shadow-opacity,1);
  transform-origin:50% 50%;
}
.accessory-layer{transform-origin:50% 50%}
.accessory-layer.anchor-head{translate:var(--anchor-head-x,0%) var(--anchor-head-y,0%);scale:var(--anchor-head-scale,1)}
.accessory-layer.anchor-face{translate:var(--anchor-face-x,0%) var(--anchor-face-y,0%);scale:var(--anchor-face-scale,1)}
.accessory-layer.anchor-upper{translate:var(--anchor-upper-x,0%) var(--anchor-upper-y,0%);scale:var(--anchor-upper-scale,1)}
.accessory-layer.anchor-center{translate:var(--anchor-center-x,0%) var(--anchor-center-y,0%);scale:var(--anchor-center-scale,1)}
.accessory-layer.anchor-back{translate:var(--anchor-back-x,0%) var(--anchor-back-y,0%);scale:var(--anchor-back-scale,1)}
.accessory-layer.anchor-lower{translate:var(--anchor-lower-x,0%) var(--anchor-lower-y,0%);scale:var(--anchor-lower-scale,1)}
.accessory-layer.anchor-ground{translate:var(--anchor-ground-x,0%) var(--anchor-ground-y,0%);scale:var(--anchor-ground-scale,1)}
.accessory-layer.anchor-effects{translate:var(--anchor-effects-x,0%) var(--anchor-effects-y,0%);scale:var(--anchor-effects-scale,1)}

.stage-teen .evolution-echo{opacity:.035}
.stage-beast .evolution-echo{opacity:.065}
.stage-legend .evolution-echo{opacity:.11;filter:blur(7px)}

[data-rizo-variant="golden"] img{filter:drop-shadow(0 8px 0 rgba(78,50,0,.2)) drop-shadow(0 0 7px rgba(255,214,78,.38))}
[data-rizo-variant="diamond"] img{filter:drop-shadow(0 8px 0 rgba(0,35,49,.17)) drop-shadow(0 0 8px rgba(220,251,255,.48))}
[data-rizo-variant="shadow"] img{filter:drop-shadow(0 8px 0 rgba(0,0,0,.3)) drop-shadow(0 0 7px rgba(121,84,255,.32))}
[data-rizo-variant="aurora"] img{filter:drop-shadow(0 8px 0 rgba(0,27,38,.18)) drop-shadow(0 0 7px rgba(125,244,255,.35))}

body.reduce-motion .pet-actor img,body.reduce-motion .mini-pet img,
body.reduce-motion .body-shadow,body.reduce-motion .mini-pet-shadow,
body.reduce-motion .accessory-layer{transition:none!important}

.pet-actor.stage-spark{transform:scale(.38)}
.pet-actor.stage-kid{transform:scale(.54)}
.pet-actor.stage-teen{transform:scale(.71)}
.pet-actor.stage-beast{transform:scale(.86)}
.pet-actor.stage-legend{transform:scale(1)}
.pet-actor.stage-spark.sleeping{transform:translateY(19px) scale(.38) rotate(-6deg)}
.pet-actor.stage-kid.sleeping{transform:translateY(19px) scale(.54) rotate(-6deg)}
.pet-actor.stage-teen.sleeping{transform:translateY(19px) scale(.71) rotate(-6deg)}
.pet-actor.stage-beast.sleeping{transform:translateY(19px) scale(.86) rotate(-6deg)}
.pet-actor.stage-legend.sleeping{transform:translateY(19px) scale(1) rotate(-6deg)}
.pet-actor.stage-spark.sad{transform:translateY(7px) scale(.37)}
.pet-actor.stage-kid.sad{transform:translateY(7px) scale(.52)}
.pet-actor.stage-teen.sad{transform:translateY(7px) scale(.68)}
.pet-actor.stage-beast.sad{transform:translateY(7px) scale(.83)}
.pet-actor.stage-legend.sad{transform:translateY(7px) scale(.97)}
.pet-actor img,.mini-pet img{translate:var(--rizo-offset-x,0%) var(--rizo-offset-y,0%);scale:var(--rizo-scale-x,1) var(--rizo-scale-y,1);transform-origin:50% 84%;z-index:4}
.mini-pet.stage-spark{width:72px;height:72px}.mini-pet.stage-kid{width:94px;height:94px}.mini-pet.stage-teen{width:115px;height:115px}.mini-pet.stage-beast{width:135px;height:135px}.mini-pet.stage-legend{width:148px;height:148px}

.evolution-echo{opacity:.025!important;transform:none!important;filter:blur(8px)!important}
.stage-teen .evolution-echo{opacity:.035!important}.stage-beast .evolution-echo{opacity:.05!important}.stage-legend .evolution-echo{opacity:.075!important}
.form-speed .evolution-rune,.form-power .evolution-rune,.form-instinct .evolution-rune,.form-stamina .evolution-rune,.form-luck .evolution-rune,.form-pixel .evolution-rune,.form-eclipse .evolution-rune,.form-royal .evolution-rune,.form-prism .evolution-rune{opacity:.23!important;transform:scale(.78)!important}

.accessory-layer.wearable{position:absolute;inset:0;z-index:auto!important;translate:none!important;scale:none!important;transform:none!important;filter:none!important;animation:none!important;pointer-events:none;overflow:visible}
.accessory-layer.wearable::before,.accessory-layer.wearable::after{content:none!important;display:none!important}
.wearable-back,.wearable-body,.wearable-front{position:absolute;inset:0;pointer-events:none;transform-origin:50% 58%;translate:var(--wear-x,0%) var(--wear-y,0%);scale:var(--wear-anchor-scale,1);transform:rotate(calc(var(--wearable-rotate,0deg) + var(--gear-tilt,0deg))) scale(var(--wearable-scale,1)) scale(var(--gear-scale-x,1),var(--gear-scale-y,1)) translate(var(--gear-shift-x,0%),var(--gear-shift-y,0%));will-change:transform}
.wearable-back{z-index:2}.wearable-body{z-index:5}.wearable-front{z-index:8}
.wearable.anchor-head{--wear-x:var(--anchor-head-x,0%);--wear-y:var(--anchor-head-y,0%);--wear-anchor-scale:var(--anchor-head-scale,1)}
.wearable.anchor-face{--wear-x:var(--anchor-face-x,0%);--wear-y:var(--anchor-face-y,0%);--wear-anchor-scale:var(--anchor-face-scale,1)}
.wearable.anchor-upper{--wear-x:var(--anchor-upper-x,0%);--wear-y:var(--anchor-upper-y,0%);--wear-anchor-scale:var(--anchor-upper-scale,1)}
.wearable.anchor-center{--wear-x:var(--anchor-center-x,0%);--wear-y:var(--anchor-center-y,0%);--wear-anchor-scale:var(--anchor-center-scale,1)}
.wearable.anchor-lower{--wear-x:var(--anchor-lower-x,0%);--wear-y:var(--anchor-lower-y,0%);--wear-anchor-scale:var(--anchor-lower-scale,1)}
.wearable.anchor-left{--wear-x:var(--anchor-left-x,0%);--wear-y:var(--anchor-left-y,0%);--wear-anchor-scale:var(--anchor-left-scale,1)}
.wearable.anchor-right{--wear-x:var(--anchor-right-x,0%);--wear-y:var(--anchor-right-y,0%);--wear-anchor-scale:var(--anchor-right-scale,1)}
.wearable.anchor-back{--wear-x:var(--anchor-back-x,0%);--wear-y:var(--anchor-back-y,0%);--wear-anchor-scale:var(--anchor-back-scale,1)}
.wearable.anchor-ground{--wear-x:var(--anchor-ground-x,0%);--wear-y:var(--anchor-ground-y,0%);--wear-anchor-scale:var(--anchor-ground-scale,1)}
.wearable.anchor-effects{--wear-x:var(--anchor-effects-x,0%);--wear-y:var(--anchor-effects-y,0%);--wear-anchor-scale:var(--anchor-effects-scale,1)}
.wearable.none>span{display:none}

.wearable>span::before,.wearable>span::after{position:absolute;box-sizing:border-box;content:"";border-style:solid;border-color:#080b0f;filter:drop-shadow(0 3px 0 rgba(0,0,0,.22))}

.wearable-bandana .wearable-back::before{left:66%;top:57%;width:18%;height:27%;background:#e94152;border-width:5px;clip-path:polygon(12% 0,100% 10%,72% 100%,0 80%);transform:rotate(-17deg);transform-origin:12% 8%}
.wearable-bandana .wearable-back::after{left:61%;top:56%;width:16%;height:23%;background:#ff5968;border-width:5px;clip-path:polygon(8% 0,100% 12%,76% 100%,0 75%);transform:rotate(12deg);transform-origin:15% 10%}
.wearable-bandana .wearable-body::before{left:24%;top:55%;width:53%;height:15%;background:#ef4658;border-width:5px;border-radius:48% 52% 43% 48%/38% 40% 62% 58%;transform:rotate(-1.5deg);box-shadow:inset 0 -4px 0 #be2638}
.wearable-bandana .wearable-body::after{left:29%;top:60%;width:42%;height:3px;border:0;background:#ffb2b9;border-radius:50%;opacity:.8;transform:rotate(-1deg)}
.wearable-bandana .wearable-front::before{left:64%;top:57%;width:12%;height:12%;background:#ff5968;border-width:5px;border-radius:44% 56% 48% 52%;transform:rotate(12deg)}
.wearable-bandana .wearable-front::after{left:38%;top:58.5%;width:17%;height:7%;border:0;background:url("./assets/rizo-full-mark.png") center/contain no-repeat;filter:none;opacity:.72;transform:rotate(-2deg)}
.pet-actor:not(.sleeping) .wearable-bandana .wearable-body::before,.mini-pet .wearable-bandana .wearable-body::before{animation:bandanaBreathe 2.3s ease-in-out infinite}
.walk-rizo .wearable-bandana .wearable-back::before,.behavior-wander-left .wearable-bandana .wearable-back::before,.behavior-wander-right .wearable-bandana .wearable-back::before,.behavior-zoomies .wearable-bandana .wearable-back::before,.rhythm-rizo .wearable-bandana .wearable-back::before{animation:tailLagA .48s ease-in-out infinite alternate}
.walk-rizo .wearable-bandana .wearable-back::after,.behavior-wander-left .wearable-bandana .wearable-back::after,.behavior-wander-right .wearable-bandana .wearable-back::after,.behavior-zoomies .wearable-bandana .wearable-back::after,.rhythm-rizo .wearable-bandana .wearable-back::after{animation:tailLagB .56s ease-in-out infinite alternate}
@keyframes bandanaBreathe{50%{transform:rotate(-1.5deg) scale(1.018,1.035)}}
@keyframes tailLagA{to{transform:rotate(-27deg) translate(-3px,2px)}}@keyframes tailLagB{to{transform:rotate(3deg) translate(-4px,3px)}}

.wearable-beanie .wearable-body::before{left:28%;top:10%;width:45%;height:31%;background:#191d25;border-width:6px;border-radius:52% 50% 24% 24%;transform:rotate(-4deg);box-shadow:inset 0 -8px 0 #303744}
.wearable-beanie .wearable-front::before{left:42%;top:23%;width:16%;height:9%;border-width:3px;background:#16c8ff url("./assets/rizo-full-mark.png") center/85% auto no-repeat;border-radius:3px;transform:rotate(-4deg)}
.wearable-shades .wearable-front::before{left:25%;top:44%;width:23%;height:15%;background:#0b1017;border-width:6px;border-radius:9px;box-shadow:58px 0 0 -6px #0b1017,58px 0 0 0 #080b0f;transform:skew(-4deg)}
.wearable-shades .wearable-front::after{left:46%;top:49%;width:15%;height:5px;background:#080b0f;border:0;filter:none}
.wearable-flower .wearable-front::before{right:23%;top:15%;width:23%;height:23%;background:#fff19a;border-width:5px;border-radius:50%;box-shadow:-11px 4px 0 -4px #fff19a,-11px 4px 0 0 #080b0f,10px 5px 0 -4px #fff19a,10px 5px 0 0 #080b0f,0 -10px 0 -4px #fff19a,0 -10px 0 0 #080b0f}
.wearable-flower .wearable-front::after{right:30%;top:22%;width:9%;height:9%;background:#ffb643;border-width:3px;border-radius:50%}
.wearable-eyepatch .wearable-front::before{left:25%;top:43%;width:24%;height:19%;background:#11151b;border-width:5px;border-radius:48%;transform:rotate(7deg)}
.wearable-eyepatch .wearable-front::after{left:24%;top:39%;width:51%;height:5px;background:#080b0f;border:0;filter:none;transform:rotate(-8deg)}
.wearable-headphones .wearable-body::before{left:22%;top:30%;width:57%;height:31%;background:transparent;border-width:8px;border-bottom:0;border-radius:55% 55% 0 0}
.wearable-headphones .wearable-front::before{left:18%;top:49%;width:19%;height:24%;background:#ff63bd;border-width:6px;border-radius:10px;box-shadow:157px 0 0 -6px #ff63bd,157px 0 0 0 #080b0f}
.wearable-headphones .wearable-front::after{left:23%;top:54%;width:8%;height:11%;background:url("./assets/rizo-full-mark.png") center/contain no-repeat;border:0;filter:none;box-shadow:157px 0 0 0 rgba(0,0,0,0)}
.wearable-cap .wearable-body::before{left:27%;top:10%;width:47%;height:27%;background:#171c27;border-width:6px;border-radius:56% 52% 25% 24%;transform:rotate(-6deg);box-shadow:inset 0 -7px 0 #2b3444}
.wearable-cap .wearable-front::before{left:51%;top:30%;width:31%;height:10%;background:#16c8ff;border-width:5px;border-radius:15% 65% 60% 15%;transform:rotate(-9deg);transform-origin:0 50%}
.wearable-bow .wearable-front::before{left:22%;top:14%;width:28%;height:24%;background:#ff68bd;border-width:6px;clip-path:polygon(0 4%,100% 50%,0 96%);transform:rotate(-5deg)}
.wearable-bow .wearable-front::after{right:22%;top:14%;width:28%;height:24%;background:#ff68bd;border-width:6px;clip-path:polygon(100% 4%,0 50%,100% 96%);transform:rotate(5deg)}
.wearable-goggles .wearable-front::before{left:24%;top:42%;width:25%;height:19%;background:#7eeeff;border-width:6px;border-radius:50%;box-shadow:57px 0 0 -6px #7eeeff,57px 0 0 0 #080b0f}
.wearable-goggles .wearable-front::after{left:45%;top:49%;width:18%;height:5px;background:#080b0f;border:0;filter:none}
.wearable-visor .wearable-front::before{left:23%;top:41%;width:55%;height:21%;background:#22d7ef;border-width:7px;border-radius:48% 48% 35% 35%;transform:rotate(-2deg);box-shadow:inset 0 -6px 0 #0b6c85}
.wearable-mask .wearable-front::before{left:24%;top:43%;width:52%;height:20%;background:#171b26;border-width:6px;clip-path:polygon(0 0,48% 27%,100% 0,90% 100%,54% 72%,10% 100%)}
.wearable-earmuffs .wearable-body::before{left:21%;top:31%;width:59%;height:31%;background:transparent;border-width:8px;border-bottom:0;border-radius:55% 55% 0 0}
.wearable-earmuffs .wearable-front::before{left:17%;top:49%;width:21%;height:25%;background:#d9f9ff;border-width:6px;border-radius:50%;box-shadow:166px 0 0 -6px #d9f9ff,166px 0 0 0 #080b0f}
.wearable-bucket .wearable-body::before{left:25%;top:8%;width:51%;height:31%;background:#4e86a6;border-width:6px;border-radius:52% 52% 26% 26%;clip-path:polygon(15% 0,85% 0,100% 100%,0 100%)}
.wearable-bucket .wearable-front::before{left:19%;top:32%;width:63%;height:11%;background:#4e86a6;border-width:5px;border-radius:50%;transform:rotate(-2deg)}

.wearable-horns .wearable-back::before{left:23%;top:9%;width:23%;height:30%;background:#ef4c58;border-width:6px;clip-path:polygon(50% 0,100% 100%,0 76%);transform:rotate(-17deg)}
.wearable-horns .wearable-back::after{right:22%;top:9%;width:23%;height:30%;background:#ef4c58;border-width:6px;clip-path:polygon(50% 0,100% 76%,0 100%);transform:rotate(17deg)}
.wearable-halo .wearable-back::before{left:30%;top:2%;width:42%;height:15%;background:transparent;border-width:7px;border-color:#fff0a2;border-radius:50%;filter:drop-shadow(0 0 7px #ffe368)}
.wearable-crown .wearable-front::before{left:31%;top:3%;width:40%;height:30%;background:#ffd64e;border-width:6px;clip-path:polygon(0 100%,0 35%,24% 62%,42% 6%,63% 61%,100% 26%,91% 100%);filter:drop-shadow(0 4px 0 #7a5500)}
.wearable-antenna .wearable-back::before{left:48%;top:-1%;width:7px;height:29%;background:#11151c;border-width:3px;border-radius:8px;transform:rotate(-5deg)}
.wearable-antenna .wearable-front::before{left:42%;top:-5%;width:19%;height:13%;background:#16c8ff;border-width:5px;border-radius:50%;filter:drop-shadow(0 0 9px #16c8ff)}
.wearable-leafcrown .wearable-front::before{left:25%;top:8%;width:23%;height:20%;background:#81dd65;border-width:5px;border-radius:90% 0 90% 0;transform:rotate(-22deg);box-shadow:32px -7px 0 -5px #81dd65,32px -7px 0 0 #080b0f,62px 1px 0 -5px #81dd65,62px 1px 0 0 #080b0f}
.wearable-starclip .wearable-front::before{right:23%;top:13%;width:27%;height:27%;background:#ffd45a;border-width:5px;clip-path:polygon(50% 0,61% 35%,100% 38%,69% 59%,80% 100%,50% 76%,20% 100%,31% 59%,0 38%,39% 35%)}

.wearable-chain .wearable-front::before{left:28%;top:57%;width:45%;height:23%;background:transparent;border-width:8px;border-top:0;border-color:#f2c946;border-radius:0 0 52% 52%;filter:drop-shadow(0 3px 0 #725500)}
.wearable-chain .wearable-front::after{left:44%;top:72%;width:14%;height:14%;background:#f2c946 url("./assets/rizo-full-mark.png") center/78% auto no-repeat;border-width:4px;border-radius:50%;filter:drop-shadow(0 3px 0 #725500)}
.walk-rizo .wearable-chain .wearable-front,.rhythm-rizo .wearable-chain .wearable-front,.behavior-dance .wearable-chain .wearable-front{animation:chainSettle .48s ease-in-out infinite alternate}
@keyframes chainSettle{to{translate:var(--wear-x,0%) calc(var(--wear-y,0%) + 1.5%);transform:rotate(calc(var(--wearable-rotate,0deg) + 1.5deg)) scale(var(--wearable-scale,1))}}
.wearable-scarf .wearable-back::before{right:23%;top:57%;width:15%;height:31%;background:#16bfe9;border-width:5px;clip-path:polygon(0 0,100% 5%,70% 100%,10% 82%);transform:rotate(-17deg);transform-origin:20% 0}
.wearable-scarf .wearable-body::before{left:25%;top:55%;width:52%;height:16%;background:#16c8ff;border-width:6px;border-radius:50%;transform:rotate(1deg);box-shadow:inset 0 -4px 0 #0a7590}
.walk-rizo .wearable-scarf .wearable-back::before,.behavior-zoomies .wearable-scarf .wearable-back::before,.rhythm-rizo .wearable-scarf .wearable-back::before{animation:scarfTrail .5s ease-in-out infinite alternate}@keyframes scarfTrail{to{transform:rotate(-29deg) translate(-5px,2px)}}
.wearable-wings .wearable-back::before{left:-3%;top:39%;width:38%;height:38%;background:#151a22;border-width:7px;clip-path:polygon(100% 44%,60% 0,55% 35%,10% 15%,30% 55%,0 90%,58% 76%,75% 100%);transform:rotate(-11deg)}
.wearable-wings .wearable-back::after{right:-3%;top:39%;width:38%;height:38%;background:#151a22;border-width:7px;clip-path:polygon(0 44%,40% 0,45% 35%,90% 15%,70% 55%,100% 90%,42% 76%,25% 100%);transform:rotate(11deg)}
.walk-rizo .wearable-wings .wearable-back,.rhythm-rizo .wearable-wings .wearable-back,.behavior-zoomies .wearable-wings .wearable-back{animation:wingTrail .62s ease-in-out infinite alternate}@keyframes wingTrail{to{transform:rotate(-2deg) scale(.97)}}
.wearable-cape .wearable-back::before{right:4%;top:39%;width:43%;height:50%;background:#ec4558;border-width:7px;clip-path:polygon(0 0,100% 13%,76% 100%,18% 82%);transform:rotate(-10deg);transform-origin:8% 5%}
.walk-rizo .wearable-cape .wearable-back::before,.behavior-zoomies .wearable-cape .wearable-back::before,.rhythm-rizo .wearable-cape .wearable-back::before{animation:capeTrail .5s ease-in-out infinite alternate}@keyframes capeTrail{to{transform:rotate(-20deg) skewY(4deg) translate(-4px,2px)}}
.wearable-backpack .wearable-back::before{right:1%;top:39%;width:38%;height:42%;background:#745630;border-width:7px;border-radius:22% 42% 38% 20%;box-shadow:inset 0 10px 0 #916f43}
.wearable-backpack .wearable-body::before{right:28%;top:43%;width:19%;height:38%;background:transparent;border-width:5px;border-left:0;border-radius:0 50% 50% 0}

.rhythm-hit .wearable-beanie .wearable-body::before,.rhythm-hit .wearable-cap .wearable-body::before,.rhythm-hit .wearable-bucket .wearable-body::before,.rush-rizo:not(.rush-hurt) .wearable-beanie .wearable-body::before{animation:hatSettle .22s ease-out}@keyframes hatSettle{45%{transform:translateY(3px) scale(1.04,.89) rotate(-4deg)}100%{transform:none}}

.face-mark-icon{display:block;width:31px;height:20px;object-fit:contain;filter:none!important}
.den-face-mark{position:absolute;left:8%;top:24%;width:54px;height:32px;object-fit:contain;opacity:.12;transform:rotate(-8deg);z-index:2;pointer-events:none}
.rizo-origin-stamp{padding-left:25px!important}.rizo-origin-stamp::before{content:"";position:absolute;left:7px;top:50%;width:15px;height:10px;background:url("./assets/rizo-full-mark.png") center/contain no-repeat;transform:translateY(-50%)}
.season-card::after{content:""!important;width:112px;height:68px;right:2px;top:-2px;background:url("./assets/rizo-full-mark.png") center/contain no-repeat;opacity:.055;transform:rotate(8deg)}
.face-mark-stage{width:42px;height:27px;display:grid;place-items:center}.face-mark-stage img{display:block;width:100%;height:100%;object-fit:contain;filter:none!important}
.shop-item.rarity-card-legendary::before{content:"";width:18px;height:12px;background:url("./assets/rizo-full-mark.png") center/contain no-repeat;opacity:.58;position:absolute;right:5px;top:5px}.shop-item{position:relative}

.rhythm-stage{background:#111923!important;border-color:#263746!important}.rhythm-face-mark{position:absolute!important;left:50%!important;top:48%!important;width:82px!important;height:50px!important;object-fit:contain!important;translate:-50% -50%!important;scale:1!important;opacity:.28;filter:none!important}
.rhythm-track-intro{position:absolute;left:50%;top:20px;z-index:30;min-width:190px;translate:-50% 0;text-align:center;border:2px solid #16c8ff;background:#0a1119;padding:8px 14px;border-radius:12px;box-shadow:5px 5px 0 #000;animation:trackCardIn .35s ease-out both}.rhythm-track-intro small,.rhythm-track-intro span{display:block;font-size:7px;color:#8ba0b4;letter-spacing:.14em}.rhythm-track-intro b{display:block;color:#fff;font-size:13px;margin:3px 0}.rhythm-track-intro.leave{animation:trackCardOut .28s ease-in forwards}@keyframes trackCardIn{from{opacity:0;transform:translateY(-18px) scale(.88)}}@keyframes trackCardOut{to{opacity:0;transform:translateY(-14px) scale(.92)}}
.rhythm-note.hit{animation:beatHit .15s ease-out forwards}@keyframes beatHit{to{opacity:0;transform:scale(1.8)}}
.song-result{border-color:#16c8ff;background:#0b3f4f;color:#bff6ff}

body.reduce-motion .wearable>span,body.reduce-motion .wearable>span::before,body.reduce-motion .wearable>span::after{animation:none!important;transition:none!important}
body.reduce-motion .rhythm-track-intro{animation:none!important}

@media(max-width:350px){.den-face-mark{width:42px}.rhythm-track-intro{min-width:160px;top:14px;padding:6px 10px}}

.wearable-bandana .wearable-back::before{top:72%}
.wearable-bandana .wearable-back::after{top:71%}
.wearable-bandana .wearable-body::before{top:70%;height:13%}
.wearable-bandana .wearable-body::after{top:74%}
.wearable-bandana .wearable-front::before{top:72%}
.wearable-bandana .wearable-front::after{top:73.5%}
.view-hero::after{content:""!important;right:2px;bottom:-2px;width:152px;height:92px;background:url("./assets/rizo-full-mark.png") center/contain no-repeat;opacity:.045;transform:rotate(-10deg)}

.wearable-bandana{--band-top:92%}
.stage-beast .wearable-bandana{--band-top:94%}
.stage-teen .wearable-bandana{--band-top:96%}
.stage-kid .wearable-bandana{--band-top:97%}
.stage-spark .wearable-bandana{--band-top:98%}
.wearable-bandana .wearable-back::before{top:calc(var(--band-top) + 2%)}
.wearable-bandana .wearable-back::after{top:calc(var(--band-top) + 1%)}
.wearable-bandana .wearable-body::before{top:var(--band-top);height:11%}
.wearable-bandana .wearable-body::after{top:calc(var(--band-top) + 4%)}
.wearable-bandana .wearable-front::before{top:calc(var(--band-top) + 2%)}
.wearable-bandana .wearable-front::after{top:calc(var(--band-top) + 3.5%)}

.wearable-bandana{--band-top:110%}
.stage-beast .wearable-bandana{--band-top:108%}
.stage-teen .wearable-bandana{--band-top:105%}
.stage-kid .wearable-bandana{--band-top:102%}
.stage-spark .wearable-bandana{--band-top:98%}
.result-track-title{display:inline-flex;align-items:center;justify-content:center;margin:2px auto 8px;padding:5px 10px;border:1px solid #16c8ff;border-radius:999px;background:#0b1520;color:#eafcff;font-size:8px;letter-spacing:.12em;box-shadow:3px 3px 0 #000}

.wearable>span::before,.wearable>span::after{content:none!important;display:none!important}
.wearable>span{background-repeat:no-repeat!important;background-position:center!important;background-size:100% 100%!important}
.wearable-item-icon{display:block;width:42px;height:42px;max-width:92%;max-height:92%;object-fit:contain;margin:auto;filter:none!important;transform:none!important}
.shop-item-icon:has(.wearable-item-icon){background:#202832;border:1px solid #35404d;overflow:hidden}

.wearable-antenna .wearable-back{background-image:url("./assets/wearables/antenna-back.svg")}
.wearable-antenna .wearable-front{background-image:url("./assets/wearables/antenna-front.svg")}
.wearable-backpack .wearable-back{background-image:url("./assets/wearables/backpack-back.svg")}
.wearable-backpack .wearable-body{background-image:url("./assets/wearables/backpack-body.svg")}
.wearable-backpack .wearable-front{background-image:url("./assets/wearables/backpack-front.svg")}
.wearable-bandana .wearable-back{background-image:url("./assets/wearables/bandana-back.svg")}
.wearable-bandana .wearable-body{background-image:url("./assets/wearables/bandana-body.svg")}
.wearable-bandana .wearable-front{background-image:url("./assets/wearables/bandana-front.svg")}
.wearable-beanie .wearable-body{background-image:url("./assets/wearables/beanie-body.svg")}
.wearable-beanie .wearable-front{background-image:url("./assets/wearables/beanie-front.svg")}
.wearable-bow .wearable-front{background-image:url("./assets/wearables/bow-front.svg")}
.wearable-bucket .wearable-body{background-image:url("./assets/wearables/bucket-body.svg")}
.wearable-bucket .wearable-front{background-image:url("./assets/wearables/bucket-front.svg")}
.wearable-cap .wearable-body{background-image:url("./assets/wearables/cap-body.svg")}
.wearable-cap .wearable-front{background-image:url("./assets/wearables/cap-front.svg")}
.wearable-cape .wearable-back{background-image:url("./assets/wearables/cape-back.svg")}
.wearable-cape .wearable-front{background-image:url("./assets/wearables/cape-front.svg")}
.wearable-chain .wearable-front{background-image:url("./assets/wearables/chain-front.svg")}
.wearable-crown .wearable-front{background-image:url("./assets/wearables/crown-front.svg")}
.wearable-earmuffs .wearable-body{background-image:url("./assets/wearables/earmuffs-body.svg")}
.wearable-earmuffs .wearable-front{background-image:url("./assets/wearables/earmuffs-front.svg")}
.wearable-eyepatch .wearable-back{background-image:url("./assets/wearables/eyepatch-back.svg")}
.wearable-eyepatch .wearable-front{background-image:url("./assets/wearables/eyepatch-front.svg")}
.wearable-flower .wearable-back{background-image:url("./assets/wearables/flower-back.svg")}
.wearable-flower .wearable-front{background-image:url("./assets/wearables/flower-front.svg")}
.wearable-goggles .wearable-back{background-image:url("./assets/wearables/goggles-back.svg")}
.wearable-goggles .wearable-front{background-image:url("./assets/wearables/goggles-front.svg")}
.wearable-halo .wearable-back{background-image:url("./assets/wearables/halo-back.svg")}
.wearable-headphones .wearable-body{background-image:url("./assets/wearables/headphones-body.svg")}
.wearable-headphones .wearable-front{background-image:url("./assets/wearables/headphones-front.svg")}
.wearable-horns .wearable-back{background-image:url("./assets/wearables/horns-back.svg")}
.wearable-horns .wearable-front{background-image:url("./assets/wearables/horns-front.svg")}
.wearable-leafcrown .wearable-back{background-image:url("./assets/wearables/leafcrown-back.svg")}
.wearable-leafcrown .wearable-front{background-image:url("./assets/wearables/leafcrown-front.svg")}
.wearable-mask .wearable-back{background-image:url("./assets/wearables/mask-back.svg")}
.wearable-mask .wearable-front{background-image:url("./assets/wearables/mask-front.svg")}
.wearable-scarf .wearable-back{background-image:url("./assets/wearables/scarf-back.svg")}
.wearable-scarf .wearable-body{background-image:url("./assets/wearables/scarf-body.svg")}
.wearable-scarf .wearable-front{background-image:url("./assets/wearables/scarf-front.svg")}
.wearable-shades .wearable-back{background-image:url("./assets/wearables/shades-back.svg")}
.wearable-shades .wearable-front{background-image:url("./assets/wearables/shades-front.svg")}
.wearable-starclip .wearable-back{background-image:url("./assets/wearables/starclip-back.svg")}
.wearable-starclip .wearable-front{background-image:url("./assets/wearables/starclip-front.svg")}
.wearable-visor .wearable-back{background-image:url("./assets/wearables/visor-back.svg")}
.wearable-visor .wearable-front{background-image:url("./assets/wearables/visor-front.svg")}
.wearable-wings .wearable-back{background-image:url("./assets/wearables/wings-back.svg")}

@keyframes gearTailLag{from{transform:rotate(calc(var(--wearable-rotate,0deg) - 1deg)) scale(var(--wearable-scale,1)) translateX(0)}to{transform:rotate(calc(var(--wearable-rotate,0deg) + 2.5deg)) scale(var(--wearable-scale,1)) translateX(-3px)}}
@keyframes gearSoftBreathe{0%,100%{transform:rotate(var(--wearable-rotate,0deg)) scale(var(--wearable-scale,1))}50%{transform:rotate(var(--wearable-rotate,0deg)) scale(calc(var(--wearable-scale,1) * 1.008),calc(var(--wearable-scale,1) * 1.018)) translateY(-1px)}}
@keyframes gearChainWeight{from{transform:rotate(calc(var(--wearable-rotate,0deg) - .6deg)) scale(var(--wearable-scale,1)) translateY(0)}to{transform:rotate(calc(var(--wearable-rotate,0deg) + .8deg)) scale(var(--wearable-scale,1)) translateY(3px)}}
@keyframes gearWingTrail{from{transform:rotate(calc(var(--wearable-rotate,0deg) - .8deg)) scale(var(--wearable-scale,1))}to{transform:rotate(calc(var(--wearable-rotate,0deg) + .8deg)) scale(calc(var(--wearable-scale,1) * .985),calc(var(--wearable-scale,1) * 1.012)) translateX(-2px)}}
@keyframes gearHatSettle{0%{transform:rotate(var(--wearable-rotate,0deg)) scale(var(--wearable-scale,1))}45%{transform:rotate(calc(var(--wearable-rotate,0deg) - 1deg)) scale(calc(var(--wearable-scale,1) * 1.025),calc(var(--wearable-scale,1) * .94)) translateY(3px)}100%{transform:rotate(var(--wearable-rotate,0deg)) scale(var(--wearable-scale,1))}}
@keyframes gearClipBob{from{transform:rotate(calc(var(--wearable-rotate,0deg) - .5deg)) scale(var(--wearable-scale,1))}to{transform:rotate(calc(var(--wearable-rotate,0deg) + .8deg)) scale(var(--wearable-scale,1)) translateY(-1px)}}
.pet-actor:not(.sleeping) .wearable-bandana .wearable-body,.pet-actor:not(.sleeping) .wearable-scarf .wearable-body{animation:gearSoftBreathe 2.4s ease-in-out infinite}
.walk-rizo .wearable-bandana .wearable-back,.behavior-wander-left .wearable-bandana .wearable-back,.behavior-wander-right .wearable-bandana .wearable-back,.behavior-zoomies .wearable-bandana .wearable-back,.rhythm-rizo .wearable-bandana .wearable-back,
.walk-rizo .wearable-scarf .wearable-back,.behavior-zoomies .wearable-scarf .wearable-back,.rhythm-rizo .wearable-scarf .wearable-back,
.walk-rizo .wearable-cape .wearable-back,.behavior-zoomies .wearable-cape .wearable-back,.rhythm-rizo .wearable-cape .wearable-back{animation:gearTailLag .48s ease-in-out infinite alternate}
.walk-rizo .wearable-backpack .wearable-back,.behavior-zoomies .wearable-backpack .wearable-back,.rhythm-rizo .wearable-backpack .wearable-back{animation:gearTailLag .62s ease-in-out infinite alternate-reverse}
.walk-rizo .wearable-wings .wearable-back,.behavior-zoomies .wearable-wings .wearable-back,.rhythm-rizo .wearable-wings .wearable-back{animation:gearWingTrail .58s ease-in-out infinite alternate}
.walk-rizo .wearable-chain .wearable-front,.behavior-dance .wearable-chain .wearable-front,.rhythm-rizo .wearable-chain .wearable-front{animation:gearChainWeight .46s ease-in-out infinite alternate}
.behavior-dance .wearable-bow .wearable-front,.behavior-dance .wearable-flower .wearable-front,.behavior-dance .wearable-starclip .wearable-front,.rhythm-rizo .wearable-bow .wearable-front,.rhythm-rizo .wearable-flower .wearable-front,.rhythm-rizo .wearable-starclip .wearable-front{animation:gearClipBob .54s ease-in-out infinite alternate}
.rhythm-hit .wearable-beanie .wearable-body,.rhythm-hit .wearable-beanie .wearable-front,.rhythm-hit .wearable-cap .wearable-body,.rhythm-hit .wearable-cap .wearable-front,.rhythm-hit .wearable-bucket .wearable-body,.rhythm-hit .wearable-bucket .wearable-front,.rush-rizo:not(.rush-hurt) .wearable-beanie .wearable-body,.rush-rizo:not(.rush-hurt) .wearable-cap .wearable-body,.rush-rizo:not(.rush-hurt) .wearable-bucket .wearable-body{animation:gearHatSettle .22s ease-out}
body.reduce-motion .wearable>span{animation:none!important;transition:none!important}

.wearable-shades{--gear-scale-x:.90;--gear-scale-y:.85;--gear-shift-y:4%}
.stage-spark .wearable-shades{--gear-scale-x:.87;--gear-scale-y:.82;--gear-shift-y:4.5%}
.stage-kid .wearable-shades{--gear-scale-x:.88;--gear-scale-y:.83;--gear-shift-y:4.25%}
.stage-teen .wearable-shades{--gear-scale-x:.89;--gear-scale-y:.84;--gear-shift-y:4%}
.stage-beast .wearable-shades{--gear-scale-x:.90;--gear-scale-y:.85;--gear-shift-y:4%}

.wearable-headphones{--gear-scale-x:1.06;--gear-scale-y:.90;--gear-shift-y:4%}
.stage-spark .wearable-headphones,
.stage-kid .wearable-headphones,
.stage-teen .wearable-headphones,
.stage-beast .wearable-headphones,
.stage-legend .wearable-headphones{--gear-scale-x:1.06;--gear-scale-y:.90;--gear-shift-y:4%}

.wearable-bandana,.wearable-scarf{--gear-scale-x:.96;--gear-scale-y:.92;--gear-shift-y:-1%}
.stage-spark .wearable-bandana,.stage-spark .wearable-scarf{--gear-scale-x:.91;--gear-scale-y:.88;--gear-shift-y:-1.5%}
.stage-kid .wearable-bandana,.stage-kid .wearable-scarf{--gear-scale-x:.93;--gear-scale-y:.89;--gear-shift-y:-1.25%}
.stage-teen .wearable-bandana,.stage-teen .wearable-scarf{--gear-scale-x:.94;--gear-scale-y:.90;--gear-shift-y:-1%}
.stage-beast .wearable-bandana,.stage-beast .wearable-scarf{--gear-scale-x:.95;--gear-scale-y:.91;--gear-shift-y:-1%}

.stage-spark .wearable-chain{--gear-scale-x:.90;--gear-scale-y:.90;--gear-shift-y:-1%}
.stage-kid .wearable-chain{--gear-scale-x:.93;--gear-scale-y:.93;--gear-shift-y:-1%}
.stage-spark .wearable-crown,.stage-spark .wearable-horns,.stage-spark .wearable-bow{--gear-scale-x:.90;--gear-scale-y:.90}
.stage-spark .wearable-wings,.stage-spark .wearable-cape,.stage-spark .wearable-backpack{--gear-scale-x:.88;--gear-scale-y:.88}
.stage-spark .wearable-goggles,.stage-spark .wearable-visor,.stage-spark .wearable-mask{--gear-scale-x:.90;--gear-scale-y:.90;--gear-shift-y:-1%}
.stage-spark .wearable-beanie,.stage-spark .wearable-cap,.stage-spark .wearable-bucket{--gear-scale-x:.91;--gear-scale-y:.91}
.stage-spark .wearable-earmuffs{--gear-scale-x:.89;--gear-scale-y:.91}
.stage-spark .wearable-flower,.stage-spark .wearable-starclip,.stage-spark .wearable-antenna,.stage-spark .wearable-leafcrown{--gear-scale-x:.92;--gear-scale-y:.92}

@keyframes headphoneSettle{0%,100%{translate:var(--wear-x,0%) var(--wear-y,0%)}45%{translate:var(--wear-x,0%) calc(var(--wear-y,0%) + 1.5%)}}
.rhythm-hit .wearable-headphones,.rush-rizo:not(.rush-hurt) .wearable-headphones,.behavior-zoomies .wearable-headphones{animation:headphoneSettle .24s ease-out}
body.reduce-motion .wearable-headphones{animation:none!important}

.rizo-motion-shell{position:absolute;inset:0;display:block;transform-origin:50% 84%;pointer-events:none;z-index:4;animation:rizoLivingBreath 2.35s cubic-bezier(.45,.05,.55,.95) infinite;will-change:transform}
.rizo-motion-shell>img{position:absolute!important;inset:0;width:100%!important;height:100%!important;object-fit:contain;animation:none!important}
.rizo-motion-shell>.accessory-layer{position:absolute;inset:0}
.pet-actor>.rizo-motion-shell,.mini-pet>.rizo-motion-shell{z-index:4}
.pet-actor>.rizo-motion-shell .wearable-back,.mini-pet>.rizo-motion-shell .wearable-back{z-index:2}
.pet-actor>.rizo-motion-shell>img,.mini-pet>.rizo-motion-shell>img{z-index:4}
.pet-actor>.rizo-motion-shell .wearable-body,.mini-pet>.rizo-motion-shell .wearable-body{z-index:5}
.pet-actor>.rizo-motion-shell .wearable-front,.mini-pet>.rizo-motion-shell .wearable-front{z-index:8}
@keyframes rizoLivingBreath{
  0%,100%{transform:translateY(0) rotate(-.55deg) scale(1,1)}
  48%{transform:translateY(-6px) rotate(.45deg) scale(.992,1.016)}
  58%{transform:translateY(-6.5px) rotate(.5deg) scale(.99,1.019)}
}
.pet-actor.sleeping .rizo-motion-shell,.mini-pet.sleeping .rizo-motion-shell{animation:sleepLivingBreath 2.8s cubic-bezier(.45,.05,.55,.95) infinite}
@keyframes sleepLivingBreath{0%,100%{transform:translateY(1px) scale(1,.965)}50%{transform:translateY(5px) scale(1.018,.91)}}

.pet-actor.behavior-dance .rizo-motion-shell{animation:petDance .42s ease-in-out 7!important}
.pet-actor.behavior-stretch .rizo-motion-shell{animation:petStretch 1.1s ease-in-out 3!important}
.rhythm-rizo .rizo-motion-shell{animation:rhythmIdle .7s ease-in-out infinite}
.rhythm-rizo.rhythm-hit .rizo-motion-shell{animation:rhythmDance .24s ease-out}
[data-rizo-variant="retro"] .rizo-motion-shell{animation:retroIdle 2.1s steps(4,end) infinite}
[data-rizo-variant="glitch"] .rizo-motion-shell{animation:rizoLivingBreath 2.35s ease-in-out infinite,glitchIdle 3.9s steps(1,end) infinite}

.wearable-body,.wearable-front{filter:drop-shadow(0 2px 0 rgba(3,5,9,.34))}
.wearable-chain .wearable-front,.wearable-crown .wearable-front,.wearable-headphones .wearable-front{filter:drop-shadow(0 2px 0 rgba(3,5,9,.42)) drop-shadow(0 0 2px rgba(255,255,255,.12))}
.wearable-scarf .wearable-back,.wearable-bandana .wearable-back,.wearable-cape .wearable-back{transform-origin:39% 46%}

.brand-face{display:grid!important;place-items:center!important}
.brand-face img{display:block;width:72%;height:72%;object-fit:contain;filter:drop-shadow(0 2px 0 rgba(0,0,0,.45))}
.brand-sheet-icon img{display:block;width:28px;height:28px;object-fit:contain;margin:auto}
.ember-coin{font-family:inherit}

body.reduce-motion .rizo-motion-shell{animation:none!important;transform:none!important;will-change:auto}

.house-section{margin-top:13px;display:grid;gap:12px}
.house-room-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:5px;border:1px solid #252e39;border-radius:15px;background:#0e1319}
.house-room-chip{min-width:0;border:1px solid transparent;border-radius:11px;background:#171d26;color:#fff;padding:8px 3px;display:grid;justify-items:center;gap:2px}
.house-room-chip span{font-size:16px}.house-room-chip b{font-size:6.8px;white-space:nowrap}.house-room-chip small{font-size:6px;color:var(--muted)}
.house-room-chip.active{border-color:#16c8ff;background:#182832;box-shadow:0 0 18px rgba(22,200,255,.13)}
.house-room-chip.locked{background:#12151b;color:#6d7682;border-style:dashed}.house-room-chip.locked small{color:#d8b45a}
.house-room-head{display:grid;grid-template-columns:38px 1fr 38px;gap:9px;align-items:center;border:1px solid #2c3643;background:#11171e;border-radius:17px;padding:10px}
.house-room-head>button{width:38px;height:46px;border:1px solid #354150;border-radius:12px;background:#1d2630;color:#fff;font-size:24px;font-weight:900}.house-room-head>button:disabled{opacity:.22}
.house-room-head small{font-size:7px;color:var(--muted);letter-spacing:.08em}.house-room-head h2{font-size:15px;margin:3px 0}.house-room-head p{font-size:7px;line-height:1.45;color:var(--muted);margin:0}
.house-scene{position:relative;height:330px;border-radius:23px;border:1px solid #35404d;overflow:hidden;isolation:isolate;background:#101821;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 17px 40px rgba(0,0,0,.22)}
.house-sky,.house-floor,.house-room-light,.house-resident-link,.house-wall-mark,.house-window,.house-prop{position:absolute;pointer-events:none}
.house-sky{inset:0 0 34%;z-index:-5;background:linear-gradient(180deg,#263b4b,#182731)}
.house-floor{left:0;right:0;bottom:0;height:36%;z-index:-3;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 44px),linear-gradient(#27323a,#171d22)}
.house-floor:before{content:"";position:absolute;left:8%;right:8%;top:18%;bottom:10%;border-radius:50%;background:radial-gradient(ellipse,rgba(22,200,255,.14),transparent 66%);filter:blur(2px)}
.house-window{left:50%;top:25px;width:42%;height:105px;transform:translateX(-50%);border:8px solid #101820;border-radius:18px;background:linear-gradient(#5f8498,#1d3a4c);box-shadow:0 0 0 1px #435160,0 13px 30px rgba(0,0,0,.25);overflow:hidden}
.house-window:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 48%,rgba(8,15,21,.65) 49% 52%,transparent 53%),linear-gradient(transparent 55%,rgba(8,15,21,.62) 56% 60%,transparent 61%)}
.house-window i{position:absolute;inset:-20%;background:repeating-linear-gradient(104deg,transparent 0 13px,rgba(220,245,255,.28) 14px 16px,transparent 17px 30px);animation:houseRain 1.3s linear infinite}
.house-wall-mark{left:7%;top:21%;width:46px;height:26px;opacity:.08;background:url("./assets/rizo-full-mark.png") center/contain no-repeat;transform:rotate(-9deg)}
.house-prop-left{left:4%;bottom:18%;width:56px;height:52px;border-radius:8px 8px 4px 4px;background:linear-gradient(90deg,#1c242b 0 18%,#394653 19% 81%,#1c242b 82%);box-shadow:0 7px 0 rgba(0,0,0,.18)}
.house-prop-left:before{content:"";position:absolute;left:11px;right:11px;top:-16px;height:20px;border:4px solid #2d3944;border-bottom:0;border-radius:10px 10px 0 0}
.house-prop-right{right:5%;bottom:16%;width:48px;height:68px;border-radius:16px 16px 7px 7px;background:radial-gradient(circle at 50% 23%,#9eff75 0 8px,transparent 9px),linear-gradient(90deg,#28341f,#43512c);box-shadow:0 7px 0 rgba(0,0,0,.18)}
.house-room-light{left:50%;top:5px;width:130px;height:230px;transform:translateX(-50%);background:linear-gradient(180deg,rgba(255,244,190,.15),transparent 78%);clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);z-index:-1;animation:houseLight 4.4s ease-in-out infinite}
.house-resident-link{left:25%;right:25%;bottom:26%;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.12),transparent);z-index:1}
.house-resident{position:absolute;left:var(--resident-x);top:var(--resident-y);width:116px;height:150px;transform:translate(-50%,-58%);border:0;background:transparent;padding:0;z-index:6;display:block;touch-action:manipulation;filter:drop-shadow(0 8px 0 rgba(0,0,0,.12))}
.house-resident:focus-visible{outline:2px solid var(--resident-color);outline-offset:2px;border-radius:18px}.house-resident:active{scale:.95}
.house-resident-life{position:absolute;inset:0;display:grid;place-items:end center;pointer-events:none;animation:houseResidentIdle 3.4s ease-in-out infinite;animation-delay:var(--resident-delay)}
.house-resident-pet{position:absolute!important;left:50%!important;top:49%!important;bottom:auto!important;transform:translate(-50%,-50%) scale(.72)!important;pointer-events:none}
.house-resident-name{position:relative;z-index:20;margin-bottom:7px;max-width:104px;overflow:hidden;text-overflow:ellipsis;font-style:normal;font-size:6.5px;font-weight:1000;letter-spacing:.06em;color:#fff;border:1px solid var(--resident-color);background:rgba(7,10,14,.82);border-radius:999px;padding:4px 7px;white-space:nowrap}
.house-thought{position:absolute;left:50%;top:-5px;transform:translate(-50%,-7px);width:max-content;max-width:145px;background:#fffdf4;border:2px solid #081217;color:#081217;border-radius:10px;padding:7px 8px;font-size:6.3px;font-weight:1000;line-height:1.35;opacity:0;pointer-events:none;box-shadow:3px 3px 0 rgba(0,0,0,.16);animation:houseThought 12s ease-in-out infinite;animation-delay:calc(var(--resident-delay) - 1s)}
.house-thought:after{content:"";position:absolute;left:50%;bottom:-6px;width:9px;height:9px;background:#fffdf4;border-right:2px solid #081217;border-bottom:2px solid #081217;transform:translateX(-50%) rotate(45deg)}.resident-left .house-thought{left:58%}.resident-right .house-thought{left:42%}
.house-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:7px;text-align:center;color:var(--muted);padding:20px}.house-empty b{font-size:12px;color:#fff}.house-empty span{font-size:7.5px;line-height:1.5}
.house-room-loft .house-sky{background:linear-gradient(180deg,#34204c,#171126)}.house-room-loft .house-window{background:linear-gradient(135deg,#16c8ff,#ff68bd);box-shadow:0 0 34px rgba(255,104,189,.22)}.house-room-loft .house-floor{background:repeating-linear-gradient(90deg,rgba(22,200,255,.08) 0 1px,transparent 1px 38px),linear-gradient(#282039,#15121d)}
.house-room-rooftop .house-sky{background:radial-gradient(circle at 72% 20%,#dffbff 0 8px,transparent 9px),radial-gradient(circle at 18% 24%,#fff 0 1px,transparent 2px),linear-gradient(#11142e,#26204b)}.house-room-rooftop .house-window{left:50%;top:0;width:100%;height:66%;border:0;border-radius:0;background:linear-gradient(transparent,rgba(8,11,24,.3));box-shadow:none}.house-room-rooftop .house-floor{height:39%;background:repeating-linear-gradient(90deg,#262c37 0 34px,#20252e 34px 68px);border-top:4px solid #434c59}.house-room-rooftop .house-prop-right{background:linear-gradient(#3d4650,#232a31)}
.house-room-penthouse .house-sky{background:radial-gradient(circle at 50% 50%,rgba(255,213,74,.18),transparent 24%),linear-gradient(#2e2418,#17130f)}.house-room-penthouse .house-window{background:linear-gradient(#be8d45,#3a2616);border-color:#1a130b;box-shadow:0 0 32px rgba(255,213,74,.2)}.house-room-penthouse .house-floor{background:repeating-linear-gradient(90deg,rgba(255,213,74,.08) 0 1px,transparent 1px 38px),linear-gradient(#473824,#211a12)}.house-room-penthouse .house-prop-left,.house-room-penthouse .house-prop-right{filter:saturate(.8) sepia(.25)}
.house-hint{margin:0;text-align:center;color:var(--muted);font-size:7.3px;line-height:1.55;padding:0 10px}
.house-adoption-card,.house-expand-card{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid #313c49;background:linear-gradient(130deg,#151d25,#10151b);border-radius:17px;padding:12px}.house-adoption-card small,.house-expand-card small{font-size:6.5px;color:var(--muted);letter-spacing:.09em}.house-adoption-card h3,.house-expand-card h3{font-size:11px;margin:4px 0}.house-adoption-card p,.house-expand-card p{font-size:7px;line-height:1.45;color:var(--muted);margin:0}.house-adoption-card button,.house-expand-card button{min-height:43px;border:0;border-radius:12px;background:#168aa8;color:#fff;font-size:7.5px;font-weight:1000;padding:0 12px}.house-expand-card button{background:#65501c;color:#ffe07a}.house-adoption-card button.short-on-embers{background:#2a2024;color:#ff9cac}.house-expand-card.complete{grid-template-columns:1fr;border-color:#5e5129;background:linear-gradient(130deg,#211c11,#12100b)}
.house-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.house-stat-row span{display:grid;justify-items:center;gap:3px;border:1px solid #2d3743;background:#11161d;border-radius:12px;padding:9px 5px;color:var(--muted);font-size:6.5px}.house-stat-row b{color:#fff;font-size:12px}
.house-detail-pet{position:relative!important;left:auto!important;top:auto!important;bottom:auto!important;margin:auto;transform:scale(.85)!important}.house-detail-note{font-size:8px!important;color:var(--muted)!important;line-height:1.5!important}
.release-scene .release-line{font-size:10px;line-height:1.7;color:var(--muted);font-style:italic;margin:4px 0}.release-scene h2{margin-top:6px}
@keyframes houseRain{to{transform:translate(-28px,48px)}}
@keyframes houseLight{0%,100%{opacity:.55}50%{opacity:.9}}
@keyframes houseResidentIdle{0%,100%{margin-top:0}50%{margin-top:-7px}}
@keyframes houseThought{0%,68%,100%{opacity:0;transform:translate(-50%,-7px)}73%,86%{opacity:1;transform:translate(-50%,0)}91%{opacity:0;transform:translate(-50%,4px)}}
body.reduce-motion .house-window i,body.reduce-motion .house-room-light,body.reduce-motion .house-resident-life,body.reduce-motion .house-thought{animation:none!important}.house-thought{opacity:0}
@media(max-width:370px){.house-scene{height:300px}.house-resident{width:96px;height:132px}.house-resident-pet{transform:translate(-50%,-50%) scale(.62)!important}.house-room-chip b{font-size:5.9px}.house-adoption-card,.house-expand-card{grid-template-columns:1fr}.house-adoption-card button,.house-expand-card button{width:100%}}

.game-card button.game-blocked{background:#2a2024!important;border-color:#56313a!important;color:#ff9cac!important;box-shadow:none!important}

.bottom-nav button{position:relative}
.bottom-nav button.feature-locked{color:#717b87}
.bottom-nav button.feature-locked:after{content:attr(data-lock-label);position:absolute;right:4px;top:4px;border:1px solid #65572c;background:#241f13;color:#ffe07a;border-radius:999px;padding:2px 4px;font-size:5px;font-weight:1000;letter-spacing:.06em}
.tutorial-focus{position:relative;z-index:16;outline:2px solid #16c8ff!important;outline-offset:3px;animation:tutorialFocus 1.4s ease-in-out infinite}
@keyframes tutorialFocus{50%{filter:drop-shadow(0 0 12px rgba(22,200,255,.72))}}

.keeper-guide-modal{max-width:440px}
.keeper-guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}
.keeper-guide-grid article{display:grid;grid-template-columns:28px 1fr;gap:2px 7px;align-items:center;text-align:left;border:1px solid #313c49;background:#121820;border-radius:14px;padding:10px}
.keeper-guide-grid article>span{grid-row:1/3;font-size:23px}.keeper-guide-grid b{font-size:9px}.keeper-guide-grid p{margin:0!important;font-size:7px!important;line-height:1.4!important;color:var(--muted)!important}
.keeper-warning{display:grid;gap:4px;border:1px solid #61323a;background:#24161a;border-radius:13px;padding:11px;text-align:left}.keeper-warning b{color:#ff8b98;font-size:8px}.keeper-warning span{color:#d4b4ba;font-size:7.5px;line-height:1.45}

body.feed-mode .sheet-backdrop{background:rgba(0,0,0,.18);backdrop-filter:none;pointer-events:none}
body.feed-mode .bottom-sheet.feed-sheet{max-height:245px;background:rgba(13,18,25,.96);border-color:#4d3b2d;box-shadow:0 -18px 55px rgba(0,0,0,.56)}
body.feed-mode .bottom-sheet.feed-sheet header{margin-bottom:7px}
body.feed-mode .bottom-sheet.feed-sheet .sheet-body{display:block}
.feed-instruction{display:flex;align-items:center;gap:9px;border:1px solid #624733;background:#281c15;border-radius:12px;padding:8px 10px;margin-bottom:8px}.feed-instruction b{font-size:7px;color:#ffba7f;white-space:nowrap}.feed-instruction span{font-size:6.5px;color:#cdbbae;line-height:1.35}
.feed-drag-tray{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:2px 2px 8px;scroll-snap-type:x proximity}
.feed-drag-card{flex:0 0 112px;min-height:118px;scroll-snap-align:start;border:1px solid #3b4652;border-radius:15px;background:linear-gradient(150deg,#202832,#131920);color:#fff;padding:9px;display:grid;justify-items:center;align-content:start;gap:5px;text-align:center;touch-action:none;user-select:none;-webkit-user-select:none;box-shadow:0 5px 0 #080a0e}
.feed-drag-card:active,.feed-drag-card.drag-source{transform:translateY(3px);box-shadow:0 2px 0 #080a0e;border-color:#ffb16f}.feed-drag-card:disabled{opacity:.35;filter:grayscale(1)}.feed-drag-card.short-on-embers em{color:#ff8b98}
.feed-drag-icon{width:48px;height:48px;border-radius:15px;background:#35271f;display:grid;place-items:center;font-size:28px}.feed-drag-icon img{max-width:38px;max-height:38px;pointer-events:none}
.feed-drag-card b{display:block;font-size:7.5px;line-height:1.2}.feed-drag-card small{display:block;font-size:5.8px;line-height:1.3;color:var(--muted);max-height:24px;overflow:hidden}.feed-drag-card em{font-style:normal;font-size:7px;color:#ffcf9f;border:1px solid #554033;border-radius:999px;padding:3px 7px}
.feed-drag-ghost{position:fixed;z-index:500;width:68px;height:68px;transform:translate(-50%,-50%) rotate(-7deg);border:2px solid #fff;border-radius:20px;background:#3a291f;display:grid;place-items:center;font-size:38px;pointer-events:none;filter:drop-shadow(0 12px 16px rgba(0,0,0,.4));animation:feedGhost .65s ease-in-out infinite alternate}.feed-drag-ghost img{max-width:54px;max-height:54px}
@keyframes feedGhost{to{transform:translate(-50%,-56%) rotate(7deg) scale(1.05)}}
.pet-tap-target.feed-target-ready:after{content:"DROP FOOD HERE";position:absolute;left:50%;top:52%;transform:translate(-50%,-50%) scale(.9);z-index:35;border:2px dashed rgba(255,255,255,.78);background:rgba(20,12,8,.72);color:#fff;border-radius:999px;padding:10px 14px;font-size:8px;font-weight:1000;letter-spacing:.08em;opacity:.38;pointer-events:none;transition:.16s}
.pet-tap-target.feed-drop-over:after{opacity:1;transform:translate(-50%,-50%) scale(1.08);border-color:#ffba7f;background:#4a2d1d;box-shadow:0 0 30px rgba(255,176,111,.45)}

.house-lock-screen{margin-top:9px;display:grid;gap:12px;text-align:center;border:1px solid #2d3743;background:radial-gradient(circle at 50% 13%,rgba(22,200,255,.13),transparent 34%),linear-gradient(#121922,#0b0f14);border-radius:25px;padding:14px;overflow:hidden;box-shadow:var(--shadow)}
.house-lock-kicker{justify-self:center;color:#16c8ff;font-size:7px;font-weight:1000;letter-spacing:.15em;border:1px solid #24495a;background:#11232c;border-radius:999px;padding:6px 9px}
.house-locked-scene{position:relative;height:285px;border:1px solid #34404d;border-radius:21px;overflow:hidden;background:linear-gradient(#203746 0 63%,#192027 63%);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.house-lock-rain{position:absolute;inset:-20%;background:repeating-linear-gradient(103deg,transparent 0 17px,rgba(215,244,255,.18) 18px 20px,transparent 21px 39px);animation:houseRain 1.3s linear infinite}
.house-lock-door{position:absolute;left:50%;bottom:0;width:145px;height:224px;transform:translateX(-50%);border:9px solid #0d151c;border-bottom:0;border-radius:16px 16px 0 0;background:linear-gradient(90deg,#1b252d,#34444f 48%,#172129 51%);box-shadow:0 0 0 1px #4b5964,0 0 42px rgba(22,200,255,.13)}
.house-lock-door i{position:absolute;right:15px;top:50%;width:10px;height:10px;border-radius:50%;background:#ffe07a;box-shadow:0 0 12px #ffe07a}.house-lock-door b{position:absolute;left:50%;top:54px;transform:translateX(-50%);font-size:42px;opacity:.16}.house-lock-door span{position:absolute;left:50%;top:112px;transform:translateX(-50%);font-size:8px;letter-spacing:.18em;color:#9ca9b3}
.house-lock-shadow{position:absolute;bottom:25px;width:68px;height:92px;border-radius:55% 55% 46% 46%;background:#0a1117;filter:blur(3px);opacity:.45}.house-lock-shadow:before{content:"";position:absolute;left:50%;top:-24px;width:28px;height:46px;background:#0a1117;transform:translateX(-50%) rotate(17deg);clip-path:polygon(50% 0,100% 100%,0 100%)}.shadow-one{left:9%}.shadow-two{right:8%;transform:scale(.82)}
.house-lock-screen h1{font-size:25px;line-height:.96;margin:2px 0}.house-lock-screen>p{margin:0 auto;max-width:330px;color:var(--muted);font-size:8px;line-height:1.55}
.house-unlock-checklist{display:grid;gap:7px;text-align:left}.house-unlock-checklist article{display:grid;grid-template-columns:32px 1fr;gap:9px;align-items:center;border:1px solid #303a46;background:#11171e;border-radius:14px;padding:10px}.house-unlock-checklist article>span{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:#252d37;color:#9aa5af;font-size:8px;font-weight:1000}.house-unlock-checklist article.done{border-color:#31553d;background:#132019}.house-unlock-checklist article.done>span{background:#9eff75;color:#102014}.house-unlock-checklist b{font-size:8px}.house-unlock-checklist small{display:block;margin-top:3px;font-size:6.5px;color:var(--muted)}
.house-lock-progress{height:9px;border:1px solid #35404d;background:#080b0f;border-radius:999px;overflow:hidden}.house-lock-progress i{display:block;height:100%;background:linear-gradient(90deg,#16c8ff,#9eff75);box-shadow:0 0 12px #16c8ff}
.house-lock-screen>button{min-height:45px;border:0;border-radius:13px;background:#1c6f86;color:#fff;font-size:8px;font-weight:1000}

.house-section{margin-top:9px;display:grid;gap:11px}
.house-den-shell{border:1px solid #303b48;background:#0d1218;border-radius:26px;padding:7px;box-shadow:var(--shadow)}
.house-scene{position:relative;height:455px;border-radius:21px;border:1px solid #3a4654;overflow:hidden;isolation:isolate;background:#101821;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.house-sky,.house-floor,.house-room-light,.house-wall-mark,.house-window,.house-prop,.house-city,.house-ambient{position:absolute;pointer-events:none}
.house-sky{inset:0 0 32%;z-index:-5;background:linear-gradient(180deg,#2b475a,#162833)}
.house-floor{left:0;right:0;bottom:0;height:38%;z-index:-3;background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 52px),linear-gradient(#2d3942,#171d22)}
.house-floor:before{content:"";position:absolute;left:8%;right:8%;top:13%;bottom:8%;border-radius:50%;background:radial-gradient(ellipse,rgba(22,200,255,.19),transparent 66%);filter:blur(2px)}
.house-window{left:50%;top:61px;width:47%;height:132px;transform:translateX(-50%);border:9px solid #101820;border-radius:19px;background:linear-gradient(#6a93a8,#214256);box-shadow:0 0 0 1px #4b5a68,0 15px 34px rgba(0,0,0,.28);overflow:hidden}.house-window:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 48%,rgba(8,15,21,.65) 49% 52%,transparent 53%),linear-gradient(transparent 55%,rgba(8,15,21,.62) 56% 60%,transparent 61%)}.house-window i{position:absolute;inset:-20%;background:repeating-linear-gradient(104deg,transparent 0 13px,rgba(220,245,255,.28) 14px 16px,transparent 17px 30px);animation:houseRain 1.3s linear infinite}
.house-city{left:24%;right:24%;top:138px;height:50px;z-index:-2;background:linear-gradient(90deg,#13212b 0 10%,transparent 10% 14%,#101b24 14% 24%,transparent 24% 29%,#162832 29% 42%,transparent 42% 47%,#101b24 47% 58%,transparent 58% 65%,#14232d 65% 80%,transparent 80% 84%,#101a22 84%);opacity:.65}
.house-wall-mark{left:5%;top:26%;width:62px;height:36px;opacity:.07;background:url("./assets/rizo-full-mark.png") center/contain no-repeat;transform:rotate(-9deg)}
.house-prop-left{left:4%;bottom:16%;width:72px;height:61px;border-radius:9px 9px 4px 4px;background:linear-gradient(90deg,#1c242b 0 18%,#43525f 19% 81%,#1c242b 82%);box-shadow:0 8px 0 rgba(0,0,0,.18)}.house-prop-left:before{content:"";position:absolute;left:13px;right:13px;top:-19px;height:23px;border:4px solid #34434f;border-bottom:0;border-radius:11px 11px 0 0}
.house-prop-right{right:5%;bottom:15%;width:60px;height:82px;border-radius:19px 19px 8px 8px;background:radial-gradient(circle at 50% 23%,#9eff75 0 10px,transparent 11px),linear-gradient(90deg,#28341f,#4d6032);box-shadow:0 8px 0 rgba(0,0,0,.18)}
.house-room-light{left:50%;top:8px;width:180px;height:320px;transform:translateX(-50%);background:linear-gradient(180deg,rgba(255,244,190,.17),transparent 78%);clip-path:polygon(43% 0,57% 0,100% 100%,0 100%);z-index:-1;animation:houseLight 4.4s ease-in-out infinite}.house-ambient{inset:0;background:radial-gradient(circle at 14% 42%,rgba(255,255,255,.28) 0 1px,transparent 2px),radial-gradient(circle at 83% 37%,rgba(255,255,255,.2) 0 1px,transparent 2px);background-size:83px 79px;opacity:.4;animation:houseAmbient 8s linear infinite}
.house-scene-top{position:absolute;left:11px;right:11px;top:10px;z-index:30;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;pointer-events:none}.house-scene-top>div{display:grid;gap:3px}.house-scene-top small{font-size:6px;color:#b6c5cf;letter-spacing:.13em}.house-scene-top b{font-size:13px}.house-scene-top>span{display:flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.19);background:rgba(6,10,14,.65);border-radius:999px;padding:6px 8px;font-size:6px;font-weight:1000;letter-spacing:.08em}.house-scene-top>span i{width:7px;height:7px;border-radius:50%;background:#9eff75;box-shadow:0 0 10px #9eff75}
.house-scene-arrow{position:absolute;top:48%;z-index:40;width:38px;height:54px;transform:translateY(-50%);border:1px solid rgba(255,255,255,.18);background:rgba(9,14,19,.72);color:#fff;border-radius:13px;font-size:25px;font-weight:1000;backdrop-filter:blur(6px)}.house-scene-arrow.previous{left:8px}.house-scene-arrow.next{right:8px}.house-scene-arrow:disabled{opacity:.18}
.house-scene-bottom{position:absolute;left:10px;right:10px;bottom:9px;z-index:32;display:flex;justify-content:space-between;align-items:end;gap:12px;border:1px solid rgba(255,255,255,.16);background:rgba(7,10,14,.74);border-radius:13px;padding:9px 10px;backdrop-filter:blur(7px);pointer-events:none}.house-scene-bottom>div{display:grid;gap:3px;min-width:0}.house-scene-bottom strong{font-size:8px}.house-scene-bottom span{font-size:6px;line-height:1.35;color:#aab6bf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.house-scene-bottom>b{font-size:7px;color:#16c8ff;white-space:nowrap}
.house-resident{position:absolute;left:var(--resident-x);top:var(--resident-y);width:32%;max-width:138px;height:192px;transform:translate(-50%,-55%);border:0;background:transparent;padding:0;z-index:12;display:block;touch-action:manipulation;filter:drop-shadow(0 9px 0 rgba(0,0,0,.13))}.house-resident:focus-visible{outline:2px solid var(--resident-color);outline-offset:2px;border-radius:20px}.house-resident:active{scale:.96}
.house-resident-life{position:absolute;inset:0;display:grid;place-items:end center;pointer-events:none;animation:houseResidentIdle 3.4s ease-in-out infinite;animation-delay:var(--resident-delay)}
.house-resident-pet{position:absolute!important;left:50%!important;top:49%!important;bottom:auto!important;transform:translate(-50%,-50%)!important;pointer-events:none}
.house-resident-name{position:relative;z-index:20;margin-bottom:8px;max-width:110px;overflow:hidden;text-overflow:ellipsis;font-style:normal;font-size:6.5px;font-weight:1000;letter-spacing:.06em;color:#fff;border:1px solid var(--resident-color);background:rgba(7,10,14,.84);border-radius:999px;padding:5px 8px;white-space:nowrap}
.house-thought{position:absolute;left:50%;top:-8px;transform:translate(-50%,-7px);width:max-content;max-width:140px;background:#fffdf4;border:2px solid #081217;color:#081217;border-radius:11px;padding:7px 8px;font-size:6.1px;font-weight:1000;line-height:1.35;opacity:0;pointer-events:none;box-shadow:3px 3px 0 rgba(0,0,0,.16);animation:houseThought 13s ease-in-out infinite;animation-delay:calc(var(--resident-delay) - 1s)}
.house-thought:after{content:"";position:absolute;left:50%;bottom:-6px;width:9px;height:9px;background:#fffdf4;border-right:2px solid #081217;border-bottom:2px solid #081217;transform:translateX(-50%) rotate(45deg)}.resident-left .house-thought{left:63%}.resident-right .house-thought{left:37%}
.house-empty{position:absolute;inset:58px 42px 54px;z-index:8;display:grid;place-content:center;justify-items:center;gap:7px;text-align:center;color:var(--muted);padding:20px}.house-empty .empty-rug{width:170px;height:66px;border:1px dashed rgba(255,255,255,.18);border-radius:50%;background:radial-gradient(ellipse,rgba(22,200,255,.14),transparent 68%)}.house-empty b{font-size:11px;color:#fff}.house-empty span{max-width:230px;font-size:7px;line-height:1.5}
.house-room-rail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:6px;border:1px solid #252e39;border-radius:16px;background:#0e1319}.house-room-chip{min-width:0;min-height:59px;border:1px solid transparent;border-radius:11px;background:#171d26;color:#fff;padding:7px 3px;display:grid;justify-items:center;align-content:center;gap:2px}.house-room-chip span{font-size:15px}.house-room-chip b{font-size:6.4px;white-space:nowrap}.house-room-chip small{font-size:5.5px;color:var(--muted);white-space:nowrap}.house-room-chip.active{border-color:#16c8ff;background:#182832;box-shadow:0 0 18px rgba(22,200,255,.13)}.house-room-chip.locked{background:#12151b;color:#6d7682;border-style:dashed}.house-room-chip.locked small{color:#d8b45a}
.house-room-loft .house-sky{background:linear-gradient(180deg,#41245a,#181126)}.house-room-loft .house-window{background:linear-gradient(135deg,#16c8ff,#ff68bd);box-shadow:0 0 38px rgba(255,104,189,.26)}.house-room-loft .house-floor{background:repeating-linear-gradient(90deg,rgba(22,200,255,.09) 0 1px,transparent 1px 42px),linear-gradient(#302441,#17131f)}.house-room-loft .house-prop-right{background:radial-gradient(circle at 50% 22%,#ff68bd 0 10px,transparent 11px),linear-gradient(90deg,#2b1e38,#503264)}
.house-room-rooftop .house-sky{background:radial-gradient(circle at 76% 18%,#e8fbff 0 12px,transparent 13px),radial-gradient(circle at 18% 24%,#fff 0 1px,transparent 2px),linear-gradient(#11142e,#29204d)}.house-room-rooftop .house-window{left:50%;top:44px;width:100%;height:61%;border:0;border-radius:0;background:linear-gradient(transparent,rgba(8,11,24,.25));box-shadow:none}.house-room-rooftop .house-city{left:0;right:0;top:170px;height:110px;opacity:.9}.house-room-rooftop .house-floor{height:39%;background:repeating-linear-gradient(90deg,#2c333e 0 38px,#222831 38px 76px);border-top:4px solid #4a5562}.house-room-rooftop .house-prop-right{background:linear-gradient(#4b5661,#252d34)}
.house-room-penthouse .house-sky{background:radial-gradient(circle at 50% 50%,rgba(255,213,74,.2),transparent 26%),linear-gradient(#3a2c1b,#17130f)}.house-room-penthouse .house-window{background:linear-gradient(#d4a257,#442b16);border-color:#1a130b;box-shadow:0 0 36px rgba(255,213,74,.24)}.house-room-penthouse .house-floor{background:repeating-linear-gradient(90deg,rgba(255,213,74,.09) 0 1px,transparent 1px 44px),linear-gradient(#51402a,#241b12)}.house-room-penthouse .house-prop-left,.house-room-penthouse .house-prop-right{filter:saturate(.8) sepia(.25)}.house-room-penthouse .house-scene-top>span i{background:#ffe07a;box-shadow:0 0 10px #ffe07a}
.house-hint{margin:0;text-align:center;color:var(--muted);font-size:7px;line-height:1.55;padding:0 12px}.house-property-actions{display:grid;gap:8px}.house-adoption-card,.house-expand-card{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid #313c49;background:linear-gradient(130deg,#151d25,#10151b);border-radius:17px;padding:12px}.house-adoption-card small,.house-expand-card small{font-size:6.4px;color:var(--muted);letter-spacing:.09em}.house-adoption-card h3,.house-expand-card h3{font-size:10px;margin:4px 0}.house-adoption-card p,.house-expand-card p{font-size:6.7px;line-height:1.45;color:var(--muted);margin:0}.house-adoption-card button,.house-expand-card button{min-height:43px;border:0;border-radius:12px;background:#168aa8;color:#fff;font-size:7.3px;font-weight:1000;padding:0 12px}.house-expand-card button{background:#65501c;color:#ffe07a}.house-adoption-card button.short-on-embers{background:#2a2024;color:#ff9cac}.house-expand-card.complete{grid-template-columns:1fr;border-color:#5e5129;background:linear-gradient(130deg,#211c11,#12100b)}
.house-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.house-stat-row span{display:grid;justify-items:center;gap:3px;border:1px solid #2d3743;background:#11161d;border-radius:12px;padding:9px 5px;color:var(--muted);font-size:6.2px}.house-stat-row b{color:#fff;font-size:11px}
.house-network-locked{border-style:dashed}.house-network-locked .house-lock-progress{margin:15px 0 8px}
.house-unlock-modal .house-unlock-door{position:relative;margin:10px auto 15px;width:100px;height:125px;border:7px solid #101820;border-bottom:0;border-radius:13px 13px 0 0;background:linear-gradient(90deg,#1e2932,#40525f 48%,#1b252d 51%);box-shadow:0 0 28px rgba(22,200,255,.2)}.house-unlock-modal .house-unlock-door i{position:absolute;right:12px;top:55%;width:8px;height:8px;border-radius:50%;background:#ffe07a;box-shadow:0 0 12px #ffe07a}.house-unlock-modal .house-unlock-door b{position:absolute;left:50%;top:35px;transform:translateX(-50%);font-size:30px;opacity:.22}
@keyframes houseAmbient{to{background-position:83px 79px}}
body.reduce-motion .house-lock-rain,body.reduce-motion .house-ambient,body.reduce-motion .feed-drag-ghost,body.reduce-motion .tutorial-focus{animation:none!important}
@media(max-width:370px){.keeper-guide-grid{grid-template-columns:1fr}.house-scene{height:405px}.house-resident{height:170px}.house-room-chip b{font-size:5.8px}.house-room-chip small{font-size:4.9px}.house-adoption-card,.house-expand-card{grid-template-columns:1fr}.house-adoption-card button,.house-expand-card button{width:100%}.feed-drag-card{flex-basis:104px}.house-scene-bottom span{max-width:190px}}

.house-lock-screen{color:#f5f1e8}
.house-lock-screen h1{color:#f7f2e8;text-shadow:0 2px 18px rgba(22,200,255,.12)}
.house-lock-screen>p{color:#aeb9c4}
.house-unlock-checklist article{background:rgba(18,27,36,.9);border-color:#3a4653}
.house-unlock-checklist article b{color:#f3eee5}
.house-unlock-checklist article small{color:#aab5bf}
.house-locked-scene{background:linear-gradient(#294858 0 63%,#1f2931 63%)}
.house-lock-door{filter:brightness(1.15)}
.house-lock-screen>button{background:linear-gradient(180deg,#1785a3,#11657c);box-shadow:0 5px 0 #07161c;color:#fff}

.balloon-body{position:absolute;left:4px;top:0;width:34px;height:43px;border:4px solid #080b0f;border-radius:52% 48% 48% 52%;background:var(--balloon-color);box-shadow:inset 7px 6px 0 rgba(255,255,255,.22);transform-origin:50% 100%}.balloon-shine{position:absolute;left:7px;top:7px;width:8px;height:12px;border-radius:50%;background:rgba(255,255,255,.34);rotate:24deg}.balloon-face{position:absolute;left:50%;top:55%;width:24px;height:16px;translate:-50% -50%;color:#080b0f}.balloon-face u{position:absolute;top:0;width:4px;height:5px;border-radius:50%;background:#080b0f}.balloon-face u:first-child{left:3px}.balloon-face u:nth-child(2){right:3px}.balloon-face em{position:absolute;left:50%;bottom:0;translate:-50% 0;font:1000 5px monospace;letter-spacing:-1px;white-space:nowrap}.balloon-knot{position:absolute;left:50%;top:39px;border:7px solid transparent;border-top-color:#080b0f;translate:-50% 0}.balloon-string{position:absolute;left:50%;top:47px;width:2px;height:13px;background:#171a1b;transform-origin:top;animation:defenseString .5s ease-in-out infinite alternate}.balloon-health{position:absolute;left:4px;right:4px;bottom:0;height:4px;border-radius:99px;background:#15191c;overflow:hidden;border:1px solid #080b0f}.balloon-health i{display:block;width:var(--enemy-health);height:100%;background:#9eff75;transition:width .08s linear}.balloon-fleet{scale:.82}.balloon-fleet .balloon-body{border-radius:58% 42% 56% 44%;rotate:4deg}.balloon-shell{scale:1.08}.balloon-shell .balloon-body{background:repeating-linear-gradient(90deg,var(--balloon-color) 0 7px,#5d4d7a 7px 13px);border-width:6px}.balloon-split .balloon-body::before{content:"";position:absolute;right:-7px;top:10px;width:14px;height:17px;border:3px solid #080b0f;border-radius:50%;background:#ffb5e1}.balloon-boss{scale:1.65;z-index:20}.balloon-boss .balloon-body{background:radial-gradient(circle at 40% 25%,#53446b,transparent 23%),#171421}.balloon-boss .balloon-body::before{content:"♛";position:absolute;left:50%;top:-18px;translate:-50% 0;color:#ffd45a;font-size:20px;text-shadow:0 3px #080b0f}
.shot-ember{background:#ff5b37}.shot-toxic{background:#8dff45}.shot-void{background:#b27aff}.shot-moss{background:#48c46f}.shot-bubble{background:#ff68bd;width:15px;height:15px}.shot-frost{background:#d9f9ff}.shot-glitch{background:conic-gradient(#16c8ff,#ff68bd,#9eff75,#16c8ff);border-radius:2px}.shot-stone{background:#4c5574;width:14px;height:14px}.shot-aurora{background:#7df4ff}.shot-gold{background:#ffd45a}.shot-diamond{background:#e5fbff;rotate:45deg;border-radius:2px}.shot-shadow{background:#171421;box-shadow:0 0 10px #a46cff}.shot-retro{background:#16c8ff;border-radius:0;width:7px;height:7px}
.impact-pop{border-color:#ff7f90;box-shadow:0 0 16px #ff5b68}.impact-boss{width:30px;height:30px;border-color:#ffd45a;box-shadow:0 0 24px #ffd45a}.impact-gate{border-color:#ff5b68;box-shadow:0 0 20px #ff5b68}

.wearable-shades{--gear-shift-x:-1.8%}
.wearable-eyepatch{--gear-shift-x:-1.7%;--gear-shift-y:1.4%}
.wearable-earmuffs{--gear-scale-x:1.05;--gear-scale-y:1.05}
.stage-spark .wearable-earmuffs{--gear-scale-x:.95;--gear-scale-y:.98}
.wearable-headphones,
.stage-spark .wearable-headphones,
.stage-kid .wearable-headphones,
.stage-teen .wearable-headphones,
.stage-beast .wearable-headphones,
.stage-legend .wearable-headphones{--gear-scale-x:1.42;--gear-scale-y:.92;--gear-shift-y:5%}

.shop-preview-pet .wearable-shades{--gear-scale-x:1.04;--gear-scale-y:.98;--gear-shift-x:-2.6%;--gear-shift-y:3.2%}
.shop-preview-pet .wearable-eyepatch{--gear-scale-x:1.10;--gear-scale-y:1.10;--gear-shift-x:-2.8%;--gear-shift-y:2.4%}
.shop-preview-pet .wearable-chain{--gear-scale-x:1.18;--gear-scale-y:1.18;--gear-shift-y:-1.5%}

.rhythm-world{background:radial-gradient(circle at 50% -5%,rgba(255,104,189,.32),transparent 35%),linear-gradient(180deg,#251638 0 58%,#101421 58% 100%)}
.rhythm-world::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,200,255,.06),transparent 24%,transparent 76%,rgba(255,104,189,.07));pointer-events:none;z-index:1}
.rhythm-lights{opacity:.75;animation-duration:1.35s}
.rhythm-stage{height:26%!important;opacity:.72}
.rhythm-rizo{left:auto!important;right:-28px!important;bottom:42px!important;z-index:3!important;opacity:.28;filter:saturate(.8);animation:rhythmIdle .76s ease-in-out infinite}
.rhythm-rizo.rhythm-hit{opacity:.52;filter:saturate(1.15) brightness(1.1)}
.rhythm-board{position:absolute;left:10px;right:10px;top:57px;bottom:59px;z-index:15;overflow:hidden;border:2px solid #304459;border-radius:17px;background:linear-gradient(180deg,rgba(4,8,16,.89),rgba(11,9,24,.94));box-shadow:inset 0 0 35px rgba(22,200,255,.08),0 10px 30px rgba(0,0,0,.32)}
.rhythm-board::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 27px,rgba(255,255,255,.035) 28px 29px);pointer-events:none}
.rhythm-lane-columns{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr)}
.rhythm-column{position:relative;border-right:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,rgba(255,255,255,.015),rgba(255,255,255,.045));opacity:.85}
.rhythm-column:last-child{border-right:0}
.rhythm-column::after{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;translate:-50% 0;background:linear-gradient(transparent,currentColor 38%,currentColor 80%,transparent);opacity:.13}
.rhythm-column.lane-0{color:#ff68bd}.rhythm-column.lane-1{color:#16c8ff}.rhythm-column.lane-2{color:#9eff75}.rhythm-column.lane-3{color:#ffd45a}
.rhythm-hit-line{position:absolute;left:0;right:0;bottom:51px;height:5px;background:#f8fcff;box-shadow:0 0 0 7px rgba(22,200,255,.11),0 0 20px #16c8ff;z-index:5}
.rhythm-hit-line::after{content:"HIT";position:absolute;right:6px;top:-15px;color:#dffaff;font:1000 6px ui-monospace,monospace;letter-spacing:.13em}
#rhythmNotes{position:absolute;inset:0;z-index:8;pointer-events:none}
.rhythm-note{position:absolute!important;top:-48px;left:12.5%!important;width:clamp(35px,12vw,52px)!important;height:clamp(35px,12vw,52px)!important;translate:-50% 0;border-radius:13px!important;display:grid;place-items:center;border:3px solid #fff!important;color:#fff!important;font:1000 clamp(17px,5.4vw,24px) ui-monospace,monospace!important;box-shadow:0 0 18px currentColor,0 5px 0 rgba(0,0,0,.34)!important;will-change:top,opacity,scale;transform:none!important}
.rhythm-note.lane-0{left:12.5%!important;background:linear-gradient(145deg,#ff77c6,#a82a77)!important;color:#ffd6ec!important}
.rhythm-note.lane-1{left:37.5%!important;background:linear-gradient(145deg,#3de2ff,#087eaa)!important;color:#ddfaff!important}
.rhythm-note.lane-2{left:62.5%!important;background:linear-gradient(145deg,#baff91,#3d8a31)!important;color:#efffe6!important}
.rhythm-note.lane-3{left:87.5%!important;background:linear-gradient(145deg,#ffe37a,#b27608)!important;color:#fff9d9!important}
.rhythm-note.hit{animation:v31BeatHit .16s ease-out forwards!important}.rhythm-note.missed{animation:v31BeatMiss .2s ease-out forwards!important}
.rhythm-note.perfect{filter:brightness(1.4)}
@keyframes v31BeatHit{to{opacity:0;scale:1.8;filter:brightness(2.4)}}
@keyframes v31BeatMiss{to{opacity:0;translate:-50% 18px;rotate:18deg;filter:grayscale(1)}}
.rhythm-pads{position:absolute;left:10px;right:10px;bottom:7px;height:44px;z-index:31;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.rhythm-pad{min-width:0;border:2px solid #081018;border-radius:12px;color:#fff;font:1000 19px ui-monospace,monospace;box-shadow:0 5px 0 rgba(0,0,0,.42);touch-action:manipulation;transition:translate .08s,filter .08s,box-shadow .08s}
.rhythm-pad.lane-0{background:linear-gradient(#f46bb7,#8f245f)}.rhythm-pad.lane-1{background:linear-gradient(#25d2f3,#08799a)}.rhythm-pad.lane-2{background:linear-gradient(#a6ee77,#3c7d31)}.rhythm-pad.lane-3{background:linear-gradient(#f8d45d,#a56c0a)}
.rhythm-pad.pressed{translate:0 4px;box-shadow:0 1px 0 rgba(0,0,0,.42);filter:brightness(1.28)}
.rhythm-pad.perfect{translate:0 4px;box-shadow:0 0 18px #fff;filter:brightness(1.7)}
.rhythm-pad.wrong{animation:rhythmPadWrong .14s steps(2)}
@keyframes rhythmPadWrong{50%{translate:4px 0;filter:grayscale(1) brightness(.72)}}
.rhythm-status{position:absolute;left:11px;right:11px;top:8px;z-index:24;display:flex;justify-content:space-between;gap:8px;pointer-events:none}
.rhythm-status span{border:1px solid #344756;border-radius:999px;background:rgba(5,10,16,.82);padding:5px 8px;color:#8fa2b3;font:1000 6px ui-monospace,monospace;letter-spacing:.07em}
.rhythm-status b{margin-left:4px;color:#fff;font-size:8px}
.rhythm-callout{bottom:54px!important;z-index:26!important;min-height:17px;color:#fff!important;text-shadow:0 2px 0 #000,0 0 10px rgba(22,200,255,.7)}
.rhythm-track-intro{top:39px!important;min-width:210px!important;z-index:35!important;padding:7px 13px!important}
.rhythm-track-intro small{color:#8ceeff!important}.rhythm-track-intro span{color:#d0b9df!important}
.rhythm-result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0}
.rhythm-result-grid span{display:grid;gap:4px;border:1px solid #344756;border-radius:11px;background:#0b1118;padding:8px 4px;color:#8293a3;font-size:6px;text-align:center}
.rhythm-result-grid b{color:#fff;font-size:11px}
body.reduce-motion .rhythm-lights,body.reduce-motion .rhythm-rizo{animation:none!important}
body.reduce-motion .rhythm-note{transition:none!important}
@media(max-width:350px){.rhythm-board{left:6px;right:6px;top:53px}.rhythm-pads{left:6px;right:6px;gap:4px}.rhythm-note{width:34px!important;height:34px!important}.rhythm-track-intro{min-width:174px!important}.rhythm-result-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-height:620px){.rhythm-board{top:48px;bottom:52px}.rhythm-pads{height:38px;bottom:5px}.rhythm-pad{font-size:16px}.rhythm-callout{bottom:46px!important}.rhythm-track-intro{top:30px!important;padding:5px 10px!important}.rhythm-status{top:5px}.rhythm-rizo{bottom:31px!important}}

.preview-actor .wearable-bandana{--gear-scale-x:1;--gear-scale-y:1;--gear-shift-x:0%;--gear-shift-y:0%}

.wearable-shades{--gear-shift-x:-2.35%}
.stage-spark .wearable-shades{--gear-shift-x:-2.1%}
.shop-preview-pet .wearable-shades{--gear-shift-x:-3.1%}

.rhythm-countdown{position:absolute;inset:0;z-index:80;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at 50% 48%,rgba(255,104,189,.23),rgba(3,6,13,.86) 48%,rgba(3,6,13,.96));pointer-events:none;transition:opacity .28s,scale .28s}
.rhythm-countdown b{display:block;color:#fff;font-size:74px;line-height:.9;text-shadow:0 5px 0 #080b0f,0 0 28px #16c8ff;font-family:monospace;font-weight:1000}
.rhythm-countdown b.pulse{animation:rhythmCountdownPulse .42s cubic-bezier(.2,.9,.25,1)}
.rhythm-countdown span{display:block;margin-top:14px;color:#c9f8ff;font:1000 8px monospace;letter-spacing:.14em}
.rhythm-countdown.leave{opacity:0;scale:1.18}
@keyframes rhythmCountdownPulse{0%{scale:.52;opacity:.2}65%{scale:1.14}100%{scale:1;opacity:1}}
body.reduce-motion .rhythm-countdown b{animation:none!important}

.balloon-fire .balloon-body{background:radial-gradient(circle at 50% 85%,#ffe27a 0 12%,#ff713f 34%,#c62f24 76%);animation:fireBalloonBody .38s steps(2) infinite}
.balloon-fire .balloon-body::before{content:"";position:absolute;left:5px;right:5px;top:-13px;height:20px;background:linear-gradient(55deg,transparent 12%,#ffef75 13% 30%,#ff5c31 31% 55%,transparent 56%),linear-gradient(110deg,transparent 25%,#ff934f 26% 54%,transparent 55%);clip-path:polygon(0 100%,15% 15%,34% 72%,51% 0,68% 72%,88% 22%,100% 100%);filter:drop-shadow(0 0 5px #ff7b39)}
.balloon-frost .balloon-body{background:linear-gradient(145deg,#f2ffff,#78dce9);box-shadow:inset 7px 6px #fff,0 0 10px #baf8ff}
.balloon-frost .balloon-body::before{content:"";position:absolute;inset:-7px;clip-path:polygon(50% 0,59% 13%,74% 2%,76% 20%,96% 18%,84% 36%,100% 48%,82% 58%,94% 78%,73% 76%,68% 100%,51% 84%,36% 100%,31% 77%,7% 82%,19% 61%,0 50%,19% 39%,5% 18%,28% 22%,28% 2%,43% 15%);background:#d9fcff;z-index:-1;animation:frostBalloonShiver .48s steps(2) infinite}
.balloon-storm .balloon-body{background:repeating-linear-gradient(135deg,#ffe66b 0 7px,#55dfff 8px 14px);animation:stormBalloonPulse .5s ease-in-out infinite alternate}
.balloon-storm .balloon-body::before{content:"ϟ";position:absolute;left:50%;top:48%;translate:-50% -50%;font:1000 25px monospace;color:#fff;text-shadow:0 2px #07100d,0 0 9px #fff}
.balloon-ghost{opacity:.86}.balloon-ghost .balloon-body{background:radial-gradient(circle,#d8c1ff,#72579c);animation:ghostBalloonPhase 1.15s ease-in-out infinite}.balloon-ghost.phased{opacity:.34;filter:drop-shadow(0 0 12px #c59cff)}.balloon-ghost.phased .balloon-body{scale:.9 1.08}

.ability-fx-ember{color:#ff713f}.ability-fx-toxic{color:#7eff4c}.ability-fx-violet,.ability-fx-shadow{color:#c59cff}.ability-fx-moss{color:#75d376}.ability-fx-bubblegum{color:#ff83ce}.ability-fx-frost{color:#a8f3ff}.ability-fx-glitch{color:#55dfff;border-style:dashed}.ability-fx-obsidian{color:#686d91}.ability-fx-aurora,.ability-fx-diamond{color:#d7fbff}.ability-fx-golden{color:#ffe66b}.ability-fx-retro{color:#16c8ff;border-radius:0}

.volume-setting{align-items:center}.volume-control{display:grid;grid-template-columns:minmax(92px,150px) 38px;align-items:center;gap:8px;flex:0 1 190px}.volume-control input[type="range"]{width:100%;accent-color:var(--cyan);touch-action:pan-x}.volume-control b{font-size:8px;color:var(--cyan);text-align:right;font-variant-numeric:tabular-nums}
.pet-actor.boing{animation:none!important}.pet-actor.boing .rizo-motion-shell{animation:rizoTapBoing .22s ease-out!important}@keyframes rizoTapBoing{0%{transform:scale(1)}55%{transform:scale(1.08,.90)}100%{transform:scale(1)}}
body.reduce-motion .pet-actor.boing .rizo-motion-shell{animation:none!important}
@media(max-width:350px){.volume-setting{align-items:flex-start;flex-direction:column}.volume-control{width:100%;grid-template-columns:minmax(0,1fr) 38px;flex:auto}}

@keyframes gateBreathe{50%{opacity:.25;scale:1.12}}

@keyframes placementPulse{50%{opacity:.48}}
.obstacle-crater{background:radial-gradient(circle,#1c1211 0 30%,#9b4834 32% 57%,#3d241e 59%);border-radius:50%}.obstacle-moonstone{background:linear-gradient(145deg,#b9a9e8,#4c4774);clip-path:polygon(50% 0,88% 20%,100% 70%,64% 100%,18% 88%,0 38%)}.obstacle-pylon{background:linear-gradient(90deg,#21343d,#638694,#21343d);clip-path:polygon(35% 0,65% 0,100% 100%,0 100%)}.obstacle-ice{background:linear-gradient(150deg,#f5ffff,#72c8df);clip-path:polygon(50% 0,82% 34%,100% 84%,61% 100%,12% 86%,0 36%);box-shadow:inset -6px -7px rgba(48,139,166,.28),0 0 15px rgba(184,248,255,.55)}.obstacle-obelisk{background:linear-gradient(90deg,#171224,#6a3a72,#171224);clip-path:polygon(50% 0,78% 17%,90% 100%,10% 100%,22% 17%);box-shadow:inset -7px -6px rgba(0,0,0,.3),0 0 16px rgba(255,80,179,.28)}
.weather-clear{display:none}.weather-ash i{width:5px;height:5px;border-radius:50%;background:#2e1c18;opacity:.34;animation:ashDrift 7s linear infinite}.weather-ash i:nth-child(1){left:14%;top:-8%;animation-delay:-3s}.weather-ash i:nth-child(2){left:52%;top:-14%;animation-duration:9s}.weather-ash i:nth-child(3){left:83%;top:-5%;animation-delay:-5s}@keyframes ashDrift{to{translate:-70px 680px;rotate:420deg}}
.weather-moon{background:radial-gradient(circle at 78% 15%,rgba(255,246,188,.16),transparent 22%)}.weather-moon i{width:3px;height:3px;background:#fff;border-radius:50%;box-shadow:54px 30px #fff,120px -4px #d7c9ff,190px 48px #fff,260px 7px #fff,330px 37px #d7c9ff;animation:moonTwinkle 1.9s ease-in-out infinite alternate}.weather-moon i:nth-child(1){left:8%;top:10%}.weather-moon i:nth-child(2){left:34%;top:23%;animation-delay:-.8s}.weather-moon i:nth-child(3){left:61%;top:8%;animation-delay:-1.3s}@keyframes moonTwinkle{to{opacity:.22;scale:.65}}
.weather-storm{background:repeating-linear-gradient(103deg,transparent 0 22px,rgba(183,238,255,.12) 23px 24px,transparent 25px 45px);animation:stormRain .48s linear infinite}.weather-storm::after{content:"";position:absolute;inset:0;background:#d7fbff;opacity:0}@keyframes stormRain{to{background-position:-50px 90px}}@keyframes stormFlash{50%{opacity:.34}}
.weather-blizzard{background:radial-gradient(circle,rgba(255,255,255,.8) 0 2px,transparent 3px) 0 0/34px 37px,radial-gradient(circle,rgba(210,248,255,.65) 0 3px,transparent 4px) 17px 11px/47px 43px;animation:snowSweep 3.2s linear infinite}@keyframes snowSweep{to{background-position:-120px 180px,-80px 145px}}
.weather-eclipse{background:radial-gradient(circle at 72% 15%,#07050b 0 21px,#ff4eb3 22px 25px,rgba(255,78,179,.25) 26px 42px,transparent 43px),linear-gradient(rgba(13,5,21,.1),rgba(13,5,21,.32))}

.balloon-shade{opacity:.72;filter:drop-shadow(0 0 9px #8066a3)}.balloon-shade .balloon-body{background:linear-gradient(145deg,#584967,#241d31);box-shadow:inset 7px 6px rgba(255,255,255,.1)}@keyframes camoFlicker{50%{translate:4px -2px;opacity:.55}}
.balloon-boss{scale:1.72}.balloon-boss .balloon-body::before{content:""}.boss-crown .balloon-body{background:radial-gradient(circle at 40% 25%,#53446b,transparent 23%),#171421}.boss-crown .balloon-body::before{content:"♛";position:absolute;left:50%;top:-18px;translate:-50% 0;color:#ffd45a;font-size:20px;text-shadow:0 3px #080b0f}.boss-vortex .balloon-body{background:conic-gradient(#130f24,#8d55e8,#251640,#c59cff,#130f24);animation:vortexSpin 1.5s linear infinite}.boss-vortex .balloon-face{rotate:-8deg}.boss-mirror .balloon-body{background:linear-gradient(135deg,#fff,#77dceb 30%,#c29cff 55%,#fff 80%);clip-path:polygon(50% 0,88% 19%,100% 58%,70% 100%,25% 93%,0 50%,17% 13%)}.boss-apex .balloon-body{background:repeating-linear-gradient(135deg,#170b12 0 8px,#ff4c63 9px 16px);box-shadow:inset 7px 6px rgba(255,255,255,.15),0 0 16px #ff4c63;animation:apexThrob .55s ease-in-out infinite alternate}.boss-apex .balloon-body::before{content:"▲";position:absolute;left:50%;top:-17px;translate:-50%;font-size:18px;color:#ff4c63;text-shadow:0 2px #080b0f}@keyframes vortexSpin{to{rotate:360deg}}@keyframes apexThrob{to{scale:1.08;filter:brightness(1.35)}}
@keyframes vortexPulse{to{width:310px;height:310px;opacity:0;border-width:1px}}
@keyframes awakenedAura{50%{scale:1.12;opacity:.35}}@keyframes auraSpark{50%{translate:-8px 8px;opacity:.25}}@keyframes apexAura{to{rotate:360deg}}@keyframes apexCastRing{50%{scale:1.6;filter:brightness(1.5)}}

.keeper-path-preview{display:grid;gap:7px;width:100%;margin-top:10px;border:1px solid #2e4153;border-radius:18px;background:linear-gradient(145deg,#121922,#0d1219);padding:11px 12px;text-align:left;box-shadow:0 10px 24px rgba(0,0,0,.2)}
.keeper-path-preview span{color:#8bcff0;font-size:6px;letter-spacing:.12em}.keeper-path-preview b{font-size:9px;color:#fff}.keeper-path-preview small{color:#97a5b4;font-size:6px;line-height:1.45}.keeper-path-preview i{display:block;height:6px;border-radius:999px;background:#1b2631;overflow:hidden}.keeper-path-preview i u{display:block;height:100%;background:linear-gradient(90deg,#16c8ff,#9eff75)}
.keeper-path-board .keeper-path-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.keeper-path-board .keeper-path-head span{flex:0 0 auto;min-width:52px;text-align:center;padding:8px 10px;border:1px solid #344756;border-radius:14px;background:#0c1218;color:#fff;font-size:11px;font-weight:1000}
.keeper-path-track{height:8px;border-radius:999px;background:#131a21;overflow:hidden;margin:12px 0}.keeper-path-track i{display:block;height:100%;background:linear-gradient(90deg,#16c8ff,#9eff75)}
.keeper-path-steps{display:grid;gap:8px}.path-step{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px;border:1px solid #273543;border-radius:16px;background:#0d1218}.path-step strong{width:32px;height:32px;border-radius:12px;display:grid;place-items:center;background:#17212b;color:#9ecde2;font-size:8px}.path-step b{display:block;font-size:8px;color:#fff}.path-step small{display:block;margin-top:4px;color:#91a1b0;font-size:6px;line-height:1.45}.path-step em{font-style:normal;color:#9eff75;font-size:6px;letter-spacing:.08em}.path-step.done{border-color:rgba(158,255,117,.24);background:linear-gradient(180deg,#111b14,#0d1310)}.path-step.done strong{background:#17301d;color:#d9ffe0}.path-step.done em{color:#dfffe0}
.trophy-room-board .trophy-chip-row{display:grid;gap:8px}.trophy-chip{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;padding:9px 10px;border:1px solid #2b3c4d;border-radius:15px;background:#0d1218}.trophy-chip i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#182432;color:#ffd45a;font-style:normal;font-size:14px}.trophy-chip b{display:block;color:#fff;font-size:8px}.trophy-chip small{display:block;margin-top:3px;color:#97a5b4;font-size:6px;line-height:1.45}
.feature-unlock-cutscene .cutscene-stage{filter:drop-shadow(0 0 18px rgba(22,200,255,.25))}.unlock-reveal .modal-art{font-size:46px}.backup-reminder-modal .modal-art{color:#16c8ff}
.wearable-shades,.wearable-goggles,.wearable-visor,.wearable-eyepatch{--gear-tilt:2.6deg}.stage-spark .wearable-shades,.stage-spark .wearable-goggles,.stage-spark .wearable-visor,.stage-spark .wearable-eyepatch{--gear-tilt:2.35deg}.shop-preview-pet .wearable-shades,.shop-preview-pet .wearable-goggles,.shop-preview-pet .wearable-visor,.shop-preview-pet .wearable-eyepatch{--gear-tilt:2.9deg}
.habitat-shelf{overflow:visible}.shelf-trophies{position:absolute;right:8px;top:-19px;display:flex;gap:5px;pointer-events:none}.shelf-trophy{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,#1a2533,#0f151d);border:1px solid #3a5065;box-shadow:0 2px 0 rgba(0,0,0,.25)}.shelf-trophy i{font-style:normal;font-size:9px;color:#ffd45a;line-height:1}.habitat-shelf.has-trophies:after{content:"";position:absolute;right:7px;top:-3px;width:56px;height:1px;background:rgba(255,255,255,.08)}

.feature-unlock-cutscene{position:relative;background:#080b11!important;isolation:isolate}
.feature-unlock-cutscene>small,.feature-unlock-cutscene>h2{position:relative;z-index:8}
.cutscene-cinema-bars{display:none}
.cutscene-feature-fx{display:none}
.feature-unlock-cutscene .cutscene-cinema-bars{display:block;position:absolute;inset:0;z-index:20;pointer-events:none}
.feature-unlock-cutscene .cutscene-cinema-bars::before,.feature-unlock-cutscene .cutscene-cinema-bars::after{content:"";position:absolute;left:-8%;right:-8%;height:26px;background:#020306;box-shadow:0 0 24px rgba(0,0,0,.8);animation:v36CinemaBars .72s cubic-bezier(.2,.8,.2,1) both}
.feature-unlock-cutscene .cutscene-cinema-bars::before{top:-2px;transform-origin:top}.feature-unlock-cutscene .cutscene-cinema-bars::after{bottom:-2px;transform-origin:bottom}
@keyframes v36CinemaBars{from{scale:1 0}to{scale:1 1}}
.feature-unlock-cutscene .cutscene-stage{height:286px;border-color:rgba(255,255,255,.16);box-shadow:inset 0 0 45px rgba(0,0,0,.45),0 18px 35px rgba(0,0,0,.34);animation:v36StageReveal .72s ease-out both}
@keyframes v36StageReveal{from{opacity:0;scale:.93;filter:blur(7px)}to{opacity:1;scale:1;filter:none}}
.feature-unlock-cutscene .cutscene-feature-fx{display:block;position:absolute;inset:0;z-index:2;pointer-events:none}
.feature-unlock-cutscene .cutscene-feature-fx i{position:absolute;left:50%;top:50%;width:7px;height:7px;border-radius:50%;background:currentColor;color:#8ceeff;box-shadow:0 0 12px currentColor;animation:v36UnlockParticle 1.4s ease-out infinite;animation-delay:calc(var(--i,0) * .12s)}
.feature-unlock-cutscene .cutscene-feature-fx i:nth-child(1){--i:0;translate:-85px 45px}.feature-unlock-cutscene .cutscene-feature-fx i:nth-child(2){--i:1;translate:72px 35px}.feature-unlock-cutscene .cutscene-feature-fx i:nth-child(3){--i:2;translate:-52px -63px}.feature-unlock-cutscene .cutscene-feature-fx i:nth-child(4){--i:3;translate:61px -54px}.feature-unlock-cutscene .cutscene-feature-fx i:nth-child(5){--i:4;translate:0 -88px}
@keyframes v36UnlockParticle{0%{opacity:0;transform:scale(.35)}30%{opacity:1}100%{opacity:0;transform:translateY(-34px) scale(1.45)}}
.feature-unlock-cutscene .cutscene-symbol{font-size:68px;animation:v36UnlockSymbol 1.05s cubic-bezier(.2,.85,.2,1) both;text-shadow:0 0 16px currentColor,0 0 42px currentColor}
@keyframes v36UnlockSymbol{0%{opacity:0;transform:translateX(-50%) scale(.25) rotate(-20deg)}55%{opacity:1;transform:translateX(-50%) scale(1.22) rotate(5deg)}100%{transform:translateX(-50%) scale(1) rotate(0)}}
.feature-unlock-cutscene .cutscene-pet{animation:v36RizoHeroEntrance 1.05s cubic-bezier(.17,.9,.22,1) both}
@keyframes v36RizoHeroEntrance{0%{opacity:0;transform:translateX(-50%) translateY(55px) scale(.58);filter:brightness(2)}65%{opacity:1;transform:translateX(-50%) translateY(-10px) scale(1.08)}100%{transform:translateX(-50%) translateY(0) scale(1);filter:none}}

.unlock-house .cutscene-stage{background:linear-gradient(180deg,#152034 0 66%,#17211b 66%);overflow:hidden}
.unlock-house .cutscene-stage::before{content:"";position:absolute;left:50%;bottom:28%;width:112px;height:142px;translate:-50% 0;border:5px solid #080b0f;border-radius:7px 7px 2px 2px;background:linear-gradient(90deg,#13171c 0 46%,#ffd45a 47% 53%,#11151a 54%);box-shadow:0 0 0 5px rgba(255,255,255,.04),0 0 42px rgba(255,212,90,.26);transform-origin:left center;animation:v36HouseDoor 1.22s .16s cubic-bezier(.2,.8,.2,1) both}
.unlock-house .cutscene-stage::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(105deg,transparent 0 22px,rgba(190,230,255,.2) 23px 25px,transparent 26px 46px);animation:v36RainSweep .62s linear infinite;opacity:.55}
.unlock-house .cutscene-floor{background:linear-gradient(#263d31,#102019)}
.unlock-house .cutscene-symbol{color:#9eff75}
@keyframes v36HouseDoor{0%{filter:brightness(.45);transform:perspective(400px) rotateY(0)}65%,100%{filter:brightness(1.25);transform:perspective(400px) rotateY(-64deg)}}
@keyframes v36RainSweep{to{translate:28px 58px}}

.unlock-legacy .cutscene-stage{background:radial-gradient(circle at 50% 45%,rgba(255,212,90,.29),transparent 24%),radial-gradient(circle at 50% 45%,rgba(255,104,189,.18),transparent 48%),linear-gradient(#17142b 0 70%,#0d1018 70%)}
.unlock-legacy .cutscene-stage::before,.unlock-legacy .cutscene-stage::after{content:"";position:absolute;left:50%;top:48%;translate:-50% -50%;border-radius:50%;border:2px solid rgba(255,212,90,.46);animation:v36LegacyRing 2.8s linear infinite}
.unlock-legacy .cutscene-stage::before{width:186px;height:186px;box-shadow:0 0 24px rgba(255,212,90,.26)}
.unlock-legacy .cutscene-stage::after{width:236px;height:236px;border-style:dashed;animation-direction:reverse;opacity:.55}
.unlock-legacy .cutscene-symbol{color:#ffd45a}
.unlock-legacy .cutscene-floor{background:linear-gradient(rgba(27,20,46,.2),#080b11)}
@keyframes v36LegacyRing{to{rotate:360deg}}

@keyframes v36GateAlarm{50%{filter:brightness(1.8);box-shadow:0 0 36px rgba(255,91,104,.8)}}

.shelf-trophies{align-items:flex-end;isolation:isolate}
.shelf-trophies::before{content:"";position:absolute;left:-10px;right:-10px;bottom:-7px;height:9px;border-radius:50%;background:radial-gradient(ellipse,rgba(22,200,255,.2),transparent 68%);filter:blur(2px);opacity:.7}
.shelf-trophy{position:relative;overflow:visible;background:linear-gradient(160deg,color-mix(in srgb,var(--trophy-color) 34%,#192431),#0b1017 70%);border-color:color-mix(in srgb,var(--trophy-color) 56%,#34404c);box-shadow:0 3px 0 rgba(0,0,0,.34),0 0 10px color-mix(in srgb,var(--trophy-color) 32%,transparent);animation:v36TrophyIdle 2.2s ease-in-out infinite;animation-delay:var(--trophy-delay)}
.shelf-trophy i{position:relative;z-index:2;color:var(--trophy-color);text-shadow:0 0 9px var(--trophy-color)}
.shelf-trophy u{position:absolute;inset:-3px;border-radius:50%;border:1px solid color-mix(in srgb,var(--trophy-color) 50%,transparent);opacity:.45;animation:v36TrophyHalo 2.4s ease-out infinite;animation-delay:var(--trophy-delay)}
.shelf-trophy.newest::after{content:"✦";position:absolute;right:-7px;top:-8px;color:#fff;font-size:7px;text-shadow:0 0 8px var(--trophy-color);animation:v36TrophySpark 1.5s ease-in-out infinite}
.shelf-trophies.trophy-award .shelf-trophy.newest{animation:v36TrophyAward .85s cubic-bezier(.2,.9,.2,1) both}
@keyframes v36TrophyIdle{50%{translate:0 -2px;rotate:2deg}}
@keyframes v36TrophyHalo{0%{scale:.72;opacity:.65}100%{scale:1.55;opacity:0}}
@keyframes v36TrophySpark{50%{scale:1.45;rotate:30deg;opacity:.45}}
@keyframes v36TrophyAward{0%{opacity:0;translate:0 -34px;scale:.2;rotate:-28deg}70%{opacity:1;translate:0 3px;scale:1.25;rotate:6deg}100%{translate:0 0;scale:1;rotate:0}}
.trophy-room-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.trophy-room-head>span{min-width:48px;padding:8px 10px;border:1px solid #3a4654;border-radius:14px;background:#0b1017;color:#ffd45a;font:1000 10px monospace;text-align:center}
.trophy-chip{position:relative;overflow:hidden;border-color:color-mix(in srgb,var(--trophy-color) 38%,#2b3c4d);background:linear-gradient(145deg,color-mix(in srgb,var(--trophy-color) 9%,#0d1218),#0d1218)}.trophy-chip::after{content:"";position:absolute;inset:-120% -30%;background:linear-gradient(100deg,transparent 42%,rgba(255,255,255,.18) 50%,transparent 58%);rotate:12deg;animation:v36TrophyFoil 4.4s linear infinite;animation-delay:var(--trophy-delay)}.trophy-chip i{position:relative;z-index:2;color:var(--trophy-color);box-shadow:0 0 12px color-mix(in srgb,var(--trophy-color) 28%,transparent)}.trophy-chip b,.trophy-chip small{position:relative;z-index:2}@keyframes v36TrophyFoil{from{translate:-65% 0}to{translate:65% 0}}

body.reduce-motion .feature-unlock-cutscene *{animation:none!important;transition:none!important}
body.reduce-motion .shelf-trophy,body.reduce-motion .shelf-trophy u,body.reduce-motion .trophy-chip::after{animation:none!important}
@media(max-width:350px){.feature-unlock-cutscene .cutscene-stage{height:232px}.shelf-trophies{gap:3px}.shelf-trophy{width:15px;height:15px}}

.pet-tap-target.tutorial-focus{position:absolute!important}

#petTapTarget{position:absolute!important;inset:48px 15px 50px!important;display:block!important}
#petTapTarget>.egg-actor{position:absolute!important;left:50%!important;top:50%!important;right:auto!important;bottom:auto!important;width:155px!important;height:195px!important;margin:0!important;translate:none!important;transform:translate(-50%,-50%)!important}
#petTapTarget>.egg-actor>.egg-motion-shell{position:relative!important;width:155px!important;height:195px!important;display:grid!important;place-items:center!important;animation:eggIdle 2.1s ease-in-out infinite}
body.reduce-motion #petTapTarget>.egg-actor>.egg-motion-shell{animation:none!important}

#habitatScene #petTapTarget{position:absolute!important;inset:48px 15px 50px!important;width:auto!important;height:auto!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;overflow:visible!important}
#habitatScene #petTapTarget>#eggActor{position:relative!important;inset:auto!important;flex:0 0 155px!important;width:155px!important;height:195px!important;margin:0!important;translate:none!important;transform:none!important;align-self:center!important;justify-self:center!important}

@keyframes v37Siren{50%{background:#ffd45a;box-shadow:0 0 0 11px rgba(255,212,90,.12),0 0 32px #ffd45a}}@keyframes v37GateAlarm{50%{filter:brightness(1.65)}}@keyframes v37RoadAlarm{50%{opacity:.62;transform:translateY(-2px)}}

@keyframes v37PlacementDrift{to{background-position:34px 17px}}

#petTapTarget{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;-webkit-tap-highlight-color:transparent}
#petTapTarget:focus,#petTapTarget:active{outline:0!important;box-shadow:none!important;background:transparent!important}
.bottom-nav{z-index:500!important;isolation:isolate}.bottom-nav button{position:relative;z-index:2;min-width:0;touch-action:manipulation}

.keeper-recovery-modal textarea{width:100%;min-height:150px;margin:10px 0;resize:vertical}.keeper-recovery-pet{width:130px;height:130px;margin:8px auto}.keeper-recovery-pet .mini-pet{width:130px!important;height:130px!important}

@keyframes v40GateWarn{50%{color:#ffb14f;scale:1.12}}@keyframes v40GateCritical{50%{filter:drop-shadow(0 0 22px #ff4058) brightness(1.25)}}
@keyframes v40PowerShot{50%{scale:1.25;rotate:20deg}}@keyframes v40ControlShot{to{rotate:360deg}}@keyframes v40DoctrineStrike{0%{scale:.88}55%{scale:1.18}100%{scale:1}}

.balloon-trait{position:absolute;left:-4px;top:-5px;z-index:5;width:15px;height:15px;display:grid;place-items:center;border:2px solid #080b0f;border-radius:50%;background:var(--balloon-color);color:#080b0f;font:1000 8px monospace;box-shadow:1px 2px 0 rgba(0,0,0,.35)}.balloon-state{position:absolute;right:-4px;top:-5px;z-index:6;min-width:15px;height:15px;display:grid;place-items:center;border:2px solid #080b0f;border-radius:50%;background:#fff;color:#101315;font:1000 8px monospace;box-shadow:1px 2px 0 rgba(0,0,0,.35)}.balloon-state:empty{display:none}

.setting-choice-row{align-items:flex-start}.setting-choice-control{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:58%}.setting-choice-control button{min-height:28px;padding:5px 7px;border:1px solid #405149;border-radius:8px;background:#111b17;color:#91a39a;font:900 5.5px monospace;letter-spacing:.04em}.setting-choice-control button.active{border-color:#9eff75;background:#233c2b;color:#ecffe6;box-shadow:inset 0 0 0 1px rgba(158,255,117,.18)}

@keyframes v44FieldMark{50%{scale:1.12;filter:brightness(1.25)}}@keyframes v44LegendOrbit{to{rotate:360deg}}

@media(max-width:520px){.setting-choice-row{display:grid!important;gap:8px}.setting-choice-control{max-width:none;justify-content:flex-start}}
@media(max-width:350px){.setting-choice-control button{flex:1;min-width:0;padding-inline:4px}}

.modal-overlay{z-index:9200}.minigame-overlay{z-index:9000}

.trail-school-modal{width:min(100%,570px);max-height:min(88vh,720px);overflow:auto;background:radial-gradient(circle at 100% 0,rgba(158,255,117,.12),transparent 38%),linear-gradient(155deg,#15221d,#080d0b)}.trail-school-modal>p{color:#9eada6;font-size:8px;line-height:1.5}.trail-school-list{display:grid;gap:7px;margin:12px 0}.trail-school-row{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;align-items:center;padding:8px;border:1px solid #33483f;border-radius:11px;background:#0c1511}.trail-school-row>i{width:30px;height:30px;display:grid;place-items:center;border:2px solid #07100d;border-radius:10px;background:#283a32;color:#c9d5cf;font:1000 10px monospace;font-style:normal}.trail-school-row.done{border-color:#4d745f;background:#102019}.trail-school-row.done>i{background:#9eff75;color:#07100d}.trail-school-row b{display:block;color:#fff;font:1000 7px monospace}.trail-school-row small{display:block;margin-top:2px;color:#93a49d;font:700 5.5px monospace;line-height:1.4}

@media(max-width:430px){
  .minigame-overlay{padding-left:8px!important;padding-right:8px!important}
  .defense-extra-grid{grid-template-columns:1fr}
  .defense-lobby-actions.v79{grid-template-columns:auto auto 1fr}
  .defense-lobby-map em{display:none}
  .defense-lobby-map{grid-template-columns:44px minmax(0,1fr) 20px;padding:.42rem}
  .defense-lobby-map-icon{width:44px;height:44px}
  .v80-tower-shop .defense-panel-hero.v80{grid-template-columns:62px minmax(0,1fr) auto}
  .v79-tower-shop .defense-panel-wallet{grid-column:1/-1;grid-template-columns:auto auto;justify-content:space-between}
  .defense-panel-simple-actions button{min-height:54px}
  
  
  
  
  
  
}

@keyframes v50GlitchShot{50%{rotate:90deg;filter:hue-rotate(90deg)}}

@keyframes v50HeavyShot{45%{transform:translateY(3px) scale(1.12,.88)}75%{transform:translateY(-7px) scale(.96,1.08)}}
@keyframes v50SnapShot{50%{transform:translateX(5px) skewX(-8deg);filter:brightness(1.35)}}
@keyframes v50BounceShot{45%{transform:translateY(-9px) scale(.9,1.12)}75%{transform:translateY(2px) scale(1.14,.88)}}
@keyframes v50SwayShot{50%{transform:translateY(-5px) rotate(-7deg) scale(1.06)}}

@keyframes v53IntroCopy{0%,7%{opacity:0;translate:-50% 12px}14%,36%{opacity:1;translate:-50% 0}44%,100%{opacity:0;translate:-50% -7px}}
@keyframes v53IntroLore{0%,42%{opacity:0;translate:-50% 12px}48%,66%{opacity:1;translate:-50% 0}74%,100%{opacity:0;translate:-50% -7px}}
@keyframes v53IntroRizo{0%,5%{left:-28%;rotate:-8deg}30%,68%{left:34%;rotate:0deg}88%{left:34%}100%{left:60%;opacity:0;scale:.92}}
@keyframes v53IntroCta{0%,82%{opacity:0;translate:-50% 10px}90%,96%{opacity:1;translate:-50% 0}100%{opacity:0;translate:-50% -4px}}

@keyframes v50WaveCue{0%{filter:brightness(.72) saturate(.78)}32%{filter:brightness(1.12) saturate(1.14)}100%{filter:none}}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

@keyframes v56TrailArrow{0%,100%{translate:-3px 0;opacity:.65}50%{translate:4px 0;opacity:1}}

@keyframes v56ClassicSpit{0%,100%{transform:none}38%{transform:translateY(3px) scale(1.13,.76)}68%{transform:translateY(-5px) scale(.92,1.14)}}
@keyframes v56EmberLunge{0%,100%{transform:none}42%{transform:translate(7px,-2px) rotate(8deg) scale(1.08,.94);filter:brightness(1.28)}72%{transform:translate(-2px,1px) rotate(-3deg)}}
@keyframes v56ToxicShake{0%,100%{transform:none}24%{transform:translateX(-4px) skewX(-8deg)}48%{transform:translateX(5px) skewX(10deg) scale(1.06,.94)}74%{transform:translateX(-2px) rotate(-3deg)}}
@keyframes v56VioletPulse{0%,100%{transform:none;filter:none}38%{transform:translateY(-8px) scale(.88,1.12);filter:drop-shadow(0 0 10px #b77cff)}72%{transform:scale(1.12,.9)}}
@keyframes v56MossStomp{0%,100%{transform:none}36%{transform:translateY(-4px) rotate(-5deg)}62%{transform:translateY(5px) scale(1.15,.82);filter:drop-shadow(0 5px 2px rgba(0,0,0,.35))}}
@keyframes v56BubblePop{0%,100%{transform:none}35%{transform:translateY(-5px) scale(1.2)}62%{transform:translateY(-8px) scale(.82,1.2)}82%{transform:translateY(2px) scale(1.08,.9)}}
@keyframes v56FrostSnap{0%,100%{transform:none}25%{transform:translate(-2px,-2px) rotate(-3deg)}50%{transform:translate(3px,-5px) rotate(4deg);filter:brightness(1.45)}75%{transform:translate(-1px,1px)}}
@keyframes v56GlitchBlink{0%,100%{transform:none;opacity:1}25%{transform:translate(6px,-3px) skewX(-15deg);opacity:.35;filter:hue-rotate(80deg)}50%{transform:translate(-5px,-6px) skewX(12deg);opacity:1}75%{transform:translate(3px,1px);opacity:.45}}
@keyframes v56ObsidianRam{0%,100%{transform:none}32%{transform:translate(-4px,3px) rotate(-6deg) scale(1.12,.86)}68%{transform:translate(8px,-5px) rotate(7deg) scale(.96,1.1);filter:contrast(1.25)}}
@keyframes v56AuroraWave{0%,100%{transform:none;filter:none}30%{transform:translate(-3px,-6px) rotate(-9deg) scale(.95,1.08)}58%{transform:translate(4px,-8px) rotate(10deg) scale(1.06);filter:drop-shadow(0 0 12px #70f0ff)}82%{transform:translateY(-2px) rotate(-3deg)}}
@keyframes v56GoldenCommand{0%,100%{transform:none}38%{transform:translateY(-7px) rotate(4deg) scale(1.06);filter:drop-shadow(0 0 10px #ffd45a)}64%{transform:translateY(-3px) scale(1.14,.9)}82%{transform:translateY(1px)}}
@keyframes v56DiamondJab{0%,100%{transform:none}35%{transform:translate(-3px,1px) rotate(-5deg) scale(1.05,.93)}62%{transform:translate(9px,-5px) rotate(6deg) scale(.92,1.13);filter:brightness(1.55)}}
@keyframes v56ShadowPhase{0%,100%{transform:none;opacity:1}32%{transform:translate(-5px,2px) scale(1.08,.9);opacity:.48}60%{transform:translate(8px,-7px) rotate(8deg) scale(.94,1.1);opacity:.9;filter:drop-shadow(-7px 3px 8px #7656dd)}82%{transform:translate(2px,-1px);opacity:.65}}
@keyframes v56RetroRecoil{0%,100%{transform:none;filter:none}25%{transform:translateX(5px);filter:contrast(1.6)}50%{transform:translate(-4px,-4px) scale(1.08,.92)}75%{transform:translate(2px,1px);filter:hue-rotate(40deg)}}

.rizo-ui-icon{
  width:1em;height:1em;display:block;overflow:visible;
  fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;
}
.rizo-ui-icon .fill{fill:currentColor;stroke:none}

.landmark-pine-grove{
  width:58px;height:50px;border-radius:50%;
  background:#243f2b;box-shadow:inset 0 -9px #172a1d,0 4px 0 rgba(0,0,0,.2)
}
.landmark-pine-grove::before,.landmark-pine-grove::after{
  content:"";position:absolute;bottom:8px;width:22px;height:34px;
  background:#4f7b45;clip-path:polygon(50% 0,78% 38%,65% 38%,94% 76%,58% 76%,58% 100%,42% 100%,42% 76%,6% 76%,35% 38%,22% 38%);
  border-bottom:4px solid #172a1d
}
.landmark-pine-grove::before{left:7px}.landmark-pine-grove::after{right:5px;scale:.82;transform-origin:bottom}
.landmark-keeper-stone{width:28px;height:40px;background:#68746c;clip-path:polygon(30% 0,76% 8%,100% 74%,66% 100%,10% 88%,0 24%);box-shadow:inset -7px -5px #3e4d45}
.landmark-lava-crater{width:68px;height:44px;border:7px solid #6f342a;border-radius:50%;background:#231513;box-shadow:inset 0 0 0 5px #cf5c36,inset 0 0 0 11px #341917}
.landmark-ember-vent{width:34px;height:44px;background:#4b2a22;clip-path:polygon(10% 100%,24% 28%,43% 58%,56% 0,72% 55%,87% 30%,100% 100%);box-shadow:inset 0 -8px #231412}
.landmark-moon-basin{width:70px;height:50px;border:5px solid #575171;border-radius:50%;background:#8d89b6;box-shadow:inset 8px 7px #bfb7e5,inset -9px -7px #45415f}
.landmark-moon-arch{width:36px;height:45px;border:8px solid #aaa0cf;border-left-color:transparent;border-bottom-color:#6a6387;border-radius:50%;rotate:-18deg}
.landmark-storm-pylon{width:26px;height:48px;background:#415c66;clip-path:polygon(36% 0,64% 0,100% 100%,72% 100%,61% 67%,39% 67%,28% 100%,0 100%);box-shadow:inset -5px 0 #23373e}
.landmark-storm-coil{width:48px;height:48px;border:7px solid #466b78;border-radius:50%;background:#1f3339;box-shadow:inset 0 0 0 5px #9cc6d0,inset 0 0 0 10px #263f47}
.landmark-ice-shelf{width:60px;height:36px;background:#d5f2f4;clip-path:polygon(0 63%,18% 12%,45% 32%,67% 0,100% 55%,87% 100%,16% 93%);box-shadow:inset -8px -8px #79b4c3}
.landmark-snow-peak{width:58px;height:44px;background:#eefafa;clip-path:polygon(0 100%,38% 20%,51% 43%,67% 0,100% 100%);box-shadow:inset 0 -10px #8fbcc7}
.landmark-eclipse-obelisk{width:26px;height:50px;background:#5c335f;clip-path:polygon(50% 0,78% 18%,90% 100%,10% 100%,22% 18%);box-shadow:inset -7px -5px #211526}
.landmark-eclipse-rift{width:58px;height:36px;border-radius:50%;background:#17101d;box-shadow:inset 0 0 0 5px #7a3e75,inset 0 0 0 10px #24142a}
.landmark-eclipse-rift::after{content:"";position:absolute;left:50%;top:4px;bottom:4px;width:3px;translate:-50% 0;background:#ff75be;rotate:16deg}

.obstacle-pine{background:#2f5436;clip-path:polygon(50% 0,72% 30%,62% 30%,86% 65%,66% 65%,66% 100%,34% 100%,34% 65%,14% 65%,38% 30%,28% 30%);border-radius:0;box-shadow:inset -7px -5px #19301f,0 5px 0 rgba(0,0,0,.2)}
.obstacle-vent{background:#6b3327;clip-path:polygon(4% 100%,24% 22%,43% 58%,56% 0,72% 56%,91% 30%,100% 100%);border-radius:0;box-shadow:inset 0 -8px #281714}

:root{
  --rizo-vw:100vw;
  --rizo-vh:100dvh;
  --rizo-vv-top:0px;
  --rizo-vv-left:0px;
  --rizo-lock-scroll-x:0px;
  --rizo-lock-scroll-y:0px;
}

:root {
  --def-font-display: "Arial Black", Impact, system-ui, sans-serif;
  --def-font-body: Inter, ui-rounded, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --def-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --def-size-counter: .75rem;
  --def-size-caption: .6875rem;
  --def-size-small: .75rem;
  --def-size-body: .8125rem;
  --def-size-button: .75rem;
  --def-size-title-small: .875rem;
  --def-size-title: 1rem;
  --def-space-1: .25rem;
  --def-space-2: .5rem;
  --def-space-3: .75rem;
  --def-space-4: 1rem;
  --def-space-5: 1.25rem;
  --def-radius-1: .5rem;
  --def-radius-2: .75rem;
  --def-radius-3: 1rem;
  --def-border: 2px solid #17151b;
  --def-shadow-ui: 0 4px 0 #17151b;
  --def-shadow-ground: 0 10px 18px rgb(15 10 20 / .24);
  --def-valid: #73e890;
  --def-money: #ffd95b;
  --def-danger: #ff637f;
  --def-info: #68cfff;
  --def-neutral: #fff2cf;
  --z-world: 0;
  --z-world-ui: 10;
  --z-hud: 20;
  --z-sheet: 40;
  --z-modal: 60;
  --z-toast: 80;
  --z-critical: 100;
}

.minigame-overlay.defense-active { padding: 0; overflow: hidden; background: #08070b; }
.minigame-overlay.defense-active .minigame-shell {
  width: 100%; height: 100%; max-width: none; margin: 0; display: block; overflow: hidden;
}
.minigame-overlay.defense-active .minigame-shell > header,
.minigame-overlay.defense-active .minigame-shell > p,
.minigame-overlay.defense-active #miniQuit { display: none; }
.minigame-overlay.defense-active .mini-arena {
  width: 100%; height: 100%; min-height: 0; border: 0; border-radius: 0; overflow: hidden; box-shadow: none;
}
.defense-shell {
  position: relative; isolation: isolate; box-sizing: border-box; width: 100%; height: 100%; min-height: 0;
  display: grid; grid-template-areas: "hud" "field" "feed" "context" "roster";
  grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) auto auto auto; gap: .35rem;
  padding: max(.35rem, env(safe-area-inset-top)) max(.35rem, env(safe-area-inset-right)) max(.35rem, env(safe-area-inset-bottom)) max(.35rem, env(safe-area-inset-left));
  color: #fff; background: radial-gradient(circle at 50% 35%, #25202d 0, #0b0910 58%, #050407 100%);
  font-family: var(--def-font-body); line-height: 1.25; overflow: hidden; touch-action: manipulation;
}
.defense-shell *, .defense-shell *::before, .defense-shell *::after { box-sizing: border-box; }
.defense-shell button { min-width: 44px; min-height: 44px; font: 800 var(--def-size-button)/1 var(--def-font-body); letter-spacing: .025em; }
.defense-shell button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.defense-shell [hidden] { display: none; }

.defense-school-coach { position:absolute; z-index:var(--z-sheet); left:max(.45rem,env(safe-area-inset-left)); right:max(.45rem,env(safe-area-inset-right)); bottom:calc(94px + max(.55rem,env(safe-area-inset-bottom))); pointer-events:none; }
.defense-school-coach-card { max-width:560px; margin:0 auto; display:grid; grid-template-columns:32px minmax(0,1fr) auto auto; align-items:center; gap:.45rem; padding:.45rem; border:var(--def-border); border-radius:var(--def-radius-2); background:rgb(23 20 29 / .94); color:#fff; box-shadow:var(--def-shadow-ui); backdrop-filter:blur(8px); pointer-events:auto; }
.defense-school-coach-card > span { width:30px; height:30px; display:grid; place-items:center; border:2px solid #17151b; border-radius:50%; background:var(--def-info); color:#17151b; font:900 var(--def-size-counter)/1 var(--def-font-mono); }
.defense-school-coach-card > div { min-width:0; display:grid; }
.defense-school-coach-card small { font-size:var(--def-size-caption); color:#bcdff0; }
.defense-school-coach-card b { font:900 var(--def-size-small)/1 var(--def-font-display); }
.defense-school-coach-card em { font-size:var(--def-size-caption); font-style:normal; color:#ddd4e5; }
.defense-school-coach-card button { min-height:36px; padding:.3rem .45rem; border:var(--def-border); border-radius:var(--def-radius-1); background:var(--def-info); color:#17151b; }
.defense-school-coach-card .school-hide { min-width:36px; width:36px; padding:0; background:#302a37; color:#fff; }
.defense-command-deck { grid-area: hud; z-index: var(--z-hud); min-width:0; width:100%; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .35rem; align-items: stretch; }
.defense-command-world { min-width: 0; display: flex; align-items: center; gap: .5rem; padding: .45rem .6rem; border: var(--def-border); border-radius: var(--def-radius-2); background: #211d27; box-shadow: var(--def-shadow-ui); }
.defense-command-world > div { min-width: 0; display: grid; }
.defense-command-world small, .defense-command-world em { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.defense-command-world small { color: #bdb3c7; font-size: var(--def-size-caption); font-weight: 800; }
.defense-command-world b { font: 900 var(--def-size-title)/1 var(--def-font-display); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.defense-command-world em { color: #ddd4e5; font-size: var(--def-size-caption); font-style: normal; }
.defense-command-mark { flex: 0 0 32px; width: 32px; height: 32px; display: grid; place-items: center; }
.defense-command-mark img { max-width: 100%; max-height: 100%; }
.defense-hud { min-width:0; display: flex; gap: .35rem; }
.defense-stat { min-width: 70px; display: flex; align-items: center; justify-content: center; gap: .3rem; padding: .35rem .5rem; border: var(--def-border); border-radius: var(--def-radius-2); background: #fff2cf; color: #17151b; box-shadow: var(--def-shadow-ui); }
.defense-stat > i { width: 22px; height: 22px; display: grid; place-items: center; }
.defense-stat small { display: block; font: 800 var(--def-size-caption)/1 var(--def-font-body); }
.defense-stat b { display: block; font: 900 1.05rem/1 var(--def-font-mono); }
.defense-stat-lives { background: #ff8295; }
.defense-stat-cash { background: var(--def-money); }
.defense-command-actions { grid-column: 1 / -1; min-width:0; width:100%; display: grid; grid-template-columns: repeat(5, minmax(44px, 1fr)) minmax(106px,1.65fr); gap: .3rem; }
.defense-command-actions button { position: relative; display: flex; align-items: center; justify-content: center; gap: .25rem; padding: .3rem; border: var(--def-border); border-radius: var(--def-radius-2); background: #2a2531; color: #fff; box-shadow: 0 3px 0 #17151b; }
.defense-command-actions button.active, .defense-command-actions button[aria-expanded="true"] { background: var(--def-info); color: #121018; }
.defense-command-actions button:disabled { opacity: .45; filter: grayscale(.45); }
.defense-command-actions .rizo-ui-icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.defense-action-label { font-size: var(--def-size-caption); font-style: normal; }
.defense-action-label strong { font-family: var(--def-font-mono); }
.defense-action-circle > b { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; display: grid; place-items: center; padding: 0 3px; border: 2px solid #17151b; border-radius: 999px; background: #fff; color: #17151b; font: 900 .625rem/1 var(--def-font-mono); }
.defense-wave-button { background: var(--def-valid); color: #17151b; }
.defense-wave-button.running { background: var(--def-danger); }
.defense-wave-button.paused { background: var(--def-money); }
.defense-wave-button i { width: 22px; height: 22px; }
.defense-contract-badge { grid-column: 1/-1; padding: .35rem .5rem; border-left: 4px solid var(--field-accent); background: rgb(18 15 23 / .9); font-size: var(--def-size-caption); }
.defense-contract-badge small, .defense-contract-badge b, .defense-contract-badge span { margin-right: .45rem; }

.defense-stage-frame { grid-area: field; min-height: 0; position: relative; display: grid; place-items: center; overflow: hidden; border: var(--def-border); border-radius: var(--def-radius-3); background: #050407; box-shadow: inset 0 0 0 2px rgb(255 255 255 / .05); }
.defense-world {
  position: relative; width: min(100%, 78vh); height: auto; max-height: 100%; aspect-ratio: 1 / 1.12; overflow: hidden;
  container-type: size; border-radius: .6rem; background: #73965a; box-shadow: 0 0 0 2px #17151b, var(--def-shadow-ground); transform: translateZ(0);
  --def-unit-scale: 1;
  --play-outline: #17151b; --play-halo: rgb(255 255 255 / .18); --health-track: #311f28; --health-edge: #17151b;
  --range-edge: rgb(108 220 255 / .72); --range-fill: rgb(84 194 255 / .09); --placement-surface: rgb(83 126 66 / .17);
  --road-shadow: rgb(20 10 15 / .25); --road-border: #67513a; --road-fill: #b99a6d; --road-light: rgb(255 240 205 / .18); --road-texture: rgb(63 44 31 / .13);
}
.defense-world::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background: linear-gradient(rgb(0 0 0 / .015), rgb(0 0 0 / var(--wave-darkness,.035))); }
.defense-world::after { content:""; position:absolute; inset:0; z-index:9; pointer-events:none; box-shadow: inset 0 0 30px rgb(4 2 8 / .32); }
.defense-wave-banner { position:absolute; z-index:var(--z-world-ui); top:.45rem; left:.45rem; display:flex; align-items:stretch; gap:.4rem; max-width:calc(100% - .9rem); padding:.32rem .4rem; border:var(--def-border); border-radius:var(--def-radius-2); background:rgb(14 12 18 / .9); color:#fff; box-shadow:0 3px 0 rgb(23 21 27 / .75); }
.defense-wave-banner > i { flex:0 0 22px; width:22px; height:22px; align-self:center; }
.defense-wave-count { min-width:62px; display:grid; grid-template-columns:auto auto; grid-template-rows:auto auto; column-gap:.25rem; align-content:center; }
.defense-wave-count small { grid-column:1; font-size:var(--def-size-caption); color:#c8becf; }
.defense-wave-count > b { grid-column:1; font:900 1.05rem/1 var(--def-font-mono); }
.defense-wave-count em { grid-column:2; grid-row:1/3; align-self:center; display:grid; gap:.1rem; padding-left:.35rem; border-left:1px solid #4d4353; color:#c8becf; font:800 .625rem/1 var(--def-font-body); font-style:normal; white-space:nowrap; }
.defense-wave-count em strong { color:#fff; font:900 var(--def-size-counter)/1 var(--def-font-mono); }
.defense-phase-indicator { min-width:112px; display:grid; grid-template-columns:9px minmax(0,1fr); align-items:center; gap:.35rem; padding:.2rem .35rem; border:1px solid #4d4353; border-radius:var(--def-radius-1); background:#211d27; }
.defense-phase-indicator > i { width:9px; height:9px; border-radius:50%; background:var(--def-info); box-shadow:0 0 0 2px rgb(255 255 255 / .08); }
.defense-phase-indicator > span { min-width:0; display:grid; grid-template-columns:auto 1fr; gap:.05rem .3rem; align-items:baseline; }
.defense-phase-indicator small { font-size:.625rem; color:#bdb3c7; }
.defense-phase-indicator b { font:900 var(--def-size-small)/1 var(--def-font-display); }
.defense-phase-indicator em { grid-column:1/-1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#ddd4e5; font:700 .625rem/1 var(--def-font-body); font-style:normal; }
.defense-phase-indicator[data-tone="money"] > i { background:var(--def-money); }
.defense-phase-indicator[data-tone="danger"] > i { background:var(--def-danger); }
.defense-phase-indicator[data-tone="valid"] > i { background:var(--def-valid); }
.defense-phase-indicator[data-tone="paused"] > i { background:#c59cff; }
.defense-phase-indicator[data-tone="neutral"] > i { background:var(--def-neutral); }
.defense-layer, .defense-sky, .defense-hills, .defense-trees, .defense-map-props, .defense-world-features, .defense-map-landmarks, .defense-build-pockets, .defense-weather, .defense-obstacles, .defense-route-markers { position: absolute; inset: 0; pointer-events: none; }
.defense-layer { z-index: 6; }
.defense-projectiles { z-index: 7; }
.defense-effects { z-index: 8; }
.defense-sky { z-index:0; background: linear-gradient(#95c9e8 0 25%, transparent 60%); opacity:.42; }
.defense-hills { z-index:0; top: 12%; background: radial-gradient(ellipse at 20% 20%, rgb(255 255 255 / .14) 0 16%, transparent 17%), radial-gradient(ellipse at 78% 14%, rgb(20 55 30 / .15) 0 20%, transparent 21%); }
.defense-trees { z-index:2; background: radial-gradient(circle at 8% 14%, #2d653c 0 3.5%, transparent 4%), radial-gradient(circle at 90% 18%, #285c39 0 4%, transparent 4.5%), radial-gradient(circle at 9% 86%, #275c36 0 4.5%, transparent 5%), radial-gradient(circle at 92% 82%, #326841 0 4%, transparent 4.5%); opacity:.72; }

.defense-road { position:absolute; inset:0; width:100%; height:100%; z-index:3; overflow:visible; pointer-events:none; }
.defense-road path { fill:none; vector-effect:non-scaling-stroke; stroke-linecap:round; stroke-linejoin:round; }
.defense-road-shadow { stroke:var(--road-shadow); stroke-width:74; }
.defense-road-border { stroke:var(--road-border); stroke-width:66; }
.defense-road-fill { stroke:var(--road-fill); stroke-width:58; }
.defense-road-edge-light { stroke:var(--road-light); stroke-width:2; stroke-dasharray:10 25; }
.defense-road-stitch { stroke:var(--road-texture); stroke-width:1.5; stroke-dasharray:2 22; }

.defense-build-pocket {
  position:absolute; left:var(--pocket-x); top:var(--pocket-y); width:58px; height:34px; translate:-50% -50%; z-index:2;
  border:1.5px solid rgb(255 248 220 / .32); border-radius:48% 52% 46% 54%; background:var(--placement-surface);
  box-shadow:inset 0 0 0 5px rgb(25 30 24 / .07),0 2px 0 rgb(20 12 20 / .12); opacity:.72;
}
.defense-build-pocket::before { content:""; position:absolute; inset:5px 8px; border:1px dotted rgb(255 255 255 / .2); border-radius:inherit; }
.defense-world.placement-mode .defense-build-pocket { animation:def-pocket-pulse 1.25s ease-in-out infinite; border-color:var(--def-valid); background:color-mix(in srgb,var(--def-valid) 18%,var(--placement-surface)); opacity:1; }
.build-pocket-ember { border-radius:44% 56% 50% 48%; }
.build-pocket-moon::before { border-style:solid; border-radius:50%; }
.build-pocket-storm::before { border-style:dashed; }
.build-pocket-blizzard { clip-path:polygon(5% 30%,20% 8%,47% 15%,68% 0,96% 27%,90% 82%,62% 100%,31% 91%,0 70%); border-radius:0; }
.build-pocket-eclipse::before { rotate:18deg; border-color:rgb(255 139 208 / .42); }

.defense-landmark { position:absolute; left:var(--landmark-x); top:var(--landmark-y); translate:-50% -50%; z-index:2; filter:drop-shadow(0 4px 0 rgb(24 25 22 / .28)); }
.defense-obstacle { position:absolute; left:var(--obstacle-x); top:var(--obstacle-y); translate:-50% -50%; z-index:2; width:var(--obstacle-size,26px); height:var(--obstacle-size,26px); border-radius:48% 52% 40% 60%; background:#5f7057; box-shadow:0 4px 0 rgb(24 25 22 / .28); }
.defense-landmark span, .defense-route-marker span, .defense-entrance span, .defense-gate b { display:none; }

.defense-entrance, .defense-gate { position:absolute; z-index:5; display:grid; place-items:center; width:34px; height:34px; translate:-50% -50%; border:2px solid var(--play-outline); border-radius:50%; background:rgb(255 242 207 / .94); color:#17151b; box-shadow:0 3px 0 rgb(23 21 27 / .7),0 0 0 2px var(--play-halo); }
.defense-entrance { left:var(--entrance-x); top:var(--entrance-y); }
.defense-gate { left:var(--gate-x); top:var(--gate-y); background:#ff8b72; }
.defense-entrance > i, .defense-gate > i { width:13px; height:3px; border-radius:99px; background:currentColor; position:relative; }
.defense-entrance > i::after, .defense-gate > i::after { content:""; position:absolute; right:-1px; top:50%; width:7px; height:7px; border-top:3px solid currentColor; border-right:3px solid currentColor; translate:0 -50%; rotate:45deg; }
.defense-gate > i { display:none; }
.defense-gate span { font-size:.9rem; }
.defense-route-scout { position:absolute; z-index:5; width:20px; height:20px; translate:-50% -50%; pointer-events:none; opacity:0; transition:opacity .16s ease; }
.defense-route-scout i { display:block; width:100%; height:100%; border:2px solid #fff; border-radius:50%; box-shadow:0 0 0 3px rgb(23 21 27 / .45); }
.defense-world.route-tracing .defense-route-scout, .defense-route-scout.active { opacity:1; }
.defense-route-marker { position:absolute; left:var(--route-x); top:var(--route-y); z-index:4; width:12px; height:4px; translate:-50% -50%; rotate:var(--route-angle); opacity:0; transition:opacity .18s ease; }
.defense-route-marker::before, .defense-route-marker::after { content:""; position:absolute; background:rgb(255 248 225 / .72); border-radius:99px; }
.defense-route-marker::before { inset:1px 2px; }
.defense-route-marker::after { right:0; top:0; width:4px; height:4px; rotate:45deg; border-top:1px solid #fff; border-right:1px solid #fff; background:transparent; }
.defense-world.route-tracing .defense-route-marker { opacity:.55; }
.defense-world.gate-alert .defense-gate { animation:def-gate-alert .55s ease-in-out infinite alternate; }
.defense-world.gate-critical { box-shadow:0 0 0 3px var(--def-danger), inset 0 0 38px rgb(255 50 80 / .25); }

.defense-world.map-grove {
  background:radial-gradient(ellipse at 18% 85%,#345d34 0 15%,transparent 16%),linear-gradient(#8fb56d,#638f52);
  --play-outline:#132019;--play-halo:rgb(236 255 220 / .18);--road-border:#68533b;--road-fill:#b9a06e;--placement-surface:rgb(67 123 62 / .24);
}
.defense-world.map-grove .defense-map-props { background:radial-gradient(ellipse at 7% 55%,#5c3f2b 0 4%,transparent 4.5%),radial-gradient(ellipse at 93% 42%,#5c3f2b 0 5%,transparent 5.5%); }
.defense-world.map-ember {
  background:radial-gradient(circle at 14% 80%,#ff7546 0 2%,#702d22 3% 5%,transparent 6%),radial-gradient(circle at 86% 25%,#ff9b4e 0 2%,#702d22 3% 6%,transparent 7%),linear-gradient(#894734,#4c2d31);
  --play-outline:#211110;--play-halo:rgb(255 202 148 / .24);--road-border:#4e332d;--road-fill:#8d6551;--road-light:rgb(255 198 133 / .2);--placement-surface:rgb(99 45 35 / .36);
}
.defense-world.map-ember .defense-trees { opacity:.16; filter:saturate(.2); }
.defense-world.map-moon {
  background:radial-gradient(circle at 16% 20%,#e5ddff 0 4%,transparent 4.5%),radial-gradient(circle at 79% 76%,#70688f 0 7%,transparent 7.5%),linear-gradient(#46405d,#28273f);
  --play-outline:#171523;--play-halo:rgb(222 211 255 / .32);--road-border:#555069;--road-fill:#8a839f;--road-light:rgb(239 231 255 / .26);--placement-surface:rgb(101 92 137 / .32);
}
.defense-world.map-moon .defense-trees { opacity:.22; filter:hue-rotate(35deg) saturate(.45); }
.defense-world.map-storm {
  background:linear-gradient(115deg,#426271,#5d7e7d 45%,#344d5b);
  --play-outline:#10252d;--play-halo:rgb(177 239 255 / .28);--road-border:#40545b;--road-fill:#768d8d;--road-light:rgb(199 247 255 / .24);--placement-surface:rgb(54 105 112 / .31);
}
.defense-world.map-storm .defense-trees { opacity:.34; filter:saturate(.55) hue-rotate(18deg); }
.defense-world.map-blizzard {
  background:radial-gradient(ellipse at 20% 80%,#f3fbff 0 12%,transparent 13%),linear-gradient(#b9d8e7,#759cad);
  --play-outline:#102a35;--play-halo:rgb(255 255 255 / .44);--health-track:#17323d;--health-edge:#0c2731;--road-border:#617985;--road-fill:#9aaeb7;--road-light:rgb(255 255 255 / .38);--placement-surface:rgb(218 244 250 / .32);
}
.defense-world.map-blizzard .defense-trees { opacity:.42; filter:brightness(1.4) saturate(.45); }
.defense-world.map-eclipse {
  background:radial-gradient(circle at 75% 18%,#ff6fbd 0 4%,#28182f 4.5% 8%,transparent 8.5%),linear-gradient(#2b2135,#151321);
  --play-outline:#f7ddff;--play-halo:rgb(255 112 194 / .32);--health-track:#120d19;--health-edge:#f0d9ff;--range-edge:rgb(255 170 226 / .82);--range-fill:rgb(255 91 187 / .10);--road-border:#3e3147;--road-fill:#66536e;--road-light:rgb(255 173 224 / .18);--placement-surface:rgb(75 42 91 / .42);
}
.defense-world.map-eclipse .defense-trees { opacity:.10; filter:saturate(.15); }
.defense-world.weather-active { --play-halo:rgb(255 255 255 / .38); }

.defense-world-features { z-index:2; overflow:hidden; }
.defense-world-feature { position:absolute; display:block; pointer-events:none; }
.terrain-root { width:92px; height:32px; border:8px solid #59412d; border-left-color:transparent; border-top-color:transparent; border-radius:50%; opacity:.74; }
.terrain-root-a { left:2%; bottom:12%; rotate:14deg; } .terrain-root-b { right:-5%; top:34%; rotate:196deg; scale:.85; }
.terrain-vine { left:6%; top:7%; width:46px; height:92px; border-left:5px solid #36592f; border-radius:50%; rotate:-28deg; opacity:.62; }
.terrain-vent { width:30px; height:17px; border:5px solid #7d3b2d; border-radius:50%; background:#221311; box-shadow:inset 0 0 0 3px #ff6c39,0 0 12px rgb(255 87 44 / .26); }
.terrain-vent-a { left:8%; top:68%; } .terrain-vent-b { right:8%; top:18%; scale:.72; }
.terrain-lava-crack { left:54%; bottom:6%; width:82px; height:34px; border-bottom:3px solid #ff7546; border-radius:50%; rotate:-12deg; filter:drop-shadow(0 0 4px #ff7546); opacity:.56; }
.terrain-orbit { left:50%; top:46%; width:140px; height:92px; translate:-50% -50%; border:2px solid rgb(210 198 255 / .22); border-radius:50%; rotate:-18deg; }
.terrain-crater { border:3px solid rgb(42 39 63 / .42); border-radius:50%; background:rgb(197 190 230 / .08); }
.terrain-crater-a { left:6%; bottom:12%; width:48px; height:27px; } .terrain-crater-b { right:8%; top:32%; width:34px; height:20px; }
.terrain-charge-puddle { width:64px; height:24px; border:2px solid rgb(113 221 239 / .28); border-radius:50%; background:rgb(72 137 149 / .18); box-shadow:inset 0 0 0 3px rgb(181 245 255 / .08); }
.terrain-charge-puddle-a { left:8%; top:27%; rotate:-9deg; } .terrain-charge-puddle-b { right:6%; bottom:13%; scale:.78; rotate:8deg; }
.terrain-wind-lane { left:48%; top:4%; width:96px; height:18px; border-top:2px solid rgb(190 240 255 / .22); border-bottom:1px solid rgb(190 240 255 / .14); rotate:-17deg; border-radius:50%; }
.terrain-snowbank { width:96px; height:38px; border-radius:60% 40% 45% 55%; background:rgb(241 253 255 / .33); box-shadow:inset 0 -7px rgb(111 169 189 / .16); }
.terrain-snowbank-a { left:-3%; top:9%; rotate:-8deg; } .terrain-snowbank-b { right:-7%; bottom:8%; scale:.88; rotate:9deg; }
.terrain-ice-crack { left:43%; top:8%; width:70px; height:54px; background:linear-gradient(145deg,transparent 46%,rgb(48 118 145 / .28) 47% 49%,transparent 50%) center/22px 25px; rotate:8deg; }
.terrain-shadow-lane { left:36%; top:12%; width:82px; height:70%; rotate:18deg; background:linear-gradient(90deg,transparent,rgb(11 6 18 / .18),transparent); border-radius:50%; }
.terrain-reveal-zone { width:58px; height:34px; border:2px solid rgb(255 113 193 / .24); border-radius:50%; box-shadow:0 0 14px rgb(255 93 190 / .10),inset 0 0 12px rgb(255 255 255 / .05); }
.terrain-reveal-zone-a { left:10%; bottom:14%; } .terrain-reveal-zone-b { right:7%; top:35%; scale:.74; }

.defense-weather { z-index:4; opacity:calc(.42 * var(--defense-weather-density, 1)); mix-blend-mode:screen; }
.weather-storm { background:linear-gradient(110deg,transparent 47%,rgb(255 245 145 / .28) 48%,transparent 49%) 0 0/140px 220px; }
.weather-blizzard { background-image:radial-gradient(circle,#fff 0 1px,transparent 1.5px); background-size:22px 26px; }
.weather-eclipse { background:radial-gradient(circle at 70% 20%,transparent 0 15%,rgb(10 5 20 / .34) 50%); mix-blend-mode:multiply; }
.defense-world.low-fx .defense-weather, .defense-world.fx-potato .defense-weather { opacity:.16; animation:none; }
.defense-world.low-fx .defense-world-feature, .defense-world.fx-potato .defense-world-feature { animation:none; filter:none; }

.defense-tower {
  position:absolute; z-index:6; width:calc(62px * var(--def-unit-scale)); height:calc(76px * var(--def-unit-scale)); translate:-50% -88%;
  padding:0; border:0; background:none; transform-origin:50% 88%; filter:drop-shadow(0 0 1.5px var(--play-outline)) drop-shadow(0 5px 2px rgb(20 10 20 / .26));
  pointer-events:auto; touch-action:none;
}
.defense-tower::before { content:""; position:absolute; left:50%; bottom:4px; width:calc(43px * var(--def-unit-scale)); height:calc(14px * var(--def-unit-scale)); translate:-50% 50%; border-radius:50%; background:rgb(20 12 20 / .25); box-shadow:0 2px 3px rgb(0 0 0 / .12); z-index:-2; }
.defense-tower::after { content:""; position:absolute; left:50%; bottom:4px; width:calc(34px * var(--def-unit-scale)); height:calc(10px * var(--def-unit-scale)); translate:-50% 50%; border:1.5px solid rgb(255 244 210 / .48); border-radius:50%; background:rgb(255 255 255 / .035); z-index:-1; }
.defense-tower .defense-rizo, .defense-tower .mini-pet { width:100%; height:100%; max-width:none; max-height:none; pointer-events:none; }
.defense-tower .mini-pet-shadow { opacity:.28; }
.defense-range { position:absolute; left:50%; bottom:10px; width:var(--tower-range-width,150px); height:var(--tower-range-height,150px); translate:-50% 50%; border:1.5px solid var(--range-edge); border-radius:50%; background:var(--range-fill); box-shadow:inset 0 0 0 1px rgb(255 255 255 / .04); opacity:0; pointer-events:none; z-index:-3; transition:opacity .12s ease; }
.defense-range::after { content:""; position:absolute; inset:10%; border-radius:50%; background:radial-gradient(circle,transparent 56%,rgb(255 255 255 / .035) 57% 59%,transparent 60%); opacity:.7; }
.defense-tower.selected { filter:drop-shadow(0 0 1px var(--play-outline)) drop-shadow(0 0 8px var(--field-accent)) drop-shadow(0 5px 2px rgb(20 10 20 / .22)); }
.defense-tower.selected .defense-range { opacity:1; }
.defense-aura { position:absolute; left:50%; bottom:9px; width:calc(54px * var(--def-unit-scale)); height:calc(28px * var(--def-unit-scale)); translate:-50% 50%; border-radius:50%; opacity:0; pointer-events:none; z-index:-2; }
.defense-tier-2 .defense-aura, .defense-tier-3 .defense-aura, .defense-tier-4 .defense-aura { opacity:.34; background:radial-gradient(ellipse,var(--tower-color) 0 18%,transparent 66%); filter:blur(1px); }
.defense-copy { display:none; }
.defense-level, .defense-field-mark { position:absolute; z-index:2; display:grid; place-items:center; border:1.5px solid var(--play-outline); background:#fff2cf; color:#17151b; box-shadow:0 2px 0 rgb(23 21 27 / .75); font:900 .5625rem/1 var(--def-font-mono); }
.defense-level { right:-3px; bottom:8px; min-width:25px; min-height:16px; padding:2px 3px; border-radius:999px; }
.defense-field-mark { left:-3px; bottom:10px; width:17px; height:17px; border-radius:50%; color:var(--tower-color); }
.defense-tower.defense-upgrade-1 { --tower-flair:#ffd95b; }
.defense-tower.defense-upgrade-2::before, .defense-tower.defense-upgrade-3::before, .defense-tower.defense-upgrade-4::before { box-shadow:0 0 11px var(--tower-flair,var(--field-accent)),0 2px 3px rgb(0 0 0 / .12); }

.defense-shell[data-field-density="crowded"] .defense-tower:not(.selected) .defense-level,
.defense-shell[data-field-density="crowded"] .defense-tower:not(.selected) .defense-field-mark { display:none; }
.defense-shell[data-field-density="crowded"] .defense-tower:not(.selected) .defense-aura { opacity:.22; }

.defense-enemy {
  position:absolute; left:0; top:0; z-index:6; width:calc(36px * var(--def-unit-scale)); height:calc(52px * var(--def-unit-scale)); translate:-50% calc(-100% + 16px); pointer-events:none;
  filter:drop-shadow(0 0 1.25px var(--play-outline)) drop-shadow(0 3px 1px rgb(20 10 20 / .3)); transform-origin:50% calc(100% - 16px);
}
.defense-enemy.balloon-boss { width:calc(64px * var(--def-unit-scale)); height:calc(84px * var(--def-unit-scale)); scale:1; z-index:7; }
.balloon-body { position:absolute; inset:0 3px 15px; width:auto; height:auto; border:3px solid var(--play-outline); border-radius:50% 50% 46% 46%; background:var(--balloon-color,#ff637f); box-shadow:inset -6px -6px 0 rgb(20 10 20 / .14), inset 5px 6px 0 rgb(255 255 255 / .2),0 0 0 1px var(--play-halo); }
.balloon-shine { position:absolute; left:20%; top:14%; width:22%; height:30%; border-radius:50%; background:rgb(255 255 255 / .45); rotate:20deg; }
.balloon-face { position:absolute; left:50%; top:52%; width:24px; height:16px; translate:-50% -50%; }
.balloon-face u { position:absolute; top:0; width:4px; height:6px; border-radius:50%; background:#17151b; }
.balloon-face u:first-child { left:4px; } .balloon-face u:nth-child(2) { right:4px; }
.balloon-face em { position:absolute; left:50%; bottom:-2px; translate:-50%; font:900 7px/1 var(--def-font-mono); color:#17151b; text-decoration:none; }
.balloon-knot { position:absolute; left:50%; top:auto; right:auto; bottom:12px; width:10px; height:8px; translate:-50%; background:var(--balloon-color); border:2px solid var(--play-outline); rotate:45deg; }
.balloon-string { position:absolute; left:50%; top:auto; right:auto; bottom:0; width:1px; height:15px; background:var(--play-outline); }
.balloon-health { position:absolute; left:50%; right:auto; top:-7px; bottom:auto; width:38px; height:6px; translate:-50%; overflow:hidden; border:1px solid var(--health-edge); border-radius:99px; background:var(--health-track); box-shadow:0 0 0 1px var(--play-halo); }
.balloon-health i { display:block; width:100%; height:100%; background:var(--def-valid); transform-origin:left; }
.balloon-trait, .balloon-state { position:absolute; display:grid; place-items:center; min-width:18px; height:18px; padding:0 3px; border:2px solid var(--play-outline); border-radius:99px; background:#fff; color:#17151b; font:900 .625rem/1 var(--def-font-mono); box-shadow:0 0 0 1px var(--play-halo); }
.balloon-trait { right:-7px; top:2px; } .balloon-state { left:-8px; top:18px; }
.defense-enemy.is-camo, .defense-enemy.camouflaged { opacity:.58; filter:drop-shadow(0 0 2px var(--play-outline)) drop-shadow(0 0 7px var(--play-halo)); }
.defense-enemy.is-phasing, .defense-enemy.phased { opacity:.42; }
.defense-enemy.revealed { opacity:1; filter:drop-shadow(0 0 1.5px var(--play-outline)) drop-shadow(0 0 7px #fff); }
.defense-enemy.is-burn .balloon-body, .defense-enemy.skin-burn .balloon-body { box-shadow:0 0 12px #ff8a3d,inset -6px -6px 0 rgb(20 10 20 / .14); }
.defense-enemy.is-poison .balloon-body, .defense-enemy.skin-poison .balloon-body { box-shadow:0 0 12px #8cf05d,inset -6px -6px 0 rgb(20 10 20 / .14); }
.defense-enemy.popped { --pop-bias-x:0; --pop-bias-y:0; --pop-angle:0rad; --pop-weight:1; animation:def-pop .34s cubic-bezier(.15,.74,.28,1) forwards; }
.defense-shot { position:absolute; left:0; top:0; z-index:7; width:10px; height:10px; translate:-50% -50%; border:2px solid var(--play-outline); border-radius:50%; background:#fff; box-shadow:0 0 7px currentColor,0 0 0 1px var(--play-halo); pointer-events:none; }
.defense-impact { position:absolute; z-index:8; width:28px; height:28px; translate:-50% -50%; border:3px solid var(--impact-color,#fff); border-radius:50%; filter:drop-shadow(0 0 2px var(--play-outline)); animation:def-impact .42s ease-out forwards; pointer-events:none; }

.defense-placement-preview {
  position:absolute; z-index:8; width:var(--placement-footprint,60px); height:calc(var(--placement-footprint,60px) * .48); translate:-50% -50%;
  border:2px solid var(--def-info); border-radius:50%; background:rgb(104 207 255 / .12); box-shadow:0 3px 0 rgb(20 10 20 / .18),inset 0 0 0 5px rgb(255 255 255 / .035); pointer-events:none;
}
.defense-placement-preview::before { content:""; position:absolute; left:50%; top:50%; width:6px; height:6px; translate:-50% -50%; border-radius:50%; background:currentColor; box-shadow:0 0 0 4px rgb(255 255 255 / .12); }
.defense-placement-preview::after { content:""; position:absolute; left:50%; top:50%; width:var(--placement-range,130px); height:var(--placement-range,130px); translate:-50% -50%; border:1px solid currentColor; border-radius:50%; opacity:.22; }
.defense-placement-range { position:absolute; left:50%; top:50%; width:var(--placement-range,130px); height:var(--placement-range,130px); translate:-50% -50%; border-radius:50%; background:radial-gradient(circle,transparent 62%,currentColor 63% 64%,transparent 65%); opacity:.08; }
.defense-placement-foot { position:absolute; left:50%; top:50%; width:8px; height:8px; translate:-50% -50%; border:2px solid #fff; border-radius:50%; background:currentColor; box-shadow:0 0 0 2px rgb(23 21 27 / .46); }
.defense-placement-label { position:absolute; left:50%; bottom:calc(100% + 7px); translate:-50% 0; width:max-content; max-width:150px; padding:4px 7px; border:1.5px solid var(--play-outline); border-radius:999px; background:rgb(20 16 24 / .9); color:#fff; font:900 .625rem/1 var(--def-font-mono); letter-spacing:.02em; box-shadow:0 2px 0 rgb(20 12 20 / .35); }
.defense-placement-preview.valid .defense-placement-label { color:#132018; background:var(--def-valid); }
.defense-placement-preview.invalid .defense-placement-label { background:var(--def-danger); }
.defense-world.placement-valid .defense-placement-preview { color:var(--def-valid); border-color:var(--def-valid); background:rgb(115 232 144 / .16); animation:def-placement-valid .72s ease-out; }
.defense-world.placement-invalid .defense-placement-preview { color:var(--def-danger); border-color:var(--def-danger); background:rgb(255 99 127 / .15); animation:def-invalid .28s linear; }
.defense-drag-ghost { position:fixed; z-index:var(--z-critical); width:76px; height:90px; translate:-50% -82%; pointer-events:none; filter:drop-shadow(0 0 1px #17151b) drop-shadow(0 12px 7px rgb(0 0 0 / .36)); }
.defense-drag-ghost::after { content:""; position:absolute; left:50%; bottom:3px; width:var(--placement-footprint,52px); height:calc(var(--placement-footprint,52px) * .36); translate:-50% 50%; border-radius:50%; background:rgb(0 0 0 / .28); box-shadow:0 0 0 2px rgb(255 255 255 / .07); }
.defense-drag-foot { position:absolute; left:50%; bottom:3px; width:9px; height:9px; translate:-50% 50%; border:2px solid #fff; border-radius:50%; background:var(--def-info); z-index:3; box-shadow:0 0 0 3px rgb(23 21 27 / .5); }
.defense-drag-ghost.valid .defense-drag-foot { background:var(--def-valid); }
.defense-drag-ghost.invalid .defense-drag-foot { background:var(--def-danger); }
.defense-drag-ghost.snapped .defense-drag-foot { box-shadow:0 0 0 3px rgb(23 21 27 / .5),0 0 0 7px rgb(104 207 255 / .28); }
.defense-drag-rizo { width:100%; height:100%; }
.defense-drag-reason { position:absolute; left:50%; top:100%; translate:-50% .25rem; width:max-content; max-width:180px; padding:.3rem .45rem; border:2px solid #17151b; border-radius:.5rem; background:#fff2cf; color:#17151b; font-size:var(--def-size-caption); }
.defense-drag-ghost.valid .defense-drag-reason { background:var(--def-valid); }
.defense-drag-ghost.invalid .defense-drag-reason { background:var(--def-danger); }

.defense-field-feed { grid-area:feed; z-index:var(--z-hud); min-height:48px; display:grid; gap:.25rem; }
.defense-message, .defense-live-status, .defense-boss-bar { display:flex; align-items:center; gap:.45rem; min-width:0; padding:.4rem .55rem; border:var(--def-border); border-radius:var(--def-radius-2); background:rgb(28 24 34 / .94); box-shadow:0 3px 0 #17151b; }
.defense-message b { flex:0 0 auto; font:900 var(--def-size-small)/1 var(--def-font-display); color:var(--field-accent); }
.defense-message span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--def-size-small); color:#e0d9e5; }
.defense-live-status small { font-size:var(--def-size-caption); color:#bfb4c8; }
.defense-live-status b { font:900 var(--def-size-small)/1 var(--def-font-mono); }
.defense-live-status > i, .defense-boss-bar > i { flex:1; height:8px; overflow:hidden; border:1px solid #17151b; border-radius:99px; background:#4b3f50; }
.defense-live-status u, .defense-boss-bar u { display:block; height:100%; width:0; background:var(--def-valid); transition:width .15s linear; }
.defense-boss-bar { background:#3b1d2a; }
.defense-boss-bar span { display:grid; }
.defense-boss-bar small { font-size:var(--def-size-caption); color:#ffb0bc; }
.defense-boss-bar em { font:900 var(--def-size-small)/1 var(--def-font-mono); font-style:normal; }
.defense-shell[data-defense-phase="planning"] .defense-message { border-left:5px solid var(--def-info); }
.defense-shell[data-defense-phase="countdown"] .defense-message { border-left:5px solid var(--def-money); }
.defense-shell[data-defense-phase="combat"] .defense-message { border-left:5px solid var(--def-danger); }
.defense-shell[data-defense-phase="packet-break"] .defense-message { border-left:5px solid var(--def-valid); }
.defense-shell[data-defense-phase="paused"] .defense-message { border-left:5px solid #c59cff; }

.defense-context-scrim { position:absolute; inset:0; z-index:calc(var(--z-sheet) - 1); width:100%; height:100%; min-width:0; min-height:0; padding:0; border:0; border-radius:0; background:rgb(5 4 7 / .46); box-shadow:none; cursor:default; }
.defense-shell[data-context-surface="abilities"] .defense-context-scrim,
.defense-shell[data-context-surface="tower"] .defense-context-scrim { background:rgb(5 4 7 / .08); }
.defense-context-dock { grid-area:context; position:relative; z-index:var(--z-sheet); min-height:0; }
.defense-shell.context-open .defense-wave-preview { visibility:hidden; pointer-events:none; }
.defense-wave-preview { min-height:36px; display:flex; align-items:center; gap:.45rem; overflow-x:auto; padding:.3rem .45rem; border:var(--def-border); border-radius:var(--def-radius-2); background:#211d27; scrollbar-width:thin; }
.defense-wave-preview small, .defense-wave-preview em { flex:0 0 auto; font-size:var(--def-size-caption); font-style:normal; }
.defense-wave-preview > span { display:flex; gap:.25rem; }
.defense-wave-preview i { display:flex; align-items:center; gap:.2rem; padding:.2rem .35rem; border:1px solid #514758; border-radius:99px; background:#302a36; font-size:var(--def-size-caption); font-style:normal; white-space:nowrap; }
.defense-wave-preview i b { font-family:var(--def-font-mono); color:var(--def-money); }
.defense-tower-panel, .defense-ability-tray, .defense-intel-tray, .defense-field-menu { position:absolute; z-index:var(--z-sheet); left:0; right:0; bottom:0; max-height:min(58vh,520px); overflow:auto; overscroll-behavior:contain; padding:.65rem; border:var(--def-border); border-radius:var(--def-radius-3) var(--def-radius-3) 0 0; background:#211d27; color:#fff; box-shadow:0 -10px 32px rgb(0 0 0 / .45); }
.defense-tower-panel { display:grid; grid-template-columns:repeat(4,1fr); gap:.4rem; }
.defense-panel-hero { grid-column:1/-1; display:flex; align-items:center; gap:.6rem; min-width:0; }
.defense-panel-portrait { flex:0 0 70px; height:70px; display:grid; place-items:center; border:var(--def-border); border-radius:var(--def-radius-2); background:#17131c; }
.defense-panel-rizo { max-width:66px; max-height:66px; }
.defense-panel-copy { min-width:0; flex:1; }
.defense-panel-copy small { font-size:var(--def-size-caption); color:#c8becf; }
.defense-panel-copy > b { display:block; font:900 var(--def-size-title)/1.1 var(--def-font-display); }
.defense-panel-copy u { color:var(--def-money); text-decoration:none; }
.defense-panel-stats { display:flex; gap:.3rem; margin-top:.35rem; }
.defense-panel-stats span { flex:1; min-width:0; padding:.3rem; border:1px solid #4d4353; border-radius:.45rem; background:#17131c; text-align:center; font-size:var(--def-size-caption); }
.defense-panel-action { display:grid; place-items:center; gap:.2rem; padding:.35rem; border:var(--def-border); border-radius:var(--def-radius-2); background:#302a37; color:#fff; }
.defense-panel-action.upgrade { background:var(--def-money); color:#17151b; }
.defense-panel-action.target { background:var(--def-info); color:#17151b; }
.defense-panel-action.power { background:#c59cff; color:#17151b; }
.defense-panel-action.sell { background:var(--def-danger); color:#17151b; }
.defense-sheet-close { position:absolute; right:.4rem; top:.4rem; border:var(--def-border); border-radius:50%; background:#fff; color:#17151b; }
.defense-ability-tray-head, .defense-intel-head, .defense-field-menu-head { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.5rem; }
.defense-sheet-title { display:flex; align-items:center; gap:.45rem; }
.defense-sheet-title > span { width:38px; height:38px; display:grid; place-items:center; border:var(--def-border); border-radius:50%; background:var(--def-neutral); color:#17151b; }
.defense-sheet-title small { display:block; font-size:var(--def-size-caption); color:#bdb3c7; }
.defense-sheet-title b { font:900 var(--def-size-title-small)/1 var(--def-font-display); }
.defense-ability-list, .defense-intel-list { display:grid; gap:.4rem; }
.defense-ability-card, .defense-intel-card, .defense-intel-map, .defense-intel-readiness { width:100%; display:flex; align-items:center; gap:.5rem; padding:.5rem; border:var(--def-border); border-radius:var(--def-radius-2); background:#302a37; color:#fff; text-align:left; }
.defense-ability-group.ready .defense-ability-card { border-color:var(--def-valid); }
.defense-ability-copy { flex:1; display:grid; min-width:0; }
.defense-ability-copy small, .defense-ability-copy em, .defense-intel-card small, .defense-intel-card em, .defense-intel-card i { font-size:var(--def-size-caption); font-style:normal; }
.defense-intel-card > span { flex:0 0 36px; height:36px; display:grid; place-items:center; border:2px solid #17151b; border-radius:50%; background:var(--intel-color); color:#17151b; }
.defense-intel-card > div { min-width:0; display:grid; }
.defense-field-menu-grid { display:grid; grid-template-columns:1fr 1fr; gap:.4rem; }
.defense-field-menu-grid button { display:flex; align-items:center; gap:.45rem; padding:.5rem; border:var(--def-border); border-radius:var(--def-radius-2); background:#302a37; color:#fff; text-align:left; }
.defense-field-menu-grid button.danger { grid-column:1/-1; background:#4a202c; border-color:var(--def-danger); }
.defense-field-menu-grid small { display:block; font-size:var(--def-size-caption); color:#d5cbdc; }

.defense-deploy-dock { grid-area:roster; z-index:var(--z-hud); position:relative; min-height:0; }
.defense-roster { display:grid; grid-auto-flow:column; grid-auto-columns:clamp(112px,30vw,150px); gap:.4rem; overflow-x:auto; overflow-y:hidden; padding:.2rem .15rem .4rem; scroll-snap-type:x proximity; scrollbar-color:var(--field-accent) #211d27; scrollbar-width:thin; }
.defense-roster::after { content:""; width:max(.1rem,env(safe-area-inset-right)); }
.defense-roster-pet { position:relative; scroll-snap-align:start; height:84px; display:grid; grid-template-columns:58px 1fr; align-items:center; gap:.35rem; padding:.3rem .35rem; overflow:hidden; border:var(--def-border); border-radius:var(--def-radius-2); background:#2a2531; color:#fff; box-shadow:0 3px 0 #17151b; text-align:left; }
.defense-roster-pet::before { content:""; position:absolute; inset:auto 0 0; height:4px; background:var(--roster-color,var(--field-accent)); }
.defense-roster-pet.placement-selected { background:var(--def-info); color:#17151b; }
.defense-roster-pet:disabled { opacity:.48; }
.defense-roster-rizo { width:58px; height:72px; object-fit:contain; }
.defense-roster-info { min-width:0; display:grid; }
.defense-roster-info b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:900 var(--def-size-small)/1 var(--def-font-display); }
.defense-roster-info small { font-size:var(--def-size-caption); }
.defense-roster-badge, .defense-roster-copies { position:absolute; right:.25rem; top:.25rem; min-width:22px; height:22px; display:grid; place-items:center; padding:0 3px; border:2px solid #17151b; border-radius:99px; background:var(--def-money); color:#17151b; font:900 .625rem/1 var(--def-font-mono); text-decoration:none; }
.defense-roster-copies { top:auto; bottom:.3rem; background:#fff; }
.defense-roster-mastery, .defense-roster-frame { display:none; }
.defense-cancel-placement { position:absolute; right:.25rem; bottom:calc(100% + .25rem); border:var(--def-border); border-radius:var(--def-radius-2); background:var(--def-danger); color:#17151b; }
.defense-shell.bench-collapsed .defense-deploy-dock { display:none; }

.defense-stage-frame { position:relative; isolation:isolate; }
.defense-stage-frame::after { content:""; position:absolute; inset:.1rem; z-index:calc(var(--z-critical) - 1); pointer-events:none; border:2px solid transparent; border-radius:var(--def-radius-3); opacity:0; }
.defense-stage-frame.moment-pulse::after { border-color:color-mix(in srgb,var(--field-accent) 72%,#fff); animation:def-moment-frame .7s ease-out both; }
.defense-stage-frame.moment-heavy::after { border-width:4px; box-shadow:inset 0 0 36px rgb(255 255 255 / .08),0 0 22px color-mix(in srgb,var(--field-accent) 55%,transparent); }
.defense-shell.cinematic-danger .defense-stage-frame::after { border-color:var(--def-danger); box-shadow:inset 0 0 42px rgb(255 60 90 / .2),0 0 22px rgb(255 60 90 / .24); }
.defense-shell.cinematic-boss .defense-stage-frame::after { border-color:var(--def-money); box-shadow:inset 0 0 48px rgb(255 212 90 / .15),0 0 26px rgb(255 212 90 / .24); }
.defense-moment { position:absolute; z-index:var(--z-critical); left:50%; top:clamp(4.35rem,14%,6.25rem); width:min(calc(100% - 1rem),560px); translate:-50% 0; pointer-events:none; display:grid; place-items:center; text-align:left; }
.defense-moment[hidden] { display:none; }
.defense-moment-card { max-width:100%; display:grid; grid-template-columns:44px minmax(0,1fr); align-items:center; gap:.55rem; padding:.52rem .72rem; border:var(--def-border); border-radius:var(--def-radius-2); background:rgb(24 20 29 / .95); color:#fff; box-shadow:0 5px 0 rgb(0 0 0 / .55),0 10px 28px rgb(0 0 0 / .28); animation:def-moment-card var(--moment-duration,900ms) cubic-bezier(.2,.8,.2,1) both; }
.defense-moment-card > i { width:42px; height:42px; display:grid; place-items:center; border:2px solid #17151b; border-radius:50%; background:var(--moment-accent,var(--field-accent)); color:#17151b; font:900 1.08rem/1 var(--def-font-mono); font-style:normal; box-shadow:0 2px 0 #000; }
.defense-moment-card > span { min-width:0; display:grid; gap:.08rem; }
.defense-moment-card small { color:#bdb4c3; font:900 var(--def-size-caption)/1 var(--def-font-mono); letter-spacing:.06em; }
.defense-moment-card b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:900 clamp(.95rem,3vw,1.25rem)/1 var(--def-font-display); color:var(--moment-accent,var(--field-accent)); }
.defense-moment-card em { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#f1e9f4; font:700 var(--def-size-small)/1.2 var(--def-font-body); font-style:normal; }
.defense-moment.tone-info { --moment-accent:var(--def-info); }
.defense-moment.tone-valid { --moment-accent:var(--def-valid); }
.defense-moment.tone-money { --moment-accent:var(--def-money); }
.defense-moment.tone-danger { --moment-accent:var(--def-danger); }
.defense-moment.tone-boss { --moment-accent:#ffd45a; }
.defense-moment.tone-perfect { --moment-accent:#fff2a8; }
.defense-moment.moment-boss .defense-moment-card { border-color:#ffd45a; background:linear-gradient(90deg,rgb(29 23 24 / .98),rgb(45 31 22 / .96)); }
.defense-moment.moment-defeat .defense-moment-card { border-color:var(--def-danger); background:linear-gradient(90deg,rgb(43 18 28 / .98),rgb(24 18 25 / .98)); }
.defense-moment.moment-perfect .defense-moment-card { border-color:#fff2a8; }
.defense-moment.reduced .defense-moment-card { animation:none; }
.defense-map-intro { position:absolute; inset:0; z-index:var(--z-critical); display:grid; place-items:center; padding:1rem; background:radial-gradient(circle at 50% 45%,rgb(30 25 40 / .55),rgb(5 4 8 / .94)); color:#fff; text-align:center; }
.defense-map-intro.leaving { animation:def-fade-out .4s ease forwards; pointer-events:none; }
.defense-intro-copy small, .defense-intro-copy span, .defense-intro-lore { font-size:var(--def-size-small); }
.defense-intro-copy b { display:block; margin:.3rem 0; font:900 clamp(1.5rem,8vw,3rem)/.95 var(--def-font-display); color:var(--field-accent); }
.defense-intro-rizo { width:120px; height:130px; }
.defense-intro-pet { max-width:100%; max-height:100%; }
.defense-map-intro button { border:var(--def-border); border-radius:var(--def-radius-2); background:var(--def-neutral); color:#17151b; }
.defense-upgrade-burst { position:absolute; z-index:var(--z-critical); translate:-50% -50%; pointer-events:none; text-align:center; }
.defense-upgrade-burst b { display:block; padding:.35rem .55rem; border:var(--def-border); border-radius:var(--def-radius-2); background:var(--upgrade-color); color:#17151b; font:900 var(--def-size-title-small)/1 var(--def-font-display); }
.defense-upgrade-burst span { display:block; margin-top:.25rem; padding:.25rem .4rem; border-radius:.4rem; background:#17151b; color:#fff; font-size:var(--def-size-caption); }

.defense-world-lobby, .defense-records-modal, .defense-field-guide, .defense-result {
  box-sizing:border-box; width:min(calc(100vw - 2rem),760px); max-width:none;
  max-height:calc(100dvh - 2rem); margin:auto; padding:.75rem; overflow:auto;
  overscroll-behavior:contain; scrollbar-gutter:stable; border:var(--def-border);
  border-radius:var(--def-radius-3); background:#17131c; color:#fff;
  font-family:var(--def-font-body); box-shadow:0 14px 0 rgb(0 0 0 / .35);
}
.defense-world-lobby *, .defense-records-modal *, .defense-field-guide * { box-sizing:border-box; }
.defense-world-lobby :is(p,small,em), .defense-records-modal :is(p,small,em), .defense-field-guide :is(p,small,em) { font-size:var(--def-size-small); line-height:1.4; }
.defense-world-lobby :is(button,a), .defense-records-modal :is(button,a), .defense-field-guide :is(button,a) { min-height:44px; font-size:var(--def-size-button); }
.defense-world-lobby h2, .defense-records-modal h2, .defense-field-guide h2 { margin:.15rem 0; font:900 clamp(1.05rem,4vw,1.45rem)/1 var(--def-font-display); }
.defense-world-lobby h3, .defense-records-modal h3, .defense-field-guide h3 { margin:.1rem 0; font:900 var(--def-size-title-small)/1.05 var(--def-font-display); }

.defense-lobby-brand, .defense-lobby-head, .defense-records-head, .field-guide-head { display:flex; align-items:center; justify-content:space-between; gap:.65rem; }
.defense-lobby-brand { justify-content:flex-start; margin-bottom:.55rem; }
.defense-lobby-brand img { width:42px; height:42px; object-fit:contain; }
.defense-lobby-brand > div, .defense-lobby-head > div, .defense-records-head > div, .field-guide-head > div { min-width:0; display:grid; }
.defense-lobby-brand b, .defense-lobby-selected b { font:900 var(--def-size-title-small)/1 var(--def-font-display); }
.defense-lobby-brand small, .defense-lobby-selected small { color:#9ddfff; }
.defense-lobby-head, .defense-records-head, .field-guide-head { align-items:start; margin-bottom:.55rem; }
.defense-lobby-head > b, .defense-records-head > b, .field-guide-head > b { flex:0 0 auto; padding:.4rem .5rem; border:var(--def-border); border-radius:var(--def-radius-1); background:#2a2531; color:var(--def-money); font:900 var(--def-size-counter)/1.25 var(--def-font-mono); text-align:right; }
.defense-lobby-head p, .defense-records-head p, .field-guide-head p { margin:.15rem 0 0; color:#d0c7d7; }

.defense-resume-card, .defense-contract-card, .defense-school-lobby, .defense-lobby-selected, .defense-records-section {
  margin:.5rem 0; padding:.6rem; border:var(--def-border); border-radius:var(--def-radius-2); background:#2a2531; color:#fff;
}
.defense-resume-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.55rem; align-items:center; }
.defense-resume-card p, .defense-contract-card p { margin:.2rem 0 0; color:#d7cedf; }
.defense-resume-card > span { display:flex; flex-wrap:wrap; gap:.35rem; }
.defense-resume-card button, .defense-contract-card > button, .defense-school-lobby button { border:var(--def-border); border-radius:var(--def-radius-1); background:var(--def-info); color:#17151b; font-weight:900; }
.defense-resume-card button:first-child { background:var(--def-danger); }
.defense-contract-card { border-left:5px solid var(--contract-accent,var(--def-info)); }
.defense-contract-head, .defense-school-lobby { display:flex; align-items:center; gap:.55rem; }
.defense-contract-head > span, .defense-school-lobby > span, .defense-lobby-selected > span { flex:0 0 38px; width:38px; height:38px; display:grid; place-items:center; border:var(--def-border); border-radius:50%; background:var(--contract-accent,var(--def-info)); color:#17151b; font-weight:900; }
.defense-contract-head > div, .defense-school-lobby > div, .defense-lobby-selected > div { min-width:0; flex:1; display:grid; }
.defense-contract-rules { display:flex; flex-wrap:wrap; gap:.3rem; margin:.45rem 0; }
.defense-contract-rules > * { padding:.25rem .4rem; border:1px solid #726a7a; border-radius:99px; background:#18151d; }
.defense-school-lobby em, .defense-lobby-selected em { color:#d4cadb; font-style:normal; }
.defense-lobby-selected { display:flex; align-items:center; gap:.55rem; border-color:var(--def-valid); }
.defense-lobby-selected > i { font:900 1.2rem/1 var(--def-font-mono); color:var(--def-valid); }

.defense-lobby-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; }
.defense-lobby-map { min-width:0; display:grid; grid-template-columns:54px minmax(0,1fr) 24px; align-items:center; gap:.5rem; padding:.5rem; border:var(--def-border); border-left:5px solid var(--map-accent,var(--def-info)); border-radius:var(--def-radius-2); background:#fff2cf; color:#17151b; text-align:left; box-shadow:0 3px 0 #17151b; }
.defense-lobby-map.selected { background:var(--def-info); }
.defense-lobby-map.locked { opacity:.5; filter:saturate(.35); }
.defense-lobby-map > div { min-width:0; display:grid; }
.defense-lobby-map b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:900 var(--def-size-title-small)/1 var(--def-font-display); }
.defense-lobby-map em { display:-webkit-box; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical; color:#4b424f; font-style:normal; }
.defense-lobby-map-icon { width:54px; height:54px; display:grid; place-items:center; overflow:hidden; border:var(--def-border); border-radius:50%; background:color-mix(in srgb,var(--map-accent,var(--def-info)) 55%,#fff); }
.defense-lobby-map-icon > i { font-size:1.3rem; }
.defense-lobby-map-icon svg { max-width:100%; max-height:100%; }
.defense-lobby-map > i { font-size:1.15rem; font-style:normal; }
.defense-lobby-actions, .defense-records-modal > .modal-buttons, .defense-field-guide > .modal-buttons { position:sticky; z-index:2; bottom:-.75rem; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.35rem; margin:.75rem -.75rem -.75rem; padding:.55rem .75rem max(.55rem,env(safe-area-inset-bottom)); background:linear-gradient(transparent,#17131c 20%); }
.defense-lobby-actions button, .defense-records-modal > .modal-buttons button, .defense-field-guide > .modal-buttons button { border:var(--def-border); border-radius:var(--def-radius-1); background:#302a37; color:#fff; }
.defense-lobby-actions .primary, .defense-records-modal > .modal-buttons .primary { background:var(--def-valid); color:#17151b; }

.defense-records-head { position:sticky; top:-.75rem; z-index:2; padding:.75rem 0 .4rem; background:#17131c; }
.defense-records-section { display:grid; gap:.45rem; }
.defense-records-section > h3 { color:var(--def-money); }
.defense-records-section > p { margin:0; }
.defense-record-map-list, .defense-contract-records, .defense-mastery-list, .defense-history-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; }
.defense-record-map, .defense-contract-record, .defense-history-row, .defense-mastery-row { min-width:0; display:grid; grid-template-columns:38px minmax(0,1fr) auto; align-items:center; gap:.45rem; padding:.5rem; border:var(--def-border); border-left:5px solid var(--map-accent,var(--mastery-color,var(--def-info))); border-radius:var(--def-radius-2); background:#fff2cf; color:#17151b; box-shadow:0 3px 0 #17151b; }
.defense-record-map > div, .defense-contract-record > div, .defense-history-row > div, .defense-mastery-row > span { min-width:0; display:grid; }
.defense-record-map > span, .defense-contract-record > span, .defense-history-row > span, .defense-mastery-row > i { width:34px; height:34px; display:grid; place-items:center; border:2px solid #17151b; border-radius:50%; background:var(--map-accent,var(--mastery-color,var(--def-info))); color:#17151b; font-style:normal; font-weight:900; }
.defense-record-map b, .defense-contract-record b, .defense-history-row b, .defense-mastery-row b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--def-size-body); }
.defense-record-map em, .defense-contract-record em, .defense-history-row em, .defense-mastery-row em, .defense-mastery-row u, .defense-mastery-row strong { color:#4f4653; font-style:normal; text-decoration:none; }
.defense-contract-record button { border:var(--def-border); border-radius:var(--def-radius-1); background:var(--def-info); color:#17151b; }
.defense-mastery-pips { display:flex; gap:.2rem; margin-top:.25rem; }
.defense-mastery-pips i { width:10px; height:10px; border:1px solid #17151b; border-radius:50%; background:#d4c8af; }
.defense-mastery-pips i.on { background:var(--mastery-color,var(--def-info)); }
.defense-record-empty { margin:0; padding:.6rem; border:1px dashed #756c7c; border-radius:var(--def-radius-1); color:#d5cbdc; text-align:center; }

.defense-field-guide { display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; overflow:hidden; }
.field-guide-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:.35rem; margin:.15rem 0 .55rem; }
.field-guide-tabs button { border:var(--def-border); border-radius:var(--def-radius-1); background:#302a37; color:#fff; }
.field-guide-tabs button.active { background:var(--def-info); color:#17151b; }
.field-guide-scroll { min-height:0; overflow:auto; overscroll-behavior:contain; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; padding:.1rem .2rem .35rem .05rem; }
.field-guide-rizo, .field-guide-threat, .field-guide-world { min-width:0; display:grid; grid-template-columns:68px minmax(0,1fr); gap:.55rem; padding:.55rem; border:var(--def-border); border-left:5px solid var(--guide-color,var(--def-info)); border-radius:var(--def-radius-2); background:#fff2cf; color:#17151b; box-shadow:0 3px 0 #17151b; }
.field-guide-rizo > span, .field-guide-threat > span, .field-guide-world > span { min-height:64px; display:grid; place-items:center; border:2px solid #17151b; border-radius:var(--def-radius-1); background:color-mix(in srgb,var(--guide-color,var(--def-info)) 45%,#fff); color:#17151b; font:900 1.15rem/1 var(--def-font-mono); }
.field-guide-pet { width:62px; height:70px; object-fit:contain; }
.field-guide-rizo > div, .field-guide-threat > div, .field-guide-world > div { min-width:0; }
.field-guide-rizo b, .field-guide-threat b, .field-guide-world b { display:block; margin:.1rem 0 .25rem; font:900 var(--def-size-body)/1 var(--def-font-display); }
.field-guide-rizo p, .field-guide-threat p, .field-guide-world p { margin:.15rem 0; color:#4c424f; }
.field-guide-rizo p strong, .field-guide-world p strong { color:#17151b; }
.field-guide-rizo em, .field-guide-threat em, .field-guide-world em { display:block; margin-top:.25rem; color:#493b51; font-style:normal; font-weight:900; }
.field-guide-world.locked { opacity:.55; filter:saturate(.4); }

.defense-result-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.4rem; }
.defense-result-grid span { padding:.5rem; border:var(--def-border); border-radius:var(--def-radius-2); background:#fff2cf; color:#17151b; text-align:center; font-size:var(--def-size-caption); }
.defense-result-grid b { display:block; font:900 1.1rem/1 var(--def-font-mono); }

@media (max-width:599px) {
  .defense-world-lobby, .defense-records-modal, .defense-field-guide { width:calc(100vw - 2rem); max-height:calc(100dvh - 2rem); padding:.55rem; }
  .defense-lobby-list, .defense-record-map-list, .defense-contract-records, .defense-mastery-list, .defense-history-list, .field-guide-scroll { grid-template-columns:1fr; }
  .defense-lobby-map { grid-template-columns:48px minmax(0,1fr) 20px; }
  .defense-lobby-map-icon { width:48px; height:48px; }
  .defense-resume-card { grid-template-columns:1fr; }
  .defense-resume-card > span { display:grid; grid-template-columns:1fr 1fr; }
  .defense-lobby-actions, .defense-records-modal > .modal-buttons { grid-template-columns:repeat(2,1fr); margin-left:-.55rem; margin-right:-.55rem; bottom:-.55rem; padding-left:.55rem; padding-right:.55rem; }
  .defense-field-guide > .modal-buttons { grid-template-columns:1fr; margin-left:-.55rem; margin-right:-.55rem; bottom:-.55rem; }
  .defense-record-map, .defense-contract-record, .defense-history-row, .defense-mastery-row { grid-template-columns:34px minmax(0,1fr); }
  .defense-record-map > :last-child:not(div), .defense-contract-record > button { grid-column:2; justify-self:start; }
  .field-guide-rizo, .field-guide-threat, .field-guide-world { grid-template-columns:58px minmax(0,1fr); }
  .field-guide-rizo > span, .field-guide-threat > span, .field-guide-world > span { min-height:56px; }
  .field-guide-pet { width:54px; height:62px; }
}
@media (max-height:520px) and (orientation:landscape) {
  .defense-world-lobby, .defense-records-modal, .defense-field-guide { width:min(calc(100vw - 2rem),840px); max-height:calc(100dvh - 2rem); }
  .defense-lobby-list, .defense-record-map-list, .defense-contract-records, .defense-mastery-list, .defense-history-list, .field-guide-scroll { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 599px) and (orientation: portrait) {
  .defense-command-world { display:none; }
  .defense-hud { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; }
  #defenseBenchButton { display:none; }
  .defense-command-actions { grid-template-columns:repeat(3,minmax(44px,1fr)); }
  .defense-stage-frame > .defense-wave-button { right:.45rem; bottom:.45rem; }
  .defense-wave-preview { max-width:210px; }
  .defense-command-actions button:not(.defense-wave-button){flex-direction:column;gap:1px;padding:.18rem .12rem;min-height:52px}
  .defense-command-actions button:not(.defense-wave-button)>i:first-child{width:24px;height:24px;flex-basis:24px;border:0;background:transparent}
  .defense-command-actions .defense-action-label { display:block; max-width:42px; overflow:hidden; text-overflow:clip; white-space:nowrap; font-size:10px; line-height:1; letter-spacing:0; }
  .defense-command-actions .defense-speed .defense-action-label { display:block; font-size:.57rem; }
  .defense-command-actions .defense-speed .defense-action-label em { display:none; }
  .defense-gate-flame-button > b { top:-5px; right:-5px; }
  .defense-shell .defense-command-actions .defense-wave-button #defenseWaveIcon { display:none; }
  .defense-wave-button { padding-inline:.45rem; }
  .defense-school-coach { bottom:calc(84px + max(.45rem,env(safe-area-inset-bottom))); }
  .defense-school-coach-card { grid-template-columns:28px minmax(0,1fr) 36px; }
  .defense-school-coach-card > button:not(.school-hide) { grid-column:2; justify-self:start; }
  .defense-school-coach-card em { display:none; }
}

@media (max-width: 359px), (max-height: 620px) and (orientation: portrait) {
  .defense-shell { gap:.22rem; padding:max(.2rem,env(safe-area-inset-top)) .2rem max(.2rem,env(safe-area-inset-bottom)); }
  .defense-command-world { display:none; }
  .defense-action-label, .defense-message span { display:none; }
  .defense-hud { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; }
  .defense-phase-indicator { min-width:82px; }
  .defense-phase-indicator em, .defense-phase-indicator small { display:none; }
  .defense-phase-indicator > span { display:block; }
  .defense-command-mark { width:26px; height:26px; flex-basis:26px; }
  .defense-stat { min-width:0; padding:.25rem .35rem; }
  #defenseBenchButton { display:none; }
  .defense-command-actions { grid-template-columns:repeat(3,minmax(42px,1fr)); overflow:visible; gap:.22rem; }
  .defense-command-actions .defense-action-label { font-size:9px; }
  .defense-stage-frame > .defense-wave-button { min-width:126px; min-height:50px; }
  .defense-gate-flame-button > b { display:none; }
  #defenseWaveLabel { display:block; }
  .defense-world { width:min(100%,72vh); aspect-ratio:1/1.05; }
  .defense-field-feed { min-height:40px; }
  .defense-message { min-height:40px; padding:.3rem .45rem; }
  .defense-moment { top:3.7rem; width:calc(100% - .65rem); }
  .defense-moment-card { grid-template-columns:34px minmax(0,1fr); gap:.4rem; padding:.4rem .5rem; }
  .defense-moment-card > i { width:32px; height:32px; }
  .defense-moment-card em { display:none; }
  .defense-roster { grid-auto-columns:108px; }
  .defense-roster-pet { height:72px; grid-template-columns:48px 1fr; }
  .defense-roster-rizo { width:48px; height:60px; }
}
@media (orientation: landscape) {
  .defense-shell { grid-template-areas:"hud field context" "hud field roster" "feed field roster"; grid-template-columns:clamp(150px,20vw,220px) minmax(0,1fr) clamp(170px,25vw,280px); grid-template-rows:auto minmax(0,1fr) auto; gap:.45rem; }
  .defense-command-deck { grid-area:hud; grid-template-columns:1fr; align-content:start; }
  .defense-command-world, .defense-hud, .defense-command-actions, .defense-contract-badge { grid-column:1; }
  .defense-hud { display:grid; grid-template-columns:1fr 1fr; }
  .defense-shell .defense-command-actions { display:grid; grid-template-columns:1fr 1fr; }
  .defense-shell .defense-command-actions button { flex-direction:column; gap:1px; padding:.16rem .1rem; min-height:48px; }
  .defense-shell .defense-command-actions button > i:first-child { width:24px; height:24px; flex-basis:24px; }
  .defense-shell .defense-command-actions .defense-action-label { display:block; max-width:100%; overflow:hidden; text-overflow:clip; white-space:nowrap; font-size:9px; line-height:1; letter-spacing:0; }
  .defense-stage-frame > .defense-wave-button { right:.45rem; bottom:.45rem; min-width:128px; min-height:48px; }
  .defense-stage-frame { grid-area:field; }
  .defense-wave-banner { max-width:calc(100% - .8rem); }
  .defense-phase-indicator { min-width:96px; }
  .defense-phase-indicator em { display:none; }
  .defense-world { height:100%; width:auto; max-width:100%; aspect-ratio:1/1; }
  .defense-field-feed { grid-area:feed; }
  .defense-context-dock { grid-area:unset; grid-column:3; grid-row:1/3; min-height:0; pointer-events:none; }
  .defense-context-dock > * { pointer-events:auto; }
  .defense-wave-preview { display:none; height:100%; align-content:start; flex-direction:column; align-items:stretch; pointer-events:none; }
  .defense-wave-preview > span { flex-wrap:wrap; }
  .defense-tower-panel, .defense-ability-tray, .defense-intel-tray, .defense-field-menu { position:absolute; inset:0; max-height:none; border-radius:var(--def-radius-3); }
  .defense-deploy-dock { grid-area:roster; min-height:0; }
  .defense-roster { height:100%; grid-auto-flow:row; grid-auto-rows:82px; grid-auto-columns:auto; overflow-y:auto; overflow-x:hidden; }
  .defense-roster-pet { width:100%; }
}
@media (min-width: 768px) and (orientation: portrait) {
  .defense-shell { max-width:900px; margin:auto; padding:1rem; gap:.65rem; position:relative; }
  .defense-command-deck { grid-template-columns:minmax(0,1fr) auto; }
  .defense-world { width:min(100%,65vh); aspect-ratio:1/1.08; }
  .defense-roster { grid-auto-columns:160px; }
  .defense-context-dock { position:absolute; inset:0; z-index:var(--z-sheet); pointer-events:none; min-height:0; }
  .defense-context-dock > * { pointer-events:auto; }
  .defense-wave-preview { position:absolute; left:50%; bottom:.55rem; translate:-50% 0; width:min(620px,78%); height:auto; flex-direction:row; align-items:center; }
  .defense-tower-panel, .defense-ability-tray, .defense-intel-tray, .defense-field-menu { inset:auto; left:50%; right:auto; top:auto; bottom:max(12px,env(safe-area-inset-bottom)); width:min(620px,88vw); translate:-50% 0; max-height:48vh; border-radius:18px; }
  .defense-context-scrim { position:absolute; inset:0; }
}
@media (prefers-reduced-motion: reduce) {
  .defense-shell *, .defense-shell *::before, .defense-shell *::after { animation-duration:.001ms; animation-iteration-count:1; scroll-behavior:auto; transition-duration:.001ms; }
  .defense-stage-frame.moment-pulse::after { animation:none; opacity:.45; }
  .defense-moment-card { animation:none; }
  .defense-stage-frame > .defense-wave-button:not(:disabled), .defense-tier-awakened .defense-aura, .defense-tier-apex .defense-aura, .defense-super-power .defense-aura, .defense-super-control .defense-aura, .defense-ember-pod-live { animation:none; }
}
@media (prefers-contrast: more) {
  .defense-world { filter:contrast(1.12); }
  .defense-enemy, .defense-tower { filter:drop-shadow(0 0 1px #fff) drop-shadow(0 2px 2px #000); }
  .defense-build-pocket { border-style:solid; }
}

@keyframes def-moment-frame { 0% { opacity:0; scale:.992; } 22% { opacity:1; } 100% { opacity:0; scale:1; } }
@keyframes def-moment-card { 0% { opacity:0; translate:0 -8px; scale:.97; } 15% { opacity:1; translate:0 0; scale:1.02; } 72% { opacity:1; scale:1; } 100% { opacity:0; translate:0 -2px; scale:.995; } }
@keyframes def-pocket-pulse { 50% { scale:1.06; opacity:.78; } }
@keyframes def-placement-valid { 0% { scale:.86; opacity:.55; } 60% { scale:1.08; } 100% { scale:1; opacity:1; } }
@keyframes def-gate-alert { to { scale:1.1; box-shadow:0 0 18px var(--def-danger); } }
@keyframes def-pop { 0% { transform:translate(0,0) scale(1); opacity:1; } 18% { transform:translate(calc(var(--pop-bias-x) * 2px),calc(var(--pop-bias-y) * 2px)) scale(calc(1.06 + var(--pop-weight) * .05),calc(.90 - (var(--pop-weight) - 1) * .05)) rotate(calc(var(--pop-angle) * .08 - 5deg)); opacity:1; } 44% { transform:translate(calc(var(--pop-bias-x) * 5px),calc(var(--pop-bias-y) * 5px)) scale(calc(.90 - (var(--pop-weight) - 1) * .04),calc(1.12 + var(--pop-weight) * .03)) rotate(calc(var(--pop-angle) * .16 + 3deg)); opacity:.98; } 100% { transform:translate(calc(var(--pop-bias-x) * 10px),calc(var(--pop-bias-y) * 10px)) scale(calc(1.72 + var(--pop-weight) * .10),calc(.94 + (var(--pop-weight) - 1) * .04)) rotate(calc(var(--pop-angle) * .22 + 10deg)); opacity:0; } }
@keyframes def-impact { from { scale:.25; opacity:1; } to { scale:1.7; opacity:0; } }
@keyframes def-invalid { 25% { translate:calc(-50% - 5px) -72%; } 75% { translate:calc(-50% + 5px) -72%; } }
@keyframes def-fade-out { to { opacity:0; } }

html.defense-performance-session .screen-grain { display:none; }
.defense-world.fx-lean .defense-weather,
.defense-world.fx-potato .defense-weather { mix-blend-mode:normal; }
.defense-world.fx-lean :is(.defense-enemy,.defense-tower,.defense-landmark,.defense-impact),
.defense-world.fx-potato :is(.defense-enemy,.defense-tower,.defense-landmark,.defense-impact) { filter:none; }
.defense-world.fx-lean .defense-shot,
.defense-world.fx-potato .defense-shot { box-shadow:0 0 0 1px var(--play-halo); }
.defense-world.fx-potato::after { box-shadow:none; }
.defense-world.fx-potato .balloon-body { box-shadow:inset -3px -3px 0 rgb(20 10 20 / .10),0 0 0 1px var(--play-halo); }
.defense-world.fx-potato .defense-weather { opacity:.10; }
.defense-world.fx-potato .defense-world-feature { opacity:.72; }

:root {
  --def-font-display: ui-rounded, "SF Pro Rounded", "Arial Rounded MT Bold", system-ui, -apple-system, sans-serif;
}

.defense-world { aspect-ratio:1/1; }
@media (max-width:359px), (max-height:620px) and (orientation:portrait) {
  .defense-world { aspect-ratio:1/1; }
}
@media (min-width:768px) and (orientation:portrait) {
  .defense-world { aspect-ratio:1/1; }
}

.defense-enemy { translate:-50% -56%; transform-origin:50% 56%; }
.defense-enemy.balloon-boss { translate:-50% -56%; transform-origin:50% 56%; }

.defense-roster { touch-action:none; }
.defense-roster-pet {
  touch-action:none;
  -webkit-user-select:none;
  user-select:none;
  -webkit-touch-callout:none;
  cursor:grab;
}
.defense-roster-pet:active,.defense-roster-pet.drag-source { cursor:grabbing; }
.defense-roster-pet::after {
  content:"DRAG";
  position:absolute;
  right:.28rem;
  top:.26rem;
  padding:.16rem .28rem;
  border:1px solid rgb(255 255 255 / .16);
  border-radius:999px;
  background:rgb(8 7 11 / .42);
  color:rgb(255 255 255 / .72);
  font:800 .52rem/1 var(--def-font-body);
  letter-spacing:.08em;
  pointer-events:none;
}

.defense-command-actions { gap:.38rem; }
.defense-command-actions button {
  min-height:48px;
  border:2px solid #121017;
  border-radius:14px;
  background:linear-gradient(180deg,#3b3443 0%,#29242f 70%,#24202a 100%);
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .14),inset 0 -2px 0 rgb(0 0 0 / .16),0 4px 0 #121017;
  font-family:var(--def-font-body);
  font-weight:800;
  letter-spacing:.01em;
  transition:transform 80ms ease,box-shadow 80ms ease,background 120ms ease;
}
.defense-command-actions button:not(:disabled):active {
  transform:translateY(3px);
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .08),inset 0 2px 0 rgb(0 0 0 / .2),0 1px 0 #121017;
}
.defense-command-actions button > i:first-child,
.defense-command-actions button > #defenseWaveIcon {
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  flex:0 0 28px;
  border:1px solid rgb(255 255 255 / .13);
  border-radius:9px;
  background:rgb(255 255 255 / .07);
}
.defense-command-actions .defense-speed { --control-accent:#68cfff; }
.defense-command-actions .defense-intel-button { --control-accent:#c79cff; }
.defense-command-actions .defense-abilities-button { --control-accent:#ff9d62; }
.defense-command-actions .defense-bench-button { --control-accent:#81e590; }
.defense-command-actions .defense-menu-button { --control-accent:#f0d47a; }
.defense-command-actions .defense-action-circle > i:first-child {
  color:var(--control-accent,#fff);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--control-accent,#fff) 26%,transparent);
}
.defense-command-actions button.active,
.defense-command-actions button[aria-expanded="true"] {
  background:linear-gradient(180deg,color-mix(in srgb,var(--control-accent,var(--def-info)) 72%,#fff) 0%,var(--control-accent,var(--def-info)) 100%);
  color:#151219;
}
.defense-command-actions .defense-action-label,
.defense-command-actions .defense-action-label strong,
.defense-command-actions .defense-action-label em {
  font-family:var(--def-font-body);
  font-weight:850;
  font-style:normal;
  letter-spacing:.025em;
}
.defense-wave-button {
  background:linear-gradient(180deg,#9af0a1 0%,#64cf78 72%,#54bc69 100%);
  color:#132018;
}
.defense-wave-button:disabled {
  background:linear-gradient(#504954,#38313e);
  color:#aaa1ae;
}

.defense-message,.defense-live-status,.defense-boss-bar {
  border-radius:12px;
  background:linear-gradient(180deg,rgb(38 33 43 / .97),rgb(23 20 28 / .97));
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .08),0 3px 0 #111016;
}
.defense-message::before {
  content:"";
  width:9px;
  height:9px;
  flex:0 0 9px;
  border-radius:50%;
  background:var(--field-accent);
  box-shadow:0 0 0 3px rgb(255 255 255 / .06);
}
.defense-message b { font:850 var(--def-size-small)/1.05 var(--def-font-body); letter-spacing:.025em; }
.defense-message span { color:#d7cfdb; }
.defense-phase-indicator b,.defense-command-world b,.defense-roster-info b,.defense-sheet-title b {
  font-family:var(--def-font-body);
  font-weight:900;
  letter-spacing:.01em;
}

.defense-intel-card,.defense-ability-card,.defense-field-menu-grid > button {
  border-radius:14px;
  background:linear-gradient(180deg,#39323f,#2a2530);
  border:2px solid #151219;
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .09),0 3px 0 #151219;
}
.defense-intel-card > span,.defense-sheet-title > span,.defense-ability-stack {
  border-radius:11px;
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .22),0 2px 0 rgb(12 10 15 / .48);
}
.defense-intel-card b,.defense-ability-card b,.defense-field-menu-grid b {
  font-family:var(--def-font-body);
  font-weight:900;
}

.defense-impact {
  --fx:#fff;
  position:absolute;
  z-index:8;
  width:30px;
  height:30px;
  translate:-50% -50%;
  border:0;
  border-radius:50%;
  background:transparent;
  filter:none;
  opacity:1;
  animation:def-impact-v77 var(--impact-life,.20s) cubic-bezier(.12,.74,.3,1) forwards;
  pointer-events:none;
  contain:layout style;
}
.defense-impact::before,.defense-impact::after {
  content:"";
  position:absolute;
  inset:0;
  margin:auto;
  pointer-events:none;
}
.defense-impact::before {
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--impact-color,var(--fx));
  box-shadow:0 -10px 0 -2px var(--impact-color,var(--fx)),9px -3px 0 -2px var(--impact-color,var(--fx)),6px 8px 0 -2px var(--impact-color,var(--fx)),-6px 8px 0 -2px var(--impact-color,var(--fx)),-9px -3px 0 -2px var(--impact-color,var(--fx));
}
.defense-impact::after {
  width:16px;
  height:16px;
  border:2px solid color-mix(in srgb,var(--impact-color,var(--fx)) 78%,#fff);
  border-radius:50%;
}
.defense-impact.impact-pop { --fx:#fff4c4; }
.defense-impact.impact-toxic { --fx:#8cf05d; }
.defense-impact.impact-frost { --fx:#a8f3ff; }
.defense-impact.impact-moss { --fx:#8be07a; }
.defense-impact.impact-violet,.defense-impact.impact-control,.defense-impact.impact-reveal { --fx:#c59cff; }
.defense-impact.impact-armor,.defense-impact.impact-power { --fx:#ffd06a; }
.defense-impact.impact-gate,.defense-impact.impact-boss,.defense-impact[class*="impact-crown"],.defense-impact[class*="impact-vortex"],.defense-impact[class*="impact-mirror"],.defense-impact[class*="impact-apex"] { width:42px; height:42px; --fx:#ff657c; }
.defense-impact.impact-toxic::before {
  border-radius:50%;
  box-shadow:0 -8px 0 -1px var(--fx),7px 4px 0 -1px var(--fx),-7px 4px 0 -1px var(--fx);
  background:color-mix(in srgb,var(--fx) 60%,#fff);
}
.defense-impact.impact-frost::before {
  width:3px;height:24px;border-radius:2px;background:var(--fx);box-shadow:none;transform:rotate(45deg);
}
.defense-impact.impact-frost::after {
  width:3px;height:24px;border:0;border-radius:2px;background:var(--fx);transform:rotate(-45deg);
}
.defense-impact.impact-moss::before {
  width:16px;height:9px;border-radius:90% 0 90% 0;background:var(--fx);box-shadow:none;transform:rotate(-24deg);
}
.defense-impact.impact-moss::after {
  width:12px;height:7px;border:0;border-radius:0 90% 0 90%;background:color-mix(in srgb,var(--fx) 72%,#fff);transform:translate(7px,7px) rotate(20deg);
}
.defense-impact.impact-armor::before,.defense-impact.impact-power::before {
  width:18px;height:18px;border-radius:2px;background:transparent;box-shadow:none;border-left:3px solid var(--fx);border-bottom:3px solid var(--fx);transform:rotate(-38deg) skew(-12deg);
}
.defense-impact.impact-armor::after,.defense-impact.impact-power::after {
  width:10px;height:3px;border:0;border-radius:99px;background:var(--fx);transform:rotate(38deg);
}

.defense-enemy .balloon-body::after {
  content:"";
  position:absolute;
  inset:3px;
  border-radius:inherit;
  pointer-events:none;
  opacity:0;
}
.defense-enemy.skin-burn .balloon-body::after {
  opacity:1;
  background:radial-gradient(circle at 28% 82%,#fff2a6 0 5%,#ff8a3d 6% 10%,transparent 11%),radial-gradient(circle at 67% 88%,#ffd069 0 4%,#ff6b32 5% 9%,transparent 10%);
  animation:def-status-ember .36s steps(2,end) infinite;
}
.defense-enemy.skin-poison .balloon-body::after {
  opacity:.86;
  background:radial-gradient(circle at 30% 32%,#d8ff9e 0 5%,#62c84d 6% 10%,transparent 11%),radial-gradient(circle at 67% 58%,#d8ff9e 0 4%,#62c84d 5% 9%,transparent 10%),radial-gradient(circle at 45% 78%,#d8ff9e 0 3%,#62c84d 4% 8%,transparent 9%);
}
.defense-enemy.skin-frost .balloon-body::after {
  opacity:.9;
  inset:1px;
  border:2px solid #d9fbff;
  background:linear-gradient(135deg,transparent 42%,rgb(255 255 255 / .55) 43% 47%,transparent 48%);
}
.defense-enemy.skin-root .balloon-body::after {
  opacity:.9;
  inset:auto 7px 1px;
  height:13px;
  border:0;
  border-bottom:3px solid #5d9a50;
  border-radius:50%;
  background:linear-gradient(45deg,transparent 40%,#8fd378 41% 52%,transparent 53%);
}
.defense-world.fx-lean .defense-enemy .balloon-body::after,.defense-world.fx-potato .defense-enemy .balloon-body::after { animation:none; }

@keyframes def-impact-v77 {
  0% { opacity:0; transform:scale(.45) rotate(-12deg); }
  22% { opacity:1; transform:scale(1.05) rotate(0); }
  100% { opacity:0; transform:scale(1.55) rotate(13deg); }
}
@keyframes def-status-ember { 50% { transform:translateY(-1px) scale(.94); opacity:.72; } }

.defense-enemy { translate:-50% -41%; transform-origin:50% 41%; }
.defense-enemy.balloon-boss { translate:-50% -45%; transform-origin:50% 45%; }
.balloon-body { inset:0 3px 9px; }
.balloon-knot { bottom:6px; width:8px; height:6px; border-width:1.5px; }
.balloon-string { bottom:0; height:7px; }
.defense-enemy.is-burn .balloon-body,.defense-enemy.skin-burn .balloon-body,
.defense-enemy.is-poison .balloon-body,.defense-enemy.skin-poison .balloon-body {
  box-shadow:inset -6px -6px 0 rgb(20 10 20 / .14),inset 5px 6px 0 rgb(255 255 255 / .2),0 0 0 1px var(--play-halo);
}

.defense-combat-canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:7;
  pointer-events:none;
  contain:strict;
}
.defense-shell.canvas-combat #defenseEnemies,
.defense-shell.canvas-combat #defenseProjectiles{
  visibility:hidden;
  pointer-events:none;
}

.defense-shell.canvas-combat #defenseEffects{z-index:8;pointer-events:none}
.defense-shell.canvas-combat #defenseTowers{z-index:6}
.defense-preview-rhythm{
  display:block;
  width:max-content;
  max-width:100%;
  margin:.18rem 0 .34rem;
  padding:.25rem .48rem;
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  background:rgba(10,12,17,.52);
  font:800 clamp(9px,2.35vw,11px)/1.1 system-ui,-apple-system,sans-serif;
  letter-spacing:.035em;
  color:#f3e9d1;
}
.defense-map-intro.returning .defense-intro-lore,
.defense-map-intro.returning .defense-intro-rizo,
.defense-map-intro.returning .defense-intro-cta{display:none}
.defense-map-intro.returning .defense-intro-copy{transform:scale(.92)}

.rizo-update-bar{
  position:fixed;
  z-index:2147482500;
  left:max(10px,env(safe-area-inset-left));
  right:max(10px,env(safe-area-inset-right));
  bottom:calc(82px + max(8px,env(safe-area-inset-bottom)));
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:8px;
  align-items:center;
  max-width:560px;
  margin-inline:auto;
  padding:10px;
  border:2px solid #17151b;
  border-radius:16px;
  background:#f3e9d1;
  color:#17151b;
  box-shadow:0 7px 0 rgba(0,0,0,.48),0 14px 34px rgba(0,0,0,.35);
}
.rizo-update-bar[hidden]{display:none!important}
.rizo-update-bar div{min-width:0;display:grid;gap:2px}
.rizo-update-bar small{font:900 9px/1 system-ui,-apple-system,sans-serif;letter-spacing:.12em;color:#57505d}
.rizo-update-bar b{overflow:hidden;text-overflow:ellipsis;font:900 12px/1.15 system-ui,-apple-system,sans-serif}
.rizo-update-bar button{
  min-height:42px;
  border:2px solid #17151b;
  border-radius:10px;
  padding:0 11px;
  background:#73e890;
  color:#17151b;
  box-shadow:0 3px 0 #17151b;
  font:900 10px/1 system-ui,-apple-system,sans-serif;
  letter-spacing:.04em;
}
.rizo-update-bar button:active{transform:translateY(2px);box-shadow:0 1px 0 #17151b}
.rizo-update-bar .rizo-update-later{background:#fffdf7}
.rizo-update-bar.updating{pointer-events:none;opacity:.76}
.update-refresh-button{background:#73e890!important;color:#17151b!important}
@media(max-width:390px){
  .rizo-update-bar{grid-template-columns:1fr auto;bottom:calc(75px + max(8px,env(safe-area-inset-bottom)))}
  .rizo-update-bar .rizo-update-later{display:none}
  .defense-world-lobby.v79-simple{gap:.42rem}
  .defense-world-hero{grid-template-columns:118px minmax(0,1fr);min-height:154px;padding:.5rem;gap:.5rem}
  .defense-world-hero-map{min-height:136px}.defense-world-hero-map>strong{font-size:1.55rem}.defense-world-hero-copy h2{font-size:1.25rem}.defense-world-hero-copy p{font-size:.67rem}.defense-world-hero-copy>div span{font-size:.66rem;padding:.23rem .3rem}
  .defense-world-pick{min-height:62px}.defense-world-pick>b{font-size:1.2rem}.defense-world-pick>span{font-size:.66rem}
}

.defense-moment:is(.moment-wave-start,.moment-packet){
  top:.42rem;
  width:auto;
  max-width:calc(100% - .8rem);
}
.defense-moment:is(.moment-wave-start,.moment-packet) .defense-moment-card{
  grid-template-columns:28px minmax(0,1fr);
  gap:.36rem;
  padding:.30rem .48rem;
  border-width:2px;
  border-radius:999px;
  box-shadow:0 3px 0 rgb(0 0 0 / .42),0 7px 16px rgb(0 0 0 / .18);
  background:rgb(24 20 29 / .91);
}
.defense-moment:is(.moment-wave-start,.moment-packet) .defense-moment-card > i{width:27px;height:27px;border-width:1.5px;font-size:.78rem;box-shadow:none}
.defense-moment:is(.moment-wave-start,.moment-packet) .defense-moment-card small{display:none}
.defense-moment:is(.moment-wave-start,.moment-packet) .defense-moment-card b{font-size:clamp(.72rem,2.7vw,.86rem)}
.defense-moment:is(.moment-wave-start,.moment-packet) .defense-moment-card em{font-size:clamp(.58rem,2.15vw,.72rem)}

#defensePhaseIndicator[hidden]{display:none}
.defense-phase-indicator{display:none}
.defense-shell[data-defense-phase="paused"] .defense-phase-indicator{display:grid}
.defense-wave-banner{padding:.3rem .42rem;min-width:auto;background:rgba(20,17,24,.86)}
.defense-wave-banner>.defense-phase-indicator[hidden]{display:none}
.defense-wave-count{min-width:58px}
.defense-wave-count em{opacity:.62;font-size:.58rem}
.defense-live-status{display:none}

.defense-stat-cash{min-width:104px;box-shadow:0 3px 0 #17151b,0 0 0 2px rgba(255,255,255,.12) inset}
.defense-stat-cash b{font-size:clamp(1.05rem,3.8vw,1.45rem);letter-spacing:-.025em}
.defense-stat-cash small{font-size:.6rem;font-weight:950}
.defense-stat-cash.money-nope{animation:v79-money-nope .34s ease both}
@keyframes v79-money-nope{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px) rotate(-1deg)}55%{transform:translateX(5px) rotate(1deg)}75%{transform:translateX(-2px)}}

.defense-range{border-width:2px;border-style:solid;background:color-mix(in srgb,var(--tower-color,var(--field-accent)) 9%,transparent);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 0 0 1px rgba(0,0,0,.18)}
.defense-tower.selected .defense-range{opacity:1}
.defense-world.placement-mode .defense-build-pocket{opacity:.9;outline:2px solid color-mix(in srgb,var(--def-valid) 50%,transparent);outline-offset:2px}
.defense-placement-preview.snapped .defense-placement-label{display:none}

.defense-field-mark,.balloon-state,.balloon-trait{display:none}

.defense-tower.firing .defense-rizo,
.defense-tower.firing .mini-pet{animation:v79-rizo-fire .18s cubic-bezier(.2,.8,.2,1)}
.defense-tower.ability-cast .defense-rizo,
.defense-tower.ability-cast .mini-pet{animation:v79-rizo-cast .62s cubic-bezier(.2,.8,.2,1)}
.defense-tower.doctrine-strike .defense-rizo,
.defense-tower.doctrine-strike .mini-pet{animation:v79-rizo-strike .28s ease-out}
.defense-tower.tap-pop .defense-rizo,
.defense-tower.tap-pop .mini-pet{animation:v79-rizo-tap .16s ease-out}
@keyframes v79-rizo-fire{0%{transform:translateY(0) scale(1)}42%{transform:translateY(-4px) scale(1.04,.96) rotate(-2deg)}100%{transform:translateY(0) scale(1)}}
@keyframes v79-rizo-cast{0%{transform:scale(1)}28%{transform:translateY(-8px) scale(1.08,.92) rotate(-5deg)}52%{transform:translateY(-3px) scale(.95,1.08) rotate(5deg)}100%{transform:scale(1)}}
@keyframes v79-rizo-strike{0%{transform:translateY(0)}45%{transform:translateY(-6px) scale(1.07)}100%{transform:translateY(0)}}
@keyframes v79-rizo-tap{50%{transform:scale(.94)}}

.defense-ability-fx{position:absolute;z-index:9;width:96px;height:96px;translate:-50% -58%;border:0;border-radius:50%;pointer-events:none;animation:v79-ability-ring .8s ease-out forwards;color:#fff}
.defense-ability-fx::before,.defense-ability-fx::after{content:"";position:absolute;inset:14%;border:4px solid currentColor;border-radius:50%}
.defense-ability-fx::after{inset:29%;border-width:3px;border-style:dashed;animation:v79-ability-spin .62s linear}
.defense-ability-fx.ability-fx-ember::before{border-radius:50% 50% 42% 42%;box-shadow:0 0 20px #ff713f,inset 0 0 20px #ffb34d}
.defense-ability-fx.ability-fx-toxic::before{border-style:dotted;box-shadow:0 0 18px #8cff6a}
.defense-ability-fx.ability-fx-frost::before{border-radius:12%;rotate:45deg;box-shadow:0 0 18px #c9fbff}
.defense-ability-fx.ability-fx-moss::before{border-radius:55% 20% 55% 20%;rotate:-16deg}
.defense-ability-fx.ability-fx-shadow::before,.defense-ability-fx.ability-fx-violet::before{box-shadow:0 0 18px #c59cff}
.defense-ability-fx.ability-fx-golden::before{box-shadow:0 0 22px #ffe66b}
@keyframes v79-ability-ring{0%{opacity:0;scale:.35;rotate:-10deg}22%{opacity:1;scale:1}100%{opacity:0;scale:1.55;rotate:8deg}}
@keyframes v79-ability-spin{to{rotate:180deg}}

.defense-tower-panel.v79-tower-shop{grid-template-columns:1fr;gap:.55rem;padding:.75rem;overflow:auto}
.v80-tower-shop .defense-panel-hero.v80{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:.55rem;padding-right:42px;align-items:center;min-width:0}
.v80-tower-shop .defense-panel-wallet{display:grid;align-self:stretch;place-content:center;padding:.4rem .55rem;border:2px solid #17151b;border-radius:12px;background:var(--def-money);color:#17151b;text-align:center;box-shadow:0 3px 0 #17151b;min-width:68px}
.v80-tower-shop .defense-panel-wallet small{font-size:.68rem;font-weight:950}.v80-tower-shop .defense-panel-wallet b{font-size:1rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.defense-upgrade-big{width:100%;display:flex;align-items:center;gap:.65rem;min-height:66px;padding:.55rem .7rem;border:2px solid #17151b;border-radius:14px;background:var(--def-money);color:#17151b;box-shadow:0 4px 0 #17151b;text-align:left}
.defense-upgrade-big>span{flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border:2px solid #17151b;border-radius:50%;background:#fff8dc}.defense-upgrade-big svg{width:24px;height:24px}
.defense-upgrade-big>div{min-width:0;display:grid;gap:.12rem}.defense-upgrade-big small{font-size:.68rem;font-weight:900;opacity:.76}.defense-upgrade-big b{font-size:clamp(.94rem,3.4vw,1.18rem)}
.defense-upgrade-big.cant-afford{background:#fff0b9}.defense-upgrade-big:disabled{opacity:.58;box-shadow:0 2px 0 #17151b}
.defense-panel-simple-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}
.defense-panel-simple-actions button{min-height:58px;display:flex;align-items:center;justify-content:center;gap:.35rem;padding:.4rem;border:2px solid #17151b;border-radius:12px;background:#fff2cf;color:#17151b;box-shadow:0 3px 0 #17151b;text-align:left}
.defense-panel-simple-actions button.target{background:var(--def-info)}.defense-panel-simple-actions button.power{background:#d7b6ff}.defense-panel-simple-actions button.power.ready{background:#bcffca;animation:v79-ready-pulse 1.2s ease-in-out infinite}.defense-panel-simple-actions button.sell{background:#ffd6de}
.defense-panel-simple-actions button>i{width:24px;display:grid;place-items:center;font-style:normal}.defense-panel-simple-actions button span{display:grid}.defense-panel-simple-actions small{font-size:.66rem;font-weight:900}.defense-panel-simple-actions b{font-size:.72rem}
.defense-ability-one-line{margin:0;padding:.48rem .58rem;border-radius:10px;background:#17131c;color:#ddd4e5;font-size:.72rem;line-height:1.25}.defense-ability-one-line b{color:#d7b6ff;margin-right:.3rem}
.defense-path-choice{padding:.55rem;border:2px solid #5a4e62;border-radius:14px;background:#17131c}.defense-path-choice>small{display:block;margin-bottom:.4rem;color:#fff2a8;font-weight:950;text-align:center}.defense-path-choice>div{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.defense-path-choice button{min-height:82px;display:grid;place-items:center;align-content:center;gap:.15rem;padding:.45rem;border:2px solid #17151b;border-radius:12px;background:#fff2cf;color:#17151b;box-shadow:0 3px 0 #000;text-align:center}.defense-path-choice button:first-child{background:#ffb576}.defense-path-choice button:last-child{background:#bff4d6}.defense-path-choice i{font-size:1.3rem;font-style:normal}.defense-path-choice b{font-size:.8rem}.defense-path-choice span{font-size:.62rem;line-height:1.15}
@keyframes v79-ready-pulse{50%{box-shadow:0 3px 0 #17151b,0 0 0 4px rgba(115,232,144,.18)}}

.defense-sheet-close,.defense-sheet-close-inline,.defense-ability-tray-head>button,.defense-intel-head>button,.defense-field-menu-head>button{box-sizing:border-box;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;display:grid;place-items:center;border:2px solid #17151b;border-radius:50%;background:#fff2cf;color:#17151b;line-height:0;box-shadow:0 3px 0 #17151b}
.defense-sheet-close svg,.defense-sheet-close-inline svg,.defense-ability-tray-head>button svg,.defense-intel-head>button svg,.defense-field-menu-head>button svg{width:18px;height:18px;margin:0}
.defense-sheet-close:active,.defense-sheet-close-inline:active{translate:0 2px;box-shadow:0 1px 0 #17151b}

.defense-intel-card.v79{padding:.45rem .5rem}.defense-intel-card.v79>span{flex-basis:40px;height:40px}.defense-intel-card.v79 div{gap:.04rem}.defense-intel-card.v79 em{color:#bff4d6;font-weight:900;letter-spacing:.025em}.defense-intel-more{width:100%;margin-top:.45rem;border:2px solid #514758;border-radius:10px;background:#302a37;color:#fff;min-height:44px}
.defense-wave-preview{min-height:40px}.defense-wave-preview>b{white-space:nowrap;color:#fff2a8;font-size:.72rem}.defense-wave-preview>span{margin-left:auto}.defense-wave-preview i{gap:.26rem}.defense-wave-preview i>b{order:-1}

.defense-moment.moment-wave-start{top:50%;left:50%;translate:-50% -50%;width:min(calc(100% - 2rem),360px);max-width:none}
.defense-moment.moment-wave-start .defense-moment-card{grid-template-columns:1fr;justify-items:center;gap:.16rem;width:100%;padding:.55rem .75rem;border-radius:14px;background:rgba(23,19,28,.88);text-align:center;box-shadow:0 4px 0 rgba(0,0,0,.5);backdrop-filter:none}
.defense-moment.moment-wave-start .defense-moment-card>i{display:none}.defense-moment.moment-wave-start .defense-moment-card b{font-size:clamp(1.18rem,5vw,1.55rem);color:#fff2a8}.defense-moment.moment-wave-start .defense-moment-card em{display:block;white-space:normal;font-size:.7rem;line-height:1.2;max-width:28ch}

.defense-intro-rizo{position:relative;display:grid;place-items:center;overflow:visible}.defense-intro-pet{animation:v79-intro-rizo 1.15s cubic-bezier(.18,.8,.25,1) both}.defense-intro-look{position:absolute;right:4px;top:14px;width:28px;height:28px;display:grid;place-items:center;border:2px solid #17151b;border-radius:50%;background:#fff2a8;color:#17151b;font:950 1rem/1 system-ui;font-style:normal;animation:v79-intro-alert .38s .72s ease both}.defense-intro-scout-line{position:absolute;left:50%;bottom:10px;width:120px;height:10px;translate:-50% 0;border-bottom:3px dashed rgba(255,255,255,.38);animation:v79-intro-line .8s ease both}
@keyframes v79-intro-rizo{0%{translate:-80px 20px;rotate:-10deg;scale:.82;opacity:0}55%{translate:8px -5px;rotate:4deg;scale:1.04;opacity:1}75%{translate:-3px 0;rotate:-3deg}100%{translate:0;rotate:0;scale:1}}
@keyframes v79-intro-alert{from{opacity:0;scale:.25;translate:-10px 10px}to{opacity:1;scale:1;translate:0}}
@keyframes v79-intro-line{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}

.defense-world-lobby.v79-simple{width:min(calc(100vw - 1rem),650px);max-height:calc(100dvh - 1rem);padding:.7rem;display:flex;flex-direction:column;gap:.55rem;overflow:hidden;background:#17131c;color:#fff}
.defense-world-lobby.v79-simple>*{flex:0 0 auto}
.defense-lobby-brand.v79{margin:0;min-height:42px}.defense-lobby-brand.v79>em{margin-left:auto;padding:.3rem .45rem;border:2px solid #4f4655;border-radius:999px;color:#fff2a8;font:950 .66rem/1 system-ui,-apple-system,sans-serif;font-style:normal;letter-spacing:.035em}.defense-lobby-brand.v79 b{font-size:.86rem}
.defense-world-hero{min-height:188px;display:grid;grid-template-columns:minmax(142px,.85fr) minmax(0,1.15fr);gap:.7rem;padding:.65rem;border:2px solid #0e0c11;border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--map-accent) 42%,#fff2cf),color-mix(in srgb,var(--map-accent) 18%,#201b25));box-shadow:0 5px 0 #0e0c11;overflow:hidden;color:#fff}
.defense-world-hero-map{position:relative;min-height:160px;display:grid;place-items:center;overflow:hidden;border:2px solid #17151b;border-radius:14px;background:color-mix(in srgb,var(--map-accent) 30%,#211d27)}
.defense-world-hero-map>strong{position:absolute;z-index:2;left:.55rem;top:.45rem;font-size:2rem;filter:none}.defense-world-hero-map>i{position:absolute;z-index:2;right:.42rem;bottom:.42rem;padding:.24rem .38rem;border:2px solid #17151b;border-radius:999px;background:#fff2cf;color:#17151b;font:950 .66rem/1 system-ui,-apple-system,sans-serif;font-style:normal}.defense-world-hero-map .defense-mini-route{width:88%;height:88%;opacity:.9}.defense-world-hero-map .defense-mini-route path{fill:none;stroke:#fff2cf;stroke-width:72;stroke-linecap:round;stroke-linejoin:round;paint-order:stroke;filter:none}
.defense-world-hero-copy{min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.28rem}.defense-world-hero-copy>small{color:#fff2a8;font-size:.66rem;font-weight:950;letter-spacing:.07em}.defense-world-hero-copy h2{margin:0;font-size:clamp(1.35rem,5vw,2rem)}.defense-world-hero-copy p{margin:0;color:#eee5ef;font-weight:850;font-size:.76rem;line-height:1.22}.defense-world-hero-copy>div{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.25rem}.defense-world-hero-copy>div span{padding:.28rem .4rem;border:1.5px solid #17151b;border-radius:999px;background:#fff2cf;color:#17151b;font:950 .66rem/1 system-ui,-apple-system,sans-serif}
.defense-world-picks{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.35rem}.defense-world-pick{position:relative;min-width:0;min-height:70px;display:grid;grid-template-rows:auto 1fr auto;place-items:center;gap:.1rem;padding:.32rem .18rem;border:2px solid #17151b;border-radius:12px;background:#302a37;color:#fff;box-shadow:0 3px 0 #0e0c11}.defense-world-pick>small{position:absolute;left:.28rem;top:.25rem;color:#d8cfdf;font-size:.66rem;font-weight:950}.defense-world-pick>b{font-size:1.4rem;line-height:1;align-self:end}.defense-world-pick>span{font-size:.66rem;font-weight:950;line-height:1;color:#d8cfdf}.defense-world-pick.selected{translate:0 -2px;background:var(--map-accent);color:#17151b;box-shadow:0 5px 0 #0e0c11}.defense-world-pick.selected>small,.defense-world-pick.selected>span{color:#17151b}.defense-world-pick.locked{opacity:.48;filter:saturate(.25)}
.defense-lobby-one-line{margin:0;color:#d7cedc;text-align:center;font-size:.68rem;font-weight:800}.defense-lobby-resume-simple{width:100%;display:grid;grid-template-columns:40px 1fr 24px;align-items:center;gap:.5rem;margin:0;padding:.48rem;border:2px solid #17151b;border-radius:12px;background:#bcffca;color:#17151b;box-shadow:0 3px 0 #17151b;text-align:left}.defense-lobby-resume-simple>span{width:36px;height:36px;display:grid;place-items:center;border:2px solid #17151b;border-radius:50%;background:#fff}.defense-lobby-resume-simple div{display:grid}.defense-lobby-resume-simple small{font-weight:950}.defense-lobby-resume-simple b{font-size:.8rem}.defense-lobby-resume-simple>i{font-style:normal;font-size:1.25rem}
.defense-world-lobby.v79-simple .defense-lobby-actions.v79{position:relative;bottom:auto;margin:.05rem -.7rem -.7rem;background:#17131c}.defense-lobby-actions.v79{grid-template-columns:auto auto minmax(0,1fr)}.defense-lobby-actions.v79 .primary{font-weight:950}
.defense-world-extras{width:min(calc(100vw - 1rem),560px);background:#17131c;color:#fff}.defense-extra-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:.75rem 0}.defense-extra-grid button{min-height:82px;display:grid;align-content:center;gap:.2rem;padding:.55rem;border:2px solid #17151b;border-radius:12px;background:#fff2cf;color:#17151b;box-shadow:0 3px 0 #000;text-align:left}.defense-extra-grid button b{font-size:.78rem}.defense-extra-grid button small{font-size:.65rem;line-height:1.2}

.defense-field-feed:has(>#defenseMessage[hidden]):has(>#defenseLiveStatus[hidden]):has(>#defenseBossBar[hidden]){display:none}

.defense-command-actions{grid-template-columns:repeat(6,minmax(44px,1fr)) minmax(106px,1.65fr)}
.defense-command-actions .defense-gate-flame-button{--control-accent:#ff7a38}
.defense-gate-flame-button .defense-flame-icon{font-size:1.2rem;line-height:1;filter:none}
.defense-gate-flame-button> b{min-width:34px;padding-inline:4px;font-size:.51rem}
.defense-gate-flame-button.armed{background:#ffb259;color:#17151b;box-shadow:0 3px 0 #17151b,0 0 0 4px rgba(255,122,56,.28);animation:v79-flame-ready .72s ease-in-out infinite alternate}
.defense-gate-flame-button.active{background:#ff7848;color:#17151b}
.defense-gate-flame-button.cooling{opacity:.72}
.defense-shell.gate-flame-aiming #defenseWorld{cursor:crosshair}
.defense-shell.gate-flame-aiming #defenseWorld::after{content:"TAP THE ROAD";position:absolute;z-index:30;left:50%;top:50%;translate:-50% -50%;pointer-events:none;padding:.42rem .65rem;border:2px solid #17151b;border-radius:999px;background:#ffb259;color:#17151b;box-shadow:0 3px 0 #17151b;font:950 .72rem/1 system-ui,-apple-system,sans-serif;letter-spacing:.06em}
@keyframes v79-flame-ready{to{transform:translateY(-1px);filter:brightness(1.08)}}

.defense-gate-flame-live{position:absolute;z-index:9;width:76px;height:76px;translate:-50% -58%;pointer-events:none;filter:none;isolation:isolate}
.defense-gate-flame-live>i{position:absolute;left:50%;bottom:6px;width:28px;height:48px;translate:-50% 0;border:2.2px solid #17151b;border-radius:55% 45% 52% 48% / 70% 70% 35% 35%;background:#ff713f;transform-origin:50% 100%;animation:v79-gate-fire .32s ease-in-out infinite alternate}
.defense-gate-flame-live>i:nth-child(2){width:18px;height:36px;left:38%;background:#ffbc4f;animation-delay:-.12s;rotate:-15deg}
.defense-gate-flame-live>i:nth-child(3){width:16px;height:31px;left:63%;background:#fff0a3;animation-delay:-.22s;rotate:17deg}
.defense-gate-flame-live>span{position:absolute;left:50%;bottom:1px;width:58px;height:13px;translate:-50% 0;border-radius:50%;background:rgba(54,19,13,.32);filter:blur(3px)}
.defense-gate-flame-live.low-fx>i{animation-duration:.65s}.defense-world.fx-potato .defense-gate-flame-live>i{animation:none}
@keyframes v79-gate-fire{from{scale:.9 1;translate:-50% 2px;rotate:-3deg}to{scale:1.08 .92;translate:-50% -1px;rotate:4deg}}

.defense-shell.canvas-combat .defense-combat-canvas{image-rendering:auto}

@media(max-width:390px){
  .defense-world-lobby.v79-simple{gap:.42rem}
  .defense-world-hero{grid-template-columns:118px minmax(0,1fr);min-height:154px;padding:.5rem;gap:.5rem}
  .defense-world-hero-map{min-height:136px}.defense-world-hero-map>strong{font-size:1.55rem}.defense-world-hero-copy h2{font-size:1.25rem}.defense-world-hero-copy p{font-size:.67rem}.defense-world-hero-copy>div span{font-size:.66rem;padding:.23rem .3rem}
  .defense-world-pick{min-height:62px}.defense-world-pick>b{font-size:1.2rem}.defense-world-pick>span{font-size:.66rem}
}



/* ==========================================================================\n   V80 STRATEGY + FEEL — CONSUMER PASS\n   Final ownership layer. Preserves battlefield math and performance budgets.\n   ========================================================================== */
.defense-command-deck{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.defense-command-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.38rem;min-width:0;width:100%}
.defense-command-actions .defense-wave-button{display:none}
.defense-stage-frame{position:relative}
.defense-stage-frame>.defense-wave-button{position:absolute;z-index:32;right:clamp(.45rem,2.2vw,.8rem);bottom:clamp(.45rem,2.2vw,.8rem);min-width:clamp(138px,36%,210px);min-height:54px;padding:.55rem .8rem;border:3px solid #17151b;border-radius:16px;background:#73e890;color:#17151b;box-shadow:0 5px 0 #17151b,0 10px 24px rgb(0 0 0/.26);display:flex;align-items:center;justify-content:center;gap:.45rem;font:950 clamp(.78rem,3vw,1rem)/1 var(--def-font-display);letter-spacing:.01em;transform-origin:bottom right}
.defense-stage-frame>.defense-wave-button.running{background:#ff657c;color:#17151b;min-width:112px}
.defense-stage-frame>.defense-wave-button.paused{background:#ffd45a}
.defense-stage-frame>.defense-wave-button:disabled{filter:saturate(.25);opacity:.78}
.defense-stage-frame>.defense-wave-button:not(:disabled){animation:v80-wave-ready 1.8s ease-in-out infinite}
@keyframes v80-wave-ready{50%{transform:translateY(-2px);box-shadow:0 7px 0 #17151b,0 13px 28px rgb(0 0 0/.3)}}

.defense-hud{gap:.45rem;overflow:visible}
.defense-stat{position:relative;overflow:visible;min-width:76px;min-height:50px;padding:.2rem .48rem;border-width:3px;border-radius:18px;display:grid;grid-template-columns:30px auto;grid-template-rows:1fr auto;column-gap:.2rem;align-items:center;justify-items:center;isolation:isolate}
.defense-stat>i{grid-row:1/3;width:30px;height:30px;filter:drop-shadow(0 2px 0 rgb(0 0 0/.18))}
.defense-stat>b{font:950 clamp(1.15rem,4vw,1.55rem)/.9 var(--def-font-mono);letter-spacing:-.05em}
.defense-stat>small{font:950 .52rem/1 var(--def-font-display);letter-spacing:.08em;opacity:.7}
.defense-stat-lives{background:#ff7189;color:#241019;box-shadow:0 4px 0 #17151b,0 0 0 3px rgb(255 255 255/.18) inset}
.defense-stat-lives>i{color:#fff2cf;transform:scale(1.08)}
.defense-stat-cash{background:#ffd45a;color:#241d0b;box-shadow:0 4px 0 #17151b,0 0 0 3px rgb(255 255 255/.24) inset}
.defense-stat-cash>i{color:#7d5810}
.defense-stat.hud-hit{animation:v80-heart-hit .5s cubic-bezier(.2,.9,.3,1)}
.defense-stat.hud-heal{animation:v80-heart-heal .5s ease}
.defense-stat.hud-gain{animation:v80-gold-gain .58s ease}
.defense-stat.hud-spend{animation:v80-gold-spend .35s ease}
@keyframes v80-heart-hit{20%{transform:scale(1.14) rotate(-5deg);filter:saturate(1.5)}45%{transform:translateX(-5px) rotate(4deg)}70%{transform:translateX(4px) rotate(-2deg)}}
@keyframes v80-heart-heal{40%{transform:scale(1.13)}}
@keyframes v80-gold-gain{35%{transform:translateY(-4px) scale(1.1)}55%{filter:brightness(1.25)}}
@keyframes v80-gold-spend{45%{transform:scale(.92);opacity:.72}}

.defense-abilities-button.ready{background:#ffad64;color:#17151b;box-shadow:0 4px 0 #17151b,0 0 18px rgb(255 154 82/.42)}
.defense-abilities-button .defense-action-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.defense-gate-flame-button{--control-accent:#ff7a38}
.defense-gate-flame-button.active{background:#ff7a38;color:#17151b}
.defense-gate-flame-button.armed{outline:3px solid #ffd45a;outline-offset:2px}
.defense-ember-pod-live{width:44px;height:44px;translate:-50% -50%;border:3px solid #17151b;border-radius:50%;background:#35251d;box-shadow:0 3px 0 #17151b,0 0 0 7px rgb(255 122 56/.18);animation:v80-pod-pulse .5s ease-in-out infinite alternate}
.defense-ember-pod-live>i{position:absolute;inset:8px;border-radius:50%;border:3px solid #ff7a38;background:#ffd45a}
.defense-ember-pod-live>i:nth-child(2){inset:15px;background:#2c2023;border-width:2px}.defense-ember-pod-live>i:nth-child(3){inset:-12px;border:2px dashed rgb(255 122 56/.52);background:transparent}
.defense-ember-pod-live>span{position:absolute;width:5px;height:15px;background:#17151b;left:50%;top:-12px;translate:-50% 0;border-radius:5px}
@keyframes v80-pod-pulse{to{box-shadow:0 3px 0 #17151b,0 0 0 14px rgb(255 122 56/.08)}}

.defense-wave-preview{pointer-events:none;max-width:300px}
.defense-wave-preview>em{display:block;font:800 .62rem/1.2 var(--def-font-body);opacity:.72;margin-top:.15rem}
.defense-threat-mini{display:inline-block;width:18px;height:22px;border:2px solid #17151b;border-radius:50% 50% 48% 48%;background:var(--def-info)}
.defense-threat-mini.balloon-lead{background:#77818d;box-shadow:inset 0 0 0 3px #4b535c}.defense-threat-mini.balloon-brick{background:#c87845;background-image:linear-gradient(0deg,transparent 45%,#6d3427 46% 53%,transparent 54%)}

.defense-panel-simple-actions.v80{grid-template-columns:1fr auto;align-items:stretch}.defense-panel-simple-actions.v80 .target{min-width:128px}.defense-panel-simple-actions.v80 .sell{width:auto;min-width:72px;min-height:44px;padding:.3rem .45rem;background:#ff657c;color:#240c12;border-color:#17151b}.defense-panel-simple-actions.v80 .sell i{width:19px}.defense-panel-simple-actions.v80 .sell small{font-size:.68rem}.defense-panel-simple-actions.v80 .sell b{font-size:.7rem}
.defense-panel-hero.v80 .defense-panel-copy>em{display:block;font:850 .69rem/1.15 var(--def-font-body);color:#74697b;font-style:normal;margin-top:.14rem}
.defense-sell-confirm{position:absolute;z-index:8;inset:auto .5rem .5rem;display:grid;gap:.45rem;padding:.75rem;border:3px solid #17151b;border-radius:14px;background:#fff2cf;color:#17151b;box-shadow:0 7px 0 #17151b,0 20px 36px rgb(0 0 0/.36)}
.defense-sell-confirm>b{font:950 1rem/1 var(--def-font-display)}.defense-sell-confirm>span{font:700 .72rem/1.35 var(--def-font-body)}.defense-sell-confirm>div{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.defense-sell-confirm button{min-height:44px;border:2px solid #17151b;border-radius:10px;font-weight:950}.defense-sell-confirm button.danger{background:#ff657c;color:#17151b}
.defense-super-button,.defense-super-status{width:100%;margin:.45rem 0;padding:.65rem;border:3px solid #17151b;border-radius:14px;background:#17151b;color:#fff;box-shadow:0 4px 0 color-mix(in srgb,var(--panel-accent) 70%,#000)}.defense-super-button{display:grid;text-align:left}.defense-super-button small,.defense-super-status small{color:#ffd45a;font:900 .58rem/1 var(--def-font-mono)}.defense-super-button b,.defense-super-status b{font:950 .88rem/1.1 var(--def-font-display)}.defense-super-status span{display:block;font-size:.68rem;margin-top:.2rem}

.defense-tier-charged .defense-aura{opacity:.32;filter:drop-shadow(0 0 7px var(--tower-color))}
.defense-tier-awakened .defense-aura{opacity:.58;filter:drop-shadow(0 0 10px var(--tower-color)) drop-shadow(0 0 16px var(--tower-color));animation:v80-aura-breathe 1.7s ease-in-out infinite alternate}
.defense-tier-apex .defense-aura{opacity:.82;filter:drop-shadow(0 0 11px var(--tower-color)) drop-shadow(0 0 22px var(--tower-color));animation:v80-aura-breathe .95s ease-in-out infinite alternate}
.defense-super-power .defense-aura,.defense-super-control .defense-aura{opacity:1;transform:scale(1.35);filter:drop-shadow(0 0 12px #fff) drop-shadow(0 0 28px var(--tower-color));animation:v80-super-aura .72s ease-in-out infinite alternate}
.defense-super-power .defense-rizo,.defense-super-control .defense-rizo{filter:drop-shadow(0 0 5px #fff) drop-shadow(0 0 12px var(--tower-color))}
@keyframes v80-aura-breathe{to{transform:scale(1.12);opacity:.95}}@keyframes v80-super-aura{to{transform:scale(1.52) rotate(3deg)}}


.field-guide-threat > .defense-guide-balloon{position:relative;overflow:visible;background:transparent;border:0;min-height:64px}.defense-guide-balloon::before{content:"";width:34px;height:44px;border:3px solid #17151b;border-radius:50% 50% 46% 46%;background:var(--guide-color);box-shadow:inset -6px -7px 0 rgb(0 0 0/.12),inset 6px 5px 0 rgb(255 255 255/.16);transform:rotate(-3deg)}.defense-guide-balloon::after{content:"";position:absolute;left:50%;top:49px;width:2px;height:14px;background:#17151b;transform:translateX(-50%) rotate(4deg);transform-origin:top}.defense-guide-balloon.balloon-lead::before{border-width:4px;background:#77818d;box-shadow:inset 0 0 0 4px #515a64,inset 0 6px 0 #aab1ba}.defense-guide-balloon.balloon-brick::before{background:repeating-linear-gradient(0deg,#c87845 0 9px,#6d3427 10px 12px)}.defense-guide-balloon.balloon-fleet::before{width:27px;height:48px;transform:skewY(-5deg) rotate(-3deg)}.defense-guide-balloon.balloon-shell::before{box-shadow:inset 0 0 0 4px #59616d,inset 0 6px 0 #c7ced8}.defense-guide-balloon.boss::before{width:45px;height:55px;border-width:4px;box-shadow:inset 0 0 0 4px rgb(255 255 255/.14),0 5px 0 #17151b}.defense-guide-balloon.boss-crown i{position:absolute;z-index:2;left:50%;top:5px;width:30px;height:13px;translate:-50% 0;background:#ffd45a;clip-path:polygon(0 100%,0 30%,22% 65%,38% 0,55% 65%,75% 10%,100% 55%,100% 100%);border-bottom:3px solid #17151b}.defense-guide-balloon.boss-vortex::before{background:radial-gradient(circle,#17151b 0 18%,transparent 20% 31%,#17151b 33% 37%,transparent 39%),var(--guide-color)}.defense-guide-balloon.boss-mirror::before{border-radius:38% 62% 40% 60%;background:linear-gradient(135deg,#fff 0 8%,transparent 9% 28%,#fff 29% 34%,transparent 35%),var(--guide-color)}.defense-guide-balloon.boss-apex::before{clip-path:polygon(50% 0,92% 24%,100% 70%,67% 100%,33% 100%,0 70%,8% 24%);border-radius:42%}
.defense-field-guide{grid-template-rows:max-content max-content minmax(0,1fr) max-content;min-height:0}.field-guide-tabs{min-height:46px;align-self:start;flex-shrink:0;position:relative;z-index:3}.field-guide-scroll{min-height:0;overflow:auto;position:relative;z-index:1}

.defense-moment.dismissible{pointer-events:auto}.defense-moment.dismissible .defense-moment-card{grid-template-columns:44px minmax(0,1fr) 32px}.defense-moment-dismiss{width:32px;height:32px;min-height:0;border:2px solid #17151b;border-radius:50%;background:#fff2cf;color:#17151b;font:950 1.1rem/1 var(--def-font-display)}
.defense-moment.moment-money{top:50%;translate:-50% -50%;width:min(calc(100% - 2rem),380px)}.defense-moment.moment-money .defense-moment-card{background:#17151b;border-color:#ffd45a;box-shadow:0 6px 0 #000,0 0 0 4px rgb(255 212 90/.12),0 18px 38px rgb(0 0 0/.38)}.defense-moment.moment-money b{font-size:clamp(1.25rem,5vw,1.75rem);color:#ffd45a}

.defense-result-hero{text-align:center}.defense-result-hero h2{font-size:clamp(1.8rem,8vw,3rem)}.defense-result-hero h2 u{display:inline-block;margin-left:.25rem;padding:.2rem .35rem;border:2px solid #17151b;border-radius:7px;background:#ffd45a;color:#17151b;font-size:.56em;text-decoration:none;vertical-align:middle}.defense-result-primary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:.8rem 0}.defense-result-primary>span{min-height:78px;display:grid;place-items:center;text-align:center;padding:.45rem;border:2px solid #17151b;border-radius:12px;background:#fff2cf;color:#17151b}.defense-result-primary small{font-size:.58rem;font-weight:950}.defense-result-primary b{font-size:.9rem}.defense-result-grid.v80{grid-template-columns:repeat(3,1fr)}.defense-result-details{margin:.55rem 0;border:2px solid #4a424f;border-radius:10px;background:#211c25}.defense-result-details summary{min-height:44px;display:grid;place-items:center;cursor:pointer;font:900 .72rem/1 var(--def-font-display)}.century-clear{box-shadow:0 0 0 3px #ffd45a inset,0 0 50px rgb(255 212 90/.18)}

/* Pine Bend gets authored life without adding runtime objects. */
.defense-world.map-grove .defense-trees::before,.defense-world.map-grove .defense-trees::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 8% 75%,#f45 0 2px,transparent 3px),radial-gradient(ellipse at 14% 69%,#ffd45a 0 2px,transparent 3px),radial-gradient(ellipse at 83% 22%,#ff7a38 0 2px,transparent 3px),radial-gradient(ellipse at 92% 66%,#ffd45a 0 2px,transparent 3px);opacity:.8}.defense-world.map-grove .defense-trees::after{background:conic-gradient(from 45deg at 8% 12%,transparent 0 40%,#224d38 41% 60%,transparent 61%) 0 0/92px 110px,conic-gradient(from -45deg at 92% 18%,transparent 0 40%,#173e30 41% 60%,transparent 61%) 0 0/118px 134px;opacity:.52}.defense-world.map-grove .defense-map-props i{border-color:#17151b;box-shadow:0 2px 0 #17151b}.defense-world.map-grove{box-shadow:inset 0 0 0 3px rgb(255 242 207/.12),inset 0 -55px 80px rgb(16 40 30/.18)}

/* Identity comes from material/silhouette; normal enemy trait glyphs are retired. */
.balloon-trait{display:none}.defense-enemy.balloon-brick{width:39px;height:49px;background:#c87845;border-width:3px;box-shadow:inset 0 0 0 3px #a65332}.defense-enemy.balloon-lead{width:38px;height:48px;background:#77818d;border-width:3px;box-shadow:inset 0 0 0 4px #515a64}.defense-enemy.balloon-lead::before{content:"";position:absolute;inset:18% -4%;border-top:3px solid #d7dde4;border-bottom:3px solid #4b535c}.defense-enemy.balloon-brick::before{content:"";position:absolute;inset:18% 8%;background:repeating-linear-gradient(0deg,transparent 0 8px,#6d3427 9px 11px);opacity:.72}

#defenseWorld.whiteout-live .defense-tower:not(.defense-variant-frost):not(.defense-variant-aurora) .defense-range{transition:width .28s ease,height .28s ease}#defenseWorld.whiteout-live .defense-tower.defense-variant-frost::after,#defenseWorld.whiteout-live .defense-tower.defense-variant-aurora::after{content:"RESIST";position:absolute;left:50%;bottom:-15px;translate:-50% 0;padding:2px 4px;border-radius:5px;background:#d9fbff;color:#17151b;font:950 7px/1 var(--def-font-mono);border:1px solid #17151b}

/* Chapter one: combat signals, scoped to Defense. */
.defense-chain-link{position:absolute;height:2px;background:#e7c9ff;box-shadow:0 0 0 1px #4e305c;transform-origin:left center;pointer-events:none}
.defense-shell .defense-wave-preview em{max-width:300px;white-space:normal;line-height:1.3}
.defense-shell .defense-roster-info small{letter-spacing:.02em}
.defense-shell .defense-enemy.storm-charging::after{content:"!";position:absolute;left:40%;top:-13px;color:#ffe66b;font:bold 16px sans-serif;text-shadow:1px 1px #17151b}
.defense-shell .defense-upgrade-big small{white-space:normal;line-height:1.25}
