/* Responsive raster viewports retain the existing story stages and controls. */
.bivo-story-art { display: block; width: 100%; height: auto; }
.bivo-story-art image { pointer-events: none; }
.rc-apartment.bivo-story-art { height: 100%; }
.bivo-inventory-labels rect { fill: #fff; stroke: #d6e3ec; }
.bivo-inventory-labels text { fill: #003153; text-anchor: middle; font-family: inherit; font-size: 14px; font-weight: 500; }

#home-cinema .bivo-home-world .hj-house,
#home-cinema [data-phase] .bivo-home-world .hj-house {
  position: absolute; inset: 0 6% 16%; width: 88%; height: 84%; margin: 0;
  mask-image: none; -webkit-mask-image: none;
  transform: translate(var(--bivo-house-x, 0), var(--bivo-house-y, 0)) scale(var(--bivo-house-scale, 1));
  opacity: var(--bivo-house-opacity, 1); transform-origin: center;
}
#home-cinema .bivo-home-equipment,
#home-cinema .bivo-home-interior {
  position: absolute; inset: 0 0 18%; width: 100%; height: 82%;
  opacity: 0; visibility: hidden; transition: opacity .65s ease, transform .85s ease, visibility .65s;
}
#home-cinema .bivo-home-equipment svg { width: 100%; height: 100%; }
#home-cinema [data-phase="1"] .bivo-home-world { --bivo-house-opacity: .10; --bivo-house-scale: .84; }
#home-cinema [data-phase="1"] .bivo-home-equipment { opacity: 1; visibility: visible; transform: translateY(-7%); }
#home-cinema [data-phase="2"] .bivo-home-world,
#home-cinema [data-phase="3"].repair-entered .bivo-home-world { --bivo-house-opacity: 0; }
#home-cinema [data-phase="2"] .bivo-home-interior,
#home-cinema [data-phase="3"].repair-entered .bivo-home-interior { opacity: 1; visibility: visible; }
#home-cinema [data-phase="3"]:not(.repair-arriving) .bivo-home-world { --bivo-house-opacity: .15; --bivo-house-scale: .9; }
#home-cinema [data-phase="4"] .bivo-home-world { --bivo-house-opacity: .08; }
#home-cinema .bivo-service-arrival { position: absolute; left: 12%; bottom: 9%; width: 77%; height: 39%; }
#home-cinema .bivo-service-arrival svg { height: 100%; }
#home-cinema .bivo-home-world .hj-overlays { z-index: 2; }
/* Leave clearance around both mockups inside the clipped story viewport. */
#home-cinema .hj-overlay[data-home-scene="homeApproval"] .repair-phone,
#home-cinema .hj-overlay[data-home-scene="homeClaim"] .claim-document {
  scale: .8; transform-origin: center bottom;
}
#home-cinema .bivo-static-home .home-house { height: 270px; max-height: none; transform: none; opacity: 1; }
#home-cinema .bivo-static-home .incident-message,
#home-cinema .bivo-static-home .repair-phone,
#home-cinema .bivo-static-home .claim-document { position: relative; margin: 0 auto; }
#home-cinema .hc-static [data-home-visual="homeApproval"] .repair-phone {
  display: flex; opacity: 1; visibility: visible; transform: none;
}
#home-cinema .hc-static [data-home-visual="homeRepair"] .repair-caption {
  position: relative; inset: auto; opacity: 1; transform: none; margin: 16px auto;
}
#home-cinema .home-service-record { margin: 14px 0 0; font-size: 13px; line-height: 1.5; color: #58738a; }

