.living-garden{margin:0 0 22px;border:1px solid #dce6d2;border-radius:27px;background:#fffdf6;padding:10px;box-shadow:0 5px 0 #e3e9d766;overflow:hidden}
.living-garden-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 14px 16px}.living-garden-toolbar h2{font-size:18px;line-height:1.9}.living-eyebrow{font-size:10px;color:#7c906d;letter-spacing:.08em}.living-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.living-pause,.living-decorate{border:1px solid #dde5d4;background:#f1f5e8;border-radius:14px;padding:8px 12px;min-height:44px;white-space:nowrap;font-size:12px;line-height:1.7}.living-decorate{background:#fff0d5;border-color:#e9d9b9;font-weight:700}
.living-scene{position:relative;height:440px;isolation:isolate;overflow:hidden;border-radius:20px;background:#dceacc}.living-landscape{position:absolute;inset:0;width:100%;height:100%;z-index:-3}.living-scene-light{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,#ffffee08,#ecedbd14 70%,#c7d8aa24)}.living-scene[data-habitat=starlight] .living-scene-light{background:linear-gradient(#b8c6df05,#929bd610)}.living-props{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.living-actor{--garden-facing:1;--garden-caption-height:38px;position:absolute;left:var(--garden-x);top:var(--garden-y);width:var(--garden-size,112px);height:calc(var(--garden-size,112px)*.86 + var(--garden-caption-height));transform:translate(-50%,calc(-100% + var(--garden-caption-height)));will-change:left,top}.living-pet{width:100%;height:100%;min-width:44px;min-height:44px;padding:0;border:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;background:transparent;overflow:visible;touch-action:manipulation;cursor:pointer}.living-pet:not(:disabled):active{transform:none}.living-pet:focus-visible{outline:3px solid #a58c62;outline-offset:5px;border-radius:28px}.living-pet-figure{flex-shrink:0;position:relative;display:block;width:100%;height:calc(var(--garden-size,112px)*.86);z-index:2;transform:scaleX(var(--garden-facing));transform-origin:50% 90%;pointer-events:none}.living-pet-art{display:block;width:100%;height:100%;transform-origin:50% 92%;animation:living-v18-breathe 4.4s ease-in-out var(--garden-delay) infinite;filter:drop-shadow(0 3px 2px #54774818)}.living-pet-art>svg,.living-pet-art>.dressed-pet,.living-pet-art>span,.living-pet-art>div{display:block;width:100%;height:100%}.living-pet-art>svg,.living-pet-art>.dressed-pet>svg{max-width:100%;max-height:100%;overflow:visible}.living-pet-art>.dressed-pet{width:100%!important;height:100%!important}.living-pet-shadow{position:absolute;width:58%;height:9px;bottom:calc(var(--garden-caption-height) - 4px);border-radius:50%;background:#4e724c2d;filter:blur(2px);z-index:0;pointer-events:none}.living-pet-name{flex-shrink:0;position:relative;z-index:3;border:1px solid #fff8;background:#fffbeaee;color:#526b4f;border-radius:30px;padding:2px 8px;font-size:10px;font-weight:700;line-height:1.6;max-width:135%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 3px #486b3910;pointer-events:none}.living-activity{flex-shrink:0;position:relative;z-index:3;color:#59794f;background:#ffffecb8;font-size:9px;line-height:1.7;padding:0 6px;border-radius:0 0 10px 10px;max-width:145%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.living-bubble{position:absolute;right:0;top:-10px;min-width:24px;min-height:24px;padding:1px 5px;border-radius:16px;background:#fffdefe8;border:1px solid #fff;color:#b99360;z-index:5;font-size:16px;line-height:1.4;box-shadow:0 3px 7px #5e7f4210;transform-origin:50% 100%;animation:living-v18-thought 7.7s ease-in-out var(--garden-delay) infinite;pointer-events:none}.living-bubble:after{content:"";position:absolute;bottom:-5px;left:8px;border:5px solid transparent;border-top-color:#fffdef;border-bottom:0;transform:rotate(13deg)}.living-pet-prop{position:absolute;z-index:4;width:42%;height:34%;left:57%;bottom:31px;pointer-events:none}.living-pet-prop>svg{width:100%;height:100%}.living-actor.is-selected .living-pet-name{border-color:#d2ad67;background:#fff3cc;box-shadow:0 0 0 2px #fff9e8aa}.living-actor.living-attention .living-activity,.living-actor.living-touching .living-activity{background:#fff4d3}
.living-actor.living-walking .living-pet-art{animation:living-v18-walk var(--garden-step,.62s) ease-in-out infinite}.living-actor[data-activity=hop]:not(.living-walking) .living-pet-art{animation:living-v18-hop 3.1s ease-in-out var(--garden-delay) infinite}.living-actor[data-activity=hop] .living-pet-shadow{animation:living-v18-shadow-hop 3.1s ease-in-out var(--garden-delay) infinite}.living-actor[data-activity=nap] .living-pet-art{animation:living-v18-nap 4.8s ease-in-out var(--garden-delay) infinite}.living-actor[data-activity=nap] .living-bubble{font-size:13px;letter-spacing:2px;color:#8797b2}.living-actor[data-activity=look] .living-pet-art,.living-actor[data-activity=gaze] .living-pet-art{animation:living-v18-look 7s ease-in-out var(--garden-delay) infinite}.living-actor[data-activity=dance] .living-pet-art{animation:living-v18-dance 4.6s ease-in-out var(--garden-delay) infinite}.living-actor[data-activity=sniff] .living-pet-art,.living-actor[data-activity=water] .living-pet-art{animation:living-v18-sniff 6.3s ease-in-out var(--garden-delay) infinite}.living-actor[data-activity=greet] .living-pet-art{animation:living-v18-greet 3.7s ease-in-out var(--garden-delay) infinite}.living-actor[data-activity=sway] .living-pet-art{animation:living-v18-sway 5.2s ease-in-out var(--garden-delay) infinite}.living-actor[data-activity=read] .living-pet-art{animation:living-v18-read 5.6s ease-in-out var(--garden-delay) infinite}.living-actor[data-activity=water] .living-pet-prop{animation:living-v18-water 2.7s ease-in-out infinite}.living-actor.living-reaction .living-pet-art{animation:living-v18-petted .62s ease-in-out 0s 3}.living-actor.living-reaction .living-bubble{animation:living-v18-heart 1.1s ease-out 0s 3;color:#c88388;background:#fff4ed;opacity:1}
.living-firefly{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff6c6;box-shadow:0 0 8px 3px #fff7c366;opacity:.55;pointer-events:none;animation:living-v18-firefly 12s ease-in-out infinite}.firefly-one{left:30%;top:23%}.firefly-two{left:74%;top:28%;animation-delay:-6s}.living-scene[data-habitat=starlight] .living-firefly{background:#fef5ad;opacity:.9}
.living-toy{position:absolute;left:47%;top:57%;transform:translate(-50%,-50%);z-index:56;background:transparent;width:67px;min-height:60px;padding:0;filter:drop-shadow(0 4px 2px #59733e24)}.living-toy>img{width:53px;height:53px;object-fit:contain;display:block;margin:auto}.living-toy>span{display:block;font-size:10px;background:#fffbedc9;border-radius:12px;padding:1px 4px;line-height:1.6}.living-toy:not(:disabled):active{transform:translate(-50%,-50%) scale(.94)}.living-empty-note{position:absolute;left:50%;top:28%;transform:translateX(-50%);text-align:center;border-radius:22px;background:#fffbeddf;color:#657856;padding:12px 21px;font-size:13px;line-height:2;box-shadow:0 4px 16px #5d704812;z-index:2;white-space:nowrap}
.living-garden-note{min-height:86px;padding:13px 10px 6px;text-align:center}.living-garden-note>p:first-child{font-size:11px;color:#7f8c70;line-height:2}.living-garden-status{font-size:13px;line-height:2;min-height:28px;margin-top:4px}.living-visit{border-radius:17px;background:#e8f0dc;border:1px solid #d7e3c7;margin-top:9px;padding:7px 17px;min-height:44px;font-size:12px;font-weight:700}.living-visit[hidden]{display:none}.living-pagination{display:flex;justify-content:center;align-items:center;gap:9px;margin:12px 0 6px}.living-pagination button{width:auto;min-width:105px;min-height:44px;border-radius:15px;padding:8px 11px;background:#eaf0e0;border:1px solid #dbe5cf;font-size:11px}.living-pagination button:disabled{opacity:.35}.living-pagination p{min-width:35px;text-align:center;font-size:13px;font-weight:700;line-height:1.7}.living-card-guide{text-align:center;color:#7d8b6f;font-size:11px;line-height:2;padding:7px 12px 5px}
.living-paused *,.living-suspended *,.living-touching *,.living-attention *,body:has(dialog[open]) .living-garden *{animation-play-state:paused!important}
@keyframes living-v18-walk{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}
@keyframes living-v18-breathe{0%,100%{transform:translateY(0) scale(1,1)}50%{transform:translateY(-2px) scale(1.015,.98)}}
@keyframes living-v18-hop{0%,12%,28%,44%,100%{transform:translateY(0) scale(1,1)}17%,34%{transform:translateY(1px) scale(1.06,.93)}22%,39%{transform:translateY(-12px) scale(.97,1.03)}}
@keyframes living-v18-shadow-hop{0%,12%,28%,44%,100%{transform:scaleX(1);opacity:1}22%,39%{transform:scaleX(.8);opacity:.55}}
@keyframes living-v18-nap{0%,100%{transform:rotate(-5deg) scale(1,.89)}50%{transform:rotate(-4deg) scale(1.02,.93)}}
@keyframes living-v18-look{0%,20%,85%,100%{transform:rotate(0)}32%,42%{transform:rotate(-7deg)}58%,70%{transform:rotate(6deg)}}
@keyframes living-v18-dance{0%,100%{transform:rotate(0)}18%,55%{transform:rotate(-8deg) translateY(-3px)}38%,75%{transform:rotate(8deg) translateY(-3px)}}
@keyframes living-v18-sniff{0%,30%,75%,100%{transform:rotate(0)}40%,60%{transform:rotate(9deg) translateY(4px)}50%{transform:rotate(7deg) translateY(2px)}}
@keyframes living-v18-greet{0%,28%,68%,100%{transform:rotate(0)}38%,57%{transform:rotate(-9deg) translateY(-3px)}47%{transform:rotate(6deg) translateY(-4px)}}
@keyframes living-v18-sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(5deg)}}
@keyframes living-v18-read{0%,100%{transform:rotate(-2deg)}35%,65%{transform:rotate(3deg) translateY(2px)}}
@keyframes living-v18-water{0%,100%{transform:rotate(0)}35%,65%{transform:rotate(18deg) translateY(3px)}}
@keyframes living-v18-thought{0%,25%,80%,100%{opacity:0;transform:translateY(6px) scale(.8)}40%,63%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes living-v18-petted{0%,100%{transform:scale(1) translateY(0)}35%{transform:scale(1.07,.94) translateY(2px)}65%{transform:scale(.98,1.04) translateY(-9px)}}
@keyframes living-v18-heart{0%{transform:translateY(3px) scale(.8)}45%{transform:translateY(-7px) scale(1.15)}100%{transform:translateY(-13px) scale(.95)}}
@keyframes living-v18-firefly{0%,100%{transform:translate(0,0);opacity:.15}50%{transform:translate(18px,-12px);opacity:.7}}
@media(max-width:730px){.living-garden-toolbar{padding:7px 5px 13px;gap:8px;align-items:flex-start}.living-garden-toolbar h2{font-size:14px;white-space:nowrap}.living-toolbar-actions{gap:5px}.living-pause,.living-decorate{font-size:10px;padding:7px 8px}.living-scene{height:390px}.living-actor{--garden-caption-height:34px}.living-pet-name{font-size:9px;padding:2px 6px}.living-activity{font-size:8px}.living-pet-shadow{height:7px}.living-pet-prop{bottom:28px}.living-bubble{font-size:14px;min-width:22px;min-height:22px;right:-2px;top:-7px}.living-garden-note{padding-left:1px;padding-right:1px}.living-garden-status{font-size:12px}.living-card-guide{font-size:10px}.living-toy{width:53px;top:55%}.living-toy>img{width:43px;height:43px}.living-toy>span{font-size:9px}.living-eyebrow{font-size:9px;letter-spacing:0;max-width:140px;line-height:1.7}}
@media(max-width:380px){.living-scene{height:365px}.living-actor{--garden-caption-height:31px}.living-garden-toolbar{flex-wrap:wrap}.living-toolbar-actions{margin-left:auto}.living-eyebrow{max-width:none}.living-pet-name{font-size:8px;max-width:125%}.living-activity{font-size:7px}.living-pet-shadow{height:6px}.living-pet-prop{bottom:25px}.living-bubble{top:-9px;right:-4px;font-size:12px}.living-empty-note{font-size:11px}}
@media(prefers-reduced-motion:reduce){.living-garden *{animation:none!important}.living-actor{will-change:auto}.living-bubble{opacity:0}.living-reaction .living-bubble{opacity:1;transform:none}.living-firefly{display:none}}
@media(max-width:730px){.living-activity{opacity:0;transition:opacity .18s ease}.living-actor.is-selected .living-activity,.living-actor.living-attention .living-activity,.living-actor.living-touching .living-activity,.living-actor.living-reaction .living-activity,.living-actor:hover .living-activity{opacity:1}}
@media(prefers-reduced-motion:reduce){.living-activity{transition:none}}

/* v1.19: the figure, its feet and its contact shadow use one baseline. */
.living-pet{display:block}
.living-pet-figure{position:absolute;left:0;bottom:calc(var(--garden-caption-height) - var(--garden-size,112px) * .86 * .025);transform:scaleX(var(--garden-facing));transform-origin:50% 97.5%}
.living-pet-art{transform-origin:50% 97.5%;filter:none}
/* The portrait's transparent canvas lets visible furniture receive taps.
   Painted sprite nodes still activate the accessible resident button. */
.living-actor,.living-pet,.living-pet-figure,.living-pet-art,.living-pet-art .dressed-pet,.living-pet-art svg{pointer-events:none}
.living-pet-art svg :is(image,path,circle,ellipse,rect,polygon,polyline,line,use){pointer-events:visiblePainted}
.living-pet-name{pointer-events:auto}
.living-pet-shadow{left:21%;bottom:calc(var(--garden-caption-height) - 4px);height:8px;background:radial-gradient(ellipse,var(--ground-shadow,rgba(64,87,47,.23)),transparent 74%);filter:blur(1px)}
.living-pet-name{position:absolute;left:50%;top:calc(var(--garden-size,112px) * .86 + 4px);transform:translateX(-50%)}
.living-activity{position:absolute;left:50%;top:calc(var(--garden-size,112px) * .86 + 24px);transform:translateX(-50%)}
.living-scene[data-habitat=starlight] .living-pet-art{filter:brightness(.91) saturate(.88)}
.living-toy{transform:translate(-50%,-100%);filter:none}
.living-toy:before{content:"";position:absolute;left:50%;bottom:16px;width:80%;height:7px;transform:translateX(-50%);background:radial-gradient(ellipse,var(--ground-shadow,rgba(64,87,47,.23)),transparent 74%);pointer-events:none;z-index:-1}
.living-toy:not(:disabled):active{transform:translate(-50%,-100%) scale(.94)}
@media(max-width:730px){.living-pet-name{top:calc(var(--garden-size,112px) * .86 + 3px)}.living-activity{top:calc(var(--garden-size,112px) * .86 + 23px)}}

.living-scene{height:auto;aspect-ratio:2/1;min-height:440px}
@media(max-width:730px){.living-scene{height:390px;min-height:0;aspect-ratio:auto}}
@media(max-width:380px){.living-scene{height:365px}}

@media(max-width:730px){
 .living-scene[data-dense-population="true"] .living-pet-name{opacity:0;visibility:hidden;transition:opacity .18s ease}
 .living-scene[data-dense-population="true"] .living-actor:is(.is-selected,.living-attention,.living-touching,.living-reaction,:hover,:focus-within) .living-pet-name{opacity:1;visibility:visible}
 .living-scene[data-dense-population="true"] .living-actor:is(.is-selected,.living-attention,.living-touching,:focus-within){z-index:120!important}
}
@media(prefers-reduced-motion:reduce){.living-pet-name{transition:none!important}}
