
        .bay-room{
            --olive:#68704d;--pale:#f1f3e9;--ink:#20211d;--muted:#696b64;--line:#dedfd8;
            display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);
            gap:42px;align-items:start;color:var(--ink);
        }
        .bay-room *{box-sizing:border-box}
        .bay-room .bay-room__stage{min-width:0}
        .bay-room .bay-room__wall{
            position:relative;overflow:hidden;aspect-ratio:1.38/1;background:#e8e4dc;
            border:1px solid #e0ddd5;
        }
        .bay-room .bay-room__art-wrap{
            position:absolute;left:50%;top:11%;width:28%;transform:translateX(-50%);
            transition:width .25s ease;
        }
        .bay-room .bay-room__scale-note{font-size:12px;color:var(--muted);margin-top:8px}
        .bay-room .bay-room__controls{padding:8px 0}
        .bay-room .bay-room__eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700;color:var(--olive)}
        .bay-room h3{font-size:32px;line-height:1.05;margin:8px 0 12px;font-weight:500}
        .bay-room .bay-room__intro{color:var(--muted);line-height:1.55;margin:0 0 26px}
        .bay-room fieldset{border:0;padding:0;margin:0 0 22px}
        .bay-room legend,.bay-room .bay-room__label{display:block;font-weight:650;font-size:14px;margin-bottom:9px}
        .bay-room .bay-room__buttons{display:flex;flex-wrap:wrap;gap:8px}
        .bay-room .bay-room__buttons button{
            min-height:42px;padding:8px 13px;border:1px solid #cfd0c8;background:#fff;color:inherit;cursor:pointer;font:inherit;font-size:13px;
        }
        .bay-room .bay-room__buttons button.is-selected{background:var(--pale);border-color:var(--olive);box-shadow:inset 0 0 0 1px var(--olive)}
        .bay-room .bay-room__buttons button:disabled{opacity:.45;cursor:not-allowed}
        .bay-room .bay-room__frame-controls{margin-top:-2px}
        .bay-room .bay-room__swatches{display:flex;gap:9px;flex-wrap:wrap}
        .bay-room .bay-room__swatches button{
            width:38px;height:38px;padding:4px;border:1px solid #d0d0ca;background:#fff;cursor:pointer;border-radius:50%;
        }
        .bay-room .bay-room__swatches button.is-selected{outline:2px solid var(--olive);outline-offset:2px}
        .bay-room .bay-room__swatches span{display:block;width:100%;height:100%;border-radius:50%;background:#171717}
        .bay-room [data-frame="white"] span{background:#f4f2ea;border:1px solid #ddd}
        .bay-room [data-frame="darkwood"] span{background:#49382d}
        .bay-room [data-frame="lightwood"] span{background:#b99870}
        .bay-room [data-frame="gold"] span{background:#a88943}
        .bay-room [data-frame="silver"] span{background:#a9abad}
        .bay-room .bay-room__footnote{margin-top:26px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;line-height:1.5;color:var(--muted)}
        @media(max-width:850px){
            .bay-room{grid-template-columns:1fr;gap:24px}
            .bay-room .bay-room__controls{padding:0}
        }
        @media(max-width:520px){
            .bay-room h3{font-size:27px}
            .bay-room .bay-room__buttons button{flex:1 1 calc(50% - 8px)}
        }

.bay-room [hidden]{display:none!important}
.bay-room{scroll-margin-top:100px}
.bay-room .bay-room__art-wrap{left:50%;top:30%;transform:translate(-50%,-50%);transition:none}
.bay-room .bay-room__art{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 7px rgba(0,0,0,.18))}
.bay-room .bay-room__buttons small{display:block;margin-top:4px;font-size:12px;font-weight:400}
.bay-room .bay-room__swatches button{width:auto;height:auto;min-width:66px;border-radius:4px;padding:7px;color:var(--ink);font:inherit;font-size:12px}
.bay-room .bay-room__swatches span{width:25px;height:25px;margin:0 auto 5px}
.bay-room .bay-room__swatches button:disabled{opacity:.4;cursor:not-allowed}
.bay-room .bay-room__summary{margin:20px 0 12px;line-height:1.6;font-size:14px}
.bay-room .bay-room__apply{width:100%;padding:13px;border:1px solid #b0b83b;background:white;color:var(--ink);font:inherit;cursor:pointer}
.bay-room .bay-room__apply:disabled{opacity:.5;cursor:not-allowed}
.bay-room button:focus-visible{outline:2px solid var(--olive);outline-offset:3px}
.bay-room .bay-room__status{font-size:13px;color:var(--muted);line-height:1.5}
.bay-room .bay-room__intro{margin-bottom:20px}
.bay-room fieldset{margin-bottom:18px}
@media(prefers-reduced-motion:reduce){.bay-room .bay-room__art-wrap{transition:none}}

/* All room SVGs share a 1380 x 1000 viewBox. Ceiling y=50; floor y=850. */
.bay-room .bay-room__wall{border:0;aspect-ratio:1.38/1;background-size:100% 100%;background-repeat:no-repeat}
.bay-room .bay-room__art-wrap{top:35%}
.bay-room .bay-room__room-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.bay-room .bay-room__room-buttons button{padding:8px 5px}
.bay-room .bay-room__wall[data-scene="living-room"]{background-image:url("rooms-v0.5.8/living-room.png?v=0.5.8");--bay-room-light-image:url("rooms-v0.5.8/living-room.png?v=0.5.8")}
.bay-room .bay-room__wall[data-scene="kitchen"]{background-image:url("rooms-v0.5.8/kitchen.png?v=0.5.8");--bay-room-light-image:url("rooms-v0.5.8/kitchen.png?v=0.5.8")}
.bay-room .bay-room__wall[data-scene="hallway"]{background-image:url("rooms-v0.5.8/hallway.png?v=0.5.8");--bay-room-light-image:url("rooms-v0.5.8/hallway.png?v=0.5.8")}
.bay-room .bay-room__wall[data-scene="bedroom"]{background-image:url("rooms-v0.5.8/bedroom.png?v=0.5.8");--bay-room-light-image:url("rooms-v0.5.8/bedroom.png?v=0.5.8")}
.bay-room .bay-room__wall[data-scene="bathroom"]{background-image:url("rooms-v0.5.8/bathroom.png?v=0.5.8");--bay-room-light-image:url("rooms-v0.5.8/bathroom.png?v=0.5.8")}
.bay-room .bay-room__wall[data-scene="study"]{background-image:url("rooms-v0.5.8/study.png?v=0.5.8");--bay-room-light-image:url("rooms-v0.5.8/study.png?v=0.5.8")}

/* Room coordinates and artwork positions are owned by the calibration data. */
.bay-room{font-family:"IBM Plex Serif",serif;font-weight:500}
.bay-room h3{font-family:"Spectral",serif!important;font-weight:400!important}
.bay-room .bay-room__wall{border-radius:3px}
.bay-room .bay-room__art-wrap{transition:none}

/* Equal-width controls fill the panel, including single-size products. */
.bay-room .bay-room__size-buttons{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);width:100%}
.bay-room .bay-room__finish-buttons,.bay-room .bay-room__swatches{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:8px}
.bay-room .bay-room__buttons button,.bay-room .bay-room__swatches button{width:100%;min-width:0;white-space:normal;overflow-wrap:break-word}
.bay-room .bay-room__finish-buttons button{padding:8px 5px}

/* 0.5.4: photographic room lighting, clipped to the finished variation render.
   Unsupported masks simply retain the unlit artwork. No source images are altered. */
.bay-room .bay-room__art-wrap{isolation:isolate}
.bay-room .bay-room__art-light{display:none}
@supports ((mask-image:linear-gradient(#000,#000)) or (-webkit-mask-image:linear-gradient(#000,#000))){
 .bay-room .bay-room__art-light{
  display:block;position:absolute;inset:0;pointer-events:none;
  background-image:var(--bay-room-light-image);background-repeat:no-repeat;
  mix-blend-mode:multiply;opacity:.4;
  mask-mode:alpha;mask-size:contain;mask-position:center;mask-repeat:no-repeat;
  -webkit-mask-size:contain;-webkit-mask-position:center;-webkit-mask-repeat:no-repeat;
 }
}


/* 0.5.5: softly reflected windows on framed glazing only.
   A partial reflection patch stays conservatively inside the mount and never
   changes the variation image, physical scale or existing photographic light. */
.bay-room .bay-room__glazing{display:none}
@supports ((mask-image:linear-gradient(#000,#000)) or (-webkit-mask-image:linear-gradient(#000,#000))){
 .bay-room .bay-room__glazing{
  display:block;position:absolute;pointer-events:none;overflow:hidden;opacity:.2;
  background-repeat:no-repeat;
  background-image:var(--bay-room-glass-reflection);
  mask-image:radial-gradient(ellipse at center,#000 55%,transparent 100%);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 55%,transparent 100%);
  mask-size:100% 100%;-webkit-mask-size:100% 100%;
 }
}
.bay-room .bay-room__wall[data-scene="living-room"]{--bay-room-glass-reflection:linear-gradient(103deg,transparent 43.7%,rgba(255,255,255,.85) 44.4%,rgba(255,255,255,.85) 47%,rgba(255,255,255,.18) 47.4%,rgba(255,255,255,.18) 47.8%,rgba(255,255,255,.85) 48.2%,rgba(255,255,255,.85) 50.7%,transparent 51.5%)}
.bay-room .bay-room__wall[data-scene="kitchen"]{--bay-room-glass-reflection:linear-gradient(78deg,transparent 50%,rgba(255,255,255,.9) 50.6%,rgba(255,255,255,.9) 53.1%,rgba(255,255,255,.15) 53.5%,rgba(255,255,255,.15) 53.9%,rgba(255,255,255,.9) 54.3%,rgba(255,255,255,.9) 57%,transparent 57.8%)}
.bay-room .bay-room__wall[data-scene="hallway"]{--bay-room-glass-reflection:linear-gradient(97deg,transparent 44.7%,rgba(255,255,255,.65) 45.4%,rgba(255,255,255,.65) 47.6%,rgba(255,255,255,.12) 48%,rgba(255,255,255,.12) 48.4%,rgba(255,255,255,.65) 48.8%,rgba(255,255,255,.65) 51%,transparent 51.8%)}
.bay-room .bay-room__wall[data-scene="bedroom"]{--bay-room-glass-reflection:linear-gradient(105deg,transparent 46%,rgba(255,255,255,.75) 46.7%,rgba(255,255,255,.75) 49.1%,rgba(255,255,255,.14) 49.5%,rgba(255,255,255,.14) 49.9%,rgba(255,255,255,.75) 50.3%,rgba(255,255,255,.75) 52.8%,transparent 53.6%)}
.bay-room .bay-room__wall[data-scene="bathroom"]{--bay-room-glass-reflection:linear-gradient(82deg,transparent 60.7%,rgba(255,255,255,.8) 61.3%,rgba(255,255,255,.8) 63.8%,rgba(255,255,255,.15) 64.2%,rgba(255,255,255,.15) 64.6%,rgba(255,255,255,.8) 65%,rgba(255,255,255,.8) 67.5%,transparent 68.3%)}
.bay-room .bay-room__wall[data-scene="study"]{--bay-room-glass-reflection:linear-gradient(100deg,transparent 43%,rgba(255,255,255,.7) 43.7%,rgba(255,255,255,.7) 46.1%,rgba(255,255,255,.13) 46.5%,rgba(255,255,255,.13) 46.9%,rgba(255,255,255,.7) 47.3%,rgba(255,255,255,.7) 49.8%,transparent 50.6%)}


/* 0.5.6: a closer view of the complete calibrated room.
   Room, artwork, photographic light and glazing share one uniform transform. */
.bay-room .bay-room__viewport{position:relative;overflow:hidden;aspect-ratio:1.38/1;border-radius:3px}
.bay-room .bay-room__viewport > .bay-room__wall{width:100%;height:100%;transform-origin:0 0}


/* 0.5.7: fill the left panel with a taller view of the undistorted room.
   The note stays outside the image; its margins cannot collapse in the stage. */
.bay-room .bay-room__stage{display:flex;flex-direction:column}
.bay-room .bay-room__viewport{flex:0 0 auto;height:420px;min-height:0;aspect-ratio:auto}
.bay-room .bay-room__viewport > .bay-room__wall{position:absolute;left:0;top:0;height:auto;transform-origin:0 0}

/* Review-only room reflection adjustments, if needed. */
.bay-room .bay-room__wall[data-scene="bathroom"]{--bay-room-glass-reflection:linear-gradient(82deg,transparent 49.4%,rgba(255,255,255,.65) 50.1%,rgba(255,255,255,.65) 52.2%,rgba(255,255,255,.12) 52.6%,rgba(255,255,255,.12) 53%,rgba(255,255,255,.65) 53.4%,rgba(255,255,255,.65) 55.6%,transparent 56.4%)}
