.neighbor-hub-visitors{position:absolute;inset:0;pointer-events:none}
.neighbor-hub-guest{position:absolute;top:34%;width:18%;height:30%;border:0;background:none;padding:0;pointer-events:auto;color:#fff1d5;z-index:4}
.neighbor-hub-rabbit{left:4%}.neighbor-hub-panda{right:0}
.neighbor-hub-guest img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 5px #31201755);transition:transform .25s}
.neighbor-hub-guest span{position:absolute;left:50%;bottom:-8%;transform:translateX(-50%);white-space:nowrap;background:#193958ed;border:1px dashed #ebd0a2;border-radius:10px;padding:7px 12px;font-size:16px;line-height:1.4}
.neighbor-hub-guest small{display:block;font-size:14px;color:#edceb0}
.neighbor-hub-guest:hover img{transform:translateY(-5px)}
.neighbor-book-portrait{width:min(260px,90%);height:260px;object-fit:contain}
.neighbor-memory p{font-size:15px!important}.neighbor-memory b{display:block;color:#745030}
.guest-bookmarks{grid-template-columns:repeat(8,1fr)}
.portrait.neighbor-portrait{background-size:contain;background-repeat:no-repeat;background-position:center;background-color:#e9d2b3}
.portrait.portrait-elder{background-image:url('assets/desk-elder-sunglasses-v38.webp');background-size:340%;background-position:72% 24%}
.neighbor-game{overflow:hidden;background:#183451}
.neighbor-scene{position:relative;flex:1;min-height:0;overflow:hidden;display:grid;place-items:center;container-type:size}
.neighbor-art{position:relative;width:min(100cqw,177.6833cqh);aspect-ratio:1672/941;isolation:isolate}
.neighbor-background{display:block;width:100%;height:100%;object-fit:contain}
.neighbor-character{position:absolute;width:36%;height:auto;left:52%;top:6%;filter:drop-shadow(4px 6px 4px #21150740);z-index:1;transition:left .65s ease}
.neighbor-scene[data-seat="window"] .neighbor-character:not(.neighbor-walking){left:20%}
.neighbor-table-front{position:absolute;inset:0;z-index:2;background:url('assets/long-table-v27.webp') center/100% 100%;clip-path:polygon(14% 57%,86% 57%,100% 100%,0 100%);pointer-events:none}
.neighbor-walking{width:34%;top:24%;left:43%;animation:neighbor-enter 1.5s ease-out both}
.neighbor-scene[data-phase="order"] .neighbor-walking{animation:none}
.neighbor-coaster{position:absolute;left:65%;top:64%;width:12%;height:12%;object-fit:contain;z-index:3;transition:left .65s}
.neighbor-scene[data-seat="window"] .neighbor-coaster{left:33%}
.neighbor-cup{position:absolute;left:66%;top:53%;width:11%;height:26%;padding:0;border:0;background:transparent;z-index:4;filter:drop-shadow(2px 8px 4px #37231244)}
.neighbor-cup img{width:100%;height:100%;object-fit:contain}
.neighbor-cup:disabled{opacity:1}
.neighbor-scene[data-seat="window"] .neighbor-cup{left:34%}
.neighbor-scene[data-phase="drink"] .neighbor-cup{animation:neighbor-deliver .7s ease both}
.waiting-cup{animation:neighbor-cup-breathe 2s ease-in-out infinite}
.neighbor-sipping{animation:neighbor-sip .75s ease both}
.neighbor-art .owner-near{z-index:5}
#neighbor-scent{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:6}
.neighbor-scene-label,.neighbor-return,.neighbor-film-label{position:absolute;top:16px;padding:8px 13px;background:#193958e8;border:1px dashed #e4c29a;border-radius:9px;color:#fff0d4;font-size:14px;z-index:8}
.neighbor-scene-label{left:16px}.neighbor-return{right:16px}
.neighbor-dialogue{flex:none;min-height:160px;padding:22px 5%;display:grid;grid-template-columns:1fr auto;gap:10px 30px;color:#263653}
.neighbor-dialogue .speaker,.neighbor-dialogue .line{grid-column:1}.neighbor-dialogue .speaker{font-size:18px}.neighbor-dialogue .line{font-size:17px;line-height:1.8;margin:0}
.neighbor-dialogue .actions{grid-column:2;grid-row:1/4;max-width:550px;align-self:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.neighbor-scent-progress{display:flex;gap:8px}.neighbor-scent-progress i{width:28px;height:6px;background:#d4c6ad;border-radius:4px}.neighbor-scent-progress .filled{background:#466946}
.neighbor-memory{margin:20px 0}
.neighbor-brew{display:flex;flex-direction:column}
.neighbor-film-scene{position:relative;flex:1;min-height:0;display:grid;place-items:center;background:#1c354a}
#neighbor-film{width:100%;height:100%;object-fit:contain;min-height:0}
.neighbor-film-label{left:16px}.neighbor-film-label b,.neighbor-film-label span{display:block;line-height:1.7}
.neighbor-brew-controls{display:grid;grid-template-columns:1fr 2fr;gap:24px;padding:22px 5%;flex:none;min-height:155px}
.neighbor-brew-controls .actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end}
.neighbor-brew-controls .progressbar{margin-top:12px}.neighbor-brew-controls p{font-size:14px;line-height:1.6}
.neighbor-brew-controls .option-row button{font-size:16px;min-height:44px}
.neighbor-game button:focus-visible,.neighbor-hub-guest:focus-visible{outline:3px dashed #e88b42;outline-offset:3px}
@keyframes neighbor-enter{from{transform:translate(170%,-24%) scale(.5);opacity:0}to{transform:none;opacity:1}}
@keyframes neighbor-deliver{from{transform:translate(-180%,45%)}to{transform:none}}
@keyframes neighbor-sip{from{transform:translateY(5px)}to{transform:translateY(0)}}
@keyframes neighbor-cup-breathe{50%{transform:translateY(-5px)}}
@media(max-width:700px){.guest-bookmarks{grid-template-columns:repeat(4,1fr)}.neighbor-dialogue{display:flex;flex-direction:column;min-height:210px;padding:18px 22px;gap:9px;max-height:50dvh;overflow:auto}.neighbor-dialogue .actions{align-self:stretch;justify-content:flex-start;max-width:none}.neighbor-dialogue .line{font-size:16px}.neighbor-dialogue .btn{font-size:15px;padding:12px 16px;min-height:44px}.neighbor-brew-controls{display:flex;flex-direction:column;padding:16px 20px;gap:10px;max-height:48dvh;overflow:auto}.neighbor-brew-controls .actions{justify-content:flex-start}.neighbor-brew-controls .btn{font-size:15px;min-height:44px}.neighbor-scene-label,.neighbor-return,.neighbor-film-label{top:8px;font-size:14px;padding:7px 9px}.neighbor-scene-label,.neighbor-film-label{left:8px}.neighbor-return{right:8px}.neighbor-film-label{max-width:55%}.neighbor-hub-guest span{font-size:16px}.neighbor-hub-guest small{font-size:14px}}
@media(prefers-reduced-motion:reduce){.neighbor-character,.neighbor-cup,.neighbor-hub-guest img{animation:none!important;transition:none!important}}
[data-paused="true"] .neighbor-game *{animation-play-state:paused!important}
