/* Isolated hero treatment. Restore the saved index.html to roll back. */
.hero--breathing {
  grid-template-columns: 1fr 1fr;
  min-height: 710px;
  max-width: none;
  padding-inline: max(0px, calc((100% - 1720px) / 2));
  background-color: #eee6d7;
  background-image:
    linear-gradient(90deg, #f5f1e9d1 0%, #f5f1e99e 36%, #f5f1e92b 68%, #f5f1e914 100%),
    url('assets/hero-plaster-background.jpg');
  background-size: cover;
  background-position: center bottom;
  background-repeat: no-repeat;
  overflow: hidden;
  isolation: isolate;
}
.hero--breathing .hero-copy { position: relative; z-index: 2; }
.enso-scene {
  --enso-x: 0px;
  --enso-y: 0px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  min-width: 0;
  min-height: 710px;
  padding: 65px 30px 34px;
  isolation: isolate;
  background: transparent;
}
.enso-scene::before {
  content: '';
  position: absolute;
  z-index: -1;
  width: 85%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(ellipse, #bcc7b451, #ddd2b52e 48%, transparent 70%);
  filter: blur(24px);
  animation: enso-halo 10s cubic-bezier(.45,0,.35,1) infinite;
}
.enso-light {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}
.enso-light::before,
.enso-light::after {
  content: '';
  position: absolute;
  width: 90%;
  height: 65%;
  top: 10%;
  left: 15%;
  border-radius: 50%;
  background: radial-gradient(ellipse, #ead7aa4a, transparent 68%);
  filter: blur(28px);
  animation: enso-daylight 24s ease-in-out infinite alternate;
}
.enso-light::after {
  width: 65%;
  top: 40%;
  left: -10%;
  background: radial-gradient(ellipse, #abbba72b, transparent 68%);
  animation-delay: -12s;
  animation-direction: alternate-reverse;
}
.enso-kicker {
  margin: 0 0 19px;
  color: #727c6d;
  font-size: .625rem;
  letter-spacing: .26em;
  text-transform: uppercase;
}
.enso-space { position: relative; width: 100%; max-width: 610px; aspect-ratio: 1; }
.enso-parallax {
  width: 100%;
  height: 100%;
  transform: translate(var(--enso-x), var(--enso-y));
  transition: transform 1.8s cubic-bezier(.16,1,.3,1);
}
.enso-drift {
  width: 100%;
  height: 100%;
  animation: enso-drift 26s ease-in-out infinite;
}
.enso-brush {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  transform-origin: 50% 50%;
  animation: enso-breathe 10s cubic-bezier(.45,0,.35,1) infinite;
  will-change: transform;
}
.enso-center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  padding-bottom: 1%;
  font-family: var(--serif);
  font-size: clamp(2rem,3.65vw,3.8rem);
  line-height: 1.12;
  letter-spacing: -.045em;
  color: var(--ink);
}
.enso-center em { font-weight: 400; color: #5b6b58; }
.enso-bottom {
  width: 100%;
  margin-top: 23px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px 20px;
}
.enso-caption {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 10px;
  font-size: .6875rem;
  letter-spacing: .025em;
  color: #727c6d;
}
.enso-breath-dot {
  width: 5px;
  height: 5px;
  flex: none;
  border-radius: 50%;
  background: #87947b;
  animation: enso-dot 10s cubic-bezier(.45,0,.35,1) infinite;
}
.enso-scene[data-motion-paused] *,
.enso-scene[data-motion-paused]::before,
.enso-scene[data-motion-paused] *::before,
.enso-scene[data-motion-paused] *::after { animation-play-state: paused !important; }
.enso-scene[data-motion-paused] .enso-parallax { transition: none; }

@keyframes enso-breathe {
  0%,100% { transform: scale(.955,.968) rotate(-1.1deg); }
  48% { transform: scale(1.025,1.012) rotate(1.1deg); }
}
@keyframes enso-drift {
  0%,100% { transform: translate(0,3px) rotate(-.5deg); }
  45% { transform: translate(3px,-5px) rotate(.65deg); }
  75% { transform: translate(-2px,0) rotate(-.2deg); }
}
@keyframes enso-halo {
  0%,100% { transform: scale(.87); opacity: .52; }
  48% { transform: scale(1.1); opacity: .95; }
}
@keyframes enso-daylight {
  from { transform: translate(-5%,-4%) rotate(-12deg); opacity: .5; }
  to { transform: translate(7%,8%) rotate(10deg); opacity: .95; }
}
@keyframes enso-dot {
  0%,100% { transform: scale(.8); opacity: .45; }
  48% { transform: scale(1.2); opacity: .9; }
}
@media (min-width:1600px) {
  .hero--breathing { min-height: 800px; }
  .enso-scene { min-height: 800px; }
}
@media (max-width:1000px) {
  .hero--breathing, .enso-scene { min-height: 660px; }
  .enso-scene { padding-inline: 10px; }
  .enso-bottom { gap: 4px 10px; }
  .enso-caption { font-size: .625rem; gap: 7px; }
}
@media (max-width:760px) {
  .hero--breathing {
    min-height: 0;
    background-image:
      linear-gradient(180deg, #f5f1e9c9 0%, #f5f1e9a8 43%, #f5f1e940 76%, #f5f1e92b 100%),
      url('assets/hero-plaster-background.jpg');
    background-position: 22% bottom;
  }
  .hero--breathing .hero-copy { padding-bottom: 20px; }
  .enso-scene { order: -1; min-height: 0; padding: 20px 6% 28px; }
  .enso-space { width: 100%; max-width: 470px; }
  .enso-kicker { margin-bottom: 6px; font-size: .5625rem; }
  .enso-center { font-size: clamp(2rem,8.5vw,3.5rem); }
  .enso-bottom { margin-top: 6px; gap: 5px 12px; }
}
@media (prefers-reduced-motion:reduce) {
  .enso-scene *, .enso-scene::before, .enso-scene *::before, .enso-scene *::after { animation: none !important; }
  .enso-parallax { transform: none; transition: none; }
}
@media print {
  .enso-scene *, .enso-scene::before, .enso-scene *::before, .enso-scene *::after { animation: none !important; }
  .hero--breathing, .enso-scene { min-height: 0; }
}
