/* One-time editorial reveals; interaction transitions remain interruptible. */
:root {
  --ease:cubic-bezier(0.2, 0, 0, 1);
  --reveal-dur:800ms;
  --text-dur:500ms;
  --stagger:100ms;
  --word-stagger:80ms;
  --hero-dur:1200ms;
  --hover-dur:320ms;
  --press-dur:100ms;
  --reveal-y:12px;
  --text-filter:blur(4px);
  --hero-inset:100%;
  --hero-scale:1.06;
}
.fc-page:has(.fc-home) { --fc-reveal-duration:var(--hover-dur); --fc-reveal-ease:var(--ease); }
/* Native anchor scrolling and header offsets are shared in storefront-boutique.css. */
.fc-home [data-anchor-settling], .fc-home [data-anchor-settling] *,
.fc-home [data-anchor-settling]::before, .fc-home [data-anchor-settling]::after,
.fc-home [data-anchor-settling] *::before, .fc-home [data-anchor-settling] *::after {
  transition:none!important; animation:none!important;
}
.fc-home [data-reveal] { --delay:calc(var(--i, 0) * var(--stagger)); }
.fc-reveal-mask { display:block; overflow:hidden; }
.fc-reveal-copy { display:block; }
.fc-word-mask { display:inline-block; overflow:hidden; vertical-align:bottom; }
.fc-word { display:inline-block; }
.fc-reveal-action { display:inline-flex; }
.fc-home [data-reveal="text"],
.fc-home [data-reveal="action"],
.fc-home [data-reveal="inspiration-copy"],
.fc-home [data-reveal="occasion"],
.fc-home .fc-reveal-copy,
.fc-home .fc-word,
.fc-home .fc-card-caption,
.fc-home .fc-trust-strip .fc-container>* ,
.fc-home .fc-commitment-copy,
.fc-home .fc-concierge-intro,
.fc-home .fc-concierge-action {
  transition:opacity var(--text-dur) var(--ease) var(--delay), transform var(--text-dur) var(--ease) var(--delay);
}
.fc-home [data-reveal="text"],
.fc-home [data-reveal="inspiration-copy"],
.fc-home .fc-reveal-copy,
.fc-home .fc-word,
.fc-home .fc-card-caption,
.fc-home .fc-commitment-copy,
.fc-home .fc-concierge-intro {
  transition-property:opacity, transform, filter;
}
.js .fc-home :is([data-reveal="text"], [data-reveal="action"], [data-reveal="inspiration-copy"], [data-reveal="occasion"]):not(.is-in),
.js .fc-home [data-reveal="heading"]:not(.is-in) .fc-reveal-copy,
.js .fc-home [data-reveal="hero-title"]:not(.is-in) .fc-word,
.js .fc-home [data-reveal="product"]:not(.is-in) .fc-card-caption,
.js .fc-home [data-reveal="trust"]:not(.is-in) .fc-container>*,
.js .fc-home [data-reveal="commitment"]:not(.is-in) .fc-commitment-copy,
.js .fc-home [data-reveal="cta"]:not(.is-in) :is(.fc-concierge-intro,.fc-concierge-action) {
  opacity:0;
  transform:translateY(var(--reveal-y));
}
.js .fc-home :is([data-reveal="text"], [data-reveal="inspiration-copy"]):not(.is-in),
.js .fc-home [data-reveal="heading"]:not(.is-in) .fc-reveal-copy,
.js .fc-home [data-reveal="hero-title"]:not(.is-in) .fc-word,
.js .fc-home [data-reveal="product"]:not(.is-in) .fc-card-caption,
.js .fc-home [data-reveal="commitment"]:not(.is-in) .fc-commitment-copy,
.js .fc-home [data-reveal="cta"]:not(.is-in) .fc-concierge-intro { filter:var(--text-filter); }
.fc-home [data-reveal="occasion"] { transition-duration:var(--reveal-dur); }
.fc-home .fc-word { transition-delay:calc(var(--delay) + var(--word-i, 0) * var(--word-stagger)); }

