/* Balanced cards and a shared, quiet motion language across all three pages. */
:root { --soft-ease:cubic-bezier(.16,1,.3,1); }
#app { scroll-behavior:smooth; }
.guests { --deck-width:min(470px,calc(100vw - 48px)); --deck-height:min(650px,calc(var(--deck-width) * 1.55)); }
.profile-card,.peek-card { width:var(--deck-width); }
.profile-card { height:min(100%,var(--deck-height)); max-height:none; transition:transform .55s var(--soft-ease),opacity .4s ease; }
.peek-card { top:50%; height:min(92%,calc(var(--deck-height) * .94)); }
.peek-left { transform:translateX(calc(-150% - 12px)) translateY(-50%); }
.peek-right { transform:translateX(calc(50% + 12px)) translateY(-50%); }
.peek-arrow { width:16px; font-size:25px; }
.peek-left .peek-arrow { right:0; }
.peek-right .peek-arrow { left:0; }
.card-stage.swipe-intro .profile-card { animation:none; }
.card-stage.swipe-intro .peek-arrow { animation:edge-breathe 1.4s ease-in-out 2; }
@keyframes edge-breathe { 0%,100% { opacity:.45; } 50% { opacity:1; } }
.next-screen-cue { display:inline-flex; align-items:center; justify-content:center; gap:8px; flex-shrink:0; background:none; color:#b17e96; padding:8px 10px 2px; font-size:8px; letter-spacing:1.5px; line-height:1.6; }
.next-screen-cue i { width:6px; height:6px; border-top:1px solid currentColor; border-left:1px solid currentColor; transform:rotate(45deg); }

/* Enter only the content group; the horizontal carousel keeps its own transforms. */
.hero-copy > *, .guests-header, .card-stage, .card-navigation, .next-screen-cue,
.wall-heading, .heart-wall, .wall-footer {
  transition:opacity .85s var(--soft-ease),translate .95s var(--soft-ease);
}
.screen:not(.is-visible) .hero-copy > *,
.screen:not(.is-visible) :is(.guests-header,.card-stage,.card-navigation,.next-screen-cue,.wall-heading,.heart-wall,.wall-footer) {
  opacity:0; translate:0 22px;
}
.hero-copy > :nth-child(2) { transition-delay:60ms; }
.hero-copy > :nth-child(3) { transition-delay:120ms; }
.hero-copy > :nth-child(4) { transition-delay:180ms; }
.hero-copy > :nth-child(5) { transition-delay:240ms; }
.hero-copy > :nth-child(6) { transition-delay:300ms; }
.card-stage,.heart-wall { transition-delay:80ms; }
.card-navigation { transition-delay:150ms; }
.next-screen-cue { transition-delay:220ms; }
.wall-footer { transition-delay:280ms; }
.enter-button:hover { transform:translateY(-2px); }
.enter-button:active { scale:.98; }
.enter-button,.full-profile,.open-filters,.heart-person { transition:scale .3s var(--soft-ease),background .3s ease,box-shadow .3s ease; }
.details-dialog[open] { animation:sheet-arrive .5s var(--soft-ease); }
#photo-dialog[open] { animation:photo-arrive .5s var(--soft-ease); }
dialog[open]::backdrop { animation:backdrop-arrive .35s ease; }
@keyframes sheet-arrive { from { opacity:0; translate:0 35px; } to { opacity:1; translate:0 0; } }
@keyframes photo-arrive { from { opacity:0; scale:.96; } to { opacity:1; scale:1; } }
@keyframes backdrop-arrive { from { opacity:0; } to { opacity:1; } }
