.room-experience{background:#faf6ec;border-color:#d3d3c1;overflow:hidden}
.room-experience summary{padding:24px 28px}
.room-experience summary h2{font-size:clamp(20px,2.2vw,29px);line-height:1.35;letter-spacing:-.025em;margin:0;max-width:850px}
.room-experience .school-room-content{display:block;padding:0 28px 26px}
.room-experience .room-welcome{max-width:760px;font-size:14px;line-height:1.85;margin:0 0 23px}
.room-viewer{width:100%;max-width:720px;margin-inline:auto;scroll-margin-top:30px}
.room-scene{width:min(100%,max(180px,calc(150vh - 420px)));width:min(100%,max(180px,calc(150svh - 420px)));margin-inline:auto;position:relative;isolation:isolate;overflow:hidden;border-radius:14px;background:#e6dcc5;aspect-ratio:3/2}
.room-scene img{width:100%;height:auto;display:block}
.room-egg-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.room-egg-cracks{opacity:0}
.room-egg-cracks path{stroke-dasharray:1;stroke-dashoffset:1}
.room-cracked .room-egg-cracks{opacity:.8}
.room-cracked .room-egg-cracks path{animation:room-crack .65s ease-out both}
.room-egg-heart{opacity:0;transform-box:fill-box;transform-origin:50% 80%;transform:translateY(9px) scale(.45)}
.room-hatched .room-egg-heart{animation:room-heart .9s ease-out both}
.room-still .room-egg-cracks path{animation:none;stroke-dashoffset:0}
.room-still .room-egg-heart{animation:none;opacity:1;transform:none}
.room-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 14px}
.room-controls[hidden]{display:none}
.room-control{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid #b8bdab;border-radius:999px;background:#fffdf7;color:#26344b;font:inherit;font-size:12px;font-weight:700;padding:10px 18px;cursor:pointer}
.room-control:hover{background:#e8ecdf}
.room-control:focus-visible{outline:3px solid #255cbe;outline-offset:3px}
.room-sound[aria-pressed=true]{background:#26344b;border-color:#26344b;color:white}
.room-experience .room-sound-note{font-size:11px;line-height:1.6;flex:1 1 280px;color:#59634e;margin:0 0 0 4px}
.room-description{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;margin-top:25px;padding-top:22px;border-top:1px solid #dedecf}
.room-description p{margin:0}
.room-guide-links{align-self:center}
@keyframes room-crack{to{stroke-dashoffset:0}}
@keyframes room-heart{0%{opacity:0;transform:translateY(9px) scale(.45)}65%{opacity:1;transform:translateY(-5px) scale(1.06)}100%{opacity:1;transform:translateY(-2px) scale(1)}}
@media(max-width:700px){.room-experience summary{padding:20px 18px}.room-experience .school-room-content{padding:0 12px 20px}.room-experience .room-welcome{font-size:13px;margin:0 6px 19px}.room-scene{border-radius:10px}.room-viewer{scroll-margin-top:16px}.room-experience figcaption{margin:9px 6px 0;font-size:10px}.room-controls{margin:0 6px 14px;gap:8px}.room-control{font-size:11px;padding:10px 13px}.room-experience .room-sound-note{flex-basis:100%;margin:4px 0 0}.room-description{grid-template-columns:1fr;gap:10px;margin:21px 6px 0}.room-description p,.room-description li{font-size:12px}.room-description .text-link{font-size:11px}}
@media(prefers-reduced-motion:reduce){.room-egg-cracks path,.room-egg-heart{animation:none!important}.room-hatched .room-egg-cracks{opacity:.8}.room-hatched .room-egg-cracks path{stroke-dashoffset:0}.room-hatched .room-egg-heart{opacity:1;transform:none}}
