html:has(.scene-body),body.scene-body{height:100%;overflow:hidden;overscroll-behavior:none}.scene-body{height:100dvh;display:flex;flex-direction:column;background:#23190f;color:#f6e6c9}.scene-body .river-header{flex:none;height:124px;padding:4px 6%;grid-template-columns:1fr 210px 1fr}.scene-body .river-brand img{width:155px}.scene-body .river-nav a{font-size:15px}.store-room{min-height:0;flex:1;display:flex;flex-direction:column}.scene-tools{display:flex;align-items:center;justify-content:center;gap:24px;flex:none;min-height:58px;padding:5px 3%;background:#322315;border-bottom:1px solid #735337}.scene-tools h1{font:23px Georgia;margin:0}.scene-tools>span{font:italic 13px Georgia;color:#dac4a0}.scene-tools button,.scene-tools>a{min-height:44px;display:inline-flex;align-items:center;padding:8px 15px;font:13px Georgia;color:#f8e7c7;border:1px solid #ac8755;background:#5d4026;text-decoration:none}.scene-stage{flex:1;position:relative;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#22180f url('/assets/general-store.png') center/cover}.scene-stage:before{content:"";position:absolute;inset:0;background:#1b110bc9;backdrop-filter:blur(12px)}.room-canvas{position:relative;flex:none;width:min(100%,calc((100dvh - 182px)*1.7768));aspect-ratio:1672/941;isolation:isolate}.room-art{position:absolute;inset:0;width:100%;height:100%;z-index:-1}.placed-soap{position:absolute;background:none!important;border:0;padding:0;min-width:44px;min-height:44px;transition:filter .2s,opacity .2s;filter:drop-shadow(2px 6px 3px #100804c0);cursor:pointer}.placed-soap:focus-visible{outline:3px solid #ffe2a1;outline-offset:5px}.placed-soap:hover{filter:drop-shadow(0 0 8px #ffd885)}.soap-silhouette{display:block;position:relative;width:100%;height:100%;overflow:hidden}.soap-silhouette img{position:absolute;width:100%;height:100%;object-fit:fill;display:block}.soap-tag{position:absolute;bottom:-14px;left:50%;transform:translateX(-50%);font:10px/1.2 Georgia;color:#fff1d3;white-space:nowrap;text-shadow:0 1px 4px #000;opacity:0;background:#382414e8;padding:5px 8px;border:1px solid #b78b55}.placed-soap:hover .soap-tag,.placed-soap:focus-visible .soap-tag{opacity:1}.placed-soap.dimmed{opacity:.25}.placed-soap.dimmed:hover,.placed-soap.dimmed:focus-visible{opacity:1}.slot-0{left:35.3%;top:22%;width:11%;height:18%;transform:rotate(-4deg)}.slot-1{left:47.3%;top:22%;width:11.2%;height:18%}.slot-2{left:59.7%;top:23%;width:11%;height:17%;transform:rotate(3deg)}.slot-3{left:35%;top:42%;width:10%;height:17%;transform:rotate(-3deg)}.slot-4{left:48%;top:41%;width:10%;height:18%;transform:rotate(4deg)}.slot-5{left:60%;top:42%;width:11%;height:17%}
/* Original photograph pixels; CSS outlines remove only the surrounding table.
   The full untouched originals are always available in product details. */
.mask-pink{clip-path:polygon(29% 25%,42% 31%,50% 35%,76% 33%,89% 62%,46% 69%,24% 75%,2% 51%);transform:scale(1.6);transform-origin:48% 50%}.mask-coffee{clip-path:polygon(35% 17%,67% 17%,70% 24%,81% 23%,92% 36%,89% 44%,83% 53%,70% 55%,70% 70%,30% 75%,24% 66%,23% 51%,18% 51%,17% 44%,10% 42%,8% 36%,26% 24%,32% 24%);transform:scale(1.5);transform-origin:50% 46%}.mask-green{clip-path:polygon(38% 30%,78% 24%,99% 56%,68% 76%,58% 75%,54% 68%,20% 80%,1% 45%,34% 35%);transform:scale(1.45);transform-origin:50% 51%}.mask-purple{clip-path:polygon(12% 48%,22% 19%,40% 15%,50% 18%,51% 22%,66% 26%,62% 45%,80% 45%,88% 55%,83% 82%,36% 85%,29% 68%,28% 53%);transform:scale(1.35);transform-origin:50% 50%}.mask-stripe{clip-path:polygon(19% 22%,47% 17%,53% 26%,54% 39%,77% 42%,72% 68%,46% 66%,43% 64%,46% 50%,20% 49%,18% 44%);transform:scale(1.8);transform-origin:48% 43%}.mask-autumn{clip-path:polygon(9% 9%,89% 8%,99% 94%,6% 96%);transform:scale(1.04)}
.room-barrel{position:absolute;background:transparent!important;border:0;padding:0;color:#46301a;text-shadow:0 1px #f6dba8;min-height:44px;min-width:44px;display:flex;flex-direction:column;align-items:center;justify-content:center}.room-barrel span{font:bold clamp(11px,1.45vw,22px)/1.05 Georgia;transform:rotate(-2deg)}.room-barrel small{font:clamp(6px,.65vw,11px)/1.3 Georgia;margin-top:6px}.room-barrel:hover,.room-barrel:focus-visible{box-shadow:0 0 25px #ffca5e88;outline:2px solid #e9c282}.barrel-left{left:1.5%;top:64%;width:9%;height:11%}.barrel-right{right:1%;top:64%;width:9%;height:11%}.counter-sign{position:absolute;left:39%;top:73%;width:28%;text-align:center;transform:rotate(-1deg);color:#e7c590;text-shadow:0 2px 5px #251307}.counter-sign strong{font:clamp(12px,1.6vw,25px) Georgia}.counter-sign span{display:block;font:clamp(7px,.7vw,11px) Georgia;margin-top:7px}.room-status{position:absolute;left:0;right:0;bottom:0;display:flex;gap:20px;justify-content:center;align-items:center;background:#1e140cca;padding:3px 12px;min-height:44px}.room-status>span{font:13px Georgia}.room-status button{background:transparent;border:0;text-decoration:underline;color:#f2d5a0;font:12px Georgia;min-height:44px;padding:5px 12px}dialog{color:#493521;background:#f7ecd7;border:2px solid #a8804c;padding:30px;max-width:min(900px,92vw);max-height:86dvh;overflow:auto;box-shadow:0 18px 80px #0008}dialog::backdrop{background:#150f09b0;backdrop-filter:blur(3px)}.dialog-close{display:block;margin:0 0 20px auto;min-height:44px;background:#68482c;font:14px Georgia}.soap-detail{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}.soap-detail>img{width:100%;max-height:58dvh;object-fit:contain}.soap-detail h2{font-size:36px}.soap-detail p{font:16px/1.7 Georgia}.soap-detail .text-link{display:block;margin-top:22px;min-height:44px}#browseDialog{width:720px}#browseDialog h2{font-size:35px}.scene-filters{display:flex;flex-wrap:wrap;gap:8px}.scene-filters button{font:13px Georgia;padding:10px 15px;min-height:44px;background:#e4cfaa;color:#493320;border-color:#a78351}.scene-filters button[aria-pressed=true]{background:#67482d;color:white}#shelfList{display:grid;grid-template-columns:1fr 1fr;gap:12px}.shelf-row{display:flex;align-items:center;gap:15px;text-align:left;background:#ead9b9!important;color:#4c3521;padding:8px;border:1px solid #b69665;font:17px Georgia;min-height:70px}.shelf-row img{width:65px;height:65px;object-fit:cover}.shelf-row:focus-visible{outline:3px solid #315e69}
@media(max-width:760px){.scene-body .river-header{height:110px;padding:3px 4%;grid-template-columns:1fr 135px 1fr}.scene-body .river-brand img{width:135px}.scene-body .river-nav a{font-size:12px}.scene-tools{min-height:62px;gap:8px;padding:5px 3%;flex-wrap:wrap}.scene-tools h1{font-size:16px;margin-right:auto}.scene-tools>span{display:none}.scene-tools button,.scene-tools>a{font-size:12px;padding:8px 9px}.scene-stage{background:#332315}.room-canvas{width:100%;height:100%;aspect-ratio:auto;overflow:hidden}.room-art{object-fit:cover;object-position:51% center}.slot-0{left:11%;top:22%;width:32%;height:18%}.slot-1{left:51%;top:22%;width:32%;height:18%}.slot-2{left:9%;top:42%;width:32%;height:18%}.slot-3{left:51%;top:42%;width:32%;height:18%}.slot-4,.slot-5{display:none}.room-barrel{top:auto;bottom:11%;width:34%;height:12%;min-height:57px;background:repeating-linear-gradient(90deg,#7e542e,#a7753b 16px,#634025 18px)!important;border:3px solid #4d3723;border-radius:18%;box-shadow:inset 0 6px #342b1e,inset 0 -6px #342b1e}.room-barrel span{font:18px/1.05 Georgia;color:#f8e7bd;text-shadow:0 1px 2px #24180b}.room-barrel small{font-size:8px;color:#f4deb5}.barrel-left{left:8%}.barrel-right{right:8%}.counter-sign{left:12%;top:65%;width:76%}.counter-sign strong{font-size:19px}.counter-sign span{font-size:9px}.room-status{gap:5px;justify-content:space-between;padding:3px 4%}.room-status>span{font-size:11px;max-width:70%}.room-status button{font-size:11px;padding:5px}.soap-tag{font-size:10px;opacity:1;bottom:-10px}.soap-detail{grid-template-columns:1fr;gap:18px}.soap-detail>img{max-height:35dvh}.soap-detail h2{font-size:29px}.soap-detail p{font-size:14px}dialog{padding:20px;max-height:88dvh;max-width:94vw}.shelf-row{font-size:14px;gap:8px}.shelf-row img{width:45px;height:55px}#shelfList{gap:8px}.scene-filters{gap:6px}.scene-filters button{padding:10px;font-size:12px}}
@media(max-height:600px) and (min-width:761px){.scene-body .river-header{height:90px}.scene-body .river-brand img{width:115px}.room-canvas{width:min(100%,calc((100dvh - 148px)*1.7768))}}
@media(prefers-reduced-motion:reduce){.placed-soap{transition:none}}
/* Natural3:4 photo aspect and source-coordinate masks retain product proportions. */
.soap-silhouette{overflow:visible}.soap-silhouette img{transform:none}
.slot-0{left:34.5%;top:14%;width:13%;height:30.8%}.slot-1{left:47%;top:14%;width:13%;height:30.8%}.slot-2{left:59.5%;top:15%;width:13%;height:30.8%}.slot-3{left:34%;top:35%;width:10.6%;height:25.1%}.slot-4{left:46%;top:35%;width:13%;height:30.8%}.slot-5{left:59.5%;top:35%;width:13%;height:30.8%}.mask-autumn{clip-path:polygon(29% 65%,39% 62%,54% 62%,61% 66%,65% 90%,61% 94%,31% 94%,28% 90%);transform:scale(2.2);transform-origin:47% 78%}.slot-5 .soap-silhouette{overflow:hidden}.slot-5{top:42%;height:17%;width:11%}.slot-5 img{transform:scale(2.2);transform-origin:47% 78%}.scene-body .river-header{min-height:0}.scene-body .river-brand:before,.scene-body .river-brand:after{display:none}
@media(max-width:760px){.slot-0{left:4%;top:13%;width:40%;height:32%}.slot-1{left:49%;top:13%;width:40%;height:32%}.slot-2{left:4%;top:35%;width:40%;height:32%}.slot-3{left:51%;top:35%;width:36%;height:30%}.slot-4,.slot-5{display:none}.soap-tag{bottom:16%;}.room-canvas .placed-soap{transform:none}}
.scene-body .river-header{--logo-width:165px;height:124px;padding:0 5%;grid-template-columns:1fr var(--logo-width) 1fr}.scene-body .river-brand img{width:var(--logo-width)}.scene-body .river-nav{margin-top:9px}.scene-tools{gap:16px}.scene-tools #sceneReset{font-size:12px}.room-status{pointer-events:none}
@media(max-width:760px){.scene-body .river-header{--logo-width:145px;height:110px;grid-template-columns:1fr var(--logo-width) 1fr;padding:0 3%}.scene-body .river-brand img{width:var(--logo-width)}.scene-body .river-nav{margin-top:4px}.scene-tools{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;min-height:84px}.scene-tools h1{grid-column:1/-1;text-align:center;margin:0;font-size:16px}.scene-tools button,.scene-tools>a{justify-content:center;padding:7px 4px;font-size:11px;min-height:44px}.scene-tools>span{display:none}.room-status{justify-content:center}.room-status>span{max-width:100%;text-align:center}}
/* QA-measured shelf planes:38.25% and57.65% of the registered scene.
   Scale around each ORIGINAL visible base, not the photo rectangle center. */
.slot-0{top:15.15%;transform:scale(.72);transform-origin:50% 75%}.slot-1{top:15.15%;transform:scale(.72);transform-origin:50% 75%}.slot-2{top:13.61%;transform:scale(.72);transform-origin:50% 80%}.slot-3{top:36.315%;transform:scale(.78);transform-origin:50% 85%}.slot-4{top:36.706%;transform:scale(.78);transform-origin:50% 68%}
/* Full photographed front Pumpkin Pie bar, including its base and label.
   Map source x28–65%,y62–94% to target without stretching or clipping base. */
.slot-5{left:62%;top:43.65%;width:6.8%;height:14%;transform:none}.slot-5 .soap-silhouette{overflow:visible}.slot-5 img{left:-75.6%;top:-193.75%;width:270%;height:312.5%;transform:none;clip-path:polygon(29% 65%,39% 62%,54% 62%,61% 66%,65% 90%,61% 94%,31% 94%,28% 90%)}
@media(max-width:760px){.slot-0{left:4%;top:13%;width:40%;height:32%;transform:scale(.74)!important;transform-origin:50% 75%}.slot-1{left:49%;top:13%;width:40%;height:32%;transform:scale(.74)!important;transform-origin:50% 75%}.slot-2{left:4%;top:33%;width:40%;height:32%;transform:scale(.74)!important;transform-origin:50% 80%}.slot-3{left:51%;top:33%;width:36%;height:30%;transform:scale(.8)!important;transform-origin:50% 85%}.room-barrel{bottom:8%;height:26%;min-height:110px;width:25%;padding:0;border:0;border-radius:0;box-shadow:none;background-image:url('/assets/general-store.png')!important;background-repeat:no-repeat!important;clip-path:polygon(8% 0,90% 0,99% 12%,100% 82%,88% 99%,9% 99%,0 82%,0 12%);justify-content:flex-start}.barrel-left{left:3%;background-size:769.23% 277.78%!important;background-position:0% 81.25%!important}.barrel-right{right:3%;background-size:909.09% 277.78%!important;background-position:100% 81.25%!important}.room-barrel span{margin-top:47%;font:16px/1.05 Georgia;color:#493018;text-shadow:0 1px #f4d29a}.room-barrel small{font:7px/1.2 Georgia;color:#493018;margin-top:4px;max-width:80%}.counter-sign{left:30%;top:71%;width:40%}.counter-sign strong{font-size:16px}.counter-sign span{font-size:8px;line-height:1.4}.soap-tag{font-size:11px}}
/* Owner390px QA: stage650px, visible bases need+16,+13,+5,+8px.
   Shift only photo pixels inside scaled boxes; nameplates stay independent.
   Offsets normalized by each box height and its0.74/0.8scale. */
@media(max-width:760px){.slot-0 .soap-silhouette img{top:10.4%}.slot-1 .soap-silhouette img{top:8.45%}.slot-2 .soap-silhouette img{top:3.25%}.slot-3 .soap-silhouette img{top:5.13%}.room-barrel span{position:absolute;top:38%;left:9%;width:82%;margin:0;padding:5px 3px;background:#f4e2bd;color:#422c17;border:1px solid #b59460;text-shadow:none;font:600 13px/1.15 Georgia;box-shadow:0 1px 3px #33200b55}.room-barrel small{display:none}}
/* Phone nameplates follow the visible source base plus a6px rendered gap,
   not the outer image box. Keeps lettering off original packaging labels. */
@media(max-width:760px){.placed-soap .soap-tag{bottom:auto}.slot-0 .soap-tag{top:calc(85.4% + 8px)}.slot-1 .soap-tag{top:calc(83.45% + 8px)}.slot-2 .soap-tag{top:calc(83.25% + 8px)}.slot-3 .soap-tag{top:calc(90.13% + 8px)}}