/* The hero photograph never fades. Its frame keeps the original dimensions. */
.fc-page .fc-home .fc-hero-image { overflow:hidden; transition:clip-path var(--hero-dur) var(--ease); }
.fc-page .fc-home .fc-hero-image img { opacity:1; transition:transform var(--hero-dur) var(--ease); }
.js .fc-home [data-reveal="hero-image"]:not(.is-in) { clip-path:inset(0 0 0 var(--hero-inset)); }
.js .fc-home [data-reveal="hero-image"]:not(.is-in) img { transform:scale(var(--hero-scale)); }
.fc-home [data-reveal="hero-image"].is-in { clip-path:inset(0); }

.fc-home .fc-trust-strip { position:relative; border-top-color:transparent; }
.fc-home .fc-trust-strip::before {
  content:""; position:absolute; inset:0 0 auto; height:1px; background:var(--fc-border);
  transform-origin:left; transition:transform var(--reveal-dur) var(--ease);
}
.js .fc-home [data-reveal="trust"]:not(.is-in)::before { transform:scaleX(0); }
.fc-home .fc-trust-strip .fc-container>* { transition-delay:calc(var(--i, 0) * var(--stagger)); }
.fc-home [data-reveal="heading"], .fc-home [data-reveal="inspiration-copy"] h2, .fc-home [data-reveal="cta"] h2 { position:relative; }
.fc-home [data-reveal="heading"]::after, .fc-home [data-reveal="inspiration-copy"] h2::after, .fc-home [data-reveal="cta"] h2::after {
  content:""; position:absolute; left:0; bottom:-6px; width:min(160px, 100%); height:1px; background:var(--fc-border);
  transform-origin:left; transition:transform var(--reveal-dur) var(--ease) var(--delay);
}
.js .fc-home [data-reveal="heading"]:not(.is-in)::after, .js .fc-home [data-reveal="inspiration-copy"]:not(.is-in) h2::after, .js .fc-home [data-reveal="cta"]:not(.is-in) h2::after { transform:scaleX(0); }

.fc-page .fc-home .fc-occasions .fc-occasion-image {
  display:block; aspect-ratio:4/5; overflow:hidden; border-radius:3px;
}
.fc-page .fc-home .fc-occasions img { border-radius:0; filter:none; transition:transform var(--reveal-dur) var(--ease) var(--delay); }
.js .fc-home [data-reveal="occasion"]:not(.is-in) img { transform:scale(1.08); }
.fc-page .fc-home .fc-occasions a:hover img { filter:none; }

/* Delay by visible grid column, restarting the sequence for each row. */
.fc-home [data-reveal="product"]:nth-child(3n+1) { --i:0; }
.fc-home [data-reveal="product"]:nth-child(3n+2) { --i:1; }
.fc-home [data-reveal="product"]:nth-child(3n) { --i:2; }
.fc-page .fc-home .fc-product-image>a { overflow:hidden; transition:clip-path var(--reveal-dur) var(--ease) var(--delay); }
.js .fc-home [data-reveal="product"]:not(.is-in) .fc-product-image>a { clip-path:inset(100% 0 0); }
.fc-home [data-reveal="product"].is-in .fc-product-image>a { clip-path:inset(0); }
.fc-home .fc-card-caption { transition-delay:calc(var(--delay) + var(--reveal-dur)); }
.fc-page .fc-home .fc-product-image>a>img { transition:transform var(--hover-dur) var(--ease); }
.fc-page .fc-home :is(.fc-button,.fc-card-quick,.fc-icon-button) { transition:transform var(--press-dur) var(--ease); }
.fc-page .fc-home :is(.fc-button,.fc-card-quick,.fc-icon-button):active { transform:scale(0.96); }
.fc-page:has(.fc-home) .fc-favorite[aria-pressed="true"] img { animation:none; }
.fc-page:has(.fc-home) .fc-dialog[open] { animation:none; }
.fc-page:has(.fc-home) .cvn-smart-contact-dock__action:hover { transform:none; }
.fc-home .fc-care-icon { color:var(--fc-primary); stroke-dasharray:1; stroke-dashoffset:0; }
/* Clip the SVG stroke left to right; do not animate stroke-dashoffset. */
.fc-home .fc-care-icon { transition:clip-path var(--text-dur) var(--ease) var(--delay); }
.js .fc-home [data-reveal="commitment"]:not(.is-in) .fc-care-icon { clip-path:inset(0 100% 0 0); }
.fc-home [data-reveal="commitment"].is-in .fc-care-icon { clip-path:inset(0); }
.fc-home .fc-commitment-copy { transition-delay:calc(var(--delay) + var(--text-dur)); }