.bivo-repair-check, .bivo-service-check { opacity: 0; transition: opacity .5s; }
.rc-fixed .bivo-repair-check,
.ha-service-complete .bivo-service-check,
.hb-static-stage[data-hb-step="3"] .bivo-service-check { opacity: 1; }
#long-cinema .bivo-long-property .tc-block-camera { transform: none; }
#long-cinema .bivo-long-property .tc-unit-interior { opacity: var(--tc-property-open, 0); }
#long-cinema .bivo-long-property .tc-property-facade { transform: none; }
#long-cinema .tc-worker { opacity: 0; transition: opacity .5s, transform .6s; }
#long-cinema [data-step="3"] .tc-worker { opacity: 1; transform: translate(var(--worker-travel, 0px), var(--worker-rise, 0px)); }
#long-cinema .tc-worker-leaving .tc-worker { opacity: 0; transform: translate(50px, 20px); }
.bivo-hotel-model .model-building { transform: none; }
.bivo-hotel-model .bivo-hotel-shell { opacity: 0; }
.bivo-hotel-model .bivo-hotel-rooms { opacity: 1; }
/* Exterior and cutaway (guest rooms plus reception) share identical geometry. */
#hotel-experience .hb-stage.hb-opening .hb-building {
  clip-path: none; opacity: 1 !important; visibility: visible !important; will-change: auto;
}
#hotel-experience .hb-opening .bivo-hotel-shell { opacity: calc(1 - var(--hb-reveal, 0)); }
#hotel-experience .hb-building .ha-hotel-camera { transform-origin: 549px 178px; }
.bivo-hotel-inventory {
  position: absolute; z-index: 3; left: -18px; bottom: 12px; width: 238px;
  padding: 16px 12px 12px; border: 1px solid #dce6f0; border-radius: 16px;
  background: #fff; color: #003153; box-shadow: 0 12px 32px #00315312;
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(10px); transition: opacity .3s, transform .3s, visibility .3s;
}
.bivo-hotel-inventory .bivo-inventory-title {
  margin: 0 4px 10px; padding-left: 11px; border-left: 3px solid #ece4b7;
  font-size: .875rem; line-height: 1.4; font-weight: 700;
}
.bivo-hotel-inventory ol { list-style: none; margin: 0; padding: 0; }
.bivo-hotel-inventory li + li { margin-top: 4px; }
.bivo-inventory-row {
  display: flex; align-items: center; gap: 10px; width: 100%; min-height: 40px;
  padding: 7px 9px; border: 0; border-radius: 9px; background: transparent;
  color: #003153; font: inherit; font-size: .875rem; line-height: 1.4; text-align: left;
  cursor: pointer; transition: background .2s, color .2s;
}
.bivo-inventory-number {
  display: grid; place-items: center; flex: 0 0 25px; height: 25px;
  border-radius: 50%; background: #edf2fb; color: #225ecf; font-weight: 700;
}
.bivo-inventory-row.is-active { background: #edf2fb; color: #225ecf; font-weight: 700; }
.bivo-inventory-row.is-active .bivo-inventory-number { background: #225ecf; color: #fff; }
.bivo-inventory-row:focus-visible { outline: 2px solid #225ecf; outline-offset: 2px; }
.bivo-hotel-inventory .bivo-inventory-footer {
  margin: 10px 4px 0; padding-top: 9px; border-top: 1px solid #e9eef5;
  font-size: .75rem; line-height: 1.5; color: #58738a;
}
#hotel-experience .hb-stage[data-hb-chapter="0"]:not(.hb-opening) .bivo-hotel-inventory {
  opacity: 1; visibility: visible; pointer-events: auto; transform: none;
}
.bivo-hotel-infrastructure-map { opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
#hotel-experience .hb-stage[data-hb-chapter="0"] .bivo-hotel-infrastructure-map { opacity: 1; visibility: visible; }
#hotel-experience .hb-stage.hb-opening .bivo-hotel-infrastructure-map { opacity: var(--hb-label-reveal, 0); pointer-events: none; }
.bivo-ac-outline { fill: #225ecf18; stroke: #225ecf; stroke-width: 2.5; }
.bivo-infra-leader { fill: none; stroke: #225ecf; stroke-width: 2.5; }
.bivo-infra-pin { cursor: pointer; }
.bivo-infra-halo { fill: #225ecf; opacity: .1; }
.bivo-infra-pin-symbol { transform-box: fill-box; transform-origin: center; transition: transform .25s; }
.bivo-infra-dot { fill: #225ecf; stroke: white; stroke-width: 3; filter: drop-shadow(0 2px 4px #00315330); }
.bivo-infra-pin text { fill: #fff; font-family: inherit; font-size: 18px; font-weight: 700; pointer-events: none; }
.bivo-infra-pin.is-active .bivo-infra-pin-symbol { transform: scale(1.18); }
.bivo-infra-pin.is-active .bivo-infra-halo { opacity: .22; stroke: #ece4b7; stroke-width: 3; }
#hotel-experience .hb-stage[data-hb-chapter="0"]:not(.hb-opening) .bivo-infra-pin.is-active .bivo-infra-halo {
  animation: bivo-infrastructure-pulse 2.4s ease-in-out 2;
}
@keyframes bivo-infrastructure-pulse { 50% { r: 35px; opacity: .12; } }
@media (max-width: 760px) {
  .bivo-hotel-inventory { left: 0; bottom: 0; width: min(228px, 76%); padding: 14px 11px 11px; }
}
.bivo-damage-picture { background: #edf2fb; }

@media (prefers-reduced-motion: reduce) {
  .bivo-home-world *, .bivo-story-art * { transition: none !important; }
  .bivo-hotel-inventory, .bivo-inventory-row { transition: none !important; }
  #hotel-experience .bivo-infra-halo { animation: none !important; }
}
