#event-journey { position:absolute; inset:0; z-index:1; color:#244e3c; }
.journey-art { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.journey-copy { position:absolute; top:14%; left:50%; transform:translateX(-50%); width:min(85%,620px); text-align:center; color:#244e3c; text-shadow:0 1px 18px #fff4dc; }
.journey-title { font:400 clamp(36px,5vw,64px)/1.08 Georgia,serif; margin:0 0 20px; }
.journey-continue { display:inline-block; padding:12px 18px; background:#fff8e8ec; border-radius:24px; color:#244e3c; font-size:14px; text-decoration:none; }
.journey-boat { position:absolute; width:43%; max-width:740px; left:9%; bottom:6%; transform-origin:50% 85%; transform:translate(var(--boat-x,0%),var(--boat-y,0px)) scale(var(--boat-size,1)); pointer-events:none; }
.brand { z-index:2; }.controls { z-index:4; }.progress { z-index:5; }.chapter-status { z-index:3; }
.invitation-section { position:relative; isolation:isolate; min-height:100svh; display:grid; place-items:center; padding:80px 24px 55px; color:#244e3c; background:#f6e7cc; overflow:clip; }
.section-background { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center; }
.invitation-section::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#fff4df10,#fff4df20,#fff4df10); pointer-events:none; }
.post-brand { position:absolute; top:22px; left:50%; transform:translateX(-50%); font:10px Georgia,serif; letter-spacing:.3em; white-space:nowrap; color:#31513f; }
.invitation-content { width:min(100%,520px); text-align:center; }
.section-heading { font:400 clamp(34px,4vw,54px)/1.08 Georgia,serif; margin:0 0 28px; text-shadow:0 1px 15px #fff2d6; }
.event-card-list { display:grid; gap:14px; }
.event-card { display:grid; grid-template-columns:62px minmax(0,1fr); gap:12px; align-items:center; padding:18px 24px; background:linear-gradient(135deg,#fff8e9fa,#f7e9cfea); border:1px solid #bda575; outline:4px solid #fff5e383; outline-offset:-7px; border-radius:8px; box-shadow:0 5px 18px #482d1920; min-width:0; }
.event-icon { font:48px Georgia,serif; color:#9b7b3b; text-align:center; }
.event-card-copy h3 { font:400 30px/1.1 Georgia,serif; margin:0 0 7px; overflow-wrap:anywhere; }
.event-card-copy p { font-size:15px; line-height:1.4; margin:1px 0; overflow-wrap:anywhere; }
.event-map { display:inline-flex; align-items:center; min-height:44px; color:#244e3c; text-decoration:none; margin-top:2px; padding:6px 8px; }
.event-map-pending { display:block; margin-top:7px; font-size:12px; color:#65745a; }
a:focus-visible { outline:3px solid #ad7045; outline-offset:4px; }
.message-content { background:#fff6e5ee; padding:35px 28px; box-shadow:0 10px 50px #482d1930; border:1px solid #e7d6b7; }
.message-content .section-heading { margin-bottom:20px; }
.message-body { font:20px/1.5 Georgia,serif; margin:0 auto 26px; max-width:390px; overflow-wrap:anywhere; }
.memory-gallery { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.memory-photo { margin:0; padding:8px 8px 20px; background:#fffaf0; box-shadow:0 3px 12px #33241625; transform:rotate(-2deg); min-width:0; }
.memory-photo:nth-child(1) { grid-column:1/-1; transform:rotate(1deg); }
.memory-photo:nth-child(3) { transform:rotate(3deg); }
.memory-photo img { display:block; width:100%; height:150px; object-fit:cover; object-position:35% 55%; }
.memory-photo:first-child img { height:220px; }
.closing-section .section-background { object-position:10% 50%; }
.closing-section::after { background:linear-gradient(#f8ead0dd 0%,#fff1d580 40%,#152c2930 100%); }
.closing-section { align-items:start; }
.closing-content { background:linear-gradient(#fff3dfbb,#fff3df88); padding:32px 20px; border-radius:12px; }
.closing-message { font-size:20px; line-height:1.4; margin:0 0 24px; }
.wedding-countdown { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:25px 0; }
.countdown-unit { background:#fff5d9da; padding:14px 4px; border-radius:10px; }
.countdown-unit strong { display:block; font:400 32px Georgia,serif; font-variant-numeric:tabular-nums; }
.countdown-unit span { display:block; margin-top:5px; font-size:12px; }
.rsvp-button { display:block; padding:16px 20px; min-height:48px; background:#154b37; color:#fff5dc; text-decoration:none; border-radius:12px; font-size:18px; }
.rsvp-button[aria-disabled=true] { opacity:.7; cursor:default; }
.closing-note { font-size:13px; line-height:1.4; }
.safarnama-signature { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); color:#fff6dc; font-size:20px; text-shadow:0 1px 5px #264335; }
@media(max-aspect-ratio:4/5) {
 .journey-art { object-position:50% 50%; }
 .journey-copy { top:16%; width:84%; }.journey-title { font-size:42px; }
 .journey-boat { width:90%; left:-5%; bottom:9%; }
 .invitation-section { padding:70px 18px 45px; }
 .event-card { padding:16px 19px; grid-template-columns:45px minmax(0,1fr); gap:7px; }
 .event-icon { font-size:38px; }.event-card-copy h3 { font-size:28px; }.event-card-copy p { font-size:14px; }
 .event-card-list { gap:12px; }.message-content { padding:28px 20px; }
 .message-body,.closing-message { font-size:18px; }.memory-photo img { height:120px; }.memory-photo:first-child img { height:180px; }
 .closing-section { min-height:100svh; padding-top:90px; }.closing-content { padding:24px 16px; }
}
@media(prefers-reduced-motion:reduce) { .journey-boat { transform:none; } }

/* Readable landing copy and a distinct indoor pause before event cards. */
.journey-copy { background:#fff7e9d1; padding:24px 24px 20px; border:1px solid #ead7b6; border-radius:16px; box-shadow:0 8px 34px #3e2d2426; text-shadow:none; width:min(85%,580px); }
.journey-title { font-size:clamp(34px,4.6vw,58px); margin-bottom:16px; }
.journey-continue { background:#214e3e; color:#fff5dc; padding:12px 18px; min-height:44px; }
.courtyard-entry { position:relative; min-height:100svh; overflow:clip; background:#e4c39a; }
.entry-art { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:40% 50%; }
.entry-continue { position:absolute; bottom:max(28px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); padding:14px 22px; min-height:48px; background:#fff6e8f2; border:1px solid #e2cda9; border-radius:28px; color:#244e3c; text-decoration:none; white-space:nowrap; box-shadow:0 3px 18px #51331930; }
.memory-photo img { object-position:50% 30%; }
.memory-photo:first-child img { height:280px; }
.rsvp-heading { font:12px system-ui,sans-serif; letter-spacing:.17em; font-weight:400; margin:22px 0 12px; }
.rsvp-button { cursor:pointer; }
.rsvp-preview { width:min(90vw,460px); border:1px solid #bda575; border-radius:18px; padding:26px; color:#244e3c; background:#fff5e4; }
.rsvp-preview::backdrop { background:#162b2670; }
.rsvp-preview h2 { font:400 30px Georgia,serif; margin:0 0 16px; }
.rsvp-preview p,.rsvp-preview blockquote { font-size:16px; line-height:1.5; }
.rsvp-preview blockquote { margin:15px 0; padding:15px; background:#f3e4c9; border-left:3px solid #7c8a60; }
.rsvp-preview button { min-height:44px; padding:12px 18px; background:#214e3e; color:#fff5dc; }
@media(max-aspect-ratio:4/5) {
 .journey-copy { top:12%; padding:22px 18px 18px; width:86%; }
 .journey-title { font-size:36px; }
 .entry-art { object-position:10% 50%; }
 .memory-photo:first-child img { height:230px; }
 .entry-continue { font-size:14px; }
}

.journey-water { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }

.event-icon svg { display:block;width:52px;height:52px;margin:auto; }
@media(max-width:500px){.event-icon svg{width:42px;height:42px;}}