.fc-home .fc-collection-image { overflow:hidden; transition:clip-path var(--reveal-dur) var(--ease); }
.js .fc-home [data-reveal="image-left"]:not(.is-in) .fc-collection-image { clip-path:inset(0 100% 0 0); }
.fc-home [data-reveal="image-left"].is-in .fc-collection-image { clip-path:inset(0); }
.fc-page .fc-home .fc-concierge { position:relative; isolation:isolate; background:transparent; }
.fc-home .fc-concierge::before {
  content:""; position:absolute; inset:0; z-index:-1; background:var(--fc-primary-hover);
  transform-origin:center; transition:transform var(--reveal-dur) var(--ease);
}
.js .fc-home [data-reveal="cta"]:not(.is-in)::before { transform:scaleX(0); }
.fc-home .fc-concierge-intro { transition-delay:var(--text-dur); }
.fc-home .fc-concierge-action { transition-delay:calc(var(--text-dur) + var(--stagger)); }

/* Keep these group frames still: their text rises inside the heading masks. */
.js .fc-page .fc-home [data-reveal="inspiration-copy"]:not(.is-in),
.js .fc-page .fc-home [data-reveal="cta"]:not(.is-in) .fc-concierge-intro { transform:none; filter:none; }
.fc-home .fc-concierge-intro { --delay:var(--text-dur); }
.fc-home [data-reveal="inspiration-copy"]>:is(.fc-kicker,p,.fc-link),
.fc-home .fc-concierge-intro>p { transition:transform var(--text-dur) var(--ease) var(--delay), filter var(--text-dur) var(--ease) var(--delay); }
.js .fc-home [data-reveal="inspiration-copy"]:not(.is-in)>:is(.fc-kicker,p,.fc-link),
.js .fc-home [data-reveal="inspiration-copy"]:not(.is-in) .fc-reveal-copy,
.js .fc-home [data-reveal="cta"]:not(.is-in) .fc-concierge-intro>p,
.js .fc-home [data-reveal="cta"]:not(.is-in) .fc-reveal-copy { transform:translateY(var(--reveal-y)); filter:var(--text-filter); }

