/* V6.4: a single illuminated indigo textile beneath the entire invitation.
   Content and approved photography stay above this decorative plane. */
.v64 body { isolation: isolate; }
.indigo-atmosphere {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  contain: strict;
  pointer-events: none;
  background: #050b14;
}
.indigo-atmosphere canvas,
.indigo-atmosphere-fallback { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.indigo-atmosphere canvas { display: block; opacity: 0; transition: opacity 800ms ease; }
.indigo-atmosphere.has-webgl canvas { opacity: 1; }
.indigo-atmosphere-fallback {
  inset: -5%; width: 110%; height: 110%;
  background-image: linear-gradient(90deg,#03091299,#03091255 58%,#03091244),url('/assets/release-v4/indigo-strata.webp');
  background-size: cover,auto 220%;
  background-position: center,68% 12%;
  background-repeat: no-repeat;
  opacity: .36;
  transform: translate3d(0,0,0) scale(1.025);
}
.indigo-atmosphere.has-webgl .indigo-atmosphere-fallback { visibility: hidden; }
.indigo-atmosphere:not(.has-webgl) .indigo-atmosphere-fallback { animation: indigo-material-fallback 16s ease-in-out infinite alternate; animation-play-state: paused; }
.indigo-atmosphere:not(.has-webgl).is-atmosphere-live .indigo-atmosphere-fallback { animation-play-state: running; }
@keyframes indigo-material-fallback { to { transform: translate3d(-1.4%,1.2%,0) scale(1.06); } }
.v64 main,.v64 .site-footer { position: relative; z-index: 1; }
.v64 .site-header { -webkit-backdrop-filter: none; backdrop-filter: none; }
/* Fade only blank negative space into the shared material. A second vertical
   mask makes the photographed vessels, table and cord fully opaque. */
.v64 .hero-picture {
  -webkit-mask-image: linear-gradient(90deg,#0003,#000 48%),linear-gradient(180deg,transparent 32%,#000 56%);
  -webkit-mask-composite: source-over;
  mask-image: linear-gradient(90deg,#0003,#000 48%),linear-gradient(180deg,transparent 32%,#000 56%);
  mask-composite: add;
}
.v64 .request-art > img {
  -webkit-mask-image: linear-gradient(90deg,#0009,#000 24%);
  mask-image: linear-gradient(90deg,#0009,#000 24%);
}
.v64 .experience { background: linear-gradient(90deg,#040b1459,#040b14a1 45%,#040b1473); }
.v64 .service-ledger { background: linear-gradient(90deg,#050c1673,#050c16b0 48%,#050c166b); }
.v64 .indigo { background: linear-gradient(90deg,#040b1470,#040b14b5 48%,#040b146b); }
.v64 .story-card { background: linear-gradient(90deg,#050c167a,#050c16b8 48%,#050c167a); }
.v64 .membership { background: linear-gradient(90deg,#0409126b,#040912b8 48%,#04091266); }
.v64 .request { background: #060d17c9; }
.v64 .request-form-panel { background: #080f19e8; }
.v64 .site-footer { background: #040a12b0; }
.v64 :is(.motion-off,.is-motion-still) .indigo-atmosphere-fallback,
.v64.motion-off .indigo-atmosphere-fallback,
.v64.is-motion-still .indigo-atmosphere-fallback,
.v64.is-page-hidden .indigo-atmosphere-fallback { animation-play-state: paused; }
.v64.motion-off .indigo-atmosphere canvas,
.v64.is-motion-still .indigo-atmosphere canvas { transition: none; }
@media (max-width: 760px) {
  .v64 :is(.experience,.service-ledger,.indigo,.story-card,.membership) { background: linear-gradient(90deg,#040b145c,#040b1494 48%,#040b145c); }
  .indigo-atmosphere-fallback { opacity: .30; }
  .v64 .hero-picture {
    -webkit-mask-image: linear-gradient(90deg,#0005,#000 46%),linear-gradient(180deg,transparent 20%,#000 38%);
    mask-image: linear-gradient(90deg,#0005,#000 46%),linear-gradient(180deg,transparent 20%,#000 38%);
  }
}
@media print { .indigo-atmosphere { display: none !important; } }
