/* Movimento editorial. Conteúdo continua visível sem JavaScript. */
:root {
  --motion-ease: cubic-bezier(.16, 1, .3, 1);
  --motion-soft: cubic-bezier(.22, .61, .36, 1);
}
.masthead-letter {
  display: inline-block;
  animation: letter-blur 9s ease-in-out infinite;
  animation-delay: calc(var(--letter) * -1.15s);
  will-change: filter, translate;
}
@keyframes letter-blur {
  0%, 23%, 68%, 100% { filter: blur(0); translate: 0 0; }
  39% { filter: blur(3px); translate: 1px -2px; }
  51% { filter: blur(1px); translate: -1px 1px; }
}
.hero-photo { animation: portrait-breath 24s ease-in-out infinite alternate; }
@keyframes portrait-breath { from { scale: 1; } to { scale: 1.025; } }
.topbar, .hero-name, .year, .hero-copy h2, .hero-copy > p, .hero-foot {
  animation: hero-arrive 1.35s var(--motion-ease) both;
}
.topbar { animation-delay: .12s; }
.name-christian { animation-delay: .35s; }
.name-esther { animation-delay: .5s; }
.year { animation-delay: .48s; }
.hero-copy h2 { animation-delay: .62s; }
.hero-copy > p { animation-delay: .8s; }
.hero-foot { animation-delay: 1s; }
@keyframes hero-arrive {
  from { opacity: 0; translate: 0 16px; filter: blur(4px); }
  to { opacity: 1; translate: 0 0; filter: blur(0); }
}
.feature {
  --entry-x: 0px;
  --entry-y: 38px;
  --entry-rotation: 0deg;
  transition: opacity 1.15s var(--motion-ease),
    translate 1.15s var(--motion-ease), rotate 1.15s var(--motion-ease),
    filter 1.15s var(--motion-ease), box-shadow .5s var(--motion-soft);
}
.feature-exclusive { --entry-x: -36px; --entry-y: 20px; --entry-rotation: -.5deg; }
.feature-vision { --entry-x: 32px; --entry-y: 20px; --entry-rotation: .5deg; }
.feature-experience { --entry-x: -30px; --entry-y: 28px; }
.feature-timeless { --entry-y: 44px; }
.motion-ready .feature:not(.is-revealed) {
  opacity: 0;
  translate: var(--entry-x) var(--entry-y);
  rotate: var(--entry-rotation);
  filter: blur(4px);
}
.feature-copy h2, .feature-copy p, .feature > .bride,
.feature .bride-frame, .feature .laptop, .feature .portfolio-devices {
  transition: opacity 1s var(--motion-ease), translate 1.1s var(--motion-ease),
    filter 1s var(--motion-ease);
}
.feature-copy h2 { transition-delay: .14s; }
.feature-copy p { transition-delay: .23s; }
.feature-copy p + p { transition-delay: .32s; }
.feature > .bride, .feature .bride-frame,
.feature .laptop, .feature .portfolio-devices { transition-delay: .15s; }
.motion-ready .feature:not(.is-revealed) .feature-copy h2,
.motion-ready .feature:not(.is-revealed) .feature-copy p {
  opacity: 0;
  translate: 0 16px;
  filter: blur(1.5px);
}
.motion-ready .feature:not(.is-revealed) > .bride,
.motion-ready .feature:not(.is-revealed) .bride-frame,
.motion-ready .feature:not(.is-revealed) .laptop,
.motion-ready .feature:not(.is-revealed) .portfolio-devices {
  opacity: 0;
  translate: 0 22px;
}
.scroll-reveal {
  transition: opacity 1.15s var(--motion-ease), translate 1.15s var(--motion-ease),
    filter 1.15s var(--motion-ease);
}
.motion-ready .scroll-reveal:not(.is-revealed) {
  opacity: 0;
  translate: 0 28px;
  filter: blur(2px);
}
.bridal-editorial img { transition: scale 1.8s var(--motion-ease); }
.motion-ready .bridal-editorial:not(.is-revealed) img { scale: 1.065; }
.laptop-display {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  overflow: hidden;
  background: #24251e;
}
.laptop-display .video-poster, .video-player {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.video-player { pointer-events: none; }
.laptop-display .video-poster {
  z-index: 1;
  transition: opacity .6s ease;
  pointer-events: none;
}
.laptop-display.is-playing .video-poster { opacity: 0; }
.faq details { overflow: hidden; }
.faq summary { transition: color .25s ease, background-color .25s ease; }
.faq summary:hover { background: #fff6e908; }
.faq summary:focus-visible { outline: 1px solid #fff9; outline-offset: -4px; }
.faq-mark { opacity: .65; }
.faq-mark::after { transition: rotate .4s var(--motion-ease); }
.faq details[open] .faq-mark::after { transform: none; rotate: 0deg; }
.faq details:not([open]) .faq-mark::after { transform: none; rotate: 90deg; }
.faq .faq-list.is-enhanced details:not(.is-expanded) .faq-mark::after { transform: none; rotate: 90deg; }
.faq details.is-expanded .faq-mark::after { transform: none; rotate: 0deg; }
.faq-answer { transition: opacity .3s ease, translate .4s var(--motion-ease); }
.faq .faq-list.is-enhanced details:not(.is-expanded) .faq-answer { opacity: 0; translate: 0 -8px; }
.faq-list { transition: box-shadow .5s ease; }
.faq-list:focus-within { box-shadow: 0 0 0 1px #fff4; }
.menu-dialog[open] { animation: menu-arrive .5s var(--motion-ease) both; }
.menu-dialog[open]::backdrop { animation: backdrop-arrive .45s ease both; }
@keyframes menu-arrive { from { opacity: 0; translate: 38px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes backdrop-arrive { from { opacity: 0; } to { opacity: 1; } }
.menu-dialog nav a { transition: padding-left .35s var(--motion-ease), color .35s ease; }
.menu-dialog nav a:hover { padding-left: 10px; color: #8d7b5e; }
.menu-button span { transition: width .3s ease; }
.menu-button:hover span:nth-child(2) { width: 72%; }
@media (hover: hover) and (pointer: fine) {
  .feature.is-revealed:hover { translate: 0 -4px; box-shadow: 0 14px 35px #4b3a2310; }
  .feature.is-revealed:hover .laptop, .feature.is-revealed:hover .portfolio-devices { translate: 0 -3px; }
}
@media (max-width: 799px) {
  .feature-exclusive { --entry-x: -14px; }
  .feature-vision { --entry-x: 14px; }
  .feature-experience { --entry-x: -12px; }
}
@media (prefers-reduced-motion: reduce) {
  .masthead-letter { will-change: auto; }
  .motion-ready .feature:not(.is-revealed),
  .motion-ready .scroll-reveal:not(.is-revealed),
  .motion-ready .feature:not(.is-revealed) .feature-copy h2,
  .motion-ready .feature:not(.is-revealed) .feature-copy p,
  .motion-ready .feature:not(.is-revealed) > .bride,
  .motion-ready .feature:not(.is-revealed) .bride-frame,
  .motion-ready .feature:not(.is-revealed) .laptop,
  .motion-ready .feature:not(.is-revealed) .portfolio-devices {
    opacity: 1;
    translate: none;
    rotate: none;
    filter: none;
  }
  .feature.is-revealed:hover, .feature.is-revealed:hover .laptop,
  .feature.is-revealed:hover .portfolio-devices { translate: none; }
}
