.cbe-private{
  --room-cream: #f6ecdf;
  --room-cream-glass: rgba(248, 241, 232, .12);
  --room-ink: #3f281a;
  --room-muted: #805f49;
  --room-gold: #ba7945;
  --room-line: rgba(75, 46, 28, .15);
  --brand-coral: #ef432b;
  --brand-coral-soft: #d65d49;
  --brand-green: #9ec06a;
  --brand-green-deep: #66853b;
  --night-opacity: 0;
  --camera-x: 0px;
  --camera-y: 0px;
  --camera-scale: 1;
  --intro-progress: 0;
  --cbe-top-offset: calc(var(--cbe-header-offset,0px) + var(--wp-admin--admin-bar--height,0px));
}

.cbe-private,
.cbe-private *{ box-sizing: border-box; }
.cbe-private{
  position: relative;
  width: 100vw;
  max-width: none;
  margin: 0;
  margin-left: calc(50% - 50vw);
  color: var(--room-ink);
  background: #17120f;
  font-family: "Noto Sans SC", system-ui, sans-serif;
  /* Clip full-bleed content without creating a scroll container that breaks sticky stages. */
  overflow-x: clip;
}
.cbe-private button,
.cbe-private a{ color: inherit; font: inherit; }
.cbe-private a{ text-decoration: none; }
.cbe-private button{ cursor: pointer; }

.cbe-private .room-header{
  position: fixed;
  z-index: 30;
  inset: 0 0 auto;
  height: 72px;
  padding: 0 clamp(20px, 5vw, 76px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #fffaf2;
  border-bottom: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg,rgba(28,19,14,.68),rgba(28,19,14,.08));
  backdrop-filter: blur(12px);
}
.cbe-private .room-brand{ display: flex; align-items: center; gap: 10px; }
.cbe-private .room-brand-mark{
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: #3f281a;
  background: #f4d4aa;
  font-size: 15px;
  font-weight: 800;
}
.cbe-private .room-brand b{ display: block; font-size: 16px; letter-spacing: .08em; }
.cbe-private .room-brand small{ display: block; margin-top: 1px; font-size: 8px; letter-spacing: .2em; opacity: .62; }
.cbe-private .room-header nav{ display: flex; align-items: center; gap: 28px; font-size: 13px; }
.cbe-private .room-header nav a{ opacity: .62; transition: opacity .25s ease; }
.cbe-private .room-header nav a:hover{ opacity: 1; }
.cbe-private .room-header nav span{ position: relative; }
.cbe-private .room-header nav span::after{
  content: "";
  position: absolute;
  left: 50%;
  bottom: -9px;
  width: 14px;
  height: 2px;
  border-radius: 99px;
  background: #f3c890;
  transform: translateX(-50%);
}

.cbe-private .room-header{
  transition: color .45s ease, background .45s ease, border-color .45s ease;
}
.cbe-private.is-intro .room-header{
  color: #432c1e;
  border-bottom-color: rgba(79,49,29,.08);
  background: linear-gradient(180deg,rgba(248,240,229,.86),rgba(248,240,229,.16));
}
.cbe-private.is-intro .room-brand-mark{
  color: #f9f0e5;
  background: var(--brand-coral);
}
.cbe-private.is-intro .room-header nav span::after{ background: var(--brand-green); }

