/* R5 adds bounded visual detail without changing the established layout or palette. */
.room-light{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;transform:scale(var(--room-zoom,1.03));overflow:hidden}
.sunrise-morning{opacity:var(--sunrise-progress,0)}
.sunrise-track{--sunrise-frame:550px;--sunrise-travel:720px;height:calc(var(--sunrise-frame) + var(--sunrise-travel));margin-top:35px;position:relative}
.sunrise-track .room-scene{height:var(--sunrise-frame);margin-top:0;position:sticky;top:max(24px,calc((100svh - var(--sunrise-frame))/2))}
.sunrise-track .room-vignette{background:linear-gradient(90deg,#020817bd,transparent 62%),linear-gradient(0deg,#030712a6,transparent 43%)}
.sunrise-stage{padding:5px 8px;background:#030712b3;border:1px solid #7590b02b;border-radius:2px}
body.motion-off .sunrise-track{height:auto}body.motion-off .sunrise-track .room-scene{position:relative;top:0}
@media(max-width:1100px){.sunrise-track{--sunrise-frame:470px}}
@media(max-width:760px){.sunrise-track{--sunrise-frame:420px;--sunrise-travel:540px;margin-top:27px}}
@media(prefers-reduced-motion:reduce){.sunrise-track{height:auto}.sunrise-track .room-scene{position:relative;top:0}}
.service-diagrams{position:relative;width:100%;height:235px;isolation:isolate}
.service-diagrams:before{content:'';position:absolute;inset:10% 5%;background:radial-gradient(ellipse,#2d6bff0e,transparent 72%);z-index:-1}
.r5-diagram{display:block;width:100%;height:100%;overflow:visible;animation:diagram-arrive .32s ease-out both}
.integrated-pipe{height:318px;min-height:318px;align-self:center;background:none}
.integrated-pipe .art-label{position:relative;left:auto;bottom:auto;margin-top:0;max-width:none;padding:0 18px 26px}
.integrated-pipe .art-label p{font-size:20px;line-height:1.3;letter-spacing:-.6px;margin-top:8px;white-space:normal}
.integrated-pipe .art-label .tiny-label{font-size:6px}.integrated-pipe .pipe-live-label{bottom:8px;right:19px;font-size:5px}
.fixture-flow{stroke-dasharray:18 12;animation:fixture-water 1.5s linear infinite}
.fixture-ripple{transform-origin:230px 223px;animation:fixture-ripple 2s ease-out infinite}
.drain-flow{stroke-dasharray:23 65;animation:drain-water 3s linear infinite}
.drain-inlet{animation:inlet-light 3s ease-in-out infinite}
.heater-circulation{stroke-dasharray:30 380;animation:heater-water 6s linear infinite}
.heater-gauge{transform-origin:181px 109px;animation:heater-gauge 5s ease-in-out infinite alternate}
@keyframes diagram-arrive{from{opacity:.3;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes fixture-water{to{stroke-dashoffset:-60}}
@keyframes fixture-ripple{0%{transform:scale(.6);opacity:.7}100%{transform:scale(1.5);opacity:0}}
@keyframes drain-water{to{stroke-dashoffset:-176}}
@keyframes inlet-light{50%{opacity:.35}}
@keyframes heater-water{to{stroke-dashoffset:-410}}
@keyframes heater-gauge{to{transform:rotate(16deg)}}
.stage-connector{position:relative;display:flex;justify-content:space-between;align-items:center;width:200px;height:12px;margin-top:24px;isolation:isolate}
.stage-connector:before,.stage-connector>span{content:'';position:absolute;left:0;right:0;top:5px;height:1px;background:#294363;z-index:-1}
.stage-connector>span{background:linear-gradient(90deg,#08c7f7,#2d6bff,#7a3cff);transform:scaleX(calc((var(--story-progress,.333) - .333)*1.5));transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.stage-connector>i{width:8px;height:8px;border-radius:50%;background:#0b1930;border:1px solid #42618b;transition:background .35s,box-shadow .35s}
.stage-connector>i:nth-of-type(1),.experience-stage[data-phase="1"] .stage-connector>i:nth-of-type(2),.experience-stage[data-phase="2"] .stage-connector>i{background:#82adff;box-shadow:0 0 16px #2d6bff66}
.story-controls{margin-top:16px}
.request-card>.card-line{transition:opacity .4s,background .4s,box-shadow .4s,transform .4s}
.experience-stage[data-phase="0"] .request-card .card-line{transform:translateY(4px)}
.experience-stage[data-phase="1"] .request-card .card-line,.experience-stage[data-phase="2"] .request-card .card-line{transform:translateY(0)}
body.motion-off .room-light{display:none}body.motion-off .r5-diagram{animation:none}body.motion-off .stage-connector>i{box-shadow:none}
@media(max-width:760px){.room-light{width:150%;margin-left:-25%}.integrated-pipe{height:300px;min-height:300px}.service-diagrams{height:220px;max-width:330px;margin-inline:auto}.integrated-pipe .art-label{padding-inline:4px}.integrated-pipe .art-label p{font-size:19px}.integrated-pipe .pipe-live-label{right:5px}.stage-connector{width:185px;margin-top:21px}}
@media(prefers-reduced-motion:reduce){.room-light{display:none}.r5-diagram,.r5-diagram *{animation:none!important}.stage-connector>span,.request-card>.card-line{transition:none}.stage-connector>i{box-shadow:none}}