@media(min-width:1280px) {
  .fc-home [data-reveal="product"]:nth-child(4n+1) { --i:0; }
  .fc-home [data-reveal="product"]:nth-child(4n+2) { --i:1; }
  .fc-home [data-reveal="product"]:nth-child(4n+3) { --i:2; }
  .fc-home [data-reveal="product"]:nth-child(4n) { --i:3; }
}
@media(max-width:1023px) {
  .fc-home [data-reveal="product"]:nth-child(2n+1) { --i:0; }
  .fc-home [data-reveal="product"]:nth-child(2n) { --i:1; }
}
@media(min-width:768px) and (hover:hover) and (pointer:fine) {
  .fc-page .fc-home .fc-occasions a:is(:hover,:focus-visible) img { transform:scale(1.04); transition-duration:var(--hover-dur); transition-delay:0ms; }
  .js .fc-page .fc-home [data-reveal="occasion"]:not(.is-in):hover img { transform:scale(1.08); }
  .fc-page .fc-home .fc-product-image>a:hover>img { transform:scale(1.04); }
  .fc-page .fc-home .fc-product-image .fc-favorite { transition:opacity var(--hover-dur) var(--ease), transform var(--hover-dur) var(--ease); }
  .fc-page .fc-home .fc-product-image .fc-card-quick {
    position:absolute; left:16px; bottom:14px; width:max-content; max-width:calc(100% - 32px);
    opacity:0; transform:translateY(100%); pointer-events:none;
    transition:opacity var(--hover-dur) var(--ease), transform var(--hover-dur) var(--ease);
  }
  .fc-page .fc-home .fc-product-image:is(:hover,:focus-within) .fc-card-quick { opacity:1; transform:translateY(0); pointer-events:auto; }
  .fc-page .fc-home .fc-product-image .fc-card-quick:active { transform:scale(0.96); transition-duration:var(--press-dur); }
}
@media(max-width:767px), (hover:none), (pointer:coarse) {
  .fc-page .fc-home .fc-product-image :is(.fc-card-quick,.fc-favorite) { opacity:1; transform:none; pointer-events:auto; }
  .fc-page .fc-home .fc-card-quick { position:static; width:100%; max-width:none; margin:0; }
  .fc-page .fc-home .fc-product-image>a:hover>img { transform:none; }
  .fc-page .fc-home .fc-product-image :is(.fc-card-quick,.fc-favorite):active { transform:scale(0.96); }
}
/* Mobile LCP takes priority: display the hero photo immediately. */
@media(max-width:767px) {
  :root { --reveal-y:8px; --reveal-dur:640ms; --text-dur:400ms; --hero-dur:960ms; --hero-inset:0%; --hero-scale:1; --text-filter:none; }
  .fc-page .fc-home .fc-hero-image, .fc-page .fc-home .fc-hero-image img { transition:none; }
  .js .fc-home [data-reveal="hero-image"]:not(.is-in), .fc-home [data-reveal="hero-image"].is-in { clip-path:none; }
  .js .fc-home [data-reveal="hero-image"]:not(.is-in) img { transform:none; }
}
/* Restored pages and keyboard focus settle immediately, including nested delays. */
.reveal-static .fc-home *, .reveal-static .fc-home::before,
.reveal-static .fc-home *::before, .reveal-static .fc-home *::after,
.fc-home .is-focus-revealed,
.fc-home .is-focus-revealed :is(.fc-reveal-copy,.fc-word,.fc-card-caption,.fc-commitment-copy,.fc-concierge-intro,.fc-concierge-action,.fc-care-icon,.fc-collection-image,.fc-kicker,p,.fc-link),
.fc-home .is-focus-revealed .fc-product-image>a,
.fc-home .is-focus-revealed::before, .fc-home .is-focus-revealed::after {
  transition:none!important; animation:none!important;
}
.reveal-static .fc-home [data-reveal],
.reveal-static .fc-home :is(.fc-reveal-copy,.fc-word,.fc-card-caption,.fc-commitment-copy,.fc-concierge-intro,.fc-concierge-action,.fc-care-icon),
.reveal-static .fc-home .fc-trust-strip .fc-container>*,
.reveal-static .fc-home [data-reveal="inspiration-copy"]>:is(.fc-kicker,p,.fc-link), .reveal-static .fc-home .fc-concierge-intro>p {
  opacity:1!important; transform:none!important; clip-path:none!important; filter:none!important;
}
.reveal-static .fc-home :is(.fc-hero-image img,.fc-collection-image,.fc-product-image>a,.fc-occasion-image img) { transform:none!important; clip-path:none!important; }
.reveal-static .fc-home [data-reveal]::before, .reveal-static .fc-home [data-reveal]::after, .reveal-static .fc-home [data-reveal] h2::after { transform:none!important; }
@media(prefers-reduced-motion:reduce) {
  html:has(.fc-home) { scroll-behavior:auto!important; }
  .fc-home *, .fc-home *::before, .fc-home *::after { transition:none!important; animation:none!important; }
  .js .fc-home [data-reveal],
  .js .fc-home :is(.fc-reveal-copy,.fc-word,.fc-card-caption,.fc-commitment-copy,.fc-concierge-intro,.fc-concierge-action,.fc-care-icon),
  .js .fc-home .fc-trust-strip .fc-container>*,
  .js .fc-home [data-reveal="inspiration-copy"]>:is(.fc-kicker,p,.fc-link), .js .fc-home .fc-concierge-intro>p { opacity:1!important; transform:none!important; clip-path:none!important; filter:none!important; }
  .fc-page .fc-home :is(.fc-hero-image img,.fc-collection-image,.fc-product-image>a,.fc-product-image>a>img,.fc-occasion-image img,.fc-card-quick,.fc-favorite,.fc-button,.fc-icon-button) { transform:none!important; clip-path:none!important; }
  .fc-home [data-reveal]::before, .fc-home [data-reveal]::after, .fc-home [data-reveal] h2::after { transform:none!important; }
}