.cbe-private .boarding-intro{
  position: relative;
  z-index: 4;
  height: 200svh;
  min-height: 1240px;
  overflow: clip;
  background: #f6ecdf;
}
.cbe-private .boarding-stage{
  position: sticky;
  top: var(--cbe-top-offset);
  height: calc(100svh - var(--cbe-top-offset));
  min-height: 620px;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(circle at 12% 22%,rgba(255,255,255,.96),transparent 35%),
    radial-gradient(circle at 76% 15%,rgba(237,205,168,.28),transparent 32%),
    linear-gradient(145deg,#faf3e9 0%,#f3e5d4 62%,#ead5bd 100%);
}
.cbe-private .boarding-stage::before,
.cbe-private .boarding-stage::after{
  content: "";
  position: absolute;
  pointer-events: none;
  border-radius: 50%;
  filter: blur(1px);
  opacity: calc(1 - var(--intro-progress));
}
.cbe-private .boarding-stage::before{
  z-index: -1;
  width: min(64vw,980px);
  aspect-ratio: 1.45;
  left: -16vw;
  top: -27vh;
  border: 1px solid rgba(139,91,57,.08);
  box-shadow: inset 0 0 100px rgba(255,255,255,.42);
}
.cbe-private .boarding-stage::after{
  z-index: -1;
  width: min(42vw,650px);
  aspect-ratio: 1;
  right: -12vw;
  bottom: -32vh;
  background: rgba(183,123,78,.07);
}
.cbe-private .boarding-copy{
  position: absolute;
  z-index: 5;
  left: clamp(36px,6vw,92px);
  top: 51%;
  width: min(46vw,700px);
  color: #3f291c;
  transform: translateY(calc(-50% + var(--intro-copy-y,0px)));
  will-change: opacity,transform;
}
.cbe-private .boarding-eyebrow{
  margin: 0 0 20px;
  color: var(--brand-coral-soft);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .3em;
  animation: boarding-copy-in .85s .08s cubic-bezier(.22,.75,.2,1) both;
}
.cbe-private .boarding-copy h1{
  margin: 0;
  color: #382318;
  font-size: clamp(56px,6.7vw,108px);
  font-weight: 600;
  line-height: .91;
  letter-spacing: -.07em;
}
.cbe-private .boarding-copy h1 span{
  display: block;
  animation: boarding-title-in 1s cubic-bezier(.22,.75,.2,1) both;
}
.cbe-private .boarding-copy h1 span:nth-child(1){ animation-delay: .14s; }
.cbe-private .boarding-copy h1 span:nth-child(2){ animation-delay: .25s; }
.cbe-private .boarding-copy h1 span:nth-child(3){
  width: fit-content;
  color: #aa6a40;
  animation-delay: .36s;
}
.cbe-private .boarding-tagline{
  margin: 24px 0 0;
  color: #6b4934;
  font-size: clamp(17px,1.55vw,23px);
  font-weight: 600;
  letter-spacing: .02em;
  animation: boarding-copy-in .9s .48s cubic-bezier(.22,.75,.2,1) both;
}
.cbe-private .boarding-tech-note{
  width: fit-content;
  margin: 12px 0 0;
  padding: 7px 11px 7px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--brand-green-deep);
  border: 1px solid rgba(126,157,72,.2);
  border-radius: 99px;
  background: rgba(158,192,106,.12);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  animation: boarding-copy-in .9s .56s cubic-bezier(.22,.75,.2,1) both;
}
.cbe-private .boarding-tech-note::before{
  content: "";
  width: 6px;
  height: 6px;
  flex: none;
  border-radius: 50%;
  background: var(--brand-green);
  box-shadow: 0 0 0 4px rgba(158,192,106,.14);
}
.cbe-private .boarding-summary{
  max-width: 530px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(83,51,31,.14);
  animation: boarding-copy-in .9s .64s cubic-bezier(.22,.75,.2,1) both;
}
.cbe-private .boarding-summary p{
  margin: 0;
  color: #684735;
  font-size: clamp(14px,1.04vw,16px);
  font-weight: 600;
  line-height: 1.68;
}
.cbe-private .boarding-principles{
  max-width: 560px;
  margin-top: 15px;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 10px;
  animation: boarding-copy-in .9s .72s cubic-bezier(.22,.75,.2,1) both;
}
.cbe-private .boarding-principles article{
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid rgba(87,55,35,.1);
  border-radius: 14px;
  background: rgba(255,250,242,.34);
}
.cbe-private .boarding-principles b,
.cbe-private .boarding-principles span{
  display: block;
}
.cbe-private .boarding-principles b{
  margin-bottom: 5px;
  color: var(--brand-coral-soft);
  font-size: 11px;
  letter-spacing: .04em;
}
.cbe-private .boarding-principles article:nth-child(2) b{
  color: var(--brand-green-deep);
}
.cbe-private .boarding-principles span{
  color: #80614d;
  font-size: 10.5px;
  font-weight: 500;
  line-height: 1.5;
}
.cbe-private .boarding-portal{
  position: absolute;
  z-index: 2;
  left: var(--portal-left,52vw);
  top: var(--portal-top,13svh);
  right: var(--portal-right,5vw);
  bottom: var(--portal-bottom,9svh);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: var(--portal-radius,48px);
  background: #d9c3aa;
  box-shadow:
    0 28px 80px rgba(81,48,28,.18),
    inset 0 1px rgba(255,255,255,.6);
  will-change: left,top,right,bottom,border-radius;
}
.cbe-private .boarding-portal-image{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: var(--portal-focus-x,12%) 50%;
  transform: scale(var(--portal-image-scale,1.03));
  transform-origin: var(--portal-focus-x,12%) 50%;
  will-change: transform,object-position;
}
.cbe-private .boarding-portal-glow{
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 14% 18%,rgba(255,250,226,.3),transparent 28%),
    linear-gradient(115deg,rgba(255,255,255,.16),transparent 38%);
  mix-blend-mode: screen;
  animation: boarding-ambient-light 8s ease-in-out infinite alternate;
}
.cbe-private .boarding-portal-label{
  position: absolute;
  left: 24px;
  bottom: 22px;
  padding: 8px 11px;
  color: #4a3020;
  border: 1px solid rgba(255,255,255,.52);
  border-radius: 99px;
  background: rgba(250,242,231,.68);
  box-shadow: 0 8px 24px rgba(65,40,24,.08);
  backdrop-filter: blur(10px);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .16em;
  opacity: calc(1 - var(--intro-progress));
}
@keyframes boarding-title-in {
  from { opacity: 0; transform: translateY(42px); clip-path: inset(0 0 100%); }
  to { opacity: 1; transform: none; clip-path: inset(0); }
}
@keyframes boarding-copy-in {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: none; }
}
@keyframes boarding-ambient-light {
  from { opacity: var(--intro-glow-from,.56); transform: translate3d(-1%,0,0); }
  to { opacity: var(--intro-glow-to,.86); transform: translate3d(1.5%,.7%,0); }
}

