:root {
  --ink: #4f392f;
  --ink-soft: #786157;
  --cream: #fffaf2;
  --paper: #fffdf9;
  --peach: #f28f74;
  --peach-dark: #d66b55;
  --peach-soft: #ffe0d2;
  --gold: #efb958;
  --mint: #91cbb8;
  --blue: #8bbbd4;
  --lavender: #b9acd9;
  --line: rgba(91, 62, 49, 0.14);
  --dark-line: #5a4033;
  --pet-main: #c9b0e1;
  --pet-light: #f1e8f8;
  --pet-deep: #9e7cbd;
  --shadow-sm: 0 8px 20px rgba(91, 62, 49, 0.09);
  --shadow-md: 0 18px 48px rgba(91, 62, 49, 0.14);
  --shadow-lg: 0 32px 90px rgba(52, 39, 49, 0.2);
  --radius-sm: 16px;
  --radius-md: 24px;
  --radius-lg: 36px;
  --ease-spring: cubic-bezier(0.2, 0.85, 0.25, 1.2);
  --header-height: 92px;
  --room-light-transition: 1.65s cubic-bezier(.22,.72,.24,1);
}
/* v31.28 two reusable starlight bottles */
.movable-light.round-bottle-light{width:175px;height:145px;opacity:.26;background:radial-gradient(ellipse at center,rgba(255,244,181,.42) 0,rgba(255,231,139,.15) 43%,transparent 74%);filter:blur(9px)}.movable-light-layer.is-room-dark .round-bottle-light{opacity:.48}
[data-decor="roundBottle"].has-captured-starlight{animation:none!important;filter:drop-shadow(0 0 6px rgba(255,238,155,.72)) drop-shadow(0 0 11px rgba(255,238,155,.32)) brightness(1.08)!important;transition:filter .35s ease!important}.room.is-room-dark [data-decor="roundBottle"].has-captured-starlight{filter:drop-shadow(0 0 9px rgba(255,241,166,.96)) drop-shadow(0 0 18px rgba(255,222,104,.58)) brightness(1.2)!important}[data-decor="roundBottle"].needs-placement{outline:3px dashed rgba(255,218,112,.9);outline-offset:5px}
/* v31.27 position-aware steady light sources and persistent stars */
.movable-light-layer{position:absolute;z-index:3;inset:0;overflow:hidden;pointer-events:none;mix-blend-mode:screen}.movable-light{position:absolute;width:310px;height:230px;border-radius:50%;transform:translate(-50%,-58%);opacity:.58;background:radial-gradient(ellipse at center,rgba(255,229,158,.42) 0,rgba(255,220,139,.2) 36%,rgba(255,218,137,.07) 61%,transparent 76%);filter:blur(7px);transition:left .12s linear,top .12s linear,opacity .35s ease}.movable-light.bottle-light{width:190px;height:160px;opacity:.26;background:radial-gradient(ellipse at center,rgba(255,244,181,.42) 0,rgba(255,231,139,.15) 43%,transparent 74%);filter:blur(9px)}.movable-light-layer.is-room-dark .lamp-light{opacity:.72}.movable-light-layer.is-room-dark .bottle-light{opacity:.48}.movable-light[hidden]{display:none!important}
.room.is-room-dark .food-bowl-in-room,.room.is-room-dark .water-fountain{filter:brightness(.7) saturate(.8)!important}.room.is-room-dark .water-fountain .fountain-water{filter:brightness(.78) saturate(.78)!important;opacity:.78}
[data-decor="starBottle"].has-captured-starlight{animation:none!important;filter:drop-shadow(0 0 4px rgba(255,240,171,.56)) drop-shadow(0 0 9px rgba(255,231,141,.22)) brightness(1.045)!important;transition:filter .35s ease!important}[data-decor="starBottle"].has-captured-starlight svg{animation:none!important;filter:drop-shadow(0 0 2px rgba(255,247,190,.72))!important;opacity:.9}.room.is-room-dark [data-decor="starBottle"].has-captured-starlight{animation:none!important;filter:drop-shadow(0 0 8px rgba(255,241,166,.9)) drop-shadow(0 0 16px rgba(255,222,104,.5)) brightness(1.16)!important}
.room-asterisk-star:not(.is-captured){animation-iteration-count:infinite!important}.room-asterisk-star.is-fading-away{filter:none!important;opacity:.72!important;transform:none!important;pointer-events:auto!important}
@media (max-width:640px){.movable-light{width:230px;height:180px}.movable-light.bottle-light{width:145px;height:125px}}@media (prefers-reduced-motion:reduce){.movable-light{transition:none!important}}
/* v31.26 recurring stars and curious cat */
.room-asterisk-star.is-materializing{filter:blur(7px) brightness(.7)!important;opacity:.14!important}.room-asterisk-star{transition:left .72s cubic-bezier(.22,.72,.24,1),top .72s cubic-bezier(.22,.72,.24,1),filter 1.05s ease,opacity 1.05s ease!important}.room-asterisk-star.is-fading-away{filter:blur(8px)!important;opacity:0!important;transform:scale(.35)!important;pointer-events:none!important}
.cat-stage.is-star-curious .cat-head{animation:starCuriousHead 1.1s ease-in-out infinite}.cat-stage.is-star-curious .cat-ear.left{transform:rotate(-7deg)}.cat-stage.is-star-curious .cat-ear.right{transform:rotate(7deg)}@keyframes starCuriousHead{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-2px) rotate(3deg)}}
.cat-stage.is-star-reaching .cat-leg.front-right,.cat-stage.is-star-reaching .cat-paw.front-right,.cat-stage.is-star-reaching .cat-leg.front.left{animation:starReachPaw .72s cubic-bezier(.22,.76,.22,1) both!important;transform-origin:50% 15%}.cat-stage.is-star-reaching .cat-body{transform:translateX(3px) rotate(-2deg)}@keyframes starReachPaw{0%{transform:rotate(0) translate(0,0)}45%{transform:rotate(-34deg) translate(8px,-12px)}70%{transform:rotate(-26deg) translate(12px,-9px)}100%{transform:rotate(0) translate(0,0)}}
[data-decor="starBottle"].has-captured-starlight::after,[data-decor="roundBottle"].has-captured-starlight::after{content:none!important;display:none!important}
@media (prefers-reduced-motion:reduce){.cat-stage.is-star-curious .cat-head,.cat-stage.is-star-reaching .cat-leg,.cat-stage.is-star-reaching .cat-paw{animation:none!important}.room-asterisk-star.is-materializing{filter:none!important;opacity:.7!important}}
/* v31.25: captured starlight is a steady glow, never an LED-like pulse */
[data-decor="starBottle"].has-captured-starlight{animation:none!important;filter:drop-shadow(0 0 6px rgba(255,238,155,.72)) drop-shadow(0 0 11px rgba(255,238,155,.32)) brightness(1.08)!important;transition:filter .35s ease!important}
[data-decor="starBottle"].has-captured-starlight svg{filter:drop-shadow(0 0 3px rgba(255,247,190,.9))!important;animation:none!important;opacity:.94}
.room.is-room-dark [data-decor="starBottle"].has-captured-starlight{animation:none!important;filter:drop-shadow(0 0 9px rgba(255,241,166,.96)) drop-shadow(0 0 18px rgba(255,222,104,.58)) brightness(1.2)!important}
.room.is-room-dark [data-decor="starBottle"].has-captured-starlight svg{filter:drop-shadow(0 0 5px #fff4b0)!important;opacity:1}
/* v31.24 playful floating room stars */
.room-star-layer{pointer-events:none!important}.room-asterisk-star{pointer-events:auto!important;cursor:pointer;touch-action:manipulation;user-select:none;transition:left .72s cubic-bezier(.22,.72,.24,1),top .72s cubic-bezier(.22,.72,.24,1),filter .18s;animation:roomStarDrift var(--float-time,4.8s) ease-in-out var(--star-delay,0s) infinite!important;will-change:transform,left,top}.room-asterisk-star:focus-visible{outline:2px solid #fff5ae;outline-offset:5px;border-radius:50%}
@keyframes roomStarDrift{0%,100%{transform:translate(0,0) scale(.78) rotate(-8deg);opacity:.58}35%{transform:translate(var(--float-x,12px),var(--float-y,-10px)) scale(1.08) rotate(12deg);opacity:1}70%{transform:translate(calc(var(--float-x,12px)*-.55),calc(var(--float-y,-10px)*-.45)) scale(.9) rotate(28deg);opacity:.76}}
.room-asterisk-star.is-dodging{animation:roomStarDodgeFlash .92s cubic-bezier(.22,.78,.22,1) both!important;filter:brightness(1.55) drop-shadow(0 0 10px #fff5af)}@keyframes roomStarDodgeFlash{0%{transform:scale(.85) rotate(0);opacity:.75}12%{transform:scale(1.65) rotate(35deg);opacity:1;text-shadow:0 0 10px #fff,0 0 28px #ffe77f}32%{transform:scale(.55) rotate(110deg);opacity:.72}64%{transform:scale(1.08) rotate(220deg);opacity:1}100%{transform:scale(.82) rotate(300deg);opacity:.72}}
.room-asterisk-star.is-captured{pointer-events:none!important;animation:roomStarCapture .76s cubic-bezier(.3,.7,.25,1) forwards!important}
@media (prefers-reduced-motion:reduce){.room-asterisk-star{animation:none!important;transition:left .08s linear,top .08s linear!important}.room-asterisk-star.is-dodging{animation:none!important;filter:brightness(1.35) drop-shadow(0 0 7px #fff5af)}}
/* v31.22 friendship gift, darkness and starlight bottle */
.room.is-room-dark .food-bowl-in-room,.room.is-room-dark .water-fountain{filter:brightness(.56) saturate(.72)!important}.room.is-room-dark .water-fountain .fountain-water{filter:brightness(.62) saturate(.7)!important;opacity:.7}
.room-star-layer{position:absolute;z-index:15;inset:0;pointer-events:none}.room-asterisk-star{position:absolute;color:#fff7c9;font-style:normal;font-size:18px;text-shadow:0 0 5px #fff,0 0 13px #f4d88b;animation:roomStarTwinkle 1.6s ease-in-out var(--star-delay,0s) infinite}.room-asterisk-star.is-captured{animation:roomStarCapture .68s ease-in forwards}@keyframes roomStarTwinkle{0%,100%{transform:scale(.72) rotate(0);opacity:.45}50%{transform:scale(1.16) rotate(20deg);opacity:1}}@keyframes roomStarCapture{to{left:23%;top:45%;transform:scale(.1) rotate(180deg);opacity:0}}
.starlight-capture-overlay{position:fixed;z-index:180;inset:0;display:grid;visibility:hidden;place-items:center;background:rgba(35,29,43,.58);backdrop-filter:blur(7px);opacity:0;transition:.25s}.starlight-capture-overlay.is-open{visibility:visible;opacity:1}.capture-card{position:relative;width:min(370px,88vw);height:430px;border:1px solid rgba(255,255,255,.55);border-radius:30px;background:linear-gradient(#25243d,#46405d);box-shadow:0 24px 70px rgba(22,15,28,.4)}.capture-card>p{position:absolute;left:0;right:0;bottom:24px;margin:0;color:#fff;text-align:center;font-weight:800}.capture-bottle{position:absolute;left:50%;top:100px;width:128px;height:220px;transform:translateX(-50%)}.bottle-glass{position:absolute;inset:40px 8px 0;border:4px solid rgba(235,244,255,.9);border-radius:25px 25px 43px 43px;background:rgba(210,232,244,.17);box-shadow:inset 0 0 24px rgba(255,247,181,.24)}.bottle-neck{position:absolute;z-index:3;left:39px;top:11px;width:50px;height:53px;border:4px solid rgba(235,244,255,.9);border-bottom:0;border-radius:12px 12px 0 0}.captured-star{position:absolute;z-index:4;left:50%;top:120px;color:#fff5ad;font-style:normal;font-size:34px;text-shadow:0 0 8px #fff,0 0 24px #f5d66f;transform:translateX(-50%);animation:roomStarTwinkle 1.4s ease-in-out infinite}.bottle-stopper{position:absolute;z-index:8;left:46px;top:50px;width:62px;height:30px;border:3px solid #624d38;border-radius:10px;background:linear-gradient(#b98c60,#86613e);box-shadow:0 7px 13px rgba(0,0,0,.25);cursor:grab;touch-action:none}.starlight-capture-overlay.is-sealed .bottle-stopper{left:calc(50% - 31px);top:100px;transition:.3s}.starlight-capture-overlay.is-sealed .capture-bottle{filter:drop-shadow(0 0 22px rgba(255,235,139,.85))}
[data-decor="starBottle"].has-captured-starlight{filter:drop-shadow(0 0 7px rgba(255,235,139,.8));animation:filledBottleGlow 2.2s ease-in-out infinite}.room.is-room-dark [data-decor="starBottle"].has-captured-starlight{filter:drop-shadow(0 0 12px #fff1a0) brightness(1.25)}[data-decor="starBottle"].needs-placement{outline:3px dashed rgba(255,218,112,.9);outline-offset:5px}@keyframes filledBottleGlow{50%{filter:drop-shadow(0 0 13px rgba(255,235,139,1)) brightness(1.13)}}
.bond-gift-scene{position:absolute;z-index:44;left:50%;top:48%;width:260px;height:190px;transform:translate(-50%,-50%);pointer-events:none}.gift-paw{position:absolute;left:22px;bottom:34px;width:115px;height:56px;border:5px solid var(--dark-line);border-radius:65% 40% 48% 62%;background:var(--pet-main);transform:rotate(-8deg);animation:giftPawOffer .9s var(--ease-spring) both}.gift-paw i{position:absolute;right:-13px;top:8px;width:44px;height:40px;border:5px solid var(--dark-line);border-radius:50%;background:var(--pet-main)}.friendship-gift{position:absolute;right:4px;top:20px;width:142px;padding:15px 10px;border:3px solid #796044;border-radius:23px;background:#fff5ca;box-shadow:0 14px 28px rgba(75,53,39,.25);pointer-events:auto;cursor:pointer;animation:giftAppear .7s .45s var(--ease-spring) both}.friendship-gift span{display:block;color:#d69a42;font-size:38px;text-shadow:0 0 13px #fff}.friendship-gift strong,.friendship-gift small{display:block;line-height:1.35}.friendship-gift small{margin-top:4px;color:#88715f}.bond-gift-scene.is-collected{opacity:0;transform:translate(-50%,-55%) scale(.8);transition:.4s}@keyframes giftPawOffer{from{transform:translateX(-70px) rotate(-8deg)}to{transform:translateX(0) rotate(-8deg)}}@keyframes giftAppear{from{opacity:0;transform:scale(.3) rotate(-12deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@media (prefers-reduced-motion:reduce){.room-asterisk-star,.captured-star,[data-decor="starBottle"].has-captured-starlight,.gift-paw,.friendship-gift{animation:none!important}}
/* v31.18: flowing curved tail and stable frightened appearance */
.cat-stage .cat-tail{position:absolute!important;z-index:0!important;right:2px!important;bottom:18px!important;width:86px!important;height:68px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;transform:rotate(2deg);transform-origin:11px 57px;transition:transform .48s var(--ease-spring);pointer-events:auto;touch-action:none;overflow:visible}
.cat-stage .cat-tail::before{content:""!important;position:absolute;left:1px;bottom:1px;width:73px;height:54px;box-sizing:border-box;border:12px solid var(--pet-main);border-left-color:transparent;border-bottom-color:transparent;border-radius:18% 78% 58% 0;filter:drop-shadow(0 -3px 0 var(--dark-line)) drop-shadow(3px 0 0 var(--dark-line)) drop-shadow(-1px 2px 0 var(--dark-line));transform:rotate(7deg);transform-origin:7px 46px;background:transparent!important}
.cat-stage .cat-tail::after{content:""!important;position:absolute;z-index:2;right:-2px;top:0;width:38px;height:22px;box-sizing:border-box;border:var(--line) solid var(--dark-line);border-left-width:2px;border-radius:48% 88% 88% 48%;background:var(--pet-main)!important;box-shadow:none!important;transform:rotate(-13deg);transform-origin:3px 50%;animation:pufflesTailTipSway 2.35s ease-in-out infinite}
@keyframes pufflesTailTipSway{0%,100%{transform:rotate(-14deg) translateY(0)}50%{transform:rotate(13deg) translateY(-2px)}}
@keyframes pufflesTailWalk{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(15deg)}}
.cat-stage.pose-sit .cat-tail{transform:translate(-9px,5px) rotate(20deg)}
.cat-stage.pose-walk .cat-tail,.cat-stage.pose-trot .cat-tail{animation:pufflesTailWalk 1.18s ease-in-out infinite}
.cat-stage.pose-prone .cat-tail{transform:translate(-15px,12px) rotate(30deg)}
.cat-stage.pose-roll .cat-tail{transform:translate(-17px,9px) rotate(35deg)}
.cat-stage.pose-jump .cat-tail{transform:translate(-5px,-10px) rotate(-28deg)}
.cat-stage.pose-climb .cat-tail{transform:translate(-10px,-7px) rotate(-19deg)}
.cat-stage.is-playing .cat-tail::after{animation-duration:.72s}
.cat-stage.is-startled .big-cat,.cat-stage.is-puffed .big-cat,.cat-stage.puffed .big-cat{filter:none!important;scale:1!important}
.cat-stage.is-startled .cat-body,.cat-stage.is-startled .cat-head,.cat-stage.is-puffed .cat-body,.cat-stage.is-puffed .cat-head,.cat-stage.puffed .cat-body,.cat-stage.puffed .cat-head{filter:none!important;box-shadow:none!important;background-color:var(--pet-main)!important;outline:0!important}
.cat-stage.is-startled .cat-tail,.cat-stage.is-puffed .cat-tail,.cat-stage.puffed .cat-tail{filter:none!important;scale:1!important}
.cat-stage.is-startled .cat-tail::after,.cat-stage.is-puffed .cat-tail::after,.cat-stage.puffed .cat-tail::after{animation:pufflesTailTipSway 2.35s ease-in-out infinite!important}
.cat-stage.is-startled .fur-spike,.cat-stage.is-puffed .fur-spike,.cat-stage.puffed .fur-spike,.cat-stage.is-startled .puff-spike,.cat-stage.is-puffed .puff-spike,.cat-stage.puffed .puff-spike{display:none!important}
@media (prefers-reduced-motion:reduce){.cat-stage .cat-tail,.cat-stage .cat-tail::after{animation:none!important;transition:none!important}}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  min-height: 100%;
  margin: 0;
}

body {
  color: var(--ink);
  background: var(--cream);
  font-family: "Noto Sans SC", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
}

button,
input {
  font: inherit;
}

button {
  color: inherit;
  touch-action: manipulation;
}

button:focus-visible,
input:focus-visible {
  outline: 3px solid rgba(66, 126, 168, 0.62);
  outline-offset: 3px;
}

.svg-sprite {
  position: fixed;
  width: 0;
  height: 0;
  overflow: hidden;
}

svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.screen {
  position: fixed;
  inset: 0;
  display: grid;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 300ms ease, visibility 300ms ease;
}

.screen.is-active {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.eyebrow {
  margin: 0 0 8px;
  color: #a9bfd0;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.eyebrow.peach {
  color: var(--peach-dark);
}

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

/* Meteor arrival */
.hatch-screen {
  place-items: center;
  overflow: hidden;
  color: #f8fbff;
  background:
    radial-gradient(circle at 50% 53%, rgba(151, 189, 224, 0.2), transparent 28%),
    radial-gradient(circle at 16% 16%, rgba(136, 161, 208, 0.18), transparent 30%),
    linear-gradient(145deg, #182339 0%, #222b43 42%, #343044 100%);
}

.cosmos-grain {
  position: absolute;
  inset: 0;
  opacity: 0.32;
  background-image:
    radial-gradient(circle at 12% 22%, #fff 0 1px, transparent 1.5px),
    radial-gradient(circle at 76% 30%, #cfe7ff 0 1px, transparent 1.5px),
    radial-gradient(circle at 68% 78%, #fff 0 1px, transparent 1.5px),
    radial-gradient(circle at 27% 66%, #a9cfee 0 1.2px, transparent 1.8px);
  background-size: 130px 120px, 170px 160px, 220px 210px, 250px 230px;
  mask-image: linear-gradient(to bottom, #000, transparent 95%);
}

.star-field i {
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #dceeff;
  box-shadow: 0 0 11px 3px rgba(177, 215, 246, 0.5);
  animation: starBreathe 2.8s ease-in-out infinite alternate;
}

.star-field i:nth-child(1) { left: 9%; top: 17%; animation-delay: -0.4s; }
.star-field i:nth-child(2) { left: 22%; top: 37%; width: 2px; height: 2px; animation-delay: -1.4s; }
.star-field i:nth-child(3) { left: 35%; top: 12%; width: 3px; height: 3px; animation-delay: -2s; }
.star-field i:nth-child(4) { right: 12%; top: 24%; animation-delay: -0.8s; }
.star-field i:nth-child(5) { right: 27%; top: 48%; width: 2px; height: 2px; }
.star-field i:nth-child(6) { left: 15%; bottom: 17%; width: 3px; height: 3px; animation-delay: -2.4s; }
.star-field i:nth-child(7) { right: 9%; bottom: 29%; width: 2px; height: 2px; animation-delay: -0.2s; }
.star-field i:nth-child(8) { right: 39%; bottom: 12%; animation-delay: -1.8s; }
.star-field i:nth-child(9) { left: 45%; top: 30%; width: 2px; height: 2px; animation-delay: -1s; }
.star-field i:nth-child(10) { left: 69%; top: 11%; width: 3px; height: 3px; animation-delay: -2.2s; }

@keyframes starBreathe {
  from { opacity: 0.22; transform: scale(0.65); }
  to { opacity: 1; transform: scale(1.25); }
}

.brand-lockup {
  position: absolute;
  z-index: 4;
  top: clamp(28px, 5vh, 62px);
  left: 50%;
  text-align: center;
  transform: translateX(-50%);
}

.brand-lockup h1 {
  margin: 2px 0 0;
  font-family: "Baloo 2", "Noto Sans SC", sans-serif;
  font-size: clamp(28px, 3.4vw, 45px);
  line-height: 1;
  letter-spacing: 0.02em;
}

.brand-lockup p {
  margin: 4px 0 0;
  color: rgba(232, 242, 255, 0.68);
  font-size: 12px;
  letter-spacing: 0.12em;
}

.brand-mark {
  width: 52px;
  height: 52px;
  display: block;
  margin: 0 auto 8px;
  object-fit: cover;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 16px;
  box-shadow: 0 10px 26px rgba(108,77,145,.25), inset 0 1px rgba(255,255,255,.55);
}

.hatch-stage {
  position: relative;
  z-index: 2;
  width: min(680px, 92vw);
  height: min(480px, 55vh);
  margin-top: -3vh;
}

.meteor-button {
  position: absolute;
  z-index: 5;
  top: 42%;
  left: 50%;
  width: 230px;
  height: 140px;
  padding: 0;
  border: 0;
  cursor: pointer;
  background: transparent;
  transform: translate(-50%, -50%) rotate(-13deg);
  animation: meteorDrift 6s ease-in-out infinite alternate;
}

@keyframes meteorDrift {
  0% { transform: translate(-62%, -46%) rotate(-13deg); }
  100% { transform: translate(-38%, -55%) rotate(-10deg); }
}

.meteor-core {
  position: absolute;
  right: 35px;
  top: 52px;
  width: 31px;
  height: 31px;
  border-radius: 50%;
  background: radial-gradient(circle at 38% 35%, #fff 0 12%, #e8f5ff 34%, #a7cae9 65%, rgba(139, 184, 222, 0.1) 75%);
  box-shadow: 0 0 10px 4px #e7f5ff, 0 0 35px 14px rgba(149, 199, 236, 0.6), 0 0 70px 25px rgba(130, 173, 218, 0.2);
}

.meteor-tail {
  position: absolute;
  right: 54px;
  top: 60px;
  width: 154px;
  height: 18px;
  border-radius: 100% 0 0 100%;
  opacity: 0.9;
  background: linear-gradient(90deg, transparent, rgba(242, 248, 255, 0.2) 28%, rgba(244, 250, 255, 0.82));
  filter: blur(2px);
  transform-origin: right center;
  animation: tailBreathe 1.8s ease-in-out infinite alternate;
}

.meteor-tail::after {
  content: "";
  position: absolute;
  inset: 5px 0;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent, rgba(230, 243, 255, 0.95));
  filter: blur(1px);
}

@keyframes tailBreathe {
  from { transform: scaleX(0.82); opacity: 0.58; }
  to { transform: scaleX(1); opacity: 0.95; }
}

.meteor-dust i {
  position: absolute;
  border-radius: 50%;
  background: #d8ecff;
  box-shadow: 0 0 9px #b8d9f5;
  animation: dustFloat 1.7s ease-in-out infinite alternate;
}

.meteor-dust i:nth-child(1) { left: 32px; top: 44px; width: 5px; height: 5px; }
.meteor-dust i:nth-child(2) { left: 65px; top: 85px; width: 3px; height: 3px; animation-delay: -.4s; }
.meteor-dust i:nth-child(3) { left: 104px; top: 40px; width: 4px; height: 4px; animation-delay: -.9s; }
.meteor-dust i:nth-child(4) { left: 130px; top: 90px; width: 2px; height: 2px; animation-delay: -.2s; }
.meteor-dust i:nth-child(5) { right: 18px; top: 39px; width: 3px; height: 3px; animation-delay: -1.1s; }

@keyframes dustFloat {
  from { transform: translate(0, 0) scale(.75); opacity: .3; }
  to { transform: translate(7px, -8px) scale(1.2); opacity: 1; }
}

.warm-rays {
  position: absolute;
  z-index: 1;
  top: 50%;
  left: 50%;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  opacity: 0;
  background: radial-gradient(circle, rgba(255, 243, 194, .95), rgba(248, 196, 93, .36) 38%, transparent 72%);
  transform: translate(-50%, -50%) scale(.2);
}

.warm-rays i {
  position: absolute;
  inset: -50%;
  border-radius: 50%;
  border: 1px solid rgba(255, 224, 150, 0.28);
}

.warm-rays i:nth-child(2) { inset: -95%; }
.warm-rays i:nth-child(3) { inset: -150%; }

.newborn-wrap {
  position: absolute;
  z-index: 4;
  top: 47%;
  left: 50%;
  width: 280px;
  height: 300px;
  opacity: 0;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.arrival-halo {
  position: absolute;
  left: 50%;
  top: 48%;
  width: 205px;
  height: 205px;
  border-radius: 50%;
  opacity: 0;
  background: radial-gradient(circle, rgba(255, 244, 198, .92), rgba(245, 190, 80, .42) 42%, transparent 70%);
  box-shadow: 0 0 70px rgba(248, 198, 91, .38);
  transform: translate(-50%, -50%) scale(.25);
}

.arrival-cat {
  position: absolute;
  left: 50%;
  bottom: 10px;
  width: 190px;
  height: 230px;
  transform: translateX(-50%);
}

.arrival-body,
.arrival-head,
.arrival-tail,
.arrival-paw,
.arrival-ear {
  position: absolute;
  display: block;
  opacity: 0;
  background: var(--pet-main);
  border: 5px solid var(--dark-line);
}

.arrival-body {
  left: 42px;
  bottom: 17px;
  width: 108px;
  height: 125px;
  border-radius: 54% 54% 44% 44%;
  transform: translateY(34px) scale(.7);
}

.arrival-head {
  z-index: 3;
  left: 27px;
  top: 31px;
  width: 138px;
  height: 116px;
  border-radius: 50% 50% 46% 46%;
  transform: translateY(25px) scale(.72);
}

.arrival-ear {
  z-index: -1;
  top: -33px;
  width: 54px;
  height: 62px;
  opacity: 0;
  border-radius: 13px 42px 9px 34px;
}

.arrival-ear i {
  position: absolute;
  inset: 13px 12px 8px 15px;
  border-radius: inherit;
  background: #e6a9b4;
}

.arrival-ear.left { left: 4px; transform: rotate(-20deg) translateY(16px); }
.arrival-ear.right { right: 4px; transform: scaleX(-1) rotate(-20deg) translateY(16px); }

.arrival-face {
  position: absolute;
  inset: 0;
}

.arrival-eye {
  position: absolute;
  top: 48px;
  width: 11px;
  height: 14px;
  border-radius: 50%;
  background: var(--dark-line);
  transform-origin: center;
}

.arrival-eye::after {
  content: "";
  position: absolute;
  top: 2px;
  right: 2px;
  width: 3px;
  height: 4px;
  border-radius: 50%;
  background: #fff;
}

.arrival-eye.left { left: 38px; }
.arrival-eye.right { right: 38px; }
.arrival-nose { position: absolute; left: 62px; top: 67px; width: 10px; height: 8px; border-radius: 50% 50% 60% 60%; background: #a96366; }
.arrival-mouth { position: absolute; top: 73px; width: 13px; height: 9px; border-bottom: 3px solid var(--dark-line); }
.arrival-mouth.left { left: 55px; border-radius: 0 0 100% 0; transform: rotate(8deg); }
.arrival-mouth.right { right: 55px; border-radius: 0 0 0 100%; transform: rotate(-8deg); }
.arrival-blush { position: absolute; top: 72px; width: 18px; height: 8px; border-radius: 50%; background: rgba(223, 119, 127, .35); }
.arrival-blush.left { left: 18px; }
.arrival-blush.right { right: 18px; }

.arrival-tail {
  z-index: -1;
  right: -3px;
  bottom: 22px;
  width: 78px;
  height: 42px;
  border-left: 0;
  border-radius: 0 100% 100% 0;
  transform: rotate(-12deg) translateX(-25px) scaleX(.5);
  transform-origin: left center;
}

.arrival-paw {
  z-index: 5;
  bottom: 4px;
  width: 58px;
  height: 43px;
  border-radius: 50%;
  transform: translateY(-28px);
}

.arrival-paw.left { left: 38px; }
.arrival-paw.right { right: 38px; }

.landing-spark {
  position: absolute;
  bottom: 14px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  opacity: 0;
  background: #ffe09a;
  box-shadow: 0 0 12px #ffd46f;
}

.landing-spark.s1 { left: 14px; }
.landing-spark.s2 { right: 9px; bottom: 28px; }
.landing-spark.s3 { left: 80px; bottom: -1px; width: 4px; height: 4px; }

.hatch-screen.is-revealing .meteor-button { animation: meteorBurst 400ms ease-out forwards; }
.hatch-screen.is-revealing .warm-rays { animation: warmReveal 2.8s ease-out forwards; }
.hatch-screen.is-revealing .newborn-wrap { opacity: 1; }
.hatch-screen.is-revealing .arrival-halo { animation: haloReveal 2.8s ease-out .12s forwards; }
.hatch-screen.is-revealing .arrival-ear { animation: earArrive 420ms var(--ease-spring) .48s forwards, earWiggle 230ms ease-in-out 1.05s 2 alternate; }
.hatch-screen.is-revealing .arrival-head { animation: catPartArrive 580ms var(--ease-spring) .76s forwards; }
.hatch-screen.is-revealing .arrival-body { animation: catPartArrive 680ms var(--ease-spring) 1.24s forwards; }
.hatch-screen.is-revealing .arrival-tail { animation: tailArrive 620ms var(--ease-spring) 1.66s forwards; }
.hatch-screen.is-revealing .arrival-paw { animation: pawLand 420ms var(--ease-spring) 1.95s forwards; }
.hatch-screen.is-revealing .arrival-eye { animation: eyeBlink 250ms ease-in-out 1.28s 2 alternate; }
.hatch-screen.is-revealing .landing-spark { animation: sparkSplash 600ms ease-out 2.1s forwards; }
.hatch-screen.is-revealing .hatch-copy { opacity: 0; transform: translate(-50%, 18px); }

@keyframes meteorBurst {
  0% { opacity: 1; transform: translate(-50%, -50%) rotate(-13deg) scale(1); }
  65% { opacity: 1; transform: translate(-50%, -50%) rotate(-13deg) scale(1.35); filter: brightness(1.6); }
  100% { opacity: 0; transform: translate(-50%, -50%) rotate(-13deg) scale(1.75); filter: brightness(2); }
}

@keyframes warmReveal {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.1); }
  30% { opacity: 1; transform: translate(-50%, -50%) scale(2.8); }
  100% { opacity: .35; transform: translate(-50%, -50%) scale(4.1); }
}

@keyframes haloReveal {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.2); }
  38% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); }
  100% { opacity: .45; transform: translate(-50%, -50%) scale(1); }
}

@keyframes earArrive { to { opacity: 1; transform: rotate(-20deg) translateY(0); } }
@keyframes earWiggle { to { transform: rotate(-12deg) translateY(0); } }
@keyframes catPartArrive { to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes tailArrive { to { opacity: 1; transform: rotate(-12deg) translateX(0) scaleX(1); } }
@keyframes pawLand { to { opacity: 1; transform: translateY(0); } }
@keyframes eyeBlink { to { transform: scaleY(.08); } }
@keyframes sparkSplash {
  0% { opacity: 0; transform: translateY(0) scale(.4); }
  40% { opacity: 1; transform: translateY(-18px) scale(1); }
  100% { opacity: 0; transform: translateY(-28px) translateX(12px) scale(.4); }
}

.hatch-copy {
  position: absolute;
  z-index: 5;
  left: 50%;
  bottom: clamp(26px, 6vh, 70px);
  width: min(560px, 88vw);
  text-align: center;
  transform: translateX(-50%);
  transition: opacity 260ms ease, transform 260ms ease;
}

.hatch-copy h2 {
  margin: 0;
  font-size: clamp(23px, 3vw, 38px);
  line-height: 1.3;
}

.hatch-copy > p:last-of-type {
  margin: 8px 0 0;
  color: rgba(235, 243, 253, 0.72);
  font-size: clamp(13px, 1.3vw, 16px);
}

.tap-hint {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  padding: 9px 15px;
  border: 1px solid rgba(225, 238, 252, .18);
  border-radius: 999px;
  color: rgba(238, 246, 255, .72);
  background: rgba(255,255,255,.06);
  font-size: 12px;
  backdrop-filter: blur(10px);
}

.tap-hint span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #d6eaff;
  box-shadow: 0 0 0 0 rgba(214, 234, 255, .5);
  animation: hintPulse 1.5s ease-out infinite;
}

@keyframes hintPulse { 60% { box-shadow: 0 0 0 8px rgba(214, 234, 255, 0); } }

/* Reusable small cat */
.mini-cat {
  position: relative;
  width: 150px;
  height: 165px;
  --outline: 4px;
}

.mini-body,
.mini-head,
.mini-tail,
.mini-paw,
.mini-ear {
  position: absolute;
  background: var(--pet-main);
  border: var(--outline) solid var(--dark-line);
}

.mini-body { left: 36px; bottom: 12px; width: 80px; height: 92px; border-radius: 52% 52% 42% 42%; }
.mini-head { z-index: 3; left: 21px; top: 26px; width: 111px; height: 91px; border-radius: 52% 52% 46% 46%; }
.mini-tail { right: -2px; bottom: 20px; width: 63px; height: 34px; border-left: 0; border-radius: 0 100% 100% 0; transform: rotate(-12deg); }
.mini-paw { z-index: 4; bottom: 2px; width: 45px; height: 32px; border-radius: 50%; }
.mini-paw.left { left: 31px; }
.mini-paw.right { right: 31px; }
.mini-ear { z-index: -1; top: -27px; width: 42px; height: 48px; border-radius: 10px 35px 8px 28px; }
.mini-ear.left { left: 4px; transform: rotate(-20deg); }
.mini-ear.right { right: 4px; transform: scaleX(-1) rotate(-20deg); }
.mini-ear::after { content: ""; position: absolute; inset: 10px 9px 8px 11px; border-radius: inherit; background: #e6a9b4; }
.mini-face { position: absolute; inset: 0; }
.mini-eye { position: absolute; top: 38px; width: 9px; height: 11px; border-radius: 50%; background: var(--dark-line); }
.mini-eye.left { left: 31px; }
.mini-eye.right { right: 31px; }
.mini-nose { position: absolute; left: 50px; top: 52px; width: 8px; height: 6px; border-radius: 50%; background: #a96366; }
.mini-mouth { position: absolute; left: 46px; top: 58px; width: 16px; height: 8px; border-bottom: 2px solid var(--dark-line); border-radius: 50%; }

/* Onboarding and gift */
.onboarding-screen,
.gift-screen {
  place-items: center;
  overflow: auto;
  padding: 28px;
  background:
    radial-gradient(circle at 15% 18%, rgba(249, 184, 157, .2), transparent 24%),
    radial-gradient(circle at 85% 78%, rgba(170, 211, 200, .22), transparent 28%),
    #fff9f0;
}

.onboarding-shell,
.gift-card {
  position: relative;
  width: min(480px, 100%);
  padding: 28px 42px 38px;
  border: 1px solid rgba(113, 75, 57, .1);
  border-radius: var(--radius-lg);
  text-align: center;
  background: rgba(255, 253, 249, .92);
  box-shadow: var(--shadow-lg);
}

.onboarding-art { position: relative; height: 184px; }
.portrait-ring { position: absolute; left: 50%; top: 4px; width: 176px; height: 176px; border-radius: 50%; background: linear-gradient(145deg, #ffe6d6, #e0f1eb); transform: translateX(-50%); box-shadow: inset 0 0 0 9px rgba(255,255,255,.72); overflow: hidden; }
.welcome-cat { position: absolute; left: 50%; bottom: -17px; transform: translateX(-50%) scale(.9); }
.confetti { position: absolute; z-index: 3; width: 8px; height: 18px; border-radius: 6px; background: var(--peach); }
.confetti.c1 { left: 14%; top: 40px; transform: rotate(-35deg); }
.confetti.c2 { right: 12%; top: 32px; background: var(--mint); transform: rotate(30deg); }
.confetti.c3 { left: 20%; top: 108px; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.confetti.c4 { right: 18%; top: 119px; width: 12px; height: 5px; background: var(--lavender); transform: rotate(-20deg); }
.step-dots { display: flex; justify-content: center; gap: 7px; margin: 1px 0 18px; }
.step-dots span { width: 8px; height: 8px; border-radius: 999px; background: #e8ddd5; transition: width 240ms ease, background 240ms ease; }
.step-dots span.is-current { width: 24px; background: var(--peach); }
.onboarding-shell h2,
.gift-card h2 { margin: 0; font-size: clamp(26px, 4vw, 34px); line-height: 1.3; }
.onboarding-desc { margin: 10px 0 25px; color: var(--ink-soft); font-size: 15px; }
.onboarding-shell form { text-align: left; }
.onboarding-shell label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 700; }
.input-wrap { position: relative; }
.input-wrap input { width: 100%; height: 54px; padding: 0 62px 0 17px; border: 2px solid #eadfd6; border-radius: var(--radius-sm); color: var(--ink); background: #fff; font-size: 16px; transition: border 180ms ease, box-shadow 180ms ease; }
.input-wrap input:focus { border-color: var(--peach); box-shadow: 0 0 0 4px rgba(242,143,116,.12); outline: none; }
.input-count { position: absolute; right: 15px; top: 50%; color: #aa9b91; font-size: 12px; transform: translateY(-50%); }
.field-error { min-height: 21px; margin: 5px 2px 7px; color: #b94e45; font-size: 12px; }

.primary-button,
.secondary-button,
.danger-button {
  min-height: 50px;
  border: 0;
  border-radius: 16px;
  cursor: pointer;
  font-weight: 800;
  transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.primary-button { width: 100%; color: #fff; background: linear-gradient(135deg, #f49b7f, #e87964); box-shadow: 0 10px 22px rgba(220, 111, 89, .25); }
.primary-button:hover { filter: brightness(1.04); box-shadow: 0 12px 26px rgba(220, 111, 89, .33); }
.primary-button:active,
.secondary-button:active,
.danger-button:active { transform: scale(.97); }
.primary-button:disabled { cursor: not-allowed; opacity: .45; box-shadow: none; }

.gift-card { padding-top: 42px; }
.gift-card > p:not(.eyebrow) { max-width: 330px; margin: 8px auto 24px; color: var(--ink-soft); line-height: 1.7; }
.gift-card h3 { margin: 8px 0 0; font-size: 24px; }
.sparkle-button { display: flex; align-items: center; justify-content: center; gap: 9px; }
.sparkle-button svg { width: 20px; height: 20px; }
.gift-stars span { position: absolute; width: 8px; height: 8px; border-radius: 2px; background: var(--gold); transform: rotate(45deg); }
.gift-stars span:nth-child(1) { left: 35px; top: 65px; }
.gift-stars span:nth-child(2) { right: 40px; top: 95px; width: 5px; height: 5px; background: var(--mint); }
.gift-stars span:nth-child(3) { left: 57px; top: 180px; width: 6px; height: 6px; background: var(--lavender); }
.gift-stars span:nth-child(4) { right: 48px; top: 220px; background: var(--peach); }

/* Solid 3:2 kibble with rounded depth and 3 shallow side grooves */
.kibble {
  position: absolute;
  display: block;
  width: 72px;
  height: 48px;
  border: 2px solid #82553e;
  border-radius: 49%;
  background: linear-gradient(145deg, #c98558 2%, #ad6845 66%, #92553b 100%);
  box-shadow: inset 8px 6px 12px rgba(255, 220, 168, .22), inset -6px -7px 10px rgba(91, 45, 29, .2), 0 9px 0 #75462f, 0 12px 12px rgba(94, 55, 34, .2);
  transform: rotate(-8deg);
}

.kibble::after {
  content: "";
  position: absolute;
  inset: 7px 10px;
  border-radius: 48%;
  box-shadow: inset 0 3px 8px rgba(91, 45, 29, .25), 0 1px 1px rgba(255, 226, 181, .25);
}

.kibble i {
  position: absolute;
  z-index: 2;
  left: 11px;
  right: 11px;
  bottom: -5px;
  height: 1px;
  opacity: .65;
  background: #5e3929;
  box-shadow: 0 1px rgba(226, 157, 100, .4);
}

.kibble i:nth-child(2) { bottom: -2px; }
.kibble i:nth-child(3) { bottom: 1px; }
.kibble-mini { position: relative; width: 36px; height: 24px; border-width: 1px; box-shadow: inset 4px 3px 6px rgba(255,220,168,.22), inset -3px -4px 5px rgba(91,45,29,.18), 0 5px 0 #75462f, 0 7px 8px rgba(94,55,34,.18); transform: rotate(-10deg); flex: 0 0 auto; }
.kibble-mini::after { inset: 4px 5px; }
.kibble-mini i { left: 5px; right: 5px; bottom: -3px; }
.kibble-mini i:nth-child(2) { bottom: -1px; }
.kibble-mini i:nth-child(3) { bottom: 1px; }
.kibble-pile { position: relative; width: 250px; height: 138px; margin: 24px auto 10px; border-radius: 36px; background: linear-gradient(160deg, #fff0cf, #f4cf8b); box-shadow: inset 0 -10px 20px rgba(203,139,67,.12); }
.kibble-pile .kibble.k1 { left: 31px; top: 53px; transform: rotate(14deg) scale(.8); }
.kibble-pile .kibble.k2 { left: 83px; top: 63px; transform: rotate(-4deg) scale(.8); }
.kibble-pile .kibble.k3 { right: 31px; top: 48px; transform: rotate(-17deg) scale(.8); }
.kibble-pile .kibble.k4 { left: 58px; top: 22px; transform: rotate(-9deg) scale(.8); }
.kibble-pile .kibble.k5 { right: 61px; top: 19px; transform: rotate(11deg) scale(.8); }
.gift-number { position: absolute; z-index: 8; right: 14px; bottom: 10px; display: grid; width: 55px; height: 55px; place-items: center; border: 5px solid #fff9ef; border-radius: 50%; color: #fff; background: var(--peach); font-family: "Baloo 2", sans-serif; font-size: 27px; font-weight: 800; box-shadow: var(--shadow-sm); }

/* Home shell */
.home-screen { background: #f7eee5; }
.game-shell { width: 100%; height: 100dvh; min-height: 520px; display: flex; flex-direction: column; background: #fffaf4; }
.game-header { position: relative; z-index: 20; height: var(--header-height); flex: 0 0 var(--header-height); display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px clamp(16px, 3vw, 42px); border-bottom: 1px solid rgba(94,61,45,.1); background: rgba(255, 251, 246, .94); box-shadow: 0 5px 24px rgba(90,62,49,.07); backdrop-filter: blur(18px); }
.identity-actions { min-width:0; display:flex; align-items:center; gap:12px; }
.user-chip { display: flex; align-items: center; gap: 11px; min-width: 175px; }
.avatar-dot { position: relative; width: 50px; height: 50px; flex: 0 0 auto; border-radius: 18px; background:linear-gradient(145deg,var(--pet-light),#f7f1fb); overflow: hidden; box-shadow:inset 0 -5px 0 color-mix(in srgb,var(--pet-deep),transparent 87%); }
.avatar-dot::before,.avatar-dot::after { content:""; position:absolute; z-index:1; top:7px; width:18px; height:22px; border:2px solid var(--dark-line); border-radius:5px 15px 6px 12px; background:linear-gradient(145deg,var(--pet-light) 0 32%,var(--pet-main) 34%); }
.avatar-dot::before{left:7px;transform:rotate(-18deg)}.avatar-dot::after{right:7px;transform:scaleX(-1) rotate(-18deg)}
.avatar-dot .avatar-cat-face { position:absolute; z-index:2; left:7px; bottom:-3px; width:36px; height:38px; border:2px solid var(--dark-line); border-radius:49% 49% 46% 46%; background:radial-gradient(ellipse at 50% 76%,var(--pet-light) 0 28%,transparent 29%),var(--pet-main); box-shadow:inset 0 -4px color-mix(in srgb,var(--pet-deep),transparent 82%); }
.avatar-dot .avatar-eye{position:absolute;top:13px;width:6px;height:8px;border-radius:50%;background:var(--dark-line)}
.avatar-dot .avatar-eye.left{left:8px}.avatar-dot .avatar-eye.right{right:8px}
.avatar-dot .avatar-eye::after{content:"";position:absolute;left:1px;top:1px;width:2px;height:3px;border-radius:50%;background:#fff}
.avatar-dot .avatar-nose{position:absolute;left:50%;top:22px;width:5px;height:4px;border-radius:55% 55% 70% 70%;background:var(--pet-deep);transform:translateX(-50%)}
.avatar-dot .avatar-mouth{position:absolute;top:24px;width:7px;height:6px;border-bottom:1.7px solid var(--dark-line);border-radius:50%}
.avatar-dot .avatar-mouth.left{left:11px;transform:rotate(10deg)}.avatar-dot .avatar-mouth.right{right:11px;transform:rotate(-10deg)}
.user-chip div:last-child { display:flex; flex-direction:column; min-width:0; }
.user-chip span { color:#97857a; font-size:11px; }
.user-chip strong { max-width:190px; overflow:hidden; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
.header-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.header-pill { position:relative; min-width:105px; height:56px; display:flex; align-items:center; gap:9px; padding:6px 13px 6px 7px; border:1px solid var(--line); border-radius:18px; cursor:pointer; background:#fff; box-shadow:0 5px 13px rgba(77,55,44,.06); transition:transform 160ms ease, box-shadow 160ms ease; }
.header-pill:hover { transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.icon-box { width:42px; height:42px; display:grid; flex:0 0 auto; place-items:center; border-radius:14px; }
.icon-box svg { width:22px; height:22px; }
.icon-box.mint { color:#477e6e; background:#d9eee7; }
.icon-box.peach { color:#aa604c; background:#ffe0d2; }
.icon-box.honey { color:#8d672d; background:#f8e5ad; }
.secret-button { min-height:52px; display:flex; align-items:center; gap:8px; padding:5px 14px 5px 6px; border:1px solid rgba(142,103,45,.16); border-radius:18px; color:#72562e; cursor:pointer; background:#fffaf0; box-shadow:0 5px 13px rgba(77,55,44,.06); font-size:13px; font-weight:800; transition:transform 160ms ease,box-shadow 160ms ease; }
.secret-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.secret-button:active{transform:scale(.96)}.secret-button.is-claimed{color:#5c746b;background:#eff7f2}.secret-button.is-claimed .icon-box{color:#52796a;background:#dceee6}
.pill-copy { display:flex; flex-direction:column; align-items:flex-start; line-height:1.1; }
.pill-copy small { color:#9a887d; font-size:10px; }
.pill-copy strong { font-size:14px; }
.notification-dot { position:absolute; top:-2px; right:-2px; width:11px; height:11px; border:2px solid #fff; border-radius:50%; background:#ee765f; }
.notification-dot.is-hidden { display:none; }
.food-wallet { height:54px; min-width:100px; display:flex; align-items:center; justify-content:center; gap:12px; padding:0 17px 3px 13px; border:1px solid rgba(151,103,49,.16); border-radius:18px; background:linear-gradient(145deg,#fff8e8,#f8e3bd); box-shadow:inset 0 -4px 0 rgba(167,108,50,.07); }
.food-wallet strong { min-width:28px; font-family:"Baloo 2",sans-serif; font-size:23px; font-variant-numeric:tabular-nums; }
.round-button { width:46px; height:46px; display:grid; flex:0 0 auto; place-items:center; padding:0; border:1px solid var(--line); border-radius:15px; cursor:pointer; background:#fff; transition:background 160ms ease, transform 160ms ease; }
.round-button:hover { background:#fff7ef; }.round-button:active{transform:scale(.94)}
.round-button svg { width:21px; height:21px; }
.reset-button { color:#8c766b; }
.game-content { min-height:0; flex:1; display:flex; padding:18px; gap:16px; overflow:hidden; }

/* Detailed soft room */
.room { position:relative; min-width:0; flex:1; overflow:hidden; border:1px solid rgba(101,68,51,.11); border-radius:30px; background:#fffaf2; box-shadow:var(--shadow-md); isolation:isolate; }
.wall { position:absolute; inset:0 0 34% 0; overflow:hidden; background:
  radial-gradient(ellipse at 70% 28%, rgba(250,220,166,.3), transparent 42%),
  repeating-radial-gradient(ellipse at 8px 8px, transparent 0 7px, rgba(192,167,128,.11) 8px 8.8px, transparent 9px 22px),
  #f8f1e4; }
.wall::after { content:""; position:absolute; z-index:0; left:0; right:0; bottom:0; height:37%; border-top:5px solid #d5b99e; background:
  linear-gradient(90deg, rgba(255,255,255,.16), transparent 30%, rgba(255,255,255,.12) 60%, transparent),
  repeating-linear-gradient(90deg, transparent 0 86px, rgba(115,76,52,.07) 87px 89px),
  linear-gradient(#c9a88c,#bd987b); box-shadow:inset 0 8px 18px rgba(255,242,225,.28); }
.wall::before { content:""; position:absolute; z-index:1; left:0; right:0; bottom:calc(37% - 3px); height:8px; background:#c7a589; box-shadow:0 2px 0 rgba(255,255,255,.25); }
.wall-dots { position:absolute; inset:0; opacity:.28; background-image:radial-gradient(circle at 20% 30%,rgba(155,121,87,.22) 0 1px,transparent 1.5px),radial-gradient(circle at 70% 65%,rgba(155,121,87,.18) 0 1px,transparent 1.5px); background-size:41px 37px,53px 47px; }
.floor { position:absolute; inset:66% 0 0; overflow:hidden; background-color:#ddc5a6; background-image:
  radial-gradient(circle at 28% 30%, rgba(133,93,61,.18) 0 1px, transparent 1.5px),
  radial-gradient(circle at 73% 72%, rgba(133,93,61,.13) 0 1px, transparent 1.5px),
  linear-gradient(rgba(255,252,240,.65) 4px, transparent 4px),
  linear-gradient(90deg, rgba(255,252,240,.65) 4px, transparent 4px);
  background-size:47px 43px,61px 57px,108px 78px,108px 78px;
  box-shadow:inset 0 12px 28px rgba(122,82,52,.08); }
.floor::after { content:""; position:absolute; inset:0; background:linear-gradient(118deg,rgba(255,238,189,.32),transparent 48%),radial-gradient(ellipse at 18% 20%,rgba(255,255,255,.2),transparent 44%); mix-blend-mode:screen; }
.floor-lines { position:absolute; inset:0; opacity:.3; background:repeating-linear-gradient(18deg,transparent 0 55px,rgba(116,80,53,.05) 56px 57px,transparent 58px 110px); }
.window { position:absolute; z-index:2; top:8%; left:9%; width:19%; min-width:135px; height:48%; min-height:215px; overflow:hidden; border:11px solid #c8a77d; border-radius:80px 80px 16px 16px; background:#d7eef3; box-shadow:inset 0 0 0 3px #a88259,0 10px 0 #a98460,0 19px 32px rgba(100,72,47,.17); }
.window-sky { position:absolute; inset:0; background:linear-gradient(#cfeaf1,#eaf4e6 70%,#b9d4a0 71%); }
.sun { position:absolute; top:17%; right:18%; width:35px; height:35px; border-radius:50%; background:#f7ce72; box-shadow:0 0 25px rgba(247,206,114,.65); }
.far-cloud { position:absolute; width:50px; height:13px; border-radius:999px; background:rgba(255,255,255,.75); }
.far-cloud::before,.far-cloud::after{content:"";position:absolute;bottom:0;border-radius:50%;background:inherit}.far-cloud::before{left:8px;width:20px;height:20px}.far-cloud::after{right:8px;width:26px;height:26px}
.far-cloud.one{left:8%;top:30%}.far-cloud.two{right:-7%;top:52%;transform:scale(.7)}
.window-frame { position:absolute; z-index:3; background:#bd966d; box-shadow:0 0 0 1px rgba(92,60,37,.2); }
.window-frame.vertical { left:50%; top:0; bottom:0; width:6px; transform:translateX(-50%); }
.window-frame.horizontal { left:0; right:0; top:48%; height:6px; }
.curtain { position:absolute; z-index:4; top:-4px; width:34%; height:91%; opacity:.77; background:repeating-linear-gradient(90deg,rgba(255,255,255,.86) 0 7px,rgba(218,229,222,.7) 8px 10px); filter:drop-shadow(2px 3px 3px rgba(91,71,57,.08)); }
.curtain.left{left:0;border-radius:70px 10px 50% 18px}.curtain.right{right:0;border-radius:10px 70px 18px 50%}
.picture-frame { position:absolute; z-index:2; top:15%; right:13%; width:105px; height:82px; overflow:hidden; border:8px solid #d6b593; border-radius:17px; background:#dae8d3; box-shadow:0 7px 0 #ae8b6b,0 12px 24px rgba(77,55,44,.12); }
.picture-frame .hill { position:absolute; left:-15%; right:25%; bottom:-25%; height:70%; border-radius:50%; background:#9fc8ad; transform:rotate(9deg); }
.picture-sun { position:absolute; top:14px; right:17px; width:22px; height:22px; border-radius:50%; background:#f2c36b; }
.shelf { position:absolute; z-index:2; right:7%; bottom:23%; width:157px; height:12px; border-radius:4px; background:#a97c58; box-shadow:0 7px 0 #875f44,0 12px 18px rgba(80,52,35,.15); }
.book { position:absolute; bottom:10px; width:20px; border-radius:4px 4px 0 0; }.book.b1{left:17px;height:45px;background:#db8d79}.book.b2{left:39px;height:55px;background:#88b7a8}.book.b3{left:62px;height:40px;background:#edc777}
.tiny-vase { position:absolute; right:20px; bottom:10px; width:39px; height:38px; border-radius:7px 7px 17px 17px; background:#c1b0dc; }
.tiny-vase::before,.tiny-vase::after{content:"";position:absolute;bottom:26px;width:30px;height:42px;border-radius:100% 0;background:#83af89;transform-origin:bottom}.tiny-vase::before{left:8px;transform:rotate(-42deg)}.tiny-vase::after{right:8px;transform:scaleX(-1) rotate(-42deg)}
.plant { position:absolute; z-index:3; left:31%; bottom:25%; width:82px; height:100px; }
.plant i { position:absolute; left:19px; bottom:0; width:47px; height:48px; border-radius:8px 8px 20px 20px; background:#c68a65; box-shadow:inset 0 -6px 0 rgba(112,65,42,.12); }
.leaf { position:absolute; bottom:39px; left:39px; width:25px; height:54px; border-radius:100% 0 100% 0; background:#75a482; transform-origin:bottom; }.leaf.l1{transform:rotate(-43deg)}.leaf.l2{transform:rotate(-11deg) scale(.9)}.leaf.l3{transform:scaleX(-1) rotate(-38deg)}.leaf.l4{transform:scaleX(-1) rotate(-68deg) scale(.75)}
.rug { position:absolute; z-index:1; left:50%; bottom:4%; width:45%; height:21%; border:5px solid rgba(255,255,255,.58); border-radius:50%; background:repeating-radial-gradient(ellipse,rgba(255,255,255,.1) 0 7px,rgba(160,190,174,.12) 8px 10px),#b8d2c1; box-shadow:0 12px 26px rgba(86,63,49,.12); transform:translateX(-50%); }
.sofa { position:absolute; z-index:3; left:5%; bottom:10%; width:25%; min-width:215px; height:25%; min-height:140px; }
.sofa-back,.sofa-seat,.sofa-arm,.cushion{position:absolute;display:block;background:#e7b7a5;border:4px solid var(--dark-line)}
.sofa-back{left:9%;right:9%;top:0;height:65%;border-radius:30px 30px 14px 14px}.sofa-seat{left:7%;right:7%;bottom:10%;height:43%;border-radius:13px 13px 25px 25px;background:#d99d8a}.sofa-arm{z-index:2;bottom:8%;width:20%;height:58%;border-radius:21px}.sofa-arm.left{left:0}.sofa-arm.right{right:0}.cushion{z-index:3;top:30%;width:32%;height:34%;border-width:3px;border-radius:15px;background:#f5d38c;transform:rotate(-7deg)}.cushion.left{left:18%}.cushion.right{right:18%;background:#a9cabd;transform:rotate(6deg)}

/* Main cat */
.cat-stage { position:absolute; z-index:8; left:51%; bottom:13%; width:260px; height:300px; padding:0; border:0; cursor:pointer; background:transparent; transform:translateX(-50%); }
.cat-stage:hover .big-cat { transform:translateX(-50%) translateY(-4px); }
.cat-stage:active .big-cat { transform:translateX(-50%) scale(.98); }
.cat-shadow { position:absolute; left:50%; bottom:2px; width:170px; height:30px; border-radius:50%; background:rgba(83,57,43,.17); filter:blur(4px); transform:translateX(-50%); }
.big-cat { position:absolute; left:50%; bottom:8px; width:220px; height:270px; transform:translateX(-50%); transition:transform 180ms ease; }
.cat-body,.cat-head,.cat-ear,.cat-tail,.cat-paw{position:absolute;display:block;border:5px solid var(--dark-line);background:var(--pet-main)}
.cat-body{left:46px;bottom:22px;width:130px;height:145px;border-radius:52% 52% 44% 44%;box-shadow:inset -12px -10px 0 rgba(98,65,120,.1)}
.body-patch{position:absolute;left:34px;top:48px;width:62px;height:79px;border-radius:50%;background:var(--pet-light);opacity:.68}
.cat-head{z-index:4;left:27px;top:31px;width:166px;height:139px;border-radius:51% 51% 46% 46%;box-shadow:inset -12px -10px 0 rgba(98,65,120,.08)}
.cat-ear{z-index:-1;top:-38px;width:64px;height:72px;border-radius:16px 50px 10px 41px}.cat-ear.left{left:5px;transform:rotate(-18deg)}.cat-ear.right{right:5px;transform:scaleX(-1) rotate(-18deg)}.cat-ear i{position:absolute;inset:14px 13px 9px 17px;border-radius:inherit;background:#e7a9b7}
.cat-face{position:absolute;inset:0}.cat-eye{position:absolute;top:58px;width:13px;height:17px;border-radius:50%;background:var(--dark-line)}.cat-eye::after{content:"";position:absolute;top:2px;right:2px;width:4px;height:5px;border-radius:50%;background:#fff}.cat-eye.left{left:46px}.cat-eye.right{right:46px}
.cat-blush{position:absolute;top:86px;width:24px;height:10px;border-radius:50%;background:rgba(222,116,124,.32)}.cat-blush.left{left:18px}.cat-blush.right{right:18px}.cat-nose{position:absolute;left:76px;top:79px;width:12px;height:9px;border-radius:50% 50% 60% 60%;background:#a96366}.cat-mouth{position:absolute;top:86px;width:16px;height:10px;border-bottom:3px solid var(--dark-line)}.cat-mouth.left{left:68px;border-radius:0 0 100% 0;transform:rotate(7deg)}.cat-mouth.right{right:68px;border-radius:0 0 0 100%;transform:rotate(-7deg)}
.whisker{position:absolute;width:34px;height:2px;border-radius:2px;background:var(--dark-line);opacity:.65}.whisker.w1{left:-13px;top:80px;transform:rotate(8deg)}.whisker.w2{left:-12px;top:94px;transform:rotate(-7deg)}.whisker.w3{right:-13px;top:80px;transform:rotate(-8deg)}.whisker.w4{right:-12px;top:94px;transform:rotate(7deg)}
.cat-tail{z-index:-1;right:-9px;bottom:29px;width:96px;height:53px;border-left:0;border-radius:0 100% 100% 0;transform:rotate(-12deg);transform-origin:left;animation:tailIdle 3s ease-in-out infinite alternate}.cat-paw{z-index:6;bottom:7px;width:69px;height:49px;border-radius:50%}.cat-paw.left{left:41px}.cat-paw.right{right:41px}
@keyframes tailIdle { to { transform:rotate(4deg); } }
.cat-outfit { position:absolute; z-index:7; left:50%; top:144px; width:121px; height:67px; border-radius:16px 16px 40px 40px; transform:translateX(-50%); pointer-events:none; }
.cat-outfit[data-outfit="scarf"]{top:139px;height:22px;border:4px solid var(--dark-line);border-radius:999px;background:#ef8d72}.cat-outfit[data-outfit="scarf"]::after{content:"";position:absolute;right:9px;top:11px;width:25px;height:58px;border:4px solid var(--dark-line);border-top:0;border-radius:0 0 12px 12px;background:#ef8d72;transform:rotate(-8deg)}
.cat-outfit[data-outfit="sweater"]{border:4px solid var(--dark-line);background:#8ebcac}.cat-outfit[data-outfit="sweater"]::before{content:"";position:absolute;left:11px;right:11px;top:15px;height:8px;border-top:3px solid rgba(255,255,255,.55);border-bottom:3px solid rgba(255,255,255,.55)}
.cat-outfit[data-outfit="cape"]{top:141px;height:82px;border:4px solid var(--dark-line);border-radius:10px 10px 48px 48px;background:#b39ad5;clip-path:polygon(13% 0,87% 0,100% 100%,0 100%)}
.cat-outfit[data-outfit="hat"]{top:5px;width:106px;height:34px;border:4px solid var(--dark-line);border-radius:50% 50% 10px 10px;background:#f2c66f}.cat-outfit[data-outfit="hat"]::after{content:"";position:absolute;left:-18px;right:-18px;bottom:-9px;height:12px;border:4px solid var(--dark-line);border-radius:50%;background:#e4ae52}
.heart-pop { position:absolute; z-index:20; left:50%; top:65px; width:38px; height:38px; display:grid; place-items:center; border-radius:50%; color:#ed746d; opacity:0; background:#fff; box-shadow:var(--shadow-sm); transform:translateX(-50%) scale(.5); }
.heart-pop svg{width:20px;height:20px;fill:currentColor}.heart-pop.is-popping{animation:heartPop 700ms ease-out}.cat-stage.is-petted .cat-head{animation:catNod 380ms ease-in-out}.cat-stage.is-petted .cat-eye{animation:happyEyes 500ms ease forwards}
@keyframes heartPop{35%{opacity:1;transform:translateX(-50%) translateY(-20px) scale(1)}100%{opacity:0;transform:translateX(-50%) translateY(-55px) scale(.8)}}
@keyframes catNod{50%{transform:translateY(5px) rotate(2deg)}}@keyframes happyEyes{to{height:7px;border-radius:50%;background:transparent;border-bottom:3px solid var(--dark-line)}}
.speech-bubble { position:absolute; z-index:9; left:62%; top:11%; max-width:260px; padding:14px 18px; border:3px solid var(--dark-line); border-radius:20px 20px 20px 5px; background:rgba(255,255,255,.95); box-shadow:var(--shadow-sm); font-size:14px; font-weight:600; }
.speech-bubble::after{content:"";position:absolute;left:16px;bottom:-12px;width:18px;height:18px;border-left:3px solid var(--dark-line);border-bottom:3px solid var(--dark-line);background:#fff;transform:rotate(-45deg)}
.pet-status { position:absolute; z-index:10; left:31px; bottom:24px; display:flex; align-items:center; gap:18px; padding:12px 14px; border:1px solid rgba(91,62,49,.13); border-radius:18px; background:rgba(255,253,249,.9); box-shadow:var(--shadow-sm); backdrop-filter:blur(10px); }
.pet-title{display:grid;grid-template-columns:8px auto;column-gap:7px;align-items:center}.pet-title small{grid-column:2;color:#8e7a70;font-size:10px}.online-dot{width:8px;height:8px;border-radius:50%;background:#72b799;box-shadow:0 0 0 3px rgba(114,183,153,.15)}
.mood-meter{display:flex;align-items:center;gap:7px}.mood-meter svg{width:16px;height:16px;color:#e47b71;fill:currentColor}.mood-meter>span{width:90px;height:8px;overflow:hidden;border-radius:999px;background:#eadfd9}.mood-meter i{display:block;width:72%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ee9b85,#e57470);transition:width 300ms ease}.mood-meter strong{min-width:24px;color:#d66460;font-family:"Baloo 2",sans-serif;font-size:14px;font-variant-numeric:tabular-nums}
.care-actions { position:absolute; z-index:12; right:27px; bottom:25px; display:flex; align-items:center; gap:8px; }
.care-button { min-width:74px; min-height:50px; display:flex; align-items:center; justify-content:center; gap:7px; padding:0 14px; border:0; border-radius:17px; color:#59463d; cursor:pointer; box-shadow:0 10px 22px rgba(80,57,44,.16); font-size:12px; font-weight:800; transition:transform 160ms ease,box-shadow 160ms ease; }
.care-button svg{width:20px;height:20px}.care-button.feed{color:#76582e;background:#f7dda0}.care-button.play{color:#3f705f;background:#cfe9dd}.care-button.chat{color:#fff;background:#8f78ae}.care-button:hover{transform:translateY(-2px);box-shadow:0 14px 27px rgba(80,57,44,.21)}.care-button:active{transform:scale(.96)}

/* Puffles silhouette and pose system: round head, bread-like body, short limbs */
.cat-stage .big-cat { left:50%; bottom:4px; width:260px; height:270px; transform:translateX(-50%); transform-origin:50% 100%; transition:none; }
.cat-stage[data-pose="sit"] .big-cat:hover,
.cat-stage[data-pose="sit"]:hover .big-cat { transform:translateX(-50%) translateY(-4px); }
.cat-body { left:55px; bottom:28px; width:150px; height:112px; border-radius:50% 50% 46% 46%; box-shadow:inset -12px -9px 0 rgba(98,65,120,.1); }
.body-patch { left:42px; top:39px; width:66px; height:70px; border-radius:50%; opacity:.65; }
.cat-head { left:53px; top:22px; width:154px; height:154px; border-radius:50%; box-shadow:inset -11px -9px 0 rgba(98,65,120,.08); }
.cat-ear { z-index:-1; top:-22px; width:43px; height:53px; border:0; border-radius:14px 14px 8px 8px; background:var(--dark-line); clip-path:polygon(50% 2%,58% 7%,100% 88%,96% 98%,87% 100%,50% 94%,13% 100%,4% 98%,0 88%,42% 7%); }
.cat-ear.left { left:7px; transform:rotate(-13deg); }
.cat-ear.right { right:7px; transform:scaleX(-1) rotate(-13deg); }
.cat-ear i { position:absolute; inset:8px 7px 7px; border-radius:10px 10px 5px 5px; background:#e7a9b7; clip-path:polygon(50% 4%,58% 10%,100% 88%,92% 98%,50% 91%,8% 98%,0 88%,42% 10%); }
.cat-eye { top:62px; width:12px; height:16px; }
.cat-eye.left { left:43px; }.cat-eye.right { right:43px; }
.cat-blush { top:91px; width:23px; height:9px; }.cat-blush.left{left:16px}.cat-blush.right{right:16px}
.cat-nose { left:71px; top:84px; width:11px; height:8px; }
.cat-nose::after{content:"";position:absolute;left:5px;top:7px;width:2px;height:8px;border-radius:2px;background:var(--dark-line)}
.cat-mouth { top:94px; width:16px; height:10px; border:0; border-bottom:3px solid var(--dark-line); transform:none; }.cat-mouth.left{left:61px;border-radius:0 0 100% 0;transform:none}.cat-mouth.right{right:61px;border-radius:0 0 0 100%;transform:none}
.whisker { width:31px; }.whisker.w1{left:-12px;top:84px}.whisker.w2{left:-11px;top:99px}.whisker.w3{right:-12px;top:84px}.whisker.w4{right:-11px;top:99px}
.cat-tail { z-index:2; right:3px; bottom:37px; width:79px; height:43px; border-left:0; border-radius:0 100% 100% 0; transform:rotate(-8deg); transform-origin:left center; animation:tailIdle 3s ease-in-out infinite alternate; }
.cat-paw,.cat-hind-paw { position:absolute; display:block; border:5px solid var(--dark-line); background:var(--pet-main); }
.cat-paw { z-index:7; bottom:5px; width:49px; height:48px; border-radius:50%; }
.cat-paw.left{left:75px}.cat-paw.right{right:75px}
.cat-paw::before { content:""; position:absolute; left:2px; top:-38px; width:35px; height:46px; border:5px solid var(--dark-line); border-bottom:0; border-radius:20px 20px 7px 7px; background:var(--pet-main); }
.cat-hind-paw { z-index:6; bottom:9px; width:56px; height:48px; border-radius:50%; }
.cat-hind-paw.left{left:36px}.cat-hind-paw.right{right:36px}
.cat-paw i,.cat-hind-paw i { position:absolute; left:50%; top:50%; width:17px; height:13px; display:none; border-radius:50%; background:#e9a8b6; transform:translate(-50%,-50%); }

/* Walk: low paw lift, weight shift, sniff pause and soft tail sway */
.cat-stage[data-pose="walk"] .big-cat { animation:pufflesWalk 3.8s ease-in-out infinite; }
.cat-stage[data-pose="walk"] .cat-body { animation:walkBody 3.8s ease-in-out infinite; }
.cat-stage[data-pose="walk"] .cat-head { animation:walkSniff 3.8s ease-in-out infinite; }
.cat-stage[data-pose="walk"] .cat-paw.left,.cat-stage[data-pose="walk"] .cat-hind-paw.right { animation:walkStepA 1.1s ease-in-out infinite; }
.cat-stage[data-pose="walk"] .cat-paw.right,.cat-stage[data-pose="walk"] .cat-hind-paw.left { animation:walkStepB 1.1s ease-in-out -.55s infinite; }
.cat-stage[data-pose="walk"] .cat-tail { animation:walkTail 1.1s ease-in-out infinite alternate; }
@keyframes pufflesWalk { 0%,100%{transform:translateX(calc(-50% - 15px))} 45%{transform:translateX(calc(-50% + 15px))} }
@keyframes walkBody { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }
@keyframes walkSniff { 0%,38%{transform:rotate(0)} 49%,64%{transform:rotate(7deg) translateY(3px)} 76%,100%{transform:rotate(0)} }
@keyframes walkStepA { 0%,100%{transform:translateY(0)} 40%{transform:translateY(-8px) rotate(2deg)} 65%{transform:translateY(1px)} }
@keyframes walkStepB { 0%,100%{transform:translateY(0)} 40%{transform:translateY(1px)} 67%{transform:translateY(-8px) rotate(-2deg)} }
@keyframes walkTail { from{transform:rotate(-13deg)} to{transform:rotate(8deg)} }

/* Sit: back half settles first, paws stay straight and tail circles the feet */
.cat-stage[data-pose="sit"] .big-cat { animation:sitSettle 680ms var(--ease-spring) both; }
.cat-stage[data-pose="sit"] .cat-head { animation:sitLook 5s ease-in-out infinite; }
.cat-stage[data-pose="sit"] .cat-body { animation:sitBreath 3.4s ease-in-out infinite; }
.cat-stage[data-pose="sit"] .cat-tail { bottom:12px; right:13px; width:91px; height:43px; transform:rotate(18deg); animation:sitTail 4.4s ease-in-out infinite alternate; }
@keyframes sitSettle { from{transform:translateX(-50%) translateY(-11px)} to{transform:translateX(-50%) translateY(0)} }
@keyframes sitLook { 0%,27%{transform:rotate(0)} 36%,55%{transform:rotate(5deg)} 68%,100%{transform:rotate(0)} }
@keyframes sitBreath { 50%{transform:translateY(2px) scaleY(1.015)} }
@keyframes sitTail { from{transform:rotate(13deg)} to{transform:rotate(29deg)} }

/* Prone: body stretches into a soft low bar, paws reach forward, eyes become sleepy */
.cat-stage[data-pose="prone"] .big-cat { animation:proneSettle 560ms var(--ease-spring) both; }
.cat-stage[data-pose="prone"] .cat-body { left:30px; bottom:34px; width:200px; height:78px; border-radius:50%; animation:proneBreath 3.3s ease-in-out infinite; }
.cat-stage[data-pose="prone"] .body-patch { left:70px; top:16px; width:66px; height:53px; }
.cat-stage[data-pose="prone"] .cat-head { left:63px; top:70px; width:135px; height:135px; animation:proneHead 3.7s ease-in-out infinite; }
.cat-stage[data-pose="prone"] .cat-ear { top:-19px; width:40px; height:49px; }
.cat-stage[data-pose="prone"] .cat-eye { top:56px; height:8px; border-radius:50%; background:transparent; border-bottom:3px solid var(--dark-line); }
.cat-stage[data-pose="prone"] .cat-paw { bottom:2px; width:54px; height:43px; }
.cat-stage[data-pose="prone"] .cat-paw.left{left:82px}.cat-stage[data-pose="prone"] .cat-paw.right{right:82px}
.cat-stage[data-pose="prone"] .cat-paw::before { top:-41px; height:46px; }
.cat-stage[data-pose="prone"] .cat-hind-paw { opacity:.35; bottom:22px; }
.cat-stage[data-pose="prone"] .cat-tail { right:2px; bottom:47px; width:76px; height:37px; animation:proneTail 3.8s ease-in-out infinite alternate; }
@keyframes proneSettle { from{transform:translateX(-50%) translateY(-15px) scaleY(.96)} to{transform:translateX(-50%) translateY(0) scaleY(1)} }
@keyframes proneBreath { 50%{transform:scaleY(.95) translateY(3px)} }
@keyframes proneHead { 0%,55%{transform:rotate(0)} 66%,82%{transform:rotate(-4deg) translateY(3px)} 100%{transform:rotate(0)} }
@keyframes proneTail { from{transform:rotate(-9deg)} to{transform:rotate(6deg)} }

/* Roll: side fall, belly up, four paws hover with visible pink pads */
.cat-stage[data-pose="roll"] .big-cat { animation:rollSettle 920ms var(--ease-spring) both; }
.cat-stage[data-pose="roll"] .cat-body { left:81px; bottom:42px; width:151px; height:111px; transform:rotate(-8deg); }
.cat-stage[data-pose="roll"] .body-patch { left:43px; top:21px; width:68px; height:74px; border-radius:50%; }
.cat-stage[data-pose="roll"] .cat-head { left:20px; top:77px; width:122px; height:122px; transform:rotate(-10deg); }
.cat-stage[data-pose="roll"] .cat-ear { top:-17px; width:37px; height:45px; }
.cat-stage[data-pose="roll"] .cat-eye { top:49px; width:10px; height:7px; border-radius:50%; background:transparent; border-bottom:3px solid var(--dark-line); }
.cat-stage[data-pose="roll"] .cat-eye.left{left:35px}.cat-stage[data-pose="roll"] .cat-eye.right{right:35px}
.cat-stage[data-pose="roll"] .cat-paw,.cat-stage[data-pose="roll"] .cat-hind-paw { z-index:9; width:47px; height:45px; }
.cat-stage[data-pose="roll"] .cat-paw.left{left:111px;bottom:auto;top:70px;transform:rotate(-12deg)}.cat-stage[data-pose="roll"] .cat-paw.right{right:43px;bottom:auto;top:61px;transform:rotate(18deg)}
.cat-stage[data-pose="roll"] .cat-hind-paw.left{left:108px;bottom:auto;top:168px;transform:rotate(11deg)}.cat-stage[data-pose="roll"] .cat-hind-paw.right{right:41px;bottom:auto;top:173px;transform:rotate(-17deg)}
.cat-stage[data-pose="roll"] .cat-paw::before,.cat-stage[data-pose="roll"] .cat-hind-paw::before { top:24px; height:32px; border-bottom:5px solid var(--dark-line); }
.cat-stage[data-pose="roll"] .cat-paw i,.cat-stage[data-pose="roll"] .cat-hind-paw i { display:block; }
.cat-stage[data-pose="roll"] .cat-tail { z-index:10; right:58px; bottom:103px; width:91px; height:29px; border-left:5px solid var(--dark-line); border-radius:50%; transform:rotate(8deg); animation:rollTail 2.8s ease-in-out infinite alternate; }
@keyframes rollSettle { from{transform:translateX(-50%) rotate(0) scale(.92)} to{transform:translateX(-50%) rotate(-2deg) scale(1)} }
@keyframes rollTail { from{transform:rotate(1deg)} to{transform:rotate(16deg)} }

/* Jump: crouch, takeoff, float in a soft arc, front paws land first, then head wobble */
.cat-stage[data-pose="jump"] .big-cat { animation:pufflesJump 2.55s cubic-bezier(.2,.8,.25,1) infinite; }
.cat-stage[data-pose="jump"] .cat-tail { z-index:12; right:1px; bottom:63px; width:55px; height:88px; border-left:5px solid var(--dark-line); border-top:5px solid var(--dark-line); border-bottom:5px solid var(--dark-line); border-radius:48%; transform:rotate(3deg); animation:jumpTail 2.55s ease-in-out infinite; }
.cat-stage[data-pose="jump"] .cat-paw::before { height:42px; }
.cat-stage[data-pose="jump"] .cat-shadow { animation:jumpShadow 2.55s ease-in-out infinite; }
@keyframes pufflesJump { 0%,12%{transform:translateX(-50%) translateY(0) scale(1,1)} 23%{transform:translateX(-50%) translateY(12px) scale(.86,.78)} 38%,66%{transform:translateX(-50%) translateY(-78px) scale(1.02,1.06)} 78%{transform:translateX(-50%) translateY(-8px) scale(.94,1.04)} 88%,100%{transform:translateX(-50%) translateY(0) scale(1,1)} }
@keyframes jumpTail { 0%,22%{transform:rotate(13deg)} 38%,72%{transform:rotate(-2deg)} 78%,100%{transform:rotate(8deg)} }
@keyframes jumpShadow { 0%,22%,78%,100%{transform:translateX(-50%) scale(1)} 38%,66%{transform:translateX(-50%) scale(.55)} }

.feeding-snack{position:absolute;z-index:22;left:50%;top:136px;width:28px;height:23px;opacity:0;pointer-events:none;transform:translate(-50%,35px) scale(.7)}.feeding-snack .kibble{position:absolute;inset:0;margin:auto}.cat-stage.is-eating .feeding-snack{animation:snackToMouth 1.2s ease-in-out both}.cat-stage.is-eating .big-cat{animation:eatingBob 480ms ease-in-out 3}.cat-stage.is-eating .cat-mouth{animation:chewSmile 240ms ease-in-out 6}.cat-stage.is-playing::after{content:"";position:absolute;z-index:2;left:50%;bottom:18px;width:160px;height:42px;border:3px solid rgba(255,255,255,.72);border-radius:50%;opacity:0;transform:translateX(-50%) scale(.55);animation:playRing 900ms ease-out 2}
@keyframes snackToMouth{0%{opacity:0;transform:translate(-50%,35px) scale(.7)}18%{opacity:1}72%{opacity:1;transform:translate(-50%,-7px) scale(.78)}100%{opacity:0;transform:translate(-50%,-12px) scale(.35)}}
@keyframes eatingBob{50%{transform:translateX(-50%) translateY(4px) scaleY(.98)}}
@keyframes chewSmile{50%{height:5px}}
@keyframes playRing{25%{opacity:.9}100%{opacity:0;transform:translateX(-50%) scale(1.25)}}

/* Room toys */
.toy-in-room { position:absolute; z-index:7; right:24%; bottom:12%; width:110px; height:85px; }
.cloud-toy { position:absolute; left:9px; top:18px; width:78px; height:45px; border:4px solid var(--dark-line); border-radius:45% 54% 44% 52% / 62% 67% 40% 42%; background:rgba(255,252,238,.86); box-shadow:inset 0 -8px 0 rgba(173,209,222,.16),0 8px 12px rgba(90,64,49,.12); animation:cloudToyIdle 2.8s ease-in-out infinite alternate; }
.cloud-toy::before,.cloud-toy::after{content:"";position:absolute;border:4px solid var(--dark-line);border-bottom:0;background:rgba(255,252,238,.88)}.cloud-toy::before{left:9px;top:-22px;width:30px;height:28px;border-radius:50% 50% 0 0}.cloud-toy::after{right:8px;top:-15px;width:26px;height:23px;border-radius:50% 50% 0 0}
.cloud-toy .bead{position:absolute;z-index:2;top:17px;width:9px;height:9px;border-radius:50%;box-shadow:inset 2px 2px rgba(255,255,255,.45)}.cloud-toy .bead.b1{left:19px;background:#f1ae72}.cloud-toy .bead.b2{left:34px;background:#87bcd6}.cloud-toy .bead.b3{left:49px;background:#df8eab}
.cloud-toy .dangle{position:absolute;top:38px;width:3px;height:25px;background:#876d5c}.cloud-toy .dangle::after{content:"";position:absolute;left:50%;top:20px;transform:translateX(-50%)}.cloud-toy .dangle.d1{left:12px}.cloud-toy .dangle.d1::after{width:17px;height:17px;border-radius:50%;background:#f0ca68}.cloud-toy .dangle.d2{left:39px;height:32px}.cloud-toy .dangle.d2::after{width:20px;height:27px;background:#81b8dc;clip-path:polygon(50% 0,100% 100%,55% 78%,45% 100%,0 78%)}.cloud-toy .dangle.d3{right:10px}.cloud-toy .dangle.d3::after{width:24px;height:13px;border:3px solid var(--dark-line);border-radius:60% 45% 55% 40%;background:#ef9b7f}
@keyframes cloudToyIdle{to{transform:translateX(10px) rotate(5deg)}}
.cat-tree-in-room { position:absolute; z-index:4; right:4%; bottom:8%; width:210px; height:310px; transform-origin:bottom right; }
.cloud-tree{position:absolute;inset:0}.tree-base{position:absolute;left:18px;bottom:0;width:174px;height:37px;border:4px solid var(--dark-line);border-radius:50%;background:repeating-linear-gradient(12deg,#dbc4a3 0 5px,#c9aa80 6px 8px);box-shadow:0 9px 14px rgba(80,57,40,.13)}
.tree-ramp{position:absolute;left:25px;bottom:28px;width:100px;height:45px;border:4px solid var(--dark-line);border-radius:12px;background:#d9c1ad;transform:rotate(-18deg);transform-origin:left bottom;box-shadow:inset 0 -7px rgba(120,84,60,.08)}
.tree-post{position:absolute;bottom:28px;border:4px solid var(--dark-line);border-radius:999px;background:repeating-linear-gradient(#b58d62 0 5px,#d0ad82 6px 9px)}.tree-post.main{left:94px;width:30px;height:211px}.tree-post.side1{left:45px;width:23px;height:134px}.tree-post.side2{right:33px;width:23px;height:154px}.tree-post.main i{position:absolute;left:4px;width:12px;height:7px;border-radius:50%;background:#8f6947}.tree-post.main i:nth-child(1){top:31px}.tree-post.main i:nth-child(2){top:75px}.tree-post.main i:nth-child(3){top:119px}.tree-post.main i:nth-child(4){top:163px}
.tree-platform{position:absolute;width:62px;height:24px;border:4px solid var(--dark-line);border-radius:50%;background:#d8c4b3}.tree-platform.p1{left:24px;bottom:151px}.tree-platform.p2{right:12px;bottom:171px}.tree-cloud-top{position:absolute;left:22px;top:12px;width:171px;height:71px;border:4px solid var(--dark-line);border-radius:44% 52% 40% 48%;background:#f3ecdf;box-shadow:inset 0 -10px rgba(168,142,116,.1)}.tree-cloud-top::before,.tree-cloud-top::after{content:"";position:absolute;top:-22px;border:4px solid var(--dark-line);border-bottom:0;border-radius:50% 50% 0 0;background:#f3ecdf}.tree-cloud-top::before{left:26px;width:55px;height:36px}.tree-cloud-top::after{right:23px;width:51px;height:31px}.tree-hole{position:absolute;z-index:2;left:76px;top:32px;width:50px;height:30px;border:4px solid var(--dark-line);border-radius:50%;background:#a88975}.tree-hammock{position:absolute;left:71px;top:77px;width:67px;height:48px;border:4px solid var(--dark-line);border-top:0;border-radius:0 0 50% 50%;background:#c4a894}.tree-hanging{position:absolute;z-index:5;top:69px;width:3px;height:36px;background:#7a604d}.tree-hanging::after{content:"";position:absolute;left:50%;top:31px;width:17px;height:17px;border-radius:50%;background:#efc96e;transform:translateX(-50%)}.tree-hanging.h1{left:44px}.tree-hanging.h2{right:43px}.tree-hanging.h2::after{border-radius:2px;background:#82b9db;clip-path:polygon(50% 0,100% 100%,50% 78%,0 100%)}
.tree-platform.p1{left:2px;width:116px;height:27px;background:#e4d3c3;box-shadow:inset 0 -5px rgba(132,98,76,.08)}

.room-moon-ball,.preview-moon-ball{position:relative;z-index:2;width:61px;height:61px;border:4px solid var(--dark-line);border-radius:50%;background:radial-gradient(circle at 36% 32%,#fff9ce 0 9%,#e5c36d 11% 100%);box-shadow:0 8px 13px rgba(83,56,41,.15)}.room-moon-ball::after,.preview-moon-ball::after{content:"";position:absolute;right:7px;top:4px;width:42px;height:42px;border-radius:50%;background:#f6eee7}.room-moon-ball{position:absolute;left:20px;top:17px;animation:cloudToyIdle 2.8s ease-in-out infinite alternate}.room-moon-ball::after{background:#ddc5a6}
.room-fish,.preview-fish{position:relative;z-index:2;width:75px;height:46px;border:4px solid var(--dark-line);border-radius:58% 45% 48% 55%;background:#ef9c7f;box-shadow:inset -8px -5px rgba(155,81,62,.1),0 8px 12px rgba(80,55,42,.12)}.room-fish i,.preview-fish i{position:absolute;right:-27px;top:6px;width:31px;height:31px;border:4px solid var(--dark-line);background:#ef9c7f;clip-path:polygon(0 50%,100% 0,100% 100%)}.room-fish::before,.preview-fish::before{content:"";position:absolute;left:14px;top:12px;width:7px;height:7px;border-radius:50%;background:var(--dark-line)}.room-fish{position:absolute;left:11px;top:21px;transform:rotate(-7deg)}

.wall[data-wall="wall-sage"]{background:radial-gradient(ellipse at 70% 28%,rgba(250,225,174,.22),transparent 42%),repeating-radial-gradient(ellipse at 8px 8px,transparent 0 7px,rgba(107,139,114,.12) 8px 8.8px,transparent 9px 22px),#dbe8dd}
.wall[data-wall="wall-stars"]{background:radial-gradient(ellipse at 70% 28%,rgba(250,225,174,.2),transparent 42%),radial-gradient(circle at 12px 12px,rgba(255,255,255,.88) 0 2px,transparent 2.5px),radial-gradient(circle at 33px 28px,rgba(247,225,151,.8) 0 1.5px,transparent 2px),#e5e1ef;background-size:auto,48px 48px,62px 62px,auto}
.floor[data-floor="floor-wood"]{background-color:#c6976d;background-image:radial-gradient(circle at 28% 30%,rgba(102,62,37,.18) 0 1px,transparent 1.5px),linear-gradient(90deg,rgba(101,62,37,.22) 3px,transparent 3px),linear-gradient(rgba(255,240,212,.15) 2px,transparent 2px);background-size:47px 43px,92px 100%,100% 31px}

/* Feelings, autonomous play and the new-meteor recovery flow */
.emotion-alert{position:absolute;z-index:35;top:18px;left:50%;width:min(570px,calc(100% - 36px));min-height:68px;display:flex;align-items:center;gap:12px;padding:10px 11px 10px 13px;border:1px solid rgba(143,81,76,.2);border-radius:18px;background:rgba(255,249,246,.96);box-shadow:0 14px 34px rgba(91,58,48,.16);backdrop-filter:blur(12px);transform:translateX(-50%)}
.emotion-alert[hidden]{display:none}.emotion-icon{width:43px;height:43px;display:grid;flex:0 0 auto;place-items:center;border-radius:14px;color:#a85454;background:#f8d8d4}.emotion-icon svg{width:22px;height:22px;fill:currentColor}.emotion-copy{min-width:0;flex:1;display:flex;flex-direction:column}.emotion-copy strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.emotion-copy small{margin-top:2px;color:#8d736e;font-size:10px}.emotion-copy b{color:#b34f4f;font-family:"Baloo 2",sans-serif;font-size:13px;font-variant-numeric:tabular-nums}.emotion-alert button{min-width:112px;min-height:46px;display:flex;align-items:center;justify-content:center;gap:7px;padding:0 14px;border:0;border-radius:14px;color:#fff;cursor:pointer;background:#c86767;box-shadow:0 7px 14px rgba(145,67,67,.2);font-size:12px;font-weight:800}.emotion-alert button:hover{background:#b85b5b}.emotion-alert button:active{transform:scale(.96)}.emotion-alert button svg{width:18px;height:18px;fill:currentColor}
.room.is-unhappy{box-shadow:var(--shadow-md),inset 0 0 0 999px rgba(133,112,126,.035)}.room.is-unhappy .speech-bubble{top:19%}.room.is-unhappy .cat-head{animation:sadHead 3.2s ease-in-out infinite!important}.room.is-unhappy .cat-eye{height:9px!important;border-radius:50%!important;border-bottom:3px solid var(--dark-line)!important;background:transparent!important}.room.is-unhappy .cat-eye::after{display:none}.room.is-unhappy .cat-mouth{top:103px;height:8px;border-top:3px solid var(--dark-line);border-bottom:0}.room.is-unhappy .cat-mouth.left{left:62px;border-radius:100% 0 0 0}.room.is-unhappy .cat-mouth.right{right:62px;border-radius:0 100% 0 0}.room.is-unhappy .cat-tail{animation:sadTail 2.8s ease-in-out infinite alternate!important}.room.is-unhappy .online-dot{background:#c77b77;box-shadow:0 0 0 3px rgba(199,123,119,.15)}
@keyframes sadHead{0%,100%{transform:translateY(5px) rotate(-2deg)}50%{transform:translateY(9px) rotate(1deg)}}
@keyframes sadTail{from{transform:rotate(22deg)}to{transform:rotate(34deg)}}

.cat-stage.is-self-playing{animation:selfPlayChase 4.2s ease-in-out both}.toy-in-room.is-cat-playing{animation:selfToyBounce 4.2s ease-in-out both}.cat-tree-in-room.is-cat-playing .tree-hanging{animation:selfTreeDangle .5s ease-in-out 7 alternate}.cat-tree-in-room.is-cat-playing .tree-ramp{animation:selfTreeTap .7s ease-in-out 5 alternate}
@keyframes selfPlayChase{0%,100%{margin-left:0}32%{margin-left:7%}65%{margin-left:-4%}82%{margin-left:3%}}
@keyframes selfToyBounce{0%,100%{margin-right:0;margin-bottom:0}25%{margin-right:7%;margin-bottom:13px}52%{margin-right:-2%;margin-bottom:3px}76%{margin-right:5%;margin-bottom:9px}}
@keyframes selfTreeDangle{to{transform:rotate(15deg)}}
@keyframes selfTreeTap{to{transform:rotate(-14deg) translateY(-3px)}}

.away-state{position:absolute;z-index:45;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:auto;padding:24px max(18px,4vw);text-align:center;background:rgba(255,250,243,.94);backdrop-filter:blur(7px)}.away-state[hidden]{display:none}.away-state .eyebrow{margin-top:4px}.away-state h2{max-width:680px;margin:0;font-family:"Baloo 2","Noto Sans SC",sans-serif;font-size:clamp(23px,3vw,36px);line-height:1.2}.away-description{max-width:590px;margin:8px auto 17px;color:#826e65;font-size:12px;line-height:1.7}.away-meteor{position:relative;width:92px;height:62px;margin-bottom:7px;transform:rotate(-12deg)}.away-meteor span{position:absolute;right:8px;top:18px;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 34%,#fff 0 15%,#e6f4ff 36%,#9bc4e3 68%);box-shadow:0 0 11px 4px #e5f4ff,0 0 28px 10px rgba(139,190,229,.42)}.away-meteor::before{content:"";position:absolute;right:31px;top:25px;width:57px;height:13px;border-radius:100% 0 0 100%;background:linear-gradient(90deg,transparent,rgba(206,232,250,.75))}.away-meteor i{position:absolute;width:4px;height:4px;border-radius:50%;background:#efc96f;box-shadow:0 0 8px rgba(239,201,111,.8)}.away-meteor i:nth-of-type(1){left:19px;top:8px}.away-meteor i:nth-of-type(2){right:2px;top:4px}.away-meteor i:nth-of-type(3){left:9px;bottom:9px}
.buy-meteor-button{min-width:260px;min-height:50px;display:flex;align-items:center;justify-content:center;gap:11px;padding:0 20px;border:0;border-radius:16px;color:#fff;cursor:pointer;background:#846fa5;box-shadow:0 10px 22px rgba(98,75,132,.23);font-size:13px;font-weight:800}.buy-meteor-button:hover{background:#756092}.buy-meteor-button:active{transform:scale(.97)}.buy-meteor-button:disabled{color:#9b8f88;cursor:not-allowed;background:#e7dfda;box-shadow:none}.meteor-shortfall{min-height:21px;margin:7px 0 0;color:#9b5b57;font-size:11px}.rescue-panel{width:min(680px,100%);margin-top:9px;padding-top:14px;border-top:1px solid rgba(91,62,49,.14)}.rescue-panel[hidden]{display:none}.rescue-heading{display:flex;align-items:baseline;justify-content:center;gap:9px;margin-bottom:10px}.rescue-heading strong{font-size:13px}.rescue-heading span{color:#8e7a70;font-size:10px}.rescue-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.rescue-actions button{min-width:0;min-height:50px;display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:7px;padding:6px 10px;border:1px solid rgba(91,62,49,.13);border-radius:14px;color:#5c4a42;cursor:pointer;background:#fff;box-shadow:0 6px 14px rgba(84,58,46,.07);text-align:left}.rescue-actions button:hover{border-color:rgba(107,139,122,.4);background:#f5faf7}.rescue-actions button:active{transform:scale(.98)}.rescue-actions button svg{width:19px;height:19px;color:#668d7c}.rescue-actions button span{overflow:hidden;font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.rescue-actions button strong{color:#b06b45;font-size:10px}.rescue-actions button.is-complete{color:#728078;background:#edf4f0}.rescue-actions button.is-complete strong{color:#668071}.rescue-actions button:disabled{cursor:default;box-shadow:none}
.room.is-away>.cat-stage,.room.is-away>.speech-bubble,.room.is-away>.emotion-alert,.room.is-away>.pet-status,.room.is-away>.care-actions{visibility:hidden;pointer-events:none}.dock-button:disabled,.care-button:disabled{cursor:not-allowed;opacity:.42;transform:none;box-shadow:none}

/* Dock, drawers and item cards */
.shop-dock { width:118px; flex:0 0 118px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:10px; padding:16px 10px; border:1px solid rgba(99,65,48,.1); border-radius:28px; background:#fffdf9; box-shadow:var(--shadow-md); }
.shop-dock>p{margin:auto 0 3px;color:#a18e83;font-size:11px;font-weight:700;writing-mode:vertical-rl;letter-spacing:.22em}.dock-button{width:88px;min-height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:6px;border:0;border-radius:20px;cursor:pointer;background:transparent;font-size:12px;font-weight:700;transition:background 160ms ease,transform 160ms ease}.dock-button:hover{background:#f9f0e8;transform:translateY(-2px)}.dock-button:active{transform:scale(.95)}.dock-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:17px}.dock-icon svg{width:25px;height:25px}.dock-icon.coral{color:#a95849;background:#ffddd2}.dock-icon.lavender{color:#726092;background:#e5dcf1}.dock-icon.blue{color:#4f7790;background:#dcecf4}
.drawer-backdrop{position:fixed;z-index:80;inset:0;visibility:hidden;opacity:0;background:rgba(50,34,29,.4);backdrop-filter:blur(4px);transition:opacity 220ms ease,visibility 220ms ease}.drawer-backdrop.is-open{visibility:visible;opacity:1}.side-drawer{position:fixed;z-index:90;top:0;right:0;width:min(440px,100%);height:100dvh;display:flex;flex-direction:column;padding:26px 26px 22px;border-left:1px solid rgba(87,60,47,.12);background:#fffaf4;box-shadow:-18px 0 55px rgba(63,42,33,.18);transform:translateX(105%);transition:transform 300ms cubic-bezier(.2,.8,.2,1)}.side-drawer.is-open{transform:translateX(0)}.drawer-handle{display:none}.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.drawer-header h2{margin:0;font-size:28px}.drawer-wallet{height:54px;display:flex;align-items:center;gap:11px;margin:20px 0 16px;padding:0 16px 4px;border:1px solid rgba(151,103,49,.13);border-radius:17px;background:linear-gradient(145deg,#fff8e8,#f7e3c1)}.drawer-wallet span:not(.kibble){color:#8f796b;font-size:13px}.drawer-wallet strong{margin-left:auto;font-family:"Baloo 2",sans-serif;font-size:23px}.drawer-body{min-height:0;overflow:auto;padding:2px 3px 25px}.drawer-intro{margin:0 0 15px;color:#826e64;font-size:13px;line-height:1.7}.store-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.store-item{position:relative;overflow:hidden;min-height:212px;padding:12px;border:1px solid rgba(101,69,53,.11);border-radius:21px;background:#fff;box-shadow:0 7px 17px rgba(79,56,43,.06)}.item-preview{position:relative;height:98px;display:grid;place-items:center;overflow:hidden;border-radius:15px;background:#f6eee7}.item-preview::after{content:"";position:absolute;left:20%;right:20%;bottom:12px;height:10px;border-radius:50%;background:rgba(71,52,43,.09);filter:blur(3px)}.store-item h3{margin:10px 0 1px;font-size:14px}.store-item .item-desc{height:34px;margin:0;color:#948279;font-size:10px;line-height:1.55}.item-action{width:100%;min-height:39px;display:flex;align-items:center;justify-content:center;gap:7px;margin-top:7px;padding:0 9px;border:0;border-radius:12px;color:#fff;cursor:pointer;background:#ee8b72;font-size:12px;font-weight:800}.item-action:hover{filter:brightness(1.04)}.item-action:active{transform:scale(.97)}.item-action.is-owned{color:#5e4a40;background:#eee4dc}.item-action.is-equipped{color:#fff;background:#77aa98}.item-action.is-remove{color:#a45147;background:#f8ddd6}.item-action:disabled{cursor:not-allowed;opacity:.45}.mini-price-kibble{position:relative;width:19px;height:13px;border:1px solid #79503a;border-radius:50%;background:#b9704b;box-shadow:0 3px 0 #70432e}.owned-badge{position:absolute;z-index:4;top:8px;right:8px;padding:4px 7px;border-radius:8px;color:#527a6d;background:#dff0e9;font-size:9px;font-weight:800}.preview-shirt{z-index:1;width:64px;height:53px;border:3px solid var(--dark-line);clip-path:polygon(27% 0,39% 11%,61% 11%,73% 0,100% 20%,86% 44%,78% 37%,78% 100%,22% 100%,22% 37%,14% 44%,0 20%);background:#ef8d72}.preview-shirt.sweater{background:#8ebcac}.preview-shirt.cape{background:#b39ad5}.preview-shirt.hat{height:34px;border-radius:50% 50% 7px 7px;clip-path:none;background:#f2c66f}.preview-sofa{z-index:1;width:88px;height:47px;border:3px solid var(--dark-line);border-radius:15px 15px 8px 8px;background:#e7b7a5;box-shadow:inset 0 -17px #d99d8a}.preview-wall{z-index:1;width:96px;height:66px;border:3px solid var(--dark-line);border-radius:8px;background:#f6eddf}.preview-wall.sage{background:#dce9dc}.preview-wall.stars{background-color:#e6e2f1;background-image:radial-gradient(circle,#fff 0 2px,transparent 2.5px);background-size:19px 19px}.preview-floor{z-index:1;width:96px;height:66px;border:3px solid var(--dark-line);border-radius:8px;background-color:#ddc5a6;background-image:linear-gradient(#fff5df 2px,transparent 2px),linear-gradient(90deg,#fff5df 2px,transparent 2px);background-size:30px 23px}.preview-floor.wood{background-color:#c79a70;background-image:linear-gradient(90deg,rgba(93,59,35,.22) 2px,transparent 2px);background-size:24px}.preview-toy{position:relative;z-index:2;transform:scale(.75)}.preview-tree{position:relative;z-index:2;transform:scale(.27);transform-origin:center}
.task-list{display:flex;flex-direction:column;gap:11px}.task-card{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:11px;padding:12px;border:1px solid rgba(98,67,51,.1);border-radius:18px;background:#fff}.task-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;color:#5d806f;background:#dff0e8}.task-icon svg{width:22px;height:22px}.task-copy h3{margin:0;font-size:13px}.task-copy p{margin:3px 0 7px;color:#9a887e;font-size:10px}.progress-track{height:7px;overflow:hidden;border-radius:99px;background:#eadfd8}.progress-track i{display:block;height:100%;border-radius:inherit;background:#82b29f}.claim-button{min-width:64px;height:38px;border:0;border-radius:11px;color:#fff;cursor:pointer;background:#ed8e74;font-size:11px;font-weight:800}.claim-button:disabled{color:#9d8a80;cursor:not-allowed;background:#eee5df}.task-reset-note{margin:14px 0;color:#9a887f;text-align:center;font-size:10px}.event-hero{position:relative;overflow:hidden;padding:22px;border-radius:22px;color:#594438;background:linear-gradient(145deg,#ffe1c6,#f7c489);box-shadow:inset 0 -9px 20px rgba(170,96,46,.08)}.event-hero::after{content:"";position:absolute;right:-12px;top:-18px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.25)}.event-hero small{font-weight:800}.event-hero h3{margin:6px 0;font-size:22px}.event-hero p{max-width:250px;margin:0;font-size:12px;line-height:1.7}.event-road{display:flex;align-items:flex-start;justify-content:space-between;gap:0;margin:28px 7px 8px}.event-step{position:relative;z-index:2;width:25%;text-align:center}.event-step::before{content:"";position:absolute;z-index:-1;left:50%;top:17px;width:100%;height:5px;background:#e8ded7}.event-step:last-child::before{display:none}.event-node{width:38px;height:38px;display:grid;place-items:center;margin:0 auto 7px;border:4px solid #fff;border-radius:50%;color:#fff;background:#cfbdb1;box-shadow:0 0 0 2px #cfbdb1;font-size:11px;font-weight:800}.event-step.is-done .event-node{background:#7eb09d;box-shadow:0 0 0 2px #7eb09d}.event-step.is-current .event-node{background:#ee8c70;box-shadow:0 0 0 2px #ee8c70}.event-step span{font-size:9px}.event-reward{display:flex;align-items:center;gap:12px;margin-top:20px;padding:14px;border:1px solid rgba(99,68,52,.1);border-radius:17px;background:#fff}.reward-box{width:50px;height:50px;display:grid;place-items:center;border-radius:15px;color:#8067a4;background:#e8dff3}.event-reward div:nth-child(2){flex:1}.event-reward h4{margin:0;font-size:13px}.event-reward p{margin:3px 0 0;color:#938077;font-size:10px}.event-reward button{height:38px;padding:0 12px;border:0;border-radius:11px;color:#fff;background:#8b74ac;font-size:11px;font-weight:800}

/* Chat and confirmation */
.toast{position:fixed;z-index:130;left:50%;bottom:32px;max-width:min(420px,88vw);padding:12px 18px;border-radius:14px;color:#fff;visibility:hidden;opacity:0;background:rgba(74,54,45,.92);box-shadow:var(--shadow-md);font-size:13px;transform:translate(-50%,14px);transition:opacity 180ms ease,transform 180ms ease,visibility 180ms ease}.toast.is-visible{visibility:visible;opacity:1;transform:translate(-50%,0)}
.modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;visibility:hidden;place-items:center;padding:22px;opacity:0;background:rgba(53,36,31,.48);backdrop-filter:blur(6px);transition:opacity 220ms ease,visibility 220ms ease}.modal-backdrop.is-open{visibility:visible;opacity:1}.chat-card{width:min(500px,100%);height:min(650px,86dvh);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(90,60,45,.12);border-radius:30px;background:#fffaf5;box-shadow:var(--shadow-lg);transform:translateY(16px) scale(.98);transition:transform 260ms var(--ease-spring)}.modal-backdrop.is-open .chat-card,.modal-backdrop.is-open .confirm-card,.modal-backdrop.is-open .secret-card{transform:translateY(0) scale(1)}.chat-card>header{height:83px;display:flex;align-items:center;gap:12px;padding:14px 17px;border-bottom:1px solid rgba(89,59,45,.1);background:#fff}.chat-card>header div:nth-child(2){flex:1}.chat-card>header small{color:#8fa59b;font-size:10px}.chat-card>header h2{margin:0;font-size:18px}.chat-avatar{position:relative;width:50px;height:50px;border-radius:17px;background:#e4d9ef}.chat-avatar .mini-ear{top:8px;width:17px;height:19px;border-width:2px}.chat-avatar .mini-ear.left{left:7px}.chat-avatar .mini-ear.right{right:7px}.chat-avatar i{position:absolute;left:9px;bottom:6px;width:32px;height:30px;border:2px solid var(--dark-line);border-radius:50%;background:var(--pet-main)}.chat-avatar b{position:absolute;z-index:3;left:17px;bottom:17px;width:4px;height:5px;border-radius:50%;background:var(--dark-line);box-shadow:12px 0 var(--dark-line)}
.chat-messages{min-height:0;flex:1;display:flex;flex-direction:column;gap:10px;overflow:auto;padding:20px}.message{max-width:78%;padding:11px 14px;border-radius:16px;font-size:13px;line-height:1.65}.message.pet{align-self:flex-start;border-bottom-left-radius:5px;background:#eee8f5}.message.user{align-self:flex-end;border-bottom-right-radius:5px;color:#fff;background:#e78a70}.message time{display:block;margin-top:3px;opacity:.55;font-size:8px}.chat-form{display:flex;gap:9px;padding:13px;border-top:1px solid rgba(89,59,45,.1);background:#fff}.chat-form input{min-width:0;height:49px;flex:1;padding:0 16px;border:2px solid #eadfd8;border-radius:15px;background:#fffaf7;font-size:16px}.chat-form input:focus{border-color:#9a85b7;outline:0}.chat-form button{width:49px;height:49px;display:grid;place-items:center;border:0;border-radius:15px;color:#fff;cursor:pointer;background:#8d76ad}.chat-form button:active{transform:scale(.94)}.chat-form button:disabled,.chat-form input:disabled{cursor:wait;opacity:.6}.message.loading{color:#786b82;background:#f1ebf5}
.confirm-card{width:min(420px,100%);padding:31px;border-radius:28px;text-align:center;background:#fffaf5;box-shadow:var(--shadow-lg);transform:translateY(16px) scale(.98);transition:transform 260ms var(--ease-spring)}.confirm-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 16px;border-radius:21px;color:#af5b50;background:#f8dfd8}.confirm-card h2{margin:0;font-size:22px}.confirm-card p{margin:10px 0 24px;color:#8b776d;font-size:13px;line-height:1.7}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.secondary-button{color:#665148;background:#ede4de}.danger-button{color:#fff;background:#d9685e}
.secret-card{position:relative;width:min(440px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:32px;border:1px solid rgba(90,60,45,.12);border-radius:28px;text-align:center;background:#fffaf5;box-shadow:var(--shadow-lg);transform:translateY(16px) scale(.98);transition:transform 260ms var(--ease-spring)}.secret-close{position:absolute;top:15px;right:15px}.secret-icon{width:68px;height:68px;display:grid;place-items:center;margin:0 auto 17px;border-radius:22px;color:#8d672d;background:#f7e4ad;box-shadow:inset 0 -5px rgba(139,99,40,.08)}.secret-icon svg{width:31px;height:31px}.secret-card h2{margin:0;font-size:23px}.secret-card>p:not(.eyebrow){margin:10px auto 20px;max-width:320px;color:#8a756a;font-size:13px;line-height:1.7}.secret-form{text-align:left}.secret-form label{display:block;margin:0 0 7px;font-size:12px;font-weight:800}.secret-form input{width:100%;height:51px;padding:0 15px;border:2px solid #e7dbd2;border-radius:15px;background:#fff;font-size:16px}.secret-form input:focus{border-color:#c39851;outline:0;box-shadow:0 0 0 4px rgba(195,152,81,.13)}.secret-form input:disabled{color:#9c8d84;background:#eee8e3}.secret-form .field-error{min-height:22px;margin:7px 2px 5px}.secret-form .primary-button{width:100%;margin-top:2px}.secret-form .primary-button:disabled{cursor:not-allowed;opacity:.55}

/* Responsive: tablet, phone, watch, TV */
@media (min-width: 1500px) {
  :root { --header-height: 104px; }
  .game-content { padding:24px; gap:22px; }
  .shop-dock { width:142px; flex-basis:142px; }
  .room { border-radius:38px; }
  .cat-stage { transform:translateX(-50%) scale(1.2); transform-origin:bottom; }
  .speech-bubble { font-size:17px; padding:18px 22px; }
  .window { min-width:190px; }
}

@media (max-width: 980px) {
  .header-pill{min-width:56px;width:56px;padding:7px}.pill-copy{display:none}.shop-dock{width:100px;flex-basis:100px}.dock-button{width:76px}.picture-frame{right:8%}.speech-bubble{left:58%;}.sofa{transform:scale(.85);transform-origin:left bottom}.cat-tree-in-room{transform:scale(.8);transform-origin:right bottom}
  .user-chip{min-width:0}.secret-button{width:56px;min-width:56px;padding:7px}.secret-button>span:last-child{display:none}
}

@media (max-width: 720px) {
  :root { --header-height: 78px; }
  .game-header{padding:10px 12px;gap:7px}.user-chip{min-width:0}.user-chip div:last-child{display:none}.avatar-dot{width:46px;height:46px}.header-actions{gap:6px}.header-pill{width:46px;min-width:46px;height:46px;padding:4px;border-radius:15px}.icon-box{width:36px;height:36px;border-radius:12px}.icon-box svg{width:19px;height:19px}.food-wallet{height:46px;min-width:77px;padding:0 10px 3px 8px;gap:8px;border-radius:15px}.food-wallet strong{font-size:19px}.food-wallet .kibble-mini{transform:rotate(-10deg) scale(.78)}.reset-button{display:none}.game-content{padding:8px 8px 96px}.room{border-radius:23px}.shop-dock{position:absolute;z-index:30;left:50%;bottom:9px;width:auto;height:78px;display:flex;flex-direction:row;gap:7px;padding:7px 9px;border-radius:23px;transform:translateX(-50%);box-shadow:0 12px 32px rgba(66,46,37,.2)}.shop-dock>p{display:none}.dock-button{width:82px;min-height:64px;flex-direction:row;gap:6px;padding:5px;border-radius:17px}.dock-icon{width:43px;height:43px;flex:0 0 auto;border-radius:14px}.dock-icon svg{width:21px;height:21px}.dock-button>span:last-child{font-size:11px}.wall{bottom:36%}.floor{top:64%}.window{left:6%;min-width:104px;width:27%;min-height:180px;height:43%;border-width:8px}.picture-frame{display:none}.shelf{display:none}.plant{left:6%;bottom:25%;transform:scale(.72);transform-origin:bottom}.sofa{left:-10px;bottom:11%;min-width:170px;transform:scale(.7);transform-origin:left bottom}.rug{width:73%;height:20%;bottom:7%}.cat-stage{left:55%;bottom:13%;transform:translateX(-50%) scale(.78);transform-origin:bottom}.cat-stage:hover .big-cat{transform:translateX(-50%)}.speech-bubble{left:auto;right:6%;top:8%;max-width:190px;padding:10px 13px;font-size:11px}.pet-status{left:10px;bottom:10px;padding:9px 10px}.mood-meter>span{width:53px}.chat-fab{right:10px;bottom:10px;width:48px;min-height:48px;padding:0;justify-content:center;border-radius:15px}.chat-fab span{display:none}.cat-tree-in-room{right:-22px;bottom:8%;transform:scale(.58);transform-origin:right bottom}.toy-in-room{right:12%;bottom:11%;transform:scale(.7)}.side-drawer{top:auto;bottom:0;width:100%;height:min(76dvh,680px);padding:12px 18px 18px;border:0;border-radius:28px 28px 0 0;transform:translateY(105%)}.side-drawer.is-open{transform:translateY(0)}.drawer-handle{display:block;width:45px;height:5px;margin:0 auto 12px;border-radius:99px;background:#d6c9c1}.drawer-wallet{margin:14px 0 12px}.store-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.toast{bottom:100px}
}

@media (max-width: 420px) {
  .onboarding-screen,.gift-screen{padding:14px}.onboarding-shell,.gift-card{padding:23px 20px 27px;border-radius:27px}.onboarding-art{height:158px}.portrait-ring{width:150px;height:150px}.welcome-cat{transform:translateX(-50%) scale(.78);transform-origin:bottom}.gift-stars{display:none}.kibble-pile{transform:scale(.86);margin-top:12px;margin-bottom:0}.game-header{height:70px;flex-basis:70px}.header-actions{flex:1}.header-pill{width:44px;min-width:44px}.food-wallet{margin-left:auto}.game-content{padding-top:6px}.room{border-radius:19px}.window{left:4%;min-width:92px;height:39%;min-height:150px}.plant{display:none}.sofa{display:none}.speech-bubble{top:7%;right:4%;max-width:160px}.cat-stage{left:50%;bottom:14%;transform:translateX(-50%) scale(.72)}.pet-status{max-width:190px}.pet-title small{display:none}.mood-meter{gap:4px}.mood-meter>span{width:40px}.mood-meter strong{display:none}.shop-dock{width:calc(100% - 18px);justify-content:space-around}.dock-button{width:auto;flex:1}.cat-tree-in-room{transform:scale(.49);right:-35px}.toy-in-room{right:2%;transform:scale(.6)}.store-item{min-height:205px}.item-preview{height:88px}
}

@media (max-width: 420px) and (max-height: 520px) {
  :root{--header-height:58px}.game-shell{min-height:300px}.game-header{height:58px;flex-basis:58px;padding:6px 8px}.avatar-dot{width:38px;height:38px;border-radius:13px}.header-pill{width:44px;min-width:44px;height:44px;border-radius:12px}.icon-box{width:35px;height:35px;border-radius:10px}.food-wallet{height:44px;min-width:72px}.food-wallet strong{font-size:17px}.game-content{padding:4px 4px 66px}.shop-dock{height:58px;bottom:4px;border-radius:18px;padding:4px}.dock-button{min-height:48px}.dock-icon{width:38px;height:38px}.dock-button>span:last-child{display:none}.wall{bottom:35%}.floor{top:65%}.window{top:5%;min-width:70px;min-height:110px;border-width:6px}.cat-stage{bottom:1%;transform:translateX(-50%) scale(.55)}.speech-bubble{top:4%;right:3%;max-width:135px;padding:7px 9px;font-size:9px;border-width:2px}.speech-bubble::after{border-width:2px}.pet-status{display:none}.chat-fab{bottom:6px;width:44px;min-height:44px}.cat-tree-in-room{bottom:-4%;transform:scale(.38)}.toy-in-room{bottom:3%;transform:scale(.48)}.hatch-stage{height:58vh}.brand-lockup{top:12px}.brand-lockup p{display:none}.hatch-copy{bottom:10px}.hatch-copy .eyebrow,.hatch-copy>p:last-of-type{display:none}.hatch-copy h2{font-size:18px}.tap-hint{margin-top:8px;padding:6px 11px}.newborn-wrap{transform:translate(-50%,-50%) scale(.75)}
}

@media (orientation: landscape) and (max-height: 500px) and (min-width: 600px) {
  :root{--header-height:62px}.game-shell{min-height:300px}.game-header{padding:7px 14px}.avatar-dot{width:42px;height:42px}.header-pill,.food-wallet{height:44px}.game-content{padding:6px 90px 6px 6px}.shop-dock{position:absolute;z-index:30;right:6px;bottom:6px;width:76px;height:calc(100% - 74px);padding:5px;gap:3px;border-radius:19px}.shop-dock>p{display:none}.dock-button{width:64px;min-height:58px}.dock-icon{width:40px;height:40px}.dock-button>span:last-child{display:none}.cat-stage{bottom:1%;transform:translateX(-50%) scale(.58);transform-origin:bottom}.pet-status{left:12px;bottom:10px}.chat-fab{right:12px;bottom:10px}.speech-bubble{top:4%;font-size:10px}.cat-tree-in-room{bottom:-7%;transform:scale(.45)}.toy-in-room{bottom:5%;transform:scale(.5)}
}

@media (max-width: 720px) {
  .identity-actions{gap:6px}.secret-button{width:46px;min-width:46px;height:46px;min-height:46px;padding:4px;border-radius:15px}
  .care-actions{right:10px;bottom:10px;flex-direction:column;gap:6px}.care-button{width:48px;min-width:48px;height:48px;min-height:48px;padding:0;border-radius:15px}.care-button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.care-button svg{width:21px;height:21px}
  .emotion-alert{top:8px;width:calc(100% - 16px);min-height:58px;gap:8px;padding:7px 8px;border-radius:15px}.emotion-icon{width:40px;height:40px;border-radius:12px}.emotion-copy strong{font-size:11px}.emotion-copy small{font-size:9px}.emotion-alert button{min-width:48px;width:48px;min-height:44px;padding:0;border-radius:12px}.emotion-alert button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.room.is-unhappy .speech-bubble{display:none}
  .away-state{justify-content:flex-start;padding:20px 16px 90px}.away-state h2{font-size:24px}.away-description{max-width:470px}.rescue-panel{max-width:520px}
}

@media (min-width: 360px) and (max-width: 720px) {
  .secret-button{width:66px;min-width:66px;padding:4px 5px;gap:3px}.secret-button .icon-box{width:30px;height:36px;flex-basis:30px}.secret-button>span:last-child{display:inline;font-size:10px;white-space:nowrap}
}

@media (max-width: 420px) and (max-height: 520px) {
  .identity-actions{gap:4px}.secret-button{width:44px;min-width:44px;height:44px;min-height:44px;border-radius:12px}.care-actions{right:6px;bottom:6px;gap:4px}.care-button{width:44px;min-width:44px;height:44px;min-height:44px;border-radius:13px}
  .secret-button .icon-box{width:35px;height:35px;flex-basis:35px}.secret-button>span:last-child{display:none}
  .secret-card{padding:24px 20px}.secret-icon{width:58px;height:58px;margin-bottom:11px}.secret-card>p:not(.eyebrow){margin-bottom:13px}
  .emotion-alert{top:4px;min-height:48px;padding:4px 5px}.emotion-icon{display:none}.emotion-alert button{min-height:44px}.away-state{padding:10px 10px 62px}.away-meteor{width:62px;height:38px;margin:0}.away-meteor span{top:9px;width:23px;height:23px}.away-meteor::before{right:26px;top:15px;width:35px}.away-state .eyebrow{display:none}.away-state h2{font-size:18px}.away-description{margin:4px auto 8px;font-size:9px;line-height:1.5}.buy-meteor-button{min-width:230px;min-height:44px}.meteor-shortfall{min-height:15px;margin-top:3px;font-size:9px}.rescue-panel{margin-top:3px;padding-top:6px}.rescue-heading{margin-bottom:5px}.rescue-heading span{display:none}.rescue-actions{gap:5px}.rescue-actions button{min-height:44px;padding:4px 7px}
}

@media (max-width: 520px) {
  .rescue-actions{grid-template-columns:1fr}.rescue-actions button{grid-template-columns:24px 1fr auto}.rescue-actions button span{font-size:11px}.away-meteor{transform:rotate(-12deg) scale(.86)}
}

@media (orientation: landscape) and (max-height: 500px) and (min-width: 600px) {
  .emotion-alert{top:6px;width:min(500px,calc(100% - 24px));min-height:52px;padding:5px 7px}.emotion-icon{width:40px;height:40px}.emotion-alert button{min-height:44px}.room.is-unhappy .speech-bubble{display:none}.away-state{justify-content:flex-start;padding:8px 18px 14px}.away-meteor{width:64px;height:39px;margin:0}.away-meteor span{top:9px;width:23px;height:23px}.away-meteor::before{right:26px;top:15px;width:36px}.away-state .eyebrow{display:none}.away-state h2{font-size:19px}.away-description{margin:3px auto 7px;font-size:9px}.buy-meteor-button{min-height:44px}.meteor-shortfall{min-height:15px;margin-top:3px;font-size:9px}.rescue-panel{margin-top:3px;padding-top:6px}.rescue-heading{margin-bottom:5px}.rescue-actions button{min-height:44px}
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.meteor-button{animation:none}.hatch-screen.is-revealing .arrival-ear,.hatch-screen.is-revealing .arrival-head,.hatch-screen.is-revealing .arrival-body,.hatch-screen.is-revealing .arrival-tail,.hatch-screen.is-revealing .arrival-paw{opacity:1;transform:none}.hatch-screen.is-revealing .arrival-ear.right{transform:scaleX(-1) rotate(-20deg)}.hatch-screen.is-revealing .arrival-ear.left{transform:rotate(-20deg)}
}

/* v31.83 · care guide, rainbow food, and complete English layout safety */
.icon-box.guide{color:#a95576;background:linear-gradient(145deg,rgba(255,229,239,.96),rgba(235,221,255,.9))}
.care-guide-button{min-width:74px;color:#80526a;border-color:rgba(142,83,117,.15);background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(253,237,247,.7));backdrop-filter:blur(12px) saturate(1.2)}
.care-guide-card{width:min(650px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:26px;border:1px solid rgba(255,255,255,.66);border-radius:30px;background:linear-gradient(145deg,rgba(255,253,249,.94),rgba(252,239,247,.91));box-shadow:0 28px 75px rgba(69,44,59,.25),inset 0 1px rgba(255,255,255,.9);transform:translateY(16px) scale(.98);transition:transform 260ms var(--ease-spring)}
.modal-backdrop.is-open .care-guide-card,.modal-backdrop.is-open .rainbow-reward-card{transform:translateY(0) scale(1)}
.care-guide-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.care-guide-card h2{margin:2px 0 0;font-size:clamp(22px,3.4vw,29px)}
.care-guide-intro{max-width:530px;margin:10px 0 18px;color:#846f76;font-size:13px;line-height:1.75}
.care-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-bottom:18px}
.care-guide-grid article{min-width:0;display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid rgba(112,74,91,.1);border-radius:19px;background:rgba(255,255,255,.7);box-shadow:inset 0 1px rgba(255,255,255,.9),0 6px 16px rgba(91,56,72,.05)}
.care-guide-grid article>span{width:42px;height:42px;display:grid;flex:0 0 auto;place-items:center;border-radius:14px;color:#a55f7b;background:linear-gradient(145deg,#ffe1ec,#ebe3ff)}.care-guide-grid svg{width:21px;height:21px}
.care-guide-grid article div{min-width:0}.care-guide-grid b,.care-guide-grid small{display:block;overflow-wrap:anywhere}.care-guide-grid b{font-size:13px}.care-guide-grid small{margin-top:4px;color:#8f7b82;font-size:11px;line-height:1.55}
.care-guide-card>.primary-button{width:100%;min-height:49px}
.rainbow-food-button{width:min(430px,100%);min-height:66px;display:flex;align-items:center;justify-content:center;gap:14px;margin:5px auto 13px;padding:9px 16px;border:1px solid rgba(144,102,162,.2);border-radius:20px;color:#604c63;cursor:pointer;background:linear-gradient(120deg,rgba(255,224,227,.88),rgba(255,241,194,.9),rgba(220,248,229,.9),rgba(224,232,255,.9),rgba(244,222,255,.9));box-shadow:0 10px 24px rgba(119,85,135,.13),inset 0 1px rgba(255,255,255,.85);backdrop-filter:blur(12px);transition:transform 160ms ease,box-shadow 160ms ease}
.rainbow-food-button:hover{transform:translateY(-2px);box-shadow:0 14px 28px rgba(119,85,135,.2),inset 0 1px #fff}.rainbow-food-button:active{transform:scale(.98)}.rainbow-food-button[hidden]{display:none}
.rainbow-food-button>span:last-child{min-width:0;text-align:left}.rainbow-food-button b,.rainbow-food-button small{display:block;overflow-wrap:anywhere}.rainbow-food-button b{font-size:13px}.rainbow-food-button small{margin-top:3px;color:#7e7081;font-size:10px}
.rainbow-kibble{position:relative;width:48px;height:36px;display:block;flex:0 0 auto;filter:drop-shadow(0 7px 7px rgba(112,72,127,.18))}.rainbow-kibble::before{content:"";position:absolute;inset:3px 2px 5px;border:2px solid #754f62;border-radius:52% 46% 48% 55%;background:linear-gradient(125deg,#ff8faa,#ffd877 36%,#7dddb4 62%,#93b8ff 80%,#c58bfa);box-shadow:inset 4px 3px rgba(255,255,255,.45),0 4px 0 rgba(106,70,83,.22);transform:rotate(-8deg)}.rainbow-kibble i{position:absolute;z-index:2;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 7px #fff}.rainbow-kibble i:nth-child(1){left:13px;top:11px}.rainbow-kibble i:nth-child(2){right:12px;top:15px}.rainbow-kibble i:nth-child(3){left:24px;bottom:10px}
.rainbow-reward-card{width:min(430px,100%);padding:31px;text-align:center;border:1px solid rgba(255,255,255,.72);border-radius:30px;background:linear-gradient(145deg,rgba(255,251,245,.96),rgba(245,233,255,.94));box-shadow:0 28px 75px rgba(69,44,59,.25),inset 0 1px #fff;transform:translateY(16px) scale(.98);transition:transform 260ms var(--ease-spring)}
.rainbow-reward-glow{width:100px;height:100px;display:grid;place-items:center;margin:0 auto 12px;border-radius:32px;background:radial-gradient(circle,rgba(255,255,255,.98),rgba(255,220,240,.72) 48%,rgba(214,216,255,.25) 72%,transparent);box-shadow:0 0 34px rgba(220,164,236,.38)}.rainbow-reward-glow .rainbow-kibble{transform:scale(1.45)}.rainbow-reward-card h2{margin:5px 0 8px;font-size:24px}.rainbow-reward-card>p:not(.eyebrow){margin:0 0 20px;color:#806f7e;font-size:13px;line-height:1.7}.rainbow-reward-card>.primary-button{width:100%}

html[lang="en"] :is(button,.pill-copy,.care-button,.dock-button,.settings-card,.star-gift-card,.care-guide-card,.rainbow-reward-card){min-width:0}
html[lang="en"] :is(button span,button b,button small,label,legend,.task-copy,.item-desc,.drawer-intro,.care-guide-grid b,.care-guide-grid small){overflow-wrap:anywhere;word-break:normal;white-space:normal}
html[lang="en"] .secret-button>span:last-child{line-height:1.05}
html[lang="en"] .header-pill{overflow:hidden}
html[lang="en"] .header-pill .pill-copy{font-size:11px;line-height:1.05}

@media (max-width:720px){.care-guide-button{width:46px;min-width:46px;height:46px;min-height:46px;padding:4px;border-radius:15px}.care-guide-button>span:last-child{display:none}.care-guide-grid{grid-template-columns:1fr}.care-guide-card{padding:20px 17px}}

/* v13: interactive room details, slimmer Puffles and refined motion */
.window{padding:0;cursor:pointer;appearance:none;transition:filter 180ms ease,box-shadow 180ms ease}
.window:focus-visible,.room-decor:focus-visible,.toy-in-room:focus-visible{outline:4px solid rgba(90,130,178,.4);outline-offset:4px}
.curtain{transition:transform 520ms cubic-bezier(.2,.8,.2,1),opacity 360ms ease}
.window.is-open .curtain.left{transform:translateX(-76%) scaleX(.62);opacity:.9}
.window.is-open .curtain.right{transform:translateX(76%) scaleX(.62);opacity:.9}
.curtain-handle{position:absolute;z-index:6;left:50%;bottom:8px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:#856d58;background:rgba(255,255,255,.88);box-shadow:0 3px 10px rgba(67,48,38,.15);transform:translateX(-50%);transition:transform 300ms ease,opacity 180ms ease}
.curtain-handle svg{width:15px;height:15px}.window.is-open .curtain-handle{opacity:.62;transform:translateX(-50%) rotate(45deg)}

.room-decor-layer{position:absolute;z-index:6;inset:0;pointer-events:none}
.room-decor,.toy-in-room{touch-action:none;user-select:none;-webkit-user-select:none}
.room-decor{position:absolute;width:48px;height:58px;display:block;padding:0;border:0;cursor:grab;background:transparent;pointer-events:auto;transform:translate(-50%,-100%);transform-origin:50% 100%;filter:drop-shadow(0 7px 5px rgba(73,51,40,.15));transition:left 180ms ease,top 420ms cubic-bezier(.2,.72,.2,1),transform 160ms ease}
.room-decor:hover{transform:translate(-50%,-100%) translateY(-3px)}.room-decor:active,.room-decor.is-dragging{cursor:grabbing;transform:translate(-50%,-100%) scale(1.06);transition:none}.room-decor.is-falling{animation:decorLand 440ms ease-out}
.room-decor.vase{width:53px;height:69px}.room-decor.vase::before{content:"";position:absolute;left:11px;bottom:0;width:31px;height:39px;border:3px solid var(--dark-line);border-radius:8px 8px 18px 18px;background:#c2addd;box-shadow:inset -5px -4px rgba(91,67,111,.1)}
.room-decor.vase::after{content:"";position:absolute;left:25px;top:6px;width:4px;height:32px;border-radius:4px;background:#638a69;transform:rotate(-7deg)}
.room-decor.vase i,.room-decor.vase span{position:absolute;z-index:2;top:2px;width:22px;height:31px;border-radius:100% 0;background:#7faa83;transform-origin:bottom}.room-decor.vase i{left:6px;transform:rotate(-42deg)}.room-decor.vase span{right:7px;transform:scaleX(-1) rotate(-48deg)}
.room-decor.star-bottle,.room-decor.round-bottle{height:61px;border:3px solid var(--dark-line);border-radius:10px 10px 18px 18px;background:rgba(191,223,230,.72);box-shadow:inset 6px 5px rgba(255,255,255,.42)}
.room-decor.star-bottle::before,.room-decor.round-bottle::before{content:"";position:absolute;left:11px;right:11px;top:-9px;height:12px;border:3px solid var(--dark-line);border-radius:5px;background:#d4b582}
.room-decor.star-bottle svg{position:absolute;left:12px;top:18px;width:19px;height:19px;color:#e8b84e;filter:drop-shadow(0 0 4px rgba(238,190,77,.6))}
.room-decor.round-bottle{width:51px;height:55px;border-radius:45% 45% 18px 18px;background:rgba(239,196,166,.78)}.room-decor.round-bottle::before{left:14px;right:14px}.room-decor.round-bottle i{position:absolute;left:16px;top:17px;width:14px;height:14px;border-radius:50%;background:#f5d073;box-shadow:inset 3px 2px rgba(255,255,255,.4)}
.room-decor.room-plant{width:104px;height:142px;filter:drop-shadow(0 8px 7px rgba(69,52,39,.13));transform:translate(-50%,-100%) scale(var(--item-depth-scale,1))}.room-decor.room-plant:hover{transform:translate(-50%,-100%) translateY(-3px) scale(var(--item-depth-scale,1))}.room-decor.room-plant:active,.room-decor.room-plant.is-dragging{transform:translate(-50%,-100%) scale(1.04)}
.room-decor.room-plant .plant-stem{position:absolute;z-index:1;left:50px;bottom:45px;width:5px;height:72px;border-radius:6px;background:linear-gradient(90deg,#477659,#75a77d);transform-origin:bottom}.room-decor.room-plant .plant-stem.s1{transform:rotate(-16deg)}.room-decor.room-plant .plant-stem.s2{height:86px;transform:rotate(7deg)}.room-decor.room-plant .plant-stem.s3{height:65px;transform:rotate(27deg)}
.room-decor.room-plant .leaf{position:absolute;z-index:2;left:43px;bottom:66px;width:34px;height:65px;overflow:hidden;border:2px solid #496f57;border-radius:95% 8% 95% 8%;background:linear-gradient(135deg,#a9c99c,#62956f 66%,#507e5d);box-shadow:inset 5px 5px rgba(255,255,255,.12);transform-origin:50% 100%}.room-decor.room-plant .leaf i{position:absolute;left:50%;top:8px;bottom:5px;width:2px;background:rgba(56,101,69,.52);transform:rotate(-8deg)}.room-decor.room-plant .leaf.l1{left:21px;bottom:55px;transform:rotate(-53deg) scale(.86)}.room-decor.room-plant .leaf.l2{left:32px;bottom:78px;transform:rotate(-25deg) scale(.94)}.room-decor.room-plant .leaf.l3{left:49px;bottom:82px;transform:scaleX(-1) rotate(-18deg)}.room-decor.room-plant .leaf.l4{left:61px;bottom:60px;transform:scaleX(-1) rotate(-48deg) scale(.83)}.room-decor.room-plant .leaf.l5{left:47px;bottom:96px;transform:rotate(8deg) scale(.76)}
.room-decor.room-plant .plant-pot{position:absolute;z-index:4;left:23px;bottom:0;width:60px;height:55px;border:3px solid #704b38;border-radius:10px 10px 24px 24px;background:linear-gradient(100deg,#e3a876,#bd7657);box-shadow:inset -7px -6px rgba(106,56,42,.13),inset 7px 5px rgba(255,255,255,.12)}.room-decor.room-plant .plant-rim{position:absolute;left:-6px;right:-6px;top:-5px;height:15px;border:3px solid #704b38;border-radius:8px;background:#d89267}.room-decor.room-plant .plant-soil{position:absolute;z-index:2;left:5px;right:5px;top:1px;height:8px;border-radius:50%;background:#6d4d36;box-shadow:inset 0 2px rgba(44,29,20,.28)}.room-decor.room-plant .plant-pot em{position:absolute;right:10px;top:20px;width:9px;height:21px;border-radius:50%;background:rgba(255,237,215,.25);transform:rotate(-16deg)}
.room-decor.is-shattered{animation:decorShatterV25 .52s ease-out both!important}@keyframes decorShatterV25{0%{opacity:1;transform:translate(-50%,-100%) scale(1)}45%{opacity:1;transform:translate(-50%,-100%) scale(1.18) rotate(8deg)}100%{opacity:0;transform:translate(-50%,-100%) scale(.2) rotate(-23deg)}}
.bed{width:265px;height:116px;min-width:265px;min-height:116px;transform-origin:50% 100%}.bed-blanket{position:absolute;left:8px;right:8px;bottom:14px;height:70px;border:3px solid var(--dark-line);border-radius:44px 44px 24px 24px;background:linear-gradient(145deg,#dcecf3,#b8d9e5);box-shadow:inset 0 -12px rgba(92,128,145,.12),0 8px 0 rgba(101,73,59,.1)}.bed-pillow{position:absolute;z-index:2;left:31px;top:22px;width:76px;height:39px;border:3px solid var(--dark-line);border-radius:22px;background:#fff8ee;box-shadow:inset 0 -5px rgba(145,111,91,.1)}.bed-leg{position:absolute;z-index:-1;bottom:0;width:16px;height:27px;border:3px solid var(--dark-line);border-radius:9px;background:#ca9d74}.bed-leg.l{left:36px}.bed-leg.r{right:36px}.preview-bed{position:relative;width:88px;height:45px;border:3px solid var(--dark-line);border-radius:25px 25px 14px 14px;background:#c9e1eb}.preview-bed i{position:absolute;left:10px;top:9px;width:31px;height:19px;border-radius:12px;background:#fff9ef}.preview-bed b{position:absolute;left:14px;right:14px;bottom:-12px;height:12px;border-radius:0 0 8px 8px;background:#c89c71}.bed[data-bed="sunshine-nest"] .bed-blanket{border-radius:50%;background:radial-gradient(circle at 50% 35%,#fff6dc 0 23%,#f1c86e 25% 67%,#dba04f 70%)}.bed[data-bed="sunshine-nest"] .bed-pillow{left:78px;top:31px;width:78px;height:31px}.bed[data-bed="sunshine-nest"] .bed-leg{display:none}.preview-nest{position:relative;width:78px;height:54px;border:3px solid var(--dark-line);border-radius:50%;background:radial-gradient(circle,#fff6dc 0 24%,#f1c86e 26% 67%,#dba04f 70%)}.preview-nest i{position:absolute;left:29px;top:18px;width:20px;height:13px;border-radius:50%;background:#fff9ef}
.bed::after{content:"";position:absolute;z-index:-1;left:13%;right:13%;bottom:-2px;height:16px;border-radius:50%;background:rgba(75,55,43,.16);filter:blur(5px)}.bed-blanket{z-index:1}.bed-leg{z-index:0}
.floor-lamp{width:116px;height:215px;min-width:116px;min-height:215px;isolation:isolate}.lamp-glow{position:absolute;z-index:0;left:50%;top:-25px;width:190px;height:190px;border-radius:50%;opacity:0;pointer-events:none;background:radial-gradient(circle,rgba(255,224,145,.5),rgba(255,224,145,0) 70%);transform:translateX(-50%);transition:opacity 240ms ease}.floor-lamp.is-on .lamp-glow{opacity:1}.lamp-shade{position:absolute;z-index:2;left:24px;top:12px;width:68px;height:56px;border:4px solid var(--dark-line);border-radius:34px 34px 14px 14px;background:#f2cf7c;box-shadow:inset 0 -9px rgba(175,119,62,.12)}.lamp-post{position:absolute;z-index:2;left:54px;top:66px;width:8px;height:123px;border:3px solid var(--dark-line);border-radius:8px;background:#c79968}.lamp-base{position:absolute;z-index:2;left:24px;bottom:0;width:68px;height:19px;border:4px solid var(--dark-line);border-radius:50%;background:#d5ac7e;box-shadow:0 7px 7px rgba(72,52,41,.15)}
.floor-lamp.room-furniture,.water-fountain.room-furniture{position:absolute;left:0;right:auto;top:auto;bottom:0}
.water-fountain{width:132px;height:96px;position:absolute}
.fountain-base{position:absolute;left:10px;right:10px;bottom:0;height:29px;border:4px solid var(--dark-line);border-radius:18px 18px 12px 12px;background:linear-gradient(145deg,#b7dce1,#86b9c0);box-shadow:inset 0 -8px rgba(68,117,124,.14),0 7px 8px rgba(67,52,43,.14)}
.fountain-basin{position:absolute;left:18px;right:18px;bottom:18px;height:43px;border:4px solid var(--dark-line);border-radius:50%;background:radial-gradient(ellipse at 50% 36%,#eafaff 0 20%,#9ed3db 23% 70%,#6faeb8 73%);box-shadow:inset 0 -8px rgba(77,132,145,.14)}
.fountain-spout{position:absolute;left:59px;top:10px;width:14px;height:40px;border:4px solid var(--dark-line);border-bottom:0;border-radius:14px 14px 0 0;background:#acd9df}
.fountain-spout::after{content:"";position:absolute;left:5px;top:-9px;width:7px;height:14px;border-radius:50%;background:#e4fbff;box-shadow:0 9px 0 #9cdae1,0 18px 0 #bfeef3}
.fountain-water{position:absolute;z-index:3;left:42px;top:22px;display:flex;gap:11px}.fountain-water i{width:6px;height:6px;border-radius:50%;background:#dffbff;box-shadow:0 0 6px rgba(178,239,244,.85);animation:fountainDrip 1.4s ease-in-out infinite alternate}.fountain-water i:nth-child(2){animation-delay:-.35s}.fountain-water i:nth-child(3){animation-delay:-.75s}
@keyframes fountainDrip{from{transform:translateY(0);opacity:.62}to{transform:translateY(10px);opacity:1}}
.preview-lamp{position:relative;width:48px;height:82px}.preview-lamp i{position:absolute;left:6px;top:0;width:36px;height:28px;border:3px solid var(--dark-line);border-radius:18px 18px 8px 8px;background:#f2cf7c}.preview-lamp b{position:absolute;left:21px;top:28px;width:6px;height:42px;border:2px solid var(--dark-line);background:#c79968}.preview-lamp em{position:absolute;left:7px;bottom:0;width:34px;height:12px;border:3px solid var(--dark-line);border-radius:50%;background:#d5ac7e}
.preview-fountain{position:relative;width:74px;height:57px}.preview-fountain i{position:absolute;left:27px;top:2px;width:17px;height:24px;border:3px solid var(--dark-line);border-bottom:0;border-radius:12px 12px 0 0;background:#acd9df}.preview-fountain b{position:absolute;left:8px;right:8px;bottom:7px;height:27px;border:3px solid var(--dark-line);border-radius:50%;background:#9ed3db}.preview-fountain em{position:absolute;left:5px;right:5px;bottom:0;height:10px;border:3px solid var(--dark-line);border-radius:8px;background:#86b9c0}
.preview-star-bottle,.preview-round-bottle{position:relative;width:54px;height:68px;border:3px solid var(--dark-line);border-radius:14px 14px 19px 19px;background:rgba(176,216,225,.72);box-shadow:inset 7px 5px rgba(255,255,255,.3)}.preview-star-bottle::before,.preview-round-bottle::before{content:"";position:absolute;left:15px;right:15px;top:-9px;height:12px;border:3px solid var(--dark-line);border-radius:5px;background:#c7a17a}.preview-star-bottle i{position:absolute;left:16px;top:25px;width:16px;height:16px;background:#efc85d;clip-path:polygon(50% 0,61% 36%,100% 50%,61% 63%,50% 100%,38% 63%,0 50%,38% 36%)}.preview-round-bottle{height:58px;margin-top:10px;border-radius:47% 47% 17px 17px;background:rgba(239,196,166,.78)}.preview-round-bottle i{position:absolute;left:17px;top:20px;width:14px;height:14px;border-radius:50%;background:#f5d073}.preview-plant{position:relative;width:72px;height:82px}.preview-plant::before,.preview-plant::after,.preview-plant i{content:"";position:absolute;left:29px;top:2px;width:27px;height:49px;border:2px solid #496f57;border-radius:95% 8% 95% 8%;background:#78a681;transform-origin:50% 100%}.preview-plant::before{transform:rotate(-41deg)}.preview-plant::after{transform:scaleX(-1) rotate(-35deg)}.preview-plant i{left:22px;top:7px;transform:rotate(-8deg) scale(.9)}.preview-plant b{position:absolute;z-index:2;left:16px;bottom:2px;width:43px;height:35px;border:3px solid #704b38;border-radius:8px 8px 18px 18px;background:#cf8760}.preview-plant em{position:absolute;z-index:3;left:12px;bottom:31px;width:51px;height:12px;border:3px solid #704b38;border-radius:8px;background:#dd9a6d}
.decor-fragments{position:absolute;z-index:25;inset:0;pointer-events:none}.decor-fragment-pile{position:absolute;width:78px;height:44px;padding:0;border:0;cursor:pointer;background:transparent;pointer-events:auto;transform:translate(-50%,-50%)}.decor-fragment-pile::after{content:"";position:absolute;left:8px;right:8px;bottom:4px;height:12px;border-radius:50%;background:rgba(78,57,46,.15);filter:blur(4px)}.decor-fragment-pile i{position:absolute;z-index:2;width:18px;height:14px;border:3px solid #6e5042;background:#b9d6dd;clip-path:polygon(50% 0,100% 80%,64% 100%,0 74%)}.decor-fragment-pile i:nth-child(1){left:7px;top:17px;transform:rotate(-22deg)}.decor-fragment-pile i:nth-child(2){left:24px;top:7px;background:#e8bd9e;transform:rotate(11deg)}.decor-fragment-pile i:nth-child(3){left:41px;top:18px;transform:rotate(31deg)}.decor-fragment-pile i:nth-child(4){left:55px;top:8px;width:13px;height:12px;background:#d1a36f;transform:rotate(-9deg)}.decor-fragment-pile i:nth-child(5){left:31px;top:25px;width:12px;height:10px;background:#88a981;transform:rotate(18deg)}.decor-fragment-pile:focus-visible{outline:4px solid rgba(90,130,178,.46);outline-offset:3px}
@keyframes decorLand{0%{filter:drop-shadow(0 14px 7px rgba(73,51,40,.08))}72%{transform:translate(-50%,-100%) scaleY(.96)}100%{transform:translate(-50%,-100%) scaleY(1)}}

.toy-in-room{width:110px;height:85px;padding:0;border:0;cursor:grab;background:transparent;transform:translate(-50%,-100%);transform-origin:center bottom;transition:left 160ms ease,top 360ms cubic-bezier(.2,.72,.2,1),transform 160ms ease}
.toy-in-room:hover{transform:translate(-50%,-100%) translateY(-3px)}.toy-in-room:active,.toy-in-room.is-dragging{cursor:grabbing;transform:translate(-50%,-100%) scale(1.05);transition:none}.toy-in-room.is-falling{animation:toyLand 420ms ease-out}.toy-in-room.is-cat-playing{animation:selfToyBounceV13 3.4s ease-in-out both}
@keyframes toyLand{65%{transform:translate(-50%,-100%) translateY(5px) scaleY(.92)}100%{transform:translate(-50%,-100%) translateY(0) scaleY(1)}}
@keyframes selfToyBounceV13{0%,100%{transform:translate(-50%,-100%)}24%{transform:translate(-42%,-120%) rotate(7deg)}52%{transform:translate(-57%,-105%) rotate(-5deg)}76%{transform:translate(-47%,-115%) rotate(4deg)}}

/* Puffles is now longer and lighter, while the head stays round and wider than the shoulders. */
.cat-stage .big-cat{width:230px;height:270px}
.cat-body{left:64px;bottom:28px;width:102px;height:132px;border-radius:48% 48% 42% 42%}
.body-patch{left:27px;top:44px;width:48px;height:76px}
.cat-head{left:49px;top:28px;width:132px;height:132px;border-radius:50%}
.cat-ear{top:-13px;width:39px;height:49px;border-radius:13px 16px 8px 10px;clip-path:polygon(49% 1%,96% 90%,92% 100%,10% 98%,3% 89%);transform-origin:50% 100%}
.cat-ear.left{left:0;transform:rotate(-8deg)}.cat-ear.right{right:0;transform:scaleX(-1) rotate(-8deg)}
.cat-ear i{inset:8px 7px 7px;border-radius:9px;clip-path:polygon(49% 4%,92% 88%,86% 96%,15% 94%,8% 86%)}
.cat-eye{top:53px;width:11px;height:15px}.cat-eye.left{left:37px}.cat-eye.right{right:37px}
.cat-blush{top:80px;width:20px;height:8px}.cat-blush.left{left:13px}.cat-blush.right{right:13px}
.cat-nose{left:61px;top:73px;width:10px;height:8px}.cat-nose::after{left:4px;top:7px;height:7px}
.cat-mouth{top:83px;width:13px;height:9px;border-bottom-width:3px}.cat-mouth.left{left:53px}.cat-mouth.right{right:53px}
.whisker{width:28px}.whisker.w1{left:-10px;top:75px}.whisker.w2{left:-9px;top:88px}.whisker.w3{right:-10px;top:75px}.whisker.w4{right:-9px;top:88px}
.cat-tail{right:4px;bottom:37px;width:73px;height:35px;border-width:5px;border-left:0;border-radius:0 100% 100% 0}
.cat-paw{bottom:4px;width:39px;height:34px}.cat-paw.left{left:72px}.cat-paw.right{right:72px}
.cat-paw::before{left:4px;top:-52px;width:21px;height:57px;border-width:5px;border-bottom:0;border-radius:15px 15px 5px 5px}
.cat-hind-paw{bottom:8px;width:43px;height:35px}.cat-hind-paw.left{left:47px}.cat-hind-paw.right{right:47px}
.cat-paw i,.cat-hind-paw i{width:14px;height:10px}
.cat-outfit{top:139px;width:100px;height:70px}

/* A second, quicker walking gait. */
.cat-stage[data-pose="trot"] .big-cat{animation:pufflesTrot 2.25s ease-in-out infinite}
.cat-stage[data-pose="trot"] .cat-body{animation:trotBody .56s ease-in-out infinite alternate}
.cat-stage[data-pose="trot"] .cat-head{animation:trotHead 1.12s ease-in-out infinite}
.cat-stage[data-pose="trot"] .cat-paw.left,.cat-stage[data-pose="trot"] .cat-hind-paw.right{animation:trotStep .56s ease-in-out infinite}
.cat-stage[data-pose="trot"] .cat-paw.right,.cat-stage[data-pose="trot"] .cat-hind-paw.left{animation:trotStep .56s ease-in-out -.28s infinite}
.cat-stage[data-pose="trot"] .cat-tail{animation:trotTail .58s ease-in-out infinite alternate}
@keyframes pufflesTrot{0%,100%{transform:translateX(calc(-50% - 25px))}50%{transform:translateX(calc(-50% + 25px))}}
@keyframes trotBody{to{transform:translateY(-5px) rotate(.8deg)}}
@keyframes trotHead{0%,100%{transform:translateY(1px) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}
@keyframes trotStep{0%,100%{transform:translateY(1px)}45%{transform:translateY(-10px) rotate(4deg)}}
@keyframes trotTail{from{transform:rotate(-15deg)}to{transform:rotate(9deg)}}

/* Resting poses use a lower silhouette and clearly supported limbs. */
.cat-stage[data-pose="prone"] .cat-body{left:30px;bottom:34px;width:171px;height:66px;border-radius:50%}
.cat-stage[data-pose="prone"] .body-patch{left:62px;top:14px;width:56px;height:43px}
.cat-stage[data-pose="prone"] .cat-head{left:56px;top:105px;width:118px;height:118px}
.cat-stage[data-pose="prone"] .cat-ear{top:-11px;width:35px;height:43px}
.cat-stage[data-pose="prone"] .cat-eye{top:47px}.cat-stage[data-pose="prone"] .cat-nose{left:54px;top:64px}.cat-stage[data-pose="prone"] .cat-mouth{top:74px}.cat-stage[data-pose="prone"] .cat-mouth.left{left:46px}.cat-stage[data-pose="prone"] .cat-mouth.right{right:46px}
.cat-stage[data-pose="prone"] .cat-paw{bottom:4px;width:44px;height:31px}.cat-stage[data-pose="prone"] .cat-paw.left{left:76px}.cat-stage[data-pose="prone"] .cat-paw.right{right:76px}.cat-stage[data-pose="prone"] .cat-paw::before{top:-37px;width:25px;height:41px}
.cat-stage[data-pose="prone"] .cat-hind-paw{bottom:30px;opacity:.7}.cat-stage[data-pose="prone"] .cat-tail{bottom:47px}

/* v31.11: compact resting silhouettes keep paws and tail close to the body. */
.cat-stage[data-pose="prone"] .cat-body{left:39px;bottom:37px;width:151px;height:58px}
.cat-stage[data-pose="prone"] .body-patch{left:57px;top:12px;width:48px;height:38px}
.cat-stage[data-pose="prone"] .cat-head{left:59px;top:110px;width:112px;height:112px}
.cat-stage[data-pose="prone"] .cat-ear{top:-9px;width:33px;height:39px}
.cat-stage[data-pose="prone"] .cat-paw{bottom:3px;width:39px;height:28px}.cat-stage[data-pose="prone"] .cat-paw::before{top:-33px;width:22px;height:36px}
.cat-stage[data-pose="prone"] .cat-hind-paw{bottom:28px;opacity:.5}.cat-stage[data-pose="prone"] .cat-tail{right:9px;bottom:45px;width:62px;height:30px}

.cat-stage[data-pose="roll"] .big-cat{animation:rollSettleV13 760ms var(--ease-spring) both}
.cat-stage[data-pose="roll"] .cat-body{left:58px;bottom:39px;width:147px;height:88px;border-radius:50%;transform:rotate(-7deg)}
.cat-stage[data-pose="roll"] .body-patch{left:47px;top:14px;width:55px;height:63px}
.cat-stage[data-pose="roll"] .cat-head{left:12px;top:119px;width:105px;height:105px;transform:rotate(-12deg)}
.cat-stage[data-pose="roll"] .cat-ear{top:-10px;width:32px;height:39px}
.cat-stage[data-pose="roll"] .cat-eye{top:42px}.cat-stage[data-pose="roll"] .cat-eye.left{left:29px}.cat-stage[data-pose="roll"] .cat-eye.right{right:29px}
.cat-stage[data-pose="roll"] .cat-nose{left:48px;top:58px}.cat-stage[data-pose="roll"] .cat-mouth{top:67px}.cat-stage[data-pose="roll"] .cat-mouth.left{left:40px}.cat-stage[data-pose="roll"] .cat-mouth.right{right:40px}
.cat-stage[data-pose="roll"] .cat-paw,.cat-stage[data-pose="roll"] .cat-hind-paw{width:39px;height:35px}
.cat-stage[data-pose="roll"] .cat-paw.left{left:103px;top:87px}.cat-stage[data-pose="roll"] .cat-paw.right{right:34px;top:76px}.cat-stage[data-pose="roll"] .cat-hind-paw.left{left:111px;top:171px}.cat-stage[data-pose="roll"] .cat-hind-paw.right{right:24px;top:166px}
.cat-stage[data-pose="roll"] .cat-paw::before,.cat-stage[data-pose="roll"] .cat-hind-paw::before{width:20px;height:29px}
.cat-stage[data-pose="roll"] .cat-tail{right:42px;bottom:95px;width:83px;height:27px}

.cat-stage[data-pose="roll"] .cat-body{left:57px;bottom:40px;width:142px;height:78px}
.cat-stage[data-pose="roll"] .body-patch{left:44px;top:13px;width:51px;height:56px}
.cat-stage[data-pose="roll"] .cat-head{left:17px;top:124px;width:101px;height:101px}
.cat-stage[data-pose="roll"] .cat-paw.left{left:99px;top:93px;transform:rotate(-7deg)}.cat-stage[data-pose="roll"] .cat-paw.right{right:38px;top:88px;transform:rotate(9deg)}
.cat-stage[data-pose="roll"] .cat-hind-paw.left{left:105px;top:169px;transform:rotate(7deg)}.cat-stage[data-pose="roll"] .cat-hind-paw.right{right:29px;top:166px;transform:rotate(-9deg)}
.cat-stage[data-pose="roll"] .cat-tail{right:39px;bottom:94px;width:75px;height:25px}
@keyframes rollSettleV13{from{transform:translateX(-50%) rotate(7deg) translateY(-14px)}to{transform:translateX(-50%) rotate(-2deg) translateY(0)}}

.cat-stage[data-pose="jump"] .big-cat{animation:pufflesJumpV13 2.35s cubic-bezier(.2,.8,.25,1) 1 both}
.cat-stage[data-pose="jump"] .cat-tail{right:5px;bottom:64px;width:48px;height:78px;animation:jumpTail 2.35s ease-in-out 1 both}
.cat-stage[data-pose="jump"] .cat-paw::before{height:49px}.cat-stage[data-pose="jump"] .cat-shadow{animation:jumpShadow 2.35s ease-in-out 1 both}
@keyframes pufflesJumpV13{0%,14%{transform:translateX(-50%) translateY(0)}24%{transform:translateX(-50%) translateY(10px) scale(.92,.84)}43%,62%{transform:translateX(-50%) translateY(-72px) rotate(-2deg) scale(1.02,1.05)}78%{transform:translateX(-50%) translateY(-6px) scale(.96,1.03)}90%{transform:translateX(-50%) translateY(2px) scale(1.02,.97)}100%{transform:translateX(-50%) translateY(0)}}

/* Climbing follows the fixed cat tree; limbs alternate around the main post. */
.cat-stage[data-pose="climb"] .cat-body{left:70px;bottom:25px;width:91px;height:139px;transform:rotate(-5deg)}
.cat-stage[data-pose="climb"] .cat-head{left:50px;top:20px;transform:rotate(5deg)}
.cat-stage[data-pose="climb"] .cat-tail{right:0;bottom:46px;transform:rotate(24deg);animation:climbTail .8s ease-in-out infinite alternate}
.cat-stage[data-pose="climb"] .cat-paw.left{left:53px;bottom:65px;transform:rotate(-24deg)}.cat-stage[data-pose="climb"] .cat-paw.right{right:42px;bottom:91px;transform:rotate(22deg)}
.cat-stage[data-pose="climb"] .cat-hind-paw.left{left:68px;bottom:15px}.cat-stage[data-pose="climb"] .cat-hind-paw.right{right:55px;bottom:41px}
.cat-stage[data-pose="climb"] .cat-paw::before{height:47px;top:-42px}
.cat-stage.is-climbing .big-cat{animation:climbTree 5.2s ease-in-out both}.cat-stage.is-climbing{z-index:9;animation:climbApproach 5.2s ease-in-out both}
@keyframes climbTail{to{transform:rotate(38deg)}}
@keyframes climbApproach{0%{margin-left:0}28%,100%{margin-left:clamp(84px,18vw,240px)}}
@keyframes climbTree{0%,24%{transform:translateX(-50%) translateY(0) rotate(0)}48%{transform:translateX(-50%) translateY(-34px) rotate(-4deg)}70%{transform:translateX(-50%) translateY(-92px) rotate(3deg)}88%,100%{transform:translateX(-50%) translateY(-132px) rotate(-2deg)}}

.cat-stage.is-toy-chasing{animation:chaseMovedToy 3.4s ease-in-out both}
@keyframes chaseMovedToy{0%,100%{margin-left:0}24%,76%{margin-left:var(--toy-chase-offset)}48%{margin-left:var(--toy-chase-offset)}}

/* Anger has a clear face, tail response and a single food-kick motion. */
.anger-alert{position:absolute;z-index:36;top:18px;left:50%;width:min(570px,calc(100% - 36px));min-height:66px;display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid rgba(157,73,61,.25);border-radius:18px;background:rgba(255,247,243,.97);box-shadow:0 14px 34px rgba(91,58,48,.16);transform:translateX(-50%)}
.anger-alert[hidden]{display:none}.anger-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:14px;color:#a34e43;background:#f5d0c8}.anger-icon svg{width:21px;height:21px}.anger-copy{display:flex;min-width:0;flex-direction:column}.anger-copy strong{font-size:13px}.anger-copy small{margin-top:2px;color:#8e6a63;font-size:10px}.anger-copy b{color:#b4483e;font-family:"Baloo 2",sans-serif;font-size:13px;font-variant-numeric:tabular-nums}
.room.is-angry .cat-eye{height:8px;border-radius:0;background:transparent;border-top:4px solid var(--dark-line)}.room.is-angry .cat-eye.left{transform:rotate(12deg)}.room.is-angry .cat-eye.right{transform:rotate(-12deg)}
.room.is-angry .cat-mouth{height:7px;border-top:3px solid var(--dark-line);border-bottom:0}.room.is-angry .cat-tail{animation:angryTail .28s ease-in-out infinite alternate!important}.room.is-angry .speech-bubble{top:19%}
.cat-stage.is-tail-angry .cat-head{animation:turnAway 720ms ease-out both}.cat-stage.is-kicking .cat-hind-paw.right{animation:kickFood 520ms ease-out 2}.cat-stage.is-kicking::after{content:"";position:absolute;z-index:24;left:63%;bottom:29px;width:22px;height:15px;border:2px solid #79503a;border-radius:50%;background:#b9704b;box-shadow:0 3px 0 #70432e;animation:kibbleKicked 1.1s ease-out both}
@keyframes angryTail{to{transform:rotate(22deg) translateY(-2px)}}@keyframes turnAway{to{transform:rotate(11deg) translateX(5px)}}@keyframes kickFood{50%{transform:translate(17px,-13px) rotate(-24deg)}}@keyframes kibbleKicked{0%{opacity:0;transform:translate(0,0) rotate(0)}18%{opacity:1}100%{opacity:0;transform:translate(105px,-18px) rotate(220deg)}}

/* Large furniture preserves the intended scale relationship to the cat. */
.sofa{left:3%;bottom:9%;width:520px;min-width:520px;height:190px;min-height:190px;transform:none}
.cat-tree-in-room{right:3%;bottom:2%;width:368px;height:543px;transform:none;transform-origin:right bottom}
.cat-tree-in-room .cloud-tree{left:auto;right:0;top:auto;bottom:0;width:210px;height:310px;transform:scale(1.75);transform-origin:right bottom}

/* Rescue activities */
.rescue-card{width:min(560px,100%);max-height:min(720px,90dvh);overflow:auto;padding:24px;border:1px solid rgba(90,60,45,.12);border-radius:28px;background:#fffaf5;box-shadow:var(--shadow-lg);transform:translateY(16px) scale(.98);transition:transform 260ms var(--ease-spring)}
.modal-backdrop.is-open .rescue-card{transform:translateY(0) scale(1)}.rescue-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.rescue-card-header h2{margin:0;font-size:24px}.rescue-task-body{padding-top:17px}.rescue-instruction{margin:0 0 15px;color:#806d63;font-size:13px;line-height:1.7}.rescue-progress{margin:13px 0 0;color:#867269;text-align:center;font-size:12px}.rescue-progress strong{color:#5f8c79;font-size:15px}
.starlight-scene{position:relative;height:250px;overflow:hidden;border-radius:20px;background:linear-gradient(#dcecf4,#f5ecdf 69%,#d9c4a8 70%)}.rescue-window{position:absolute;left:50%;top:25px;width:145px;height:178px;border:10px solid #b89067;border-radius:72px 72px 12px 12px;transform:translateX(-50%)}.rescue-window span{position:absolute;left:50%;top:0;bottom:0;width:5px;background:#b89067;transform:translateX(-50%)}.rescue-window i{position:absolute;left:0;right:0;top:48%;height:5px;background:#b89067}
.rescue-star{position:absolute;z-index:3;width:48px;height:48px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;color:#f0be54;cursor:pointer;background:#fff8df;box-shadow:0 0 0 5px rgba(255,249,216,.25),0 7px 15px rgba(78,60,43,.12);animation:rescueStarFloat 1.8s ease-in-out infinite alternate}.rescue-star svg{width:23px;height:23px}.rescue-star.star-1{left:10%;top:16%}.rescue-star.star-2{right:12%;top:22%;animation-delay:-.4s}.rescue-star.star-3{left:18%;bottom:13%;animation-delay:-.8s}.rescue-star.star-4{right:18%;bottom:12%;animation-delay:-1.1s}.rescue-star.star-5{left:calc(50% - 24px);top:42%;animation-delay:-1.4s}.rescue-star.is-collected{opacity:.2;transform:scale(.5)}@keyframes rescueStarFloat{to{transform:translateY(-7px) rotate(8deg)}}
.tidy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tidy-object{min-height:126px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;padding:12px;border:1px solid rgba(91,62,49,.12);border-radius:17px;color:#654f45;cursor:pointer;background:#fff;box-shadow:0 7px 15px rgba(78,55,43,.07);font-size:11px;font-weight:800}.tidy-object svg{width:32px;height:32px;color:#8b74ac}.tidy-object:hover{transform:translateY(-2px)}.tidy-object.is-tidied{color:#648073;background:#edf5f1;box-shadow:none}.tidy-object.is-tidied svg{color:#6c9784}
.rescue-letter label{display:block;margin-bottom:8px;font-size:12px;font-weight:800}.rescue-letter textarea{width:100%;min-height:138px;resize:vertical;padding:13px 15px;border:2px solid #e7dbd2;border-radius:15px;color:#59483f;background:#fff;font:inherit;font-size:15px;line-height:1.7}.rescue-letter textarea:focus{border-color:#8e79ac;outline:0;box-shadow:0 0 0 4px rgba(142,121,172,.12)}.letter-meta{min-height:30px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#aa5d55;font-size:11px}.letter-meta strong{margin-left:auto;color:#7d6a61;font-variant-numeric:tabular-nums}.rescue-letter .primary-button{margin-top:5px}

@media (min-width:1500px){.sofa{width:600px;min-width:600px;height:215px}.cat-tree-in-room{transform:scale(1.18)} }
@media (max-width:980px){.sofa{left:-20px;transform:scale(.92);transform-origin:left bottom}.cat-tree-in-room{right:-35px;transform:scale(1);transform-origin:right bottom}}
@media (max-width:720px){.room.is-angry .speech-bubble{display:none}.anger-alert{top:8px;width:calc(100% - 16px);min-height:58px;padding:7px 9px}.anger-icon{width:40px;height:40px}.sofa{display:block;left:-155px;bottom:9%;transform:scale(.82)}.cat-tree-in-room{right:-82px;bottom:5%;transform:scale(.9)}.room-decor{transform:translate(-50%,-100%) scale(.82)}.room-decor:hover{transform:translate(-50%,-100%) scale(.82)}.toy-in-room{transform:translate(-50%,-100%) scale(.72)}.toy-in-room:hover{transform:translate(-50%,-100%) scale(.72)}.rescue-card{padding:20px;border-radius:23px}.starlight-scene{height:220px}}
@media (max-width:420px){.sofa{display:block;left:-170px;transform:scale(.75)}.cat-tree-in-room{right:-105px;transform:scale(.82)}.anger-icon{display:none}.anger-copy strong{font-size:11px}.tidy-grid{grid-template-columns:1fr}.tidy-object{min-height:58px;flex-direction:row;justify-content:flex-start}.tidy-object svg{width:25px;height:25px}.rescue-card-header h2{font-size:20px}}
@media (max-width:420px) and (max-height:520px){.sofa{left:-160px;bottom:-3%;transform:scale(.6)}.cat-tree-in-room{right:-115px;bottom:-8%;transform:scale(.65)}.anger-alert{top:4px;min-height:48px}.anger-copy small{font-size:9px}.starlight-scene{height:150px}.rescue-window{top:10px;transform:translateX(-50%) scale(.68);transform-origin:top}.rescue-card{max-height:94dvh;padding:15px}.rescue-task-body{padding-top:8px}.rescue-instruction{margin-bottom:8px;font-size:10px}.rescue-star{width:44px;height:44px}.tidy-object{min-height:48px}.rescue-letter textarea{min-height:88px}}
@media (orientation:landscape) and (max-height:500px) and (min-width:600px){.sofa{left:-65px;bottom:-12%;transform:scale(.7)}.cat-tree-in-room{right:-86px;bottom:-14%;transform:scale(.68)}.anger-alert{top:6px;min-height:52px}.rescue-card{max-height:94dvh}.starlight-scene{height:160px}.rescue-window{top:4px;transform:translateX(-50%) scale(.74);transform-origin:top}}

@media (prefers-reduced-motion:reduce){.room-decor,.toy-in-room{transition:none}.cat-stage.is-toy-chasing{margin-left:var(--toy-chase-offset)}.cat-stage.is-climbing .big-cat{transform:translateX(-50%) translate(70px,-70px)}}

/* v16: one spatial system for Puffles, furniture and draggable room objects. */
.cat-stage[data-positioned="true"]{
  --cat-scale:1;
  --cat-move-duration:320ms;
  left:0;
  right:auto;
  bottom:0;
  margin:0;
  touch-action:none;
  user-select:none;
  cursor:grab;
  transform:translate(calc(var(--cat-x, 50vw) - 50%),calc(var(--cat-lift, 0px) * -1)) scale(var(--cat-scale));
  transform-origin:50% 100%;
  transition:transform var(--cat-move-duration) cubic-bezier(.2,.78,.2,1),filter 300ms ease;
  will-change:transform;
}
.cat-stage[data-positioned="true"].is-dragging{cursor:grabbing;transition:none}
.cat-stage.is-pose-changing .big-cat{opacity:.72;transform:translateX(-50%) scale(.98)}
.cat-stage.is-pose-entering .big-cat{animation:poseArrive 210ms ease-out both}
@keyframes poseArrive{from{opacity:.72;transform:translateX(-50%) translateY(5px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

.cat-stage.is-being-dragged .big-cat{animation:heldStruggle .58s ease-in-out infinite!important}
.cat-stage.is-being-dragged .cat-paw.left{animation:heldPawLeft .3s ease-in-out infinite alternate!important}
.cat-stage.is-being-dragged .cat-paw.right{animation:heldPawRight .3s ease-in-out -.15s infinite alternate!important}
.cat-stage.is-being-dragged .cat-hind-paw.left{animation:heldHindLeft .36s ease-in-out infinite alternate!important}
.cat-stage.is-being-dragged .cat-hind-paw.right{animation:heldHindRight .36s ease-in-out -.18s infinite alternate!important}
.cat-stage.is-being-dragged .cat-tail{animation:heldTail .24s ease-in-out infinite alternate!important}
.cat-stage.is-being-dragged .cat-shadow{opacity:0}
@keyframes heldStruggle{0%,100%{transform:translateX(-50%) rotate(-3deg)}50%{transform:translateX(-50%) rotate(3deg) translateY(-3px)}}
@keyframes heldPawLeft{to{transform:translate(-8px,-10px) rotate(-18deg)}}
@keyframes heldPawRight{to{transform:translate(8px,-7px) rotate(18deg)}}
@keyframes heldHindLeft{to{transform:translate(-6px,7px) rotate(13deg)}}
@keyframes heldHindRight{to{transform:translate(7px,5px) rotate(-13deg)}}
@keyframes heldTail{to{transform:rotate(19deg) translateY(-4px)}}
.cat-stage.is-dropping .big-cat{animation:droppedSquish 560ms cubic-bezier(.2,.8,.2,1) both!important}
.cat-stage.is-settling .big-cat,.cat-stage.is-settling-on-sofa .big-cat{animation:softSettle 420ms ease-out both!important}
@keyframes droppedSquish{0%,62%{transform:translateX(-50%)}76%{transform:translateX(-50%) scale(1.05,.88)}88%{transform:translateX(-50%) scale(.98,1.04)}100%{transform:translateX(-50%) scale(1)}}
@keyframes softSettle{55%{transform:translateX(-50%) translateY(3px) scale(1.02,.97)}100%{transform:translateX(-50%) translateY(0)}}

.room-furniture[data-positioned="true"]{
  --furniture-scale:1;
  left:0;
  right:auto;
  bottom:0;
  top:auto;
  cursor:grab;
  touch-action:none;
  user-select:none;
  transform:translate(calc(var(--item-x, 50vw) - 50%),calc(var(--item-lift, 0px) * -1)) scale(var(--furniture-scale));
  transform-origin:50% 100%;
  transition:transform 300ms cubic-bezier(.2,.78,.2,1),filter 300ms ease;
  will-change:transform;
}
.room-furniture[data-positioned="true"].is-dragging{cursor:grabbing;transition:none;filter:drop-shadow(0 18px 12px rgba(67,45,35,.2))}
.food-bowl-in-room{position:absolute;z-index:16;left:0;top:0;width:98px;height:58px;padding:0;border:0;background:transparent;cursor:grab;touch-action:none;user-select:none;transform:translate(-50%,-100%) scale(var(--item-depth-scale,1));transform-origin:50% 100%;transition:transform 260ms cubic-bezier(.2,.78,.2,1),filter 220ms ease}
.food-bowl-in-room.is-dragging{cursor:grabbing;transition:none;filter:drop-shadow(0 13px 7px rgba(73,46,29,.2))}
.room-bowl-body{position:absolute;left:13px;right:13px;bottom:0;height:37px;border:3px solid var(--dark-line);border-radius:14px 14px 31px 31px;background:linear-gradient(145deg,#f1c26f,#d9944b);box-shadow:inset 0 -7px rgba(130,76,37,.15),0 6px 0 rgba(115,73,43,.12)}
.room-bowl-rim{position:absolute;z-index:2;left:5px;right:5px;top:10px;height:25px;border:3px solid var(--dark-line);border-radius:50%;background:#fff0c8;box-shadow:inset 0 -5px rgba(184,117,47,.14)}
.room-bowl-kibbles{position:absolute;z-index:4;left:18px;right:18px;top:13px;height:22px}
.room-bowl-kibbles i{position:absolute;left:calc((var(--kibble-index) * 17px) % 61px);top:calc(((var(--kibble-index) * 7px) % 12px));width:15px;height:10px;border:1.5px solid #75492f;border-radius:50%;background:#b9704b;box-shadow:inset 2px 1px rgba(255,230,186,.28),0 2px 0 #77462e;transform:rotate(calc(var(--kibble-index) * 17deg - 20deg))}
.food-bowl-in-room.is-empty .room-bowl-rim{background:#f7ead4}.food-bowl-in-room.is-empty .room-bowl-body{background:linear-gradient(145deg,#e3b36c,#c9874b)}
.room-furniture:focus-visible,.cat-stage:focus-visible{outline:4px solid rgba(90,130,178,.46);outline-offset:4px}
.sofa.room-furniture{width:520px;min-width:520px;height:190px;min-height:190px}
.cat-tree-in-room.room-furniture{width:368px;height:543px}
.cat-tree-in-room.room-furniture .cloud-tree{left:50%;right:auto;top:auto;bottom:0;width:210px;height:310px;transform:translateX(-50%) scale(1.75);transform-origin:50% 100%}

/* Cat-tree travel is made of real position steps; only the limbs loop. */
.cat-stage.is-climbing{margin:0;animation:none}
.cat-stage.is-climbing .big-cat{animation:none}
.cat-stage.is-climbing .cat-paw.left,.cat-stage.is-climbing .cat-hind-paw.right{animation:climbReachA .46s ease-in-out infinite alternate}
.cat-stage.is-climbing .cat-paw.right,.cat-stage.is-climbing .cat-hind-paw.left{animation:climbReachB .46s ease-in-out infinite alternate}
@keyframes climbReachA{to{transform:translate(-5px,-10px) rotate(-13deg)}}
@keyframes climbReachB{to{transform:translate(5px,9px) rotate(13deg)}}
.cat-stage.is-back-facing .cat-face{opacity:0}
.cat-stage.is-back-facing .cat-head::after{content:"";position:absolute;left:50%;top:54px;width:24px;height:15px;border-top:4px solid color-mix(in srgb,var(--pet-deep),var(--dark-line) 35%);border-radius:50%;transform:translateX(-50%) rotate(-7deg)}
.cat-stage.is-back-facing .cat-head{box-shadow:inset -11px -9px rgba(98,65,120,.08),inset 0 13px rgba(255,255,255,.08)}
.cat-stage.climb-back{filter:saturate(.92) brightness(.96)}
.cat-stage.is-on-tree .cat-shadow{opacity:.08;transform:translateX(-50%) scale(.72)}

/* The toy keeps its exact visual size while it rolls and bounces. */
.toy-in-room:active,.toy-in-room.is-dragging{transform:translate(-50%,-100%);transition:none}
.toy-in-room.is-falling{animation:toyDropBounce 680ms cubic-bezier(.18,.75,.24,1)}
.toy-in-room.is-cat-playing{animation:selfToyBounceV16 3.4s ease-in-out both}
@keyframes toyDropBounce{0%{transform:translate(-50%,-112%) rotate(-3deg)}54%{transform:translate(-50%,-100%) rotate(2deg)}68%{transform:translate(-50%,-128%) rotate(-4deg)}82%{transform:translate(-50%,-100%) rotate(2deg)}90%{transform:translate(-50%,-109%) rotate(-1deg)}100%{transform:translate(-50%,-100%) rotate(0)}}
@keyframes selfToyBounceV16{0%,100%{transform:translate(-50%,-100%) rotate(0)}24%{transform:translate(-43%,-124%) rotate(8deg)}52%{transform:translate(-58%,-106%) rotate(-6deg)}76%{transform:translate(-47%,-117%) rotate(4deg)}}
.cat-stage.is-toy-chasing{animation:none;margin:0}

/* Opening the curtains changes the whole room, not only the fabric. */
.wall,.floor,.rug,.sofa,.bed,.floor-lamp,.plant,.cat-tree-in-room,.room-decor,.cat-stage,.toy-in-room{transition:filter 520ms ease,transform var(--cat-move-duration,320ms) cubic-bezier(.2,.78,.2,1)}
.room:not(.is-curtains-open):not(.is-lamp-on)>.wall,.room:not(.is-curtains-open):not(.is-lamp-on)>.floor,.room:not(.is-curtains-open):not(.is-lamp-on)>.rug,.room:not(.is-curtains-open):not(.is-lamp-on)>.sofa,.room:not(.is-curtains-open):not(.is-lamp-on)>.bed,.room:not(.is-curtains-open):not(.is-lamp-on)>.plant,.room:not(.is-curtains-open):not(.is-lamp-on)>.cat-tree-in-room,.room:not(.is-curtains-open):not(.is-lamp-on)>.cat-stage,.room:not(.is-curtains-open):not(.is-lamp-on)>.toy-in-room{filter:brightness(.88) saturate(.9)}
.room.is-lamp-on:not(.is-curtains-open)>.wall,.room.is-lamp-on:not(.is-curtains-open)>.floor{filter:brightness(.98) sepia(.05)}
.room.is-curtains-open>.wall{filter:brightness(1.07) saturate(1.03)}
.room.is-curtains-open>.floor{filter:brightness(1.08) saturate(1.02)}
.room.is-curtains-open .floor::after{opacity:1;background:linear-gradient(118deg,rgba(255,232,158,.56),transparent 52%),radial-gradient(ellipse at 18% 20%,rgba(255,255,255,.38),transparent 44%)}
.room:not(.is-curtains-open) .floor::after{opacity:.16}
.room.is-curtains-open .window{box-shadow:inset 0 0 0 3px #a88259,0 10px 0 #a98460,0 19px 42px rgba(244,192,102,.28)}
.window-sky,.floor::after{transition:opacity 520ms ease,filter 520ms ease}
.room:not(.is-curtains-open) .window-sky{filter:brightness(.82) saturate(.82)}

/* Layered potted plant with soil, stems, leaf veins and ceramic highlights. */
.plant{left:31%;bottom:25%;width:104px;height:142px;filter:drop-shadow(0 8px 7px rgba(69,52,39,.13))}
.plant i{position:static;left:auto;bottom:auto;width:auto;height:auto;border-radius:0;background:transparent;box-shadow:none}
.plant-stem{position:absolute;z-index:1;left:50px;bottom:45px;width:5px;height:72px;border-radius:6px;background:linear-gradient(90deg,#477659,#75a77d);transform-origin:bottom}
.plant-stem.s1{transform:rotate(-16deg)}.plant-stem.s2{height:86px;transform:rotate(7deg)}.plant-stem.s3{height:65px;transform:rotate(27deg)}
.plant .leaf{z-index:2;left:43px;bottom:66px;width:34px;height:65px;overflow:hidden;border:2px solid #496f57;border-radius:95% 8% 95% 8%;background:linear-gradient(135deg,#a9c99c,#62956f 66%,#507e5d);box-shadow:inset 5px 5px rgba(255,255,255,.12);transform-origin:50% 100%}
.plant .leaf i{position:absolute;left:50%;top:8px;bottom:5px;width:2px;background:rgba(56,101,69,.52);transform:rotate(-8deg)}
.plant .leaf i::before,.plant .leaf i::after{content:"";position:absolute;left:-9px;width:18px;height:1px;background:rgba(56,101,69,.34);transform:rotate(34deg)}
.plant .leaf i::before{top:18px}.plant .leaf i::after{top:35px;transform:rotate(-31deg)}
.plant .leaf.l1{left:21px;bottom:55px;transform:rotate(-53deg) scale(.86)}
.plant .leaf.l2{left:32px;bottom:78px;transform:rotate(-25deg) scale(.94)}
.plant .leaf.l3{left:49px;bottom:82px;transform:scaleX(-1) rotate(-18deg)}
.plant .leaf.l4{left:61px;bottom:60px;transform:scaleX(-1) rotate(-48deg) scale(.83)}
.plant .leaf.l5{left:47px;bottom:96px;transform:rotate(8deg) scale(.76)}
.plant-pot{position:absolute;z-index:4;left:23px;bottom:0;width:60px;height:55px;border:3px solid #704b38;border-radius:10px 10px 24px 24px;background:linear-gradient(100deg,#e3a876,#bd7657);box-shadow:inset -7px -6px rgba(106,56,42,.13),inset 7px 5px rgba(255,255,255,.12)}
.plant-rim{position:absolute;left:-6px;right:-6px;top:-5px;height:15px;border:3px solid #704b38;border-radius:8px;background:#d89267}
.plant-soil{position:absolute!important;z-index:2;left:5px!important;right:5px;top:1px!important;height:8px!important;border-radius:50%!important;background:#6d4d36!important;box-shadow:inset 0 2px rgba(44,29,20,.28)!important}
.plant-pot em{position:absolute;right:10px;top:20px;width:9px;height:21px;border-radius:50%;background:rgba(255,237,215,.25);transform:rotate(-16deg)}

.event-checklist{display:grid;gap:9px;margin-top:18px}
.event-check{display:grid;grid-template-columns:44px 1fr;align-items:center;gap:11px;min-height:64px;padding:9px 12px;border:1px solid rgba(99,68,52,.11);border-radius:16px;background:#fff}
.event-check>span{width:40px;height:40px;display:grid;place-items:center;border-radius:13px;color:#8f7467;background:#eee4dc;font-size:13px;font-weight:900}
.event-check>span svg{width:20px;height:20px}.event-check div{display:flex;min-width:0;flex-direction:column}.event-check strong{font-size:12px}.event-check small{margin-top:3px;color:#958077;font-size:10px}
.event-check.is-done{border-color:rgba(100,145,123,.23);background:#f2f8f5}.event-check.is-done>span{color:#fff;background:#7dab96}.event-check.is-done small{color:#648071}
.event-hero.window-picnic{background:linear-gradient(145deg,#ffe1bb,#f1bc83)}
.event-fun-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:16px}
.event-fun-card{min-height:124px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:14px;border:1px solid rgba(99,68,52,.11);border-radius:17px;color:#5f4d43;cursor:pointer;background:#fff;box-shadow:0 7px 15px rgba(78,55,43,.07);text-align:left;transition:transform 160ms ease,box-shadow 160ms ease}
.event-fun-card:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(78,55,43,.11)}.event-fun-card:active{transform:scale(.98)}.event-fun-card strong{font-size:13px}.event-fun-card small{color:#938077;font-size:10px;line-height:1.55}.fun-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:12px;color:#a76b57;background:#ffeadf;font-size:19px}
.event-fun-card:nth-child(2) .fun-icon{color:#6a8d9e;background:#deeff5}.event-fun-card:nth-child(3) .fun-icon{color:#a15f76;background:#f5e0e8}.event-fun-card:nth-child(4) .fun-icon{color:#8a71a8;background:#e9e0f3}

@media (min-width:1500px){.sofa.room-furniture{width:600px;min-width:600px;height:215px}.cat-tree-in-room.room-furniture{--furniture-scale:1.18}}
@media (max-width:980px){.cat-stage[data-positioned="true"]{--cat-scale:.82}.sofa.room-furniture{--furniture-scale:.92}.cat-tree-in-room.room-furniture{--furniture-scale:1}}
@media (max-width:720px){.cat-stage[data-positioned="true"]{--cat-scale:.72}.sofa.room-furniture{--furniture-scale:.82}.cat-tree-in-room.room-furniture{--furniture-scale:.9}.plant{left:6%;transform:scale(.72);transform-origin:bottom}}
@media (max-width:720px){.bed.room-furniture{--furniture-scale:.78}.floor-lamp.room-furniture{--furniture-scale:.74}}
@media (max-width:720px){.water-fountain.room-furniture{--furniture-scale:.78}}
@media (max-width:420px){.cat-stage[data-positioned="true"]{--cat-scale:.64}.sofa.room-furniture{--furniture-scale:.75}.cat-tree-in-room.room-furniture{--furniture-scale:.82}.plant{display:none}}
@media (max-width:420px){.bed.room-furniture{--furniture-scale:.66}.floor-lamp.room-furniture{--furniture-scale:.62}.decor-fragment-pile{transform:translate(-50%,-50%) scale(.82)}}
@media (max-width:420px){.water-fountain.room-furniture{--furniture-scale:.66}}
@media (max-width:420px) and (max-height:520px){.cat-stage[data-positioned="true"]{--cat-scale:.55}.sofa.room-furniture{--furniture-scale:.6}.cat-tree-in-room.room-furniture{--furniture-scale:.65}}
@media (orientation:landscape) and (max-height:500px) and (min-width:600px){.cat-stage[data-positioned="true"]{--cat-scale:.45}.sofa.room-furniture{--furniture-scale:.6}.cat-tree-in-room.room-furniture{--furniture-scale:.52}}
@media (prefers-reduced-motion:reduce){.cat-stage[data-positioned="true"],.room-furniture[data-positioned="true"],.toy-in-room,.wall,.floor,.curtain{transition:none!important}.cat-stage.is-being-dragged .big-cat,.cat-stage.is-climbing .cat-paw,.cat-stage.is-climbing .cat-hind-paw{animation:none!important}}

/* Room depth, safer drag layers, gravity toys and interactive rescue work. */
.pet-status,.care-actions,.speech-bubble{z-index:64}
.emotion-alert,.anger-alert,.dizzy-alert{z-index:72}
.shop-dock{z-index:80}
.game-header{z-index:90}

.room::after{
  content:"";
  position:absolute;
  z-index:3;
  left:0;
  right:0;
  top:55%;
  height:2px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(151,118,88,.2) 16%,rgba(151,118,88,.2) 84%,transparent);
  box-shadow:0 12px 34px rgba(255,255,255,.28);
}

.cat-stage[data-positioned="true"]{
  --cat-depth-scale:1;
  transform:translate(calc(var(--cat-x, 50vw) - 50%),calc(var(--cat-lift, 0px) * -1)) scale(var(--cat-scale)) scale(var(--cat-depth-scale));
}

.room-furniture[data-positioned="true"]{
  --depth-scale:1;
  transform:translate(calc(var(--item-x, 50vw) - 50%),calc(var(--item-lift, 0px) * -1)) scale(var(--furniture-scale)) scale(var(--depth-scale));
}

.cat-tree-in-room.room-furniture{
  --tree-reduction:.857142857;
  width:368px;
  height:543px;
  transform:translate(calc(var(--item-x, 50vw) - 50%),calc(var(--item-lift, 0px) * -1)) scale(var(--furniture-scale)) scale(var(--depth-scale)) scale(var(--tree-reduction));
}
.cat-tree-in-room.room-furniture .cloud-tree{transform:translateX(-50%) scale(1.75)}

.toy-in-room{
  --toy-base-scale:1;
  --item-depth-scale:1;
  transform:translate(-50%,-100%) scale(var(--toy-base-scale)) scale(var(--item-depth-scale));
  transform-origin:50% 100%;
  transition:left 140ms ease,top 90ms linear,transform 180ms ease,filter 180ms ease;
  will-change:left,top,transform;
}
.toy-in-room:hover{transform:translate(-50%,-100%) translateY(-3px) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
.toy-in-room:active,.toy-in-room.is-dragging{transform:translate(-50%,-100%) scale(var(--toy-base-scale)) scale(var(--item-depth-scale));transition:none}
.toy-in-room.is-falling{animation:none;transition:none}
.toy-in-room.is-bouncing{animation:toyGravityBounceV20 860ms cubic-bezier(.17,.78,.28,1) both}
.toy-in-room.is-cat-playing{animation:toyPlayV20 5.9s ease-in-out both}
@keyframes toyGravityBounceV20{
  0%,44%,76%,100%{transform:translate(-50%,-100%) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
  54%{transform:translate(-50%,-150%) rotate(-6deg) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
  84%{transform:translate(-50%,-119%) rotate(3deg) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
}
@keyframes toyPlayV20{
  0%,100%{transform:translate(-50%,-100%) rotate(0) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
  25%{transform:translate(-42%,-124%) rotate(8deg) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
  52%{transform:translate(-58%,-106%) rotate(-6deg) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
  76%{transform:translate(-47%,-117%) rotate(4deg) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
}
.cat-stage.is-toy-chasing .big-cat{animation:chaseStepsV20 .76s ease-in-out infinite}
@keyframes chaseStepsV20{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-4px)}}
.cat-stage.is-bored-with-toy .cat-head{animation:boredToyLookAway 3.2s ease-in-out both!important}
.cat-stage.is-bored-with-toy .cat-tail{animation:boredToyTail 1.8s ease-in-out infinite alternate!important}
@keyframes boredToyLookAway{0%{transform:rotate(0)}24%,76%{transform:translateX(5px) rotate(5deg)}100%{transform:rotate(0)}}
@keyframes boredToyTail{from{filter:saturate(.92);opacity:.92}to{filter:saturate(1);opacity:1;transform:rotate(7deg)}}
.cat-stage.is-fur-puffed .big-cat{animation:furPuffV29 .34s ease-in-out infinite alternate!important;filter:drop-shadow(0 4px 2px rgba(92,57,43,.16))}
.cat-stage.is-fur-puffed .cat-body::before,.cat-stage.is-fur-puffed .cat-head::before{content:"";position:absolute;z-index:-1;inset:-14px;background:var(--pet-main);filter:drop-shadow(0 -3px 0 var(--dark-line)) drop-shadow(3px 0 0 var(--dark-line)) drop-shadow(-3px 0 0 var(--dark-line)) drop-shadow(0 3px 0 var(--dark-line));clip-path:polygon(50% 0,56% 7%,65% 2%,69% 11%,79% 8%,80% 18%,91% 18%,88% 29%,100% 35%,91% 43%,99% 53%,89% 59%,95% 70%,84% 73%,86% 85%,73% 83%,67% 96%,57% 90%,49% 100%,42% 91%,29% 97%,26% 84%,14% 86%,16% 73%,4% 68%,11% 58%,1% 49%,10% 41%,0 32%,12% 27%,9% 16%,21% 17%,23% 7%,35% 12%,41% 2%)}
.cat-stage.is-fur-puffed .cat-head::before{inset:-11px}
.cat-stage.is-fur-puffed .cat-tail{z-index:6;width:92px;height:51px;transform:scale(1.28) rotate(-15deg);transform-origin:22% 50%;filter:drop-shadow(0 0 0 var(--dark-line))}
.cat-stage.is-fur-puffed .cat-ear.left{transform:rotate(-24deg)}.cat-stage.is-fur-puffed .cat-ear.right{transform:scaleX(-1) rotate(-24deg)}
@keyframes furPuffV29{from{transform:translateX(-50%) scale(1.03,1.04) rotate(1deg)}to{transform:translateX(-50%) scale(1.09,1.1) rotate(-2deg)}}
.room.is-event-sparkling::after{content:"✦  ✧  ✦";z-index:50;left:50%;top:34%;width:180px;height:45px;color:#f1bf67;background:transparent;font-size:22px;letter-spacing:18px;transform:translateX(-50%);animation:eventSparkleV25 1.9s ease-out both}
@keyframes eventSparkleV25{0%{opacity:0;transform:translateX(-50%) scale(.6)}30%{opacity:1}100%{opacity:0;transform:translateX(-50%) translateY(-34px) scale(1.15)}}
.room.is-shattering::before{content:"✧  •  ✦  •  ✧";position:absolute;z-index:58;left:50%;top:46%;width:240px;height:48px;color:#e6ba72;font-size:22px;letter-spacing:11px;pointer-events:none;transform:translateX(-50%);animation:shatterBitsV25 .8s ease-out both}
@keyframes shatterBitsV25{0%{opacity:0;transform:translateX(-50%) scale(.6)}26%{opacity:1}100%{opacity:0;transform:translateX(-50%) translateY(34px) rotate(9deg) scale(1.25)}}

.dizzy-alert{position:absolute;top:18px;left:50%;width:min(500px,calc(100% - 36px));min-height:64px;display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid rgba(112,90,151,.23);border-radius:18px;background:rgba(251,248,255,.97);box-shadow:0 14px 34px rgba(72,54,91,.15);transform:translateX(-50%)}
.dizzy-alert[hidden]{display:none}.dizzy-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:14px;color:#79639d;background:#e9e0f3}.dizzy-copy{display:flex;min-width:0;flex-direction:column}.dizzy-copy strong{font-size:13px}.dizzy-copy small{margin-top:2px;color:#806e8f;font-size:10px}.dizzy-copy b{color:#79639d;font-family:"Baloo 2",sans-serif;font-size:13px;font-variant-numeric:tabular-nums}
.room:has(.anger-alert:not([hidden])) .emotion-alert,
.room:has(.anger-alert:not([hidden])) .dizzy-alert,
.room:has(.dizzy-alert:not([hidden])) .emotion-alert{display:none}
.dizzy-stars{position:absolute;z-index:30;left:50%;top:15px;width:135px;height:58px;display:none;pointer-events:none;transform:translateX(-50%)}
.dizzy-stars i{position:absolute;width:13px;height:13px;background:#efc457;clip-path:polygon(50% 0,61% 35%,100% 50%,61% 63%,50% 100%,38% 63%,0 50%,38% 35%)}
.dizzy-stars i:nth-child(1){left:9px;top:22px}.dizzy-stars i:nth-child(2){left:60px;top:3px}.dizzy-stars i:nth-child(3){right:8px;top:25px}
.cat-stage.is-swing-dizzy .dizzy-stars,.room.is-dizzy .dizzy-stars{display:block;animation:dizzyOrbitV20 1.2s linear infinite}
.room.is-dizzy .big-cat{animation:dizzyWobbleV20 .9s ease-in-out infinite!important}.room.is-dizzy .cat-eye{height:4px;border-radius:50%;transform:rotate(8deg)}
@keyframes dizzyOrbitV20{to{transform:translateX(-50%) rotate(360deg)}}
@keyframes dizzyWobbleV20{0%,100%{transform:translateX(-50%) rotate(-2deg)}50%{transform:translateX(-50%) rotate(2deg)}}

.starlight-scene{height:300px;padding-bottom:100px;touch-action:none}
.rescue-window{top:18px;height:154px}
.rescue-star{touch-action:none;user-select:none;transition:opacity 160ms ease,box-shadow 160ms ease;will-change:transform}
.rescue-star.is-dragging{z-index:12;animation:none;cursor:grabbing;box-shadow:0 0 0 8px rgba(255,247,197,.38),0 13px 22px rgba(78,60,43,.18)}
.rescue-star.star-3{bottom:35%}.rescue-star.star-4{bottom:34%}
.rescue-drift-bottle{position:absolute;z-index:7;left:50%;bottom:8px;width:78px;height:90px;border:4px solid #6e5548;border-radius:17px 17px 28px 28px;background:linear-gradient(130deg,rgba(255,255,255,.75),rgba(169,215,228,.55));box-shadow:inset 9px 5px rgba(255,255,255,.34),0 9px 15px rgba(72,51,42,.12);transform:translateX(-50%)}
.rescue-drift-bottle::before{content:"";position:absolute;left:21px;top:-15px;width:29px;height:18px;border:4px solid #6e5548;border-bottom:0;border-radius:7px 7px 0 0;background:#cfaa73}
.rescue-drift-bottle::after{content:"";position:absolute;left:18px;right:18px;top:13px;height:8px;border-radius:50%;background:rgba(90,64,48,.22)}
.rescue-drift-bottle>i{position:absolute;left:12px;right:12px;bottom:8px;height:35px;border-radius:50% 50% 16px 16px;background:rgba(243,197,82,.22);box-shadow:0 0 19px rgba(241,195,76,.32)}
.rescue-drift-bottle>span{position:absolute;left:24px;bottom:20px;color:#dba83f}.rescue-drift-bottle svg{width:23px;height:23px}

.tidy-room-layer{position:absolute;z-index:76;inset:0;overflow:hidden;background:rgba(255,250,243,.2);touch-action:none}
.tidy-room-layer[hidden]{display:none}.room.is-tidying>.cat-stage,.room.is-tidying>.speech-bubble,.room.is-tidying>.emotion-alert,.room.is-tidying>.anger-alert,.room.is-tidying>.dizzy-alert,.room.is-tidying>.pet-status,.room.is-tidying>.care-actions{visibility:hidden;pointer-events:none}
.game-content:has(.room.is-tidying)>.shop-dock{display:none}
.tidy-room-banner{position:absolute;z-index:12;left:50%;top:14px;width:min(610px,calc(100% - 28px));min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 17px;border:1px solid rgba(91,62,49,.15);border-radius:19px;background:rgba(255,253,249,.96);box-shadow:0 12px 32px rgba(73,51,41,.14);transform:translateX(-50%)}
.tidy-room-banner span{display:flex;min-width:0;flex-direction:column}.tidy-room-banner strong{font-size:14px}.tidy-room-banner small{margin-top:3px;color:#7d6960;font-size:11px}.tidy-room-banner button{min-width:112px;min-height:44px;padding:0 14px;border:0;border-radius:14px;color:#fff;cursor:pointer;background:#6e9b87;font-size:11px;font-weight:800}.tidy-room-banner button:disabled{color:#9a8b84;cursor:not-allowed;background:#e8dfd8}
.tidy-broom,.tidy-loose-object,.tidy-debris,.tidy-target{position:absolute;z-index:5;min-width:44px;min-height:44px;padding:0;border:0;touch-action:none;user-select:none}
.tidy-broom{left:46%;top:64%;width:70px;height:150px;cursor:grab;background:transparent;transform:rotate(-18deg);transform-origin:50% 85%}.tidy-broom.is-dragging{cursor:grabbing}.tidy-broom i{position:absolute;left:33px;top:0;width:8px;height:112px;border:3px solid #6b4a38;border-radius:8px;background:#c49561}.tidy-broom span{position:absolute;left:7px;bottom:0;width:63px;height:47px;border:3px solid #6b4a38;border-radius:30px 30px 10px 10px;background:repeating-linear-gradient(90deg,#dfb868 0 5px,#c9954e 5px 8px)}
.tidy-debris{background:transparent;pointer-events:none}.tidy-debris.fur{width:64px;height:36px;border-radius:50%;background:radial-gradient(ellipse,#c2aea2 0 12%,transparent 14%) 0 0/13px 12px;filter:drop-shadow(0 3px 2px rgba(76,54,44,.15))}.tidy-debris.dust{width:72px;height:38px;border-radius:50%;background:radial-gradient(ellipse,rgba(142,122,110,.42),transparent 65%);filter:blur(1px)}
.tidy-debris.fur-1{left:16%;top:69%}.tidy-debris.fur-2{left:56%;top:79%}.tidy-debris.fur-3{right:12%;top:62%}.tidy-debris.dust-1{left:33%;top:84%}.tidy-debris.dust-2{right:27%;top:70%}
.tidy-loose-object{display:grid;width:58px;height:58px;place-items:center;border:3px solid #684c3e;border-radius:17px;color:#745e91;cursor:grab;background:#fff9f1;box-shadow:0 8px 15px rgba(70,49,39,.14)}.tidy-loose-object svg{width:28px;height:28px}.tidy-loose-object.is-dragging{z-index:10;cursor:grabbing}.tidy-loose-object.scarf{left:18%;top:58%;transform:rotate(-9deg)}.tidy-loose-object.ball{left:62%;top:83%;border-radius:50%;transform:rotate(7deg)}.tidy-loose-object.bottle{right:15%;top:46%;transform:rotate(17deg)}
.tidy-target{z-index:4;width:112px;height:64px;display:grid;place-items:end center;padding-bottom:7px;border:3px dashed rgba(101,77,63,.46);border-radius:16px;color:#6e5a4f;background:rgba(255,252,246,.58);font-size:11px;font-weight:800;pointer-events:none}.tidy-target.scarf{left:7%;bottom:7%}.tidy-target.ball{left:42%;bottom:5%;border-radius:30px 30px 14px 14px}.tidy-target.bottle{right:7%;top:25%}.tidy-target.is-filled{border-style:solid;border-color:#6e9b87;color:#5f806f;background:rgba(231,245,237,.84)}

@media (max-width:720px){
  .toy-in-room{--toy-base-scale:.72}
  .tidy-room-banner{top:8px;min-height:58px}.tidy-room-banner strong{font-size:12px}.tidy-room-banner small{font-size:9px}.tidy-room-banner button{min-width:94px;padding:0 8px}
  .tidy-broom{left:42%;top:59%;transform:scale(.8) rotate(-18deg)}.tidy-target{width:84px;height:56px}.tidy-loose-object{width:50px;height:50px}.dizzy-alert{top:8px;min-height:58px}
}
@media (max-width:420px){.toy-in-room{--toy-base-scale:.6}.dizzy-icon{display:none}.tidy-room-banner{align-items:flex-start}.tidy-room-banner small{max-width:180px}.tidy-target{width:74px;font-size:9px}.starlight-scene{height:250px}.rescue-window{transform:translateX(-50%) scale(.82);transform-origin:top}.rescue-drift-bottle{transform:translateX(-50%) scale(.86);transform-origin:bottom}}
@media (max-width:420px) and (max-height:520px){.toy-in-room{--toy-base-scale:.48}.tidy-room-banner{top:4px}.tidy-room-banner strong{display:none}.tidy-broom{top:45%;transform:scale(.64) rotate(-18deg)}.tidy-target{height:48px}.tidy-loose-object{width:44px;height:44px}.starlight-scene{height:190px}.rescue-drift-bottle{bottom:2px;transform:translateX(-50%) scale(.68)}}
@media (orientation:landscape) and (max-height:500px) and (min-width:600px){.toy-in-room{--toy-base-scale:.5}.tidy-room-banner{top:4px;min-height:52px}.tidy-broom{top:42%;transform:scale(.65) rotate(-18deg)}.tidy-target{height:48px}.starlight-scene{height:200px}.rescue-drift-bottle{bottom:1px;transform:translateX(-50%) scale(.7)}}
@media (orientation:landscape) and (max-height:500px) and (min-width:600px){.game-content:has(.room.is-tidying){padding-right:6px}.game-content:has(.room.is-tidying)>.room{width:100%}}
@media (prefers-reduced-motion:reduce){.toy-in-room.is-bouncing,.toy-in-room.is-cat-playing,.cat-stage.is-toy-chasing .big-cat,.cat-stage.is-bored-with-toy .cat-head,.cat-stage.is-bored-with-toy .cat-tail,.room.is-dizzy .big-cat,.dizzy-stars{animation:none!important}}
@media (prefers-reduced-motion:reduce){.lamp-glow,.decor-fragment-pile,.bed{transition:none!important}}

/* v29: natural weather cadence, reliable floor lamp and touch-safe tail reactions. */
.bed.room-furniture{position:absolute;left:0;right:auto;top:auto;bottom:0}
.window-sky{overflow:hidden;transition:background 900ms ease,filter 520ms ease}
.window-sky .sun,.window-sky .moon,.window-sky .far-cloud,.sky-stars,.weather-rainfall,.weather-snowfall{transition:opacity 900ms ease,transform 900ms ease,filter 900ms ease}
.window-sky .moon{position:absolute;top:16%;right:18%;width:31px;height:31px;border-radius:50%;opacity:0;background:#fff4cf;box-shadow:0 0 19px rgba(255,244,207,.62)}
.window-sky .moon::after{content:"";position:absolute;left:-7px;top:-5px;width:29px;height:29px;border-radius:50%;background:#213755}
.sky-stars{position:absolute;inset:0;opacity:0}
.sky-stars i{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff5cc;box-shadow:0 0 7px #fff5cc}
.sky-stars i:nth-child(1){left:18%;top:17%}.sky-stars i:nth-child(2){left:38%;top:29%;transform:scale(.7)}.sky-stars i:nth-child(3){right:16%;top:42%}.sky-stars i:nth-child(4){left:24%;top:57%;transform:scale(.65)}.sky-stars i:nth-child(5){right:32%;top:13%;transform:scale(.75)}.sky-stars i:nth-child(6){right:8%;top:65%;transform:scale(.55)}
.room.world-day .window-sky{background:linear-gradient(#bfe4ee,#e8f4e4 70%,#a9cb91 71%)}
.room.world-sunset .window-sky{background:linear-gradient(#d5a9a8 0,#f1c29b 52%,#e8d5b0 70%,#9ebb86 71%)}
.room.world-sunset .window-sky .sun{top:42%;right:13%;background:#f0a55d;box-shadow:0 0 28px rgba(239,154,78,.72)}
.room.world-night .window-sky{background:linear-gradient(#172b49,#314c6c 69%,#456557 70%)}
.room.world-night .window-sky .sun{opacity:0;transform:translateY(24px) scale(.72)}
.room.world-night .window-sky .moon,.room.world-night .window-sky .sky-stars{opacity:1}
.room.world-night .window-sky .far-cloud{background:rgba(205,218,227,.34)}
.room.weather-clear .window-sky .far-cloud.one{opacity:.68}.room.weather-clear .window-sky .far-cloud.two{opacity:.52}
.room.weather-cloudy .window-sky .far-cloud{opacity:.95;filter:brightness(.9) saturate(.65);transform:scale(1.3)}
.room.weather-cloudy .window-sky .far-cloud.two{transform:scale(1.05)}
.room.weather-rain .window-sky .far-cloud{opacity:1;filter:brightness(.68) saturate(.55);transform:scale(1.35)}
.room.weather-rain .window-sky{filter:saturate(.72) brightness(.84)}
.weather-rainfall,.weather-snowfall{position:absolute;z-index:2;inset:0;display:block;opacity:0;pointer-events:none}
.weather-rainfall i{position:absolute;top:-28%;left:var(--particle-left);width:1.5px;height:var(--particle-size);border-radius:4px;opacity:var(--particle-opacity);background:rgba(214,238,248,.88);transform:rotate(10deg)}
.weather-rainfall i:nth-child(1){--particle-left:3%;--particle-size:18px;--particle-opacity:.58;--particle-speed:1.31s;--particle-delay:-.18s}.weather-rainfall i:nth-child(2){--particle-left:11%;--particle-size:27px;--particle-opacity:.86;--particle-speed:1.07s;--particle-delay:-.83s}.weather-rainfall i:nth-child(3){--particle-left:17%;--particle-size:20px;--particle-opacity:.67;--particle-speed:1.43s;--particle-delay:-1.22s}.weather-rainfall i:nth-child(4){--particle-left:24%;--particle-size:24px;--particle-opacity:.78;--particle-speed:1.18s;--particle-delay:-.37s}.weather-rainfall i:nth-child(5){--particle-left:31%;--particle-size:16px;--particle-opacity:.54;--particle-speed:1.52s;--particle-delay:-1.04s}.weather-rainfall i:nth-child(6){--particle-left:37%;--particle-size:29px;--particle-opacity:.88;--particle-speed:1.01s;--particle-delay:-.62s}.weather-rainfall i:nth-child(7){--particle-left:44%;--particle-size:21px;--particle-opacity:.7;--particle-speed:1.36s;--particle-delay:-1.3s}.weather-rainfall i:nth-child(8){--particle-left:49%;--particle-size:25px;--particle-opacity:.82;--particle-speed:1.14s;--particle-delay:-.11s}.weather-rainfall i:nth-child(9){--particle-left:55%;--particle-size:17px;--particle-opacity:.56;--particle-speed:1.49s;--particle-delay:-.91s}.weather-rainfall i:nth-child(10){--particle-left:61%;--particle-size:23px;--particle-opacity:.75;--particle-speed:1.23s;--particle-delay:-.49s}.weather-rainfall i:nth-child(11){--particle-left:67%;--particle-size:30px;--particle-opacity:.9;--particle-speed:.98s;--particle-delay:-.73s}.weather-rainfall i:nth-child(12){--particle-left:72%;--particle-size:19px;--particle-opacity:.61;--particle-speed:1.41s;--particle-delay:-1.18s}.weather-rainfall i:nth-child(13){--particle-left:78%;--particle-size:26px;--particle-opacity:.8;--particle-speed:1.12s;--particle-delay:-.28s}.weather-rainfall i:nth-child(14){--particle-left:84%;--particle-size:16px;--particle-opacity:.52;--particle-speed:1.56s;--particle-delay:-.98s}.weather-rainfall i:nth-child(15){--particle-left:89%;--particle-size:22px;--particle-opacity:.72;--particle-speed:1.27s;--particle-delay:-.55s}.weather-rainfall i:nth-child(16){--particle-left:94%;--particle-size:28px;--particle-opacity:.85;--particle-speed:1.04s;--particle-delay:-1.35s}.weather-rainfall i:nth-child(17){--particle-left:20%;--particle-size:14px;--particle-opacity:.45;--particle-speed:1.62s;--particle-delay:-.69s}.weather-rainfall i:nth-child(18){--particle-left:58%;--particle-size:15px;--particle-opacity:.49;--particle-speed:1.58s;--particle-delay:-1.46s}
.room.weather-rain .weather-rainfall{opacity:1}.room.weather-rain .weather-rainfall i{animation:windowRainV29 var(--particle-speed) linear infinite;animation-delay:var(--particle-delay)}
@keyframes windowRainV29{from{transform:translate3d(-4px,-30px,0) rotate(10deg)}to{transform:translate3d(16px,285px,0) rotate(10deg)}}
.weather-snowfall i{position:absolute;top:-12%;left:var(--snow-left);width:var(--snow-size);height:var(--snow-size);border-radius:50%;opacity:var(--snow-opacity);background:rgba(255,255,255,.92);box-shadow:0 0 5px rgba(255,255,255,.54)}
.weather-snowfall i:nth-child(1){--snow-left:4%;--snow-size:5px;--snow-opacity:.72;--snow-speed:4.8s;--snow-delay:-1.2s}.weather-snowfall i:nth-child(2){--snow-left:12%;--snow-size:8px;--snow-opacity:.9;--snow-speed:5.7s;--snow-delay:-4.1s}.weather-snowfall i:nth-child(3){--snow-left:19%;--snow-size:6px;--snow-opacity:.78;--snow-speed:4.4s;--snow-delay:-2.8s}.weather-snowfall i:nth-child(4){--snow-left:27%;--snow-size:9px;--snow-opacity:.94;--snow-speed:6.2s;--snow-delay:-.9s}.weather-snowfall i:nth-child(5){--snow-left:35%;--snow-size:4px;--snow-opacity:.63;--snow-speed:4.9s;--snow-delay:-3.6s}.weather-snowfall i:nth-child(6){--snow-left:42%;--snow-size:7px;--snow-opacity:.85;--snow-speed:5.4s;--snow-delay:-1.8s}.weather-snowfall i:nth-child(7){--snow-left:49%;--snow-size:5px;--snow-opacity:.7;--snow-speed:6.5s;--snow-delay:-5.1s}.weather-snowfall i:nth-child(8){--snow-left:56%;--snow-size:9px;--snow-opacity:.93;--snow-speed:5.1s;--snow-delay:-2.3s}.weather-snowfall i:nth-child(9){--snow-left:63%;--snow-size:6px;--snow-opacity:.8;--snow-speed:4.6s;--snow-delay:-.5s}.weather-snowfall i:nth-child(10){--snow-left:69%;--snow-size:4px;--snow-opacity:.61;--snow-speed:6.1s;--snow-delay:-4.7s}.weather-snowfall i:nth-child(11){--snow-left:75%;--snow-size:8px;--snow-opacity:.88;--snow-speed:5.5s;--snow-delay:-3.1s}.weather-snowfall i:nth-child(12){--snow-left:82%;--snow-size:5px;--snow-opacity:.69;--snow-speed:4.7s;--snow-delay:-1.5s}.weather-snowfall i:nth-child(13){--snow-left:88%;--snow-size:7px;--snow-opacity:.83;--snow-speed:6.3s;--snow-delay:-5.4s}.weather-snowfall i:nth-child(14){--snow-left:94%;--snow-size:9px;--snow-opacity:.92;--snow-speed:5.2s;--snow-delay:-2.6s}.weather-snowfall i:nth-child(15){--snow-left:23%;--snow-size:4px;--snow-opacity:.58;--snow-speed:6.8s;--snow-delay:-4.4s}.weather-snowfall i:nth-child(16){--snow-left:59%;--snow-size:5px;--snow-opacity:.65;--snow-speed:5.9s;--snow-delay:-3.9s}
.room.weather-snow .weather-snowfall{opacity:1}.room.weather-snow .weather-snowfall i{animation:windowSnowV29 var(--snow-speed) ease-in-out infinite;animation-delay:var(--snow-delay)}
.room.weather-snow .window-sky{filter:saturate(.8) brightness(1.04)}
@keyframes windowSnowV29{0%{transform:translate3d(-3px,-12px,0) rotate(0)}45%{transform:translate3d(11px,118px,0) rotate(120deg)}100%{transform:translate3d(-7px,270px,0) rotate(250deg)}}

.cat-tail{pointer-events:auto;cursor:pointer}
.cat-tail::after{content:"";position:absolute;inset:-13px -12px -14px -9px;border-radius:999px;background:transparent;pointer-events:auto}

.room-decor,.decor-fragment-pile{transition:filter 520ms ease,transform 180ms ease}
.room:not(.is-curtains-open):not(.is-lamp-on) .room-decor,.room:not(.is-curtains-open):not(.is-lamp-on) .decor-fragment-pile{filter:brightness(.82) saturate(.86) drop-shadow(0 7px 5px rgba(48,39,34,.13))}
.room.is-lamp-on:not(.is-curtains-open) .room-decor,.room.is-lamp-on:not(.is-curtains-open) .decor-fragment-pile{filter:brightness(.96) saturate(.93) sepia(.06) drop-shadow(0 7px 5px rgba(73,51,40,.15))}
.room.is-curtains-open .room-decor,.room.is-curtains-open .decor-fragment-pile{filter:brightness(1.04) saturate(1.02) drop-shadow(0 7px 5px rgba(73,51,40,.15))}
.room.world-night.is-curtains-open:not(.is-lamp-on)>:is(.wall,.floor,.rug,.sofa,.bed,.floor-lamp,.cat-tree-in-room,.cat-stage,.toy-in-room){filter:brightness(.87) saturate(.83)}
.room.world-night.is-curtains-open:not(.is-lamp-on) .room-decor,.room.world-night.is-curtains-open:not(.is-lamp-on) .decor-fragment-pile{filter:brightness(.8) saturate(.8) drop-shadow(0 7px 5px rgba(28,29,39,.18))}
.room.world-night.is-lamp-on.is-curtains-open .room-decor{filter:brightness(.95) sepia(.08) drop-shadow(0 7px 5px rgba(73,51,40,.15))}

.feeding-card{width:min(620px,calc(100% - 28px));max-height:min(92dvh,760px);overflow:auto;padding:25px 28px 24px;border:1px solid rgba(101,68,51,.13);border-radius:28px;background:#fffaf5;box-shadow:0 28px 70px rgba(63,43,34,.25)}
.feeding-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.feeding-header h2{margin:0;font-size:27px}.feeding-hint{margin:8px 0 0;color:#826d63;font-size:12px;line-height:1.7}.feeding-scene{position:relative;height:285px;margin-top:15px;overflow:hidden;border-radius:22px;background:linear-gradient(#fff7e9,#f8e7c5 64%,#edd0a6 65%);box-shadow:inset 0 -14px rgba(178,126,75,.08)}
.feeding-scene::after{content:"";position:absolute;left:8%;right:8%;bottom:17px;height:18px;border-radius:50%;background:rgba(103,68,42,.13);filter:blur(5px)}.feeding-bowl{position:absolute;z-index:3;left:50%;bottom:37px;width:200px;height:120px;transform:translateX(-50%);cursor:grab}.feeding-bowl.is-saved{filter:brightness(.96) saturate(.9)}.bowl-body{position:absolute;left:15px;right:15px;bottom:0;height:80px;border:4px solid var(--dark-line);border-radius:18px 18px 58px 58px;background:linear-gradient(145deg,#f4c879,#d89b4f);box-shadow:inset 0 -15px rgba(146,90,42,.12)}.bowl-rim{position:absolute;z-index:2;left:3px;right:3px;top:20px;height:52px;border:4px solid var(--dark-line);border-radius:50%;background:#fff0ca;box-shadow:inset 0 -9px rgba(184,117,47,.13)}.bowl-kibbles{position:absolute;z-index:4;left:29px;right:29px;top:27px;height:44px}.bowl-kibbles i{position:absolute;left:calc((var(--kibble-index) * 27px) % 135px);top:calc(((var(--kibble-index) * 13px) % 28px));width:25px;height:17px;border:2px solid #75492f;border-radius:50%;background:#b9704b;box-shadow:inset 3px 2px rgba(255,230,186,.26),0 3px 0 #77462e;transform:rotate(calc(var(--kibble-index) * 17deg - 20deg))}.bowl-count,.feeding-bowl strong{position:absolute;z-index:5;left:50%;bottom:-27px;transform:translateX(-50%);color:#806454;font-family:"Baloo 2",sans-serif;font-size:14px;white-space:nowrap}.food-box{position:absolute;z-index:5;left:17%;top:50px;width:136px;height:125px;padding:33px 8px 8px;border:4px solid var(--dark-line);border-radius:18px;color:#714a36;cursor:grab;background:linear-gradient(145deg,#f8d590,#e5b35e);box-shadow:0 13px 0 #b87840,0 20px 20px rgba(105,68,39,.16);transform:rotate(-7deg);touch-action:none}.food-box .box-top{position:absolute;left:-4px;right:-4px;top:-4px;height:31px;border:4px solid var(--dark-line);border-radius:15px 15px 7px 7px;background:#ffdca1}.food-box svg{width:40px;height:40px;display:block;margin:0 auto;color:#8f5837}.food-box strong,.food-box small{display:block}.food-box strong{font-size:12px}.food-box small{font-size:11px}.food-box.is-shaking{animation:shakeFoodBoxV310 .35s ease-in-out infinite alternate}.food-box.just-shook{animation:foodBoxDropV310 .46s ease-out}.shake-dust{position:absolute;z-index:6;left:27%;top:146px;opacity:0}.shake-dust i{display:inline-block;width:7px;height:7px;margin:0 5px;border-radius:50%;background:#b9704b}.shake-dust.is-dropping{animation:foodDustV310 .55s ease-out}.saved-bowl-zone{position:absolute;right:7%;top:37px;width:150px;height:87px;display:grid;place-items:center;border:2px dashed rgba(129,94,58,.3);border-radius:18px;color:#a18065;background:rgba(255,250,236,.45);font-size:11px;text-align:center}.feeding-status{min-height:22px;margin:14px 0 8px;color:#806b60;font-size:12px;text-align:center}.feeding-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.feeding-actions button{min-height:45px}.feeding-actions .secondary-button:disabled,.feeding-actions .primary-button:disabled{cursor:not-allowed;opacity:.45}
@keyframes shakeFoodBoxV310{from{transform:rotate(-10deg) translateX(-4px)}to{transform:rotate(7deg) translateX(4px)}}@keyframes foodBoxDropV310{0%{transform:rotate(-7deg) translateY(0)}55%{transform:rotate(-1deg) translateY(8px)}100%{transform:rotate(-7deg) translateY(0)}}@keyframes foodDustV310{0%{opacity:0;transform:translateY(0)}35%{opacity:1}100%{opacity:0;transform:translateY(26px) scale(.7)}}
@media (max-width:560px){.feeding-card{padding:19px 16px}.feeding-header h2{font-size:22px}.feeding-scene{height:245px}.feeding-bowl{transform:translateX(-50%) scale(.82);transform-origin:bottom center}.food-box{left:4%;transform:rotate(-7deg) scale(.82);transform-origin:top left}.saved-bowl-zone{right:3%;top:30px;width:118px;height:67px;font-size:9px}}

.room-decor.shell-music-box{width:64px;height:48px}.shell-music-box::before{content:"";position:absolute;left:6px;bottom:4px;width:52px;height:38px;border:3px solid var(--dark-line);border-radius:50% 50% 15px 15px;background:repeating-conic-gradient(from 258deg at 50% 100%,#f4ccb5 0 8deg,#ffe8d9 9deg 17deg);box-shadow:inset 0 -7px rgba(169,111,102,.12)}.shell-music-box span{position:absolute;z-index:2;left:14px;right:14px;bottom:0;height:13px;border:3px solid var(--dark-line);border-radius:50%;background:#d59a7c}.shell-music-box i{position:absolute;z-index:3;left:27px;top:17px;width:10px;height:10px;border-radius:50%;background:#fff5dd;box-shadow:0 0 8px rgba(255,239,195,.8)}
.room-decor.tiny-clock{width:60px;height:69px}.tiny-clock::before{content:"";position:absolute;left:4px;top:0;width:52px;height:31px;border:3px solid var(--dark-line);border-radius:50% 50% 18px 18px;background:#df9074}.tiny-clock span{position:absolute;left:14px;bottom:4px;width:32px;height:43px;border:3px solid var(--dark-line);border-radius:16px 16px 10px 10px;background:#f4d49d}.tiny-clock i{position:absolute;z-index:2;left:18px;bottom:13px;width:24px;height:24px;border:3px solid var(--dark-line);border-radius:50%;background:#fff9eb}.tiny-clock i::before,.tiny-clock i::after{content:"";position:absolute;left:9px;top:4px;width:2px;height:8px;border-radius:2px;background:var(--dark-line);transform-origin:bottom}.tiny-clock i::after{transform:rotate(112deg)}.tiny-clock b{position:absolute;z-index:3;left:28px;bottom:23px;width:4px;height:4px;border-radius:50%;background:var(--dark-line)}
.room-decor.sun-catcher{width:60px;height:76px}.sun-catcher::before{content:"";position:absolute;left:27px;top:0;width:4px;height:24px;border-radius:4px;background:var(--dark-line)}.sun-catcher span{position:absolute;left:11px;top:18px;width:38px;height:38px;border:3px solid var(--dark-line);border-radius:50%;background:conic-gradient(#ee9b85,#f4d175,#9cc9a9,#9ebfe1,#c1a7da,#ee9b85);box-shadow:inset 0 0 0 9px rgba(255,255,255,.55)}.sun-catcher i,.sun-catcher b{position:absolute;left:16px;bottom:0;width:11px;height:23px;border:2px solid var(--dark-line);border-radius:50% 50% 8px 8px;background:#8fc5d7;transform:rotate(12deg)}.sun-catcher b{left:auto;right:15px;background:#edb079;transform:rotate(-12deg)}
.room.is-curtains-open .sun-catcher span{box-shadow:inset 0 0 0 9px rgba(255,255,255,.58),0 0 14px rgba(246,200,106,.58)}
.preview-shell-box,.preview-tiny-clock,.preview-sun-catcher{position:relative;width:70px;height:72px;transform:scale(.85)}.preview-shell-box::before{content:"";position:absolute;left:6px;bottom:7px;width:58px;height:42px;border:3px solid var(--dark-line);border-radius:50% 50% 15px 15px;background:repeating-conic-gradient(from 258deg at 50% 100%,#f4ccb5 0 8deg,#ffe8d9 9deg 17deg)}.preview-shell-box i{position:absolute;left:29px;bottom:24px;width:12px;height:12px;border-radius:50%;background:#fff4d5}.preview-tiny-clock::before{content:"";position:absolute;left:7px;top:3px;width:56px;height:33px;border:3px solid var(--dark-line);border-radius:50%;background:#df9074}.preview-tiny-clock i{position:absolute;left:17px;top:26px;width:36px;height:42px;border:3px solid var(--dark-line);border-radius:14px;background:#f4d49d}.preview-tiny-clock b{position:absolute;left:25px;top:36px;width:20px;height:20px;border:3px solid var(--dark-line);border-radius:50%;background:#fff9eb}.preview-sun-catcher i{position:absolute;left:15px;top:8px;width:40px;height:40px;border:3px solid var(--dark-line);border-radius:50%;background:conic-gradient(#ee9b85,#f4d175,#9cc9a9,#9ebfe1,#c1a7da,#ee9b85);box-shadow:inset 0 0 0 9px rgba(255,255,255,.55)}.preview-sun-catcher b{position:absolute;left:31px;top:47px;width:9px;height:21px;border:2px solid var(--dark-line);border-radius:50%;background:#8fc5d7}

.toy-in-room.is-bouncing{animation:toyGravityBounceV27 1080ms linear both}
@keyframes toyGravityBounceV27{
  0%{transform:translate(-50%,-100%) scale(var(--toy-base-scale)) scale(var(--item-depth-scale)) scale(1.07,.9);animation-timing-function:cubic-bezier(.2,.68,.28,1)}
  7%{transform:translate(-50%,-100%) scale(var(--toy-base-scale)) scale(var(--item-depth-scale)) scale(.98,1.02);animation-timing-function:cubic-bezier(.22,.72,.25,1)}
  29%{transform:translate(-50%,-151%) rotate(-5deg) scale(var(--toy-base-scale)) scale(var(--item-depth-scale));animation-timing-function:cubic-bezier(.55,.02,.82,.48)}
  48%{transform:translate(-50%,-100%) rotate(1deg) scale(var(--toy-base-scale)) scale(var(--item-depth-scale)) scale(1.04,.94);animation-timing-function:cubic-bezier(.2,.7,.28,1)}
  58%{transform:translate(-50%,-127%) rotate(3deg) scale(var(--toy-base-scale)) scale(var(--item-depth-scale));animation-timing-function:cubic-bezier(.55,.04,.8,.48)}
  72%{transform:translate(-50%,-100%) rotate(-1deg) scale(var(--toy-base-scale)) scale(var(--item-depth-scale)) scale(1.025,.97);animation-timing-function:ease-out}
  80%{transform:translate(-50%,-113%) rotate(-1.5deg) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
  91%{transform:translate(-50%,-100%) rotate(.5deg) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
  96%{transform:translate(-50%,-104%) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
  100%{transform:translate(-50%,-100%) rotate(0) scale(var(--toy-base-scale)) scale(var(--item-depth-scale))}
}

.cat-stage.is-settling-on-support .big-cat,.cat-stage.is-support-riding .big-cat{animation:softSettle 420ms ease-out both!important}
.cat-stage.is-support-dropping .big-cat{animation:supportStepDownV27 560ms cubic-bezier(.2,.78,.2,1) both!important}
.cat-stage.is-bed-edge-landing .big-cat{animation:bedEdgeLandV3177 .43s cubic-bezier(.2,.8,.2,1) both!important}
.cat-stage.is-sliding-onto-bed .big-cat{animation:bedEdgeSlideInV3177 .52s ease-in-out both!important}
.cat-stage.is-sliding-off-bed .big-cat{animation:bedEdgeSlideOffV3177 .52s ease-in-out both!important}
@keyframes bedEdgeLandV3177{0%,68%{transform:translateX(-50%)}82%{transform:translateX(-50%) scale(1.02,.94)}100%{transform:translateX(-50%)}}
@keyframes bedEdgeSlideInV3177{0%{transform:translateX(-50%) rotate(0)}55%{transform:translateX(-50%) rotate(2deg) translateY(2px)}100%{transform:translateX(-50%) rotate(0)}}
@keyframes bedEdgeSlideOffV3177{0%{transform:translateX(-50%) rotate(0)}52%{transform:translateX(-50%) rotate(-3deg) translateY(3px)}100%{transform:translateX(-50%) rotate(0)}}
@keyframes supportStepDownV27{0%{transform:translateX(-50%) translateY(-9px)}65%{transform:translateX(-50%) translateY(3px) scale(1.03,.95)}82%{transform:translateX(-50%) translateY(-2px)}100%{transform:translateX(-50%) translateY(0)}}
.cat-stage.is-on-bed .cat-shadow{opacity:.06;transform:translateX(-50%) scale(.78)}

@media (prefers-reduced-motion:reduce){.weather-rainfall i,.weather-snowfall i,.toy-in-room.is-bouncing,.cat-stage.is-support-dropping .big-cat,.cat-stage.is-bed-edge-landing .big-cat,.cat-stage.is-sliding-onto-bed .big-cat,.cat-stage.is-sliding-off-bed .big-cat{animation:none!important}.window-sky .sun,.window-sky .moon,.sky-stars{transition:none!important}}

/* v30: exact support surfaces, a real wall shelf and softer spatial motion. */
.shelf{
  z-index:8;
  right:6%;
  bottom:23%;
  width:clamp(132px,14vw,178px);
  height:14px;
  border:3px solid #6f4b36;
  border-radius:4px;
  background:linear-gradient(#c99969,#a8734d);
  box-shadow:inset 0 2px rgba(255,239,215,.28),0 7px 0 #805638,0 13px 18px rgba(74,48,32,.18);
}
.shelf::before,.shelf::after{content:"";position:absolute;z-index:-1;top:11px;width:18px;height:42px;border:3px solid #6f4b36;border-top:0;border-radius:0 0 7px 7px;background:linear-gradient(90deg,#95633f,#b78358)}
.shelf::before{left:18px;transform:skewX(-9deg)}.shelf::after{right:18px;transform:skewX(9deg)}
.shelf .book{bottom:11px}

.cat-stage.is-fragment-avoiding .big-cat{animation:fragmentPawRecoilV30 .7s cubic-bezier(.2,.78,.2,1) both}
.cat-stage.is-fragment-avoiding .cat-paw.left{animation:fragmentLiftPawV30 .7s ease-out both!important}
@keyframes fragmentPawRecoilV30{0%{transform:translateX(-50%)}25%{transform:translateX(-50%) translateY(-3px) rotate(2deg)}58%{transform:translateX(-56%) translateY(-1px) rotate(-2deg)}100%{transform:translateX(-50%)}}
@keyframes fragmentLiftPawV30{0%,100%{transform:none}28%,55%{transform:translateY(-14px) rotate(-12deg)}}

/* The rear view remains recognizable while Puffles backs toward a support. */
.cat-stage.is-back-facing .cat-face{opacity:0}
.cat-stage.is-back-facing .cat-ear i{opacity:.24;transform:scale(.72) translateY(4px)}
.cat-stage.is-back-facing .cat-head{box-shadow:inset -10px -8px rgba(98,65,120,.09),inset 0 13px rgba(255,255,255,.08)}
.cat-stage.is-back-facing .cat-head::after{content:"";position:absolute;left:50%;top:49px;width:38px;height:25px;border:0;border-radius:50% 50% 42% 42%;background:color-mix(in srgb,var(--pet-deep),var(--pet-main) 48%);box-shadow:0 11px 0 -7px color-mix(in srgb,var(--pet-deep),var(--dark-line) 28%);transform:translateX(-50%)}
.cat-stage.is-back-facing .body-patch{left:38px;top:30px;width:27px;height:84px;opacity:.55;background:color-mix(in srgb,var(--pet-deep),var(--pet-light) 28%);clip-path:polygon(50% 0,88% 12%,65% 24%,92% 38%,62% 51%,87% 66%,58% 79%,50% 100%,39% 80%,13% 66%,38% 51%,8% 38%,35% 24%,12% 12%)}
.cat-stage.is-back-walking .big-cat{animation:backWalkBodyV30 .82s ease-in-out infinite!important}
.cat-stage.is-back-walking .cat-head{animation:backWalkHeadV30 1.64s ease-in-out infinite!important}
.cat-stage.is-back-walking .cat-paw.left,.cat-stage.is-back-walking .cat-hind-paw.right{animation:backStepAV30 .82s ease-in-out infinite alternate!important}
.cat-stage.is-back-walking .cat-paw.right,.cat-stage.is-back-walking .cat-hind-paw.left{animation:backStepBV30 .82s ease-in-out infinite alternate!important}
.cat-stage.is-back-walking .cat-tail{animation:backTailV30 1.2s ease-in-out infinite alternate!important}
@keyframes backWalkBodyV30{0%,100%{transform:translateX(-50%) translateY(0) rotate(-1deg)}50%{transform:translateX(-50%) translateY(-3px) rotate(1deg)}}
@keyframes backWalkHeadV30{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes backStepAV30{to{transform:translateY(-9px) rotate(-5deg)}}
@keyframes backStepBV30{to{transform:translateY(3px) rotate(4deg)}}
@keyframes backTailV30{from{transform:rotate(-14deg)}to{transform:rotate(8deg) translateY(-3px)}}

/* Most play keeps the toy visible; only the short turning beat may cross it. */
.cat-stage.is-toy-turning .big-cat{animation:toyTurnV30 .42s ease-in-out both!important}
@keyframes toyTurnV30{0%,100%{transform:translateX(-50%) rotate(0)}50%{transform:translateX(-50%) rotate(7deg) translateY(-2px)}}

/* A crouch, curved lift, relaxed descent and paw-first landing replace the rigid jump. */
.cat-stage[data-pose="jump"] .big-cat{animation:pufflesJumpV30 2.05s linear 1 both}
.cat-stage[data-pose="jump"] .cat-body{animation:jumpBodyV30 2.05s ease-in-out 1 both}
.cat-stage[data-pose="jump"] .cat-head{animation:jumpHeadV30 2.05s ease-in-out 1 both}
.cat-stage[data-pose="jump"] .cat-paw.left{animation:jumpFrontLeftV30 2.05s ease-in-out 1 both}
.cat-stage[data-pose="jump"] .cat-paw.right{animation:jumpFrontRightV30 2.05s ease-in-out 1 both}
.cat-stage[data-pose="jump"] .cat-hind-paw.left{animation:jumpHindLeftV30 2.05s ease-in-out 1 both}
.cat-stage[data-pose="jump"] .cat-hind-paw.right{animation:jumpHindRightV30 2.05s ease-in-out 1 both}
.cat-stage[data-pose="jump"] .cat-tail{animation:jumpTailV30 2.05s ease-in-out 1 both}
.cat-stage[data-pose="jump"] .cat-shadow{animation:jumpShadowV30 2.05s ease-in-out 1 both}
@keyframes pufflesJumpV30{0%,13%{transform:translateX(-50%) translateY(0) rotate(0) scale(1)}25%{transform:translateX(-50%) translateY(9px) rotate(-1deg) scale(1.03,.91)}35%{transform:translateX(-50%) translateY(-18px) rotate(-2deg) scale(.98,1.08)}52%{transform:translateX(-50%) translateY(-73px) rotate(1deg) scale(1.01,1.04)}66%{transform:translateX(-50%) translateY(-50px) rotate(2deg) scale(1)}80%{transform:translateX(-50%) translateY(-10px) rotate(0) scale(.99,1.03)}88%{transform:translateX(-50%) translateY(2px) scale(1.04,.93)}95%{transform:translateX(-50%) translateY(-3px) scale(.99,1.025)}100%{transform:translateX(-50%) translateY(0) scale(1)}}
@keyframes jumpBodyV30{0%,15%,100%{transform:rotate(0) scale(1)}25%{transform:rotate(-2deg) scale(1.04,.92)}46%,62%{transform:rotate(2deg) scale(.96,1.08)}88%{transform:scale(1.05,.92)}}
@keyframes jumpHeadV30{0%,18%,100%{transform:translateY(0) rotate(0)}28%{transform:translateY(4px) rotate(-3deg)}48%{transform:translateY(-2px) rotate(3deg)}78%{transform:translateY(2px) rotate(-1deg)}90%{transform:translateY(4px)}}
@keyframes jumpFrontLeftV30{0%,22%,100%{transform:none}38%,68%{transform:translate(8px,-11px) rotate(13deg)}82%{transform:translate(3px,-5px) rotate(5deg)}}
@keyframes jumpFrontRightV30{0%,20%,100%{transform:none}36%,66%{transform:translate(-7px,-8px) rotate(-12deg)}80%{transform:translate(-2px,-3px)}}
@keyframes jumpHindLeftV30{0%,16%,100%{transform:none}25%{transform:translate(6px,4px) rotate(8deg)}46%,70%{transform:translate(-5px,-7px) rotate(-9deg)}}
@keyframes jumpHindRightV30{0%,16%,100%{transform:none}25%{transform:translate(-5px,5px) rotate(-8deg)}48%,69%{transform:translate(6px,-5px) rotate(10deg)}}
@keyframes jumpTailV30{0%,16%,100%{transform:rotate(3deg)}28%{transform:rotate(-9deg)}49%{transform:rotate(15deg) translateY(-3px)}72%{transform:rotate(7deg)}88%{transform:rotate(-4deg)}}
@keyframes jumpShadowV30{0%,18%,86%,100%{opacity:.17;transform:translateX(-50%) scale(1)}48%,64%{opacity:.07;transform:translateX(-50%) scale(.58)}}

@media (max-width:720px){
  .shelf{display:block;right:3%;bottom:22%;width:118px;height:12px;transform:scale(.86);transform-origin:right bottom}
  .shelf::before,.shelf::after{height:34px}
  .shelf .book{transform:scale(.82);transform-origin:bottom}
}
@media (max-width:420px){
  .shelf{right:2%;bottom:21%;transform:scale(.72)}
  .cat-stage[data-positioned="true"]{width:220px;height:270px}
}
@media (max-width:420px){.cat-stage[data-positioned="true"]{width:200px;height:260px}}
@media (prefers-reduced-motion:reduce){.cat-stage.is-fragment-avoiding .big-cat,.cat-stage.is-fragment-avoiding .cat-paw,.cat-stage.is-back-walking .big-cat,.cat-stage.is-back-walking .cat-head,.cat-stage.is-back-walking .cat-paw,.cat-stage.is-back-walking .cat-hind-paw,.cat-stage.is-back-walking .cat-tail,.cat-stage.is-toy-turning .big-cat{animation:none!important}}

/* v31.7: deeper eye outlines, larger catchlights, and a seam-only toy drop. */
.cat-stage[data-pose="jump"] .cat-paw.left{
  z-index:7;
  animation:jumpFrontLeftV31 2.05s ease-in-out 1 both;
}
.cat-stage[data-pose="jump"] .cat-paw.right{
  z-index:6;
  animation:jumpFrontRightV31 2.05s ease-in-out 1 both;
}
@keyframes jumpFrontLeftV31{
  0%,22%,100%{transform:translateX(0) rotate(0)}
  36%,66%{transform:translate(-10px,-12px) rotate(-9deg)}
  80%{transform:translate(-5px,-5px) rotate(-4deg)}
}
@keyframes jumpFrontRightV31{
  0%,20%,100%{transform:translateX(0) rotate(0)}
  34%,64%{transform:translate(10px,-10px) rotate(9deg)}
  78%{transform:translate(5px,-4px) rotate(4deg)}
}
.cat-eye{
  width:15px;
  height:20px;
  border:2px solid #34241e;
  background:#493128;
  box-shadow:0 1px 0 rgba(52,36,30,.18);
}
.cat-eye::after{
  width:4px;
  height:5px;
  top:2px;
  right:2px;
  background:#fffdf8;
  box-shadow:-2px 5px 0 -2px rgba(255,255,255,.82);
}
.cat-eye.left{left:35px}.cat-eye.right{right:35px}
.speech-bubble{display:none!important}

/* v30.1: state-safe hiding, preserved fur color and calmer autonomous room life. */
[hidden],.room-furniture[hidden],.room-decor[hidden],.toy-in-room[hidden]{display:none!important}

.cat-stage.is-fur-puffed .cat-body,
.cat-stage.is-fur-puffed .cat-head,
.cat-stage.is-fur-puffed .cat-ear,
.cat-stage.is-fur-puffed .cat-tail,
.cat-stage.is-fur-puffed .cat-paw,
.cat-stage.is-fur-puffed .cat-hind-paw{background-color:var(--pet-main)}

.floor-lamp,.floor-lamp .lamp-shade,.floor-lamp .lamp-post,.floor-lamp .lamp-base,.floor-lamp .lamp-glow{transition:filter 420ms ease,background 420ms ease,opacity 420ms ease,box-shadow 420ms ease}
.floor-lamp::after{content:"";position:absolute;z-index:0;left:50%;bottom:-12px;width:176px;height:58px;border-radius:50%;opacity:0;pointer-events:none;background:radial-gradient(ellipse,rgba(255,207,109,.34),rgba(255,207,109,0) 70%);filter:blur(3px);transform:translateX(-50%);transition:opacity 420ms ease,background 420ms ease}
.floor-lamp:not(.is-on) .lamp-glow{opacity:0;filter:none}
.room:not(.is-curtains-open) .floor-lamp:not(.is-on){filter:brightness(.76) saturate(.72)}
.room:not(.is-curtains-open) .floor-lamp:not(.is-on) .lamp-shade{background:linear-gradient(160deg,#d8c49f,#b69b72);box-shadow:inset 0 -9px rgba(101,75,54,.16)}
.room:not(.is-curtains-open) .floor-lamp:not(.is-on) .lamp-post{background:#9d7c61}
.room:not(.is-curtains-open) .floor-lamp:not(.is-on) .lamp-base{background:#ad8b6b}
.room:not(.is-curtains-open) .floor-lamp.is-on{filter:brightness(1.03) saturate(1)}
.room:not(.is-curtains-open) .floor-lamp.is-on .lamp-shade{background:linear-gradient(160deg,#fff1bd,#f1bd61);filter:none;box-shadow:inset 0 -9px rgba(178,112,38,.1),0 0 14px rgba(255,214,118,.72),0 0 30px rgba(255,205,98,.32)}
.room:not(.is-curtains-open) .floor-lamp.is-on .lamp-post{background:#c99a65}
.room:not(.is-curtains-open) .floor-lamp.is-on .lamp-base{background:#d7ab79;box-shadow:0 7px 7px rgba(72,52,41,.15),0 0 12px rgba(255,206,110,.2)}
.room:not(.is-curtains-open) .floor-lamp.is-on .lamp-glow{opacity:.96;filter:none;background:radial-gradient(circle,rgba(255,235,174,.7) 0 18%,rgba(255,211,113,.34) 42%,rgba(255,201,92,0) 73%)}
.room:not(.is-curtains-open) .floor-lamp.is-on::after{opacity:.78}
.room.is-curtains-open .floor-lamp:not(.is-on){filter:brightness(.93) saturate(.78)}
.room.is-curtains-open .floor-lamp:not(.is-on) .lamp-shade{background:linear-gradient(160deg,#eee0c3,#cfb486);filter:none;box-shadow:inset 0 -9px rgba(119,85,55,.12)}
.room.is-curtains-open .floor-lamp:not(.is-on) .lamp-post{background:#ba906b}
.room.is-curtains-open .floor-lamp:not(.is-on) .lamp-base{background:#c79f78}
.room.is-curtains-open .floor-lamp.is-on{filter:brightness(1.01) saturate(.98)}
.room.is-curtains-open .floor-lamp.is-on .lamp-shade{background:linear-gradient(160deg,#ffe6a5,#ebbc67);filter:none;box-shadow:inset 0 -9px rgba(175,119,62,.1),0 0 13px rgba(255,218,137,.43)}
.room.is-curtains-open .floor-lamp.is-on .lamp-glow{opacity:.5;filter:none;background:radial-gradient(circle,rgba(255,231,163,.52),rgba(255,213,122,.2) 43%,rgba(255,213,122,0) 72%)}
.room.is-curtains-open .floor-lamp.is-on::after{opacity:.34}

/* v31.3: open curtains use cloudy daylight during rain instead of sunny room light. */
.room.weather-rain.is-curtains-open>:is(.wall,.floor,.rug,.sofa,.bed,.plant,.cat-tree-in-room,.cat-stage,.toy-in-room,.water-fountain){filter:brightness(.91) saturate(.84)}
.room.weather-rain.is-curtains-open.is-lamp-on>:is(.wall,.floor,.rug,.sofa,.bed,.plant,.cat-tree-in-room,.cat-stage,.toy-in-room,.water-fountain){filter:brightness(.96) saturate(.9) sepia(.025)}
.room.weather-rain.is-curtains-open .room-decor,.room.weather-rain.is-curtains-open .decor-fragment-pile{filter:brightness(.9) saturate(.82) drop-shadow(0 7px 5px rgba(47,48,54,.16))}
.room.weather-rain.is-curtains-open.is-lamp-on .room-decor,.room.weather-rain.is-curtains-open.is-lamp-on .decor-fragment-pile{filter:brightness(.96) saturate(.88) sepia(.04) drop-shadow(0 7px 5px rgba(67,54,47,.16))}
.room.weather-rain.is-curtains-open .floor::after{opacity:.24;background:linear-gradient(118deg,rgba(205,218,215,.24),transparent 54%),radial-gradient(ellipse at 18% 20%,rgba(236,241,239,.2),transparent 46%)}
.room.weather-rain.is-curtains-open .window{box-shadow:inset 0 0 0 3px #927e69,0 10px 0 #947e68,0 17px 34px rgba(105,125,134,.16)}
.room.weather-rain.is-curtains-open .sun-catcher span{box-shadow:inset 0 0 0 9px rgba(225,229,226,.48),0 0 9px rgba(164,178,179,.28)}
.room.weather-rain.is-curtains-open .floor-lamp:not(.is-on){filter:brightness(.86) saturate(.72)}

.room-decor.is-toppled{transform:translate(-50%,-100%) rotate(11deg) translateY(3px) scale(var(--item-depth-scale,1));transform-origin:50% 100%}
.room-decor.is-being-toppled{animation:decorToppleV301 620ms cubic-bezier(.2,.78,.2,1) both!important}
@keyframes decorToppleV301{0%{transform:translate(-50%,-100%) rotate(0) scale(var(--item-depth-scale,1))}58%{transform:translate(-50%,-100%) rotate(17deg) translateY(5px) scale(var(--item-depth-scale,1))}78%{transform:translate(-50%,-100%) rotate(8deg) translateY(2px) scale(var(--item-depth-scale,1))}100%{transform:translate(-50%,-100%) rotate(11deg) translateY(3px) scale(var(--item-depth-scale,1))}}
.cat-stage.is-sniffing .cat-head{animation:roomSniffV301 .72s ease-in-out infinite alternate!important}
.cat-stage.is-sniffing .cat-ear.left{animation:sniffEarLeftV301 .9s ease-in-out infinite alternate!important}.cat-stage.is-sniffing .cat-ear.right{animation:sniffEarRightV301 .9s ease-in-out infinite alternate-reverse!important}
.cat-stage.is-startled-by-decor .big-cat{animation:decorStartleV301 .7s cubic-bezier(.2,.78,.2,1) both!important}
.cat-stage.is-drinking .big-cat{animation:drinkBodyV311 3.2s ease-in-out both!important}
.cat-stage.is-drinking .cat-body{animation:drinkChestV311 3.2s ease-in-out both!important}
.cat-stage.is-drinking .cat-head{animation:drinkHeadV311 3.2s ease-in-out both!important;transform-origin:50% 85%}
.cat-stage.is-drinking .cat-paw.left{left:69px;transform:rotate(-2deg)}.cat-stage.is-drinking .cat-paw.right{right:69px;transform:rotate(2deg)}
.cat-stage.is-drinking .cat-paw::before{height:52px;top:-47px}
.cat-stage.is-drinking .cat-tail{animation:drinkTailV311 3.2s ease-in-out both!important}
.cat-stage.is-drinking .cat-mouth.left::after{content:"";position:absolute;z-index:8;left:12px;top:8px;width:8px;height:13px;border:2px solid #7c4b4a;border-top:0;border-radius:0 0 70% 70%;background:#e79ba9;opacity:0;transform:translateX(-50%) scaleY(.2);animation:drinkTongueV311 .42s ease-in-out .82s 5}
.cat-stage.is-drinking .cat-mouth.right::after{display:none}
.cat-stage.is-drinking.drink-facing-right .big-cat{animation-name:drinkBodyRightV311!important}
.cat-stage.is-drinking.drink-facing-right .cat-head{animation-name:drinkHeadRightV311!important}
.cat-stage.is-furniture-fall .big-cat{animation:furnitureFallV310 .62s cubic-bezier(.2,.78,.2,1) both!important}
.room-furniture.is-shaking-furniture{animation:furnitureShakeV310 .34s ease-in-out both}
@keyframes roomSniffV301{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(7px) rotate(3deg)}}
@keyframes sniffEarLeftV301{to{transform:rotate(-22deg)}}@keyframes sniffEarRightV301{to{transform:scaleX(-1) rotate(-13deg)}}
@keyframes decorStartleV301{0%{transform:translateX(-50%)}30%{transform:translateX(-55%) translateY(-7px) rotate(-3deg)}62%{transform:translateX(-60%) translateY(-2px) rotate(2deg)}100%{transform:translateX(-50%)}}
@keyframes drinkLeanV310{0%,100%{transform:translateX(-50%)}35%,65%{transform:translateX(-57%) translateY(6px) rotate(-3deg)}}
@keyframes drinkBodyV311{0%,10%{transform:translateX(-50%)}22%,80%{transform:translateX(-54%) translateY(4px) rotate(-1.5deg)}92%,100%{transform:translateX(-50%) translateY(0)}}
@keyframes drinkBodyRightV311{0%,10%{transform:translateX(-50%)}22%,80%{transform:translateX(-46%) translateY(4px) rotate(1.5deg)}92%,100%{transform:translateX(-50%) translateY(0)}}
@keyframes drinkChestV311{0%,100%{transform:none}20%,82%{transform:scaleY(.96) translateY(3px)}}
@keyframes drinkHeadV311{0%,12%{transform:translateY(0) rotate(0)}22%{transform:translateY(18px) rotate(-7deg)}29%{transform:translateY(21px) rotate(-8deg)}35%{transform:translateY(17px) rotate(-6deg)}41%{transform:translateY(21px) rotate(-8deg)}47%{transform:translateY(17px) rotate(-6deg)}53%{transform:translateY(21px) rotate(-8deg)}59%{transform:translateY(17px) rotate(-6deg)}65%{transform:translateY(21px) rotate(-8deg)}74%{transform:translateY(17px) rotate(-6deg)}84%{transform:translateY(5px) rotate(-1deg)}92%,100%{transform:translateY(0) rotate(0)}}
@keyframes drinkHeadRightV311{0%,12%{transform:translateY(0) rotate(0)}22%{transform:translateY(18px) rotate(7deg)}29%{transform:translateY(21px) rotate(8deg)}35%{transform:translateY(17px) rotate(6deg)}41%{transform:translateY(21px) rotate(8deg)}47%{transform:translateY(17px) rotate(6deg)}53%{transform:translateY(21px) rotate(8deg)}59%{transform:translateY(17px) rotate(6deg)}65%{transform:translateY(21px) rotate(8deg)}74%{transform:translateY(17px) rotate(6deg)}84%{transform:translateY(5px) rotate(1deg)}92%,100%{transform:translateY(0) rotate(0)}}
@keyframes drinkTongueV311{0%,100%{opacity:0;transform:translateX(-50%) scaleY(.15)}42%,68%{opacity:1;transform:translateX(-50%) translateY(5px) scaleY(1)}}
@keyframes drinkTailV311{0%,100%{transform:rotate(-7deg)}35%{transform:rotate(3deg)}68%{transform:rotate(-1deg)}}
@keyframes furnitureFallV310{0%{transform:translateX(-50%) translateY(-9px)}55%{transform:translateX(-50%) translateY(7px) rotate(-3deg)}100%{transform:translateX(-50%) translateY(0)}}
@keyframes furnitureShakeV310{0%,100%{transform:translate(calc(var(--item-x, 50vw) - 50%),calc(var(--item-lift, 0px) * -1)) scale(var(--furniture-scale))}35%{transform:translate(calc(var(--item-x, 50vw) - 50%),calc(var(--item-lift, 0px) * -1)) translateX(-4px) rotate(-1deg) scale(var(--furniture-scale))}70%{transform:translate(calc(var(--item-x, 50vw) - 50%),calc(var(--item-lift, 0px) * -1)) translateX(4px) rotate(1deg) scale(var(--furniture-scale))}}

@media (prefers-reduced-motion:reduce){.room-decor.is-being-toppled,.cat-stage.is-sniffing .cat-head,.cat-stage.is-sniffing .cat-ear,.cat-stage.is-startled-by-decor .big-cat{animation:none!important}}

/* v31.1: keep the pet status and affection meter in the room's upper information area. */
.pet-status{
  top:16px;
  right:auto;
  bottom:auto;
  left:24px;
  max-width:min(330px,calc(100% - 48px));
}
@media (max-width:720px){
  .pet-status{top:10px;left:10px;max-width:calc(100% - 20px);padding:9px 10px;gap:12px}
  .pet-title small{font-size:9px}
  .mood-meter>span{width:64px}
  .emotion-alert,.anger-alert,.dizzy-alert{top:76px}
}
@media (max-width:420px){
  .pet-status{display:flex;top:7px;left:7px;right:7px;max-width:none;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:14px}
  .pet-title{column-gap:5px}
  .pet-title strong{font-size:11px}
  .pet-title small{font-size:8px}
  .mood-meter{gap:4px}
  .mood-meter svg{width:14px;height:14px}
  .mood-meter>span{width:48px;height:7px}
  .mood-meter strong{display:block;min-width:18px;font-size:12px}
  .emotion-alert,.anger-alert,.dizzy-alert{top:62px}
}

/* v31.2: five concrete daily tasks remain readable in the scrolling drawer. */
.task-copy{min-width:0}
.task-copy .task-description{margin:3px 0;color:#78675f;line-height:1.45}
.task-copy .task-meta{margin:0 0 7px;color:#9a887e;line-height:1.4}
.claim-button{height:44px}
@media (max-width:420px){
  .task-card{grid-template-columns:42px minmax(0,1fr) auto;gap:8px;padding:10px}
  .task-icon{width:42px;height:42px}
  .claim-button{min-width:58px;padding:0 8px}
}

/* v31.0: the stored food bowl follows the pointer while it is being put aside. */
.feeding-bowl{transform:translate(calc(-50% + var(--bowl-drag-x, 0px)),var(--bowl-drag-y, 0px));touch-action:none}
.feeding-bowl.is-dragging{z-index:12;cursor:grabbing;filter:brightness(1.04) saturate(1.02);transition:none}
@media (max-width:560px){.feeding-bowl{transform:translate(calc(-50% + var(--bowl-drag-x, 0px)),var(--bowl-drag-y, 0px)) scale(.82);transform-origin:bottom center}}

/* v31.5: an unlit lamp stays unmistakably honey-yellow, never grey or glowing. */
.room .floor-lamp:not(.is-on){filter:brightness(.94) saturate(1)!important}
.room .floor-lamp:not(.is-on) .lamp-shade{
  background:linear-gradient(160deg,#f4d47f,#d5a650)!important;
  filter:none!important;
  box-shadow:inset 0 -9px rgba(132,88,37,.15)!important;
}
.room .floor-lamp:not(.is-on) .lamp-post{background:#bc8c5c!important}
.room .floor-lamp:not(.is-on) .lamp-base{
  background:#c99a68!important;
  box-shadow:0 7px 7px rgba(72,52,41,.15)!important;
}
.room .floor-lamp:not(.is-on) .lamp-glow{opacity:0!important;background:transparent!important;filter:none!important}
.room .floor-lamp:not(.is-on)::after{opacity:0!important}
.room:not(.is-curtains-open) .floor-lamp:not(.is-on){filter:brightness(.76) saturate(1)!important}
.room.weather-rain.is-curtains-open .floor-lamp:not(.is-on){filter:brightness(.84) saturate(1)!important}
.room.world-night.is-curtains-open .floor-lamp:not(.is-on){filter:brightness(.7) saturate(1)!important}

/* v31.13: a collected rescue star stays inside the bottle instead of flashing back. */
.rescue-star.is-collected{visibility:hidden!important;opacity:0!important;pointer-events:none!important;animation:none!important;transform:scale(.35)!important}
.rescue-drift-bottle.is-filled>i{background:rgba(243,197,82,.42);box-shadow:0 0 26px rgba(241,195,76,.62)}

/* v31.14: the drinking tongue grows directly from the mouth and follows the
   head's lean.  Mirror it when the fountain is on Puffles' right side. */
.cat-stage.is-drinking .cat-mouth.left::after,
.cat-stage.is-drinking .cat-mouth.right::after{
  content:"";
  position:absolute;
  z-index:8;
  top:6px;
  left:14px;
  width:8px;
  height:15px;
  border:2px solid #7c4b4a;
  border-top:0;
  border-radius:0 0 70% 70%;
  background:#e79ba9;
  box-shadow:inset 2px 0 rgba(255,235,240,.42);
  opacity:0;
  transform:translateX(-50%) scaleY(.12);
  transform-origin:top center;
  animation:drinkTongueV314 .42s ease-in-out .82s 5;
}
.cat-stage.is-drinking .cat-mouth.right::after{display:none}
.cat-stage.is-drinking.drink-facing-right .cat-mouth.left::after{display:none}
.cat-stage.is-drinking.drink-facing-right .cat-mouth.right::after{
  display:block;
  left:auto;
  right:1px;
}
@keyframes drinkTongueV314{
  0%,16%{opacity:0;transform:translateX(-50%) scaleY(.12)}
  28%,64%{opacity:1;transform:translateX(-50%) translateY(1px) scaleY(1)}
  78%{opacity:.82;transform:translateX(-50%) translateY(3px) scaleY(.82)}
  100%{opacity:0;transform:translateX(-50%) translateY(4px) scaleY(.12)}
}

/* v31.12: free food-box dragging, clearer fountain water, and release inertia. */
.food-box{
  transform:translate(var(--food-box-x,0),var(--food-box-y,0)) rotate(-7deg);
  will-change:transform;
}
.food-box.is-shaking{
  animation:none;
  cursor:grabbing;
  filter:brightness(1.035) saturate(1.04);
  transition:none;
}
.food-box.just-shook{animation:foodBoxDropV312 .46s ease-out}
.shake-dust{transform:translate(var(--food-box-x,0),var(--food-box-y,0));pointer-events:none}
@keyframes foodBoxDropV312{
  0%{transform:translate(var(--food-box-x,0),var(--food-box-y,0)) rotate(-7deg)}
  48%{transform:translate(var(--food-box-x,0),calc(var(--food-box-y,0) + 7px)) rotate(-1deg)}
  100%{transform:translate(var(--food-box-x,0),var(--food-box-y,0)) rotate(-7deg)}
}

.water-fountain .fountain-water{
  z-index:4;
  left:37px;
  top:18px;
  width:58px;
  height:51px;
  display:block;
  overflow:visible;
  filter:drop-shadow(0 1px 2px rgba(78,162,178,.32));
}
.water-fountain .fountain-water::before{
  content:"";
  position:absolute;
  left:25px;
  top:0;
  width:9px;
  height:37px;
  border-radius:50% 50% 45% 45%;
  background:linear-gradient(90deg,rgba(205,249,255,.45),#dffbff 42%,#8fd9e6 76%,rgba(110,194,209,.36));
  box-shadow:inset 2px 0 rgba(255,255,255,.72),0 0 8px rgba(175,239,247,.72);
  transform-origin:50% 0;
  animation:fountainStreamV312 1.15s ease-in-out infinite alternate;
}
.water-fountain .fountain-water::after{
  content:"";
  position:absolute;
  left:10px;
  right:8px;
  bottom:0;
  height:13px;
  border:3px solid rgba(220,250,255,.86);
  border-left-color:transparent;
  border-right-color:transparent;
  border-radius:50%;
  opacity:.9;
  animation:fountainRippleV312 1.45s ease-out infinite;
}
.water-fountain .fountain-water i{
  position:absolute;
  width:7px;
  height:10px;
  border-radius:55% 45% 58% 42%;
  background:linear-gradient(145deg,#f0fdff,#8dd9e5);
  box-shadow:inset 2px 1px rgba(255,255,255,.82),0 0 6px rgba(164,232,241,.78);
  animation:fountainDropV312 1.35s cubic-bezier(.32,.08,.7,.52) infinite;
}
.water-fountain .fountain-water i:nth-child(1){left:11px;top:8px;animation-delay:-.2s}
.water-fountain .fountain-water i:nth-child(2){left:40px;top:11px;animation-delay:-.72s}
.water-fountain .fountain-water i:nth-child(3){left:30px;top:3px;animation-delay:-1.08s}
@keyframes fountainStreamV312{from{transform:scaleX(.88) skewX(-2deg);opacity:.86}to{transform:scaleX(1.08) skewX(2deg);opacity:1}}
@keyframes fountainDropV312{0%{transform:translateY(0) scale(.72);opacity:0}20%{opacity:1}82%{opacity:.9}100%{transform:translateY(34px) scale(.92);opacity:0}}
@keyframes fountainRippleV312{0%{transform:scale(.55);opacity:.9}75%,100%{transform:scale(1.08);opacity:0}}

.toy-in-room.is-inertia-flying,.cat-stage.is-inertia-flying{transition:none!important;will-change:left,top,transform}
.cat-stage.is-inertia-flying .big-cat{animation:heldStruggle .5s ease-in-out infinite!important}

@media (max-width:560px){
  .food-box{transform:translate(var(--food-box-x,0),var(--food-box-y,0)) rotate(-7deg) scale(.82);transform-origin:top left}
  .food-box.just-shook{animation:none}
}
@media (prefers-reduced-motion:reduce){
  .water-fountain .fountain-water::before,.water-fountain .fountain-water::after,.water-fountain .fountain-water i{animation:none!important}
}
/* v31.29 stable illumination, continuous tail, and gradual weather */
.room [data-bottle-id].has-captured-starlight:not([hidden]){display:block!important;visibility:visible!important;opacity:1!important}
.room:not(.is-room-dark) [data-decor="starBottle"].has-captured-starlight,.room:not(.is-room-dark) [data-decor="roundBottle"].has-captured-starlight{filter:drop-shadow(0 0 4px rgba(255,238,155,.5)) brightness(1.03)!important}
.room.is-room-dark .food-bowl-in-room,.room.is-room-dark .water-fountain{filter:brightness(.78) saturate(.86)!important;opacity:.95!important}.room.is-room-dark .water-fountain .fountain-water{filter:brightness(.9) saturate(.92)!important;opacity:.9!important}
.cat-stage .cat-tail{right:-1px!important;bottom:17px!important;width:92px!important;height:72px!important;overflow:visible!important}
.cat-stage .cat-tail::before{content:""!important;position:absolute!important;left:1px!important;bottom:1px!important;width:82px!important;height:61px!important;box-sizing:border-box!important;border:14px solid var(--pet-main)!important;border-left-color:transparent!important;border-bottom-color:transparent!important;border-radius:20% 92% 88% 0!important;background:transparent!important;filter:drop-shadow(0 -3px 0 var(--dark-line)) drop-shadow(3px 0 0 var(--dark-line)) drop-shadow(-1px 2px 0 var(--dark-line))!important;transform-origin:8px 52px!important;animation:pufflesSingleTailSway 2.5s ease-in-out infinite!important}
.cat-stage .cat-tail::after{content:none!important;display:none!important}

/* v31.42: softly translucent, dimensional glass treatment for UI controls.
   Scene objects stay untouched even when their semantic element is a button. */
:is(
  .primary-button,
  .secondary-button,
  .danger-button,
  .secret-button,
  .header-pill,
  .round-button,
  .care-button,
  .buy-meteor-button,
  .rescue-actions > button,
  .emotion-alert > button,
  .tidy-room-banner button,
  .dock-button,
  .item-action,
  .claim-button,
  .event-reward button,
  .chat-form > button
){
  position:relative;
  isolation:isolate;
  border:1px solid rgba(255,255,255,.58);
  opacity:.96;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.82),
    inset 0 -3px 0 rgba(87,54,42,.09),
    0 7px 15px rgba(76,52,42,.14),
    0 1px 2px rgba(76,52,42,.1);
  -webkit-backdrop-filter:blur(9px) saturate(1.12);
  backdrop-filter:blur(9px) saturate(1.12);
  transition:transform 170ms cubic-bezier(.2,.78,.2,1),box-shadow 170ms ease,filter 170ms ease,opacity 170ms ease;
}
:is(
  .primary-button,
  .secondary-button,
  .danger-button,
  .secret-button,
  .header-pill,
  .round-button,
  .care-button,
  .buy-meteor-button,
  .rescue-actions > button,
  .emotion-alert > button,
  .tidy-room-banner button,
  .dock-button,
  .item-action,
  .claim-button,
  .event-reward button,
  .chat-form > button
)::before{
  content:"";
  position:absolute;
  z-index:0;
  left:2px;
  right:2px;
  top:2px;
  height:46%;
  border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.68),rgba(255,255,255,.08));
  opacity:.72;
  pointer-events:none;
}
:is(
  .primary-button,
  .secondary-button,
  .danger-button,
  .secret-button,
  .header-pill,
  .round-button,
  .care-button,
  .buy-meteor-button,
  .rescue-actions > button,
  .emotion-alert > button,
  .tidy-room-banner button,
  .dock-button,
  .item-action,
  .claim-button,
  .event-reward button,
  .chat-form > button
):hover:not(:disabled){
  opacity:1;
  filter:brightness(1.035) saturate(1.03);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.92),
    inset 0 -3px 0 rgba(87,54,42,.08),
    0 10px 20px rgba(76,52,42,.17),
    0 2px 3px rgba(76,52,42,.09);
}
:is(
  .primary-button,
  .secondary-button,
  .danger-button,
  .secret-button,
  .header-pill,
  .round-button,
  .care-button,
  .buy-meteor-button,
  .rescue-actions > button,
  .emotion-alert > button,
  .tidy-room-banner button,
  .dock-button,
  .item-action,
  .claim-button,
  .event-reward button,
  .chat-form > button
):active:not(:disabled){
  transform:translateY(1px) scale(.97);
  filter:brightness(.98);
  box-shadow:
    inset 0 3px 5px rgba(82,51,39,.13),
    inset 0 1px 0 rgba(255,255,255,.5),
    0 2px 5px rgba(76,52,42,.12);
}
:is(
  .primary-button,
  .secondary-button,
  .danger-button,
  .secret-button,
  .header-pill,
  .round-button,
  .care-button,
  .buy-meteor-button,
  .rescue-actions > button,
  .emotion-alert > button,
  .tidy-room-banner button,
  .dock-button,
  .item-action,
  .claim-button,
  .event-reward button,
  .chat-form > button
):disabled::before{opacity:.34}
.dock-button{background-color:rgba(255,255,255,.34)}
@media (prefers-reduced-motion:reduce){
  :is(
    .primary-button,.secondary-button,.danger-button,.secret-button,.header-pill,.round-button,
    .care-button,.buy-meteor-button,.rescue-actions > button,.emotion-alert > button,
    .tidy-room-banner button,.dock-button,.item-action,.claim-button,.event-reward button,.chat-form > button
  ){transition:none!important}
}

/* v31.41: a deliberately hard cabinet shake may dislodge one shelf item. */
.room .is-cabinet-falling{
  transition:none!important;
  will-change:left,top,transform;
  pointer-events:none;
}
.room .just-fell-from-cabinet{animation:cabinetItemSettledV3141 .4s ease-out both}
@keyframes cabinetItemSettledV3141{
  0%{opacity:.9;filter:brightness(1.1)}
  48%{opacity:1;filter:brightness(.97)}
  100%{opacity:1}
}
@media(prefers-reduced-motion:reduce){.room .just-fell-from-cabinet{animation:none!important}}

/* v31.54: tactile bathroom layout. Bathroom objects use their own saved
   coordinates so the mature home-room physics and the cat silhouette stay
   unchanged. */
#bathroomScene [data-bathroom-movable]{
  touch-action:none;
  user-select:none;
  cursor:grab;
  transition:left .32s cubic-bezier(.2,.78,.2,1),top .32s cubic-bezier(.2,.78,.2,1),transform .32s cubic-bezier(.2,.78,.2,1),filter .25s ease;
}
#bathroomScene [data-bathroom-movable].is-layout-ready{
  left:var(--bath-x)!important;
  right:auto!important;
  top:var(--bath-y)!important;
  bottom:auto!important;
  transform:translate(-50%,-50%) scale(var(--bath-responsive-scale,1))!important;
  transform-origin:50% 50%!important;
}
#bathroomScene [data-bathroom-movable].is-bath-dragging{
  z-index:75!important;
  cursor:grabbing;
  transition:none!important;
  filter:drop-shadow(0 17px 13px rgba(74,53,44,.22));
}
.room.is-bathroom .cat-stage[data-positioned="true"]{
  left:var(--bath-cat-x,52%)!important;
  right:auto!important;
  top:var(--bath-cat-y,92%)!important;
  bottom:auto!important;
  cursor:grab;
  transform:translate(-50%,-100%) scale(var(--cat-scale,.9))!important;
  transform-origin:50% 100%!important;
  transition:left .42s cubic-bezier(.2,.78,.2,1),top .42s cubic-bezier(.2,.78,.2,1),filter .25s ease!important;
}
.room.is-bathroom .cat-stage.is-bath-dragging[data-positioned="true"]{cursor:grabbing;transition:none!important}

.bathroom-vent{
  width:148px;
  height:64px;
  padding:12px 18px 9px;
  color:inherit;
  cursor:pointer;
  appearance:none;
  transition:filter .26s ease,transform .18s ease,box-shadow .26s ease;
}
.bathroom-vent::after{content:"";position:absolute;left:18px;right:18px;bottom:-13px;height:18px;opacity:.65;background:repeating-linear-gradient(90deg,transparent 0 13px,rgba(171,215,226,.62) 14px 17px,transparent 18px 29px);filter:blur(1px);animation:bathVentBreeze 1.7s ease-in-out infinite alternate}
.bathroom-vent:hover{transform:translateY(-2px)}
.bathroom-vent.is-off{filter:brightness(.88) saturate(.64);box-shadow:inset 0 -4px rgba(174,163,154,.07),0 4px 9px rgba(99,76,64,.06)}
.bathroom-vent.is-off::after{opacity:0;animation:none}
.bathroom-vent.is-off i{background:#d4cfca}

.bathroom-cabinet{perspective:700px;overflow:visible}
.bathroom-cabinet-inside{position:absolute;z-index:1;left:8px;right:8px;top:15px;bottom:47px;overflow:hidden;border:2px solid #d7c5b6;border-radius:13px;background:linear-gradient(90deg,#c8ab91,#f2e3d2 12%,#e5d0ba 88%,#ba987c);box-shadow:inset 0 8px 15px rgba(91,61,44,.14)}
.bathroom-cabinet-inside i{position:absolute;left:7px;right:7px;height:5px;border-radius:5px;background:#b88d6c;box-shadow:0 3px rgba(255,255,255,.3)}
.bathroom-cabinet-inside i:first-child{top:38%}.bathroom-cabinet-inside i:nth-child(2){top:72%}
.bathroom-cabinet-inside small{position:absolute;left:50%;top:49%;width:92%;color:#846956;font-size:8px;font-weight:850;text-align:center;transform:translate(-50%,-50%)}
.bathroom-cabinet-toggle{position:absolute;z-index:4;inset:10px 2px 43px;padding:0;border:0;cursor:pointer;background:transparent;perspective:700px}
.bathroom-cabinet-door{top:4px;bottom:3px;transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .3s ease}
.bathroom-cabinet-door.left{left:2px;transform-origin:0 50%}.bathroom-cabinet-door.right{right:2px;transform-origin:100% 50%}
.bathroom-cabinet.is-open .bathroom-cabinet-door.left{transform:rotateY(-72deg) translateX(-3px);filter:brightness(.93)}
.bathroom-cabinet.is-open .bathroom-cabinet-door.right{transform:rotateY(72deg) translateX(3px);filter:brightness(.93)}
.stored-bathroom-dryer{position:absolute;z-index:6;left:50%;top:48%;width:67px;height:48px;padding:0;border:0;cursor:pointer;background:transparent;transform:translate(-50%,-50%);filter:drop-shadow(0 5px 4px rgba(86,55,42,.17))}
.stored-bathroom-dryer i{position:absolute;left:4px;top:3px;width:45px;height:29px;border:2px solid #a97559;border-radius:15px 18px 13px 12px;background:linear-gradient(145deg,#ffd2a6,#efa66e)}
.stored-bathroom-dryer i::after{content:"";position:absolute;right:-15px;top:7px;width:16px;height:15px;border:2px solid #a97559;border-left:0;border-radius:0 8px 8px 0;background:#ffc18d}
.stored-bathroom-dryer span{position:absolute;left:20px;top:28px;width:13px;height:19px;border:2px solid #a97559;border-radius:0 0 8px 8px;background:#efa66e;transform:rotate(11deg)}

.bathroom-dryer .dryer-breeze{opacity:0;transform:scaleX(.45);transform-origin:left center;transition:opacity .2s ease,transform .25s ease}
.bathroom-dryer.is-blowing .dryer-breeze{opacity:1;transform:scaleX(1)}
.bathroom-dryer:not(.is-blowing) .dryer-shell b{background:#d49d72;box-shadow:none}
.cat-stage.is-being-dried .cat-ear.left{animation:bathDryEarLeft .36s ease-in-out infinite alternate!important}
.cat-stage.is-being-dried .cat-ear.right{animation:bathDryEarRight .36s ease-in-out -.18s infinite alternate!important}
.cat-stage.is-being-dried .cat-tail{animation:bathDryTail .62s ease-in-out infinite alternate!important}
.cat-stage.is-being-dried .body-patch{animation:bathDryPatch .48s ease-in-out infinite alternate!important}

.faucet-button{display:block;min-width:44px;min-height:44px;width:44px;height:44px;left:-6px;top:20px;padding:0;border:3px solid #d2c8ba;border-radius:16px;cursor:pointer;appearance:none;background:radial-gradient(ellipse at 50% 43%,#f8dea0 0 48%,#d8b86d 52% 60%,transparent 63%);box-shadow:inset 0 3px rgba(255,255,255,.55),0 3px 5px rgba(92,70,52,.1)}
.faucet-button{pointer-events:none}
.bathroom-faucet-hit-target{position:absolute;z-index:69;min-width:44px;min-height:44px;padding:0;border:0;border-radius:16px;cursor:pointer;background:transparent;transform:translate(-50%,-50%);touch-action:manipulation}
.bathroom-faucet-hit-target:focus-visible{outline:4px solid rgba(75,136,172,.46);outline-offset:3px;background:rgba(255,255,255,.14)}
.room>.home-litter-box{width:250px;min-width:250px;max-width:none;height:195px;min-height:195px;--furniture-scale:.74}
.room>.home-litter-box small{display:none}
@media(max-width:980px){.room>.home-litter-box{--furniture-scale:.67}}
@media(max-width:720px){.room>.home-litter-box{--furniture-scale:.58}}
@media(max-width:420px){.room>.home-litter-box{--furniture-scale:.5}}
.cat-bath.is-water-off .water-stream{opacity:0!important;animation:none}
.cat-bath.is-water-off .bath-water{filter:saturate(.62) brightness(1.04);opacity:.72}
.cat-bath.is-water-off .bath-water::after{animation-play-state:paused;opacity:.25}
.cat-bath.is-water-off .faucet-button{transform:translateY(3px);filter:saturate(.62)}

.litter-purple-cover{transform-origin:50% 100%;transition:transform .45s cubic-bezier(.2,.78,.2,1),opacity .32s ease}
.litter-box.is-cover-open .litter-purple-cover{transform:translateY(-29%) rotateX(-48deg);opacity:.67}
.litter-cover-toggle{position:absolute;z-index:10;left:8%;right:7%;top:0;height:64%;padding:0;border:0;border-radius:48% 48% 15px 15px;cursor:pointer;background:transparent}
.litter-room-toggle{position:absolute;z-index:12;right:4px;top:-14px;min-width:74px;min-height:32px;padding:5px 8px;border:1px solid rgba(255,255,255,.85);border-radius:12px;color:#685a67;cursor:pointer;background:linear-gradient(145deg,rgba(255,255,255,.91),rgba(222,211,236,.82));box-shadow:inset 0 1px #fff,0 5px 10px rgba(72,52,65,.13);font-size:8px;font-weight:900;white-space:nowrap}
.bathroom-litter-box[hidden],.bathroom-dryer[hidden],.stored-bathroom-dryer[hidden]{display:none!important}

.home-litter-box{
  position:absolute;
  width:250px;
  min-width:250px;
  max-width:none;
  height:195px;
  min-height:195px;
  --furniture-scale:.74;
  filter:drop-shadow(0 12px 10px rgba(77,59,58,.14));
}
.home-litter-box small{display:none}
.home-litter-box .litter-room-toggle{top:3px;right:2px}
.room.is-room-dark .home-litter-box{filter:brightness(.86) saturate(.9) drop-shadow(0 10px 8px rgba(60,48,48,.13))}
.home-litter-box.is-dragging{filter:drop-shadow(0 18px 12px rgba(67,45,35,.2))}

@keyframes bathVentBreeze{to{transform:translateY(5px);opacity:.35}}
@keyframes bathDryEarLeft{to{transform:rotate(-25deg) translateY(-2px)}}
@keyframes bathDryEarRight{to{transform:scaleX(-1) rotate(-25deg) translateY(-2px)}}
@keyframes bathDryTail{to{transform:rotate(10deg) translateY(-3px)}}
@keyframes bathDryPatch{to{transform:translateY(-2px) scale(1.02)}}

@media(max-width:980px){#bathroomScene [data-bathroom-movable]{--bath-responsive-scale:.88}.home-litter-box{--furniture-scale:.67}}
@media(max-width:720px){
  #bathroomScene [data-bathroom-movable]{--bath-responsive-scale:.69}
  .bathroom-vent{width:132px;height:58px;transform:scale(.78);transform-origin:right top}
  .home-litter-box{--furniture-scale:.58}
  .room.is-bathroom .cat-stage[data-positioned="true"]{--cat-scale:.72}
}
@media(max-width:420px){#bathroomScene [data-bathroom-movable]{--bath-responsive-scale:.57}.home-litter-box{--furniture-scale:.5}.room.is-bathroom .cat-stage[data-positioned="true"]{--cat-scale:.64}}
@media(orientation:landscape) and (max-height:500px) and (min-width:600px){#bathroomScene [data-bathroom-movable]{--bath-responsive-scale:.58}.room.is-bathroom .cat-stage[data-positioned="true"]{--cat-scale:.45}}
@media(prefers-reduced-motion:reduce){
  #bathroomScene [data-bathroom-movable],.room.is-bathroom .cat-stage[data-positioned="true"],.bathroom-cabinet-door,.litter-purple-cover,.bathroom-dryer .dryer-breeze{transition:none!important}
  .bathroom-vent::after,.cat-stage.is-being-dried .cat-ear,.cat-stage.is-being-dried .cat-tail,.cat-stage.is-being-dried .body-patch{animation:none!important}
}

/* v31.37: roomy independent net stars, depth-aware cabinet layering, and
   lighting that follows the rest of the room. Cat anatomy is unchanged. */
.room-decor-layer{z-index:auto}
.room-decor.star-net{pointer-events:none}
.room-decor.star-net .star-net-handle{pointer-events:auto}
.star-net-stars i{
  left:var(--net-star-x)!important;
  top:var(--net-star-y)!important;
  font-size:15px;
  animation:netStarWanderV3137 var(--net-duration,6s) cubic-bezier(.42,.08,.58,.94) var(--net-delay,0s) infinite!important;
  will-change:transform;
}
@keyframes netStarWanderV3137{
  0%,100%{transform:translate(var(--net-ax),var(--net-ay)) rotate(-10deg);opacity:.76}
  31%{transform:translate(var(--net-bx),var(--net-by)) rotate(12deg);opacity:1}
  67%{transform:translate(var(--net-cx),var(--net-cy)) rotate(-2deg);opacity:.88}
}
.room>.display-cabinet{
  transition:filter var(--room-light-transition),opacity var(--room-light-transition),transform 260ms cubic-bezier(.2,.78,.2,1)!important;
}
.room:not(.is-curtains-open):not(.is-lamp-on)>.display-cabinet{filter:brightness(.83) saturate(.88)}
.room.is-lamp-on:not(.is-curtains-open)>.display-cabinet{filter:brightness(.97) saturate(.96) sepia(.035)}
.room.is-curtains-open>.display-cabinet{filter:brightness(1.03) saturate(1.01)}
.room.weather-rain.is-curtains-open:not(.is-lamp-on)>.display-cabinet{filter:brightness(.9) saturate(.86)}
.room.world-night.is-curtains-open:not(.is-lamp-on)>.display-cabinet{filter:brightness(.84) saturate(.84)}
.room>.display-cabinet.is-dragging,.room>.display-cabinet.is-inertia-flying{filter:drop-shadow(0 18px 15px rgba(69,47,34,.2)) brightness(1.015)}
@media(prefers-reduced-motion:reduce){.star-net-stars i{animation:none!important;transform:none!important}}

/* v31.36: three-tier cabinet, star net, shared room-item inertia and clear
   object/cat layering. Cat anatomy and appearance are intentionally untouched. */
.display-cabinet{
  width:300px;height:360px;min-width:300px;min-height:360px;position:absolute;isolation:isolate;
  --furniture-scale:.78;
}
.display-cabinet::before{content:"";position:absolute;z-index:0;left:17px;right:17px;top:14px;bottom:18px;border:4px solid var(--dark-line);border-radius:28px 28px 18px 18px;background:linear-gradient(100deg,#c89564,#edc895 48%,#b77b50);box-shadow:inset 12px 0 rgba(255,244,211,.18),inset -10px 0 rgba(104,67,44,.09),0 12px 15px rgba(80,54,39,.13)}
.cabinet-crown{position:absolute;z-index:4;left:5px;right:5px;top:0;height:28px;border:4px solid var(--dark-line);border-radius:20px 20px 9px 9px;background:linear-gradient(#f0d39f,#cb9765);box-shadow:inset 0 5px rgba(255,250,223,.25)}
.cabinet-side{position:absolute;z-index:3;top:22px;bottom:16px;width:21px;border:3px solid var(--dark-line);background:linear-gradient(90deg,#a96f48,#d5a875);box-shadow:inset 4px 0 rgba(255,235,197,.2)}
.cabinet-side.left{left:16px;border-radius:13px 5px 5px 13px}.cabinet-side.right{right:16px;border-radius:5px 13px 13px 5px}
.display-cabinet-shelf{position:absolute;z-index:5;left:30px;right:30px;height:16px;border:3px solid var(--dark-line);border-radius:8px;background:linear-gradient(#efd4a4,#b77c50);box-shadow:0 9px 0 rgba(85,55,37,.11),inset 0 4px rgba(255,244,216,.3)}
.display-cabinet-shelf::before{content:"";position:absolute;left:5px;right:5px;bottom:14px;height:77px;border:2px solid rgba(104,71,48,.25);border-bottom:0;border-radius:10px 10px 0 0;background:linear-gradient(110deg,rgba(255,247,218,.2),rgba(255,255,255,.07));pointer-events:none}
.display-cabinet-shelf i{position:absolute;left:8%;right:8%;top:-5px;height:6px;border-radius:50%;background:rgba(255,244,209,.36)}
.display-cabinet-shelf.top{top:104px}.display-cabinet-shelf.middle{top:210px}.display-cabinet-shelf.bottom{top:316px}
.cabinet-foot{position:absolute;z-index:2;bottom:0;width:28px;height:29px;border:3px solid var(--dark-line);border-radius:8px 8px 14px 14px;background:#b77c50}.cabinet-foot.left{left:40px}.cabinet-foot.right{right:40px}
.display-cabinet.is-dragging{filter:drop-shadow(0 18px 15px rgba(69,47,34,.2))}
.preview-cabinet{position:relative;width:78px;height:92px;border:3px solid var(--dark-line);border-radius:13px 13px 8px 8px;background:linear-gradient(90deg,#bd8357,#e3bb84,#bd8357)}
.preview-cabinet i{position:absolute;left:7px;right:7px;height:7px;border:2px solid var(--dark-line);border-radius:4px;background:#eacb96}.preview-cabinet i:nth-child(1){top:22px}.preview-cabinet i:nth-child(2){top:48px}.preview-cabinet i:nth-child(3){top:74px}

.room-decor.star-net{width:146px;height:184px;filter:drop-shadow(0 8px 6px rgba(64,48,38,.14));transform:translate(-50%,-100%) scale(var(--item-depth-scale,1)) scale(var(--cabinet-item-scale,1));overflow:visible}
.star-net-handle{position:absolute;z-index:4;left:65px;top:68px;width:17px;height:116px;border:3px solid var(--dark-line);border-radius:9px;background:linear-gradient(90deg,#a86e45,#e0b477 48%,#9d623e);transform:rotate(-9deg);transform-origin:50% 0;cursor:grab;touch-action:none}
.star-net-handle::after{content:"";position:absolute;left:-6px;bottom:-3px;width:23px;height:30px;border:3px solid var(--dark-line);border-radius:11px;background:#c99058;box-shadow:inset 4px 3px rgba(255,222,168,.25)}
.star-net-hoop{position:absolute;z-index:3;left:13px;top:3px;width:120px;height:91px;border:7px solid #bd8957;border-radius:50%;box-shadow:0 0 calc(7px + 15px * var(--net-glow-level,0)) rgba(255,235,149,calc(.2 + .48 * var(--net-glow-level,0))),inset 0 0 15px rgba(255,244,185,calc(.08 + .3 * var(--net-glow-level,0)));background:rgba(219,239,238,.08);transform:rotate(-8deg);transition:box-shadow var(--room-light-transition),filter var(--room-light-transition)}
.star-net-mesh{position:absolute;inset:5px;border-radius:50%;opacity:.64;background:repeating-linear-gradient(34deg,transparent 0 10px,rgba(112,96,78,.38) 11px 12px),repeating-linear-gradient(146deg,transparent 0 10px,rgba(112,96,78,.34) 11px 12px);mask:radial-gradient(ellipse,#000 0 67%,transparent 70%)}
.star-net-stars{position:absolute;inset:9px;border-radius:50%;overflow:hidden;pointer-events:none}
.star-net-stars i{position:absolute;left:calc(17% + (var(--net-star-index) % 3) * 28%);top:calc(17% + (var(--net-star-index) % 2) * 38%);color:#fff3a6;font-style:normal;font-size:17px;text-shadow:0 0 6px #fff,0 0 13px #f5d76c;animation:netStarFloat 3.8s ease-in-out calc(var(--net-star-index) * -.57s) infinite alternate}
.star-net.is-catching-star .star-net-hoop{animation:netCatchSoft .52s cubic-bezier(.2,.78,.2,1)}
.room-decor.star-net.has-captured-starlight{filter:drop-shadow(0 0 calc(5px + 10px * var(--net-glow-level,0)) rgba(255,234,137,calc(.2 + .54 * var(--net-glow-level,0))))!important}
.movable-light.star-net-light{width:calc(155px + 75px * var(--net-light-level,0));height:calc(125px + 55px * var(--net-light-level,0));opacity:calc(.18 + .28 * var(--net-light-level,0))!important;background:radial-gradient(ellipse,rgba(255,242,170,.46),rgba(255,224,111,.12) 48%,transparent 73%);filter:blur(8px)}
.movable-light-layer.is-night-unlit .movable-light.star-net-light{opacity:calc(.3 + .36 * var(--net-light-level,0))!important;filter:blur(8px) brightness(1.14)}
.preview-star-net{position:relative;width:88px;height:91px}.preview-star-net i{position:absolute;left:6px;top:3px;width:66px;height:50px;border:5px solid #bd8957;border-radius:50%;background:repeating-linear-gradient(34deg,transparent 0 8px,rgba(112,96,78,.32) 9px 10px)}.preview-star-net b{position:absolute;left:52px;top:46px;width:9px;height:48px;border:3px solid var(--dark-line);border-radius:8px;background:#c99058;transform:rotate(-12deg)}
@keyframes netStarFloat{0%{transform:translate(-4px,3px) rotate(-8deg);opacity:.7}100%{transform:translate(5px,-5px) rotate(13deg);opacity:1}}
@keyframes netCatchSoft{0%,100%{transform:rotate(-8deg) scale(1)}45%{transform:rotate(-5deg) scale(1.08)}}

.room-decor.is-on-cabinet,.toy-in-room.is-on-cabinet,.food-bowl-in-room.is-on-cabinet{transform:translate(-50%,-100%) scale(var(--item-depth-scale,1)) scale(var(--cabinet-item-scale,1))!important;transform-origin:50% 100%!important}
.room-furniture.is-on-cabinet{transform:translate(calc(var(--item-x,50vw) - 50%),calc(var(--item-lift,0px) * -1)) scale(var(--furniture-scale,1)) scale(var(--depth-scale,1)) scale(var(--cabinet-furniture-scale,1))!important;transform-origin:50% 100%!important}
.room .is-dragging:not(.cat-stage),.room .is-inertia-flying:not(.cat-stage){z-index:44!important}
.room-furniture.is-inertia-flying,.room-decor.is-inertia-flying,.food-bowl-in-room.is-inertia-flying{transition:none!important;will-change:transform,left,top}
.cat-stage.is-making-way .big-cat{animation:catMakesWay .72s cubic-bezier(.2,.78,.2,1) both!important}
@keyframes catMakesWay{0%,100%{transform:translateX(-50%)}45%{transform:translateX(-50%) translateY(-4px) rotate(-2deg)}}
@media(max-width:720px){.display-cabinet{--furniture-scale:.62}.room-decor.star-net{width:124px;height:158px}.star-net-hoop{left:10px;width:101px;height:77px}.star-net-handle{left:55px;top:59px;height:99px}}
@media(prefers-reduced-motion:reduce){.star-net-stars i,.star-net.is-catching-star .star-net-hoop,.cat-stage.is-making-way .big-cat{animation:none!important}}

/* v31.35: natural weather density, placeable bottles, steady local lights,
   accurate drinking reach, and one visible kibble for every stored piece. */
.room-bowl-kibbles i,.bowl-kibbles i{
  left:var(--kibble-x)!important;
  top:var(--kibble-y)!important;
  transform:rotate(var(--kibble-rotation,0deg))!important;
}
.room-bowl-kibbles{left:18px;right:18px;top:12px;height:23px;overflow:hidden}
.room-bowl-kibbles i{width:12px;height:8px;border-width:1.5px}
.bowl-kibbles{overflow:hidden}
.bowl-kibbles i{width:24px;height:16px}

.weather-rainfall i:nth-child(19){--particle-left:7%;--particle-size:23px;--particle-opacity:.74;--particle-delay:-.27s}
.weather-rainfall i:nth-child(20){--particle-left:14%;--particle-size:16px;--particle-opacity:.56;--particle-delay:-.61s}
.weather-rainfall i:nth-child(21){--particle-left:28%;--particle-size:28px;--particle-opacity:.86;--particle-delay:-.09s}
.weather-rainfall i:nth-child(22){--particle-left:34%;--particle-size:19px;--particle-opacity:.65;--particle-delay:-.78s}
.weather-rainfall i:nth-child(23){--particle-left:41%;--particle-size:25px;--particle-opacity:.79;--particle-delay:-.42s}
.weather-rainfall i:nth-child(24){--particle-left:52%;--particle-size:21px;--particle-opacity:.69;--particle-delay:-.16s}
.weather-rainfall i:nth-child(25){--particle-left:64%;--particle-size:17px;--particle-opacity:.59;--particle-delay:-.7s}
.weather-rainfall i:nth-child(26){--particle-left:70%;--particle-size:29px;--particle-opacity:.88;--particle-delay:-.34s}
.weather-rainfall i:nth-child(27){--particle-left:76%;--particle-size:20px;--particle-opacity:.68;--particle-delay:-.86s}
.weather-rainfall i:nth-child(28){--particle-left:86%;--particle-size:25px;--particle-opacity:.8;--particle-delay:-.2s}
.weather-rainfall i:nth-child(29){--particle-left:92%;--particle-size:18px;--particle-opacity:.62;--particle-delay:-.54s}
.weather-rainfall i:nth-child(30){--particle-left:47%;--particle-size:27px;--particle-opacity:.84;--particle-delay:-.94s}
.room.weather-rain .weather-rainfall i{animation-duration:.84s!important}
.room.weather-rain .weather-rainfall i:nth-child(3n){animation-duration:.72s!important}
.room.weather-rain .weather-rainfall i:nth-child(3n + 2){animation-duration:.96s!important}

.weather-snowfall i:nth-child(17){--snow-left:7%;--snow-size:7px;--snow-opacity:.82;--snow-delay:-1.1s}
.weather-snowfall i:nth-child(18){--snow-left:16%;--snow-size:4px;--snow-opacity:.62;--snow-delay:-2.7s}
.weather-snowfall i:nth-child(19){--snow-left:25%;--snow-size:8px;--snow-opacity:.9;--snow-delay:-.5s}
.weather-snowfall i:nth-child(20){--snow-left:32%;--snow-size:5px;--snow-opacity:.7;--snow-delay:-3.1s}
.weather-snowfall i:nth-child(21){--snow-left:39%;--snow-size:9px;--snow-opacity:.94;--snow-delay:-1.8s}
.weather-snowfall i:nth-child(22){--snow-left:46%;--snow-size:6px;--snow-opacity:.76;--snow-delay:-.9s}
.weather-snowfall i:nth-child(23){--snow-left:53%;--snow-size:4px;--snow-opacity:.6;--snow-delay:-2.4s}
.weather-snowfall i:nth-child(24){--snow-left:61%;--snow-size:8px;--snow-opacity:.88;--snow-delay:-1.4s}
.weather-snowfall i:nth-child(25){--snow-left:68%;--snow-size:5px;--snow-opacity:.69;--snow-delay:-3.3s}
.weather-snowfall i:nth-child(26){--snow-left:73%;--snow-size:9px;--snow-opacity:.93;--snow-delay:-.3s}
.weather-snowfall i:nth-child(27){--snow-left:80%;--snow-size:6px;--snow-opacity:.78;--snow-delay:-2.1s}
.weather-snowfall i:nth-child(28){--snow-left:87%;--snow-size:4px;--snow-opacity:.61;--snow-delay:-1.6s}
.weather-snowfall i:nth-child(29){--snow-left:92%;--snow-size:8px;--snow-opacity:.89;--snow-delay:-2.9s}
.weather-snowfall i:nth-child(30){--snow-left:57%;--snow-size:5px;--snow-opacity:.72;--snow-delay:-.7s}
.room.weather-snow .weather-snowfall i{animation-duration:3.1s!important}
.room.weather-snow .weather-snowfall i:nth-child(3n){animation-duration:2.6s!important}
.room.weather-snow .weather-snowfall i:nth-child(3n + 2){animation-duration:3.55s!important}

.movable-light.bottle-instance-light{opacity:.29!important}
.movable-light-layer.is-night-unlit .movable-light.bottle-instance-light{opacity:.53!important;filter:blur(8px) brightness(1.13)}
.room [data-decor="starBottle"].has-captured-starlight,.room [data-decor="roundBottle"].has-captured-starlight{
  filter:drop-shadow(0 0 5px rgba(255,240,171,.68)) drop-shadow(0 0 10px rgba(255,231,141,.26)) brightness(1.06)!important;
}
.room.world-night:not(.is-lamp-on) [data-decor="starBottle"].has-captured-starlight,.room.world-night:not(.is-lamp-on) [data-decor="roundBottle"].has-captured-starlight{
  filter:drop-shadow(0 0 9px rgba(255,244,177,.98)) drop-shadow(0 0 19px rgba(255,221,103,.58)) brightness(1.18)!important;
}
.movable-light.lamp-light.is-active{opacity:.54!important}
.room.world-night .movable-light.lamp-light.is-active{opacity:.56!important}
.floor-lamp.is-on .lamp-glow{opacity:.58!important}
.room.world-night .floor-lamp.is-on .lamp-glow{opacity:.62!important}
.room.is-room-dark .food-bowl-in-room,.room.is-room-dark .water-fountain{filter:brightness(.86) saturate(.93)!important;opacity:.98!important}

.cat-stage.is-drinking .cat-mouth.left::after,.cat-stage.is-drinking .cat-mouth.right::after{content:none!important;display:none!important}
.cat-drink-tongue{
  position:absolute;z-index:29;width:9px;min-height:8px;border:2px solid #7c4b4a;border-top:0;border-radius:0 0 8px 8px;
  background:linear-gradient(90deg,#e594a5,#f2b2bd 55%,#d98296);box-shadow:inset 2px 0 rgba(255,235,240,.45);
  transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) scaleY(.1);transform-origin:50% 0;pointer-events:none;
}
.cat-drink-tongue.is-active{animation:drinkTongueReachV3135 .46s ease-in-out .22s 6}
@keyframes drinkTongueReachV3135{0%,100%{opacity:0;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) scaleY(.12)}28%,68%{opacity:1;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) scaleY(1)}}
.cat-stage.is-asking-food .cat-head{animation:hungryAskV3135 .85s ease-in-out 2!important}
@keyframes hungryAskV3135{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(-4px) rotate(-4deg)}70%{transform:translateY(-2px) rotate(3deg)}}
@media (prefers-reduced-motion:reduce){.cat-drink-tongue.is-active{animation:none;opacity:1;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) scaleY(1)}.cat-stage.is-asking-food .cat-head{animation:none!important}}

/* v31.32: gentle illumination and independent bottle instances.
   No cat dimensions, colors, outlines, or anatomical shapes are changed here. */
:root{--room-light-transition:2.45s cubic-bezier(.22,.72,.24,1)}
.room,.room::before,.room::after,
.room>.wall,.room>.floor,.room>.rug,.room>.sofa,.room>.bed,.room>.floor-lamp,
.room>.cat-tree-in-room,.room>.cat-stage,.room>.toy-in-room,.room>.water-fountain,
.room>.food-bowl-in-room,.room .room-decor,.room .decor-fragment-pile,
.room .window,.room .window-sky,.room .window-glass,.room .window-view,
.room .floor::after,.room .movable-light-layer,.room .movable-light{
  transition-property:filter,opacity,background-color,box-shadow,color;
  transition-duration:var(--room-light-transition);
  transition-timing-function:cubic-bezier(.22,.72,.24,1);
}
.room>.cat-stage{
  transition:filter var(--room-light-transition),opacity var(--room-light-transition),transform var(--cat-move-duration,320ms) cubic-bezier(.2,.78,.2,1)!important;
}
.room .room-decor,.room>.food-bowl-in-room,.room>.toy-in-room{
  transition:filter var(--room-light-transition),opacity var(--room-light-transition),transform 180ms ease!important;
}
.room .movable-light{
  transition:left .16s linear,top .16s linear,opacity var(--room-light-transition),filter var(--room-light-transition),visibility 0s linear 2.45s!important;
}
.room [data-bottle-id]{display:block}
.room [data-bottle-id][hidden]{display:none!important}
.cat-stage.is-pose-changing .big-cat{transform:translateX(-50%)!important}
@media (prefers-reduced-motion:reduce){.room,.room *{transition-duration:.01ms!important}}

/* v31.31 final continuity rules. These intentionally do not alter any cat
   dimensions, colors, outlines, or anatomical shapes. */
.room>.wall,.room>.floor,.room>.rug,.room>.sofa,.room>.bed,.room>.floor-lamp,
.room>.cat-tree-in-room,.room>.cat-stage,.room>.toy-in-room,.room>.water-fountain{
  transition:filter var(--room-light-transition),transform var(--cat-move-duration,320ms) cubic-bezier(.2,.78,.2,1)!important;
}
.room>.food-bowl-in-room{transition:filter var(--room-light-transition),opacity var(--room-light-transition),transform 260ms cubic-bezier(.2,.78,.2,1)!important}
.room .room-decor,.room .decor-fragment-pile{transition:filter var(--room-light-transition),opacity var(--room-light-transition),transform 180ms ease!important}
.room .window{transition:filter var(--room-light-transition),box-shadow var(--room-light-transition)!important}
.room .floor::after{transition:opacity var(--room-light-transition),filter var(--room-light-transition),background var(--room-light-transition)!important}
.room .curtain{transition:transform .72s cubic-bezier(.2,.8,.2,1),opacity .62s ease,filter var(--room-light-transition)!important}
.floor-lamp,.floor-lamp .lamp-shade,.floor-lamp .lamp-post,.floor-lamp .lamp-base,.floor-lamp .lamp-glow,.floor-lamp::after{transition:filter var(--room-light-transition),background var(--room-light-transition),opacity var(--room-light-transition),box-shadow var(--room-light-transition)!important}
[data-decor="starBottle"].has-captured-starlight,[data-decor="roundBottle"].has-captured-starlight{transition:filter var(--room-light-transition),opacity var(--room-light-transition),transform 180ms ease!important}
.movable-light-layer{transition:opacity var(--room-light-transition),filter var(--room-light-transition)!important}
.movable-light{opacity:0;visibility:hidden;transition:left .16s linear,top .16s linear,opacity var(--room-light-transition),filter var(--room-light-transition),visibility 0s linear 2.45s!important}
.movable-light.is-active,.movable-light.bottle-instance-light{visibility:visible;transition-delay:0s!important}
.movable-light-layer .movable-light.lamp-light:not(.is-active){opacity:0!important}
.movable-light.lamp-light.is-active{opacity:.58}.movable-light-layer.is-room-dark .movable-light.lamp-light.is-active{opacity:.72}
.movable-light.bottle-light,.movable-light.round-bottle-light{opacity:.26}.movable-light-layer.is-room-dark .movable-light.bottle-light,.movable-light-layer.is-room-dark .movable-light.round-bottle-light{opacity:.48}
.cat-stage.is-pose-changing .big-cat{opacity:.5;transform:translateX(-50%)!important;transition:opacity 180ms ease-in!important}
.cat-stage.is-pose-entering .big-cat{animation:poseArrive 240ms cubic-bezier(.2,.78,.2,1) both!important}
.cat-stage.is-travelling[data-pose="walk"] .big-cat{animation:pufflesWalk 4.35s ease-in-out infinite}.cat-stage.is-travelling[data-pose="walk"] .cat-body{animation:walkBody 4.35s ease-in-out infinite}.cat-stage.is-travelling[data-pose="walk"] .cat-head{animation:walkSniff 4.35s ease-in-out infinite}
.cat-stage.is-travelling[data-pose="walk"] .cat-paw.left,.cat-stage.is-travelling[data-pose="walk"] .cat-hind-paw.right{animation:walkStepA 1.3s ease-in-out infinite}.cat-stage.is-travelling[data-pose="walk"] .cat-paw.right,.cat-stage.is-travelling[data-pose="walk"] .cat-hind-paw.left{animation:walkStepB 1.3s ease-in-out -.65s infinite}
@media (prefers-reduced-motion:reduce){.room,.room *{transition-duration:.01ms!important}}
@keyframes pufflesSingleTailSway{0%,100%{transform:rotate(5deg)}50%{transform:rotate(14deg) translateY(-2px)}}
.window-sky,.window-sky::before,.window-sky::after,.weather-rainfall,.weather-snowfall,.sky-stars,.window-glass,.window-view{transition:background-color 3.8s ease,background 3.8s ease,filter 3.8s ease,opacity 3.8s ease,color 3.8s ease,box-shadow 3.8s ease!important}
@media (prefers-reduced-motion:reduce){.window-sky,.window-sky::before,.window-sky::after,.weather-rainfall,.weather-snowfall,.sky-stars,.window-glass,.window-view{transition:none!important}.cat-stage .cat-tail::before{animation:none!important}}
.room.is-weather-transitioning .weather-rainfall,.room.is-weather-transitioning .weather-snowfall,.room.is-weather-transitioning .sky-stars{animation:weatherSoftArrival 3.8s ease both!important}@keyframes weatherSoftArrival{0%{opacity:0;filter:blur(5px)}100%{opacity:1;filter:blur(0)}}
/* v31.30 final lighting and motion safeguards */
.room [data-decor="starBottle"].has-captured-starlight:not([hidden]),.room [data-decor="roundBottle"].has-captured-starlight:not([hidden]){visibility:visible!important;opacity:1!important}
.room:not(.is-room-dark) [data-decor="starBottle"].has-captured-starlight,.room:not(.is-room-dark) [data-decor="roundBottle"].has-captured-starlight{filter:drop-shadow(0 0 4px rgba(255,238,155,.58)) brightness(1.04)!important}
.room.is-room-dark .food-bowl-in-room,.room.is-room-dark .water-fountain{filter:brightness(.82) saturate(.9)!important;opacity:.97!important}.room.is-room-dark .water-fountain .fountain-water{filter:brightness(.94) saturate(.95)!important;opacity:.93!important}
.room.is-weather-transitioning .window-sky,.room.is-weather-transitioning .weather-rainfall,.room.is-weather-transitioning .weather-snowfall,.room.is-weather-transitioning .sky-stars{animation:weatherCrossfadeV3130 3.8s ease both!important}@keyframes weatherCrossfadeV3130{0%{opacity:.14;filter:blur(6px) saturate(.8)}100%{opacity:1;filter:blur(0) saturate(1)}}
.cat-stage .cat-tail::after{content:none!important;display:none!important}

/* v31.43: only the visible cat silhouette captures pointer input. This lets a
   visible lamp shade behind the cat receive a tap instead of being blocked by
   the cat button's transparent rectangular box. Cat artwork is unchanged. */
.cat-stage{pointer-events:none}
.cat-stage :is(.cat-head,.cat-body,.cat-ear,.cat-tail,.cat-paw,.cat-hind-paw){pointer-events:auto}
.floor-lamp.is-on .lamp-shade{
  filter:brightness(1.08) saturate(1.08)!important;
  box-shadow:
    inset 0 -9px rgba(178,112,38,.08),
    inset 0 2px rgba(255,255,235,.64),
    0 0 18px rgba(255,220,132,.8),
    0 0 38px rgba(255,202,87,.4)!important;
}
.floor-lamp.is-on .lamp-glow{
  opacity:.82!important;
  background:radial-gradient(circle,rgba(255,242,193,.78) 0 16%,rgba(255,215,118,.4) 40%,rgba(255,199,82,0) 73%)!important;
}
.floor-lamp.is-on::after{opacity:.56!important}
.movable-light.lamp-light.is-active{opacity:.64!important;visibility:visible!important}
.movable-light-layer.is-room-dark .movable-light.lamp-light.is-active{opacity:.72!important}
@media (prefers-reduced-motion:reduce){
  .floor-lamp,.floor-lamp .lamp-shade,.floor-lamp .lamp-glow{transition:none!important}
}

/* v31.44: a soft, fully illustrated cat bathroom. The scene is an overlay so
   returning home never changes furniture positions or the cat's silhouette. */
.care-button.bath{
  color:#356c73;
  background:linear-gradient(145deg,rgba(225,250,249,.92),rgba(174,221,229,.8));
}
.care-button.bath svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.bathroom-scene[hidden]{display:none!important}
.bathroom-scene{
  position:absolute;
  z-index:50;
  inset:0;
  overflow:hidden;
  color:#66524b;
  opacity:0;
  transform:translateY(16px) scale(.992);
  transform-origin:50% 70%;
  transition:opacity .5s ease,transform .62s cubic-bezier(.2,.78,.2,1);
}
.room.is-bathroom .bathroom-scene{opacity:1;transform:none}
.bathroom-wall{
  position:absolute;
  inset:0 0 31% 0;
  overflow:hidden;
  background:
    radial-gradient(circle at 11% 13%,rgba(255,255,255,.96) 0 3px,transparent 4px),
    radial-gradient(circle at 77% 26%,rgba(255,216,224,.2),transparent 25%),
    repeating-radial-gradient(ellipse at 9px 9px,transparent 0 11px,rgba(199,190,182,.055) 12px 12.8px,transparent 13px 31px),
    #fffdf8;
}
.bathroom-wall::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:0 0 34px 34px;
  box-shadow:inset 22px 0 40px rgba(255,210,222,.11),inset -18px 0 34px rgba(220,240,244,.18),inset 0 -14px 24px rgba(255,255,255,.7);
}
.bathroom-wall::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:18px;
  border-radius:50% 50% 0 0;
  background:linear-gradient(#fff,#f8e7e7 70%,#ead6d2);
  box-shadow:0 5px 10px rgba(130,98,91,.08);
}
.bathroom-corner-glow{
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at 8% 92%,rgba(255,202,215,.28),transparent 20%),radial-gradient(ellipse at 95% 88%,rgba(255,223,230,.24),transparent 24%);
}
.bathroom-floor{
  position:absolute;
  inset:69% 0 0;
  background-color:#f5ead6;
  background-image:
    repeating-linear-gradient(0deg,transparent 0 28px,rgba(222,184,83,.15) 29px 31px,transparent 32px 58px),
    repeating-linear-gradient(90deg,transparent 0 28px,rgba(222,184,83,.13) 29px 31px,transparent 32px 58px),
    radial-gradient(circle at 50% 0,rgba(255,252,235,.8),transparent 68%);
  box-shadow:inset 0 15px 28px rgba(142,109,67,.055);
}
.bathroom-floor::after{
  content:"";
  position:absolute;
  inset:0;
  opacity:.44;
  background:repeating-linear-gradient(23deg,transparent 0 17px,rgba(255,255,255,.22) 18px 19px,transparent 20px 38px);
}
.bathroom-heading{
  position:absolute;
  z-index:59;
  top:4.5%;
  left:4%;
  max-width:310px;
  padding:12px 17px 13px;
  border:1px solid rgba(255,255,255,.72);
  border-radius:20px;
  background:rgba(255,255,255,.58);
  box-shadow:inset 0 1px rgba(255,255,255,.95),0 9px 24px rgba(91,73,66,.08);
  backdrop-filter:blur(12px);
}
.bathroom-heading p{margin:0 0 3px;color:#b67870;font-size:10px;font-weight:850;letter-spacing:.08em}
.bathroom-heading h2{margin:0;color:#5e4c46;font-size:clamp(16px,2vw,24px);line-height:1.15}
.bathroom-back-button{
  position:absolute;
  z-index:70;
  top:4.7%;
  right:3%;
  min-width:118px;
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:8px 16px 9px 10px;
  border:1px solid rgba(255,255,255,.78);
  border-radius:18px;
  color:#496b70;
  cursor:pointer;
  background:linear-gradient(145deg,rgba(239,255,255,.8),rgba(190,229,235,.68));
  box-shadow:inset 0 1px rgba(255,255,255,.95),inset 0 -3px rgba(73,108,111,.08),0 8px 18px rgba(71,93,96,.14);
  backdrop-filter:blur(12px) saturate(1.15);
  font-size:12px;
  transition:transform 170ms ease,box-shadow 170ms ease;
}
.bathroom-back-button::before{content:"";position:absolute;left:3px;right:3px;top:3px;height:45%;border-radius:14px;background:linear-gradient(rgba(255,255,255,.82),rgba(255,255,255,.1));pointer-events:none}
.bathroom-back-button>*{position:relative;z-index:1}
.bathroom-back-button>span{width:27px;height:27px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.48);font-size:25px;line-height:1}
.bathroom-back-button:hover{transform:translateY(-2px);box-shadow:inset 0 1px #fff,0 12px 25px rgba(71,93,96,.2)}
.bathroom-back-button:active{transform:scale(.97)}
.bathroom-vent{
  position:absolute;
  z-index:53;
  top:15%;
  right:4%;
  width:118px;
  height:52px;
  padding:10px 14px 7px;
  border:2px solid rgba(187,179,171,.42);
  border-radius:17px;
  background:rgba(255,255,255,.68);
  box-shadow:inset 0 -4px rgba(174,163,154,.07),0 7px 14px rgba(99,76,64,.08);
}
.bathroom-vent i{display:block;height:3px;margin:3px 0;border-radius:4px;background:linear-gradient(90deg,#d3ccc4,#ece7df,#d3ccc4)}
.bathroom-vent span{position:absolute;right:8px;bottom:-18px;color:#b88774;font-size:9px;font-weight:800}
.bathroom-art{
  position:absolute;
  z-index:52;
  top:15%;
  width:104px;
  height:78px;
  overflow:hidden;
  border:7px solid #eee3d6;
  border-radius:17px;
  background:linear-gradient(145deg,#eee5fa,#e5d9f3);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.7),0 8px 13px rgba(84,67,61,.1);
}
.bathroom-art.art-one{left:30%}.bathroom-art.art-two{left:41%;top:18%;transform:scale(.8) rotate(2deg)}
.art-cat{position:absolute;left:50%;bottom:-10px;width:54px;height:54px;border-radius:50%;background:#e8a06f;transform:translateX(-50%) rotate(-5deg);box-shadow:inset -6px -5px rgba(153,91,54,.12)}
.art-cat .art-ear{position:absolute;top:-10px;width:22px;height:24px;background:#d98759;clip-path:polygon(50% 0,100% 100%,0 100%)}
.art-cat .art-ear.left{left:2px;transform:rotate(-12deg)}.art-cat .art-ear.right{right:2px;transform:rotate(12deg)}
.art-cat b,.art-cat em{position:absolute;top:21px;width:12px;height:7px;border-bottom:2px solid #66473f;border-radius:50%}
.art-cat b{left:9px;transform:rotate(8deg)}.art-cat em{right:9px;transform:rotate(-8deg)}
.art-cat::after{content:"";position:absolute;left:22px;top:32px;width:13px;height:7px;border-bottom:2px solid #66473f;border-radius:50%}
.art-flower{position:absolute;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle,#f5d39b 0 22%,#c6a8da 25% 46%,transparent 49%)}
.art-flower.f1{left:8px;top:9px}.art-flower.f2{right:9px;top:16px;transform:scale(.76)}.art-flower.f3{left:15px;bottom:7px;transform:scale(.58)}
.bathroom-cabinet{
  position:absolute;
  z-index:53;
  left:4%;
  bottom:28%;
  width:20%;
  min-width:164px;
  max-width:235px;
  height:35%;
  min-height:190px;
  border:4px solid #cfbeb0;
  border-radius:25px 25px 18px 18px;
  background:#faf7f1;
  box-shadow:inset 0 -10px rgba(196,177,162,.08),0 13px 20px rgba(90,67,58,.11);
}
.bathroom-cabinet .cabinet-top{position:absolute;left:-8px;right:-8px;top:-9px;height:19px;border:3px solid #cfbeb0;border-radius:14px;background:#fffdf7;box-shadow:inset 0 4px rgba(255,255,255,.8)}
.bathroom-cabinet-door{position:absolute;top:14px;bottom:46px;width:calc(50% - 6px);border:2px solid #ded2c9;border-radius:14px;background:linear-gradient(145deg,#fffefb,#eee6df);box-shadow:inset 0 0 0 2px rgba(255,255,255,.8)}
.bathroom-cabinet-door.left{left:4px}.bathroom-cabinet-door.right{right:4px}
.paw-print{position:absolute;left:50%;top:49%;width:34px;height:29px;transform:translate(-50%,-50%);opacity:.47}
.paw-print b{position:absolute;width:8px;height:10px;border-radius:50%;background:#a7a3a0}.paw-print b:nth-child(1){left:0;top:6px;transform:rotate(-20deg)}.paw-print b:nth-child(2){left:8px;top:0}.paw-print b:nth-child(3){right:8px;top:0}.paw-print b:nth-child(4){right:0;top:6px;transform:rotate(20deg)}
.paw-print em{position:absolute;left:8px;bottom:0;width:18px;height:15px;border-radius:50% 50% 44% 44%;background:#a7a3a0}
.cabinet-drawer{position:absolute;left:5px;right:5px;bottom:4px;height:36px;border:2px solid #ded2c9;border-radius:10px;background:#f5eee7}.cabinet-drawer i{position:absolute;top:8px;width:7px;height:18px;border-radius:6px;background:#e1c58c}.cabinet-drawer i:first-child{left:35%}.cabinet-drawer i:last-child{right:35%}
.bathroom-dryer{position:absolute;z-index:54;left:53%;top:14%;width:145px;height:100px}
.dryer-shell{position:absolute;left:0;top:0;width:86px;height:60px;border:3px solid #bb8d70;border-radius:24px 30px 21px 19px;background:linear-gradient(145deg,#ffd2a6,#efa66e);box-shadow:inset 0 5px rgba(255,255,255,.35),0 8px 15px rgba(126,77,52,.12)}
.dryer-shell::after{content:"";position:absolute;right:-27px;top:14px;width:31px;height:32px;border:3px solid #bb8d70;border-left:0;border-radius:0 13px 13px 0;background:#ffc18d}
.dryer-shell i{position:absolute;left:17px;width:44px;height:3px;border-radius:5px;background:rgba(130,76,54,.36)}.dryer-shell i:nth-child(1){top:15px}.dryer-shell i:nth-child(2){top:27px}.dryer-shell i:nth-child(3){top:39px}
.dryer-shell b{position:absolute;right:7px;top:7px;width:9px;height:9px;border-radius:50%;background:#ffefaa;box-shadow:0 0 8px #ffcc77}
.bathroom-dryer small{position:absolute;left:8px;top:68px;color:#a16f55;font-size:9px;font-weight:900;letter-spacing:.03em}
.dryer-breeze{position:absolute;left:112px;top:13px;width:35px;height:47px}.dryer-breeze i{position:absolute;left:0;width:35px;height:10px;border-top:3px solid rgba(246,177,100,.48);border-radius:50%;animation:bathroomWarmAir 1.7s ease-in-out infinite}.dryer-breeze i:nth-child(1){top:2px}.dryer-breeze i:nth-child(2){top:17px;animation-delay:-.55s}.dryer-breeze i:nth-child(3){top:32px;animation-delay:-1.1s}
.cat-bath{position:absolute;z-index:54;left:26%;bottom:3.5%;width:43%;height:47%}
.bath-recess{position:absolute;left:0;right:0;bottom:0;height:64%;border:5px solid #86b9a9;border-radius:43% 43% 25% 25% / 28% 28% 22% 22%;background:linear-gradient(#c5eddf,#8dcebb);box-shadow:inset 0 13px 0 rgba(255,255,255,.28),inset 0 -17px rgba(71,137,118,.12),0 13px 22px rgba(69,100,88,.14)}
.bath-water{position:absolute;z-index:2;left:6%;right:6%;bottom:42%;height:32%;overflow:hidden;border:3px solid rgba(102,162,176,.5);border-radius:50%;background:linear-gradient(rgba(222,249,250,.84),rgba(152,218,226,.74));box-shadow:inset 0 7px 11px rgba(255,255,255,.58)}
.bath-water::after{content:"";position:absolute;inset:0;background:repeating-radial-gradient(ellipse at 14% 43%,transparent 0 14px,rgba(255,255,255,.42) 15px 17px,transparent 18px 34px);animation:bathroomWater 4s linear infinite}
.bath-water i,.bath-water b{position:absolute;z-index:2;border-radius:50%;background:rgba(255,255,255,.72);box-shadow:0 0 0 2px rgba(153,213,221,.28)}.bath-water i:nth-child(1){left:19%;top:33%;width:12px;height:12px}.bath-water i:nth-child(2){left:61%;top:18%;width:8px;height:8px}.bath-water i:nth-child(3){right:16%;top:51%;width:15px;height:15px}.bath-water b:nth-of-type(1){left:41%;top:49%;width:6px;height:6px}.bath-water b:nth-of-type(2){right:35%;top:62%;width:9px;height:9px}
.bath-splash-guard{position:absolute;z-index:3;left:-2%;right:-2%;height:23%;border:4px solid rgba(112,170,190,.64);border-radius:50%;pointer-events:none}.bath-splash-guard.back{bottom:55%;border-bottom-color:transparent;background:linear-gradient(rgba(209,239,246,.36),transparent)}.bath-splash-guard.front{z-index:5;bottom:31%;border-top-color:rgba(230,249,251,.48);background:linear-gradient(transparent,rgba(175,218,228,.38))}
.bath-faucet{position:absolute;z-index:6;right:10%;top:4%;width:86px;height:105px}.faucet-neck{position:absolute;left:20px;top:0;width:49px;height:67px;border:12px solid #f9f5e9;border-left:0;border-bottom:0;border-radius:0 34px 0 0;filter:drop-shadow(0 3px 0 #d2c8ba)}.faucet-head{position:absolute;right:0;top:47px;width:38px;height:22px;border:3px solid #d2c8ba;border-radius:12px 13px 9px 9px;background:#fffdf6}.faucet-button{position:absolute;left:4px;top:33px;width:24px;height:14px;border:3px solid #d2c8ba;border-radius:10px;background:#f3d593}.water-stream{position:absolute;right:9px;top:68px;width:12px;height:63px;border-radius:0 0 9px 9px;background:linear-gradient(90deg,rgba(255,255,255,.32),rgba(178,229,237,.88),rgba(255,255,255,.5));box-shadow:0 0 9px rgba(142,212,226,.42);animation:bathroomStream 1.8s ease-in-out infinite}
.bath-drain{position:absolute;z-index:4;left:22%;bottom:47%;width:29px;height:11px;border:2px solid rgba(67,121,126,.44);border-radius:50%;background:repeating-linear-gradient(90deg,#b7d1cd 0 3px,#7fa5a1 4px 5px)}
.bath-mat{position:absolute;left:8%;bottom:-8px;width:67%;height:43px;border-radius:48%;background:#f8dcae;box-shadow:0 7px 0 rgba(165,116,65,.1)}.bath-mat i{position:relative;display:inline-block;width:7%;height:100%;margin-left:7%;border-radius:50%;background:rgba(255,255,255,.28);transform:skewX(-13deg)}
.bathroom-divider{position:absolute;z-index:56;right:26%;top:9%;width:11%;height:62%;border:3px solid rgba(130,180,201,.42);border-radius:29px 10px 24px 23px;background:linear-gradient(90deg,rgba(184,224,239,.48),rgba(224,245,251,.69),rgba(166,213,232,.46));box-shadow:inset 5px 0 rgba(255,255,255,.31),0 9px 22px rgba(91,126,139,.1);backdrop-filter:blur(2px)}
.divider-rail{position:absolute;left:-10px;right:-10px;top:-8px;height:11px;border:3px solid #aabfc7;border-radius:9px;background:#eef8f9}.divider-handle{position:absolute;right:10px;top:47%;width:7px;height:38px;border-radius:8px;background:#f8ffff;box-shadow:0 0 0 2px rgba(93,142,160,.24)}
.divider-cloud{position:absolute;width:42px;height:16px;border-radius:999px;background:rgba(255,255,255,.62)}.divider-cloud::before,.divider-cloud::after{content:"";position:absolute;bottom:0;border-radius:50%;background:inherit}.divider-cloud::before{left:7px;width:18px;height:23px}.divider-cloud::after{right:5px;width:22px;height:27px}.divider-cloud.c1{left:13%;top:22%}.divider-cloud.c2{right:7%;top:48%;transform:scale(.65)}.divider-cloud.c3{left:8%;bottom:13%;transform:scale(.8)}
.litter-box{position:absolute;z-index:57;right:2.5%;bottom:4%;width:27%;max-width:330px;min-width:230px;height:31%;min-height:190px;filter:drop-shadow(0 13px 12px rgba(77,59,58,.14))}
.litter-base{position:absolute;z-index:2;left:5%;right:4%;bottom:0;height:47%;border:4px solid #b27f85;border-radius:29px 29px 38px 38px;background:linear-gradient(145deg,#f5bfc8,#e99eaa);box-shadow:inset 0 -12px rgba(159,87,100,.09),inset 0 5px rgba(255,255,255,.3)}
.litter-blue-guard{position:absolute;z-index:3;left:8%;right:7%;bottom:34%;height:42%;border:4px solid #789fad;border-bottom-width:8px;border-radius:43px 43px 20px 20px;background:linear-gradient(rgba(176,215,225,.92),rgba(135,188,202,.94));clip-path:polygon(0 0,100% 0,96% 100%,4% 100%)}
.litter-sand{position:absolute;z-index:4;left:13%;right:12%;bottom:33%;height:27%;overflow:hidden;border:3px solid #a6a2a0;border-radius:50%;background:#d7d5d1;box-shadow:inset 0 6px rgba(255,255,255,.4)}
.litter-sand i{position:absolute;width:5px;height:4px;border-radius:50%;background:#aaa7a4}.litter-sand i:nth-child(1){left:13%;top:40%}.litter-sand i:nth-child(2){left:29%;top:62%}.litter-sand i:nth-child(3){left:46%;top:29%}.litter-sand i:nth-child(4){right:35%;top:57%}.litter-sand i:nth-child(5){right:18%;top:35%}.litter-sand i:nth-child(6){right:8%;top:68%}
.litter-entrance{position:absolute;z-index:7;left:29%;bottom:1%;width:42%;height:39%;border:6px solid #fffaf0;border-bottom:0;border-radius:52% 52% 8px 8px;background:linear-gradient(rgba(255,247,245,.19),rgba(197,111,126,.19));box-shadow:inset 0 4px rgba(255,255,255,.65)}
.litter-purple-cover{position:absolute;z-index:5;left:8%;right:7%;top:0;height:64%;border:4px solid rgba(155,130,179,.58);border-bottom:0;border-radius:48% 48% 15px 15px;background:linear-gradient(145deg,rgba(221,203,237,.66),rgba(178,153,207,.5));box-shadow:inset 10px 8px rgba(255,255,255,.2)}
.litter-purple-cover i{position:absolute;right:8px;width:34px;height:3px;border-radius:4px;background:rgba(255,255,255,.75)}.litter-purple-cover i:nth-child(1){top:21%}.litter-purple-cover i:nth-child(2){top:32%}.litter-purple-cover i:nth-child(3){top:43%}.litter-purple-cover i:nth-child(4){top:54%}
.litter-back-unit{position:absolute;z-index:6;right:0;bottom:27%;width:31%;height:57%;border:3px solid #aaa4a0;border-radius:21px;background:linear-gradient(145deg,#edeae5,#c9c6c3);box-shadow:inset 0 4px rgba(255,255,255,.45)}
.odor-filter{position:absolute;left:17%;right:17%;top:19%;height:29%;border-radius:8px;background:repeating-linear-gradient(90deg,#8e9293 0 4px,#bec1c1 5px 8px)}
.warning-light{position:absolute;right:13px;bottom:16px;width:10px;height:10px;border-radius:50%;background:#efaa64;box-shadow:0 0 8px rgba(239,155,89,.72)}
.litter-control{position:absolute;z-index:8;right:-2%;bottom:6%;width:43px;height:58px;border:3px solid #c8bdaf;border-radius:15px;background:#fffaf0;box-shadow:inset 0 5px rgba(255,255,255,.55)}.litter-control i,.litter-control b,.litter-control em{position:absolute;left:50%;border-radius:50%;transform:translateX(-50%)}.litter-control i{top:8px;width:19px;height:19px;background:#f4d675}.litter-control b{top:34px;width:10px;height:8px;background:#d9ba60}.litter-control em{bottom:4px;width:20px;height:3px;background:#dad1c6}
.litter-drawer{position:absolute;z-index:8;left:10%;bottom:-2px;width:30%;height:28%;border:3px solid #68686c;border-radius:9px 9px 17px 17px;background:#55575b}.litter-drawer i{position:absolute;left:28%;right:28%;top:7px;height:4px;border-radius:4px;background:#9b9da0}
.litter-box small{position:absolute;z-index:9;left:10%;bottom:-20px;padding:3px 7px;border-radius:7px;color:#866b6f;background:rgba(255,255,255,.72);font-size:8px;font-weight:850;white-space:nowrap}
.peach-air{position:absolute;z-index:55;inset:0;pointer-events:none}.peach-air i{position:absolute;width:7px;height:7px;border-radius:60% 40% 60% 40%;background:rgba(246,173,155,.29);filter:blur(.2px);animation:peachAir 7s ease-in-out infinite}.peach-air i:nth-child(1){left:26%;top:31%}.peach-air i:nth-child(2){left:58%;top:24%;animation-delay:-2s}.peach-air i:nth-child(3){left:66%;top:48%;animation-delay:-4s}.peach-air i:nth-child(4){left:17%;top:62%;animation-delay:-1s}.peach-air i:nth-child(5){right:9%;top:36%;animation-delay:-5s}

.room.is-bathroom>.wall,.room.is-bathroom>.floor,.room.is-bathroom>.rug,.room.is-bathroom>.room-furniture,.room.is-bathroom>.room-decor-layer,.room.is-bathroom>.food-bowl-in-room,.room.is-bathroom>.decor-fragments,.room.is-bathroom>.toy-in-room,.room.is-bathroom>.speech-bubble,.room.is-bathroom>.pet-status,.room.is-bathroom>.care-actions,.room.is-bathroom>.cat-drink-tongue{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.room.is-bathroom::after{opacity:0}
.room.is-bathroom .cat-stage[data-positioned="true"]{
  z-index:62!important;
  left:49%!important;
  right:auto!important;
  bottom:5%!important;
  top:auto!important;
  transform:translateX(-50%) scale(var(--cat-scale,.9))!important;
  transition:left .65s cubic-bezier(.2,.78,.2,1),bottom .65s cubic-bezier(.2,.78,.2,1),opacity .45s ease!important;
}
.room.is-bathroom .cat-stage{cursor:default}
.room.is-bathroom .cat-shadow{background:rgba(71,98,90,.14)}
@keyframes bathroomStream{50%{transform:scaleX(.82);opacity:.75}}
@keyframes bathroomWater{to{background-position:68px 0}}
@keyframes bathroomWarmAir{50%{transform:translateX(8px);opacity:.55}}
@keyframes peachAir{0%,100%{transform:translate(0,0) rotate(0);opacity:.24}50%{transform:translate(14px,-20px) rotate(70deg);opacity:.62}}

@media (max-width:980px){
  .bathroom-heading{top:3%;left:3%;padding:10px 13px}.bathroom-back-button{top:3%;right:2.5%}
  .bathroom-cabinet{left:2%;min-width:144px;width:20%;height:32%;min-height:160px}
  .bathroom-art.art-one{left:25%}.bathroom-art.art-two{display:none}.bathroom-dryer{left:45%;transform:scale(.85);transform-origin:left top}
  .cat-bath{left:21%;width:48%}.litter-box{right:1.5%;width:29%;min-width:205px;transform:scale(.9);transform-origin:right bottom}
  .bathroom-divider{right:27%;width:10%}
}
@media (max-width:720px){
  .game-shell{width:100%;max-width:100vw;min-width:0;overflow:hidden}
  .game-header,.game-content{width:100%;max-width:100vw;min-width:0}
  .bathroom-heading{top:2%;left:2%;max-width:185px;padding:8px 10px;border-radius:15px}.bathroom-heading p{font-size:8px}.bathroom-heading h2{font-size:14px}
  .bathroom-back-button{top:2%;right:2%;min-width:95px;min-height:44px;padding:7px 10px;font-size:10px;border-radius:15px}.bathroom-back-button>span{width:24px;height:24px}
  .bathroom-vent{top:14%;right:2%;transform:scale(.72);transform-origin:right top}.bathroom-art.art-one{left:4%;top:17%;transform:scale(.72);transform-origin:left top}
  .bathroom-cabinet{left:1.5%;bottom:28%;width:25%;min-width:98px;height:30%;min-height:150px;border-width:3px}.bathroom-cabinet-door{bottom:38px}.cabinet-drawer{height:29px}
  .bathroom-dryer{left:auto;right:25%;top:16%;transform:scale(.64);transform-origin:right top}
  .cat-bath{left:3%;bottom:4%;width:63%;height:42%}.bath-faucet{transform:scale(.72);transform-origin:right top}.bathroom-divider{display:none}
  .litter-box{right:-1%;bottom:4%;width:38%;min-width:160px;height:27%;min-height:155px;transform:scale(.83);transform-origin:right bottom}.litter-box small{display:none}
  .room.is-bathroom .cat-stage[data-positioned="true"]{left:36%!important;bottom:3%!important;--cat-depth-scale:.86}
}
@media (max-width:420px){
  .bathroom-heading{max-width:154px}.bathroom-heading p{display:none}.bathroom-heading h2{font-size:12px}
  .bathroom-back-button{min-width:82px}.bathroom-back-button b{font-size:9px}
  .bathroom-cabinet{opacity:.92;transform:scale(.86);transform-origin:left bottom}.bathroom-art.art-one{top:14%}.bathroom-dryer{right:17%;top:15%}
  .cat-bath{left:-2%;width:70%;height:39%}.litter-box{right:0;width:42%;transform:scale(.66);transform-origin:right bottom}
  .room.is-bathroom .cat-stage[data-positioned="true"]{left:34%!important;bottom:1%!important}
}
@media (orientation:landscape) and (max-height:500px) and (min-width:600px){
  .bathroom-heading{top:2%;padding:7px 11px}.bathroom-heading p{display:none}.bathroom-heading h2{font-size:13px}.bathroom-back-button{top:2%;min-height:40px}
  .bathroom-cabinet{bottom:19%;height:43%;min-height:130px;transform:scale(.78);transform-origin:left bottom}.bathroom-art{top:17%;transform:scale(.65);transform-origin:left top}.bathroom-dryer{top:17%;transform:scale(.58);transform-origin:left top}
  .cat-bath{bottom:0;height:51%}.litter-box{bottom:0;height:42%;min-height:145px;transform:scale(.72);transform-origin:right bottom}
  .room.is-bathroom .cat-stage[data-positioned="true"]{bottom:-6%!important;left:49%!important}
}
@media (prefers-reduced-motion:reduce){
  .bathroom-scene,.room.is-bathroom .cat-stage[data-positioned="true"]{transition:none!important}
  .dryer-breeze i,.bath-water::after,.water-stream,.peach-air i{animation:none!important}
}

/* v31.48: playable bathroom care, collectible paw stickers and starlight mail. */
.care-button.star-gift{color:#745b92;background:linear-gradient(145deg,rgba(248,239,255,.94),rgba(210,193,235,.82))}
.care-button.star-gift svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.bathroom-actions{position:absolute;z-index:70;left:50%;top:4.2%;display:flex;gap:9px;transform:translateX(-50%)}
.bathroom-action{position:relative;min-width:150px;min-height:52px;display:flex;align-items:center;gap:9px;padding:7px 13px;border:1px solid rgba(255,255,255,.76);border-radius:18px;color:#52605c;cursor:pointer;background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(218,239,232,.67));box-shadow:inset 0 1px rgba(255,255,255,.96),inset 0 -3px rgba(76,96,88,.08),0 8px 18px rgba(76,80,73,.12);backdrop-filter:blur(11px) saturate(1.14);transition:transform 170ms ease,box-shadow 170ms ease}
.bathroom-action::before{content:"";position:absolute;left:3px;right:3px;top:3px;height:43%;border-radius:14px;background:linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.08));pointer-events:none}.bathroom-action>*{position:relative;z-index:1}
.bathroom-action svg{width:23px;height:23px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8}.bathroom-action>span{display:flex;flex-direction:column;align-items:flex-start}.bathroom-action b{font-size:11px}.bathroom-action small{color:#8b7d75;font-size:8px;white-space:nowrap}.bathroom-action.scoop{color:#716785;background:linear-gradient(145deg,rgba(255,255,255,.8),rgba(224,215,238,.68))}.bathroom-action.scoop.is-needed{color:#8e6656;background:linear-gradient(145deg,rgba(255,250,242,.92),rgba(244,207,174,.82));box-shadow:inset 0 1px #fff,0 0 0 3px rgba(236,169,112,.14),0 8px 18px rgba(93,69,57,.14)}
.bathroom-action:hover{transform:translateY(-2px);box-shadow:inset 0 1px #fff,0 12px 23px rgba(76,80,73,.17)}.bathroom-action:active{transform:scale(.97)}
.bathroom-sticker-wall{position:absolute;z-index:53;left:26%;top:31%;width:25%;min-width:240px;height:107px;padding:9px 12px;border:2px dashed rgba(194,169,151,.43);border-radius:20px;background:rgba(255,253,247,.54);box-shadow:inset 0 1px rgba(255,255,255,.85),0 7px 15px rgba(95,72,61,.06);pointer-events:none}
.sticker-wall-title{display:block;color:#967c70;font-size:9px;font-weight:850;letter-spacing:.04em;text-align:center}.sticker-spots{height:73px;display:grid;grid-template-columns:repeat(4,1fr);place-items:center;gap:1px 8px}
.sticker-spot{position:relative;width:29px;height:25px;display:block;opacity:.16;filter:grayscale(1);transform:rotate(var(--paw-tilt,-7deg))}.sticker-spot:nth-child(even){--paw-tilt:8deg}.sticker-spot b{position:absolute;width:7px;height:8px;border-radius:50%;background:#b8aea8}.sticker-spot b:nth-child(1){left:0;top:5px;transform:rotate(-20deg)}.sticker-spot b:nth-child(2){left:7px;top:0}.sticker-spot b:nth-child(3){right:7px;top:0}.sticker-spot b:nth-child(4){right:0;top:5px;transform:rotate(20deg)}.sticker-spot em{position:absolute;left:7px;bottom:0;width:16px;height:13px;border-radius:52% 52% 44% 44%;background:#b8aea8}
.sticker-spot.is-unlocked{opacity:1;filter:none;animation:stickerLand .52s cubic-bezier(.2,.9,.2,1.25) both}.sticker-spot.is-unlocked.mint :is(b,em){background:#83c7ad}.sticker-spot.is-unlocked.peach :is(b,em){background:#efaa8f}.sticker-spot.is-unlocked.lilac :is(b,em){background:#b69bd2}.sticker-spot.is-unlocked.honey :is(b,em){background:#e8bf69}.sticker-spot.is-unlocked.sky :is(b,em){background:#83b9d5}.sticker-spot.is-unlocked.rose :is(b,em){background:#df8ca7}.sticker-spot.is-unlocked.sage :is(b,em){background:#91b491}.sticker-spot.is-unlocked.rainbow :is(b,em){background:linear-gradient(145deg,#f3a4a1,#f1c76e,#84c8af,#8dbada,#b49ad4)}
.bathroom-sticker-wall.has-new-sticker{animation:stickerWallGlow 1s ease both}.bathroom-sticker-wall.is-complete{border-style:solid;box-shadow:inset 0 1px #fff,0 0 23px rgba(190,155,230,.27)}
.rainbow-shampoo{position:absolute;z-index:55;left:22%;bottom:29%;width:62px;height:91px;filter:drop-shadow(0 8px 6px rgba(83,62,57,.15))}.shampoo-bottle{position:absolute;left:9px;right:6px;bottom:13px;height:60px;border:3px solid #765f66;border-radius:13px 13px 18px 18px;background:linear-gradient(145deg,#f3aaa6,#f3d180 31%,#94d1b7 53%,#90bfe0 74%,#bea6da);box-shadow:inset 5px 5px rgba(255,255,255,.28)}.shampoo-bottle i{position:absolute;left:11px;right:11px;top:18px;height:20px;border-radius:50%;background:rgba(255,255,255,.7);box-shadow:0 0 13px rgba(255,255,255,.65)}.shampoo-pump{position:absolute;z-index:2;left:20px;top:0;width:28px;height:23px;border:3px solid #765f66;border-bottom:0;border-radius:8px 8px 0 0;background:#fff8ed}.shampoo-pump::after{content:"";position:absolute;left:10px;top:-5px;width:30px;height:7px;border:3px solid #765f66;border-left:0;border-radius:0 7px 7px 0;background:#fff8ed}.rainbow-shampoo small{position:absolute;left:50%;bottom:0;color:#7c6670;font-size:7px;font-weight:900;white-space:nowrap;transform:translateX(-50%)}
.litter-box.is-dirty .warning-light{background:#ee8a5c;box-shadow:0 0 0 4px rgba(238,138,92,.18),0 0 13px #ee8a5c;animation:litterWarning 1.6s ease-in-out infinite}.litter-box.is-dirty .litter-sand::after{content:"";position:absolute;left:43%;top:36%;width:25px;height:15px;border-radius:50%;background:#92877e;box-shadow:0 2px 0 rgba(95,77,68,.18)}
.bathroom-paw-trail{position:absolute;z-index:64;left:39%;right:5%;bottom:4%;height:25%;pointer-events:none}.bathroom-paw-trail i{position:absolute;width:28px;height:24px;opacity:0;filter:blur(.2px);transform:rotate(-14deg) scale(.6)}.bathroom-paw-trail i::before{content:"";position:absolute;left:7px;bottom:0;width:15px;height:12px;border-radius:50% 50% 44% 44%;background:rgba(137,134,132,.44);box-shadow:-7px -8px 0 -3px rgba(137,134,132,.44),0 -12px 0 -3px rgba(137,134,132,.44),7px -8px 0 -3px rgba(137,134,132,.44),0 3px 9px rgba(130,123,119,.24)}.bathroom-paw-trail i:nth-child(1){right:4%;top:9%}.bathroom-paw-trail i:nth-child(2){right:15%;top:31%}.bathroom-paw-trail i:nth-child(3){right:27%;top:16%}.bathroom-paw-trail i:nth-child(4){right:40%;top:45%}.bathroom-paw-trail i:nth-child(5){right:54%;top:30%}.bathroom-paw-trail i:nth-child(6){right:68%;top:62%}.bathroom-paw-trail i:nth-child(7){right:83%;top:44%}.bathroom-paw-trail.is-active i{animation:pawPrintBloom 4.2s ease forwards}.bathroom-paw-trail.is-active i:nth-child(2){animation-delay:.34s}.bathroom-paw-trail.is-active i:nth-child(3){animation-delay:.68s}.bathroom-paw-trail.is-active i:nth-child(4){animation-delay:1.02s}.bathroom-paw-trail.is-active i:nth-child(5){animation-delay:1.36s}.bathroom-paw-trail.is-active i:nth-child(6){animation-delay:1.7s}.bathroom-paw-trail.is-active i:nth-child(7){animation-delay:2.04s}
.bathroom-game{position:absolute;z-index:76;inset:0;overflow:hidden;background:rgba(243,251,248,.61);backdrop-filter:blur(7px);opacity:0;transition:opacity .24s ease}.bathroom-game.is-active{opacity:1}.bathroom-game>header{position:absolute;z-index:4;left:50%;top:3%;width:min(640px,88%);min-height:62px;display:flex;align-items:center;gap:15px;padding:9px 11px 9px 18px;border:1px solid rgba(255,255,255,.82);border-radius:21px;background:rgba(255,255,255,.78);box-shadow:inset 0 1px #fff,0 10px 25px rgba(68,77,72,.14);transform:translateX(-50%)}.bathroom-game>header>span{display:flex;min-width:0;flex:1;flex-direction:column}.bathroom-game>header b{font-size:14px}.bathroom-game>header small{margin-top:2px;color:#81766f;font-size:9px}.bathroom-game>header strong{color:#4a766a;font-size:16px;font-variant-numeric:tabular-nums}.bathroom-game>header button,.litter-assist-button{min-width:86px;min-height:44px;padding:7px 12px;border:1px solid rgba(255,255,255,.76);border-radius:15px;color:#675a54;cursor:pointer;background:rgba(255,255,255,.72);box-shadow:inset 0 1px #fff,0 6px 13px rgba(67,53,47,.11);font-size:10px;font-weight:850}
.bubble-field{position:absolute;inset:0}.bath-bubble{position:absolute;left:var(--bubble-x);top:var(--bubble-y);width:var(--bubble-size);height:var(--bubble-size);padding:0;border:2px solid rgba(86,170,153,.46);border-radius:50%;cursor:pointer;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.92) 0 9%,rgba(218,255,241,.38) 13% 35%,rgba(96,204,168,.24) 66%,rgba(255,255,255,.13));box-shadow:inset -6px -7px 12px rgba(68,174,150,.19),0 0 18px rgba(127,223,194,.28);animation:bathBubbleFloat 4.4s ease-in-out var(--bubble-delay) infinite alternate;transform:translate(-50%,-50%);touch-action:manipulation}.bath-bubble i{position:absolute;left:20%;top:17%;width:23%;height:17%;border-radius:50%;background:rgba(255,255,255,.75);transform:rotate(-35deg)}.bath-bubble:hover{filter:brightness(1.06);box-shadow:inset -6px -7px 12px rgba(68,174,150,.19),0 0 24px rgba(87,207,170,.42)}.bath-bubble.is-popped{animation:bathBubblePop .32s ease-out both!important;pointer-events:none}
.litter-game{background:rgba(251,247,242,.67)}.litter-challenge-pad{--cover-progress:0;--paw-x:18%;--paw-y:52%;position:absolute;left:50%;top:54%;width:min(700px,83%);height:min(390px,61%);overflow:hidden;border:4px solid #937f7b;border-radius:43px;background:linear-gradient(#f6c4cd 0 18%,#d9edf1 19% 30%,#e5e1dc 31%);box-shadow:inset 0 -15px rgba(158,105,111,.08),0 18px 35px rgba(80,59,54,.15);transform:translate(-50%,-50%)}.challenge-tray{position:absolute;left:4%;right:4%;bottom:5%;height:62%;border:4px solid #789da8;border-radius:35px;background:#f8f2e9;box-shadow:inset 0 -8px rgba(92,129,138,.1)}.challenge-sand{position:absolute;left:8%;right:8%;bottom:10%;height:51%;border-radius:45%;background:radial-gradient(circle at 13% 31%,#aba8a4 0 2px,transparent 3px),radial-gradient(circle at 72% 65%,#b6b2ae 0 2px,transparent 3px),#d7d4cf;background-size:29px 24px,35px 31px,auto;box-shadow:inset 0 9px rgba(255,255,255,.34)}.challenge-mess{position:absolute;z-index:2;left:47%;top:55%;width:62px;height:30px;border-radius:50%;background:#81756e;box-shadow:0 4px 0 rgba(72,58,54,.15);transform:translate(-50%,-50%) scale(calc(1 - var(--cover-progress) * .62));opacity:calc(1 - var(--cover-progress) * .92);transition:transform .15s ease,opacity .15s ease}.challenge-cover{position:absolute;z-index:3;left:34%;top:43%;width:29%;height:33%;border-radius:50%;background:#c5c1bc;box-shadow:inset 0 8px rgba(255,255,255,.22),0 4px 8px rgba(87,73,67,.12);transform:scale(calc(.08 + var(--cover-progress) * .92));opacity:var(--cover-progress);transition:transform .12s ease,opacity .12s ease}.challenge-paw{position:absolute;z-index:5;left:var(--paw-x);top:var(--paw-y);width:78px;height:88px;padding:0;border:0;cursor:grab;background:transparent;filter:drop-shadow(0 8px 4px rgba(88,61,50,.16));transform:translate(-50%,-50%) rotate(-16deg);touch-action:none}.challenge-paw::before{content:"";position:absolute;left:23px;bottom:2px;width:40px;height:49px;border:4px solid var(--dark-line);border-radius:48% 48% 40% 40%;background:var(--pet-main)}.challenge-paw::after{content:"";position:absolute;left:12px;top:0;width:60px;height:60px;border:4px solid var(--dark-line);border-radius:46% 46% 52% 52%;background:var(--pet-main)}.challenge-paw i{position:absolute;z-index:2;left:31px;top:24px;width:24px;height:19px;border-radius:50%;background:#e6a1b1;box-shadow:-18px -9px 0 -6px #e6a1b1,-6px -17px 0 -6px #e6a1b1,7px -17px 0 -6px #e6a1b1,19px -9px 0 -6px #e6a1b1}.challenge-paw.is-dragging{cursor:grabbing}.challenge-paw.is-scooping{animation:litterPawScoop .18s ease}
.litter-assist-button{position:absolute;z-index:6;left:50%;bottom:3%;transform:translateX(-50%)}.litter-game.is-complete .challenge-cover{box-shadow:inset 0 8px rgba(255,255,255,.24),0 0 25px rgba(124,190,163,.46)}.litter-game.is-failed .cat-stage{filter:none}
.sand-spray{position:absolute;z-index:8;inset:0;pointer-events:none}.sand-spray i{position:absolute;left:50%;top:56%;width:8px;height:6px;border-radius:50%;background:#aaa5a0;opacity:0}.sand-spray.is-spraying i{animation:sandSpray 1.5s ease-out both}.sand-spray.is-spraying i:nth-child(1){--sx:-280px;--sy:-160px}.sand-spray.is-spraying i:nth-child(2){--sx:-190px;--sy:-245px;animation-delay:.05s}.sand-spray.is-spraying i:nth-child(3){--sx:-80px;--sy:-195px;animation-delay:.1s}.sand-spray.is-spraying i:nth-child(4){--sx:45px;--sy:-260px;animation-delay:.03s}.sand-spray.is-spraying i:nth-child(5){--sx:175px;--sy:-210px;animation-delay:.12s}.sand-spray.is-spraying i:nth-child(6){--sx:285px;--sy:-145px;animation-delay:.08s}.sand-spray.is-spraying i:nth-child(7){--sx:-250px;--sy:60px;animation-delay:.14s}.sand-spray.is-spraying i:nth-child(8){--sx:-115px;--sy:110px;animation-delay:.06s}.sand-spray.is-spraying i:nth-child(9){--sx:145px;--sy:100px;animation-delay:.16s}.sand-spray.is-spraying i:nth-child(10){--sx:270px;--sy:44px;animation-delay:.1s}
.cloud-bathrobe{display:none;position:absolute;z-index:8;left:37px;right:37px;bottom:7px;height:151px;border:5px solid var(--dark-line);border-radius:50% 50% 38% 38%;background:linear-gradient(135deg,#f4f4ff,#d8edf5 32%,#e2d5ef 63%,#f7e5ed);box-shadow:inset 0 -13px rgba(124,103,151,.1),inset 7px 8px rgba(255,255,255,.32)}.cloud-bathrobe::before{content:"";position:absolute;left:50%;top:-17px;width:72px;height:29px;border:5px solid var(--dark-line);border-radius:50%;background:#ecf3f6;transform:translateX(-50%)}.cloud-bathrobe::after{content:"";position:absolute;right:-6px;top:44px;width:34px;height:49px;border:5px solid var(--dark-line);border-radius:40% 55% 50% 45%;background:#dcdcf0;transform:rotate(-18deg)}.cat-stage.is-wearing-bathrobe .cloud-bathrobe{display:block}.cat-stage.is-bathrobe-rolling .big-cat{animation:bathrobeRoll 1.45s cubic-bezier(.2,.8,.2,1) 3!important}.cat-stage.is-macaron-shimmer .big-cat{filter:drop-shadow(0 0 6px rgba(241,157,183,.5)) drop-shadow(0 0 10px rgba(130,201,211,.38));animation:macaronShimmer 1.6s ease-in-out infinite alternate}.cat-stage.is-macaron-shimmer .cat-body,.cat-stage.is-macaron-shimmer .cat-head{box-shadow:inset -11px -9px rgba(98,65,120,.08),0 0 0 3px rgba(255,216,231,.25),0 0 14px rgba(168,211,216,.33)}
.room.is-bathroom .cat-stage.is-litter-staring[data-positioned="true"]{left:79%!important;bottom:3%!important}.cat-stage.is-litter-staring .cat-head{animation:litterHeadTilt .9s ease-in-out infinite alternate!important}.cat-stage.is-litter-tracking .big-cat{animation:litterWalkAway 3s ease-in-out both!important}.room.is-bathroom .cat-stage.is-using-litter[data-positioned="true"]{left:82%!important;bottom:4%!important;opacity:.76}.cat-stage.is-side-eyeing .cat-eye.left{transform:translateX(4px) scaleY(.55)}.cat-stage.is-side-eyeing .cat-eye.right{transform:translateX(4px) scaleY(.55)}.cat-stage.is-side-eyeing .cat-head{animation:sideEyeTurn .65s ease-in-out 2 alternate!important}
.event-fun-card.is-unavailable{color:#8e8580;background:#f2efec;box-shadow:none}.event-fun-card.is-unavailable .fun-icon{color:#8a8791;background:#dedde3}.event-fun-card.is-unavailable::after{content:"等待天亮";margin-top:auto;padding:3px 7px;border-radius:8px;background:#e7e2df;color:#776e69;font-size:9px;font-weight:850}

.star-gift-card{width:min(900px,calc(100% - 28px));max-height:min(89dvh,780px);overflow:auto;padding:24px;border:1px solid rgba(255,255,255,.72);border-radius:30px;background:linear-gradient(145deg,rgba(255,252,247,.97),rgba(242,235,250,.96));box-shadow:0 26px 70px rgba(65,48,60,.28);backdrop-filter:blur(20px)}
.star-gift-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.star-gift-header h2{margin:3px 0 0;font-size:24px}.star-gift-step.choose{display:grid;grid-template-columns:1.08fr .92fr;gap:18px}.gift-recipient-picker{min-width:0;margin:0;padding:0;border:0}.gift-recipient-picker legend,.gift-source-panel>p{margin:0 0 9px;color:#756158;font-size:12px;font-weight:900}.gift-recipient-picker label{display:block;margin-bottom:8px;cursor:pointer}.gift-recipient-picker input,.gift-source-list input{position:absolute;opacity:0;pointer-events:none}.gift-recipient-picker label>span{min-height:67px;display:grid;grid-template-columns:47px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:11px;padding:8px 11px;border:2px solid transparent;border-radius:18px;background:rgba(255,255,255,.72);box-shadow:0 6px 13px rgba(76,53,49,.07);transition:border-color 160ms ease,transform 160ms ease,background 160ms ease}.gift-recipient-picker input:checked+span{border-color:#a78ac6;background:#f6f0fc;transform:translateY(-1px)}.gift-recipient-picker input:focus-visible+span,.gift-source-list input:focus-visible+*{outline:3px solid rgba(101,139,180,.43);outline-offset:2px}.gift-recipient-picker b{align-self:end;font-size:12px}.gift-recipient-picker small{grid-column:2;align-self:start;color:#92817a;font-size:9px}.recipient-cat{position:relative;grid-row:1/3;width:43px;height:43px;border:3px solid #6e5248;border-radius:50%;background:#eda47f}.recipient-cat::before,.recipient-cat::after{content:"";position:absolute;top:-8px;width:17px;height:18px;border:3px solid #6e5248;background:inherit;clip-path:polygon(50% 0,100% 100%,0 100%)}.recipient-cat::before{left:1px;transform:rotate(-11deg)}.recipient-cat::after{right:1px;transform:rotate(11deg)}.recipient-cat.mint{background:#9acbb8}.recipient-cat.lilac{background:#baa4d3}
.gift-source-panel{padding:14px;border-radius:20px;background:rgba(255,255,255,.5)}.gift-source-list{display:grid;gap:8px;max-height:250px;overflow:auto}.gift-source-list label{min-height:59px;display:grid;grid-template-columns:47px 1fr;align-items:center;gap:10px;padding:7px 10px;border:2px solid transparent;border-radius:16px;cursor:pointer;background:#fff;box-shadow:0 5px 12px rgba(75,54,47,.07)}.gift-source-list label:has(input:checked){border-color:#e0b85c;background:#fff9e9}.gift-source-list strong{font-size:11px}.gift-source-icon{position:relative;width:42px;height:45px;display:block}.gift-source-icon.starBottle::before,.gift-source-icon.roundBottle::before{content:"";position:absolute;left:8px;right:8px;bottom:2px;height:31px;border:3px solid #786456;border-radius:11px 11px 15px 15px;background:rgba(255,233,143,.47);box-shadow:0 0 12px rgba(255,218,102,.62)}.gift-source-icon.roundBottle::before{left:4px;right:4px;border-radius:50%}.gift-source-icon.net::before{content:"";position:absolute;left:3px;top:0;width:31px;height:27px;border:4px solid #8c7254;border-radius:50%;background:radial-gradient(circle at 35% 32%,#fff1a6 0 2px,transparent 3px),radial-gradient(circle at 68% 57%,#fff1a6 0 2px,transparent 3px),rgba(255,240,171,.23);box-shadow:0 0 12px rgba(255,219,104,.55)}.gift-source-icon.net::after{content:"";position:absolute;left:28px;top:23px;width:7px;height:24px;border-radius:5px;background:#8c7254;transform:rotate(-25deg)}.star-gift-step.choose>.primary-button{grid-column:1/-1;justify-self:center;min-width:210px}.star-gift-step.choose>.field-error{grid-column:1/-1;margin:0;text-align:center}
.gift-letter-scene{position:relative;height:440px;overflow:hidden;border:1px solid rgba(117,91,113,.12);border-radius:25px;background:radial-gradient(circle at 50% 42%,rgba(255,247,193,.45),transparent 25%),linear-gradient(#e9e2f4,#f8ebee 54%,#eadfcf);box-shadow:inset 0 -14px rgba(127,87,72,.06)}.gift-letter-copy{position:absolute;z-index:7;left:50%;top:18px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 15px;border-radius:15px;background:rgba(255,255,255,.72);box-shadow:0 6px 14px rgba(78,56,65,.08);transform:translateX(-50%)}.gift-letter-copy span{font-size:12px;font-weight:900}.gift-letter-copy small{color:#8f7e80;font-size:9px;white-space:nowrap}.gift-envelope{position:absolute;z-index:3;left:50%;top:51%;width:330px;height:210px;transform:translate(-50%,-50%)}.envelope-back{position:absolute;inset:0;border:4px solid #856d69;border-radius:18px;background:#fff3db;box-shadow:0 14px 25px rgba(77,51,52,.16)}.envelope-pocket{position:absolute;z-index:5;inset:31% 0 0;overflow:hidden;border:4px solid #856d69;border-top:0;border-radius:0 0 18px 18px;background:linear-gradient(152deg,transparent 49%,#f1cfaa 50%),linear-gradient(208deg,transparent 49%,#f7dbc0 50%)}.envelope-flap{position:absolute;z-index:7;left:2px;right:2px;top:-2px;height:50%;padding:0;border:0;cursor:grab;background:#f8dfbd;clip-path:polygon(0 0,100% 0,50% 100%);transform:translateY(var(--flap-drag,0)) rotateX(0);transform-origin:top;transition:transform .32s ease}.envelope-flap i{position:absolute;left:50%;top:14px;width:54px;height:8px;border-radius:6px;background:rgba(150,104,83,.22);transform:translateX(-50%)}.gift-letter-scene.is-inserted .envelope-flap{filter:drop-shadow(0 3px 2px rgba(87,57,50,.13))}.gift-letter-scene.is-sealed .envelope-flap{transform:translateY(0) rotateX(180deg);cursor:default}.envelope-seal{position:absolute;z-index:9;left:50%;top:45%;width:48px;height:48px;display:grid;place-items:center;border:3px solid #8c5b67;border-radius:50%;color:#fff4c4;opacity:0;background:#c77c8e;box-shadow:0 5px 9px rgba(91,56,64,.16);transform:translate(-50%,-50%) scale(.45);transition:opacity .25s ease .18s,transform .35s cubic-bezier(.2,.9,.2,1.2) .16s}.envelope-seal svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8}.gift-letter-scene.is-sealed .envelope-seal{opacity:1;transform:translate(-50%,-50%) scale(1)}
.star-gift-item{position:absolute;z-index:6;left:10%;top:47%;width:80px;height:104px;padding:0;border:0;cursor:grab;background:transparent;filter:drop-shadow(0 9px 7px rgba(65,47,51,.17));transform:translate(var(--gift-x,0),var(--gift-y,0));touch-action:none;transition:filter .16s ease,transform .28s cubic-bezier(.2,.78,.2,1),opacity .28s ease}.star-gift-item.is-dragging{cursor:grabbing;transition:none;filter:drop-shadow(0 16px 10px rgba(65,47,51,.22))}.star-gift-item::before{content:"";position:absolute;left:19px;right:19px;bottom:5px;height:70px;border:4px solid #75605c;border-radius:16px 16px 23px 23px;background:rgba(255,238,153,.55);box-shadow:inset 5px 6px rgba(255,255,255,.29),0 0 18px rgba(255,220,102,.65)}.star-gift-item::after{content:"";position:absolute;left:31px;top:13px;width:24px;height:24px;border:4px solid #75605c;border-bottom:0;border-radius:7px 7px 0 0;background:#f8e6bc}.star-gift-item.is-round-bottle::before{left:10px;right:10px;height:70px;border-radius:50%}.star-gift-item.is-net{width:110px}.star-gift-item.is-net::before{left:4px;right:auto;top:3px;bottom:auto;width:67px;height:63px;border-color:#826a50;border-radius:50%;background:radial-gradient(circle at 32% 35%,#fff5aa 0 4px,transparent 5px),radial-gradient(circle at 69% 59%,#fff5aa 0 4px,transparent 5px),rgba(255,240,165,.28)}.star-gift-item.is-net::after{left:67px;top:58px;width:12px;height:46px;border:0;border-radius:7px;background:#826a50;transform:rotate(-33deg)}.gift-letter-scene.is-inserted .star-gift-item{left:50%;top:46%;z-index:4;opacity:.78;pointer-events:none;transform:translate(-50%,-50%) scale(.72)}.gift-flight-stars i{position:absolute;left:50%;top:50%;width:8px;height:8px;border-radius:2px;background:#ffe781;opacity:0;box-shadow:0 0 11px #ffd568;transform:rotate(45deg)}.gift-letter-scene.is-sent .gift-envelope{animation:giftLetterFly 1.8s cubic-bezier(.2,.75,.2,1) both}.gift-letter-scene.is-sent .gift-flight-stars i{animation:giftStarTrail 1.3s ease-out both}.gift-letter-scene.is-sent .gift-flight-stars i:nth-child(2){animation-delay:.12s}.gift-letter-scene.is-sent .gift-flight-stars i:nth-child(3){animation-delay:.24s}.gift-letter-scene.is-sent .gift-flight-stars i:nth-child(4){animation-delay:.36s}.gift-letter-scene.is-sent .gift-flight-stars i:nth-child(5){animation-delay:.48s}.star-gift-step.packing>.secondary-button{display:block;margin:12px auto 0}

/* A real drinking crouch: the body lowers first, and the shorter tongue bends
   from the mouth toward the fountain instead of forming a long rigid line. */
.cat-stage[data-pose="prone"].is-drinking .big-cat{animation:drinkCrouchV3148 3.8s ease-in-out both!important}.cat-stage[data-pose="prone"].is-drinking .cat-body{animation:drinkProneChestV3148 3.8s ease-in-out both!important}.cat-stage[data-pose="prone"].is-drinking .cat-head{transform-origin:50% 86%;animation:drinkProneHeadV3148 3.8s ease-in-out both!important}.cat-stage[data-pose="prone"].is-drinking.drink-facing-right .cat-head{animation-name:drinkProneHeadRightV3148!important}.cat-stage[data-pose="prone"].is-drinking .cat-tail{animation:drinkTailV311 3.8s ease-in-out both!important}.cat-drink-tongue{width:8px;border-width:2px;border-radius:45% 55% 75% 35%;background:linear-gradient(105deg,#df889c,#f3b4c0 55%,#d77b92);transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) skewX(-7deg) scaleY(.1)}.cat-drink-tongue.is-active{animation:shortCurvedTongueV3148 .46s ease-in-out .22s 7}
@keyframes shortCurvedTongueV3148{0%,100%{opacity:0;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) skewX(-11deg) scaleY(.16)}30%,64%{opacity:1;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) skewX(8deg) scaleY(1)}78%{opacity:.85;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) skewX(-5deg) scaleY(.72)}}
@keyframes drinkCrouchV3148{0%,11%,92%,100%{transform:translateX(-50%)}22%,82%{transform:translateX(-50%) translateY(5px)}}@keyframes drinkProneChestV3148{0%,100%{transform:none}22%,82%{transform:scaleY(.82) translateY(14px)}}@keyframes drinkProneHeadV3148{0%,12%,91%,100%{transform:translate(0,0) rotate(0)}23%,82%{transform:translate(-14px,31px) rotate(-9deg)}}@keyframes drinkProneHeadRightV3148{0%,12%,91%,100%{transform:translate(0,0) rotate(0)}23%,82%{transform:translate(14px,31px) rotate(9deg)}}

@keyframes stickerLand{0%{opacity:0;transform:scale(.25) rotate(-24deg)}72%{opacity:1;transform:scale(1.16) rotate(5deg)}100%{opacity:1;transform:scale(1) rotate(var(--paw-tilt,-7deg))}}@keyframes stickerWallGlow{40%{transform:scale(1.025);box-shadow:0 0 27px rgba(232,178,119,.42)}100%{transform:none}}@keyframes litterWarning{50%{opacity:.58;transform:scale(.86)}}@keyframes pawPrintBloom{0%{opacity:0;transform:rotate(-14deg) scale(.45);filter:blur(0)}24%{opacity:.72;transform:rotate(-8deg) scale(1)}100%{opacity:.24;transform:rotate(-3deg) scale(1.16);filter:blur(1.3px)}}@keyframes bathBubbleFloat{0%{transform:translate(-50%,-50%) translate(-7px,7px)}100%{transform:translate(-50%,-50%) translate(8px,-13px)}}@keyframes bathBubblePop{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}65%{opacity:.65;transform:translate(-50%,-50%) scale(1.38)}100%{opacity:0;transform:translate(-50%,-50%) scale(.1)}}@keyframes litterPawScoop{50%{transform:translate(-50%,-50%) rotate(-25deg) scale(.96)}}@keyframes sandSpray{0%{opacity:0;transform:translate(0,0) scale(.5)}22%{opacity:.9}100%{opacity:0;transform:translate(var(--sx),var(--sy)) rotate(420deg) scale(1.3)}}@keyframes bathrobeRoll{0%,100%{transform:translateX(-50%) rotate(0)}35%{transform:translateX(-50%) rotate(-11deg) translateY(4px)}70%{transform:translateX(-50%) rotate(10deg) translateY(2px)}}@keyframes macaronShimmer{from{filter:drop-shadow(0 0 5px rgba(241,157,183,.36)) drop-shadow(0 0 8px rgba(130,201,211,.28))}to{filter:drop-shadow(0 0 10px rgba(239,181,116,.5)) drop-shadow(0 0 15px rgba(179,143,216,.45))}}@keyframes litterHeadTilt{from{transform:rotate(-4deg)}to{transform:rotate(9deg)}}@keyframes litterWalkAway{0%{transform:translateX(-50%)}45%{transform:translateX(-56%) translateY(-2px)}100%{transform:translateX(-85%)}}@keyframes sideEyeTurn{to{transform:translateX(6px) rotate(5deg)}}@keyframes giftLetterFly{0%{transform:translate(-50%,-50%) rotate(0);opacity:1}45%{transform:translate(-30%,-72%) rotate(8deg);opacity:1}100%{transform:translate(120%,-190%) rotate(17deg);opacity:0}}@keyframes giftStarTrail{0%{opacity:0;transform:translate(0,0) rotate(45deg) scale(.4)}30%{opacity:1}100%{opacity:0;transform:translate(-180px,120px) rotate(225deg) scale(1.2)}}

@media (max-width:980px){.bathroom-actions{top:10%;left:52%}.bathroom-action{min-width:125px}.bathroom-sticker-wall{left:25%;top:30%;min-width:205px;width:27%}.rainbow-shampoo{left:22%}.star-gift-card{padding:19px}.gift-letter-scene{height:410px}}
@media (max-width:720px){.bathroom-actions{left:50%;top:10%;gap:5px}.bathroom-action{min-width:0;width:122px;min-height:47px;padding:6px 9px;border-radius:15px}.bathroom-action svg{width:20px;height:20px}.bathroom-action b{font-size:9px}.bathroom-action small{font-size:7px;max-width:82px;overflow:hidden;text-overflow:ellipsis}.bathroom-sticker-wall{left:27%;top:25%;min-width:0;width:43%;height:83px;padding:6px}.sticker-spots{height:55px}.sticker-spot{transform:scale(.78) rotate(var(--paw-tilt,-7deg))}.rainbow-shampoo{left:21%;bottom:26%;transform:scale(.72);transform-origin:bottom}.room.is-bathroom .cat-stage.is-litter-staring[data-positioned="true"],.room.is-bathroom .cat-stage.is-using-litter[data-positioned="true"]{left:76%!important}.bathroom-game>header{top:2%;width:94%;min-height:55px;padding:7px 8px 7px 12px}.bathroom-game>header b{font-size:11px}.bathroom-game>header strong{font-size:12px}.bathroom-game>header button{min-width:70px}.litter-challenge-pad{width:94%;height:59%}.star-gift-card{width:calc(100% - 18px);max-height:92dvh;padding:16px;border-radius:24px}.star-gift-header{margin-bottom:12px}.star-gift-header h2{font-size:20px}.star-gift-step.choose{grid-template-columns:1fr;gap:11px}.gift-recipient-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.gift-recipient-picker legend{grid-column:1/-1}.gift-recipient-picker label{margin:0}.gift-recipient-picker label>span{min-height:105px;display:flex;flex-direction:column;gap:4px;padding:7px;text-align:center}.gift-recipient-picker b{font-size:9px}.gift-recipient-picker small{font-size:7px;line-height:1.25}.recipient-cat{flex:0 0 auto}.gift-source-list{max-height:128px}.gift-letter-scene{height:390px}.gift-envelope{width:270px;height:174px}.star-gift-item{left:4%;top:52%;transform:translate(var(--gift-x,0),var(--gift-y,0)) scale(.82)}.gift-letter-scene.is-inserted .star-gift-item{left:50%;top:46%;transform:translate(-50%,-50%) scale(.62)}.gift-letter-copy{top:10px;max-width:92%}.gift-letter-copy small{max-width:260px;overflow:hidden;text-overflow:ellipsis}.star-gift-step.packing>.secondary-button{min-height:44px}}
@media (max-width:420px){.bathroom-actions{top:9%;width:95%;justify-content:center}.bathroom-action{width:116px}.bathroom-sticker-wall{left:26%;top:26%;width:45%;height:76px}.sticker-wall-title{font-size:7px}.sticker-spots{height:50px;gap:0}.sticker-spot{transform:scale(.68) rotate(var(--paw-tilt,-7deg))}.rainbow-shampoo{left:18%;bottom:25%;transform:scale(.64)}.room.is-bathroom .cat-stage.is-litter-staring[data-positioned="true"],.room.is-bathroom .cat-stage.is-using-litter[data-positioned="true"]{left:72%!important}.bathroom-game>header small{max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.litter-challenge-pad{top:55%;height:55%}.gift-letter-scene{height:355px}.gift-envelope{width:238px;height:153px}.star-gift-item{top:55%;transform:translate(var(--gift-x,0),var(--gift-y,0)) scale(.72)}.gift-letter-scene.is-inserted .star-gift-item{transform:translate(-50%,-50%) scale(.56)}}
@media (orientation:landscape) and (max-height:500px) and (min-width:600px){.bathroom-actions{top:2%;left:52%}.bathroom-action{min-height:40px}.bathroom-sticker-wall{top:24%;height:75px}.rainbow-shampoo{bottom:17%;transform:scale(.65)}.bathroom-game>header{top:1%;min-height:45px}.litter-challenge-pad{top:57%;height:65%}.gift-letter-scene{height:295px}.gift-envelope{width:250px;height:160px}.star-gift-card{max-height:96dvh}.star-gift-step.choose{grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){.bath-bubble,.bathroom-paw-trail i,.cat-stage.is-bathrobe-rolling .big-cat,.cat-stage.is-macaron-shimmer .big-cat,.litter-box.is-dirty .warning-light,.gift-letter-scene.is-sent .gift-envelope,.gift-letter-scene.is-sent .gift-flight-stars i{animation:none!important}.bath-bubble.is-popped{opacity:0}.cat-drink-tongue.is-active{animation:none!important;opacity:1;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) skewX(4deg) scaleY(1)}}

/* v31.54 final cascade: these rules intentionally follow the legacy fixed
   bathroom positions. */
.room.is-bathroom .cat-stage[data-positioned="true"]{
  left:var(--bath-cat-x,52%)!important;right:auto!important;
  top:var(--bath-cat-y,92%)!important;bottom:auto!important;
  cursor:grab;transform:translate(-50%,-100%) scale(var(--cat-scale,.9))!important;
  transform-origin:50% 100%!important;
  transition:left .42s cubic-bezier(.2,.78,.2,1),top .42s cubic-bezier(.2,.78,.2,1),filter .25s ease!important;
}
.room.is-bathroom .cat-stage.is-bath-dragging[data-positioned="true"]{cursor:grabbing;transition:none!important}
.bathroom-vent{width:148px;height:64px;padding:12px 18px 9px;color:inherit;cursor:pointer;appearance:none;transition:filter .26s ease,transform .18s ease,box-shadow .26s ease}
.bathroom-cabinet-door{top:4px;bottom:3px;transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .3s ease}
.faucet-button{display:block;min-width:44px;min-height:44px;width:44px;height:44px;left:-6px;top:20px;padding:0;border:3px solid #d2c8ba;border-radius:16px;cursor:pointer;appearance:none;background:radial-gradient(ellipse at 50% 43%,#f8dea0 0 48%,#d8b86d 52% 60%,transparent 63%);box-shadow:inset 0 3px rgba(255,255,255,.55),0 3px 5px rgba(92,70,52,.1)}
@media(max-width:720px){.room.is-bathroom .cat-stage[data-positioned="true"]{--cat-scale:.72}}
@media(max-width:420px){.room.is-bathroom .cat-stage[data-positioned="true"]{--cat-scale:.64}}
@media(orientation:landscape) and (max-height:500px) and (min-width:600px){.room.is-bathroom .cat-stage[data-positioned="true"]{--cat-scale:.45}}
@media(prefers-reduced-motion:reduce){.room.is-bathroom .cat-stage[data-positioned="true"]{transition:none!important}}

/* v31.58: a full meteor net sheds soft stardust only after a deliberate,
   vigorous shake. The faint dust on Puffles is an overlay and never changes
   the cat's color, proportions, or silhouette. */
.room-decor.star-net.is-shedding-stardust .star-net-hoop{
  animation:fullNetDustRelease .62s cubic-bezier(.2,.78,.2,1);
}
.net-stardust-burst{
  position:absolute;z-index:46;inset:0;overflow:hidden;pointer-events:none;
}
.net-stardust-burst i{
  position:absolute;left:var(--dust-left);top:var(--dust-top);
  width:var(--dust-size);height:var(--dust-size);border-radius:40%;
  opacity:0;background:#fff5b7;
  box-shadow:0 0 4px rgba(255,248,193,.92),0 0 10px rgba(244,210,112,.52);
  transform:rotate(45deg) scale(.25);
  animation:netStardustFall var(--dust-duration) cubic-bezier(.18,.62,.34,1) var(--dust-delay) forwards;
  will-change:transform,opacity;
}
.cat-star-dust{
  position:absolute;z-index:24;inset:0;overflow:visible;pointer-events:none;
  animation:catStardustRest 10s linear both;
}
.cat-star-dust i{
  position:absolute;left:var(--cat-dust-x);top:var(--cat-dust-y);width:2px;height:2px;
  border-radius:50%;opacity:.2;background:#fff8cd;
  box-shadow:0 0 3px rgba(255,244,179,.62);
  animation:catStardustSettle .7s ease-out var(--cat-dust-delay) both;
}
@keyframes fullNetDustRelease{
  0%,100%{filter:none;transform:rotate(-8deg)}
  36%{filter:brightness(1.15);transform:rotate(-5deg) scale(1.025)}
}
@keyframes netStardustFall{
  0%{opacity:0;transform:translate(0,0) rotate(45deg) scale(.25)}
  15%{opacity:.84;transform:translate(0,5px) rotate(72deg) scale(1)}
  72%{opacity:.48}
  100%{opacity:0;transform:translate(var(--dust-drift-x),var(--dust-fall-y)) rotate(var(--dust-turn)) scale(.18)}
}
@keyframes catStardustSettle{from{opacity:0;transform:translateY(-3px) scale(.4)}to{opacity:.2;transform:none}}
@keyframes catStardustRest{0%,72%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){
  .room-decor.star-net.is-shedding-stardust .star-net-hoop{animation:none!important}
  .net-stardust-burst i{animation-duration:.55s!important}
  .cat-star-dust{animation-duration:1.5s!important}
  .cat-star-dust i{animation:none!important}
}

/* v31.59: four tactile wardrobe sets. These layers sit over the body but
   behind the paws, so the cat keeps its original anatomy and silhouette. */
.cat-outfit:is([data-outfit="scarf"],[data-outfit="sweater"],[data-outfit="cape"],[data-outfit="hat"]),
.preview-outfit{
  position:absolute;z-index:5;width:118px;height:98px;border:0!important;border-radius:0!important;
  overflow:visible;background:transparent!important;box-shadow:none!important;clip-path:none!important;
  pointer-events:none;
}
.cat-outfit:is([data-outfit="scarf"],[data-outfit="sweater"],[data-outfit="cape"],[data-outfit="hat"]){
  left:50%;top:132px!important;transform:translateX(-50%);
}
.cat-outfit:is([data-outfit="scarf"],[data-outfit="sweater"],[data-outfit="cape"],[data-outfit="hat"])::before,
.cat-outfit:is([data-outfit="scarf"],[data-outfit="sweater"],[data-outfit="cape"],[data-outfit="hat"])::after{content:none!important;display:none!important}
.preview-outfit{position:relative;left:auto;top:auto;transform:scale(.72);transform-origin:50% 58%}
.outfit-piece{position:absolute;display:block;inset:7px 2px 0;box-sizing:border-box;transform-origin:50% 16%;filter:drop-shadow(0 4px 2px rgba(75,52,43,.1))}
.outfit-piece i{position:absolute;display:block;box-sizing:border-box}

/* Milky cloud puff suit */
.puff-suit{
  border:4px solid var(--dark-line);border-radius:35% 35% 46% 46% / 27% 27% 50% 50%;
  background:
    radial-gradient(ellipse at 24% 28%,rgba(255,255,255,.88) 0 13%,transparent 14%),
    radial-gradient(ellipse at 70% 42%,rgba(255,255,255,.72) 0 14%,transparent 15%),
    linear-gradient(145deg,#fffdf6,#f6eee1 66%,#e9dcc9);
  box-shadow:inset 7px 5px rgba(255,255,255,.7),inset -7px -8px rgba(188,161,132,.1);
}
.puff-fold{left:12px;right:12px;height:18px;border-top:3px solid rgba(196,168,140,.42);border-radius:50%}
.puff-fold.f1{top:24px}.puff-fold.f2{top:43px;left:8px;right:8px}.puff-fold.f3{top:62px;left:13px;right:13px}
.puff-collar{left:14px;right:14px;top:-7px;height:18px;border:3px solid var(--dark-line);border-radius:999px;background:#f5d982;box-shadow:inset 0 4px rgba(255,248,195,.65)}
.puff-flower{top:-10px;width:6px;height:6px;border-radius:50%;background:#efacb7;box-shadow:0 -5px 0 1px #fffdf7,5px 0 0 1px #fffdf7,0 5px 0 1px #fffdf7,-5px 0 0 1px #fffdf7;transform:scale(.72)}
.puff-flower.flower-1{left:34px}.puff-flower.flower-2{left:52px}.puff-flower.flower-3{left:70px}
.puff-sun{left:50%;top:35px;width:20px;height:20px;border:3px solid #d9854f;border-radius:50%;background:#f3aa69;transform:translateX(-50%);box-shadow:0 0 9px rgba(240,172,99,.3)}
.puff-sun::after{content:"";position:absolute;inset:-9px;border:3px dashed #dfa064;border-radius:50%}
.puff-cuff{top:43px;width:16px;height:34px;border:3px solid var(--dark-line);border-radius:11px;background:#fff9ed;box-shadow:inset 0 -6px #eee1cd}
.puff-cuff.left{left:-11px;transform:rotate(8deg)}.puff-cuff.right{right:-11px;transform:rotate(-8deg)}
.puff-velcro{right:5px;top:4px;width:13px;height:9px;border:2px solid #9b9189;border-radius:4px;background:#d7d2cd}
.puff-velcro::after{content:"";position:absolute;left:3px;top:2px;width:2px;height:2px;border-radius:50%;background:#8f8984;box-shadow:4px 0 #8f8984,2px 3px #8f8984}

/* Deep-sea fisher cape */
.fisher-cape{
  border:4px solid var(--dark-line);border-radius:17px 17px 43% 43%;
  background:linear-gradient(145deg,#516b88,#304964 64%,#263c56);
  box-shadow:inset 7px 4px rgba(191,220,231,.12),inset -8px -8px rgba(11,30,49,.13);
}
.fisher-wave{left:8px;right:8px;bottom:8px;height:13px;border-top:3px solid #f7f3e9;border-radius:50%;background:radial-gradient(ellipse at 10px 0,transparent 0 7px,rgba(255,255,255,.88) 8px 9px,transparent 10px) 0 0/25px 12px repeat-x;filter:drop-shadow(0 0 2px rgba(225,239,246,.42))}
.fisher-hat{z-index:3;left:50%;top:-120px;width:86px;height:47px;background:var(--dark-line);clip-path:polygon(50% 0,84% 64%,98% 70%,100% 91%,69% 97%,50% 92%,31% 97%,0 91%,2% 70%,16% 64%);transform:translateX(-50%)}
.fisher-hat::before{content:"";position:absolute;inset:4px 5px 7px;background:#48637f;clip-path:inherit}
.fisher-hat::after{content:"";position:absolute;left:8px;right:8px;bottom:7px;height:7px;border-radius:50%;background:#7891a8;box-shadow:0 2px #e8f1f4}
.fisher-tassel{z-index:2;top:-77px;width:3px;height:31px;border-radius:4px;background:#f3ead7;transform-origin:50% 0}
.fisher-tassel.left{left:35px;transform:rotate(8deg)}.fisher-tassel.right{right:34px;transform:rotate(-7deg)}
.fisher-fish{left:42px;top:35px;width:31px;height:18px;border:3px solid #a95f35;border-radius:56% 45% 48% 52%;background:#ed9859}
.fisher-fish::before{content:"";position:absolute;right:-13px;top:1px;width:14px;height:13px;background:rgba(245,163,102,.82);clip-path:polygon(0 50%,100% 0,83% 50%,100% 100%)}
.fisher-fish::after{content:"";position:absolute;left:6px;top:4px;width:3px;height:3px;border-radius:50%;background:#49392f}
.fisher-bubbles{left:70px;top:25px;width:5px;height:5px;border:1.5px solid #fff;border-radius:50%;box-shadow:9px -6px 0 -1px #fff,12px 8px 0 -1px rgba(255,255,255,.9)}
.fisher-tail-hole{right:7px;bottom:18px;width:24px;height:21px;border:3px solid #f4f0e8;border-radius:50%;background:color-mix(in srgb,var(--pet-main),transparent 8%);box-shadow:inset 0 0 0 2px rgba(36,55,74,.2)}

/* Strawberry cream overalls */
.strawberry-overalls{
  border:4px solid var(--dark-line);border-radius:20px 20px 39px 39px;
  background-color:#f2b7c4;
  background-image:radial-gradient(circle,rgba(255,255,255,.9) 0 2px,transparent 2.5px);
  background-size:15px 15px;box-shadow:inset 7px 5px rgba(255,242,245,.32),inset -7px -7px rgba(180,87,112,.1);
}
.berry-strap{z-index:2;top:-31px;width:19px;height:46px;border:3px solid var(--dark-line);border-radius:10px;background:#f3b7c5}
.berry-strap.left{left:20px;transform:rotate(-7deg)}.berry-strap.right{right:20px;transform:rotate(7deg)}
.berry-strap::after{content:"";position:absolute;left:3px;top:3px;width:8px;height:8px;border-radius:45% 45% 56% 56%;background:#dc5b5c;box-shadow:0 13px #dc5b5c,0 26px #dc5b5c}
.berry-strap::before{content:"";position:absolute;z-index:2;left:4px;top:1px;width:6px;height:3px;border-radius:50% 50% 0 0;background:#6e9a67;box-shadow:0 13px #6e9a67,0 26px #6e9a67}
.berry-bow{z-index:3;top:6px;width:22px;height:12px}
.berry-bow.left{left:15px}.berry-bow.right{right:15px}
.berry-bow::before,.berry-bow::after{content:"";position:absolute;top:0;width:12px;height:11px;border:2px solid var(--dark-line);background:#fffaf4}
.berry-bow::before{left:0;border-radius:70% 35% 55% 45%;transform:rotate(14deg)}.berry-bow::after{right:0;border-radius:35% 70% 45% 55%;transform:rotate(-14deg)}
.cream-dots{inset:12px 8px 16px;border-radius:16px;background:radial-gradient(circle,#fff9f0 0 2px,transparent 2.6px) 0 0/13px 13px;opacity:.74}
.cream-lace{left:4px;right:4px;bottom:-10px;height:19px;border-top:3px solid var(--dark-line);background:radial-gradient(circle at 8px 1px,#fffaf1 0 8px,var(--dark-line) 8.5px 10px,transparent 10.5px) 0 0/21px 19px repeat-x}
.belly-space{left:31px;right:31px;bottom:13px;height:28px;border:2px solid rgba(153,74,94,.24);border-radius:50%;background:rgba(255,231,235,.24)}

/* Starlight magic cape */
.magic-cape{
  border:4px solid var(--dark-line);border-radius:18px 18px 48% 48%;
  background:linear-gradient(145deg,#554276,#30284f 68%,#241f42);
  box-shadow:inset 7px 5px rgba(188,171,220,.14),inset -8px -8px rgba(12,9,28,.18);
}
.magic-stars{inset:8px;border-radius:14px 14px 42% 42%;background:
  radial-gradient(circle at 12% 22%,#fffdf0 0 2px,transparent 2.5px),radial-gradient(circle at 38% 16%,#dddce7 0 1.5px,transparent 2px),
  radial-gradient(circle at 75% 24%,#fffdf0 0 2px,transparent 2.6px),radial-gradient(circle at 88% 51%,#d9dae3 0 1.5px,transparent 2px),
  radial-gradient(circle at 23% 65%,#f8f6ed 0 1.5px,transparent 2px),radial-gradient(circle at 61% 72%,#fff 0 2px,transparent 2.6px),
  radial-gradient(circle at 78% 87%,#dadce7 0 1.3px,transparent 1.8px)}
.magic-collar{z-index:3;left:8px;right:8px;top:-8px;height:20px;border:3px solid var(--dark-line);border-radius:999px;background:radial-gradient(circle at 8px 8px,#fffdf8 0 8px,#eee9e2 8.5px 10px,transparent 10.5px) 0 0/18px 18px repeat-x}
.magic-charm{z-index:4;top:3px;width:8px;height:8px;background:#d9dce4;clip-path:polygon(50% 0,61% 37%,100% 50%,61% 63%,50% 100%,38% 63%,0 50%,38% 37%);filter:drop-shadow(0 0 2px rgba(255,255,255,.65));transform-origin:50% -4px}
.magic-charm.c1{left:29px}.magic-charm.c2{left:51px}.magic-charm.c3{right:28px}
.magic-moon{left:50%;top:33px;width:25px;height:25px;border-radius:50%;background:#f4d67b;transform:translateX(-50%);box-shadow:0 0 8px rgba(244,214,123,.38)}
.magic-moon::after{content:"";position:absolute;left:8px;top:-2px;width:24px;height:24px;border-radius:50%;background:#40335f}
.magic-bow{left:50%;top:10px;width:11px;height:11px;border:3px solid #d6b8e5;border-radius:50%;background:#79619b;transform:translateX(-50%)}
.magic-bow::before,.magic-bow::after{content:"";position:absolute;top:-3px;width:20px;height:14px;border:3px solid var(--dark-line);background:#8f70b1}
.magic-bow::before{right:7px;border-radius:75% 35% 55% 45%;transform:rotate(10deg)}.magic-bow::after{left:7px;border-radius:35% 75% 45% 55%;transform:rotate(-10deg)}
.magic-tail-notch{right:7px;bottom:-2px;width:27px;height:28px;background:color-mix(in srgb,var(--pet-main),transparent 8%);clip-path:polygon(50% 100%,0 0,100% 0);filter:drop-shadow(0 -3px 0 var(--dark-line))}
.room.world-night .magic-stars,.room:not(.is-curtains-open):not(.is-lamp-on) .magic-stars{filter:drop-shadow(0 0 3px rgba(255,255,224,.7)) brightness(1.12)}
.room.world-night .magic-cape,.room:not(.is-curtains-open):not(.is-lamp-on) .magic-cape{filter:drop-shadow(0 3px 4px rgba(116,91,162,.23))}

/* The garment follows the body pose without modifying any cat part. */
.cat-stage[data-pose="prone"] .cat-outfit:is([data-outfit="scarf"],[data-outfit="sweater"],[data-outfit="cape"],[data-outfit="hat"]){top:169px!important;width:154px;height:62px;transform:translateX(-50%) scaleY(.78)}
.cat-stage[data-pose="prone"] .fisher-hat{top:-95px;left:43%;transform:translateX(-50%) scale(.88)}
.cat-stage[data-pose="roll"] .cat-outfit:is([data-outfit="scarf"],[data-outfit="sweater"],[data-outfit="cape"],[data-outfit="hat"]){left:55%;top:146px!important;width:134px;height:79px;transform:translateX(-50%) rotate(-7deg) scaleY(.9)}
.cat-stage[data-pose="roll"] .fisher-hat{left:7%;top:-51px;transform:rotate(-12deg) scale(.84)}
.cat-stage[data-pose="climb"] .cat-outfit:is([data-outfit="scarf"],[data-outfit="sweater"],[data-outfit="cape"],[data-outfit="hat"]){top:103px!important;width:90px;height:116px;transform:translateX(-50%) rotate(-5deg)}
.cat-stage[data-pose="climb"] .fisher-hat{top:-102px;transform:translateX(-50%) scale(.88)}
.cat-stage.is-back-facing .fisher-fish,.cat-stage.is-back-facing .fisher-bubbles,.cat-stage.is-back-facing .magic-moon,.cat-stage.is-back-facing .magic-bow{opacity:0}

.cat-stage:is([data-pose="walk"],[data-pose="trot"]) .outfit-piece{animation:outfitStepBob 1.1s ease-in-out infinite alternate}
.cat-stage:is([data-pose="walk"],[data-pose="trot"]) .puff-fold{animation:puffFoldBounce .72s ease-in-out infinite alternate}
.cat-stage:is([data-pose="walk"],[data-pose="trot"]) .fisher-tassel.left{animation:tasselLeft .78s ease-in-out infinite alternate}
.cat-stage:is([data-pose="walk"],[data-pose="trot"]) .fisher-tassel.right{animation:tasselRight .78s ease-in-out -.39s infinite alternate}
.cat-stage:is([data-pose="walk"],[data-pose="trot"]) .berry-strap::after{animation:berryBounce .68s ease-in-out infinite alternate}
.cat-stage:is([data-pose="walk"],[data-pose="trot"]) .magic-charm{animation:magicCharmSwing .86s ease-in-out infinite alternate}
.cat-stage[data-pose="jump"] .fisher-cape,.cat-stage[data-pose="jump"] .magic-cape{animation:capeLift 2.05s ease-in-out both}
@keyframes outfitStepBob{to{transform:translateY(-2px) rotate(.7deg)}}
@keyframes puffFoldBounce{to{transform:translateY(2px) scaleX(1.025)}}
@keyframes tasselLeft{to{transform:rotate(-8deg)}}@keyframes tasselRight{to{transform:rotate(8deg)}}
@keyframes berryBounce{to{transform:translateY(2px) rotate(5deg)}}
@keyframes magicCharmSwing{to{transform:rotate(16deg)}}
@keyframes capeLift{0%,18%,100%{transform:none}48%,68%{transform:translateY(-3px) skewX(-3deg) scaleY(.96)}}

.preview-outfit .fisher-hat{top:-39px;transform:translateX(-50%) scale(.76)}
.preview-outfit .fisher-tassel{top:-10px;height:22px}
.preview-outfit .puff-velcro{display:none}
@media(prefers-reduced-motion:reduce){
  .cat-stage .outfit-piece,.cat-stage .puff-fold,.cat-stage .fisher-tassel,.cat-stage .berry-strap::after,.cat-stage .magic-charm{animation:none!important}
}

/* Keep longer English wardrobe copy readable on narrow screens. */
.store-item{min-height:228px;display:flex;flex-direction:column}
.item-preview{flex:0 0 98px}
.store-item h3{overflow-wrap:anywhere}
.store-item .item-desc{
  min-height:47px;height:auto;display:-webkit-box;overflow:hidden;
  -webkit-box-orient:vertical;-webkit-line-clamp:3;
}
.store-item .item-action{margin-top:auto}

/* v31.61: the bathroom now has physical drop targets and usable care items. */
.rainbow-shampoo{
  padding:0;border:0;background:transparent;appearance:none;cursor:grab;touch-action:none;
  transition:left .32s cubic-bezier(.2,.78,.2,1),top .32s cubic-bezier(.2,.78,.2,1),transform .32s cubic-bezier(.2,.78,.2,1),filter .22s ease;
}
.rainbow-shampoo:focus-visible,.bathroom-cabinet-toggle:focus-visible{
  outline:4px solid rgba(91,139,172,.46);outline-offset:4px;border-radius:16px;
}
.rainbow-shampoo.is-squeezing .shampoo-pump{animation:shampooPumpPress .42s ease-out 2}
.cat-stage.is-rainbow-washed .cat-body::after{
  content:"";position:absolute;inset:7px 10px;border-radius:inherit;pointer-events:none;
  background:radial-gradient(circle at 23% 31%,rgba(255,244,183,.55) 0 2px,transparent 3px),radial-gradient(circle at 68% 57%,rgba(213,240,255,.48) 0 2px,transparent 3px),radial-gradient(circle at 46% 76%,rgba(246,205,238,.46) 0 1.5px,transparent 2.5px);
  filter:drop-shadow(0 0 4px rgba(255,226,166,.42));
}
.room.is-bathroom .cat-stage.is-in-bath[data-positioned="true"]{--cat-scale:.69;z-index:62!important}
.room.is-bathroom .cat-stage.is-in-bath :is(.cat-outfit,.cloud-bathrobe){display:none!important}
.room.is-bathroom .cat-stage.is-in-bath::after{
  content:"";position:absolute;z-index:30;left:50%;bottom:2px;width:205px;height:77px;
  border:4px solid rgba(99,159,177,.72);border-top-color:rgba(225,247,250,.72);border-radius:50%;
  pointer-events:none;background:linear-gradient(transparent 18%,rgba(164,216,224,.48) 54%,rgba(116,184,193,.62));
  box-shadow:inset 0 8px rgba(255,255,255,.21);transform:translateX(-50%);
}
@keyframes shampooPumpPress{50%{transform:translateY(5px)}}
@media(max-width:720px){.room.is-bathroom .cat-stage.is-in-bath[data-positioned="true"]{--cat-scale:.57}.room.is-bathroom .cat-stage.is-in-bath::after{width:172px;height:61px}}
@media(max-width:420px){.room.is-bathroom .cat-stage.is-in-bath[data-positioned="true"]{--cat-scale:.5}.room.is-bathroom .cat-stage.is-in-bath::after{width:154px;height:55px}}
@media(prefers-reduced-motion:reduce){.rainbow-shampoo,.rainbow-shampoo.is-squeezing .shampoo-pump{animation:none!important;transition:none!important}}

.bath-water-drops{position:absolute;z-index:34;left:50%;bottom:9px;width:238px;height:246px;display:none;pointer-events:none;transform:translateX(-50%)}
.room.is-bathroom .cat-stage.is-wet-dripping:not(.is-in-bath) .bath-water-drops{display:block}
.bath-water-drops i{position:absolute;width:10px;height:16px;border:2px solid rgba(94,158,187,.46);border-radius:68% 34% 68% 62%;background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(125,204,229,.7));box-shadow:0 3px 5px rgba(65,135,166,.2);animation:bathDripFallV3177 1.35s ease-in infinite}
.bath-water-drops i:nth-child(1){left:49px;top:78px;animation-delay:-.12s}.bath-water-drops i:nth-child(2){right:48px;top:91px;animation-delay:-.68s}.bath-water-drops i:nth-child(3){left:76px;top:164px;animation-delay:-.94s}.bath-water-drops i:nth-child(4){right:73px;top:177px;animation-delay:-.36s}.bath-water-drops i:nth-child(5){left:116px;top:133px;animation-delay:-1.17s}
@keyframes bathDripFallV3177{0%{opacity:0;translate:0 -5px;scale:.72}18%,64%{opacity:.9}100%{opacity:0;translate:0 35px;scale:.92}}
@media(prefers-reduced-motion:reduce){.bath-water-drops i{animation:none!important;opacity:.78}}

/* v31.62: calmer drinking, bathroom physics, deliberate bath entry and
   hands-on litter care. These are visual-state overlays only; the cat's base
   proportions and palette remain unchanged. */
.cat-stage[data-pose="sit"].is-drinking .big-cat{animation:drinkUprightBodyV3162 3.8s ease-in-out both!important}
.cat-stage[data-pose="sit"].is-drinking .cat-body{animation:drinkUprightChestV3162 3.8s ease-in-out both!important}
.cat-stage[data-pose="sit"].is-drinking .cat-head{transform-origin:50% 86%;animation:drinkUprightHeadV3162 3.8s ease-in-out both!important}
.cat-stage[data-pose="sit"].is-drinking.drink-facing-right .cat-head{animation-name:drinkUprightHeadRightV3162!important}
.cat-drink-tongue{border-radius:55% 55% 72% 72%;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) skewX(2deg) scaleY(.1);transform-origin:50% 0}
.cat-drink-tongue.is-active{animation:drinkTongueDownV3162 .46s ease-in-out .22s 7}
@keyframes drinkUprightBodyV3162{0%,11%,92%,100%{transform:translateX(-50%)}23%,82%{transform:translateX(-50%) translateY(2px)}}
@keyframes drinkUprightChestV3162{0%,100%{transform:none}23%,82%{transform:scaleY(.97) translateY(3px)}}
@keyframes drinkUprightHeadV3162{0%,12%,91%,100%{transform:translate(0,0) rotate(0)}23%,82%{transform:translate(-34px,52px) rotate(-9deg)}}
@keyframes drinkUprightHeadRightV3162{0%,12%,91%,100%{transform:translate(0,0) rotate(0)}23%,82%{transform:translate(34px,52px) rotate(9deg)}}
@keyframes drinkTongueDownV3162{0%,100%{opacity:0;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) skewX(1deg) scaleY(.14)}30%,67%{opacity:1;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) skewX(3deg) scaleY(1)}78%{opacity:.75;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) skewX(0) scaleY(.68)}}

#bathroomScene [data-bathroom-movable].is-bath-inertia{z-index:74!important;transition:none!important;will-change:left,top,transform}
.cat-bath.is-water-shaking .bath-water{animation:bathWaterSloshV3162 .24s ease-in-out infinite alternate!important}
.bath-spilled-water{position:absolute;z-index:9;inset:-38px -54px -35px;overflow:visible;opacity:0;pointer-events:none}
.bath-spilled-water i,.bath-spilled-water b{position:absolute;left:50%;top:48%;width:13px;height:19px;border-radius:62% 38% 68% 32%;background:linear-gradient(145deg,rgba(241,254,255,.92),rgba(116,202,218,.76));box-shadow:0 0 9px rgba(150,224,235,.54);transform:translate(-50%,-50%) scale(.25)}
.bath-spilled-water i:nth-child(1){--spill-x:-118px;--spill-y:-50px}.bath-spilled-water i:nth-child(2){--spill-x:-73px;--spill-y:-84px}.bath-spilled-water i:nth-child(3){--spill-x:77px;--spill-y:-77px}.bath-spilled-water i:nth-child(4){--spill-x:126px;--spill-y:-38px}.bath-spilled-water b{--spill-x:38px;--spill-y:35px;width:76px;height:20px;border-radius:50%;background:rgba(126,205,219,.38)}
.cat-bath.is-spilling .bath-spilled-water{opacity:1}
.cat-bath.is-spilling .bath-spilled-water :is(i,b){animation:bathSpillDropV3162 1.15s cubic-bezier(.16,.7,.22,1) both}
.cat-bath.is-spilling .bath-spilled-water i:nth-child(2){animation-delay:.05s}.cat-bath.is-spilling .bath-spilled-water i:nth-child(3){animation-delay:.09s}.cat-bath.is-spilling .bath-spilled-water i:nth-child(4){animation-delay:.13s}.cat-bath.is-spilling .bath-spilled-water b{animation-delay:.2s}
@keyframes bathWaterSloshV3162{from{transform:translateX(-5px) rotate(-2deg)}to{transform:translateX(5px) rotate(2deg)}}
@keyframes bathSpillDropV3162{0%{opacity:0;transform:translate(-50%,-50%) scale(.25)}24%{opacity:1}78%{opacity:.86;transform:translate(calc(-50% + var(--spill-x)),calc(-50% + var(--spill-y))) rotate(140deg) scale(1)}100%{opacity:0;transform:translate(calc(-50% + var(--spill-x)),calc(-50% + var(--spill-y) + 55px)) rotate(190deg) scale(.72)}}
.cat-stage.is-bath-jumping-out .big-cat{animation:bathHopOutV3162 .76s cubic-bezier(.2,.78,.2,1) both!important}
.cat-stage.is-licking-wet-paw .cat-paw.left{animation:wetPawLiftV3162 .76s ease-in-out 4 alternate!important;transform-origin:50% 100%}
.cat-stage.is-licking-wet-paw .cat-head{animation:wetPawLickHeadV3162 .76s ease-in-out 4 alternate!important}
.cat-stage.is-licking-wet-paw .cat-mouth.left::after{content:"";position:absolute;left:12px;top:7px;width:7px;height:10px;border-radius:50% 50% 75% 75%;background:#e69aaa;animation:wetPawTongueV3162 .38s ease-in-out 8}
@keyframes bathHopOutV3162{0%{transform:translateX(-50%) translateY(0) scale(1)}42%{transform:translateX(-50%) translateY(-31px) rotate(-4deg) scale(.98,1.03)}100%{transform:translateX(-50%) translateY(0) scale(1)}}
@keyframes wetPawLiftV3162{to{transform:translate(13px,-22px) rotate(-27deg)}}
@keyframes wetPawLickHeadV3162{to{transform:translate(-8px,8px) rotate(-7deg)}}
@keyframes wetPawTongueV3162{0%,100%{opacity:0;transform:scaleY(.2)}45%,70%{opacity:1;transform:translateY(3px) scaleY(1)}}

.cat-bath.is-cat-hovering{filter:drop-shadow(0 0 9px rgba(113,199,209,.45))}
.cat-bath.is-cat-hovering::after{content:"停稳 2 秒";position:absolute;z-index:15;left:50%;top:-24px;min-width:88px;padding:6px 10px;border:1px solid rgba(255,255,255,.82);border-radius:12px;color:#527b80;background:rgba(240,253,252,.9);box-shadow:0 5px 13px rgba(73,116,119,.14);font-size:9px;font-weight:900;text-align:center;transform:translateX(-50%)}
.cat-bath.is-cat-ready::after{content:"可以松手啦";color:#3e725e;background:rgba(230,250,238,.94)}
.cat-stage.is-bath-holding .big-cat{animation:bathHoldBreathV3162 .8s ease-in-out infinite alternate!important}
@keyframes bathHoldBreathV3162{to{transform:translateX(-50%) translateY(-2px)}}

.cat-stage.has-visible-macaron-sheen .cat-head,.cat-stage.has-visible-macaron-sheen .cat-body{box-shadow:inset -11px -9px rgba(98,65,120,.08),0 0 0 3px rgba(255,212,230,.5),0 0 16px rgba(129,215,220,.58),0 0 25px rgba(241,195,116,.33)!important}
.cat-stage.has-visible-macaron-sheen .big-cat::after{content:"";position:absolute;z-index:18;left:58px;top:62px;width:7px;height:7px;border-radius:50%;pointer-events:none;background:#fff4ba;box-shadow:35px -15px 0 -1px #ffd9e9,79px 8px 0 -1px #d8f4ff,18px 62px 0 -1px #eadcff,84px 83px 0 -1px #fff0b4,48px 123px 0 -1px #d7ffe9,106px 114px 0 -2px #f8d9ff;filter:drop-shadow(0 0 5px rgba(255,246,190,.96));animation:visibleMacaronSheenV3162 1.15s ease-in-out infinite alternate}
@keyframes visibleMacaronSheenV3162{from{opacity:.38;transform:scale(.72)}to{opacity:1;transform:scale(1.22)}}

.bathroom-litter-scoop{position:absolute;z-index:60;width:112px;height:112px;padding:0;border:0;color:#705d58;cursor:grab;background:transparent;filter:drop-shadow(0 8px 6px rgba(73,53,48,.18));touch-action:none}
.bathroom-litter-scoop .scoop-handle{position:absolute;left:49px;top:0;width:15px;height:72px;border:3px solid #7b6256;border-radius:9px;background:linear-gradient(90deg,#e8c894,#bd9361,#f0d6a5);transform:rotate(34deg);transform-origin:50% 92%}
.bathroom-litter-scoop .scoop-pan{position:absolute;left:14px;bottom:10px;width:66px;height:45px;border:3px solid #765e5b;border-radius:9px 9px 28px 28px;background:linear-gradient(145deg,#d8eef2,#98c8d0);transform:rotate(-8deg)}
.bathroom-litter-scoop .scoop-pan i{position:absolute;top:8px;width:5px;height:23px;border-radius:4px;background:rgba(255,255,255,.68)}.bathroom-litter-scoop .scoop-pan i:nth-child(1){left:14px}.bathroom-litter-scoop .scoop-pan i:nth-child(2){left:29px}.bathroom-litter-scoop .scoop-pan i:nth-child(3){right:13px}
.bathroom-litter-scoop small{position:absolute;left:50%;bottom:0;padding:3px 6px;border-radius:8px;background:rgba(255,255,255,.82);font-size:8px;font-weight:900;white-space:nowrap;transform:translateX(-50%)}
#bathroomScene .bathroom-litter-scoop.is-layout-ready.is-stored{z-index:58;pointer-events:none;transform:translate(-50%,-50%) scale(calc(var(--bath-responsive-scale,1) * .56)) rotate(-14deg)!important;filter:drop-shadow(0 4px 3px rgba(73,53,48,.12))}
#bathroomScene .bathroom-litter-scoop.is-stored :is(.scoop-handle,.scoop-pan,small){pointer-events:auto}
.bathroom-litter-scoop:focus-visible,.stored-bathroom-dryer:focus-visible{outline:4px solid rgba(91,139,172,.46);outline-offset:3px;border-radius:16px}
.litter-box.is-gently-scooped .litter-sand{animation:gentleLitterScoopV3162 .55s ease-out 2}
@keyframes gentleLitterScoopV3162{50%{transform:translateY(-3px) rotate(-1deg);filter:brightness(1.08)}}

.stored-bathroom-dryer{min-width:86px;min-height:62px;touch-action:manipulation}
.stored-bathroom-dryer::after{content:attr(data-label);position:absolute;left:50%;bottom:-5px;padding:2px 6px;border-radius:7px;color:#8c6553;background:rgba(255,255,255,.88);font-size:8px;font-weight:900;transform:translateX(-50%)}
.bathroom-dryer.is-just-restored{animation:dryerReturnV3162 .55s cubic-bezier(.2,.85,.2,1.18)}
@keyframes dryerReturnV3162{0%{opacity:.35;filter:drop-shadow(0 3px 2px rgba(86,55,42,.08));transform:translate(-50%,-50%) scale(calc(var(--bath-responsive-scale,1) * .75))}100%{opacity:1}}

.bathroom-game{background:transparent!important;backdrop-filter:none!important}
.bathroom-game>header{background:rgba(255,255,255,.9)}
.bubble-field{background:transparent}
.litter-game{background:transparent!important}
.cat-stage.is-game-wandering[data-pose="walk"] .big-cat{animation:pufflesWalk 4.35s ease-in-out infinite!important}
.cat-stage.is-going-to-bathroom,.cat-stage.is-returning-from-bathroom{transition:left 1.15s cubic-bezier(.2,.72,.2,1),bottom 1.15s cubic-bezier(.2,.72,.2,1),opacity .32s ease!important}
.cat-stage.is-away-at-litter{opacity:0!important;pointer-events:none!important}

.event-fun-card[data-event-fun="tea"].is-unavailable::after{content:"12:00–17:00"}

@media(max-width:720px){.bathroom-litter-scoop{--bath-responsive-scale:.69}.cat-bath.is-cat-hovering::after{top:-17px}.stored-bathroom-dryer{min-width:76px}}
@media(max-width:420px){.bathroom-litter-scoop{--bath-responsive-scale:.57}}
@media(prefers-reduced-motion:reduce){
  .cat-stage[data-pose="sit"].is-drinking :is(.big-cat,.cat-body,.cat-head),.cat-stage.is-bath-jumping-out .big-cat,.cat-stage.is-licking-wet-paw :is(.cat-paw,.cat-head),.cat-bath.is-water-shaking .bath-water,.cat-bath.is-spilling .bath-spilled-water :is(i,b),.cat-stage.has-visible-macaron-sheen .big-cat::after{animation:none!important}
  .cat-drink-tongue.is-active{animation:none!important;opacity:1;transform:translateX(-50%) rotate(var(--tongue-angle,0deg)) scaleY(1)}
}

/* v31.64: gentler care physics and four collectible litter-scoop looks.
   Every skin keeps the original handle and pan silhouette intact. */
.water-fountain.is-being-used{z-index:12!important;filter:drop-shadow(0 8px 8px rgba(63,94,88,.2)) brightness(1.03)}
.room.is-bathroom .cat-stage:is(.is-bath-inertia,.is-riding-bath)[data-positioned="true"]{
  z-index:76!important;transition:none!important;will-change:left,top;
}
.stored-bathroom-dryer{touch-action:none;cursor:grab}

.bathroom-tools-button{
  position:absolute;z-index:81;right:2.7%;top:12%;min-width:190px;min-height:54px;
  display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;
  align-items:center;padding:8px 13px;border:1px solid rgba(255,255,255,.82);border-radius:18px;
  color:#62534e;cursor:pointer;text-align:left;
  background:linear-gradient(145deg,rgba(255,255,255,.78),rgba(226,243,245,.55));
  box-shadow:inset 0 2px rgba(255,255,255,.9),inset 0 -4px rgba(105,148,155,.08),0 9px 20px rgba(72,93,91,.12);
  backdrop-filter:blur(13px) saturate(1.16);transition:transform .18s ease,box-shadow .22s ease,background .22s ease;
}
.bathroom-tools-button>span{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;border-radius:13px;color:#6e6387;background:linear-gradient(145deg,rgba(238,228,251,.96),rgba(212,231,246,.72));box-shadow:inset 0 2px rgba(255,255,255,.86),0 4px 9px rgba(87,70,109,.1)}
.bathroom-tools-button svg{width:20px;height:20px}.bathroom-tools-button b{font-size:11px;line-height:1.25}.bathroom-tools-button small{max-width:138px;overflow:hidden;color:#8d7f78;font-size:8px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.bathroom-tools-button:hover{transform:translateY(-2px);box-shadow:inset 0 2px rgba(255,255,255,.94),inset 0 -4px rgba(105,148,155,.09),0 13px 24px rgba(72,93,91,.16)}
.bathroom-tools-button:active{transform:translateY(1px) scale(.985)}
.bathroom-tools-button:focus-visible{outline:4px solid rgba(91,139,172,.42);outline-offset:3px}

.scoop-wardrobe-modal{z-index:180;background:rgba(64,49,48,.38);backdrop-filter:blur(10px)}
.scoop-wardrobe-card{
  width:min(720px,100%);max-height:min(820px,92dvh);overflow:auto;padding:24px;
  border:1px solid rgba(255,255,255,.82);border-radius:30px;
  background:linear-gradient(145deg,rgba(255,253,248,.96),rgba(237,248,248,.9));
  box-shadow:inset 0 2px rgba(255,255,255,.96),0 28px 68px rgba(68,49,45,.23);
  transform:translateY(18px) scale(.975);transition:transform .28s cubic-bezier(.2,.8,.2,1);
}
.scoop-wardrobe-modal.is-open .scoop-wardrobe-card{transform:none}
.scoop-wardrobe-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.scoop-wardrobe-header h2{margin:1px 0 0;font-size:24px}.scoop-wardrobe-header .eyebrow{margin:0 0 3px}
.scoop-wardrobe-intro{margin:11px 0;color:#826f68;font-size:12px;line-height:1.65}
.scoop-cycle-status{min-height:42px;display:flex;align-items:center;margin:0 0 13px;padding:9px 13px;border:1px solid rgba(139,111,91,.1);border-radius:14px;color:#5d756f;background:rgba(225,244,237,.7);font-size:11px;font-weight:850}
.scoop-skin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.scoop-skin-card{min-width:0;min-height:132px;display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:11px;padding:11px;border:1px solid rgba(102,77,67,.11);border-radius:20px;color:#625049;cursor:pointer;text-align:left;background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(248,240,232,.72));box-shadow:inset 0 2px rgba(255,255,255,.9),0 7px 16px rgba(75,56,47,.07);transition:transform .18s ease,box-shadow .2s ease,border-color .2s ease}
.scoop-skin-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:inset 0 2px rgba(255,255,255,.96),0 11px 20px rgba(75,56,47,.11)}
.scoop-skin-card.is-equipped{border-color:rgba(101,163,139,.48);box-shadow:inset 0 0 0 2px rgba(117,184,157,.15),0 9px 19px rgba(75,112,96,.12)}
.scoop-skin-card.is-locked{cursor:not-allowed;filter:saturate(.58);opacity:.58}
.scoop-skin-copy{min-width:0;display:flex;flex-direction:column;gap:5px}.scoop-skin-copy>b{font-size:13px;overflow-wrap:anywhere}.scoop-skin-copy>small{min-height:32px;color:#8e7e77;font-size:9px;line-height:1.55}.scoop-skin-copy>em{color:#668d80;font-size:9px;font-style:normal;font-weight:900}
.scoop-default-button{width:100%;margin-top:14px;border:1px solid rgba(255,255,255,.8);background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(220,234,240,.75));box-shadow:inset 0 2px rgba(255,255,255,.92),0 7px 15px rgba(66,84,88,.1)}
.scoop-default-button.is-equipped{color:#fff;background:linear-gradient(145deg,#82b4ac,#699e94)}
.scoop-skin-card:focus-visible,.scoop-default-button:focus-visible{outline:4px solid rgba(91,139,172,.38);outline-offset:2px}

.scoop-skin-preview{position:relative;width:92px;height:104px;display:block;border-radius:16px;background:linear-gradient(145deg,rgba(249,242,234,.84),rgba(229,241,241,.7));overflow:hidden}
.preview-scoop-handle{position:absolute;z-index:2;left:48px;top:4px;width:13px;height:67px;border:3px solid #705c55;border-radius:9px;background:linear-gradient(90deg,#eee0c3,#c99f6d,#f5e7c7);transform:rotate(31deg);transform-origin:50% 91%}
.preview-scoop-pan{position:absolute;z-index:3;left:11px;bottom:9px;width:61px;height:41px;border:3px solid #705c55;border-radius:9px 9px 27px 27px;background:linear-gradient(145deg,#d8eef2,#98c8d0);transform:rotate(-8deg)}
.preview-scoop-pan b{position:absolute;top:8px;width:5px;height:21px;border-radius:4px;background:rgba(255,255,255,.72)}.preview-scoop-pan b:nth-child(1){left:12px}.preview-scoop-pan b:nth-child(2){left:27px}.preview-scoop-pan b:nth-child(3){right:11px}

.bathroom-litter-scoop[data-scoop-skin="cloud-paw"] .scoop-handle,.scoop-skin-preview[data-scoop-preview="cloud-paw"] .preview-scoop-handle{background:linear-gradient(90deg,#fffdf6,#f3ebdc,#fffaf0)}
.bathroom-litter-scoop[data-scoop-skin="cloud-paw"] .scoop-handle::after,.scoop-skin-preview[data-scoop-preview="cloud-paw"] .preview-scoop-handle::after{content:"";position:absolute;left:50%;top:5px;width:9px;height:8px;border-radius:50% 50% 45% 45%;background:#f3aebc;box-shadow:-5px -3px 0 -2px #f3aebc,0 -5px 0 -2px #f3aebc,5px -3px 0 -2px #f3aebc;transform:translateX(-50%)}
.bathroom-litter-scoop[data-scoop-skin="cloud-paw"] .scoop-pan,.scoop-skin-preview[data-scoop-preview="cloud-paw"] .preview-scoop-pan{background:radial-gradient(circle at 50% 65%,rgba(177,177,181,.5) 0 3px,transparent 4px),linear-gradient(145deg,#fffefa,#e9e6df)}
.bathroom-litter-scoop[data-scoop-skin="cloud-paw"] .scoop-pan i{width:7px;border-radius:50%;background:rgba(174,184,186,.48)}

.bathroom-litter-scoop[data-scoop-skin="stardust"] .scoop-handle,.scoop-skin-preview[data-scoop-preview="stardust"] .preview-scoop-handle{background:radial-gradient(circle at 25% 18%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 72% 42%,#d9e8ff 0 1px,transparent 1.5px),linear-gradient(90deg,#3d607c,#738da7,#355670);background-size:13px 17px,17px 19px,auto}
.bathroom-litter-scoop[data-scoop-skin="stardust"] .scoop-pan,.scoop-skin-preview[data-scoop-preview="stardust"] .preview-scoop-pan{background:radial-gradient(circle at 20% 25%,rgba(255,255,255,.9) 0 1px,transparent 1.7px),radial-gradient(circle at 72% 63%,rgba(227,221,255,.92) 0 1.2px,transparent 2px),linear-gradient(145deg,#6685a2,#294d6c);background-size:14px 13px,18px 17px,auto}
.bathroom-litter-scoop[data-scoop-skin="stardust"] .scoop-pan i,.scoop-skin-preview[data-scoop-preview="stardust"] .preview-scoop-pan b{width:9px;height:20px;background:#d9e7f2;clip-path:polygon(50% 0,61% 36%,98% 38%,68% 59%,79% 96%,50% 73%,21% 96%,32% 59%,2% 38%,39% 36%)}

.bathroom-litter-scoop[data-scoop-skin="orange-candy"] .scoop-handle,.scoop-skin-preview[data-scoop-preview="orange-candy"] .preview-scoop-handle{background:linear-gradient(90deg,#d86d23,#f2983f,#ffbd65)}
.bathroom-litter-scoop[data-scoop-skin="orange-candy"] .scoop-handle::after,.scoop-skin-preview[data-scoop-preview="orange-candy"] .preview-scoop-handle::after{content:"";position:absolute;left:-3px;top:19px;width:9px;height:5px;border-radius:80% 10% 80% 10%;background:#70a85c;box-shadow:7px 4px 0 #87b96d;transform:rotate(-25deg)}
.bathroom-litter-scoop[data-scoop-skin="orange-candy"] .scoop-pan,.scoop-skin-preview[data-scoop-preview="orange-candy"] .preview-scoop-pan{background:linear-gradient(145deg,#ffc26f,#ed7f29)}
.bathroom-litter-scoop[data-scoop-skin="orange-candy"] .scoop-pan i,.scoop-skin-preview[data-scoop-preview="orange-candy"] .preview-scoop-pan b{width:8px;height:8px;top:14px;border-radius:50%;background:rgba(255,242,217,.74);box-shadow:0 9px rgba(255,242,217,.48)}

.bathroom-litter-scoop[data-scoop-skin="mint-wave"] .scoop-handle,.scoop-skin-preview[data-scoop-preview="mint-wave"] .preview-scoop-handle{background:repeating-linear-gradient(145deg,rgba(255,255,255,.38) 0 3px,transparent 3px 11px),linear-gradient(90deg,#77c8ae,#b8ead8,#67b99f)}
.bathroom-litter-scoop[data-scoop-skin="mint-wave"] .scoop-pan,.scoop-skin-preview[data-scoop-preview="mint-wave"] .preview-scoop-pan{background:radial-gradient(circle at 8px 0,transparent 6px,rgba(255,255,255,.22) 7px 9px,transparent 10px) 0 0/18px 10px,linear-gradient(145deg,#b8ead8,#65bca2)}
.bathroom-litter-scoop[data-scoop-skin="mint-wave"] .scoop-pan i,.scoop-skin-preview[data-scoop-preview="mint-wave"] .preview-scoop-pan b{width:7px;height:24px;border-radius:100% 0 100% 0;background:rgba(239,255,248,.72);transform:rotate(8deg)}

@media(max-width:980px){.bathroom-tools-button{right:2.5%;top:19%;min-width:168px}}
@media(max-width:720px){
  .bathroom-tools-button{right:2%;top:auto;bottom:2%;min-width:0;width:164px;min-height:48px;padding:6px 9px;grid-template-columns:34px minmax(0,1fr)}
  .bathroom-tools-button>span{width:34px;height:34px}.bathroom-tools-button b{font-size:9px}.bathroom-tools-button small{font-size:7px}
  .scoop-wardrobe-card{max-height:94dvh;padding:17px;border-radius:24px}.scoop-wardrobe-header h2{font-size:20px}.scoop-skin-grid{grid-template-columns:1fr}.scoop-skin-card{min-height:116px;grid-template-columns:82px minmax(0,1fr)}.scoop-skin-preview{width:80px;height:94px;transform:scale(.88);transform-origin:center}
}
@media(max-width:420px){.bathroom-tools-button{width:150px}.scoop-wardrobe-modal{padding:9px}.scoop-wardrobe-card{padding:14px}.scoop-wardrobe-intro{font-size:10px}.scoop-skin-card{padding:8px}.scoop-skin-copy>small{font-size:8px}}
@media(prefers-reduced-motion:reduce){.bathroom-tools-button,.scoop-wardrobe-card,.scoop-skin-card{transition:none!important}}

/* v31.67: gentle-care trust and collectible grooming brushes.
   Brush skins preserve one readable handle/head/bristle silhouette. */
.bathroom-groom-brush{
  position:absolute;z-index:61;width:116px;height:116px;min-width:44px;min-height:44px;padding:0;border:0;
  color:#725e58;cursor:grab;background:transparent;filter:drop-shadow(0 8px 6px rgba(73,53,48,.17));touch-action:none;
}
.bathroom-groom-brush .brush-handle{
  position:absolute;z-index:2;left:48px;top:2px;width:21px;height:75px;border:3px solid #725c54;border-radius:14px;
  background:linear-gradient(90deg,#fff6dc,#e4cfa6,#fff9e8);transform:rotate(24deg);transform-origin:50% 91%;
  box-shadow:inset 3px 0 rgba(255,255,255,.45);
}
.bathroom-groom-brush .brush-handle>i{position:absolute;left:50%;top:9px;width:10px;height:7px;border-radius:70% 35% 70% 35%;background:#efb6c5;transform:translateX(-50%) rotate(25deg)}
.bathroom-groom-brush .brush-head{
  position:absolute;z-index:3;left:13px;bottom:12px;width:72px;height:48px;border:3px solid #725c54;border-radius:42% 42% 48% 48%;
  background:radial-gradient(circle at 25% 25%,rgba(255,255,255,.86) 0 5px,transparent 6px),linear-gradient(145deg,#fffdf5,#e9ddc8);
  box-shadow:inset 0 5px rgba(255,255,255,.44);transform:rotate(-8deg);
}
.bathroom-groom-brush .brush-head>i{position:absolute;top:34px;width:6px;height:23px;border-radius:0 0 7px 7px;background:linear-gradient(#efdcae,#f6c966);transform-origin:50% 0}
.bathroom-groom-brush .brush-head>i::after{content:"";position:absolute;left:50%;bottom:-3px;width:8px;height:8px;border-radius:50%;background:#f3cc6b;transform:translateX(-50%)}
.bathroom-groom-brush .brush-head>i:nth-child(1){left:8px;transform:rotate(9deg)}.bathroom-groom-brush .brush-head>i:nth-child(2){left:17px;top:36px;transform:rotate(6deg)}.bathroom-groom-brush .brush-head>i:nth-child(3){left:27px;top:37px;transform:rotate(2deg)}.bathroom-groom-brush .brush-head>i:nth-child(4){left:37px;top:37px;transform:rotate(-2deg)}.bathroom-groom-brush .brush-head>i:nth-child(5){left:47px;top:36px;transform:rotate(-6deg)}.bathroom-groom-brush .brush-head>i:nth-child(6){left:57px;transform:rotate(-9deg)}.bathroom-groom-brush .brush-head>i:nth-child(7){left:32px;top:29px;height:19px}
.bathroom-groom-brush small{position:absolute;left:50%;bottom:0;max-width:108px;padding:3px 7px;border-radius:8px;color:#715e58;background:rgba(255,255,255,.84);font-size:8px;font-weight:900;white-space:nowrap;transform:translateX(-50%)}
.bathroom-groom-brush .brush-fur-ball{position:absolute;z-index:6;left:23px;top:8px;width:31px;height:20px;border-radius:52% 48% 46% 54%;opacity:0;background:var(--pet-main,#c9b0e1);box-shadow:7px 1px 0 -2px var(--pet-main,#c9b0e1),-4px 4px 0 -3px var(--pet-light,#f1e8f8);filter:drop-shadow(0 2px 2px rgba(80,59,50,.16))}
#bathroomScene .bathroom-groom-brush.is-layout-ready.is-stored{z-index:58;pointer-events:none;transform:translate(-50%,-50%) scale(calc(var(--bath-responsive-scale,1) * .53)) rotate(13deg)!important;filter:drop-shadow(0 4px 3px rgba(73,53,48,.12))}
#bathroomScene .bathroom-groom-brush.is-stored :is(.brush-handle,.brush-head,small){pointer-events:auto}
.bathroom-groom-brush:focus-visible{outline:4px solid rgba(91,139,172,.46);outline-offset:3px;border-radius:18px}

.bathroom-groom-brush.is-brushing-cat{z-index:79!important;pointer-events:none;filter:drop-shadow(0 11px 8px rgba(73,53,48,.2))}
.bathroom-groom-brush.is-brushing-cat .brush-head{animation:groomBrushStrokeV3165 .72s cubic-bezier(.32,.05,.28,1) 5 alternate}
.bathroom-groom-brush.is-brushing-cat .brush-handle{animation:groomHandleStrokeV3165 .72s cubic-bezier(.32,.05,.28,1) 5 alternate}
.bathroom-groom-brush.is-brushing-cat .brush-fur-ball{animation:groomFurGatherV3165 3.2s ease-out both}
.cat-stage.is-being-brushed .cat-head{animation:groomHappyHeadV3165 .78s ease-in-out 5 alternate!important}
.cat-stage.is-being-brushed .cat-eye{animation:groomHappyEyesV3165 .78s ease-in-out 5 alternate!important}
.cat-stage.is-being-brushed .cat-tail::before{animation:tailTipFriendlyV3165 .54s ease-in-out 7 alternate!important}
@keyframes groomBrushStrokeV3165{to{transform:translate(-18px,11px) rotate(-17deg)}}
@keyframes groomHandleStrokeV3165{to{transform:translate(-18px,11px) rotate(15deg)}}
@keyframes groomFurGatherV3165{0%,35%{opacity:0;transform:scale(.35)}55%{opacity:.72}100%{opacity:1;transform:scale(1)}}
@keyframes groomHappyHeadV3165{to{transform:translate(3px,3px) rotate(2deg)}}
@keyframes groomHappyEyesV3165{to{transform:scaleY(.42)}}
@keyframes tailTipFriendlyV3165{to{transform:translate(8px,5px) rotate(18deg)}}
.cat-stage.is-trusted-tail-touch .cat-tail{animation:trustedTailCurlV3165 .9s cubic-bezier(.2,.82,.2,1) 2 alternate!important}
@keyframes trustedTailCurlV3165{to{transform:rotate(-9deg) translate(2px,-5px)}}

.gear-section-title{margin:14px 2px 9px;color:#69564f;font-size:13px}.gear-section-title.brush-title{margin-top:23px}
.brush-skin-preview{position:relative;width:92px;height:104px;display:block;overflow:hidden;border-radius:16px;background:linear-gradient(145deg,rgba(249,242,234,.84),rgba(229,241,241,.7))}
.preview-brush-handle{position:absolute;z-index:2;left:45px;top:5px;width:18px;height:65px;border:3px solid #705c55;border-radius:12px;background:linear-gradient(90deg,#fff5dc,#d8bc8c,#fff8e4);transform:rotate(25deg);transform-origin:50% 91%}
.preview-brush-head{position:absolute;z-index:3;left:10px;bottom:19px;width:64px;height:42px;border:3px solid #705c55;border-radius:42% 42% 48% 48%;background:linear-gradient(145deg,#fffdf5,#e7d8be);transform:rotate(-8deg)}
.preview-brush-head>b{position:absolute;top:34px;width:5px;height:18px;border-radius:0 0 6px 6px;background:#efd275}.preview-brush-head>b::after{content:"";position:absolute;left:50%;bottom:-3px;width:7px;height:7px;border-radius:50%;background:inherit;transform:translateX(-50%)}.preview-brush-head>b:nth-child(1){left:8px;transform:rotate(8deg)}.preview-brush-head>b:nth-child(2){left:20px;top:36px;transform:rotate(3deg)}.preview-brush-head>b:nth-child(3){left:31px;top:37px}.preview-brush-head>b:nth-child(4){left:42px;top:36px;transform:rotate(-3deg)}.preview-brush-head>b:nth-child(5){left:53px;transform:rotate(-8deg)}

.bathroom-groom-brush[data-brush-skin="cotton-cloud"] .brush-handle,.brush-skin-preview[data-brush-preview="cotton-cloud"] .preview-brush-handle{background:radial-gradient(circle at 50% 17%,#efadbf 0 5px,transparent 5.5px),linear-gradient(90deg,#fffefa,#eee9df,#fffdf5)}
.bathroom-groom-brush[data-brush-skin="cotton-cloud"] .brush-head,.brush-skin-preview[data-brush-preview="cotton-cloud"] .preview-brush-head{background:radial-gradient(ellipse at 20% 45%,#fffdf8 0 11px,transparent 12px),radial-gradient(ellipse at 48% 34%,#fffefa 0 13px,transparent 14px),radial-gradient(ellipse at 76% 48%,#fffdf8 0 11px,transparent 12px),linear-gradient(145deg,#f7f4ed,#e7e4dc)}
.bathroom-groom-brush[data-brush-skin="cotton-cloud"] .brush-head>i,.brush-skin-preview[data-brush-preview="cotton-cloud"] .preview-brush-head>b{background:#efd36f}

.bathroom-groom-brush[data-brush-skin="orange-soda"] .brush-handle,.brush-skin-preview[data-brush-preview="orange-soda"] .preview-brush-handle{background:radial-gradient(circle at 28% 21%,rgba(255,255,255,.85) 0 2px,transparent 3px),radial-gradient(circle at 68% 53%,rgba(255,242,215,.78) 0 2px,transparent 3px),linear-gradient(90deg,rgba(222,100,29,.94),rgba(255,169,72,.82),rgba(255,198,112,.9));background-size:16px 18px,19px 21px,auto}
.bathroom-groom-brush[data-brush-skin="orange-soda"] .brush-handle::after,.brush-skin-preview[data-brush-preview="orange-soda"] .preview-brush-handle::after{content:"";position:absolute;left:-4px;top:18px;width:11px;height:6px;border-radius:80% 15% 80% 15%;background:#6ca559;transform:rotate(-28deg)}
.bathroom-groom-brush[data-brush-skin="orange-soda"] .brush-head,.brush-skin-preview[data-brush-preview="orange-soda"] .preview-brush-head{background:radial-gradient(circle at 23% 28%,rgba(255,255,255,.74) 0 4px,transparent 5px),radial-gradient(circle at 66% 54%,rgba(255,238,205,.72) 0 5px,transparent 6px),linear-gradient(145deg,rgba(255,182,90,.94),rgba(224,100,32,.92))}
.bathroom-groom-brush[data-brush-skin="orange-soda"] .brush-head>i,.brush-skin-preview[data-brush-preview="orange-soda"] .preview-brush-head>b{background:linear-gradient(rgba(255,219,168,.88),rgba(241,137,56,.82))}

.bathroom-groom-brush[data-brush-skin="moonlight"] .brush-handle,.brush-skin-preview[data-brush-preview="moonlight"] .preview-brush-handle{background:radial-gradient(circle at 25% 19%,#fff 0 1px,transparent 1.7px),radial-gradient(circle at 70% 44%,#e8dcff 0 1px,transparent 1.8px),linear-gradient(90deg,#4c3a70,#796394,#3f315f);background-size:13px 15px,17px 19px,auto}
.bathroom-groom-brush[data-brush-skin="moonlight"] .brush-handle::after,.brush-skin-preview[data-brush-preview="moonlight"] .preview-brush-handle::after{content:"";position:absolute;left:3px;top:29px;width:10px;height:10px;border-radius:50%;background:#f6dc79;box-shadow:4px -2px 0 1px #63507f}
.bathroom-groom-brush[data-brush-skin="moonlight"] .brush-head,.brush-skin-preview[data-brush-preview="moonlight"] .preview-brush-head{background:radial-gradient(circle at 19% 29%,#fff 0 1px,transparent 1.8px),radial-gradient(circle at 71% 63%,#d8caff 0 1.2px,transparent 2px),linear-gradient(145deg,#73608f,#37294f);background-size:15px 14px,18px 17px,auto;box-shadow:inset 0 4px rgba(255,255,255,.15),0 0 10px rgba(190,171,239,.42)}
.bathroom-groom-brush[data-brush-skin="moonlight"] .brush-head>i,.brush-skin-preview[data-brush-preview="moonlight"] .preview-brush-head>b{background:linear-gradient(#d8c7f1,#907daf)}

.bathroom-groom-brush[data-brush-skin="mint-jelly"] .brush-handle,.brush-skin-preview[data-brush-preview="mint-jelly"] .preview-brush-handle{background:linear-gradient(90deg,rgba(77,180,146,.88),rgba(183,241,219,.8),rgba(92,195,160,.88))}
.bathroom-groom-brush[data-brush-skin="mint-jelly"] .brush-handle::after,.brush-skin-preview[data-brush-preview="mint-jelly"] .preview-brush-handle::after{content:"";position:absolute;left:2px;top:16px;width:12px;height:7px;border-radius:80% 15% 80% 15%;background:#4f9e74;transform:rotate(-25deg)}
.bathroom-groom-brush[data-brush-skin="mint-jelly"] .brush-head,.brush-skin-preview[data-brush-preview="mint-jelly"] .preview-brush-head{border-radius:45% 45% 42% 42%/48% 48% 36% 36%;background:radial-gradient(circle at 30% 23%,rgba(255,255,255,.66) 0 5px,transparent 6px),linear-gradient(145deg,rgba(190,244,220,.9),rgba(79,183,148,.87));box-shadow:inset 0 5px rgba(255,255,255,.32)}
.bathroom-groom-brush[data-brush-skin="mint-jelly"] .brush-head>i,.brush-skin-preview[data-brush-preview="mint-jelly"] .preview-brush-head>b{background:linear-gradient(rgba(207,250,233,.9),rgba(92,190,158,.85))}

@media(max-width:720px){.bathroom-groom-brush{--bath-responsive-scale:.69}.brush-skin-preview{width:80px;height:94px;transform:scale(.88);transform-origin:center}}
@media(max-width:420px){.bathroom-groom-brush{--bath-responsive-scale:.57}.gear-section-title{font-size:11px}}
@media(prefers-reduced-motion:reduce){
  .bathroom-groom-brush.is-brushing-cat :is(.brush-head,.brush-handle,.brush-fur-ball),.cat-stage.is-being-brushed :is(.cat-head,.cat-eye),.cat-stage.is-being-brushed .cat-tail::before,.cat-stage.is-trusted-tail-touch .cat-tail{animation:none!important}
  .bathroom-groom-brush.is-brushing-cat .brush-fur-ball{opacity:1;transform:none}
}

/* v31.67: true cabinet storage, directional dryer, themed grooming feedback,
   and a firmly coupled bath rider. The cat's base silhouette is untouched. */
.mood-meter strong{min-width:38px;text-align:right}
.cabinet-stored-tools{
  position:absolute;z-index:6;left:10px;right:10px;top:18px;bottom:50px;overflow:hidden;
  display:grid;grid-template-columns:repeat(2,minmax(44px,1fr));grid-template-rows:repeat(2,minmax(44px,1fr));
  gap:3px;padding:3px;border-radius:11px;pointer-events:none;
}
.stored-bathroom-tool{
  position:relative!important;inset:auto!important;width:100%!important;height:100%!important;min-width:44px;min-height:44px;
  display:block;padding:0;border:0;border-radius:9px;cursor:grab;pointer-events:auto;appearance:none;
  background:linear-gradient(145deg,rgba(255,255,255,.24),rgba(225,205,185,.12));
  box-shadow:inset 0 1px rgba(255,255,255,.48);transform:none!important;filter:none!important;touch-action:none;
}
.stored-bathroom-tool:hover{background:rgba(255,255,255,.34)}
.stored-bathroom-tool:focus-visible{outline:3px solid rgba(91,139,172,.52);outline-offset:-2px}
.stored-bathroom-tool[hidden]{display:none!important}
.stored-bathroom-dryer::after{content:none}
.stored-bathroom-dryer i{left:50%;top:42%;transform:translate(-58%,-50%) scale(.72);transform-origin:center}
.stored-bathroom-dryer span{left:50%;top:49%;transform:translate(-45%,-4%) rotate(11deg) scale(.72);transform-origin:center}
.stored-bathroom-scoop i,.stored-bathroom-brush i{
  position:absolute;z-index:1;left:52%;top:9%;width:9px;height:62%;border:2px solid #775f57;border-radius:8px;
  background:linear-gradient(90deg,#f2ddba,#c79f70);transform:rotate(31deg);transform-origin:50% 90%;
}
.stored-bathroom-scoop span{position:absolute;z-index:2;left:17%;bottom:11%;width:52%;height:38%;border:2px solid #755f5b;border-radius:6px 6px 19px 19px;background:linear-gradient(145deg,#d8eef2,#94c7cf);transform:rotate(-7deg)}
.stored-bathroom-brush i{background:linear-gradient(90deg,#fff8e7,#e0c99f)}
.stored-bathroom-brush span{position:absolute;z-index:2;left:15%;bottom:10%;width:57%;height:38%;border:2px solid #755f5b;border-radius:42% 42% 48% 48%;background:linear-gradient(145deg,#fffdf5,#e8dcc7);transform:rotate(-7deg)}
.stored-bathroom-brush span::after{content:"";position:absolute;left:8%;right:8%;bottom:-8px;height:10px;background:repeating-linear-gradient(90deg,#efd275 0 4px,transparent 4px 9px)}
.stored-bathroom-shampoo i{position:absolute;left:22%;right:18%;bottom:11%;height:61%;border:2px solid #765f66;border-radius:8px 8px 13px 13px;background:linear-gradient(145deg,#f3aaa6,#f3d180 31%,#94d1b7 53%,#90bfe0 74%,#bea6da)}
.stored-bathroom-shampoo span{position:absolute;left:40%;top:7%;width:30%;height:17%;border:2px solid #765f66;border-bottom:0;border-radius:6px 6px 0 0;background:#fff8ed}
.stored-bathroom-shampoo span::after{content:"";position:absolute;left:5px;top:-4px;width:20px;height:5px;border:2px solid #765f66;border-left:0;border-radius:0 5px 5px 0;background:#fff8ed}

#bathroomScene .bathroom-dryer.is-targeting-cat{z-index:82!important;pointer-events:none;filter:drop-shadow(0 13px 10px rgba(83,57,45,.22))}
.bathroom-dryer.is-facing-left .dryer-shell{left:54px;transform:scaleX(-1);transform-origin:50% 50%}
.bathroom-dryer.is-facing-left .dryer-breeze{left:0;transform-origin:right center;transform:scaleX(-.45)}
.bathroom-dryer.is-facing-left.is-blowing .dryer-breeze{transform:scaleX(-1)}
.bathroom-groom-brush.is-brushing-cat{z-index:81!important}
.room.is-bathroom .cat-stage.is-riding-bath[data-positioned="true"]{transition:none!important;will-change:left,top;}

/* The classic brush keeps only the normal brushing motion. Collectible skins
   add their own small, readable effect without recolouring the cat. */
.bathroom-groom-brush.is-brushing-cat .brush-fur-ball{animation:none;opacity:0}
.bathroom-groom-brush[data-active-effect="cotton-cloud"] .brush-fur-ball{animation:groomFurGatherV3165 3.2s ease-out both}
.bathroom-groom-brush[data-active-effect="cotton-cloud"] .brush-head{filter:drop-shadow(0 0 8px rgba(255,248,225,.82));animation:groomCloudBrushV3167 .72s cubic-bezier(.32,.05,.28,1) 5 alternate}
.bathroom-groom-brush[data-active-effect="orange-soda"] .brush-head::before{content:"";position:absolute;z-index:7;inset:4px;border-radius:inherit;background:radial-gradient(circle at 20% 80%,rgba(255,255,255,.88) 0 3px,transparent 4px),radial-gradient(circle at 52% 65%,rgba(255,238,205,.86) 0 4px,transparent 5px),radial-gradient(circle at 77% 85%,rgba(255,255,255,.78) 0 2px,transparent 3px);animation:groomSodaBubblesV3167 .9s ease-in-out 4 alternate}
.bathroom-groom-brush[data-active-effect="orange-soda"] .brush-fur-ball{animation:groomOrangeFurDropV3167 3.7s ease-in both}
.cat-stage.is-being-brushed[data-brush-effect="moonlight"]::before{content:"✦  ·  ✧";position:absolute;z-index:82;left:47%;top:34%;color:#fff7cf;font-size:18px;letter-spacing:10px;pointer-events:none;text-shadow:20px 25px 0 #d9cbff,-16px 45px 0 #fff;filter:drop-shadow(0 0 6px rgba(228,215,255,.96));animation:groomMoonStarsV3167 .82s ease-in-out 4 alternate}
.bathroom-groom-brush[data-active-effect="moonlight"] .brush-head{box-shadow:inset 0 4px rgba(255,255,255,.18),0 0 16px rgba(205,187,255,.8)}
.cat-stage.is-being-brushed[data-brush-effect="mint-jelly"]::before{content:"";position:absolute;z-index:81;left:28%;top:49%;width:48%;height:25%;border-top:5px solid rgba(180,247,219,.7);border-radius:50%;pointer-events:none;filter:drop-shadow(0 0 6px rgba(99,211,171,.62));animation:groomMintSheenV3167 .72s ease-in-out 5 alternate}
.cat-stage.is-being-brushed[data-brush-effect="mint-jelly"] .cat-head{animation:groomMintCheekRubV3167 .72s ease-in-out 5 alternate!important}
@keyframes groomCloudBrushV3167{to{transform:translate(-18px,11px) rotate(-17deg) scale(1.04)}}
@keyframes groomSodaBubblesV3167{from{transform:translateY(7px);opacity:.45}to{transform:translateY(-8px);opacity:1}}
@keyframes groomOrangeFurDropV3167{0%,44%{opacity:0;transform:translateY(-3px) scale(.4)}58%,77%{opacity:1;transform:none}100%{opacity:0;transform:translateY(34px) rotate(12deg) scale(.88)}}
@keyframes groomMoonStarsV3167{from{opacity:.25;transform:translate(-8px,7px) scale(.72)}to{opacity:1;transform:translate(9px,-8px) scale(1.08)}}
@keyframes groomMintSheenV3167{from{opacity:.28;transform:translateX(-17px) rotate(-7deg)}to{opacity:.95;transform:translateX(18px) rotate(5deg)}}
@keyframes groomMintCheekRubV3167{to{transform:translate(7px,4px) rotate(4deg)}}

@media(max-width:720px){.cabinet-stored-tools{left:7px;right:7px;top:14px;bottom:45px;gap:2px;padding:2px}}
@media(prefers-reduced-motion:reduce){
  .stored-bathroom-tool,.bathroom-dryer :is(.dryer-shell,.dryer-breeze){transition:none!important}
  .bathroom-groom-brush[data-active-effect] :is(.brush-head,.brush-fur-ball),
  .cat-stage.is-being-brushed[data-brush-effect]::before,
  .cat-stage.is-being-brushed[data-brush-effect="mint-jelly"] .cat-head{animation:none!important}
  .cat-stage.is-being-brushed[data-brush-effect]::before{opacity:.8;transform:none}
}

/* v31.68: fixed cabinet slots, bathroom depth physics, persistent spill care,
   and grooming tools that remain visibly above Puffles. Cat artwork is not
   recoloured, resized, or reshaped by these rules. */
.room.is-bathroom .bathroom-scene{z-index:auto}
#bathroomScene [data-bathroom-movable].is-layout-ready{
  transform:translate(-50%,-50%) scale(var(--bath-responsive-scale,1)) scale(var(--bath-depth-scale,1))!important;
}
#bathroomScene [data-bathroom-movable].is-beyond-bathroom-corner{
  filter:drop-shadow(0 18px 11px rgba(79,58,49,.18));
}
#bathroomScene [data-bathroom-movable].is-bath-dragging{z-index:95!important}
#bathroomScene .bathroom-dryer.is-targeting-cat{z-index:97!important}
#bathroomScene .bathroom-groom-brush.is-brushing-cat{z-index:98!important}
.just-landed-at-bathroom-corner{animation:bathroomCornerLandingV3168 .34s ease-out}
@keyframes bathroomCornerLandingV3168{45%{filter:drop-shadow(0 5px 4px rgba(76,53,44,.25));transform:translate(-50%,-48%) scale(var(--bath-responsive-scale,1)) scale(var(--bath-depth-scale,1))}100%{filter:none}}

.cabinet-stored-tools{
  grid-template-columns:repeat(3,minmax(44px,1fr));grid-template-rows:repeat(2,minmax(44px,1fr));
}
.stored-bathroom-dryer{grid-column:1;grid-row:1}
.stored-bathroom-scoop{grid-column:2;grid-row:1}
.stored-bathroom-brush{grid-column:3;grid-row:1}
.stored-bathroom-shampoo{grid-column:1;grid-row:2}
.stored-bathroom-mop{grid-column:2;grid-row:2}
.stored-bathroom-mop i{
  position:absolute;left:48%;top:4%;width:8px;height:63%;border:2px solid #765f57;border-radius:8px;
  background:linear-gradient(90deg,#dceff0,#9fcfd1);transform:translateX(-50%) rotate(18deg);transform-origin:50% 90%;
}
.stored-bathroom-mop span{
  position:absolute;left:17%;right:13%;bottom:8%;height:31%;border:2px solid #765f57;border-radius:50% 50% 36% 36%;
  background:repeating-linear-gradient(90deg,#b8e0df 0 7px,#ecfaf5 7px 12px);
}

.bathroom-mop{
  position:absolute;width:122px;height:128px;min-width:44px;min-height:44px;padding:0;border:0;color:#705c57;
  cursor:grab;background:transparent;filter:drop-shadow(0 8px 6px rgba(73,53,48,.18));touch-action:none;
}
.bathroom-mop .mop-handle{
  position:absolute;z-index:2;left:55px;top:0;width:16px;height:91px;border:3px solid #725d56;border-radius:10px;
  background:linear-gradient(90deg,#e9f7f5,#99cfd0,#dff3f0);transform:rotate(21deg);transform-origin:50% 92%;
  box-shadow:inset 3px 0 rgba(255,255,255,.45);
}
.bathroom-mop .mop-handle i{position:absolute;left:50%;top:8px;width:7px;height:16px;border-radius:6px;background:#efb2bb;transform:translateX(-50%)}
.bathroom-mop .mop-head{
  position:absolute;z-index:3;left:13px;bottom:13px;width:82px;height:39px;border:3px solid #725d56;border-radius:48% 48% 35% 35%;
  background:linear-gradient(145deg,#e4f6f3,#9bcfd0);transform:rotate(-7deg);box-shadow:inset 0 5px rgba(255,255,255,.42);
}
.bathroom-mop .mop-head i{position:absolute;top:24px;width:12px;height:24px;border-radius:0 0 10px 10px;background:linear-gradient(#b4dcda,#eefaf6)}
.bathroom-mop .mop-head i:nth-child(1){left:4px;transform:rotate(12deg)}.bathroom-mop .mop-head i:nth-child(2){left:20px;top:27px;transform:rotate(6deg)}.bathroom-mop .mop-head i:nth-child(3){left:36px;top:28px}.bathroom-mop .mop-head i:nth-child(4){left:52px;top:27px;transform:rotate(-6deg)}.bathroom-mop .mop-head i:nth-child(5){left:67px;transform:rotate(-12deg)}
.bathroom-mop small{position:absolute;left:50%;bottom:0;padding:3px 7px;border-radius:8px;background:rgba(255,255,255,.84);font-size:8px;font-weight:900;white-space:nowrap;transform:translateX(-50%)}
.bathroom-mop.is-mopping{z-index:96!important}
.bathroom-mop.is-mopping .mop-head{animation:bathroomMopWipeV3168 .34s ease-in-out infinite alternate}
.bathroom-mop.is-mopping::after{content:"";position:absolute;z-index:-1;left:8px;bottom:4px;width:93px;height:20px;border-radius:50%;background:rgba(239,252,246,.56);filter:blur(3px);animation:bathroomMopDryTrailV3168 .5s ease-out infinite alternate}
@keyframes bathroomMopWipeV3168{to{transform:translateX(16px) rotate(6deg)}}
@keyframes bathroomMopDryTrailV3168{to{opacity:.2;transform:scaleX(1.18)}}

.bathroom-floor-puddle{
  position:absolute;z-index:51;left:var(--puddle-x,52%);top:var(--puddle-y,83%);width:176px;height:58px;
  pointer-events:none;opacity:var(--puddle-opacity,1);transform:translate(-50%,-50%) rotate(-3deg);
  border:2px solid rgba(127,196,209,.4);border-radius:48% 52% 44% 56%;
  background:radial-gradient(ellipse at 27% 42%,rgba(236,252,253,.85) 0 11%,transparent 12%),radial-gradient(ellipse at 70% 61%,rgba(211,242,246,.72) 0 13%,transparent 14%),linear-gradient(155deg,rgba(180,229,236,.58),rgba(114,194,209,.32));
  box-shadow:inset 0 7px rgba(255,255,255,.42),0 4px 9px rgba(83,145,157,.12);transition:opacity .18s ease,filter .18s ease;
}
.bathroom-floor-puddle>i{position:absolute;width:12px;height:8px;border-radius:50%;background:rgba(246,255,255,.72)}
.bathroom-floor-puddle>i:nth-child(1){left:23%;top:24%}.bathroom-floor-puddle>i:nth-child(2){left:52%;top:55%;width:18px}.bathroom-floor-puddle>i:nth-child(3){right:18%;top:31%;width:8px}
.bathroom-floor-puddle>b{position:absolute;left:13%;right:17%;top:12px;height:10px;border-top:3px solid rgba(255,255,255,.58);border-radius:50%}
.bathroom-floor-puddle.is-drying{display:block!important;animation:bathroomPuddleDryV3168 .52s ease-out both}
@keyframes bathroomPuddleDryV3168{to{opacity:0;filter:blur(5px);transform:translate(-50%,-50%) rotate(-3deg) scale(.72)}}

.groom-shed-effect{position:absolute;z-index:12;left:5px;top:28px;width:104px;height:78px;opacity:0;pointer-events:none}
.groom-shed-effect i{position:absolute;left:48%;top:58%;width:12px;height:9px;border-radius:70% 35% 70% 35%;background:var(--pet-main,#c9b0e1);box-shadow:4px 1px 0 -2px var(--pet-light,#f1e8f8),0 1px 0 rgba(91,66,58,.18);filter:drop-shadow(0 0 3px rgba(255,255,255,.78))}
.groom-shed-effect i:nth-child(2){left:34%;top:48%;transform:scale(.8)}.groom-shed-effect i:nth-child(3){left:63%;top:42%;transform:scale(.65)}.groom-shed-effect i:nth-child(4){left:24%;top:67%;transform:scale(.55)}.groom-shed-effect i:nth-child(5){left:74%;top:63%;transform:scale(.72)}
.bathroom-groom-brush.is-brushing-cat .groom-shed-effect{opacity:1}
.bathroom-groom-brush.is-brushing-cat .groom-shed-effect i{animation:groomLooseFurV3168 1.05s ease-out infinite}
.bathroom-groom-brush.is-brushing-cat .groom-shed-effect i:nth-child(2){animation-delay:-.2s}.bathroom-groom-brush.is-brushing-cat .groom-shed-effect i:nth-child(3){animation-delay:-.42s}.bathroom-groom-brush.is-brushing-cat .groom-shed-effect i:nth-child(4){animation-delay:-.63s}.bathroom-groom-brush.is-brushing-cat .groom-shed-effect i:nth-child(5){animation-delay:-.81s}
.bathroom-groom-brush.is-brushing-cat:not([data-active-effect]) .brush-fur-ball{opacity:1;animation:groomFurGatherV3165 3.2s ease-out both}
.bathroom-groom-brush[data-active-effect="cotton-cloud"] .groom-shed-effect i{width:13px;height:11px;border-radius:50%;background:#fffdf7;box-shadow:6px 1px 0 -2px #f4efe5}
.bathroom-groom-brush[data-active-effect="orange-soda"] .groom-shed-effect i{border-radius:50%;background:rgba(255,193,106,.82);box-shadow:inset 0 2px rgba(255,255,255,.72)}
.bathroom-groom-brush[data-active-effect="moonlight"] .groom-shed-effect i{width:8px;height:8px;border-radius:0;background:#fff6cf;clip-path:polygon(50% 0,61% 37%,100% 50%,61% 63%,50% 100%,39% 63%,0 50%,39% 37%);filter:drop-shadow(0 0 5px #cfbfff)}
.bathroom-groom-brush[data-active-effect="mint-jelly"] .groom-shed-effect i{background:rgba(176,241,216,.85);box-shadow:0 0 5px rgba(89,197,159,.66)}
@keyframes groomLooseFurV3168{0%{opacity:0;transform:translate(0,2px) rotate(0) scale(.45)}28%{opacity:.95}100%{opacity:0;transform:translate(var(--groom-drift,18px),-34px) rotate(125deg) scale(1.08)}}

@media(max-width:720px){
  .bathroom-cabinet{min-width:156px}
  .cabinet-stored-tools{left:6px;right:6px;top:13px;bottom:44px;grid-template-columns:repeat(3,minmax(44px,1fr));grid-template-rows:repeat(2,minmax(40px,1fr))}
  .bathroom-mop{--bath-responsive-scale:.69}.bathroom-floor-puddle{width:145px;height:49px}
}
@media(max-width:420px){.bathroom-mop{--bath-responsive-scale:.57}.bathroom-cabinet{min-width:150px}}
@media(prefers-reduced-motion:reduce){
  .just-landed-at-bathroom-corner,.bathroom-mop.is-mopping .mop-head,.bathroom-mop.is-mopping::after,.bathroom-floor-puddle.is-drying,.bathroom-groom-brush.is-brushing-cat .groom-shed-effect i{animation:none!important}
  .bathroom-groom-brush.is-brushing-cat .groom-shed-effect{opacity:.85}
}

/* v31.71: four-brush secret and directional catchlights. These rules move
   only the existing white catchlights; eye size and the cat silhouette stay
   exactly as drawn. */
.cat-stage .cat-eye{overflow:hidden}
.cat-stage .cat-eye::after{
  transform:translate(var(--eye-glint-x,0px),var(--eye-glint-y,0px));
  transition:transform .24s cubic-bezier(.2,.78,.2,1),opacity .16s ease;
  will-change:transform;
}
.cat-stage[data-pose="prone"] .cat-eye::after,
.cat-stage[data-pose="roll"] .cat-eye::after,
.room:is(.is-unhappy,.is-angry,.is-dizzy) .cat-eye::after{opacity:0}

.bathroom-groom-brush.is-counting-groom-stroke::after{
  content:"";position:absolute;z-index:10;left:23px;top:24px;width:10px;height:10px;border-radius:50%;
  pointer-events:none;background:#fff6fb;box-shadow:0 0 0 5px rgba(247,178,207,.2),0 0 15px rgba(239,137,185,.72);
  animation:groomStrokeCountV3171 .48s ease-out both;
}
@keyframes groomStrokeCountV3171{0%{opacity:0;transform:scale(.3)}35%{opacity:1}100%{opacity:0;transform:translate(15px,-20px) scale(1.5)}}

.groom-magic-circle{
  position:absolute;z-index:61;width:260px;height:174px;pointer-events:none;opacity:0;
  transform:translate(-50%,-66%) scale(.68);transform-origin:50% 72%;
}
.groom-magic-circle.is-active{animation:groomMagicAppearV3171 4.6s cubic-bezier(.2,.78,.2,1) both}
.groom-paw-aura{
  position:absolute;left:50%;top:62%;width:206px;height:104px;border:3px solid rgba(248,169,203,.72);border-radius:50%;
  background:radial-gradient(ellipse,rgba(255,224,239,.32),rgba(255,200,225,.1) 48%,transparent 72%);
  box-shadow:0 0 14px rgba(247,157,198,.62),inset 0 0 18px rgba(255,213,233,.48);
  transform:translate(-50%,-50%) rotate(-2deg);animation:groomAuraBreatheV3171 1.45s ease-in-out infinite alternate;
}
.groom-paw-aura::before,.groom-paw-aura::after{content:"";position:absolute;inset:8px;border:1.5px solid rgba(255,224,239,.76);border-radius:50%}
.groom-paw-aura::after{inset:18px;opacity:.58}
.groom-paw-toe,.groom-paw-pad{position:absolute;border:3px solid rgba(249,157,198,.88);background:rgba(255,227,240,.22);box-shadow:0 0 9px rgba(255,177,211,.68)}
.groom-paw-toe{z-index:2;top:20px;width:22px;height:28px;border-radius:52% 48% 56% 44%}
.groom-paw-toe.toe-one{left:47px;transform:rotate(-21deg)}
.groom-paw-toe.toe-two{left:75px;top:10px;transform:rotate(-8deg)}
.groom-paw-toe.toe-three{right:75px;top:10px;transform:rotate(8deg)}
.groom-paw-toe.toe-four{right:47px;transform:rotate(21deg)}
.groom-paw-pad{z-index:2;left:50%;bottom:9px;width:72px;height:48px;border-radius:52% 48% 45% 45%/60% 60% 40% 40%;transform:translateX(-50%)}

.groom-magic-treat{position:absolute;z-index:4;left:50%;top:65%;width:31px;height:14px;border:2px solid #9f645d;border-radius:5px;background:linear-gradient(90deg,#f09aaa 0 19%,#fff0dc 20% 77%,#f09aaa 78%);box-shadow:0 0 10px rgba(255,218,149,.72);opacity:0}
.groom-magic-treat::before,.groom-magic-treat::after{content:"";position:absolute;top:-2px;width:4px;height:14px;border-top:2px solid #9f645d;border-bottom:2px solid #9f645d;background:#ffd0bc}
.groom-magic-treat::before{left:3px}.groom-magic-treat::after{right:3px}
.groom-magic-treat>i{position:absolute;left:50%;top:50%;width:8px;height:6px;border-radius:50%;background:#ce7966;transform:translate(-50%,-50%)}
.groom-magic-circle.is-active .groom-magic-treat{animation:groomTreatFloatV3171 3.65s cubic-bezier(.2,.75,.26,1) var(--treat-delay,0s) both}
.groom-magic-treat.treat-one{--treat-x:-93px;--treat-y:-83px;--treat-rotate:-18deg;--treat-delay:.18s}
.groom-magic-treat.treat-two{--treat-x:-51px;--treat-y:-112px;--treat-rotate:13deg;--treat-delay:.42s}
.groom-magic-treat.treat-three{--treat-x:4px;--treat-y:-126px;--treat-rotate:-7deg;--treat-delay:.29s}
.groom-magic-treat.treat-four{--treat-x:54px;--treat-y:-108px;--treat-rotate:17deg;--treat-delay:.56s}
.groom-magic-treat.treat-five{--treat-x:96px;--treat-y:-76px;--treat-rotate:-12deg;--treat-delay:.33s}
.groom-magic-treat.treat-six{--treat-x:17px;--treat-y:-75px;--treat-rotate:8deg;--treat-delay:.7s;width:19px;height:15px;border-radius:50%;background:radial-gradient(circle at 38% 36%,#ffe3a0 0 2px,#d99c5a 3px 100%)}
.groom-magic-treat.treat-six::before,.groom-magic-treat.treat-six::after,.groom-magic-treat.treat-six>i{display:none}
.groom-magic-treat.treat-seven{--treat-x:-76px;--treat-y:-53px;--treat-rotate:-24deg;--treat-delay:.78s;width:25px;height:16px;border-radius:65% 42% 42% 65%;background:linear-gradient(90deg,#efab79,#f7c795)}
.groom-magic-treat.treat-seven::before{display:block;left:auto;right:-9px;top:1px;width:12px;height:12px;border:0;background:#efab79;clip-path:polygon(0 50%,100% 0,76% 50%,100% 100%)}
.groom-magic-treat.treat-seven::after{display:none}.groom-magic-treat.treat-seven>i{left:7px;top:5px;width:3px;height:3px;background:#744c47}
.groom-magic-treat.treat-eight{--treat-x:79px;--treat-y:-48px;--treat-rotate:21deg;--treat-delay:.86s;width:23px;height:21px;border-radius:48% 48% 45% 45%;background:#f2c67e}
.groom-magic-treat.treat-eight::before,.groom-magic-treat.treat-eight::after{top:3px;width:6px;height:6px;border:0;border-radius:50%;background:#fff0c8}
.groom-magic-treat.treat-eight::before{left:4px;box-shadow:7px -3px 0 #fff0c8,4px 7px 0 #fff0c8}.groom-magic-treat.treat-eight::after{display:none}.groom-magic-treat.treat-eight>i{display:none}
.groom-magic-spark{position:absolute;z-index:3;left:50%;top:62%;width:12px;height:12px;background:#fff2c2;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);filter:drop-shadow(0 0 6px #f8bbd4);opacity:0}
.groom-magic-circle.is-active .groom-magic-spark{animation:groomMagicSparkV3171 2.1s ease-in-out var(--spark-delay,0s) 2 alternate}
.groom-magic-spark.spark-one{--spark-delay:.15s;margin-left:-92px;margin-top:-66px}.groom-magic-spark.spark-two{--spark-delay:.55s;margin-left:79px;margin-top:-79px}.groom-magic-spark.spark-three{--spark-delay:.92s;margin-left:2px;margin-top:-123px}

.cat-stage.is-groom-magic-rolling .big-cat{animation:groomMagicBellyRollV3171 1.15s ease-in-out 4!important}
.cat-stage.is-groom-magic-rolling .cat-tail{animation:groomMagicHappyTailV3171 .48s ease-in-out 9 alternate!important}
@keyframes groomMagicAppearV3171{0%{opacity:0;transform:translate(-50%,-62%) scale(.58);filter:blur(5px)}12%,84%{opacity:1;transform:translate(-50%,-66%) scale(1);filter:blur(0)}100%{opacity:0;transform:translate(-50%,-69%) scale(1.08);filter:blur(3px)}}
@keyframes groomAuraBreatheV3171{to{filter:brightness(1.14);box-shadow:0 0 24px rgba(247,157,198,.74),inset 0 0 24px rgba(255,213,233,.56);transform:translate(-50%,-50%) rotate(2deg) scale(1.035)}}
@keyframes groomTreatFloatV3171{0%{opacity:0;transform:translate(-50%,-20%) translate(0,18px) rotate(0) scale(.35)}24%,78%{opacity:1}100%{opacity:0;transform:translate(-50%,-20%) translate(var(--treat-x),var(--treat-y)) rotate(var(--treat-rotate)) scale(1)}}
@keyframes groomMagicSparkV3171{0%{opacity:.15;transform:translateY(12px) rotate(0) scale(.55)}100%{opacity:1;transform:translateY(-17px) rotate(90deg) scale(1.2)}}
@keyframes groomMagicBellyRollV3171{0%,100%{transform:translateX(-50%) rotate(-3deg) translateY(0)}50%{transform:translateX(-50%) rotate(4deg) translateY(-5px) scale(1.025)}}
@keyframes groomMagicHappyTailV3171{to{transform:rotate(13deg) translate(5px,-4px)}}

@media(max-width:720px){.groom-magic-circle{width:228px;height:154px}.groom-paw-aura{width:184px;height:94px;transform:translate(-50%,-50%) scale(.9)}}
@media(prefers-reduced-motion:reduce){
  .cat-stage .cat-eye::after{transition:none}
  .bathroom-groom-brush.is-counting-groom-stroke::after,.groom-magic-circle.is-active,.groom-paw-aura,.groom-magic-circle.is-active .groom-magic-treat,.groom-magic-circle.is-active .groom-magic-spark,.cat-stage.is-groom-magic-rolling .big-cat,.cat-stage.is-groom-magic-rolling .cat-tail{animation:none!important}
  .groom-magic-circle.is-active{opacity:1;transform:translate(-50%,-66%) scale(1)}
  .groom-magic-treat{opacity:.9;transform:translate(-50%,-20%) translate(var(--treat-x),var(--treat-y)) rotate(var(--treat-rotate))}
  .groom-magic-spark{opacity:.85}
}

/* v31.73: the two cat-tree platforms and the round nest are distinct,
   forgiving drop targets. Only the nest masks the existing cat drawing so
   the original silhouette, colours and proportions remain unchanged. */
.tree-platform,.tree-hole,.sofa-seat,.bed-blanket{
  transition:filter .2s ease,box-shadow .24s ease,transform .24s cubic-bezier(.2,.78,.2,1);
}
.tree-platform.is-cat-drop-target,.tree-hole.is-cat-drop-target,
.sofa-seat.is-cat-drop-target,.bed-blanket.is-cat-drop-target{
  filter:brightness(1.1) saturate(1.08);
  box-shadow:0 0 0 5px rgba(255,246,205,.72),0 0 22px rgba(239,194,100,.72),inset 0 -5px rgba(132,98,76,.08);
}
.cat-stage.is-on-tree-platform-two .cat-shadow{transform:translateX(-50%) scale(.52)}
.cat-stage.is-in-tree-nest .cat-shadow{opacity:0!important}
.cat-stage.is-in-tree-nest .big-cat{
  clip-path:ellipse(77px 70px at 50% 35%);
  transform:translateX(-50%) translateY(110px)!important;
  animation:none!important;
}
.cat-stage.is-in-tree-nest .cat-head{animation:treeNestPeekV3173 3.2s ease-in-out infinite!important}
.cat-stage.is-soft-landing .big-cat{animation:softLandingV3173 .52s cubic-bezier(.2,.82,.2,1) both!important}
@keyframes treeNestPeekV3173{0%,100%{transform:translateY(1px) rotate(-1deg)}50%{transform:translateY(-3px) rotate(2deg)}}
@keyframes softLandingV3173{0%{transform:translateX(-50%) translateY(-5px)}55%{transform:translateX(-50%) translateY(3px) scale(1.035,.94)}78%{transform:translateX(-50%) translateY(-2px) scale(.985,1.025)}100%{transform:translateX(-50%) translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){
  .tree-platform,.tree-hole,.sofa-seat,.bed-blanket{transition:none}
  .cat-stage.is-in-tree-nest .cat-head,.cat-stage.is-soft-landing .big-cat{animation:none!important}
}

/* v31.74: illness care, medical interactions, and the wet fisher-cape scene. */
.sick-medical-icon{
  position:absolute;z-index:42;left:50%;top:14px;width:54px;height:54px;display:none;place-items:center;
  border:2px solid rgba(255,255,255,.88);border-radius:50%;background:rgba(239,107,112,.2);
  box-shadow:0 0 0 8px rgba(255,255,255,.2),0 8px 22px rgba(151,67,73,.2);
  opacity:var(--medical-cross-opacity,1);transform:translateX(-50%);pointer-events:none;
}
.sick-medical-icon::before{content:"";position:absolute;inset:-10px;border:2px solid rgba(255,255,255,.78);border-radius:50%;animation:sickMedicalOrbitV3174 7s linear infinite}
.sick-medical-icon::after{content:"";position:absolute;left:50%;top:-11px;width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.9)}
.sick-medical-icon i,.sick-medical-icon i::after{position:absolute;width:28px;height:9px;border-radius:4px;background:#e75760;box-shadow:inset 0 1px rgba(255,255,255,.58)}
.sick-medical-icon i::after{content:"";transform:rotate(90deg)}
.cat-stage.is-sick .sick-medical-icon{display:grid}
.cat-stage.is-sick .big-cat{filter:grayscale(.32) saturate(.58) brightness(.91) contrast(.92);animation:sickCatShiverV3174 2.9s ease-in-out infinite!important}
.cat-stage.is-sick .cat-ear.left{transform:translate(-4px,7px) rotate(-38deg)!important;transform-origin:100% 100%}
.cat-stage.is-sick .cat-ear.right{transform:translate(4px,7px) scaleX(-1) rotate(-38deg)!important;transform-origin:0 100%}
.cat-stage.is-sick.is-sick-soothing .cat-ear.left{transform:translate(-2px,4px) rotate(-24deg)!important}
.cat-stage.is-sick.is-sick-soothing .cat-ear.right{transform:translate(2px,4px) scaleX(-1) rotate(-24deg)!important}
.cat-stage.is-sick .cat-eye{height:5px!important;border-radius:50%!important;transform:scaleY(.48);opacity:.78}
.cat-stage.is-sick .cat-tail{transform:translate(-18px,14px) rotate(36deg)!important;opacity:.74}
.sick-tears{position:absolute;z-index:35;left:50%;top:115px;width:86px;height:56px;display:none;pointer-events:none;transform:translateX(-50%)}
.cat-stage.is-sick .sick-tears{display:block}
.sick-tears i{position:absolute;top:16px;width:9px;height:15px;border-radius:70% 35% 70% 65%;background:linear-gradient(145deg,#fff 0 20%,#bfe4f2 42%,#79bfdc);box-shadow:0 2px 5px rgba(75,143,174,.24);animation:sickTearV3174 2.7s ease-in-out infinite}
.sick-tears i:first-child{left:13px;transform:rotate(12deg)}.sick-tears i:last-child{right:13px;animation-delay:-1.2s;transform:rotate(-12deg)}
.room.is-sick{box-shadow:inset 0 0 0 1px rgba(229,114,120,.08);transition:box-shadow .5s ease}
.room.is-sick-urgent{box-shadow:inset 0 0 68px 10px rgba(201,66,75,.24);animation:sickUrgencyV3174 2.4s ease-in-out infinite alternate}
@keyframes sickMedicalOrbitV3174{to{transform:rotate(360deg)}}
@keyframes sickCatShiverV3174{0%,86%,100%{transform:translateX(-50%) translate(0,0)}90%{transform:translateX(-50%) translate(-1px,0)}94%{transform:translateX(-50%) translate(1px,-1px)}}
@keyframes sickTearV3174{0%,24%{opacity:0;translate:0 -3px}38%,76%{opacity:.92}100%{opacity:0;translate:0 18px}}
@keyframes sickUrgencyV3174{to{box-shadow:inset 0 0 84px 14px rgba(201,66,75,.34)}}

.medical-kit-button{
  position:absolute;z-index:96;right:22px;bottom:102px;min-width:148px;min-height:60px;display:grid;grid-template-columns:46px 1fr;grid-template-rows:1fr 1fr;align-items:center;column-gap:9px;padding:8px 13px 8px 9px;
  border:1px solid rgba(255,255,255,.76);border-radius:20px;color:#663f48;text-align:left;cursor:pointer;
  background:linear-gradient(145deg,rgba(255,255,255,.82),rgba(255,226,228,.62));backdrop-filter:blur(14px) saturate(1.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.98),inset 0 -3px 8px rgba(188,86,96,.08),0 14px 34px rgba(93,55,64,.18);
  transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;
}
.medical-kit-button[hidden]{display:none}.medical-kit-button:hover{transform:translateY(-2px);box-shadow:inset 0 1px #fff,0 17px 38px rgba(93,55,64,.22)}.medical-kit-button:active{transform:translateY(1px) scale(.98)}
.medical-kit-button:focus-visible{outline:3px solid rgba(204,76,91,.35);outline-offset:3px}
.medical-kit-case{grid-row:1/3;position:relative;width:46px;height:39px;border:3px solid #a8515c;border-radius:12px;background:linear-gradient(145deg,#ee8087,#d95c67);box-shadow:inset 0 2px rgba(255,255,255,.45),0 6px 12px rgba(126,52,61,.2)}
.medical-kit-case::before{content:"";position:absolute;left:50%;top:-11px;width:19px;height:10px;border:3px solid #a8515c;border-bottom:0;border-radius:7px 7px 0 0;transform:translateX(-50%)}
.medical-kit-case i,.medical-kit-case i::after{position:absolute;left:50%;top:50%;width:19px;height:6px;border-radius:3px;background:#fff7f0;transform:translate(-50%,-50%)}.medical-kit-case i::after{content:"";transform:translate(-50%,-50%) rotate(90deg)}
.medical-kit-button>b{align-self:end;font-size:14px}.medical-kit-button>small{align-self:start;color:#986771;font-size:10px;white-space:nowrap}
.medical-kit-button.is-urgent{animation:medicalKitUrgentV3174 1.45s ease-in-out infinite}
@keyframes medicalKitUrgentV3174{50%{filter:brightness(1.06);box-shadow:inset 0 1px #fff,0 0 0 6px rgba(230,105,112,.15),0 17px 38px rgba(126,52,61,.23)}}

.medical-modal{z-index:240;background:rgba(74,48,58,.42);backdrop-filter:blur(9px)}
.medical-card{width:min(850px,calc(100% - 28px));max-height:min(92dvh,820px);overflow:auto;padding:22px;border:1px solid rgba(255,255,255,.82);border-radius:30px;background:linear-gradient(150deg,rgba(255,253,249,.96),rgba(250,235,239,.92));box-shadow:inset 0 1px #fff,0 30px 80px rgba(74,44,57,.28)}
.medical-header{display:flex;align-items:center;justify-content:space-between;gap:18px}.medical-header h2{margin:2px 0 0;color:#4f3942;font-size:25px}.medical-intro{margin:8px 0 16px;color:#765e67;font-size:13px;line-height:1.65}
.medical-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 16px;padding:0;list-style:none}
.medical-stepper li{min-height:48px;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(133,101,111,.13);border-radius:15px;color:#856f76;background:rgba(255,255,255,.58);font-size:12px;transition:background .25s ease,transform .25s ease,border-color .25s ease}
.medical-stepper li b{width:28px;height:28px;display:grid;place-items:center;border-radius:10px;color:#8b6971;background:#f2e3e6}.medical-stepper li.is-active{color:#6a3f49;border-color:rgba(213,105,116,.35);background:#fff1f2;transform:translateY(-2px)}.medical-stepper li.is-active b{color:#fff;background:#d96773}.medical-stepper li.is-complete{color:#477b69;background:#eef9f3}.medical-stepper li.is-complete b{color:#fff;background:#69a88f}.medical-stepper li.is-complete b::after{content:"✓";position:absolute}.medical-stepper li.is-complete b{font-size:0;position:relative}.medical-stepper li.is-complete b::after{font-size:14px}
.medical-care-scene{position:relative;min-height:294px;overflow:hidden;border:1px solid rgba(138,101,111,.13);border-radius:24px;background:radial-gradient(circle at 48% 32%,rgba(255,255,255,.98),rgba(255,234,238,.76) 50%,rgba(224,236,238,.66));box-shadow:inset 0 1px rgba(255,255,255,.92)}
.medical-cat-portrait{position:absolute;z-index:2;left:50%;bottom:24px;width:255px;height:226px;border:0;background:transparent;cursor:pointer;transform:translateX(-50%)}
.medical-cat-portrait:focus-visible{outline:3px solid rgba(217,103,115,.35);outline-offset:3px;border-radius:36%}
.portrait-body{position:absolute;left:33px;bottom:16px;width:190px;height:96px;border:4px solid var(--dark-line);border-radius:52% 50% 44% 48%;background:var(--pet-main);filter:grayscale(.3) saturate(.65);box-shadow:inset 0 12px var(--pet-light)}
.portrait-face{position:absolute;z-index:3;left:50%;top:29px;width:132px;height:126px;border:4px solid var(--dark-line);border-radius:48% 48% 46% 46%;background:var(--pet-main);filter:grayscale(.3) saturate(.65);transform:translateX(-50%)}
.portrait-ear{position:absolute;z-index:1;top:18px;width:53px;height:66px;border:4px solid var(--dark-line);border-radius:70% 25% 55% 25%;background:var(--pet-main)}.portrait-ear.left{left:52px;transform:rotate(-31deg)}.portrait-ear.right{right:52px;transform:scaleX(-1) rotate(-31deg)}
.portrait-eye{position:absolute;top:52px;width:22px;height:6px;border-bottom:4px solid var(--dark-line);border-radius:50%}.portrait-eye.left{left:26px}.portrait-eye.right{right:26px}.portrait-face>b{position:absolute;left:50%;top:71px;width:10px;height:7px;border-radius:50%;background:#9f665e;transform:translateX(-50%)}.portrait-face>em{position:absolute;left:50%;top:80px;width:26px;height:11px;border-bottom:3px solid var(--dark-line);border-radius:50%;transform:translateX(-50%)}
.portrait-tear{position:absolute;top:61px;width:8px;height:13px;border-radius:70% 35% 70% 65%;background:#86cce3}.portrait-tear.left{left:17px}.portrait-tear.right{right:17px}
.portrait-tail{position:absolute;z-index:1;right:4px;bottom:19px;width:92px;height:53px;border:13px solid var(--pet-main);border-left-color:transparent;border-bottom-color:transparent;border-radius:20% 80% 70% 0;filter:drop-shadow(0 -3px 0 var(--dark-line)) drop-shadow(3px 0 0 var(--dark-line));transform:rotate(22deg);opacity:.74}
.portrait-medical-cross{position:absolute;z-index:8;left:50%;top:-5px;width:45px;height:45px;display:grid;place-items:center;border:2px solid #fff;border-radius:50%;background:rgba(233,92,101,.24);transform:translateX(-50%);transition:opacity .28s ease}.portrait-medical-cross i{position:relative;width:24px;height:7px;border-radius:4px;background:#e35760}.portrait-medical-cross i::after{content:"";position:absolute;inset:0;border-radius:inherit;background:inherit;transform:rotate(90deg)}
.medical-forehead-target{position:absolute;z-index:7;left:50%;top:47px;width:44px;height:34px;border-radius:50%;transform:translateX(-50%);pointer-events:none}
.medical-tool-tray{position:absolute;z-index:7;left:18px;bottom:18px;width:150px;display:grid;gap:11px}
.medical-tool{position:relative;min-height:54px;border:1px solid rgba(255,255,255,.86);border-radius:17px;background:rgba(255,255,255,.76);box-shadow:inset 0 1px #fff,0 9px 20px rgba(91,64,73,.13);cursor:grab;transform:translate(var(--medical-tool-x,0),var(--medical-tool-y,0));touch-action:none;transition:opacity .2s ease,filter .2s ease}.medical-tool:disabled{cursor:not-allowed;opacity:.4}.medical-tool.is-medical-dragging{z-index:20;cursor:grabbing;transition:none;filter:drop-shadow(0 14px 12px rgba(80,48,61,.2))}.medical-tool:focus-visible{outline:3px solid rgba(89,149,170,.35);outline-offset:2px}
.medical-tool.thermometer span{position:absolute;left:18px;top:11px;width:14px;height:34px;border:3px solid #6d8390;border-radius:8px;background:#f7ffff}.medical-tool.thermometer span::after{content:"";position:absolute;left:3px;bottom:3px;width:3px;height:20px;border-radius:3px;background:#e66d74}.medical-tool.thermometer i{position:absolute;left:16px;bottom:7px;width:18px;height:18px;border-radius:50%;background:#edf7fa;border:3px solid #6d8390}.medical-tool.thermometer b{position:absolute;right:13px;top:18px;color:#4f6873;font-size:13px;font-variant-numeric:tabular-nums}.medical-tool.thermometer.is-fever-reading b{color:#c94852}.medical-tool.thermometer.is-low-reading b{color:#4786ad}.medical-tool.thermometer.is-fever-alert{animation:thermometerAlertV3174 .16s ease-in-out 5}.medical-tool.thermometer.is-low-alert{box-shadow:0 0 0 5px rgba(94,172,218,.16),0 10px 24px rgba(71,134,173,.2)}
.medical-tool.warm-towel{display:flex;align-items:center;gap:10px;padding:8px 10px}.medical-tool.warm-towel span{width:58px;height:34px;border:2px solid #ba7d88;border-radius:12px 15px 11px 14px;background:repeating-linear-gradient(135deg,#f3aeb8 0 7px,#f8bdc5 7px 14px);box-shadow:inset 0 3px rgba(255,255,255,.35)}.medical-tool.warm-towel i,.medical-tool.warm-towel i::before,.medical-tool.warm-towel i::after{position:absolute;width:4px;height:12px;border-radius:50%;border-left:2px solid rgba(255,255,255,.9)}.medical-tool.warm-towel i{left:31px;top:0}.medical-tool.warm-towel i::before{content:"";left:-13px;top:4px}.medical-tool.warm-towel i::after{content:"";left:13px;top:5px}.medical-tool.warm-towel b{font-size:12px;color:#7e515b}
.medical-hold-progress{position:absolute;z-index:12;right:18px;bottom:22px;width:170px;height:46px;display:none;padding:9px 11px;border:1px solid rgba(255,255,255,.8);border-radius:15px;background:rgba(255,255,255,.78);box-shadow:0 8px 22px rgba(79,55,64,.12)}.medical-hold-progress.is-visible{display:block}.medical-hold-progress::before{content:"";position:absolute;left:11px;right:11px;bottom:9px;height:7px;border-radius:10px;background:#eadde0}.medical-hold-progress i{position:absolute;z-index:1;left:11px;bottom:9px;width:calc((100% - 22px) * var(--medical-hold-progress,0));height:7px;border-radius:10px;background:linear-gradient(90deg,#efa0ac,#73b79c)}.medical-hold-progress span{color:#765c65;font-size:10px}
.medical-heart-cloud{position:absolute;z-index:15;left:50%;top:38%;width:1px;height:1px;pointer-events:none}.medical-heart-cloud i,.heart-pop>i{position:absolute;width:15px;height:14px;background:#e96f86;clip-path:polygon(50% 100%,9% 62%,1% 35%,7% 13%,24% 2%,42% 7%,50% 20%,58% 7%,76% 2%,93% 13%,99% 35%,91% 62%);animation:medicalHeartPopV3174 1s ease-out both;transform:translate(var(--heart-x),var(--heart-y))}
.medical-reading{margin:12px 0;padding:11px 14px;border-radius:14px;color:#664f58;background:rgba(255,255,255,.68);font-size:12px;line-height:1.55;text-align:center}
.medical-medicine-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.medical-medicine-picker>button{min-height:66px;display:flex;align-items:center;justify-content:center;gap:12px;border:1px solid rgba(255,255,255,.86);border-radius:18px;color:#654d56;background:rgba(255,255,255,.72);box-shadow:inset 0 1px #fff,0 8px 18px rgba(83,57,66,.1);cursor:pointer}.medical-medicine-picker>button:disabled{opacity:.45;cursor:not-allowed}.medical-medicine-picker>button.is-selected{border-color:#70aa91;background:#eff9f3}.medical-medicine-picker>button.is-wrong-medicine{animation:wrongMedicineV3174 .4s ease}.medicine-bottle{position:relative;width:30px;height:37px;border:3px solid #765b65;border-radius:8px 8px 11px 11px}.medicine-bottle::before{content:"";position:absolute;left:5px;right:5px;top:-10px;height:9px;border:3px solid #765b65;border-bottom:0;border-radius:5px 5px 0 0}.medicine-bottle.fever{background:linear-gradient(transparent 35%,#ed8c94 36%)}.medicine-bottle.nutrient{background:linear-gradient(transparent 35%,#89c6a5 36%)}
.medicine-mini-game{margin-top:12px;padding:12px;border:1px solid rgba(143,104,115,.16);border-radius:20px;background:rgba(255,255,255,.62)}.medicine-mini-game[hidden]{display:none}.medicine-mini-game>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.medicine-mini-game header b{font-size:12px;color:#5c454e}.medicine-mini-game header small{color:#947982;font-size:10px}.medicine-game-field{position:relative;height:142px;overflow:hidden;border-radius:16px;background:linear-gradient(180deg,#dcecf0,#f6e7e8)}
.medicine-moving-head{position:absolute;left:50%;bottom:-19px;width:122px;height:116px;border:4px solid var(--dark-line);border-radius:48%;background:var(--pet-main);transform:translateX(-50%);animation:medicineHeadDodgeV3174 2.8s ease-in-out infinite}.medicine-moving-head .mini-ear{position:absolute;top:-25px;width:39px;height:49px;border:4px solid var(--dark-line);border-radius:70% 25% 55% 25%;background:var(--pet-main)}.medicine-moving-head .mini-ear.left{left:7px;transform:rotate(-18deg)}.medicine-moving-head .mini-ear.right{right:7px;transform:scaleX(-1) rotate(-18deg)}.medicine-moving-head .mini-eye{position:absolute;top:45px;width:10px;height:7px;border-bottom:3px solid var(--dark-line);border-radius:50%}.medicine-moving-head .mini-eye.left{left:29px}.medicine-moving-head .mini-eye.right{right:29px}.medicine-mouth-target{position:absolute;left:50%;top:68px;width:32px;height:22px;border:3px solid #774f52;border-radius:40% 40% 55% 55%;background:#b96a70;transform:translateX(-50%)}
.medical-dropper{position:absolute;z-index:5;left:18%;top:10px;width:34px;height:92px;border:0;background:transparent;cursor:grab;transform:translate(var(--dropper-x,0),var(--dropper-y,0));touch-action:none}.medical-dropper.is-dragging{cursor:grabbing}.medical-dropper i{position:absolute;left:7px;top:0;width:20px;height:34px;border:3px solid #695762;border-radius:50% 50% 37% 37%;background:#e9b6c3}.medical-dropper span{position:absolute;left:13px;top:29px;width:8px;height:57px;border:3px solid #695762;border-radius:2px 2px 7px 7px;background:linear-gradient(transparent 44%,#89c6a5 45%)}.medical-dropper span::after{content:"";position:absolute;left:50%;bottom:-7px;width:7px;height:10px;border-radius:50% 50% 60% 60%;background:#79ba98;transform:translateX(-50%)}.medical-dropper.is-missed{animation:wrongMedicineV3174 .4s ease}.medical-hp-effect{position:absolute;z-index:8;left:50%;top:28%;color:#3caa73;font-weight:900;font-size:22px;opacity:0;transform:translateX(-50%)}.medical-hp-effect.is-visible{animation:medicalHpV3174 1.3s ease-out}.medical-keyboard-drop{display:block;margin:10px auto 0;min-height:44px}
.medicine-refusal{margin-top:12px;display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto auto;column-gap:10px;padding:12px 14px;border:1px solid rgba(79,65,82,.18);border-radius:17px;color:#5b4b59;background:#eee8f0}.medicine-refusal[hidden]{display:none}.medicine-refusal>span{grid-row:1/4;display:grid;place-items:center;font-size:24px;color:#4c3e4f}.medicine-refusal b{font-size:12px}.medicine-refusal small{color:#756575;font-size:10px;line-height:1.5}.medicine-refusal>i{height:7px;margin-top:7px;overflow:hidden;border-radius:8px;background:#d8ceda}.medicine-refusal>i em{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9d83c7,#f1cb6f);transition:width .3s ease}
.medical-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:13px;border-top:1px solid rgba(121,91,101,.13);color:#765e67;font-size:12px}.medical-footer strong{color:#5b414b}
@keyframes thermometerAlertV3174{25%{transform:translate(var(--medical-tool-x,0),var(--medical-tool-y,0)) translateX(-3px)}75%{transform:translate(var(--medical-tool-x,0),var(--medical-tool-y,0)) translateX(3px)}}
@keyframes wrongMedicineV3174{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@keyframes medicineHeadDodgeV3174{0%,100%{transform:translateX(-50%) translateX(-52px) rotate(-3deg)}50%{transform:translateX(-50%) translateX(52px) rotate(3deg)}}
@keyframes medicalHpV3174{0%{opacity:0;transform:translate(-50%,12px) scale(.7)}22%,70%{opacity:1}100%{opacity:0;transform:translate(-50%,-32px) scale(1.14)}}
@keyframes medicalHeartPopV3174{0%{opacity:0;scale:.5}30%{opacity:1}100%{opacity:0;translate:0 -48px;scale:1.18}}
.medical-cat-portrait.is-swallowing .portrait-face{animation:portraitSwallowV3174 .8s ease}.medical-cat-portrait.is-compress-relieved .portrait-ear.left{transform:rotate(-22deg)}.medical-cat-portrait.is-compress-relieved .portrait-ear.right{transform:scaleX(-1) rotate(-22deg)}.medical-cat-portrait.is-refusing-medicine .portrait-face{animation:portraitRefuseV3174 .85s ease-in-out}.medical-cat-portrait.is-gently-comforted{animation:portraitComfortV3174 .44s ease}
@keyframes portraitSwallowV3174{50%{transform:translateX(-50%) translateY(3px) scaleY(.97)}}@keyframes portraitRefuseV3174{35%,70%{transform:translateX(-50%) translateX(22px) rotate(8deg)}}@keyframes portraitComfortV3174{50%{transform:translateX(-50%) translateY(-3px) scale(1.015)}}

.cat-stage.is-wet-fisher-cape .fisher-cape{top:145px!important;height:84px!important;border-color:#2c4158!important;border-radius:42% 44% 52% 50%/30% 31% 70% 68%!important;background:linear-gradient(180deg,#344d68,#263e58)!important;filter:saturate(.72) brightness(.78);box-shadow:inset 0 -12px rgba(21,43,61,.18),0 5px 6px rgba(40,52,63,.18)}
.room.is-bathroom .cat-stage.is-wet-cape-notice[data-positioned="true"]{transition:left 1.6s cubic-bezier(.2,.72,.22,1),top 1.6s cubic-bezier(.2,.72,.22,1),filter .25s ease!important}
.cat-stage.is-wet-fisher-cape .fisher-wave{bottom:3px;transform:scaleY(.58);opacity:.68}.cat-stage.is-wet-fisher-cape .fisher-tassel{filter:brightness(.7);transform-origin:50% 0}.cat-stage.is-wet-fisher-cape .fisher-tassel.left{transform:rotate(2deg) translateY(5px)}.cat-stage.is-wet-fisher-cape .fisher-tassel.right{transform:rotate(-2deg) translateY(5px)}
.cat-stage.is-wet-cape-notice .cat-head{animation:wetCapeMirrorLookV3174 3s ease-in-out both!important}.cat-stage.is-wet-cape-emo .cat-head{transform:translateY(25px) rotate(-7deg)!important;animation:none!important}.cat-stage.is-wet-cape-emo .cat-paw.left{transform:translate(13px,-13px) rotate(24deg)!important}.cat-stage.is-wet-cape-emo .cat-paw.right{transform:translate(-13px,-13px) rotate(-24deg)!important}.cat-stage.is-wet-cape-emo .cat-eye{opacity:.18}.cat-stage.is-wet-cape-emo .big-cat{animation:wetCapeEmoBreathV3174 2.6s ease-in-out infinite!important}
@keyframes wetCapeMirrorLookV3174{0%,100%{transform:rotate(-3deg)}50%{transform:translateY(2px) rotate(4deg)}}@keyframes wetCapeEmoBreathV3174{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(2px)}}

.illness-window-star{position:absolute;z-index:5;right:18%;top:18%;width:13px;height:13px;display:block;background:#fff1a9;clip-path:polygon(50% 0,61% 37%,100% 50%,61% 63%,50% 100%,39% 63%,0 50%,39% 37%);filter:drop-shadow(0 0 5px #fff) drop-shadow(0 0 12px #edce77);opacity:0;transform:scale(.4);transition:opacity 1.2s ease,transform 1.2s ease}.illness-window-star.is-visible{opacity:.9;transform:scale(1);animation:farewellWindowStarV3174 3.2s ease-in-out infinite alternate}.illness-farewell-star{position:absolute;z-index:120;left:50%;bottom:24%;width:28px;height:28px;background:#fff2b0;clip-path:polygon(50% 0,61% 37%,100% 50%,61% 63%,50% 100%,39% 63%,0 50%,39% 37%);filter:drop-shadow(0 0 7px #fff) drop-shadow(0 0 22px #edc85f);opacity:0;pointer-events:none}.illness-farewell-star.is-visible{animation:illnessStarFlightV3174 2.6s cubic-bezier(.25,.76,.25,1) both}.cat-stage.is-illness-farewell .big-cat{animation:illnessCatFadeV3174 2.6s ease-in both!important}.cat-stage.is-recovering-from-illness .big-cat{animation:illnessRecoverStretchV3174 1.45s cubic-bezier(.2,.8,.2,1) both!important}
.room.world-night.is-away.is-illness-star-away .away-state{color:#fff8e8;background:linear-gradient(rgba(23,39,59,.84),rgba(37,54,72,.9));backdrop-filter:blur(4px)}
.room.world-night.is-away.is-illness-star-away .away-state::before{content:"";position:absolute;left:27%;top:17%;width:15px;height:15px;background:#fff1a9;clip-path:polygon(50% 0,61% 37%,100% 50%,61% 63%,50% 100%,39% 63%,0 50%,39% 37%);filter:drop-shadow(0 0 7px #fff) drop-shadow(0 0 17px #edce77);animation:farewellWindowStarV3174 3.2s ease-in-out infinite alternate}.room.world-night.is-away.is-illness-star-away .away-description,.room.world-night.is-away.is-illness-star-away .meteor-shortfall{color:#e7e9eb}.room.world-night.is-away.is-illness-star-away .rescue-panel{background:rgba(255,255,255,.9);color:#5c4a50}
@keyframes farewellWindowStarV3174{to{filter:drop-shadow(0 0 9px #fff) drop-shadow(0 0 18px #edce77);transform:scale(1.12) translateY(-2px)}}
@keyframes illnessStarFlightV3174{0%{opacity:0;transform:translate(-50%,0) scale(.35)}18%{opacity:1}100%{opacity:1;left:29%;bottom:71%;transform:translate(-50%,0) scale(.72) rotate(120deg)}}
@keyframes illnessCatFadeV3174{0%{opacity:1;filter:grayscale(.32) saturate(.58) brightness(.91)}45%{opacity:.75;filter:grayscale(.15) brightness(1.35) drop-shadow(0 0 12px #fff0a6)}100%{opacity:0;filter:brightness(1.8) drop-shadow(0 0 24px #fff0a6);transform:translateX(-50%) translateY(-18px) scale(.72)}}
@keyframes illnessRecoverStretchV3174{0%{filter:grayscale(.3) saturate(.6);transform:translateX(-50%) scale(.96,.9)}45%{filter:none;transform:translateX(-50%) translateY(-7px) scale(1.04,1.08)}100%{filter:none;transform:translateX(-50%) scale(1)}}

@media(max-width:720px){
  .medical-kit-button{right:12px;bottom:92px;min-width:128px;min-height:54px;padding:7px 10px}.medical-kit-case{width:40px;height:34px}.medical-card{padding:15px;border-radius:24px}.medical-header h2{font-size:20px}.medical-stepper{gap:5px}.medical-stepper li{min-height:43px;padding:6px;justify-content:center}.medical-stepper li span{display:none}.medical-stepper li b{width:27px;height:27px}.medical-care-scene{min-height:278px}.medical-cat-portrait{width:235px;transform:translateX(-43%)}.medical-tool-tray{left:9px;width:122px}.medical-hold-progress{right:8px;width:132px}.medicine-mini-game>header{align-items:flex-start;flex-direction:column}.medical-footer{align-items:flex-start;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  .sick-medical-icon::before,.cat-stage.is-sick .big-cat,.sick-tears i,.room.is-sick-urgent,.medical-kit-button.is-urgent,.medicine-moving-head,.cat-stage.is-wet-cape-notice .cat-head,.cat-stage.is-wet-cape-emo .big-cat,.illness-window-star.is-visible,.illness-farewell-star.is-visible,.cat-stage.is-illness-farewell .big-cat,.cat-stage.is-recovering-from-illness .big-cat{animation:none!important}
  .illness-farewell-star.is-visible{opacity:1;left:29%;bottom:71%;transform:translate(-50%,0) scale(.72)}
  .cat-stage.is-illness-farewell .big-cat{opacity:.08}
}

/* v31.80: physical care contact, soft landings and faithful starlight mail. */
.room-decor.is-soft-decor-landing{animation:softDecorLandingV3178 .52s cubic-bezier(.2,.8,.2,1) both!important}
@keyframes softDecorLandingV3178{0%,100%{translate:0 0;scale:1}42%{translate:0 3px;scale:1.03 .91}72%{translate:0 -2px;scale:.99 1.02}}

.water-fountain.is-being-used .fountain-basin::after{
  content:"";position:absolute;z-index:5;left:var(--drink-contact-x,50%);top:29%;width:17px;height:7px;border:2px solid rgba(235,253,255,.88);border-top:0;border-radius:50%;
  box-shadow:0 0 7px rgba(206,247,250,.78);transform:translate(-50%,-50%);animation:drinkWaterTouchV3178 .46s ease-in-out .22s 7;
}
@keyframes drinkWaterTouchV3178{0%,100%{opacity:0;scale:.35}34%,68%{opacity:1;scale:1}}

/* Keep the bristle tips on the fur for the whole automatic stroke. */
.bathroom-groom-brush.is-brushing-cat .brush-head{animation:groomBrushContactV3178 .72s cubic-bezier(.32,.05,.28,1) 5 alternate!important}
.bathroom-groom-brush.is-brushing-cat .brush-handle{animation:groomHandleContactV3178 .72s cubic-bezier(.32,.05,.28,1) 5 alternate!important}
@keyframes groomBrushContactV3178{from{transform:rotate(-8deg)}to{transform:translate(var(--groom-sweep-x,-16px),8px) rotate(-15deg)}}
@keyframes groomHandleContactV3178{from{transform:rotate(24deg)}to{transform:translate(var(--groom-sweep-x,-16px),8px) rotate(17deg)}}

/* v31.81: brushing follows the same uninterrupted hold-and-drag gesture as
   the dryer. Contact starts the stroke, leaving the fur stops it, and pointer
   capture remains active until the player actually lets go. */
#bathroomScene .bathroom-groom-brush.is-bath-dragging.is-brushing-cat{pointer-events:auto!important}
#bathroomScene .bathroom-groom-brush.is-bath-dragging.is-brushing-cat .brush-head{animation:groomBrushContactV3178 .72s cubic-bezier(.32,.05,.28,1) infinite alternate!important}
#bathroomScene .bathroom-groom-brush.is-bath-dragging.is-brushing-cat .brush-handle{animation:groomHandleContactV3178 .72s cubic-bezier(.32,.05,.28,1) infinite alternate!important}

/* Stored tools keep their equipped materials while retaining the same clear
   handle/head and handle/pan silhouettes. */
.stored-bathroom-scoop[data-scoop-skin="cloud-paw"] i{background:linear-gradient(90deg,#fffdf6,#f3ebdc,#fffaf0)}
.stored-bathroom-scoop[data-scoop-skin="cloud-paw"] i::after{content:"";position:absolute;left:50%;top:4px;width:7px;height:6px;border-radius:50%;background:#f3aebc;box-shadow:-4px -2px 0 -2px #f3aebc,0 -4px 0 -2px #f3aebc,4px -2px 0 -2px #f3aebc;transform:translateX(-50%)}
.stored-bathroom-scoop[data-scoop-skin="cloud-paw"] span{background:radial-gradient(circle at 50% 65%,rgba(177,177,181,.5) 0 2px,transparent 3px),linear-gradient(145deg,#fffefa,#e9e6df)}
.stored-bathroom-scoop[data-scoop-skin="stardust"] i{background:radial-gradient(circle at 30% 18%,#fff 0 1px,transparent 1.5px),linear-gradient(90deg,#3d607c,#738da7,#355670)}
.stored-bathroom-scoop[data-scoop-skin="stardust"] span{background:radial-gradient(circle at 24% 28%,#fff 0 1px,transparent 2px),radial-gradient(circle at 70% 65%,#d8caff 0 1px,transparent 2px),linear-gradient(145deg,#6685a2,#294d6c)}
.stored-bathroom-scoop[data-scoop-skin="orange-candy"] i{background:linear-gradient(90deg,#d86d23,#f2983f,#ffbd65)}
.stored-bathroom-scoop[data-scoop-skin="orange-candy"] span{background:radial-gradient(circle at 30% 45%,rgba(255,242,217,.7) 0 2px,transparent 3px),linear-gradient(145deg,#ffc26f,#ed7f29)}
.stored-bathroom-scoop[data-scoop-skin="mint-wave"] i{background:repeating-linear-gradient(145deg,rgba(255,255,255,.38) 0 2px,transparent 2px 8px),linear-gradient(90deg,#77c8ae,#b8ead8,#67b99f)}
.stored-bathroom-scoop[data-scoop-skin="mint-wave"] span{background:radial-gradient(circle at 7px 0,transparent 5px,rgba(255,255,255,.25) 6px 8px,transparent 9px) 0 0/16px 9px,linear-gradient(145deg,#b8ead8,#65bca2)}

.stored-bathroom-brush[data-brush-skin="cotton-cloud"] i{background:radial-gradient(circle at 50% 13%,#efadbf 0 3px,transparent 4px),linear-gradient(90deg,#fffefa,#eee9df,#fffdf5)}
.stored-bathroom-brush[data-brush-skin="cotton-cloud"] span{background:radial-gradient(ellipse at 24% 45%,#fffdf8 0 7px,transparent 8px),radial-gradient(ellipse at 67% 40%,#fffefa 0 8px,transparent 9px),linear-gradient(145deg,#f7f4ed,#e7e4dc)}
.stored-bathroom-brush[data-brush-skin="cotton-cloud"] span::after{background:repeating-linear-gradient(90deg,#efd36f 0 4px,transparent 4px 9px)}
.stored-bathroom-brush[data-brush-skin="orange-soda"] i{background:radial-gradient(circle at 28% 21%,rgba(255,255,255,.85) 0 1px,transparent 2px),linear-gradient(90deg,#de641d,#ffa948,#ffc670)}
.stored-bathroom-brush[data-brush-skin="orange-soda"] span{background:radial-gradient(circle at 25% 30%,rgba(255,255,255,.75) 0 3px,transparent 4px),linear-gradient(145deg,#ffb65a,#e06420)}
.stored-bathroom-brush[data-brush-skin="orange-soda"] span::after{background:repeating-linear-gradient(90deg,#ffd3a1 0 4px,transparent 4px 9px)}
.stored-bathroom-brush[data-brush-skin="moonlight"] i{background:radial-gradient(circle at 25% 19%,#fff 0 1px,transparent 1.7px),linear-gradient(90deg,#4c3a70,#796394,#3f315f)}
.stored-bathroom-brush[data-brush-skin="moonlight"] span{background:radial-gradient(circle at 22% 28%,#fff 0 1px,transparent 2px),radial-gradient(circle at 72% 62%,#d8caff 0 1px,transparent 2px),linear-gradient(145deg,#73608f,#37294f);box-shadow:0 0 8px rgba(190,171,239,.38)}
.stored-bathroom-brush[data-brush-skin="moonlight"] span::after{background:repeating-linear-gradient(90deg,#b9a6d4 0 4px,transparent 4px 9px)}
.stored-bathroom-brush[data-brush-skin="mint-jelly"] i{background:linear-gradient(90deg,rgba(77,180,146,.9),rgba(183,241,219,.88),rgba(92,195,160,.9))}
.stored-bathroom-brush[data-brush-skin="mint-jelly"] span{background:radial-gradient(circle at 30% 23%,rgba(255,255,255,.66) 0 4px,transparent 5px),linear-gradient(145deg,rgba(190,244,220,.94),rgba(79,183,148,.9))}
.stored-bathroom-brush[data-brush-skin="mint-jelly"] span::after{background:repeating-linear-gradient(90deg,#bcebd9 0 4px,transparent 4px 9px)}

/* The letter uses scaled replicas of the same bottle and net designs that are
   visible in the room, including the captured stars and their steady glow. */
.star-gift-item::before,.star-gift-item::after{content:none!important;display:none!important}
.star-gift-item{width:132px;height:142px;display:block;overflow:visible}
.gift-source-replica{position:relative;width:47px;height:48px;display:block}
.gift-replica{position:absolute;left:50%;top:50%;display:block;pointer-events:none;transform:translate(-50%,-50%);transform-origin:center}
.gift-replica.is-star-bottle,.gift-replica.is-round-bottle{width:48px;height:61px;border:3px solid var(--dark-line);border-radius:10px 10px 18px 18px;background:rgba(191,223,230,.72);box-shadow:inset 6px 5px rgba(255,255,255,.42),0 0 16px rgba(255,224,118,.58)}
.gift-replica.is-star-bottle::before,.gift-replica.is-round-bottle::before{content:"";position:absolute;left:11px;right:11px;top:-9px;height:12px;border:3px solid var(--dark-line);border-radius:5px;background:#d4b582}
.gift-replica.is-star-bottle svg{position:absolute;left:12px;top:18px;width:19px;height:19px;color:#e8b84e;filter:drop-shadow(0 0 4px rgba(238,190,77,.85))}
.gift-replica.is-round-bottle{width:51px;height:55px;border-radius:45% 45% 18px 18px;background:rgba(239,196,166,.82)}
.gift-replica.is-round-bottle::before{left:14px;right:14px}
.gift-replica-round-core{position:absolute;left:16px;top:17px;width:14px;height:14px;border-radius:50%;background:#f5d073;box-shadow:inset 3px 2px rgba(255,255,255,.4),0 0 9px rgba(255,225,119,.72)}
.gift-replica.is-net{width:146px;height:184px;filter:drop-shadow(0 0 calc(5px + 10px * var(--gift-net-level,.2)) rgba(255,234,137,.62))}
.gift-replica-net-handle{position:absolute;z-index:4;left:65px;top:68px;width:17px;height:116px;border:3px solid var(--dark-line);border-radius:9px;background:linear-gradient(90deg,#a86e45,#e0b477 48%,#9d623e);transform:rotate(-9deg);transform-origin:50% 0}
.gift-replica-net-handle::after{content:"";position:absolute;left:-6px;bottom:-3px;width:23px;height:30px;border:3px solid var(--dark-line);border-radius:11px;background:#c99058;box-shadow:inset 4px 3px rgba(255,222,168,.25)}
.gift-replica-net-hoop{position:absolute;z-index:3;left:13px;top:3px;width:120px;height:91px;border:7px solid #bd8957;border-radius:50%;background:rgba(219,239,238,.08);box-shadow:0 0 calc(7px + 15px * var(--gift-net-level,.2)) rgba(255,235,149,.6),inset 0 0 15px rgba(255,244,185,.34);transform:rotate(-8deg)}
.gift-replica-net-mesh{position:absolute;inset:5px;border-radius:50%;opacity:.64;background:repeating-linear-gradient(34deg,transparent 0 10px,rgba(112,96,78,.38) 11px 12px),repeating-linear-gradient(146deg,transparent 0 10px,rgba(112,96,78,.34) 11px 12px);mask:radial-gradient(ellipse,#000 0 67%,transparent 70%)}
.gift-replica-net-stars{position:absolute;inset:9px;overflow:hidden;border-radius:50%;font-style:normal}
.gift-replica-net-stars i{position:absolute;left:calc(12% + (var(--gift-star-index) % 3) * 30%);top:calc(13% + (var(--gift-star-index) % 2) * 42%);color:#fff3a6;font-size:17px;font-style:normal;text-shadow:0 0 6px #fff,0 0 13px #f5d76c}
.star-gift-item .gift-replica.is-net{transform:translate(-50%,-50%) scale(.72)}
.gift-replica.is-compact.is-star-bottle,.gift-replica.is-compact.is-round-bottle{transform:translate(-50%,-50%) scale(.64)}
.gift-replica.is-compact.is-net{transform:translate(-50%,-50%) scale(.29)}
.room-decor.is-gift-sent{visibility:hidden!important;pointer-events:none!important}

@media(prefers-reduced-motion:reduce){
  .room-decor.is-soft-decor-landing,.water-fountain.is-being-used .fountain-basin::after,.bathroom-groom-brush.is-brushing-cat :is(.brush-head,.brush-handle){animation:none!important}
  .water-fountain.is-being-used .fountain-basin::after{opacity:1;scale:1}
}
