[hidden]{display:none!important}
:root{--glass:rgba(245,242,233,.72);--glass-ink:#344239;--glass-line:rgba(52,66,57,.34);--field-bg:rgba(245,242,233,.5);--glass-shadow:0 12px 48px #20382c20;--accent:#465d48}
:root[data-time="night"]{--glass:rgba(21,36,48,.4);--glass-ink:#edf0df;--glass-line:rgba(220,232,220,.22);--field-bg:rgba(10,24,37,.4);--glass-shadow:0 12px 48px #0005;--accent:#c7d4b4}
#join-tambay,#profile-panel,#drawer,#profile-toggle{background:var(--glass);color:var(--glass-ink);border:1px solid var(--glass-line);backdrop-filter:blur(24px) saturate(115%);-webkit-backdrop-filter:blur(24px) saturate(115%);box-shadow:var(--glass-shadow)}
#seat-actions{position:fixed;z-index:12;top:78px;right:22px;left:auto;bottom:auto;transform:none;display:flex;flex-direction:column;align-items:stretch;gap:8px;pointer-events:auto;touch-action:manipulation}#join-tambay{position:static;transform:none;z-index:12;width:auto;min-width:176px;height:46px;opacity:1;border-radius:24px;padding:0 20px;display:flex;gap:16px;font:14px 'Alegreya Sans',system-ui,sans-serif;white-space:nowrap;pointer-events:auto;touch-action:manipulation}
#leave-inline{position:static;width:auto;height:38px;border-radius:20px;padding:0 14px;background:#f5f2e9d9;color:#344239;border:1px solid #54634540;opacity:1;font:12px 'Alegreya Sans',system-ui,sans-serif;white-space:nowrap}#leave-inline:hover,#leave-inline:focus-visible{background:#fffdf4}
#seat-count{font-size:13px;opacity:.86;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.01em}html:not(.joined) #join-tambay{background:#f3e9c9;color:#344239;border-color:#c69d52;box-shadow:0 7px 20px #9b774238;font-weight:600}.joined #join-tambay{background:#486b50;color:#fff;border-color:#6f9878;box-shadow:0 5px 16px #29463345}.joined #join-tambay #seat-count{font-weight:700;color:#f1f6dc}#join-tambay:disabled{cursor:default;opacity:.7}
#profile-toggle{top:22px;right:76px;bottom:auto;width:44px;height:44px;z-index:5;opacity:1}
.joined #time{right:130px}.joined #animate{right:184px}
#profile-panel{position:fixed;inset:12px 12px 12px auto;width:min(408px,calc(100% - 24px));height:calc(100svh - 24px);max-height:none;max-width:none;margin:0;padding:24px;border-radius:22px;overflow:auto;font:14px/1.5 'Alegreya Sans',system-ui,sans-serif}
#profile-panel::backdrop{background:#0b1b2010;backdrop-filter:blur(2px)}
.profile-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.profile-header h1{font:400 26px Georgia;margin:0 0 6px}.profile-header p{margin:0 0 24px;opacity:.75;font-size:13px}
#profile-panel button{position:static;bottom:auto;right:auto;opacity:1;color:var(--glass-ink);font:inherit;background:var(--field-bg);border:1px solid var(--glass-line);backdrop-filter:none;box-shadow:none;transition:background .2s}
#profile-panel #close-profile{width:30px;height:30px;font-size:24px;flex-shrink:0;border-radius:50%;background:transparent}
#profile-form{margin:0;display:block}.avatar-fieldset{border:0;padding:0;margin:0 0 20px}.avatar-fieldset legend{padding:0;margin-bottom:12px;font-size:13px}.peep-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.motion-choice{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:14px;font-size:13px}.motion-choice span{opacity:.6;margin-left:4px}.motion-choice select{grid-column:1/-1;width:100%;padding:10px;border:1px solid var(--glass-line);border-radius:10px;background:var(--field-bg);color:var(--glass-ink);font:inherit}
#profile-panel .peep-choice{width:100%;height:90px;display:grid;place-items:center;border-radius:12px;padding:6px;cursor:pointer}.peep-choice img{width:100%;height:74px;object-fit:contain;filter:saturate(.55) brightness(1.08) contrast(.94)}.peep-choice[aria-checked="true"]{outline:2px solid var(--accent);outline-offset:1px;background:rgba(156,181,130,.3)!important}.peeps-credit{display:inline-block;margin-top:10px;font-size:10px;color:inherit;opacity:.65;text-decoration:none}
.field{display:block;margin:16px 0 0;font-size:13px}.field span{opacity:.6;margin-left:5px}.field input,.field textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--glass-line);background:var(--field-bg);color:var(--glass-ink);padding:12px;border-radius:10px;font:14px/1.5 'Alegreya Sans',system-ui,sans-serif;resize:vertical}.field textarea{min-height:90px}.field input::placeholder,.field textarea::placeholder{color:inherit;opacity:.5}.field input:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:2px}.field small{display:block;text-align:right;font-size:10px;opacity:.6;margin-top:5px}.profile-hint,.prototype-note{font-size:11px;opacity:.65;margin:8px 0 16px}#profile-error{font-size:12px;margin:12px 0;color:var(--glass-ink)}
#profile-panel .join-submit{width:100%;height:46px;border-radius:24px;background:#465d48;color:#fff;border-color:#ffffff30}#profile-panel .join-submit:disabled{opacity:.5;cursor:default}#profile-panel #leave-tambay{width:100%;height:36px;margin-top:10px;border:0;background:transparent;font-size:12px}.prototype-note{text-align:center;margin:16px 0 0}
#profile-panel .account-actions{margin-top:10px;text-align:center}#profile-panel #logout-account{position:static;width:auto;height:auto;padding:8px 16px;border:1px solid #b5584f;border-radius:20px;background:transparent;color:#9b3e35;font:600 13px 'Alegreya Sans',system-ui,sans-serif}#profile-panel #logout-account:hover,#profile-panel #logout-account:focus-visible{background:#9b3e35;color:#fff}
#seated-peeps{position:absolute;inset:0;z-index:4;pointer-events:none}.seated-person{position:absolute!important;left:var(--seat-left);bottom:18%;width:12%;height:31%;transform:translateX(-50%);pointer-events:auto;cursor:pointer;background:none!important;border:0!important;opacity:1!important;box-shadow:none!important;backdrop-filter:none!important;padding:0;display:block;border-radius:0}
/* The three crossed-leg poses with one dangling foot are the only exception. */
#seated-peeps .seated-person:has(>.person-art:is([data-peep="4"],[data-peep="8"],[data-peep="9"])){bottom:15%}
.seated-person>.person-art{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:saturate(.55) brightness(1.08) contrast(.94) drop-shadow(0 2px 1px #16232135);transition:filter .8s}.seated-person[data-motion="none"]>.person-art{animation:none!important}.seated-person:hover>.person-art{transform:translateY(-2px)}[data-time="night"] .person-art{filter:saturate(.55) brightness(1.08) contrast(.94) drop-shadow(0 2px 1px #0005)}
.person-note{position:absolute;bottom:calc(100% + var(--note-offset,0px));left:50%;transform:translateX(-50%);width:max-content;max-width:90px;padding:6px 9px;border-radius:12px 12px 12px 3px;background:var(--glass);backdrop-filter:blur(12px);color:var(--glass-ink);border:1px solid var(--glass-line);font:11px/1.35 'Alegreya Sans',system-ui,sans-serif;overflow-wrap:anywhere;text-align:left;box-shadow:0 3px 16px #0001;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.person-label{position:absolute;bottom:-13px;left:50%;transform:translateX(-50%);color:var(--glass-ink);font:10px 'Alegreya Sans',system-ui,sans-serif;white-space:nowrap;background:var(--glass);border-radius:10px;padding:2px 5px;backdrop-filter:blur(8px)}
#drawer{z-index:30;border-radius:22px 0 0 22px}.drawer-head h1,#drawer .intro,#drawer #status,.saved h2,#drawer .empty,.location-row,.location-row small{color:var(--glass-ink)}#drawer input{background:var(--field-bg);border-color:var(--glass-line);color:var(--glass-ink)}#drawer input::placeholder{color:inherit;opacity:.6}.drawer-head button{color:var(--glass-ink)!important}.location-row{border-color:var(--glass-line)}
html:has(#drawer.open)::before{z-index:29;pointer-events:auto}
@media(max-width:600px){#profile-panel{padding:20px}.peep-options{gap:6px}#profile-panel .peep-choice{height:78px}.peep-choice img{height:64px}#seat-actions{top:68px;right:12px}.seated-person{width:13%;height:32%}.person-note{font-size:9px;max-width:80px;padding:4px 6px}.person-label{font-size:8px}}

.map-tools{display:flex;gap:6px;padding:0 22px 12px}#drawer .map-tools button{position:static;display:flex;align-items:center;gap:6px;width:auto;height:34px;border-radius:18px;padding:0 12px;opacity:1;font:12px 'Alegreya Sans',system-ui,sans-serif;background:var(--field-bg);color:var(--glass-ink);border:1px solid var(--glass-line)}#drawer .map-tools button[aria-pressed="true"]{background:#465d48;color:#fff}.map-tools svg{width:15px;height:15px}#map{background:radial-gradient(ellipse at 40% 30%,#e6eee8,#cbdeda);border:1px solid #fff6;box-shadow:inset 0 0 60px #a9c6bc25}.pin-mode{cursor:crosshair!important}.island-label{font:italic 13px 'Alegreya Sans',system-ui,sans-serif;color:#526a59;text-align:center;white-space:nowrap;pointer-events:none;text-shadow:0 1px 2px #f5f7e9}.leaflet-tooltip{background:#f6f3e9df;border:1px solid #84916a50;border-radius:10px;box-shadow:0 2px 8px #35453515}.leaflet-control-attribution{background:#f5f2e9b0!important;color:#5d705d;font-size:9px}.leaflet-interactive{filter:drop-shadow(0 2px 1px #7e927b35)}

.sky-birds{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:0}.animated[data-time="day"] .sky-birds{opacity:1}.sky-bird{position:absolute;left:110%;top:var(--bird-y);width:var(--bird-size);height:auto;opacity:var(--bird-opacity);animation:bird-flight var(--bird-duration) linear infinite;animation-delay:var(--bird-delay);animation-play-state:paused;will-change:transform}.sky-bird svg{display:block;width:100%;height:auto;fill:none;stroke:#3d514b;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.bird-wings{transform-origin:12px 9px;animation:bird-flap var(--wing-duration) ease-in-out infinite;animation-play-state:paused}.animated[data-time="day"] .sky-bird,.animated[data-time="day"] .bird-wings{animation-play-state:running}@keyframes bird-flight{0%{transform:translate(0,0)}25%{transform:translate(calc(-25vw - 12px),-6px)}50%{transform:translate(calc(-55vw - 24px),3px)}75%{transform:translate(calc(-85vw - 36px),-5px)}100%{transform:translate(calc(-115vw - 48px),1px)}}@keyframes bird-flap{0%,100%{transform:scaleY(1)}35%{transform:scaleY(.15)}65%{transform:scaleY(.8)}}

/* Profile panel: Delete my data, kept quiet at the bottom. */
#profile-panel .delete-data{margin-top:18px;padding-top:14px;border-top:1px dashed var(--glass-line)}#profile-panel #delete-my-data{position:static;width:auto;height:auto;padding:9px 16px;border-radius:20px;border:1px solid #b5584f;background:transparent;color:#8f2a20;opacity:1;font:600 14px 'Alegreya Sans',system-ui,sans-serif}:root[data-time="night"] #profile-panel #delete-my-data{color:#ffb4aa;border-color:#d07a70}#profile-panel .delete-data p{margin:6px 0 0;font-size:13px}#profile-panel .delete-data a{color:inherit}

/* Five ordinary store places rest on the existing grass anchor. */
/* Each seat owns its click target; neighboring artwork must not intercept it.
   Keep the existing 12% / 13% art width and every approved seat anchor. */
#seated-peeps>.seated-person{pointer-events:none}
#seated-peeps>.seated-person::after{content:"";position:absolute;inset:0 25%;pointer-events:auto}
#seated-peeps>.seated-person>:is(.person-art,.person-label,.person-note){pointer-events:none}
@media(max-width:600px){#seated-peeps>.seated-person::after{inset-inline:26.923077%}}
#store-building .seated-person.storekeeper{left:var(--seat-left);bottom:-2%;z-index:9;transform-origin:50% 100%;pointer-events:auto}
#store-building .store-seat-target{bottom:0;z-index:2;pointer-events:none}
#seat-options .seat-group-label{grid-column:1/-1;margin:8px 0 2px;font-size:12px;color:inherit}
#store-building .seated-person.storekeeper .person-label{background:#465d48;color:#fff}

/* Only sitting-sila poses: both feet rest on the bench surface. */
#seated-peeps .seated-person:has(>.person-art:is([data-peep="13"],[data-peep="14"])){bottom:22%}

/* Deep squat: soles, rather than hips, meet the bench. */
#seated-peeps .seated-person:has(>.person-art[data-peep="15"]){bottom:22%}

/* New poses only: two percentage points wider; contact anchors stay fixed. */
#seated-peeps .seated-person:has(>.person-art:is([data-peep="13"],[data-peep="14"],[data-peep="15"])){width:14%}
@media(max-width:600px){#seated-peeps .seated-person:has(>.person-art:is([data-peep="13"],[data-peep="14"],[data-peep="15"])){width:15%}}

/* Store-front occupants use the same pose scale as the bench. */
#store-building .seated-person.storekeeper:has(>.person-art:is([data-peep="13"],[data-peep="14"],[data-peep="15"])){width:14%}
@media(max-width:600px){#store-building .seated-person.storekeeper:has(>.person-art:is([data-peep="13"],[data-peep="14"],[data-peep="15"])){width:15%}}

/* Keep the complete avatar/note stage above lantern and lighting layers. */
#place #seated-peeps{z-index:7}
.person-note{z-index:2}
/* AFT is already supplied by presence. Decoration never changes avatar/seat geometry. */
.seated-person[data-away="true"]::before{content:"Zzz";position:absolute;top:8%;right:0;z-index:1;pointer-events:none;color:#465d48;font:600 clamp(10px,1.1vw,15px)/1.1 'Alegreya Sans',system-ui,sans-serif;letter-spacing:.03em;opacity:.85;text-shadow:0 1px 2px #f5f2e9}
[data-time="night"] .seated-person[data-away="true"]::before{color:#eee9d9;text-shadow:0 1px 3px #172e3e}
.animated .seated-person[data-away="true"]::before{animation:aft-sleep-drift 3.8s ease-in-out infinite}
@keyframes aft-sleep-drift{0%{opacity:0;transform:translate(0,4px)}25%{opacity:.85}75%{opacity:.65}100%{opacity:0;transform:translate(8px,-10px)}}
@media(prefers-reduced-motion:reduce){.animated .seated-person[data-away="true"]::before{animation:none;transform:none;opacity:.8}}

/* Sleeping art is 25% larger in both seating areas; seat and drag targets stay fixed. */
:is(#seated-peeps,#store-building) .person-art:is([data-posture="1"],[data-posture="2"]){width:237.5%;max-width:none;height:auto;aspect-ratio:var(--rest-aspect);margin-left:calc(var(--sleep-offset,-45%) * 1.5277778);object-position:center bottom;animation:none!important}

#seated-peeps .seated-person:has(>.person-art:is([data-posture="1"],[data-posture="2"])){bottom:22.5%}

/* Anchor sleeping artwork to the seat instead of the top of differently sized avatar boxes. */
:is(#seated-peeps,#store-building) .person-art:is([data-posture="1"],[data-posture="2"]){position:absolute;left:0;bottom:0}
