/*!
 * Crit Lab 背景アニメーション — CSS
 * すべてのクラスは .critlab-bg-anim から始まる（既存CSSと競合しない）
 */
.critlab-bg-anim {
  --critlab-bg-anim-color: #FFF7D6;
  --critlab-bg-anim-z: -1;
  position: fixed;
  top: 0;
  left: var(--sidebar-w, 0px);
  width: calc(100vw - var(--sidebar-w, 0px));
  height: 100vh;
  height: 100lvh; /* スマホのアドレスバー伸縮で形が跳ねないよう最大ビューポートで固定 */
  overflow: hidden;
  pointer-events: none;
  z-index: var(--critlab-bg-anim-z);
  contain: strict;
  opacity: 1;
  visibility: visible;
  transition: opacity .6s ease, visibility 0s linear 0s;
}
.critlab-bg-anim.is-hidden {
  opacity: 0;
  visibility: hidden;
  transition: opacity .6s ease, visibility 0s linear .6s;
}

.critlab-bg-anim__svg {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  fill: var(--critlab-bg-anim-color);
}

/* カメラ：CSSアニメーションのみ（JSの毎フレーム処理なし） */
.critlab-bg-anim__camera {
  position: absolute;
  left: 11%;
  top: 76%;
  width: clamp(108px, 11.8vw, 168px);
  transform: translate(-50%, -50%);
}
.critlab-bg-anim__camera-inner {
  display: block;
  width: 100%;
  height: auto;
  fill: var(--critlab-bg-anim-color);
  animation: critlab-bg-anim-float 13s ease-in-out infinite;
  will-change: transform;
}
.critlab-bg-anim.is-paused .critlab-bg-anim__camera-inner,
.critlab-bg-anim.is-hidden .critlab-bg-anim__camera-inner {
  animation-play-state: paused;
}

@keyframes critlab-bg-anim-float {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(-9deg); }
  25%      { transform: translate3d(4px, -9px, 0) rotate(-6deg); }
  50%      { transform: translate3d(0, -16px, 0) rotate(-4deg); }
  75%      { transform: translate3d(-4px, -7px, 0) rotate(-7deg); }
}

@media (max-width: 767px) {
  .critlab-bg-anim__camera {
    left: 14%;
    top: 70%;
    width: clamp(80px, 27vw, 112px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .critlab-bg-anim__camera-inner { animation: none; transform: rotate(-8deg); }
  .critlab-bg-anim, .critlab-bg-anim.is-hidden { transition: none; }
}

@media print {
  .critlab-bg-anim { display: none; }
}

/* v0.5.37: site-specific trial scope; animations never affect the fixed navigation. */
body.critlab-bg-trial .main { position:relative; isolation:isolate; background:transparent; }
body.critlab-bg-trial .main > .critlab-bg-anim { --critlab-bg-anim-z:-1; }
/* Reset the top of the first-viewport shell independently of other pages. */
/* Former trial-only top margin reset removed: the shared rounded FV card owns its 16px gap. */
@media(max-width:767px) {
  body.critlab-bg-trial .main > .critlab-bg-anim {left:0;width:100vw;}
}

/* v0.5.38 — apply the already-approved fixed animation to all site templates.
   The left sidebar remains outside the isolated .main stacking context. */
body.critlab-bg-enabled .main {
  position: relative;
  isolation: isolate;
  background: transparent;
}
body.critlab-bg-enabled .main > .critlab-bg-anim {
  --critlab-bg-anim-z: -1;
}
@media (max-width: 767px) {
  body.critlab-bg-enabled .main > .critlab-bg-anim {
    left: 0;
    width: 100vw;
  }
}


/* v0.5.39 — unified cream canvas: section fills no longer obscure the
 * fixed decoration. Keep the photo/graphic hero, footer, sidebar, CTA,
 * and white information cards unchanged. */
body.critlab-site-template-active.critlab-bg-enabled .main {
  background-color: #FFFBEB;
  position: relative;
  isolation: isolate;
}
/* Background remains behind headings, cards and controls. */
body.critlab-site-template-active.critlab-bg-enabled .main > .critlab-bg-anim {
  --critlab-bg-anim-z: -1;
}
body.critlab-site-template-active.critlab-bg-enabled .main :is(
  .section-soft, .movie-band, .floor-planning, .rental
) {
  background-color: transparent;
}
