.room-bricks { position:absolute; inset:0; z-index:9; pointer-events:none; }
.room-brick { position:absolute; margin:0; padding:0; border:0; background:none; border-radius:3px; pointer-events:auto; cursor:grab; touch-action:none; user-select:none; -webkit-user-select:none; transform-origin:50% 85%; filter:drop-shadow(2px 3px 2px #29130680); }
.room-brick img { display:block; width:100%; height:100%; pointer-events:none; -webkit-user-drag:none; }
.room-brick.is-held { cursor:grabbing; filter:drop-shadow(4px 8px 4px #29130675); }
.room-brick.is-pointer:focus { outline:none; }
.room-brick:focus-visible:not(.is-pointer) { outline:1px solid #ffedb080; outline-offset:2px; }
.room-brick.is-target { filter:drop-shadow(0 0 1px #ffe8a94d) drop-shadow(2px 3px 2px #29130680); }
.room-bricks-help { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.room-view .stage:has(.notebook.is-open) .room-bricks { pointer-events:none; }
.room-view .stage:has(.notebook.is-open) .room-brick { pointer-events:none; }

/* The photographic body lifts independently of its floor-plane collision box. */
.room-brick { perspective:400px; transition:filter 150ms ease; }
.room-brick img { transform:translateY(calc(-1 * var(--brick-lift,0px))) rotateX(var(--brick-pitch,0deg)) rotateZ(var(--brick-roll,0deg)); transition:transform 130ms ease-out; }
.room-brick.is-held { filter:drop-shadow(5px 10px 4px #29130665); }
@media(prefers-reduced-motion:reduce) { .room-brick,.room-brick img { transition:none; } .room-brick img { transform:none; } }

.room-bricks::before { content:''; position:absolute; inset:0; background:#0b102b66; opacity:0; transition:opacity .35s; pointer-events:none; }
.room-bricks.is-launching::before { opacity:1; }
.room-bricks-rocket-tip,.room-bricks-flame { position:absolute; display:none; pointer-events:none; z-index:2100; }
.room-bricks.is-launching .room-bricks-rocket-tip,.room-bricks.is-launching .room-bricks-flame { display:block; }
.room-bricks-rocket-tip { background:#f3ede0; clip-path:polygon(50% 0,100% 82%,100% 100%,0 100%,0 82%); filter:drop-shadow(1px 1px 1px #1d1732); }
.room-bricks-flame { background:linear-gradient(#fff9b0,#ff8c34 50%,#f54635 80%,transparent); clip-path:polygon(12% 0,88% 0,100% 40%,50% 100%,0 40%); filter:drop-shadow(0 0 5px #ff9c47); }
.room-bricks-astronaut { position:absolute; display:none; z-index:2200; padding:0; border:0; background:none; cursor:pointer; pointer-events:auto; filter:drop-shadow(2px 3px 2px #170e1966); }
.room-bricks.has-landed .room-bricks-astronaut { display:block; animation:astronaut-arrive .4s ease-out both; }
.room-bricks-astronaut span { position:absolute; display:block; box-sizing:border-box; }
.astronaut-helmet { left:19%; top:2%; width:62%; height:48%; border:3px solid #f6f1e7; border-radius:45%; background:#ded8cd; box-shadow:inset 0 0 0 2px #827d89; z-index:3; }
.astronaut-visor { left:13%; top:24%; width:74%; height:47%; border-radius:45%; background:linear-gradient(145deg,#b2d5db,#415671); box-shadow:inset 1px 1px 2px #ffffffaa; }
.astronaut-body { left:24%; top:45%; width:52%; height:33%; border:2px solid #bebcc3; border-radius:25% 25% 18% 18%; background:#eeeae3; z-index:2; }
.astronaut-body::after { content:''; position:absolute; left:27%; top:25%; width:45%; height:33%; border-radius:2px; background:#d56a58; box-shadow:0 0 0 1px #796a72; }
.astronaut-arm { top:49%; width:18%; height:27%; border:2px solid #bdbbc2; border-radius:8px; background:#f4efe7; }
.astronaut-arm-left { left:10%; transform:rotate(18deg); }
.astronaut-arm-right { right:9%; transform:rotate(-28deg); z-index:4; }
.astronaut-leg { top:73%; width:20%; height:25%; border:2px solid #bdbbc2; border-radius:3px 3px 5px 5px; background:#eeeae3; }
.astronaut-leg-left { left:25%; }.astronaut-leg-right { right:25%; }
.astronaut-letter { right:0; top:54%; width:26%; height:17%; border:1px solid #8b704a; background:#f5dfae; transform:rotate(-17deg); z-index:5; box-shadow:1px 1px 2px #41312288; }
.room-bricks-astronaut:focus-visible { outline:2px solid #ffe29d; outline-offset:4px; border-radius:4px; }
@keyframes astronaut-arrive { from { opacity:0; transform:translateY(-12px) rotate(-8deg); } to { opacity:1; transform:translateY(0); } }
.room-bricks-note { max-width:min(360px,calc(100vw - 32px)); min-width:min(300px,calc(100vw - 32px)); padding:42px 30px 28px; border:1px solid #bb9a68; background:#f1dfb8; color:#47382d; box-shadow:0 15px 50px #120f18a0, inset 0 0 30px #b78e5d33; transform:rotate(-1deg); text-align:center; }
.room-bricks-note::backdrop { background:#111329a8; }
.room-bricks-note p { margin:13px 0 22px; font:italic 25px/1.25 Georgia,serif; }
.room-bricks-note small { font:10px/1.2 Arial,sans-serif; letter-spacing:.25em; color:#76634b; }
.room-bricks-note-stamp { color:#a3604e; font-size:25px; }
.room-bricks-note-close { position:absolute; top:8px; right:11px; border:0; background:none; color:#5a4b3e; font:26px/1 Arial,sans-serif; cursor:pointer; }
@media(prefers-reduced-motion:reduce) { .room-bricks.has-landed .room-bricks-astronaut { animation:none; } .room-bricks::before { transition:none; } }
