/* Orientation is independent of the approved camera and artwork. */
.grove-guide{position:absolute;z-index:8;left:40%;bottom:9%;height:30%;width:11%;pointer-events:none}
.guide-character{display:block;position:relative;height:100%;width:100%;padding:0;border:0;background:none;pointer-events:auto;cursor:pointer}
.guide-character img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(1px 5px 3px #18251270)}
.guide-speech{position:absolute;bottom:100%;left:5%;width:clamp(230px,24vw,350px);padding:14px 17px;border:1px solid #775589;border-radius:24px 24px 24px 4px;background:#fff4e7;color:#51265d;font:500 15px/1.45 'DM Sans',sans-serif;box-shadow:0 3px 9px #172d2433;pointer-events:auto}
.guide-speech[hidden]{display:none}
.invitation-anchor{position:absolute;z-index:7;pointer-events:none;will-change:transform}
.invitation-literary{left:-3%;top:-4%;width:110%;height:110%;transform-origin:15% 60%}
.invitation-table{left:56%;top:54%;width:32%;height:33%}
.invitation-greenhouse{left:70%;top:31%;width:27%;height:31%}
.invitation-koso{left:98%;top:24%;width:41%;height:43%}
.grove-invitation{position:absolute;inset:15% 5% 12%;border:0;background:none;padding:0;pointer-events:auto;cursor:pointer;touch-action:none}
.invitation-literary .grove-invitation{inset:43% 76% 21% 8%}
.grove-invitation span{position:absolute;bottom:5%;left:50%;transform:translateX(-50%);white-space:nowrap;font:400 clamp(14px,1.35vw,21px)/1.2 'Chewy',cursive;color:#fff0d1;text-shadow:0 2px 3px #241128,1px 0 2px #241128,-1px 0 2px #241128;opacity:0;padding:4px}
.grove-invitation:hover span,.grove-invitation:focus-visible span,.grove-invitation.invitation-ready span{opacity:1}
.grove-invitation:focus-visible{outline:1px solid #e3c38b;outline-offset:0;border-radius:45%}
.grove-invitation:disabled{pointer-events:none}
@media(max-aspect-ratio:1/1){.invitation-literary{width:140%;left:-8%}.invitation-table{width:42%;left:62%}.invitation-greenhouse{width:35%;left:83%}.invitation-koso{width:54%;left:88%}}
@media(max-width:600px){.guide-speech{width:220px;font-size:13px;line-height:1.3;padding:10px;left:-80px;bottom:auto;top:-120px;max-height:180px;overflow:auto}.grove-guide{width:12%}}
/* Recede only the Literary Werks tree and its matching hit area. */
.property-tree,.invitation-literary{scale:.84;translate:-4% -8%}

/* Depth adjustment: retain the path and existing artwork. */
.grove-guide{height:39%;width:14.3%}
.kitchen-table,.invitation-table{left:59%;top:45%;width:25%;height:25.8%}
.koso-building,.invitation-koso{left:84%;top:24%;width:29%;height:30.4%}
.koso-building{z-index:1}
.invitation-koso{z-index:2}
@media(max-width:600px){.grove-guide{width:15.6%}.guide-speech{top:-95px;max-height:150px}}
/* Restore KOSO's previous side; enlarge only the existing host asset. */
.koso-building,.invitation-koso{left:98%;top:24%;width:41%;height:43%}
.grove-guide{height:56%;width:20.5%}
@media(max-aspect-ratio:1/1){.koso-building,.invitation-koso{left:88%;width:54%}}
@media(max-width:600px){.grove-guide{width:22.4%}.guide-speech{top:-55px;max-height:145px}}
/* A single camera transform carries the complete property and its hit areas. */
.property-camera{overflow:visible;will-change:transform}
.property-ground{width:142%;transform:none;will-change:auto}
.property-tree{transform:none;will-change:auto}
.property-object{transform:none;will-change:auto}
.koso-building{opacity:1}
.invitation-anchor{will-change:auto}
.kitchen-table,.invitation-table{left:49%;top:43%;width:25%;height:25.8%}
/* Enlarge only KOKO's illustration around her existing foot position. */
.guide-character img{transform:scale(1.3);transform-origin:50% 100%}
/* Dialogue only: a compact, irregular plum form with an orchid rim. */
body>.guide-speech{position:fixed;z-index:30;box-sizing:border-box;bottom:auto;right:auto;margin:0;width:270px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:22px 25px 24px;border:2px solid #c08bd2;border-radius:31% 23% 29% 18% / 22% 34% 21% 32%;background:linear-gradient(135deg,#774295,#502269 68%,#643079);color:#fff5ee;font:500 15px/1.45 'DM Sans',sans-serif;box-shadow:inset 0 2px 0 #e0b0e750,0 4px 0 #351445,0 7px 15px #20102730;overflow:auto;pointer-events:auto}
body>.guide-speech[hidden]{display:none}
@media(max-width:600px){body>.guide-speech{padding:18px 22px;font-size:14px;line-height:1.4;width:250px}}
/* Residential exterior replaces only the outdoor Table destination. */
.goddess-house,.invitation-house{left:65.5%;top:13%;width:36%;height:49%}
@media(max-aspect-ratio:1/1){.goddess-house,.invitation-house{left:82.5%}}
.goddess-house{z-index:1}
.property-object.goddess-house img{left:0;top:0;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.invitation-house{z-index:3}
.invitation-house .grove-invitation{inset:49% 16% 10% 57%}
/* A longer property with a foreground porch, middle garden, and distant KOSO.
   Only the travel boundary grows; pointer movement remains one-to-one. */
.property-ground{width:220%;object-fit:fill}
.property-camera{transform-origin:0 30%}
.goddess-house,.invitation-house{left:43%;top:9%;width:35%;height:47%}
.koso-building,.invitation-koso{left:98%;top:24%;width:41%;height:43%}
.grove-growing-area{position:absolute;left:77%;top:45%;width:30%;height:30%;object-fit:contain;object-position:center bottom;z-index:2;pointer-events:none}
@media(max-aspect-ratio:1/1){
 .goddess-house,.invitation-house{left:43%;top:9%;width:35%;height:47%}
 .koso-building,.invitation-koso{left:88%;top:24%;width:54%;height:43%}
 .grove-growing-area{left:74%;top:52%;width:32%;height:30%}
}
