.physical-objects { position:absolute; z-index:2; overflow:visible; pointer-events:none; fill:none; stroke:none; }
.room-title { display:none; }
.room.exploring .dialogue { display:none; }
.hide-hotspots .object-light { opacity:0!important; }
.hide-hotspots .object-hit { stroke:transparent!important; }
@media(max-width:640px) { .bottom-bar nav { gap:17px; } }
.object-light { opacity:0; pointer-events:none; filter:brightness(1.35); transition:opacity 180ms ease; }
.object-hit { fill:transparent; stroke:transparent; stroke-width:2; pointer-events:all; cursor:pointer; transition:stroke 180ms ease; }
.physical-object:hover .object-light,.physical-object:focus-visible .object-light { opacity:.8; }
.physical-object:hover .object-hit,.physical-object:focus-visible .object-hit { stroke:#fff; filter:drop-shadow(0 0 5px #fff); }
.physical-object:focus { outline:none; }
.monitor-display { pointer-events:none; transition:filter 180ms ease; }
.item-marker { pointer-events:none; filter:drop-shadow(0 0 5px #ff6cb5); }
.item-marker-dot { fill:#fff; stroke:none; }
.item-marker-ring { fill:#180b16a6; stroke:#ffacd3; stroke-width:1.3; }
.item-marker-halo { fill:#ff75b522; stroke:#ff96ca; stroke-width:1; opacity:.65; animation:item-marker-pulse 3.2s ease-in-out infinite; animation-delay:var(--marker-delay); transform-box:fill-box; transform-origin:center; }
.item-marker.active { filter:drop-shadow(0 0 8px #ff9ad0); }
.item-marker.active .item-marker-ring { stroke:#fff; stroke-width:2; }
.hide-hotspots .item-marker { display:none; }
@keyframes item-marker-pulse { 0%,100% { transform:scale(.8); opacity:.25; } 50% { transform:scale(1.2); opacity:.7; } }
@media(prefers-reduced-motion:reduce) { .item-marker-halo { animation:none; } }
.monitor-foliage { pointer-events:none; filter:drop-shadow(2px 3px 2px #0009); }
.monitor-vine { fill:none; stroke:#202020; stroke-width:2.5; }
.monitor-leaf { fill:url(#monitor-leaf-tone); stroke:#111; stroke-width:1.1; }
.monitor-leaf-vein { fill:none; stroke:#c4c4c4; stroke-opacity:.48; stroke-width:.65; }
.monitor-leaf-branch { animation:monitor-leaf-sway 7s ease-in-out infinite alternate; }
.monitor-foliage > g:nth-child(2) .monitor-leaf-branch { animation-duration:8.6s; }
.monitor-foliage > g:nth-child(3) .monitor-leaf-branch { animation-duration:6.8s; }
.monitor-foliage.paused .monitor-leaf-branch { animation-play-state:paused; }
@keyframes monitor-leaf-sway { from { transform:rotate(-.65deg); } to { transform:rotate(.85deg); } }
@media(prefers-reduced-motion:reduce) { .monitor-leaf-branch { animation:none; } }
.monitor-panel { width:320px; height:380px; box-sizing:border-box; transform-origin:0 0; background:#080808; color:#fff; padding:21px 20px 17px; font-family:Arial,sans-serif; display:flex; flex-direction:column; overflow:hidden; }
.monitor-brand { display:flex; align-items:center; gap:10px; font-size:17px; font-weight:600; padding-bottom:17px; border-bottom:1px solid #333; }
.monitor-brand img { width:23px; height:30px; object-fit:contain; }
.monitor-market { margin:18px 0 10px; display:flex; flex-direction:column; gap:7px; }
.monitor-market strong { font-size:33px; letter-spacing:-1px; }
.monitor-market span { font-size:9px; letter-spacing:1px; color:#aaa; }
.monitor-panel svg { width:100%; height:165px; flex:1; min-height:0; stroke-linecap:round; }
.monitor-bottom { display:flex; flex-direction:column; gap:5px; margin-top:11px; padding-top:10px; border-top:1px solid #333; font-size:8px; letter-spacing:.7px; color:#aaa; }
.physical-objects:has([data-object="monitor"]:hover) .monitor-display,.physical-objects:has([data-object="monitor"]:focus-visible) .monitor-display { filter:brightness(1.65) drop-shadow(0 0 7px #fff5); }
@media(prefers-reduced-motion:reduce) { .object-light,.object-hit,.monitor-display { transition:none; } }
