/* Masks preserve the two-line title's layout and the serif's italic overhang.
   The ink stays visible without JavaScript; its entrance belongs to WAAPI. */
.bakery-home .bakery-hero-copy h1 .bakery-title-line {
 display:block;
 overflow:hidden;
 padding:.12em .12em .18em;
 margin:-.12em -.12em -.18em;
}
.bakery-home .bakery-hero-copy h1 .bakery-title-ink {
 display:inline-block;
 vertical-align:top;
}

/* Whole compositions re-arm only after fully leaving the viewport. The stored
   exit side controls direction; visible content never fades away on reversal. */
.bakery-home > [data-reveal],
.bakery-home[data-scene]:not([data-scene="home"]) > [data-reveal] {
 scale:1;
 opacity:1;
 transform:none;
 transition:opacity 900ms cubic-bezier(.22,.61,.36,1),transform 900ms cubic-bezier(.22,.61,.36,1);
 transition-delay:var(--reveal-delay,0ms);
}
.bakery-home > [data-reveal][data-reveal-visible="false"],
.bakery-home[data-scene]:not([data-scene="home"]) > [data-reveal][data-reveal-visible="false"] {
 opacity:0;
 transform:translate3d(0,var(--reveal-from-y,16px),0);
}
.bakery-home > [data-reveal][data-reveal-visible="true"],
.bakery-home[data-scene]:not([data-scene="home"]) > [data-reveal][data-reveal-visible="true"] {
 opacity:1;
 transform:none;
}
.bakery-home > [data-reveal][data-reveal-instant],
.bakery-home[data-scene]:not([data-scene="home"]) > [data-reveal][data-reveal-instant] {
 transition:none;
}
/* Static request/guide headings can replay; live fields and chat are excluded. */
[data-route-reveal][data-route-reveal-armed="true"] {
 opacity:0;
 transform:translate3d(0,var(--route-reveal-y,16px),0);
}
@media(prefers-reduced-motion:reduce) {
 [data-route-reveal][data-route-reveal-armed="true"],
 .bakery-home > [data-reveal][data-reveal-visible],
 .bakery-home[data-scene]:not([data-scene="home"]) > [data-reveal][data-reveal-visible] {
  opacity:1;
  transform:none;
  transition:none!important;
 }
}

/* Photo details arrive gently; dismissal remains immediate and interruptible. */
body .bakery-lightbox[open] {
 animation:bakery-photo-arrive 420ms cubic-bezier(.22,.61,.36,1);
}
body .bakery-lightbox[open]::backdrop {
 animation:bakery-photo-dim 420ms ease-out;
}
@keyframes bakery-photo-arrive {
 from { opacity:0; transform:translateY(8px); }
 to { opacity:1; transform:none; }
}
@keyframes bakery-photo-dim {
 from { opacity:0; }
 to { opacity:1; }
}
@media(prefers-reduced-motion:reduce) {
 body .bakery-lightbox[open],body .bakery-lightbox[open]::backdrop { animation:none; }
}
