#part3{position:fixed;inset:0;border:0;width:100%;height:100%;opacity:0;pointer-events:none;z-index:4;transition:opacity 1.8s;background:#000}#part3.visible{opacity:1;pointer-events:auto}
#space{transition:opacity 1.8s}#enter-sphere{position:fixed;bottom:9%;left:50%;transform:translateX(-50%);z-index:2;border:0;background:none;color:#aaa;font:inherit;cursor:pointer}#enter-sphere[hidden]{display:none}
#context{position:fixed;inset:0;z-index:2;pointer-events:none;perspective:1100px}#context[hidden]{display:none}
#marks{position:absolute;inset:0;width:100%;height:100%;transform:rotateX(12deg) rotateY(-15deg) scale(1.24);transition:transform 2.2s}
#marks path{fill:none;stroke:#acb0b2;stroke-width:.8;opacity:0;transition:opacity 1.8s}#marks path.located{opacity:.25}#marks.confirmed path.located{opacity:.62}#marks.flat{transform:none}
.audio-node{position:fixed;transform:translate(-50%,-50%);width:44px;height:44px;background:none;border:0;color:#727477;font:15px Georgia;pointer-events:auto;cursor:pointer;opacity:.5;transition:opacity .4s}.audio-node:hover,.audio-node:focus-visible{opacity:1;outline:1px solid #444}.audio-node:disabled{opacity:.16;cursor:default}
#voice{position:absolute;bottom:15%;left:12%;width:76%;text-align:center;color:#c2c2c2;font:clamp(15px,2vw,21px)/1.5 Georgia,serif;min-height:3em}#placeholder,#hint{position:absolute;bottom:4%;font:11px/1.5 Arial;color:#777}#placeholder{right:4%}#hint{left:4%}
@media(prefers-reduced-motion:reduce){#marks{transform:none}#marks,#part3,#space{transition-duration:.2s}}
#nodes{position:absolute;inset:0;transform:rotateX(12deg) rotateY(-15deg) scale(1.24);transform-style:preserve-3d}#nodes .audio-node{position:absolute}
@media(prefers-reduced-motion:reduce){#nodes{transform:none}}



/* The only listening affordance is contact-local, never a permanent hotspot. */
#listen{position:fixed;z-index:6;box-sizing:border-box;width:39px;height:19px;padding:0;border:0;border-radius:0;background:#000;color:#fff;font:10px/19px Helvetica,Arial,sans-serif;letter-spacing:0;text-align:center;box-shadow:none;pointer-events:auto;cursor:pointer}
#listen[hidden]{display:none}#listen:focus-visible{outline:1px solid #777;outline-offset:1px}


#hint{display:none}

#marks path[data-material]{stroke-width:2.2;opacity:0}#marks.confirmed path[data-material].located{opacity:.35}
.audio-point{position:fixed;width:5px;height:5px;transform:translate(-50%,-50%);background:#cbdff3;clip-path:polygon(12% 5%,74% 0,100% 44%,82% 90%,25% 100%,0 62%);pointer-events:none;z-index:3;transition:opacity .35s linear}
.audio-point[hidden]{display:none}#listen{width:52px;height:23px;font-size:11px;line-height:23px}
body[data-flow="residue"] #context,body[data-flow="flat"] #context{z-index:5}
#part3-arrival{position:fixed;z-index:7;left:8%;top:8%;pointer-events:none;color:#b8b8b8;font:12px Helvetica,Arial,sans-serif;transition:opacity 1.2s}#part3-arrival p{font:17px Georgia,serif;margin:8px 0}#part3-arrival.gone{opacity:0}
#home-exit{position:fixed;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}
#home-exit-object{pointer-events:none}.door-depth{fill:#030405;fill-opacity:.92}.door-surface{fill:#17191b;fill-opacity:.68;stroke:#2c2e2f;stroke-width:.55}.door-seam{fill:none;stroke:#343738;stroke-width:.7;opacity:.48}.door-handle{stroke:#4b4d4e;stroke-width:1.7;opacity:.55}
#home-exit-object.available{pointer-events:auto;cursor:pointer}#home-exit-object.available:hover .door-seam,#home-exit-object.available:focus-visible .door-seam{stroke:#727778;opacity:.72}#home-exit-object:focus{outline:none}
#threshold-black{position:fixed;inset:0;z-index:10;background:#000;opacity:0;pointer-events:none;transition:opacity 1s}#threshold-black.covered{opacity:1}#threshold-black.reveal{transition:opacity 1.8s;opacity:0}
.audio-point{width:10px;height:10px;transition:opacity .18s linear}
#memory-sentence{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;white-space:nowrap;color:#eeede9;font:400 18px/1.5 Helvetica,Arial,sans-serif;opacity:1;transition:opacity .9s}#memory-sentence.gone{opacity:0}

/* v10: a sharp light core, soft bloom; heard traces have neither. */
.audio-point{width:12px;height:12px;clip-path:none;border-radius:45% 55% 40% 60%;background:#f7f3e9!important;box-shadow:0 0 5px 2px #eee9dba0,0 0 14px 7px #e7dfca55;transition:opacity .07s linear}
.audio-point.heard{width:6px;height:6px;box-shadow:none;background:#c8c4ba!important}
#listen{width:52px;height:23px;font:11px/23px Helvetica,Arial,sans-serif}
#door-photo-layer{position:fixed;inset:0;z-index:3;pointer-events:none;width:100%;height:100%}
.door-surface{fill:transparent;stroke:none}.door-handle{opacity:0!important}.door-seam{stroke:transparent}

/* Search history persists in room coordinates. */
#search-trace{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
#search-trace path{fill:none;stroke:#e0dfd5;stroke-width:.85;opacity:.55;stroke-linejoin:round}
.audio-point{width:14px;height:14px;box-shadow:0 0 5px 3px #faf4e5c0,0 0 20px 10px #e7dfca70}
.audio-point.heard{width:8px;height:8px;box-shadow:0 0 3px 1px #d9d4c033}

/* The aperture blocks room traces; only the separately depth-layered exit trace can appear inside. */
.door-depth{fill-opacity:1}

#go-out{position:fixed;z-index:8;width:52px;height:23px;padding:0;border:0;border-radius:0;background:#000;color:#fff;font:11px/23px Helvetica,Arial,sans-serif;cursor:pointer;pointer-events:auto}
#go-out[hidden],#exit-point[hidden]{display:none!important}
#exit-point{z-index:7;pointer-events:none}

#exit-hit-area{position:fixed;z-index:8;transform:translate(-50%,-50%);width:320px;height:320px;margin:0;padding:0;border:0;border-radius:50%;clip-path:circle(50%);background:transparent;box-shadow:none;cursor:pointer;pointer-events:auto;touch-action:none}
#exit-hit-area[hidden]{display:none!important}
#exit-point{z-index:9}#go-out{z-index:10}

#home-continuity{position:fixed;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:hidden}
#memory-sentence{font:400 16px/1.5 "Times New Roman",Times,serif}

#home-continuity{opacity:1;transition:none}
#part2-subtitles{position:fixed;left:50%;bottom:max(7vh,34px);transform:translateX(-50%);width:min(82vw,620px);margin:0;text-align:center;pointer-events:none;z-index:12;color:#eeede9;font:400 17px/1.45 "Times New Roman",Times,serif;letter-spacing:normal;background:none;border:0;box-shadow:none;min-height:1.45em}

/* No wrapper plane or rectangular glow around the existing pixel-sampled door. */
#home-exit,#home-exit-object,#door-photo-layer{border:0!important;outline:0!important;box-shadow:none!important;background:none!important;filter:none!important}
.door-seam,#home-exit-object.available:hover .door-seam,#home-exit-object.available:focus-visible .door-seam{stroke:none!important;opacity:0!important}

/* Small screen-space operation note, shown only after the Home intro has finished. */
#part2-interaction-hint{position:fixed;top:max(18px,env(safe-area-inset-top));left:16px;right:16px;margin:0;text-align:center;font:400 9px/1.5 Helvetica,Arial,sans-serif;letter-spacing:.01em;color:#c0c3c0;opacity:.72;pointer-events:none;z-index:8;transition:opacity 2.2s ease;background:none;border:0}
#part2-interaction-hint.used{opacity:.28}
@media(prefers-reduced-motion:reduce){#part2-interaction-hint{transition-duration:.2s}}

/* Programmatic handoff focus is not an interactive control. */
#stage:focus{outline:none}
