/* Scoped showroom and navigation composition. Entrance art direction is independent. */
#showroom { --showroom-accent: #aab6dd; --showroom-highlight: #d6def2; --showroom-muted: #9ba4b8; position:relative; width:100%; height:100dvh; overflow:hidden; background:#08090b; color:#eeece8; font-family:var(--font-sans); font-weight:400; }
body.in-showroom-mode { height:100dvh !important; }
body.in-showroom-mode #showroom { height:100dvh !important; }
/* Native pointer plus a brief background trace; approved entrance cursor is untouched. */
body.in-showroom-mode :is(#cursorDot, #cursorFollower) { display:none; }
#showroom .showroom-cursor-trail { position:absolute; inset:0; width:100%; height:100%; z-index:1; pointer-events:none; }
#showroom .showroom-cursor-trail[hidden] { display:none; }
#showroom button { font-family:var(--font-sans); }
#showroom button:focus-visible, #menuDrawer button:focus-visible { outline:2px solid var(--showroom-accent, #aab6dd); outline-offset:6px; }
:is(#showroom,.product-inspector) .showroom-top-header { position:absolute; inset:0 0 auto; height:86px; padding:0 48px; display:flex; align-items:center; justify-content:space-between; z-index:40; border-bottom:1px solid #ffffff0b; }
:is(#showroom,.product-inspector) .showroom-logo-link { display:flex; align-items:center; gap:12px; }
:is(#showroom,.product-inspector) .showroom-vector-logo { height:27px; width:auto; }
#showroom .showroom-logo-stamp { font-size:10px; color:var(--showroom-accent, #aab6dd); letter-spacing:2px; border-left:1px solid #aab6dd40; padding-left:12px; }

#showroom .cat-badge { font-size:9px; opacity:.5; }
:is(#showroom,.product-inspector) .showroom-header-right { display:flex; align-items:center; gap:24px; }
:is(#showroom,.product-inspector) .showroom-commerce-reserve { display:flex; gap:16px; }
:is(#showroom,.product-inspector) .showroom-commerce-reserve button { background:none; border:0; color:#757677; width:22px; height:26px; opacity:.55; cursor:default; }
:is(#showroom,.product-inspector) .showroom-commerce-reserve svg { width:20px; height:20px; }
:is(#showroom,.product-inspector) .menu-burger-btn { width:38px; height:38px; padding:9px 5px; background:none; border:0; border-radius:0; box-shadow:none; backdrop-filter:none; display:flex; flex-direction:column; justify-content:center; gap:6px; cursor:pointer; }
:is(#showroom,.product-inspector) .burger-line { width:25px; height:1px; background:#e4dfd5; margin:0; }
:is(#showroom,.product-inspector) .burger-line.line-3 { display:none; }
#showroom .circular-stage-viewport { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; pointer-events:auto; touch-action:pan-y; }
#showroom .showroom-three-canvas { position:absolute; inset:0; width:100%; height:100%; z-index:0; }
#showroom .ring-center-hub { position:absolute; inset:0; width:100%; height:100%; transform:none; pointer-events:none; z-index:2; }
#showroom .ring-hub-hero-view { width:100%; height:100%; position:relative; text-align:center; }
#showroom .hero-product-header { position:absolute; top:13%; left:16px; right:16px; pointer-events:none; }
#showroom .hero-model-title { font-family:var(--font-serif); font-size:clamp(36px,4.1vw,60px); font-weight:400; letter-spacing:.19em; text-indent:.19em; line-height:1.08; color:#ebe8e1; margin:0; }
#showroom .hero-model-meta { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:10px; }
#showroom .hero-model-kanji { font-size:13px; color:var(--showroom-accent, #aab6dd); letter-spacing:.15em; }
#showroom .hero-model-sep { color:#667394; font-size:10px; }
#showroom .hero-model-tagline { color:#969695; font-size:9px; letter-spacing:.23em; }
#showroom .hero-product-stage-frame { position:absolute; top:23%; left:50%; transform:translateX(-50%); width:min(56vw,650px); height:43%; display:flex; align-items:center; justify-content:center; }
#showroom .hero-visual-container, #showroom .hero-master-product-stage { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
#showroom .hero-master-product-img { width:100%; height:100%; object-fit:contain; position:relative; z-index:1; filter:drop-shadow(0 25px 22px #0008); }
#showroom .hero-master-product-img.mirror-round { width:auto; max-width:100%; }
#showroom .brand-discovery-accessible { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
#showroom .hero-contact-shadow { position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:52%; height:16px; border-radius:50%; background:#0008; filter:blur(12px); }
#showroom[data-product-shape^="mirror"] .hero-contact-shadow { opacity:0; }
#showroom[data-product-shape^="toilet"] .hero-contact-shadow { display:none; }
#showroom .hero-price-block { text-align:left; }
#showroom .hero-price-label { display:block; color:#787a7e; font-size:8px; text-transform:uppercase; letter-spacing:.17em; margin-bottom:4px; }
#showroom .hero-price-val { font-family:var(--font-sans); font-size:27px; font-weight:400; color:#e7e2d8; }
#showroom .hero-btn-order { display:flex; align-items:center; gap:18px; padding:13px 20px; background:transparent; color:var(--showroom-accent, #aab6dd); border:1px solid #aab6dd55; font-size:10px; letter-spacing:.12em; border-radius:2px; cursor:default; }
#showroom .hero-btn-order span { font-size:8px; color:#858079; letter-spacing:.03em; }
#showroom .curved-orbital-track-container { position:absolute; top:auto; right:auto; width:min(calc(100% - 180px),1000px); height:min(33vh,300px); bottom:110px; left:50%; transform:translateX(-50%); pointer-events:none; z-index:5; }
#showroom .crescent-arc-svg, #showroom .arc-nodes-cluster { position:absolute; inset:0; width:100%; height:100%; }
#showroom .catalogue-orbit-station { position:absolute; width:120px; transform:translate(-50%,-50%) scale(var(--depth-scale,1)); transition:left .6s var(--ease-cinematic), top .6s var(--ease-cinematic), transform .6s var(--ease-cinematic), opacity .4s; }
#showroom .station-token-btn { position:relative; width:100%; border:0; background:none; color:#999a9c; display:flex; flex-direction:column; align-items:center; cursor:pointer; }
#showroom .station-silhouette-frame { width:100%; height:73px; display:flex; align-items:center; justify-content:center; }
#showroom .station-thumbnail-contain { width:95px; height:65px; display:flex; align-items:center; justify-content:center; }
#showroom .station-thumbnail-img { width:100%; height:100%; object-fit:contain; filter:none; transition:transform .25s; }
#showroom .station-token-btn:hover .station-thumbnail-img { transform:translateY(-4px); }
#showroom .station-caption { margin-top:10px; margin-bottom:10px; color:#b1bacf; font-family:var(--font-sans); font-size:14px; font-weight:400; line-height:1.4; letter-spacing:.05em; white-space:nowrap; }
#showroom .station-caption,#showroom .station-name { background:none; border:0; box-shadow:none; filter:none; text-shadow:none; text-decoration:none; }
#showroom .is-active-hero .station-caption { color:#d6def2; font-weight:500; }
body:has(#showroom .station-caption:hover) :is(#cursorDot,#cursorFollower) { display:none; }
#showroom .arc-nav-arrows { position:absolute; top:auto; left:auto; transform:none; width:auto; height:auto; padding:0; bottom:36px; right:48px; display:flex; align-items:center; gap:12px; z-index:7; pointer-events:auto; }
#showroom .arc-arrow-btn { width:40px; height:40px; display:grid; place-items:center; color:#b6b2a9; background:none; border:1px solid #ffffff20; border-radius:50%; cursor:pointer; transition:border-color .2s,color .2s; }
#showroom .arc-arrow-btn:hover { border-color:var(--showroom-accent, #aab6dd); color:#d6def2; }
#showroom .arc-arrow-btn svg { width:16px; height:16px; }
#showroom .catalogue-position, #showroom .showroom-copyright { color:#767778; font:400 10px/1.6 var(--font-sans); letter-spacing:.12em; }
#showroom .catalogue-position { order:-1; margin-right:8px; font-variant-numeric:tabular-nums; }
/* Drawer: real category destinations, clearly unavailable future destinations. */
#menuDrawer { position:fixed; inset:0; z-index:2000; display:flex; justify-content:flex-end; visibility:hidden; pointer-events:none; transition:visibility 0s .35s; }
#menuDrawer.open { visibility:visible; pointer-events:auto; transition:none; }
#menuDrawer .menu-drawer-backdrop { position:absolute; inset:0; background:#0009; opacity:0; transition:opacity .35s; }
#menuDrawer.open .menu-drawer-backdrop { opacity:1; }
#menuDrawer .menu-drawer-content { position:relative; width:min(420px,100%); height:100dvh; padding:34px 36px 28px; display:flex; flex-direction:column; background:#101113; border-left:1px solid #ffffff12; transform:translateX(100%); transition:transform .35s var(--ease-cinematic); overflow-y:auto; }
#menuDrawer.open .menu-drawer-content { transform:translateX(0); }
#menuDrawer .menu-drawer-header { display:flex; align-items:center; justify-content:space-between; padding-bottom:25px; border-bottom:1px solid #ffffff12; color:#7b7d80; font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
#menuDrawer .drawer-close-btn { transition:color .2s; width:38px; height:38px; background:none; border:0; color:#cfd9ec; font-size:20px; cursor:pointer; }
#menuDrawer .drawer-nav { padding-top:34px; }
#menuDrawer .nav-group-title { color:var(--showroom-accent, #aab6dd); display:block; font-size:10px; letter-spacing:.15em; margin-bottom:20px; }
#menuDrawer .drawer-links { list-style:none; }
#menuDrawer .drawer-link { width:100%; display:flex; align-items:center; justify-content:space-between; text-align:left; padding:14px 0; background:none; border:0; color:#dce2ef; font-family:var(--font-sans); font-size:24px; cursor:pointer; transition:color .2s; }
#menuDrawer .drawer-link span { font-family:var(--font-sans); color:#686b6e; font-size:9px; letter-spacing:.15em; }
#menuDrawer .drawer-link[aria-current], #menuDrawer .drawer-link:not(:disabled):hover { color:#c8d5f0; }
#menuDrawer .drawer-secondary { border-top:1px solid #ffffff12; padding-top:21px; margin-top:25px; }
#menuDrawer .drawer-link:disabled { color:#92918c; cursor:default; font-size:21px; }
#menuDrawer small { color:#666967; font-family:var(--font-sans); font-size:9px; letter-spacing:.03em; }
#menuDrawer .drawer-footer-info { margin-top:auto; padding-top:25px; border-top:1px solid #ffffff12; display:flex; flex-direction:column; gap:18px; }
#menuDrawer .drawer-footer-info button { display:flex; justify-content:space-between; border:0; background:none; color:#92918c; font-family:var(--font-sans); font-size:11px; }
@media (max-width:1000px) {
 :is(#showroom,.product-inspector) .showroom-top-header { padding:0 24px; }

 :is(#showroom,.product-inspector) .showroom-commerce-reserve { display:none; }
 #showroom .curved-orbital-track-container { width:calc(100% - 100px); }
}
@media (max-width:699px) {
 :is(#showroom,.product-inspector) .showroom-top-header { height:116px; padding:12px 20px 57px; align-items:center; }
 :is(#showroom,.product-inspector) .showroom-vector-logo { height:24px; }
 #showroom .showroom-logo-stamp { display:none; }
 :is(#showroom,.product-inspector) .showroom-header-right { gap:16px; }
 :is(#showroom,.product-inspector) .showroom-commerce-reserve { display:flex; gap:12px; }

 #showroom .cat-badge { font-size:8px; }
 #showroom .hero-product-header { top:17%; }
 #showroom .hero-model-title { font-size:36px; letter-spacing:.13em; }
 #showroom .hero-model-meta { gap:8px; margin-top:8px; }
 #showroom .hero-model-kanji { font-size:11px; }
 #showroom .hero-model-tagline { font-size:7px; letter-spacing:.12em; }
 #showroom .hero-product-stage-frame { top:26%; width:84%; height:33%; }
 #showroom .curved-orbital-track-container { bottom:133px; height:180px; width:calc(100% - 66px); }
 #showroom .catalogue-orbit-station { width:82px; }
 #showroom .station-silhouette-frame { height:60px; }
 #showroom .station-thumbnail-contain { width:70px; height:58px; }
 #showroom .station-caption { font-size:11px; letter-spacing:.035em; margin-top:7px; }
 #showroom .hero-price-val { font-size:25px; }
 #showroom .hero-btn-order { padding:12px 15px; gap:12px; font-size:9px; }
 #showroom .arc-nav-arrows { left:22px; right:22px; bottom:91px; justify-content:space-between; gap:10px; }
 #showroom .arc-arrow-btn { width:36px; height:36px; }
 #showroom .catalogue-position { position:absolute; left:50%; transform:translateX(-50%); margin:0; }
 #menuDrawer .menu-drawer-content { padding:20px 28px 26px; width:min(360px,100%); }
 #menuDrawer .drawer-nav { padding-top:24px; }
 #menuDrawer .drawer-link { padding:12px 0; font-size:23px; }
}
@media (max-height:700px) and (min-width:700px) {
 :is(#showroom,.product-inspector) .showroom-top-header { height:66px; }
 #showroom .hero-product-header { top:13%; }
 #showroom .hero-model-title { font-size:38px; }
 #showroom .hero-product-stage-frame { top:25%; height:37%; }
 #showroom .curved-orbital-track-container { height:190px; bottom:86px; }
 #showroom .arc-nav-arrows { bottom:22px; }
}
@media (max-height:720px) and (max-width:699px) {
 :is(#showroom,.product-inspector) .showroom-top-header { height:98px; padding-bottom:42px; }

 #showroom .hero-product-header { top:17%; }
 #showroom .hero-model-title { font-size:29px; }
 #showroom .hero-product-stage-frame { top:28%; height:30%; }
 #showroom .curved-orbital-track-container { height:145px; bottom:118px; }
 #showroom .arc-nav-arrows { bottom:78px; }
}
@media (prefers-reduced-motion:reduce) {
 #showroom *, #menuDrawer * { transition:none !important; animation:none !important; }
}
/* Portal showroom: one illuminated architectural circle continues the entrance. */
:is(#showroom,.product-inspector) .showroom-top-header { border-bottom:0; background:linear-gradient(#080b0e90,transparent); }
#showroom .hero-product-header { top:18%; }
#showroom .hero-model-title { color:#f5f7fb; }
#showroom .hero-model-meta { margin-top:14px; }
#showroom .hero-product-stage-frame { top:39%; height:34%; width:min(44vw,510px); }
#showroom .hero-visual-container { pointer-events:auto; cursor:zoom-in; }
#showroom .hero-contact-shadow { bottom:-5px; width:65%; height:20px; }
#showroom .curved-orbital-track-container { bottom:100px; height:min(33vh,290px); width:min(calc(100% - 180px),1080px); }
#showroom .station-thumbnail-contain { width:110px; height:80px; }
#showroom .station-silhouette-frame { height:80px; }
.product-inspector { position:fixed; inset:0; margin:0; width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; border:0; color:#e6dfd2; background:radial-gradient(ellipse at 50% 45%,#24282b,#090c0f 72%); padding:0; overflow:hidden; font-family:var(--font-sans); }
.product-inspector::backdrop { background:#050709; }
.product-inspector header { position:absolute; inset:0 0 auto; height:120px; padding:30px 44px; display:flex; justify-content:space-between; z-index:2; }
.inspector-eyebrow { font:9px var(--font-sans); letter-spacing:.25em; color:#a5b2d6; }
.product-inspector h2 { font:300 32px/1.2 var(--font-sans); letter-spacing:.04em; margin-top:8px; }
.product-inspector button { background:none; color:#c4cfea; border:1px solid #c4cfea33; cursor:pointer; font-family:var(--font-sans); }
.product-inspector button:focus-visible,.product-inspector input:focus-visible { outline:2px solid var(--showroom-accent, #aab6dd); outline-offset:4px; }
.inspector-close { border-radius:50%; width:42px; height:42px; }
.inspector-stage { position:absolute; inset:120px 0 130px; overflow:hidden; touch-action:none; cursor:grab; display:flex; align-items:center; justify-content:center; }
.inspector-stage:active { cursor:grabbing; }
.inspector-stage img { width:80%; height:90%; object-fit:contain; pointer-events:none; user-select:none; will-change:transform; }
.inspector-stage canvas { width:100%; height:100%; }
.inspector-stage [hidden] { display:none; }
.product-inspector footer { position:absolute; inset:auto 0 28px; text-align:center; }
.inspector-hint { font:11px var(--font-sans); color:#989994; margin-bottom:18px; }
.inspector-tools { display:flex; align-items:center; justify-content:center; gap:16px; }
.inspector-tools button { border-radius:20px; min-width:36px; height:36px; }
.inspector-tools input { width:150px; accent-color:var(--showroom-accent, #aab6dd); }
.inspector-tools .inspector-reset { padding:0 15px; font-size:10px; }
.product-inspector output { display:block; font:10px var(--font-sans); margin-top:12px; color:#a8b6d5; }
@media(max-width:699px) {
 #showroom .hero-product-header { top:19%; }
 #showroom .hero-product-stage-frame { top:36%; height:31%; width:88%; }
 #showroom .curved-orbital-track-container { width:calc(100% - 65px); height:180px; bottom:126px; }
 #showroom .station-thumbnail-contain { width:75px; height:61px; }
 #showroom .station-silhouette-frame { height:61px; }
 .product-inspector header { padding:24px; height:110px; }
 .inspector-stage { inset:110px 0 150px; }
 .inspector-hint { max-width:270px; margin:0 auto 15px; line-height:1.6; }
 .inspector-tools { gap:10px; }.inspector-tools input { width:100px; }
}
@media(max-height:720px) and (max-width:699px) {
 #showroom .hero-product-header { top:18%; }
 #showroom .hero-product-stage-frame { top:35%; height:27%; }
 #showroom .curved-orbital-track-container { height:140px; bottom:116px; }
}
@media(max-width:699px) {
 #showroom .hero-product-header { top:15.5%; }
 #showroom .hero-model-title { font-size:32px; }
}
@media(max-height:720px) and (max-width:699px) {
 #showroom .hero-product-header { top:15.3%; }
 #showroom .hero-model-title { font-size:27px; }
}
/* Family navigation: contextual second level, independent of scene geometry. */

#menuDrawer .drawer-family-group { margin:0 0 20px; }
#menuDrawer .drawer-family-group h3 { font-family:var(--font-sans); font-weight:400; font-size:12px; color:#a8b7dc; margin:0 0 8px; }
#menuDrawer .drawer-family-group .drawer-link { font-size:21px; padding:9px 0 9px 14px; }
#menuDrawer .drawer-secondary { margin-top:12px; padding-top:14px; }
#menuDrawer .drawer-secondary .drawer-link { padding:11px 0; }
@media(max-width:699px) {

 #menuDrawer .drawer-nav { padding-top:18px; }
 #menuDrawer .nav-group-title { margin-bottom:16px; }
 #menuDrawer .drawer-family-group { margin-bottom:14px; }
 #menuDrawer .drawer-family-group .drawer-link { font-size:20px; padding:8px 0 8px 12px; }
}
@media(max-height:720px) and (max-width:699px) {

 #showroom .hero-product-header { top:16.8%; }
 #showroom .hero-model-meta { margin-top:4px; line-height:12px; }
}

/* Positions are interpolated along the shared perspective curve in JS. */
#showroom .catalogue-orbit-station { transition:none; will-change:left,top,transform,opacity; }

/* A deeper carousel arc: smaller rear shoulders and a prominent front selection. */
@media(min-width:700px) {
 #showroom .curved-orbital-track-container { height:min(36vh,310px); }
}

#showroom .hero-toilet-canvas { display:block; width:100%; height:100%; pointer-events:auto; touch-action:none; cursor:grab; }
#showroom .hero-toilet-canvas:active { cursor:grabbing; }
#showroom .hero-toilet-canvas:focus-visible { outline:1px solid var(--showroom-accent, #aab6dd); outline-offset:4px; }
.inspector-views { display:flex; justify-content:center; gap:10px; margin-top:10px; }
.inspector-views[hidden] { display:none; }
.inspector-views button { border-radius:18px; padding:7px 18px; font-size:11px; }
.product-inspector:not(.has-product-details):has(.inspector-views:not([hidden])) .inspector-stage { bottom:180px; }

/* Showroom navigation sits below the logo, outside the hero's central axis. */

/* Actions belong to the hero heading, above the unchanged 3D presentation. */

@media (max-width:699px) {

}
@media (max-height:720px) and (max-width:699px) {

}

/* Ring and carousel share viewport bounds computed by showroom-layout.js. */
#showroom .hero-product-header { top:var(--product-heading-top); }
#showroom .hero-product-stage-frame { top:var(--product-top); height:var(--product-height); width:var(--product-width); transform:translate(calc(-50% - 16px),-14px); }
#showroom .hero-model-meta { margin:10px auto 0; max-width:min(620px,84vw); }
#showroom .hero-model-tagline { color:#e1e7f0; font-family:var(--font-sans); font-size:14px; font-weight:400; letter-spacing:.045em; line-height:1.65; }
#showroom #inspectProductBtn { cursor:pointer; }
#showroom .hero-toilet-canvas#inspectProductBtn:active { cursor:grabbing; }
#showroom #inspectProductBtn:focus-visible { outline:1px solid #bacced; outline-offset:5px; }
#showroom .station-caption { color:#d0d8e5; }
#showroom .is-active-hero .station-caption { color:#f4f6fb; }
@media(max-width:699px) {
 #showroom .hero-product-stage-frame { transform:translate(calc(-50% - 6px),-8px); }
 #showroom .hero-model-meta { margin-top:6px; max-width:86vw; }
 #showroom .hero-model-tagline { font-size:12px; letter-spacing:.035em; line-height:1.6; }
}
#showroom .curved-orbital-track-container { left:var(--carousel-left); top:var(--carousel-top); bottom:auto; width:var(--carousel-width); height:var(--carousel-height); transform:none; }
#showroom .catalogue-orbit-station { width:var(--carousel-card-width); }
#showroom .station-thumbnail-contain { width:var(--carousel-thumb-width); height:var(--carousel-thumb-height); }
#showroom .station-silhouette-frame { height:var(--carousel-thumb-height); }
:is(#showroom,.product-inspector) .showroom-vector-logo { height:34px; }
@media(min-width:700px) { #showroom .hero-model-title.is-long-title { font-size:clamp(32px,3.6vw,52px); } }
@media(max-width:1199px) and (min-width:700px) { #showroom .station-caption { font-size:12px; } }
@media(max-width:699px) { :is(#showroom,.product-inspector) .showroom-vector-logo { height:28px; } }

/* Illumination only: keep the existing station geometry and hover movement. */
#showroom .station-thumbnail-img { filter:brightness(.92) saturate(.92); transition:transform .25s,filter .55s ease; }
#showroom .is-active-hero .station-thumbnail-img { filter:brightness(1.08) saturate(.96); }
#showroom .station-token-btn:is(:hover,:focus-visible) .station-thumbnail-img { filter:brightness(1.13) saturate(.96); }

/* The same established orbit is rendered as fine WebGL points. */
#showroom.has-visual-orbit .crescent-arc-svg #catalogueArcPath { opacity:0; }

/* One integrated circular control on each side of the hero presentation. */
#showroom .arc-nav-arrows { inset:0; width:100%; height:100%; padding:0; display:block; transform:none; pointer-events:none; }
#showroom .arc-arrow-btn {
 position:absolute; top:var(--orbit-control-y,53vh); transform:translateY(-50%);
 width:52px; height:52px; padding:0; display:grid; place-items:center; line-height:0;
 border:1px solid rgba(142,159,197,.26); border-radius:50%; background:rgba(10,16,29,.58);
 color:#d7dfef; cursor:pointer; pointer-events:auto;
 box-shadow:none; filter:none;
 transition:color .3s,border-color .3s,background-color .3s;
}
#showroom .arc-arrow-btn.prev-btn { left:var(--orbit-control-inset,22px); }
#showroom .arc-arrow-btn.next-btn { right:var(--orbit-control-inset,22px); }
#showroom .arc-arrow-btn svg { width:25px; height:25px; stroke-width:1.3; pointer-events:none; filter:none; }
/* Travelling 1px arcs follow three fixed circles: no blur, dots or expansion. */
#showroom .arc-arrow-btn .arrow-swirl {
 position:absolute; left:50%; top:50%; width:106px; height:106px; max-width:none; max-height:none;
 transform:translate(-50%,-50%); overflow:visible; stroke:none; pointer-events:none;
}
#showroom .arrow-swirl circle { stroke-width:1px; vector-effect:non-scaling-stroke; fill:none; filter:none; }
#showroom .arrow-orbit-track { stroke:#98a7c9; opacity:.18; }
#showroom .arrow-orbit-flow {
 stroke:#c7d5f3; stroke-dasharray:76 284; stroke-linecap:round; opacity:.48;
 animation:takura-arrow-flow 12s linear infinite; animation-delay:-2s;
 transition:opacity .35s ease;
}
#showroom .arrow-swirl-middle .arrow-orbit-track { opacity:.11; }
#showroom .arrow-swirl-outer .arrow-orbit-track { opacity:.065; }
#showroom .arrow-swirl-middle .arrow-orbit-flow { opacity:.3; animation-duration:17s; animation-delay:-8s; animation-direction:reverse; }
#showroom .arrow-swirl-outer .arrow-orbit-flow { opacity:.2; animation-duration:23s; animation-delay:-15s; }
#showroom .arc-arrow-btn:is(:hover,:focus-visible) { color:#e5ecfa; border-color:rgba(167,187,228,.38); }
#showroom .arc-arrow-btn:is(:hover,:focus-visible) .arrow-orbit-flow { opacity:.7; }
#showroom .arc-arrow-btn:is(:hover,:focus-visible) .arrow-swirl-middle .arrow-orbit-flow { opacity:.46; }
#showroom .arc-arrow-btn:is(:hover,:focus-visible) .arrow-swirl-outer .arrow-orbit-flow { opacity:.3; }
#showroom .arc-arrow-btn:hover svg { filter:none; }
/* The native pointer remains the only cursor over these controls. */
body:has(#showroom .arc-arrow-btn:is(:hover,:focus-visible)) :is(#cursorDot,#cursorFollower) { display:none; }
#showroom .arc-arrow-btn:focus-visible { outline:1px solid #9baace; outline-offset:4px; }
#showroom .arc-arrow-btn:disabled { opacity:.35; cursor:default; }
@keyframes takura-arrow-flow { to { stroke-dashoffset:-360; } }
@media(prefers-reduced-motion:reduce) {
 #showroom .arc-arrow-btn .arrow-orbit-flow { animation:none; transition:none; opacity:0; }
}
#showroom .catalogue-position { position:absolute; left:auto; right:48px; bottom:36px; top:auto; margin:0; transform:none; pointer-events:none; }
#showroom .showroom-copyright { position:absolute; left:48px; bottom:36px; white-space:nowrap; pointer-events:none; }
/* Only the intentionally unpopulated Smart Mirrors collection uses this state. */
#showroom .catalogue-unavailable { position:absolute; top:48%; left:50%; transform:translate(-50%,-50%); width:min(380px,72%); text-align:center; }
#showroom .catalogue-unavailable p { margin:0 0 14px; color:#d6def2; font:400 18px/1.5 var(--font-sans); }
#showroom .catalogue-unavailable span { color:#adb9ce; font:400 12px/1.85 var(--font-sans); }
@media(max-width:699px){
 #showroom .arc-arrow-btn { width:44px; height:44px; }
 #showroom .arc-arrow-btn svg { width:25px; height:25px; }
 #showroom .arc-arrow-btn .arrow-swirl { width:68px; height:68px; }
 #showroom .arrow-swirl-inner circle { r:39px; }
 #showroom .arrow-swirl-middle circle { r:45px; }
 #showroom .arrow-swirl-outer circle { r:51px; }
 #showroom .catalogue-position { left:auto; right:22px; bottom:90px; transform:none; }
 #showroom .showroom-copyright { left:22px; bottom:90px; }
}

/* Two-level category rail. Existing category buttons retain their handlers. */
#showroom .showroom-navigation-rail {
 position:absolute; top:clamp(108px,15vh,144px); left:48px; width:224px;
 text-align:left; pointer-events:auto;
}
#showroom .showroom-navigation-rail::before {
 content:''; position:absolute; left:0; top:6px; bottom:6px; width:1px;
 background:linear-gradient(transparent,rgba(222,211,188,.23) 12%,rgba(222,211,188,.15) 88%,transparent);
 pointer-events:none;
}
#showroom .showroom-category-menu,
#showroom .quick-subcategory-bar {
 position:static; transform:none; display:flex; flex-direction:column; align-items:stretch;
 justify-content:flex-start; gap:0; width:100%; max-width:none; background:none;
}
#showroom .quick-subcategory-bar { margin-top:16px; }
#showroom .quick-subcategory-bar[hidden] { display:none; }
#showroom .showroom-cat-btn,
#showroom .showroom-subcategory-btn {
 position:relative; display:flex; align-items:center; justify-content:flex-start;
 width:100%; border:0; border-bottom:0; background:none; box-shadow:none;
 text-decoration:none; text-align:left; white-space:nowrap; cursor:pointer;
 font-family:var(--font-sans); font-weight:400; letter-spacing:.025em;
 color:#a0a6a8; text-shadow:0 1px 6px #000; transition:color .3s ease;
}
#showroom .showroom-cat-btn { min-height:40px; padding:10px 0 10px 38px; font-size:15px; line-height:20px; }
#showroom .showroom-subcategory-btn { min-height:34px; padding:8px 0 8px 46px; font-size:12.5px; line-height:18px; color:#a8acae; }
#showroom .showroom-cat-btn::before,
#showroom .showroom-subcategory-btn::before {
 content:''; position:absolute; top:50%; left:0; width:8px; height:1px;
 background:#6c7376; transform:translateY(-50%);
 transition:width .32s cubic-bezier(.2,.7,.3,1),background-color .32s ease;
}
#showroom .showroom-subcategory-btn::before { left:12px; width:5px; }
#showroom .showroom-cat-btn.active { color:#e4ebfa; }
#showroom .showroom-subcategory-btn.active { color:#d6e0f5; }
#showroom .showroom-cat-btn.active::before { width:26px; background:#aebde6; }
#showroom .showroom-subcategory-btn.active::before { width:18px; background:#9aadd8; }
#showroom .showroom-cat-btn:not(.active):hover,
#showroom .showroom-subcategory-btn:not(.active):hover { color:#d6dfef; }
#showroom .showroom-cat-btn:not(.active):hover::before { width:12px; background:#8f9dbd; }
#showroom .showroom-subcategory-btn:not(.active):hover::before { width:9px; background:#8f9dbd; }
@media(min-width:700px) and (max-width:1000px) {
 #showroom .showroom-navigation-rail { left:24px; width:204px; }
 #showroom .showroom-cat-btn { font-size:14px; }
 #showroom .showroom-subcategory-btn { font-size:12px; }
}
@media(min-width:700px) and (max-height:550px) {
 #showroom .showroom-navigation-rail { width:146px; }
 #showroom .showroom-cat-btn { min-height:30px; padding:5px 0 5px 28px; font-size:12px; }
 #showroom .quick-subcategory-bar { margin-top:10px; }
 #showroom .showroom-subcategory-btn { min-height:24px; padding:3px 0 3px 28px; font-size:11px; letter-spacing:0; }
 #showroom .showroom-subcategory-btn::before { left:0; }
 #showroom .showroom-subcategory-btn.active::before { width:17px; }
 #showroom .showroom-cat-btn.active::before { width:19px; }
}
@media(max-width:699px) {
 /* Compact two-column rail preserves the approved mobile product framing. */
 #showroom .showroom-navigation-rail { top:62px; left:20px; width:auto; right:20px; display:grid; grid-template-columns:100px minmax(0,1fr); gap:14px; }
 #showroom .quick-subcategory-bar { margin-top:0; }
 #showroom .showroom-cat-btn { min-height:24px; padding:3px 0 3px 28px; font-size:12px; line-height:18px; letter-spacing:0; }
 #showroom .showroom-subcategory-btn { min-height:18px; padding:1px 0 1px 24px; font-size:10.5px; line-height:16px; letter-spacing:0; }
 #showroom .showroom-subcategory-btn::before { left:0; }
 #showroom .showroom-cat-btn.active::before { width:18px; }
 #showroom .showroom-subcategory-btn.active::before { width:14px; }
}
@media(max-width:699px) and (max-height:720px) { #showroom .showroom-navigation-rail { top:50px; } }
@media(prefers-reduced-motion:reduce) {
 #showroom .showroom-cat-btn,#showroom .showroom-subcategory-btn,
 #showroom .showroom-cat-btn::before,#showroom .showroom-subcategory-btn::before { transition:none; }
}

/* Accordion motion stays inside the established rail; scene framing is fixed. */
#showroom .category-family { min-width:0; }
#showroom .category-accordion-panel { overflow:hidden; }
#showroom .category-accordion-panel[hidden] { display:none; }
#showroom .category-accordion-panel .quick-subcategory-bar { margin-top:0; padding:4px 0 10px; }
#showroom .showroom-cat-btn.active::before { box-shadow:0 0 6px rgba(171,190,235,.15); }
@media(max-width:699px) {
 #showroom .showroom-navigation-rail { display:block; }
 #showroom .showroom-category-menu { display:grid; grid-template-columns:100px minmax(0,1fr); grid-template-rows:24px 24px; column-gap:14px; align-items:start; }
 #showroom .category-family { display:contents; }
 #showroom .showroom-cat-btn { grid-column:1; }
 #showroom .showroom-cat-btn[data-family="wc-japonais"] { grid-row:1; }
 #showroom .showroom-cat-btn[data-family="miroirs"] { grid-row:2; }
 #showroom .category-accordion-panel { grid-column:2; grid-row:1 / span 2; align-self:start; }
 #showroom .category-accordion-panel .quick-subcategory-bar { padding:0; }
}

/* Product-first polish: readable supporting text and calmer display headings. */
#showroom .hero-product-header { top:calc(var(--product-heading-top) + clamp(8px,1.2vh,14px)); }
#showroom .hero-model-title { font-size:clamp(34px,3.15vw,54px); letter-spacing:.19em; }
#showroom .hero-model-title.is-long-title { font-size:clamp(30px,2.95vw,48px); letter-spacing:.16em; }
#showroom .hero-title-letter { display:inline-block; text-indent:0; white-space:pre; }
#showroom .catalogue-position,#showroom .showroom-copyright { color:#8fa7c6; font-size:12px; letter-spacing:.08em; }
#showroom .showroom-category-menu .showroom-cat-btn:is(:hover,:focus-visible),
#showroom .showroom-category-menu .showroom-subcategory-btn:is(:hover,:focus-visible) { color:#d1b478; text-shadow:none; }
#showroom .showroom-category-menu .showroom-cat-btn:is(:hover,:focus-visible)::before,
#showroom .showroom-category-menu .showroom-subcategory-btn:is(:hover,:focus-visible)::before { background:#d1b478; }
@media(max-width:699px) {
 #showroom .hero-product-header { top:calc(var(--product-heading-top) + 8px); }
 #showroom .hero-model-title { font-size:30px; letter-spacing:.16em; }
 #showroom .hero-model-title.is-long-title { font-size:clamp(24px,6.5vw,29px); letter-spacing:.12em; }
}
@media(max-width:360px) {
 #showroom .catalogue-position,#showroom .showroom-copyright { font-size:11px; letter-spacing:.035em; }
 #showroom .hero-model-title { font-size:28px; }
}

/* Quiet champagne navigation, with a clearer vector weight. */
#showroom .showroom-category-menu .showroom-subcategory-btn.active { color:var(--ui-champagne); }
#showroom .showroom-category-menu .showroom-subcategory-btn.active::before { background:var(--ui-champagne); }
#showroom .arc-arrow-btn { border-color:#a9bdd159; }
#showroom .arc-arrow-btn>svg:not(.arrow-swirl) { stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
#showroom .arc-arrow-btn:is(:hover,:focus-visible) { color:var(--ui-champagne); border-color:#d1b47880; background:#d1b47809; }
#showroom .arc-arrow-btn:is(:hover,:focus-visible) .arrow-orbit-flow { stroke:var(--ui-champagne); }
:is(#showroom,.product-inspector) .showroom-top-header .showroom-commerce-reserve button:is(:hover,:focus-visible),
:is(#showroom,.product-inspector) .menu-burger-btn:is(:hover,:focus-visible) { color:var(--ui-champagne); }
:is(#showroom,.product-inspector) .menu-burger-btn:is(:hover,:focus-visible) .burger-line { background:var(--ui-champagne); }
:is(#showroom,.product-inspector) .menu-burger-btn .burger-line { background:var(--ui-champagne); }
@media(min-width:700px) {
 #showroom .showroom-cat-btn { font-size:16px; }
 #showroom .showroom-subcategory-btn { font-size:14px; }
}
