/* The scene is the page: editorial annotations, no project modal or floating card. */
.annotated-world:not(.annotation-active) .context-card,.annotated-world:not(.annotation-active) .building-annotation{opacity:0;pointer-events:none}
.annotated-world.is-local .stage::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f8f1e6ed 0%,#f8f1e6b3 23%,#f8f1e600 43%,#f8f1e600 71%,#f8f1e6a6 91%,#f8f1e6d9 100%);pointer-events:none;z-index:1}
.annotated-world.is-local .scene-caption,.annotated-world .project-caption{background:rgba(255,250,240,.5);border-radius:6px;padding:10px 12px;margin-bottom:12px;text-shadow:none}.annotated-world.is-local .scene-caption h1,.annotated-world .project-caption h2{color:#214d4a;font-weight:700}.annotated-world.is-local #eyebrow,.annotated-world #context-eyebrow,.annotated-world #related-date{color:#37645e;font-weight:700}.annotated-world .project-caption .context-heading{border:0}.annotated-world .project-caption h2{margin:0 0 6px}.annotated-world .project-caption #related-date{margin-bottom:0}.annotated-world.is-local .scene-caption #eyebrow{font-size:11px;letter-spacing:1px;margin:0 0 10px}.annotated-world.is-local .scene-caption h1{margin-bottom:0}
#annotation-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;transition:opacity .3s}#annotation-leaders polyline{fill:none;stroke:#6e7b6c;stroke-width:1;vector-effect:non-scaling-stroke}
.annotated-world.is-local .intro{left:4.5%;top:14%;width:27%;max-width:350px}.annotated-world.is-local h1{font-size:clamp(24px,2.7vw,39px)}
.annotated-world .context-card{left:4.5%;top:42%;width:23%;max-width:285px;padding:0;border:0;border-radius:0;box-shadow:none;background:none;text-shadow:0 1px 8px #f8f1e5;transition:opacity .4s;}
.annotated-world .context-heading{border-top:1px solid #838b7977}.annotated-world .context-card h2{font-size:20px}.annotated-world .context-card #project-lines{font-size:12px;line-height:1.9;color:#35483e}.annotated-world .context-card .project-chip{display:none}.annotated-world .context-link{border-bottom:1px solid #697766;padding:0;min-height:44px;font-size:12px}
.building-annotation{position:absolute;z-index:4;right:4%;top:32%;width:19%;max-width:250px;border-top:1px solid #838b7977;color:#35483e;text-shadow:0 1px 8px #f8f1e5;transition:opacity .4s}.annotation-kicker{font-size:10px;letter-spacing:1px;margin:12px 0}.building-annotation h2{font-size:19px;line-height:1.5;font-weight:500;margin:12px 0 6px}.building-annotation p{font-size:12px;line-height:1.9}.building-annotation #related-date{font-size:10px;color:#5f7164}.building-annotation a{display:inline-flex;align-items:center;min-height:44px;font-size:12px;border-bottom:1px solid #697766}.building-annotation.in-flight{opacity:0;pointer-events:none}
.annotated-world #project-dialog{display:none!important}.annotated-world .view-picker{background:#f8f1e590;border:0}
@media(max-width:900px) and (min-width:761px){.annotated-world .context-card{width:26%;top:39%}.building-annotation{right:3%;width:21%;top:37%}.annotated-world.is-local .intro{width:40%;top:13%}}
@media(max-width:760px){.annotated-world.is-local .intro{top:84px;left:20px;right:20px;width:auto;max-width:none}.annotated-world.is-local h1{font-size:25px;max-width:92%;margin:0}.annotated-world.is-local .intro>p#scene-description{font-size:10px;max-width:90%}.annotated-world .context-card{left:20px;right:auto;top:auto;bottom:152px;width:54%;max-width:none;padding:0}.annotated-world .context-card h2{font-size:16px;line-height:1.4}.annotated-world .context-card #project-lines{font-size:10px;line-height:1.8}.annotated-world .context-heading p{font-size:9px}.annotated-world .context-heading button{display:none}.annotated-world .context-link{font-size:10px;min-height:36px}.building-annotation{right:18px;top:27%;width:29%;border-top:1px solid #838b7977}.building-annotation h2{font-size:13px;line-height:1.5;margin:6px 0}.building-annotation p{font-size:9px;line-height:1.8;margin:4px 0}.building-annotation .annotation-kicker{font-size:8px}.building-annotation #related-date{font-size:8px}.building-annotation #related-copy{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.building-annotation a{font-size:9px;min-height:36px}.annotated-world .context-heading{padding-top:8px}.annotated-world .view-picker{bottom:113px}}
@media(max-height:700px) and (max-width:760px){.annotated-world.is-local .intro{top:70px}.annotated-world.is-local h1{font-size:21px}.annotated-world .context-card{bottom:129px;width:58%}.annotated-world .context-card #project-lines{font-size:9px}.annotated-world .context-card h2{font-size:14px}.building-annotation{top:31%}.annotated-world .view-picker{bottom:98px}}
@media(prefers-reduced-motion:reduce){.building-annotation{transition:none}}

/* World gestures must never start browser text/image selection. Dialog copy stays selectable. */
.spatial-mode #experience,.spatial-mode #experience *{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
.spatial-mode dialog,.spatial-mode dialog *{-webkit-user-select:text;user-select:text}
.world-dragging,.world-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}
#webgl-world canvas{touch-action:none;cursor:grab}
#pin-leaders{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}#pin-leaders line{stroke:#6d8064;stroke-width:1;vector-effect:non-scaling-stroke}
.hotspot span{white-space:nowrap;max-width:min(220px,52vw);overflow-wrap:anywhere}
#toggle-building-sound{display:inline-grid;place-items:center;min-width:36px;min-height:44px;padding:6px;color:#526850}#toggle-building-sound .sound-slash{display:none}#toggle-building-sound.is-muted .sound-wave{display:none}#toggle-building-sound.is-muted .sound-slash{display:block}#toggle-building-sound.is-muted{color:#858677}
@media(max-width:400px){#toggle-building-sound{min-width:30px;padding-inline:3px}}

.site-legal{flex-direction:column;gap:3px;pointer-events:auto}.contact-links,.legal-links{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px 16px}.contact-links{font-size:11px;line-height:1.5;color:#355a4a}.contact-links button,.contact-links a{font:inherit;display:inline-flex;align-items:center;min-height:30px;padding:0;background:none;border:0;color:inherit;text-decoration:none}.contact-links button:hover,.contact-links a:hover{text-decoration:underline}.contact-links>span{color:#707767}.legal-links{font-size:9px}
.spatial-mode .journey-nav{bottom:116px}.spatial-mode .journey-bottom{bottom:78px}
#contact-dialog{width:min(380px,calc(100% - 32px));text-align:center;padding:32px 28px;color:#355347}#contact-dialog h2{margin-bottom:12px}#contact-dialog p{font-size:13px;line-height:1.7}.contact-qr{display:block;width:259px;max-width:100%;height:auto;margin:18px auto 12px;background:white;border:10px solid white;box-sizing:content-box;image-rendering:auto}#contact-dialog .contact-hint{font-size:11px;color:#798172}.contact-email{display:inline-flex;align-items:center;min-height:44px;font-size:13px;text-decoration:underline;text-underline-offset:4px}
@media(max-width:760px){.site-legal{left:12px;right:12px;gap:2px}.contact-links{font-size:10px;gap:0 10px}.contact-links>span{display:none}.contact-links button,.contact-links a{min-height:36px}.legal-links{font-size:7px;gap:2px 9px}.spatial-mode .journey-nav{bottom:98px}.spatial-mode .journey-bottom{bottom:70px}#contact-dialog{padding:28px 22px}.contact-qr{width:240px;max-width:calc(100% - 20px)}}
#building-directory{position:absolute;z-index:8;right:4%;bottom:154px;width:260px;color:#38594b;font-size:12px;background:#fff5dfdb;border:1px solid #bbaa8270;border-radius:8px;box-shadow:0 8px 30px #79613c12}
#building-directory[hidden]{display:none}
#building-directory summary{padding:13px 15px;cursor:pointer;font-weight:700}
#building-directory>div{max-height:260px;overflow:auto;padding:0 8px 8px}
#building-directory button{display:block;text-align:left;padding:10px 8px;min-height:44px;width:100%;border:0;border-top:1px solid #bbaa8240;background:none;color:inherit;font:inherit;cursor:pointer}
#building-directory button:hover,#building-directory button:focus-visible{background:#e9ddbd;border-radius:4px}
@media(max-width:760px){#building-directory{bottom:151px;right:16px;width:36%;font-size:10px}#building-directory summary{padding:10px}#building-directory[open]{width:calc(100% - 32px)}#building-directory>div{max-height:210px}}

/* Points are fixed to model coordinates; collision avoidance affects captions only. */
.spatial-mode .hotspot{width:44px;height:44px;padding:0;gap:0;overflow:visible}
.spatial-mode .hotspot::before{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.spatial-mode .hotspot span{position:absolute;margin:0;max-width:min(210px,50vw);text-align:left;white-space:normal;width:max-content;font-weight:600;background:#fff9ecbd}
.spatial-mode .hotspot.caption-crowded:not(:hover):not(:focus-visible):not(.is-selected) span{visibility:hidden;pointer-events:none}
.spatial-mode .hotspot:is(:hover,:focus-visible,.is-selected){z-index:6}
#building-directory .directory-group{margin:12px 0 2px;font-size:10px;letter-spacing:.04em;color:#687665;font-weight:700}
