/* RoomHUD: a thin outlined overlay on a full-bleed room. Nothing here competes with the floor. */
.rh{position:relative;width:100%;height:100%;min-height:420px;background:#0f0c0a;overflow:hidden;font-family:"Instrument Sans",system-ui,sans-serif;color:#fff;--rh-line:rgba(255,255,255,.28);--rh-bg:rgba(15,12,10,.42);--rh-accent:#f2c98a}
.rh-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;touch-action:pan-y}
.rh-stage canvas{display:block;max-width:100%;max-height:100%;border-radius:0}
.rh-hud{position:absolute;inset:0;pointer-events:none;transition:opacity .25s ease}
.rh-hud.off{opacity:0;pointer-events:none}
.rh-hud > *{pointer-events:auto}
.rh-chip{position:absolute;left:16px;top:16px;background:var(--rh-bg);border:1px solid var(--rh-line);border-radius:14px;padding:.7rem .9rem .7rem 1rem;backdrop-filter:blur(10px);min-width:220px;max-width:min(360px,70vw)}
.rh-chip-k{display:block;font:500 .6rem/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--rh-accent);margin-bottom:.35rem}
.rh-chip b{display:block;font-size:1.15rem;letter-spacing:-.01em;line-height:1.15}
.rh-chip small{display:block;color:rgba(255,255,255,.75);font-size:.8rem;margin-top:.15rem}
.rh-fav{margin-top:.55rem;display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--rh-line);background:transparent;color:#fff;border-radius:999px;padding:.32rem .7rem .32rem .5rem;font:600 .78rem "Instrument Sans",system-ui,sans-serif;cursor:pointer}
.rh-fav svg{width:16px;height:16px}.rh-fav.on{border-color:var(--rh-accent);color:var(--rh-accent)}
.rh-tr{position:absolute;right:16px;top:16px;display:flex;gap:.5rem;align-items:center}
.rh-ic{width:42px;height:42px;border-radius:50%;border:1px solid var(--rh-line);background:var(--rh-bg);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;backdrop-filter:blur(10px);padding:0}
.rh-ic svg{width:20px;height:20px}.rh-ic.s{width:28px;height:28px;border:0;background:transparent}.rh-ic.s svg{width:18px;height:18px}
.rh-ic:hover{border-color:#fff}
.rh-ar model-viewer{height:42px;width:auto}.rh-ar .ar-try{margin:0}
.rh-regions{position:absolute;left:16px;top:calc(16px + 118px);display:flex;gap:.35rem;align-items:center;flex-wrap:wrap;max-width:70vw}
.rh-reg-lbl{font:500 .6rem/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-right:.2rem}
.rh-regions button{border:1px solid var(--rh-line);background:var(--rh-bg);color:rgba(255,255,255,.7);border-radius:999px;padding:.3rem .65rem;font:600 .74rem "Instrument Sans",system-ui,sans-serif;cursor:pointer;backdrop-filter:blur(10px);text-decoration:line-through}
.rh-regions button.on{color:#fff;border-color:var(--rh-accent);text-decoration:none}
.rh-bottom{position:absolute;left:0;right:0;bottom:0;padding:0 16px 14px;display:grid;grid-template-columns:minmax(0,1fr);gap:.6rem;background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,0))}
.rh-light{display:flex;align-items:center;gap:.6rem;width:min(520px,100%);justify-self:center;min-width:0}
.rh-light input{flex:1;min-width:0;width:100%;appearance:none;height:2px;background:var(--rh-line);border-radius:2px;outline:none}
.rh-light input::-webkit-slider-thumb{appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--rh-accent);cursor:pointer}
.rh-light input::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--rh-accent);cursor:pointer}
.rh-light-lbl{font:500 .66rem/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;min-width:92px;text-align:right;color:rgba(255,255,255,.85)}
.rh-strip{display:flex;align-items:center;gap:.5rem;min-width:0;max-width:100%;overflow:hidden}
.rh-rail{flex:1;min-width:0;display:flex;gap:.45rem;overflow-x:auto;scrollbar-width:none;padding:.2rem 0;scroll-snap-type:x proximity}
.rh-rail::-webkit-scrollbar{display:none}
.rh-rail button{flex:none;display:flex;flex-direction:column;align-items:center;gap:.3rem;width:74px;border:1px solid transparent;background:transparent;color:rgba(255,255,255,.85);border-radius:12px;padding:.35rem .25rem;font:600 .66rem/1.2 "Instrument Sans",system-ui,sans-serif;cursor:pointer;scroll-snap-align:center}
.rh-rail button img,.rh-rail .rh-sw{width:52px;height:52px;border-radius:10px;object-fit:cover;border:2px solid rgba(255,255,255,.35);background:#5a4634}
.rh-rail button span{max-width:74px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-rail button.on{border-color:var(--rh-accent);background:rgba(255,255,255,.06)}.rh-rail button.on img{border-color:var(--rh-accent)}
.rh-tools{display:flex;justify-content:center;align-items:center;gap:.6rem;min-width:0;flex-wrap:wrap}
.rh-seg{display:inline-flex;border:1px solid var(--rh-line);border-radius:999px;background:var(--rh-bg);backdrop-filter:blur(10px);overflow:hidden}
.rh-seg button{border:0;background:transparent;color:rgba(255,255,255,.75);padding:.4rem .75rem;font:600 .74rem "Instrument Sans",system-ui,sans-serif;cursor:pointer;text-transform:capitalize}
.rh-seg button.on{background:#fff;color:#1a1410}
.rh-show{position:absolute;right:16px;top:16px;display:none;align-items:center;gap:.4rem;border:1px solid var(--rh-line);background:var(--rh-bg);color:#fff;border-radius:999px;padding:.45rem .8rem .45rem .6rem;font:600 .78rem "Instrument Sans",system-ui,sans-serif;cursor:pointer;backdrop-filter:blur(10px);opacity:.75}
.rh-show.on{display:inline-flex}.rh-show svg{width:18px;height:18px}
.rh-toast{position:absolute;left:50%;bottom:150px;transform:translate(-50%,8px);background:rgba(255,255,255,.94);color:#1a1410;border-radius:999px;padding:.5rem .95rem;font-size:.86rem;font-weight:600;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}
.rh-toast.on{opacity:1;transform:translate(-50%,0)}
.rh-toast.act{pointer-events:auto;display:flex;align-items:center;gap:.7rem;padding-right:.4rem}
.rh-toast .rh-act{border:0;border-radius:999px;background:#1a1410;color:#fff;font:inherit;font-weight:700;padding:.4rem .85rem;cursor:pointer;animation:rh-pulse 1.6s ease-in-out infinite}
@keyframes rh-pulse{0%,100%{box-shadow:0 0 0 0 rgba(26,20,16,.35)}50%{box-shadow:0 0 0 7px rgba(26,20,16,0)}}
/* the compare view: live on the left, photoreal on the right */
.rh-cmp{position:absolute;inset:0;z-index:6;background:#0f0c0a;display:flex;flex-direction:column;opacity:0;transition:opacity .35s}
.rh-cmp.on{opacity:1}
.rh-cmp-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:ew-resize;touch-action:none;user-select:none}
.rh-cmp-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.rh-cmp-stage .b{position:absolute;inset:0 auto 0 0;width:50%;overflow:hidden}
.rh-cmp-stage .b img{position:absolute;left:0;top:0;max-width:none;object-fit:contain}
.rh-cmp-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.3);transform:translateX(-1px)}
.rh-cmp-handle::after{content:"";position:absolute;top:50%;left:50%;width:38px;height:38px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 2px 14px rgba(0,0,0,.4);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1410' stroke-width='2'><path d='M9 6l-5 6 5 6M15 6l5 6-5 6'/></svg>");background-size:22px;background-repeat:no-repeat;background-position:center}
.rh-cmp-lbl{position:absolute;top:14px;font:600 .72rem/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(0,0,0,.45);padding:.35rem .6rem;border-radius:6px;pointer-events:none}
.rh-cmp-lbl.l{left:14px}.rh-cmp-lbl.r{right:14px}
.rh-cmp-bar{display:flex;align-items:center;gap:.8rem;padding:.7rem 16px;color:#fff;font-family:"Instrument Sans",system-ui,sans-serif;background:#0f0c0a;border-top:1px solid rgba(255,255,255,.12)}
.rh-cmp-bar b{font-size:1rem}.rh-cmp-bar span{opacity:.7;font-size:.85rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rh-cmp-bar button{display:inline-flex;align-items:center;gap:.35rem;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;border-radius:999px;padding:.45rem .9rem;font:inherit;font-size:.85rem;font-weight:600;cursor:pointer}
.rh-cmp-bar button svg{width:16px;height:16px}.rh-cmp-bar .rh-cmp-close{background:#fff;color:#1a1410;border-color:#fff}
@media(max-width:640px){.rh-cmp-bar span{display:none}.rh-cmp-bar{padding:.55rem 10px;gap:.5rem}}
.rh-fail{color:#fff;padding:2rem;text-align:center}
@media(max-width:640px){.rh-chip{min-width:0;max-width:62vw;padding:.55rem .7rem}.rh-chip b{font-size:1rem}.rh-regions{top:calc(16px + 104px)}.rh-rail button{width:62px}.rh-rail button img,.rh-rail .rh-sw{width:44px;height:44px}.rh-seg button{padding:.35rem .55rem;font-size:.68rem}}
/* ---- v1.51.0 My room: before, download, saved, photoreal, info --------------------------------- */
.rh-before{position:absolute;display:block;object-fit:contain;max-width:100%;max-height:100%;opacity:0;pointer-events:none;transition:opacity .12s}
.rh.rh-peek .rh-before{opacity:1}.rh.rh-peek .rh-stage canvas{visibility:hidden}
.rh.rh-peek .rh-chip::after{content:'Before';position:absolute;right:-.2rem;top:-.2rem;transform:translate(100%,0);font:600 .62rem/1 "IBM Plex Mono",ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;background:#f2c98a;color:#1a1410;padding:.35rem .5rem;border-radius:6px;margin-left:.5rem}
.rh-tr{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 32px)}
.rh-ic.rh-lbl{width:auto;border-radius:999px;padding:0 .85rem 0 .6rem;gap:.4rem;font:600 .78rem "Instrument Sans",system-ui,sans-serif}
.rh-ic.rh-lbl span{white-space:nowrap}
.rh-ic.rh-saved{position:relative}.rh-ic.rh-saved.has{border-color:var(--rh-accent);color:var(--rh-accent)}
.rh-n{position:absolute;right:-4px;top:-4px;min-width:18px;height:18px;border-radius:9px;background:var(--rh-accent);color:#1a1410;font:700 .62rem/18px "Instrument Sans",system-ui,sans-serif;text-align:center;padding:0 4px;font-style:normal}
.rh-n:empty{display:none}
.rh-chip-acts{display:flex;align-items:center;gap:.5rem;margin-top:.55rem;flex-wrap:wrap}
.rh-chip-acts .rh-fav{margin-top:0}
.rh-price{color:var(--rh-accent) !important;font-weight:600}
.rh-page{font:600 .76rem "Instrument Sans",system-ui,sans-serif;color:rgba(255,255,255,.8);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.rh-page:hover{color:#fff;border-color:#fff}
.rh-menu{position:absolute;right:16px;top:66px;z-index:7;display:none;flex-direction:column;gap:.15rem;background:rgba(15,12,10,.92);border:1px solid var(--rh-line);border-radius:14px;padding:.4rem;backdrop-filter:blur(14px);min-width:240px}
.rh-menu.on{display:flex}
.rh-menu button{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;border:0;background:transparent;color:#fff;text-align:left;padding:.55rem .7rem;border-radius:9px;cursor:pointer;font:inherit}
.rh-menu button:hover{background:rgba(255,255,255,.08)}
.rh-menu b{font-size:.9rem}.rh-menu span{font-size:.74rem;color:rgba(255,255,255,.62)}
.rh-drawer{position:absolute;top:0;right:0;bottom:0;width:min(380px,92vw);z-index:8;background:rgba(15,12,10,.94);border-left:1px solid var(--rh-line);backdrop-filter:blur(16px);transform:translateX(102%);transition:transform .28s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;color:#fff;font-family:"Instrument Sans",system-ui,sans-serif}
.rh-drawer.on{transform:none}
.rh-dr-h{display:flex;align-items:center;gap:.6rem;padding:1rem 1rem .7rem;border-bottom:1px solid rgba(255,255,255,.12)}
.rh-dr-h b{font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:1.15rem}.rh-dr-h span{flex:1;color:rgba(255,255,255,.55);font-size:.8rem}
.rh-dr-h .rh-ic.s{color:#fff}.rh-dr-h .rh-ic.s svg{width:20px;height:20px}
.rh-dr-empty{padding:1rem;color:rgba(255,255,255,.65);font-size:.92rem;line-height:1.5;margin:0}
.rh-dr-list{flex:1;overflow-y:auto;padding:.5rem .6rem}
.rh-dr-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:.7rem;align-items:center;padding:.5rem .4rem;border-radius:12px}
.rh-dr-row:hover{background:rgba(255,255,255,.05)}
.rh-dr-row img,.rh-dr-row .rh-sw{width:52px;height:52px;border-radius:10px;object-fit:cover;border:1px solid rgba(255,255,255,.2);background:#5a4634;display:block}
.rh-dr-t{min-width:0}.rh-dr-t b{display:block;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rh-dr-t small{display:block;color:rgba(255,255,255,.6);font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-dr-a{display:flex;align-items:center;gap:.3rem}
.rh-dr-a button,.rh-dr-a a{border:1px solid var(--rh-line);background:transparent;color:#fff;border-radius:999px;padding:.32rem .6rem;font:600 .72rem "Instrument Sans",system-ui,sans-serif;cursor:pointer;text-decoration:none}
.rh-dr-a .rh-dr-show{background:#fff;color:#1a1410;border-color:#fff}
.rh-dr-a .rh-dr-x{border:0;padding:.2rem;color:rgba(255,255,255,.5)}.rh-dr-a .rh-dr-x svg{width:14px;height:14px}.rh-dr-a .rh-dr-x:hover{color:#fff}
.rh-keep{padding:.9rem 1rem 1.1rem;border-top:1px solid rgba(255,255,255,.12)}
.rh-keep div{display:flex;gap:.4rem;margin-top:.4rem}
.rh-keep input{flex:1;min-width:0;border:1px solid var(--rh-line);background:rgba(255,255,255,.06);color:#fff;border-radius:999px;padding:.5rem .8rem;font:inherit;font-size:.88rem}
.rh-keep input:focus{outline:none;border-color:var(--rh-accent)}
.rh-keep button{border:0;background:var(--rh-accent);color:#1a1410;border-radius:999px;padding:.5rem .85rem;font:700 .82rem "Instrument Sans",system-ui,sans-serif;cursor:pointer;white-space:nowrap}
.rh-keep small{display:block;margin-top:.5rem;color:rgba(255,255,255,.55);font-size:.74rem;line-height:1.4}
.rh-cmp-bar .rh-cmp-dl svg{width:16px;height:16px}
@media(max-width:640px){.rh-ic.rh-lbl span{display:none}.rh-ic.rh-lbl{width:38px;padding:0;border-radius:50%}.rh-ic{width:38px;height:38px}.rh-tr{gap:.35rem}.rh-menu{top:60px}}

/* the rendering pill: stays until the render lands or is dismissed */
.rh-pill{position:absolute;left:50%;bottom:150px;transform:translate(-50%,8px);display:none;align-items:center;gap:.6rem;background:rgba(15,12,10,.9);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.5rem .6rem .5rem .9rem;font:500 .84rem "Instrument Sans",system-ui,sans-serif;backdrop-filter:blur(10px);z-index:7;max-width:min(560px,92%)}
.rh-pill.on{display:flex;transform:translate(-50%,0)}.rh-pill i{width:9px;height:9px;border-radius:50%;background:var(--rh-accent);flex:none}.rh-pill.busy i{animation:rh-pulse 1.4s ease-in-out infinite}.rh-pill.bad i{background:#ff8a70}
.rh-pill a{color:var(--rh-accent)}.rh-pill-b{border:0;border-radius:999px;background:var(--rh-accent);color:#1a1410;font:700 .8rem "Instrument Sans",system-ui,sans-serif;padding:.4rem .8rem;cursor:pointer}
.rh-pill-x{border:0;background:transparent;color:rgba(255,255,255,.7);font-size:1.1rem;cursor:pointer;padding:0 .2rem}

/* the board size nudge beside the sheen */
.rh-scale{display:inline-flex;align-items:center;border:1px solid var(--rh-line);border-radius:999px;background:var(--rh-bg);backdrop-filter:blur(10px);overflow:hidden}
.rh-scale button{border:0;background:transparent;color:#fff;width:34px;height:34px;font-size:1.1rem;cursor:pointer}.rh-scale button:hover{background:rgba(255,255,255,.1)}
.rh-scale-l{font:600 .68rem "Instrument Sans",system-ui,sans-serif;color:rgba(255,255,255,.8);padding:0 .2rem;white-space:nowrap}

/* v1.57.1 a lighter touch: the chip is a label, not a card; the tools read as one quiet row; thumbnails breathe */
.rh-chip{min-width:0;max-width:min(360px,60vw);padding:.6rem .85rem .65rem .9rem;border-radius:12px}
.rh-chip b{font-size:1.05rem}.rh-chip small{font-size:.76rem}
.rh-rail button{border-radius:12px}.rh-rail button.on{box-shadow:0 0 0 2px #fff,0 0 0 4px rgba(0,0,0,.35)}
.rh-tools{gap:.5rem}.rh-scale{opacity:.8}.rh-scale:hover{opacity:1}
@media(max-width:640px){.rh-chip-k{display:none}.rh-chip{top:10px;left:10px;max-width:56vw;padding:.45rem .6rem}.rh-chip b{font-size:.92rem}.rh-chip small{font-size:.7rem}.rh-tr{top:10px;right:10px}}
/* the photoreal moment */
.rh-real{position:absolute;inset:0;z-index:9;background:rgba(10,8,6,.72);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:14px;opacity:0;transition:opacity .3s}.rh-real.on{opacity:1}
.rh-real-card{position:relative;width:min(760px,100%);max-height:100%;overflow:auto;background:#fbf8f2;color:#1a1410;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.5);font-family:"Instrument Sans",system-ui,sans-serif;transform:translateY(12px);transition:transform .35s cubic-bezier(.2,.8,.2,1)}.rh-real.on .rh-real-card{transform:none}
.rh-real-x{position:absolute;right:10px;top:10px;z-index:2;width:34px;height:34px;border-radius:50%;border:0;background:rgba(26,20,16,.75);color:#fff;font-size:20px;line-height:34px;cursor:pointer}
.rh-real-pic{position:relative;background:#111;aspect-ratio:3/2}.rh-real-pic img{width:100%;height:100%;object-fit:cover;display:block}
.rh-real-tag{position:absolute;left:12px;top:12px;font:500 .62rem/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;background:rgba(246,239,228,.94);color:#1a1410;padding:.35rem .55rem;border-radius:999px}
.rh-real-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,8,6,.35),rgba(10,8,6,.8));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.2rem;gap:.35rem}
.rh-real-card.busy .rh-real-pic img{filter:saturate(.6) brightness(.9)}
.rh-real-veil b{font-size:1.15rem;letter-spacing:-.01em}.rh-real-veil small{opacity:.8;font-size:.82rem;max-width:36ch}.rh-real-step{font:500 .66rem/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:#c9a87c}
.rh-real-bar{width:min(320px,70%);height:4px;border-radius:999px;background:rgba(255,255,255,.2);overflow:hidden;margin-bottom:.6rem}.rh-real-bar i{display:block;height:100%;width:6%;background:#c9a87c;border-radius:999px;transition:width 2.5s linear;animation:rhshim 1.6s ease-in-out infinite}
@keyframes rhshim{0%,100%{opacity:.75}50%{opacity:1}}
.rh-real-foot{padding:.8rem 1rem;display:flex;justify-content:center}.rh-real-min{border:1px solid rgba(26,20,16,.25);background:transparent;color:#1a1410;border-radius:999px;padding:.6rem 1rem;font:inherit;cursor:pointer}
.rh-real-body{padding:1rem 1.1rem 1.1rem}.rh-real-body b{display:block;font-size:1.3rem;letter-spacing:-.015em}.rh-real-body small{display:block;color:#6b5e52;margin-top:.1rem}.rh-real-body p{margin:.6rem 0 .9rem;color:#4a3f36;font-size:.92rem}
.rh-real-ctas{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.rh-real-est,.rh-real-shop{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;text-decoration:none;border-radius:14px;padding:.8rem .95rem;font:inherit;cursor:pointer}
.rh-real-est{background:#1a1410;color:#f6efe4;border:0}.rh-real-shop{background:#fff;color:#1a1410;border:1px solid rgba(26,20,16,.2)}.rh-real-est b,.rh-real-shop b{font-size:1rem}.rh-real-est span,.rh-real-shop span{font-size:.76rem;opacity:.78}
.rh-real-more{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.8rem}.rh-real-more button{border:0;background:transparent;color:#6b5e52;font:inherit;font-size:.8rem;text-decoration:underline;cursor:pointer;padding:.2rem .1rem}
@media(max-width:560px){.rh-real{padding:8px}.rh-real-ctas{grid-template-columns:1fr}.rh-real-body b{font-size:1.15rem}}
