/* The veneers story expands from a large smile into a full photographic hero. */
.veneers .hero-sticky { overflow: hidden; }
.veneers .hero-grid { z-index: 2; pointer-events: none; }
.veneers .hero-copy { pointer-events: auto; }
.fullface-stage.assembly-scene { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; margin: 0; overflow: hidden; isolation: isolate; background: #080809; }
.portrait-frame { position: absolute; inset: 0; width: 100%; height: 100%; }
.js .portrait-frame { inset: auto; left: 0; top: 0; width: 1672px; height: 941px; transform-origin: 0 0; transform: translate3d(var(--portrait-left,0px),var(--portrait-top,0px),0) scale(var(--portrait-scale,1)); will-change: transform; }
.fullface-stage .smile-portrait img { object-fit: cover; object-position: 75% center; mask-image: linear-gradient(180deg,transparent,#000 4%,#000 94%,transparent),linear-gradient(90deg,transparent,#000 4%,#000 94%,transparent); mask-composite: intersect; }
.js .fullface-stage .smile-portrait img { object-fit: contain; }
.veneers .hero-grid { min-height: 100svh; }
.fullface-stage .smile-tooth { opacity: 0; filter: none; }
.fullface-stage .smile-portrait, .fullface-stage .smile-tooth { position: absolute; inset: 0; width: 100%; height: 100%; }
.portrait-shade { position: absolute; inset: 0; z-index: 3; background: linear-gradient(90deg,#080809 0%,#080809ed 24%,#08080985 42%,#08080900 62%); pointer-events: none; }
.veneers .hero-description { color: #d1d1cd; }
.veneers .journey-photo { background: transparent; overflow: visible; }
.veneers .journey-photo img { object-fit: contain; }
@media(max-width:700px) {
  .veneers.motion-on .hero-scroll { height: calc(100svh + 900px); }
  .veneers.motion-on .hero-sticky { position: sticky; top: 0; height: 100svh; min-height: 100svh; overflow: hidden; }
  .veneers .hero-grid, .veneers.motion-on .hero-grid { min-height: 100svh; height: 100svh; padding-top: 32px; padding-bottom: 0; display: block; }
  .veneers .hero-copy { max-width: 355px; }
  .veneers .hero-copy h1 { font-size: clamp(40px,11.6vw,68px); }
  .veneers .hero-copy .eyebrow { margin-bottom: 16px; }
  .veneers .hero-description { line-height: 1.55; margin-block: 18px 20px; }
  .portrait-shade { background: linear-gradient(180deg,#080809 0%,#080809f5 25%,#08080955 43%,transparent 61%); }
  .fullface-stage .smile-portrait img { mask-image: linear-gradient(180deg,transparent,#000 8%); }
  html:not(.js) .portrait-frame { top: 45%; height: 55%; }
  html:not(.js) .fullface-stage .smile-portrait img { object-position: 83% center; }
}
html:not(.js) .veneers .hero-word { animation: none; }
@media(prefers-reduced-motion:reduce) {
  .veneers .hero-grid { min-height: 100svh; }
  .fullface-stage .smile-tooth { opacity: 0!important; }
  .portrait-frame { will-change: auto; }
}
