/* Re-composed horizontal groups on the same continuous cream page. */
#ritualView .ritual{padding-bottom:20px;min-height:calc(100svh - 76px);background:var(--cream)}
.living-room-banner{margin:0;padding:8px 0 24px;width:100%;height:auto;box-sizing:border-box;background:var(--cream);line-height:0}
.living-room-banner .room-stage{display:block;width:80%;height:auto;margin:0 auto;position:relative}
.living-room-banner .room-art{display:block;width:100%;height:auto;aspect-ratio:3/1;object-fit:contain}

@media(max-width:760px){.living-room-banner .room-stage{width:94%}}
@media(max-width:600px){#ritualView .ritual{padding-bottom:16px;min-height:calc(100svh - 70px)}.living-room-banner{padding-top:4px;padding-bottom:18px}.living-room-banner .room-stage{width:100%}}

/* Frame and live screen share one proportional coordinate system. */
.room-tv{position:absolute;left:59%;top:15%;width:15%;aspect-ratio:1;pointer-events:none}
.living-room-banner .tv-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.tv-screen{position:absolute;left:14.5%;top:21.5%;width:59%;height:47%;overflow:hidden;border-radius:14% / 17%;background:#454b46;isolation:isolate;line-height:normal;box-shadow:inset 0 0 6px #281e18b3}
.tv-snow{position:absolute;inset:0;display:grid;place-items:center;background-color:#b6b7af;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.46' d='M0 0h96v96H0z'/%3E%3C/svg%3E");animation:tvSnow 1.6s steps(3) infinite}
.tv-snow span{color:#45483e;background:#dfdfd7a6;padding:2px 4px;font:clamp(3px,.45vw,9px) monospace;letter-spacing:.06em}
.tv-cards{position:absolute;inset:9% 5%;display:flex;justify-content:center;align-items:center;gap:4%;visibility:hidden}
.tv-card{display:block;width:28%;height:auto;aspect-ratio:2/3;object-fit:contain;border-radius:1px;max-height:100%}
.tv-screen:not(.no-signal) .tv-snow{display:none}.tv-screen:not(.no-signal) .tv-cards{visibility:visible}
.tv-screen:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(transparent 0 3px,#29291e0b 3px 4px);border-radius:inherit;box-shadow:inset 0 0 5px #131c2044}
.tv-screen.tuning .tv-cards{animation:tvTune .38s ease-out}
@keyframes tvSnow{0%,100%{background-position:0 0}40%{background-position:7px 3px}75%{background-position:-4px 6px}}
@keyframes tvTune{0%{opacity:.35;transform:translateY(2%)}50%{opacity:.7;transform:translateY(-1%)}100%{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.tv-snow,.tv-screen.tuning .tv-cards{animation:none}}

.living-room-banner .room-art{position:relative;z-index:2;pointer-events:none}.room-tv{z-index:1}
/* Local sample: only the tug pair is animated. Static original is the complete fallback. */
.room-motion-plate,.room-tug-motion{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;display:none}
.room-stage.tug-animated .room-art{visibility:hidden}
.room-stage.tug-animated .room-motion-plate,.room-stage.tug-animated .room-tug-motion{display:block}
@media(prefers-reduced-motion:reduce){.room-stage.tug-animated .room-art{visibility:visible}.room-stage.tug-animated .room-motion-plate,.room-stage.tug-animated .room-tug-motion{display:none}}