.cbe-private[data-cbe-private="home"] .boarding-intro + .room-story{ margin-top: -100svh; }
.cbe-private[data-cbe-private="home"] .room-story{ z-index: 3; }
.cbe-private[data-cbe-private="home"].intro-complete .boarding-intro{ z-index: 2; }
.cbe-private[data-cbe-private="standalone"] .boarding-intro{ display: none; }

.cbe-private .room-story{ position: relative; background: #201711; }
.cbe-private .room-stage{
  position: sticky;
  z-index: 1;
  top: var(--cbe-top-offset);
  height: calc(100svh - var(--cbe-top-offset));
  min-height: 620px;
  overflow: hidden;
  background: #d8c4ad;
}
.cbe-private .room-viewport{
  position: absolute;
  inset: 0;
}
.cbe-private .room-camera{
  position: absolute;
  left: 50%;
  top: 50%;
  width: max(100vw, 150svh);
  aspect-ratio: 3 / 2;
  transform: translate(-50%,-50%) translate(var(--camera-x),var(--camera-y)) scale(var(--camera-scale));
  transform-origin: 50% 50%;
  will-change: transform;
}
.cbe-private .room-orbit{
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.cbe-private .room-image{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  user-select: none;
  pointer-events: none;
}
.cbe-private .room-night{ opacity: var(--night-opacity); }
.cbe-private .night-stars{
  position: absolute;
  z-index: 3;
  left: 0;
  top: 0;
  width: 23.5%;
  height: 58%;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1.4s ease;
}
.cbe-private [data-scene="night"] .night-stars{
  opacity: calc(var(--night-opacity) * .92);
}
.cbe-private .night-stars i{
  position: absolute;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: rgba(235,244,255,.9);
  box-shadow: 0 0 4px rgba(192,218,255,.6);
  opacity: .15;
}
.cbe-private .night-stars i:nth-child(1)::before,
.cbe-private .night-stars i:nth-child(1)::after,
.cbe-private .night-stars i:nth-child(3)::before,
.cbe-private .night-stars i:nth-child(3)::after,
.cbe-private .night-stars i:nth-child(4)::before,
.cbe-private .night-stars i:nth-child(4)::after{
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  border-radius: 99px;
  background: rgba(226,239,255,.7);
  filter: blur(.25px);
  transform: translate(-50%,-50%);
}
.cbe-private .night-stars i:nth-child(1)::before,
.cbe-private .night-stars i:nth-child(3)::before,
.cbe-private .night-stars i:nth-child(4)::before{
  width: 8px;
  height: .7px;
}
.cbe-private .night-stars i:nth-child(1)::after,
.cbe-private .night-stars i:nth-child(3)::after,
.cbe-private .night-stars i:nth-child(4)::after{
  width: .7px;
  height: 8px;
}
.cbe-private .night-stars i:nth-child(1){ left: 16%; top: 11%; animation-delay: -.7s; animation-duration: 5.8s; }
.cbe-private .night-stars i:nth-child(2){ left: 64%; top: 17%; width: 1.5px; height: 1.5px; animation-delay: -3.1s; animation-duration: 6.7s; }
.cbe-private .night-stars i:nth-child(3){ left: 12%; top: 43%; animation-delay: -1.9s; animation-duration: 4.9s; }
.cbe-private .night-stars i:nth-child(4){ left: 72%; top: 52%; width: 2.5px; height: 2.5px; animation-delay: -4.2s; animation-duration: 7.3s; }
.cbe-private .night-stars i:nth-child(5){ left: 55%; top: 78%; width: 1.5px; height: 1.5px; animation-delay: -2.6s; animation-duration: 5.4s; }
.cbe-private .night-stars i:nth-child(6){ left: 34%; top: 66%; width: 1.5px; height: 1.5px; animation-delay: -5s; animation-duration: 6.2s; }
.cbe-private [data-scene="night"] .night-stars i{
  animation-name: night-star-twinkle;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}
@keyframes night-star-twinkle {
  0%,100% { opacity: .12; transform: scale(.85); }
  38% { opacity: .62; transform: scale(1); }
  56% { opacity: .3; transform: scale(.92); }
  74% { opacity: .82; transform: scale(1.12); }
}
.cbe-private .day-window-sky{
  position: absolute;
  z-index: 2;
  left: 0;
  top: 0;
  width: 23.5%;
  height: 58%;
  overflow: hidden;
  clip-path: polygon(0 0,28% 0,86% 22%,86% 97%,0 98%);
  opacity: calc(1 - var(--night-opacity));
  pointer-events: none;
  transition: opacity 1.2s ease;
}
.cbe-private .day-window-sky::before{
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0 0 17%;
  background:
    radial-gradient(ellipse 95% 30% at 42% 88%,rgba(255,255,255,.26),rgba(255,255,255,.14) 48%,transparent 100%),
    linear-gradient(
      180deg,
      rgba(189,229,249,.04) 0%,
      rgba(190,230,249,.08) 45%,
      rgba(190,230,249,.32) 60%,
      rgba(195,232,250,.58) 78%,
      rgba(255,255,255,.14) 92%,
      transparent 100%
    );
  -webkit-backdrop-filter: blur(4px) saturate(.7) contrast(.92);
  backdrop-filter: blur(4px) saturate(.7) contrast(.92);
  pointer-events: none;
}
.cbe-private .day-cloud{
  position: absolute;
  z-index: 1;
  width: 42%;
  height: 9%;
  background-image: url("../images/room-day.webp");
  background-repeat: no-repeat;
  background-size: 1015% auto;
  background-position: 9.7% 39.5%;
  -webkit-mask-image:
    radial-gradient(ellipse 31% 39% at 18% 62%,rgba(0,0,0,.74) 0 18%,rgba(0,0,0,.42) 48%,rgba(0,0,0,.08) 76%,transparent 100%),
    radial-gradient(ellipse 38% 49% at 45% 50%,rgba(0,0,0,.84) 0 20%,rgba(0,0,0,.5) 49%,rgba(0,0,0,.09) 77%,transparent 100%),
    radial-gradient(ellipse 29% 42% at 68% 58%,rgba(0,0,0,.7) 0 17%,rgba(0,0,0,.4) 47%,rgba(0,0,0,.07) 75%,transparent 100%),
    radial-gradient(ellipse 14% 33% at 84% 64%,rgba(0,0,0,.52) 0 15%,rgba(0,0,0,.3) 40%,rgba(0,0,0,.05) 68%,transparent 100%);
  -webkit-mask-repeat: no-repeat;
  mask-image:
    radial-gradient(ellipse 31% 39% at 18% 62%,rgba(0,0,0,.74) 0 18%,rgba(0,0,0,.42) 48%,rgba(0,0,0,.08) 76%,transparent 100%),
    radial-gradient(ellipse 38% 49% at 45% 50%,rgba(0,0,0,.84) 0 20%,rgba(0,0,0,.5) 49%,rgba(0,0,0,.09) 77%,transparent 100%),
    radial-gradient(ellipse 29% 42% at 68% 58%,rgba(0,0,0,.7) 0 17%,rgba(0,0,0,.4) 47%,rgba(0,0,0,.07) 75%,transparent 100%),
    radial-gradient(ellipse 14% 33% at 84% 64%,rgba(0,0,0,.52) 0 15%,rgba(0,0,0,.3) 40%,rgba(0,0,0,.05) 68%,transparent 100%);
  mask-repeat: no-repeat;
  filter: contrast(1.1) brightness(1.04) saturate(.94);
  mix-blend-mode: lighten;
  opacity: 1;
  pointer-events: none;
  will-change: transform;
}
.cbe-private .day-cloud-a{
  left: -43%;
  top: 29%;
  animation: day-cloud-drift-a 20s linear -4s infinite;
}
.cbe-private .day-cloud-b{
  left: -39%;
  top: 44%;
  width: 38%;
  height: 10%;
  background-size: 1120% auto;
  background-position: 0 44.5%;
  opacity: 1;
  animation: day-cloud-drift-b 15s linear -5s infinite;
}
.cbe-private .day-cloud-c{
  left: -31%;
  top: 56%;
  width: 30%;
  height: 8%;
  background-size: 1260% auto;
  background-position: 15% 44.5%;
  animation: day-cloud-drift-c 17s linear -9s infinite;
}
@keyframes day-cloud-drift-a {
  from { transform: translate3d(0,-2px,0) scale(.96); }
  to { transform: translate3d(350%,7px,0) scale(1.08); }
}
@keyframes day-cloud-drift-b {
  from { transform: translate3d(0,-1px,0) scale(.94); }
  to { transform: translate3d(380%,6px,0) scale(1.05); }
}
@keyframes day-cloud-drift-c {
  from { transform: translate3d(0,0,0) scale(.9); }
  to { transform: translate3d(450%,5px,0) scale(1.02); }
}
.cbe-private .room-vignette{
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg,rgba(32,20,13,.28),transparent 39%,transparent 76%,rgba(21,15,12,.08)),
    linear-gradient(0deg,rgba(20,13,9,.24),transparent 34%,rgba(21,14,10,.08));
}

.cbe-private .room-copy{
  --copy-shift: 0px;
  position: absolute;
  z-index: 8;
  right: clamp(42px, 6vw, 92px);
  bottom: clamp(56px, 10vh, 110px);
  width: min(410px, 35vw);
  padding: clamp(20px, 2.3vw, 30px);
  color: #321f14;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 30px;
  background: linear-gradient(135deg,rgba(255,255,255,.34),var(--room-cream-glass));
  box-shadow: 0 18px 50px rgba(49,29,17,.12), inset 0 1px rgba(255,255,255,.4);
  backdrop-filter: blur(8px) saturate(1.04);
  transition: color .45s ease, background .45s ease;
}
.cbe-private .room-copy > *{
  transition: opacity .22s ease, transform .34s cubic-bezier(.22,.8,.24,1);
}
.cbe-private .room-copy.is-switching > *{
  opacity: 0;
  transform: translateY(var(--copy-shift));
}
.cbe-private [data-scene="care"] .room-copy,
.cbe-private [data-scene="climate"] .room-copy{ left: clamp(20px, 6vw, 92px); right: auto; }
.cbe-private [data-scene="care"] .room-copy{ bottom: clamp(54px, 9vh, 96px); }
.cbe-private [data-scene="climate"] .room-copy{ bottom: clamp(62px, 11vh, 118px); }
.cbe-private .room-eyebrow{
  margin: 0 0 14px;
  color: var(--room-gold);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .24em;
}
.cbe-private .room-copy h2{
  margin: 0;
  font-size: clamp(34px,4vw,62px);
  line-height: 1.08;
  letter-spacing: -.055em;
  text-shadow: 0 1px 0 rgba(255,255,255,.58);
}
.cbe-private .room-copy h2 span{ color: #9d6034; }
.cbe-private .room-description{
  margin: 18px 0 0;
  color: #61422f;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.85;
}
.cbe-private .room-description strong{ color: #4a2d1d; font-weight: 800; }
.cbe-private .room-tags{ display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.cbe-private .room-tags span{
  padding: 7px 10px;
  border: 1px solid var(--room-line);
  border-radius: 99px;
  background: rgba(255,255,255,.34);
  font-size: 11px;
}
.cbe-private [data-scene="overview"] .room-eyebrow,
.cbe-private [data-scene="overview"] .room-copy h2,
.cbe-private [data-scene="overview"] .room-description,
.cbe-private [data-scene="overview"] .room-tags span{
  animation: hero-copy-reveal 1s cubic-bezier(.22,.75,.2,1) both;
}
.cbe-private [data-scene="overview"] .room-eyebrow{ animation-delay: .25s; }
.cbe-private [data-scene="overview"] .room-copy h2{ animation-delay: .36s; }
.cbe-private [data-scene="overview"] .room-description{ animation-delay: .48s; }
.cbe-private [data-scene="overview"] .room-tags span:nth-child(1){ animation-delay: .6s; }
.cbe-private [data-scene="overview"] .room-tags span:nth-child(2){ animation-delay: .7s; }
.cbe-private [data-scene="overview"] .room-tags span:nth-child(3){ animation-delay: .8s; }
.cbe-private [data-scene="overview"] .room-tags span:nth-child(4){ animation-delay: .9s; }
@keyframes hero-copy-reveal {
  from { opacity: 0; transform: translateY(16px); filter: blur(6px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

.cbe-private .time-switch{
  position: absolute;
  z-index: 10;
  top: 92px;
  right: clamp(26px, 5vw, 78px);
  width: 132px;
  height: 42px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 4px;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 99px;
  background: rgba(35,25,19,.42);
  box-shadow: 0 8px 30px rgba(23,15,11,.14);
  backdrop-filter: blur(12px);
}
.cbe-private .time-switch button{
  position: relative;
  z-index: 2;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 11px;
  opacity: .62;
  transition: opacity .25s ease, color .25s ease;
}
.cbe-private .time-switch button[aria-pressed="true"]{ color: #4d301e; opacity: 1; }
.cbe-private .time-switch i{
  position: absolute;
  z-index: 1;
  left: 4px;
  top: 4px;
  width: 62px;
  height: 32px;
  border-radius: 99px;
  background: rgba(255,246,232,.92);
  transition: transform .6s cubic-bezier(.22,.75,.2,1);
}
.cbe-private .time-switch.is-night i{ transform: translateX(62px); }

.cbe-private .room-progress{
  position: absolute;
  z-index: 10;
  right: clamp(10px, 1.7vw, 28px);
  top: 50%;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transform: translateY(-50%);
}
.cbe-private .room-progress button{
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 8px;
  min-width: 66px;
  padding: 4px;
  border: 0;
  color: #fff;
  background: transparent;
  font-size: 10px;
  text-shadow: 0 1px 4px rgba(0,0,0,.3);
}
.cbe-private .room-progress button i{
  width: 6px;
  height: 6px;
  border: 1px solid rgba(255,255,255,.76);
  border-radius: 50%;
  background: rgba(61,39,25,.22);
  transition: transform .25s ease, background .25s ease;
}
.cbe-private .room-progress button span{ opacity: 0; transform: translateX(5px); transition: .25s ease; }
.cbe-private .room-progress button:hover span,
.cbe-private .room-progress button:focus-visible span,
.cbe-private .room-progress button.is-active span{ opacity: 1; transform: none; }
.cbe-private .room-progress button.is-active i{ background: #fff3df; transform: scale(1.65); }

.cbe-private .room-step{ height: 200svh; pointer-events: none; }

.cbe-private .feeder-motion{ position: absolute; z-index: 4; left: 49.4%; top: 65%; width: 7%; height: 17%; }
.cbe-private .food-drop{
  position: absolute;
  left: 45%;
  top: 63%;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: radial-gradient(circle at 34% 28%,#e5a052 0 22%,#b96d2d 43%,#7e3d17 100%);
  box-shadow: 0 1px 2px rgba(92,43,16,.34), inset 0 0 1px rgba(255,221,169,.55);
  opacity: 0;
  --food-x: 0px;
  --food-start-y: -6px;
  --food-end-y: 22px;
}
.cbe-private .food-drop:nth-child(2){ left: 50%; width: 2px; height: 2px; --food-x: 2px; }
.cbe-private .food-drop:nth-child(3){ left: 56%; width: 4px; height: 4px; --food-x: -1px; }
.cbe-private .food-drop:nth-child(4){ left: 60%; --food-x: -2px; }
.cbe-private .food-drop:nth-child(5){ left: 48%; width: 2px; height: 2px; --food-x: 3px; }
.cbe-private .food-drop:nth-child(6){ left: 54%; --food-x: 1px; }
.cbe-private .food-drop:nth-child(7){ left: 43%; width: 2px; height: 2px; --food-x: 2px; }
.cbe-private [data-scene="care"] .food-drop{ animation: room-food-drop 1.6s .25s cubic-bezier(.24,.75,.28,1) both; }
.cbe-private [data-scene="care"] .food-drop:nth-child(2){ animation-delay: .42s; }
.cbe-private [data-scene="care"] .food-drop:nth-child(3){ animation-delay: .59s; }
.cbe-private [data-scene="care"] .food-drop:nth-child(4){ animation-delay: .76s; }
.cbe-private [data-scene="care"] .food-drop:nth-child(5){ animation-delay: .93s; }
.cbe-private [data-scene="care"] .food-drop:nth-child(6){ animation-delay: 1.1s; }
.cbe-private [data-scene="care"] .food-drop:nth-child(7){ animation-delay: 1.27s; }
@keyframes room-food-drop {
  0% { opacity: 0; transform: translate(var(--food-x),var(--food-start-y)) scale(.8); }
  25% { opacity: 1; }
  100% { opacity: 0; transform: translate(var(--food-x),var(--food-end-y)) scale(1); }
}

.cbe-private .water-motion{ position: absolute; z-index: 4; left: 55.8%; top: 69.3%; width: 7.2%; height: 10%; }
.cbe-private .water-stream{
  position: absolute;
  left: 47%;
  top: 23%;
  width: 4px;
  height: 20px;
  border-radius: 99px;
  background: linear-gradient(rgba(232,255,255,.92),rgba(105,213,237,.72));
  opacity: 0;
  transform-origin: 50% 0;
  will-change: opacity, transform;
}
.cbe-private .water-ripple{
  position: absolute;
  left: 20%;
  right: 20%;
  top: 38.5%;
  height: 10%;
  border: 1px solid rgba(207,250,255,.82);
  border-radius: 50%;
  opacity: 0;
}
.cbe-private .water-stream{ animation: water-flow 1.2s linear infinite; }
.cbe-private .water-ripple{ animation: water-ripple 1.4s ease-out infinite; }
@keyframes water-flow {
  0%,100% { opacity: .38; transform: scaleY(.78); }
  50% { opacity: .88; transform: scaleY(1); }
}
@keyframes water-ripple { 0% { opacity: .75; transform: scale(.7); } 100% { opacity: 0; transform: scale(1.18); } }

.cbe-private .litter-motion{
  position: absolute;
  z-index: 4;
  left: 67.2%;
  top: 52.5%;
  width: 14%;
  height: 26.5%;
  filter: brightness(var(--litter-brightness,1)) drop-shadow(0 8px 7px rgba(55,36,24,.2));
  will-change: filter;
}
.cbe-private .litter-globe{
  position: absolute;
  z-index: 2;
  left: 0;
  top: 0;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 50%;
}
.cbe-private .litter-globe-rotor{
  position: absolute;
  inset: 0;
  opacity: 1;
  transform-origin: 50% 50%;
}
.cbe-private .litter-globe-image{
  position: absolute;
  left: -21.7%;
  top: -15.1%;
  width: 143.8%;
  height: 136.9%;
  max-width: none;
  pointer-events: none;
  object-fit: fill;
}
.cbe-private .litter-base-image{
  position: absolute;
  z-index: 3;
  left: -21.5%;
  top: 18%;
  width: 143%;
  max-width: none;
  height: auto;
  pointer-events: none;
  transform: scaleY(1.12);
  transform-origin: 50% 65.2%;
}
.cbe-private [data-scene="climate"] .litter-globe-rotor{ animation: litter-globe-cycle 6.8s .15s cubic-bezier(.42,0,.2,1) infinite; }
@keyframes litter-globe-cycle {
  0%,8% { transform: rotate(0); }
  57% { transform: rotate(-148deg); }
  68% { transform: rotate(-148deg); }
  94%,100% { transform: rotate(0); }
}

.cbe-private .climate-motion{ position: absolute; z-index: 4; left: 75.8%; top: 13.5%; width: 4.8%; height: 11%; }
.cbe-private .climate-motion i{
  position: absolute;
  right: 0;
  top: 5%;
  width: 70%;
  height: 20%;
  border-bottom: 2px solid rgba(170,242,232,.72);
  border-radius: 50%;
  opacity: 0;
}
.cbe-private .climate-motion i:nth-child(2){ right: 18%; top: 36%; }
.cbe-private .climate-motion i:nth-child(3){ right: 36%; top: 67%; }
.cbe-private .climate-motion i{ animation: climate-air 2s ease-in-out infinite; }
.cbe-private .climate-motion i:nth-child(2){ animation-delay: .45s; }
.cbe-private .climate-motion i:nth-child(3){ animation-delay: .9s; }
@keyframes climate-air {
  0% { opacity: 0; transform: translateX(8px) scaleX(.68); }
  38% { opacity: .82; }
  100% { opacity: 0; transform: translateX(-28px) scaleX(1.12); }
}

.cbe-private .purifier-motion{ position: absolute; z-index: 4; left: 86.5%; top: 63%; width: 7.5%; height: 17%; }
.cbe-private .purifier-motion i{
  position: absolute;
  top: 10%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(145,239,221,.88);
  box-shadow: 0 0 8px rgba(95,224,201,.8);
  opacity: 0;
}
.cbe-private .purifier-motion i:nth-child(1){ left: 12%; }
.cbe-private .purifier-motion i:nth-child(2){ left: 30%; width: 3px; height: 3px; }
.cbe-private .purifier-motion i:nth-child(3){ left: 50%; }
.cbe-private .purifier-motion i:nth-child(4){ left: 69%; width: 3px; height: 3px; }
.cbe-private .purifier-motion i:nth-child(5){ left: 86%; }
.cbe-private [data-scene="climate"] .purifier-motion i{ animation: purified-air 2.1s ease-out infinite; }
.cbe-private [data-scene="climate"] .purifier-motion i:nth-child(2){ animation-delay: .38s; }
.cbe-private [data-scene="climate"] .purifier-motion i:nth-child(3){ animation-delay: .76s; }
.cbe-private [data-scene="climate"] .purifier-motion i:nth-child(4){ animation-delay: 1.14s; }
.cbe-private [data-scene="climate"] .purifier-motion i:nth-child(5){ animation-delay: 1.52s; }
@keyframes purified-air {
  0% { opacity: 0; transform: translateY(8px) scale(.7); }
  28% { opacity: .9; }
  100% { opacity: 0; transform: translateY(-38px) scale(1.25); }
}

@media (max-width: 900px) {
  .cbe-private .room-header{ height: 64px; padding: 0 17px; }
  .cbe-private .room-header nav{ gap: 16px; }
  .cbe-private .boarding-intro{
    min-height: 1200px;
  }
  .cbe-private .boarding-stage{
    min-height: 600px;
    background:
      radial-gradient(circle at 12% 20%,rgba(255,255,255,.94),transparent 36%),
      linear-gradient(180deg,#faf3e9 0 62%,#efe5d8 62% 100%);
  }
  .cbe-private .boarding-stage::before{
    width: 125vw;
    left: -48vw;
    top: -8vh;
  }
  .cbe-private .boarding-stage::after{
    width: 82vw;
    right: -40vw;
    bottom: -12vh;
  }
  .cbe-private .boarding-copy{
    left: 18px;
    right: 18px;
    top: auto;
    bottom: 26px;
    width: auto;
    transform: translateY(var(--intro-copy-y,0px));
  }
  .cbe-private .boarding-eyebrow{
    margin-bottom: 10px;
    font-size: 8px;
  }
  .cbe-private .boarding-copy h1{
    font-size: clamp(39px,11.4vw,52px);
    line-height: .94;
  }
  .cbe-private .boarding-tagline{
    margin-top: 13px;
    font-size: 15px;
  }
  .cbe-private .boarding-tech-note{
    margin-top: 9px;
    padding: 6px 9px;
    font-size: 10px;
  }
  .cbe-private .boarding-summary{
    margin-top: 10px;
    padding-top: 10px;
  }
  .cbe-private .boarding-summary p{
    font-size: 12.5px;
    line-height: 1.55;
  }
  .cbe-private .boarding-principles{
    margin-top: 10px;
    gap: 7px;
  }
  .cbe-private .boarding-principles article{
    padding: 8px 9px;
    border-radius: 12px;
  }
  .cbe-private .boarding-principles b{
    margin-bottom: 3px;
    font-size: 10px;
  }
  .cbe-private .boarding-principles span{
    font-size: 9.5px;
    line-height: 1.42;
  }
  .cbe-private .boarding-portal{
    border-radius: var(--portal-radius,30px);
  }
  .cbe-private .boarding-portal-label{
    left: 14px;
    bottom: 12px;
    padding: 6px 8px;
    font-size: 7px;
  }
  .cbe-private .room-stage{
    min-height: 600px;
    background: linear-gradient(180deg,#d8c4ad 0 62%,#efe5d8 62% 100%);
  }
  .cbe-private .room-viewport{
    inset: 64px 0 auto;
    height: clamp(360px,57svh,520px);
    overflow: hidden;
  }
  .cbe-private .room-copy{
    left: 16px !important;
    right: 16px !important;
    bottom: 14px !important;
    width: auto;
    height: clamp(218px,29svh,260px);
    max-height: none;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
    padding: 18px 20px;
    border-radius: 22px;
    background: linear-gradient(135deg,rgba(255,255,255,.78),rgba(255,249,240,.66));
    box-shadow: 0 14px 38px rgba(49,29,17,.1), inset 0 1px rgba(255,255,255,.7);
    backdrop-filter: blur(12px) saturate(1.04);
  }
  .cbe-private .room-copy::-webkit-scrollbar{ display: none; }
  .cbe-private .room-copy h2{ font-size: clamp(28px, 8vw, 40px); }
  .cbe-private .room-description{ margin-top: 12px; font-size: 13px; line-height: 1.55; }
  .cbe-private .room-tags{ margin-top: 12px; }
  .cbe-private .room-tags span{ padding: 6px 8px; font-size: 10px; }
  .cbe-private .time-switch{ top: 78px; right: 16px; }
  .cbe-private .room-progress{ right: 5px; top: 34%; }
  .cbe-private .room-progress button{ min-width: 20px; }
  .cbe-private .room-progress button span{ display: none; }
  .cbe-private .water-stream{
    left: 47%;
    width: 4%;
    min-width: 2px;
    height: 20%;
    transform-origin: 50% 0;
  }
  .cbe-private .food-drop{
    --food-start-y: -2px;
    --food-end-y: 11px;
  }
  .cbe-private .feeder-motion{ left: 49.05%; }
}

@media (max-width: 560px) {
  .cbe-private .room-brand small{ display: none; }
  .cbe-private .room-header nav{ font-size: 12px; }
  .cbe-private .room-copy{
    padding: 15px 17px;
  }
  .cbe-private .room-eyebrow{ margin-bottom: 9px; font-size: 8px; }
  .cbe-private .room-copy h2{ font-size: clamp(25px, 7.7vw, 31px); }
  .cbe-private .room-description{ margin-top: 10px; }
  .cbe-private .room-tags span:nth-child(n+4){ display: none; }
}

@media (max-width: 400px) {
  .cbe-private .boarding-copy h1{ font-size: clamp(36px,10.8vw,43px); }
  .cbe-private .boarding-tagline{ font-size: 14px; }
  .cbe-private .boarding-summary p{ font-size: 12px; }
  .cbe-private .boarding-principles span{ font-size: 9px; }
  .cbe-private .room-copy{ height: clamp(224px,30svh,244px); }
  .cbe-private .room-tags span:nth-child(n+3){ display: none; }
}

@media (max-width: 900px) and (max-height: 720px) {
  .cbe-private .boarding-copy{ bottom: 18px; }
  .cbe-private .boarding-eyebrow{ margin-bottom: 7px; }
  .cbe-private .boarding-copy h1{ font-size: clamp(34px,10.2vw,42px); }
  .cbe-private .boarding-tagline{ margin-top: 9px; font-size: 13px; }
  .cbe-private .boarding-tech-note{ margin-top: 7px; }
  .cbe-private .boarding-summary{ margin-top: 8px; padding-top: 8px; }
  .cbe-private .boarding-summary p{ font-size: 11.5px; line-height: 1.45; }
  .cbe-private .boarding-principles{ margin-top: 7px; }
  .cbe-private .boarding-principles article{ padding: 6px 8px; }
  .cbe-private .boarding-principles span{ font-size: 8.7px; line-height: 1.35; }
}

@media (prefers-reduced-motion: reduce) {
  .cbe-private .night-stars i,
  .cbe-private .day-cloud,
  .cbe-private .boarding-copy > *,
  .cbe-private .boarding-copy h1 span,
  .cbe-private .boarding-portal-glow,
  .cbe-private .room-copy > *,
  .cbe-private .room-tags span{
    animation: none !important;
  }
  .cbe-private .night-stars i{ opacity: .48; }
}
