/* The day: directions first, in the Ivory reverie palette. */
.day-page{--gold:#a68d5e;--gold-soft:#d4be8e;--mat:#fffdf6;--tint:#eee8db;--gutter:max(20px,calc((100% - 1120px)/2))}
.day-page h2{font-size:clamp(40px,5vw,64px);text-wrap:balance}
.day-page .eyebrow{color:var(--gold)}
.day-page section{scroll-margin-top:60px}
.day-schedule>.eyebrow,.day-photos-head .eyebrow,.day-thanks .eyebrow{margin-inline:auto}

/* Slim sticky bar */
.day-bar{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:60px;padding:6px var(--gutter);background:#f6f2e9eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.day-monogram{font:26px var(--serif);letter-spacing:.06em;padding:6px 0}.day-monogram em{font-size:.7em}
.day-bar nav{display:flex;gap:clamp(18px,3vw,34px);font-size:13px;letter-spacing:.06em}
.day-bar nav a{padding:12px 0;border-bottom:1px solid transparent}.day-bar nav a:hover{border-bottom-color:currentColor}
.day-bar .day-bar-invite{color:#8a6d3d}

/* Hero: the misty hills, framed by the arch line */
.day-hero{position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;text-align:center;min-height:min(64svh,600px);padding:72px 28px 80px;background:#293c34;color:#f5e5c5}
.day-hero-art{position:absolute;inset:0;z-index:-2}
.day-hero-art img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 48%;transform:scale(1.17) translateY(3%);animation:reverie-landscape 18s ease-in-out infinite alternate}
.day-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#10251c3d,#10251c2b 35%,#10251cbd)}
.day-hero:after{content:"";position:absolute;inset:22px 22px 0;border:1px solid #eee3bf70;border-bottom:0;border-radius:48% 48% 0 0;pointer-events:none}
.day-hero-copy{text-shadow:0 2px 6px #101c16b3,0 5px 22px #101c1666}
.day-hero .eyebrow{font-size:11px;letter-spacing:.24em;color:#f2dfb7;margin:0 auto 22px}
.day-hero h1{font:400 clamp(54px,8.6vw,112px)/.92 var(--serif);letter-spacing:-.02em;color:#f6e2b8;text-shadow:0 2px 5px #101c1680,0 6px 28px #101c1680}
.day-hero h1 em{display:block;font-style:italic;margin-top:.08em}
.day-sub{font:italic clamp(19px,2.2vw,25px)/1.45 var(--serif);color:#f8ebd2;max-width:30ch;margin:24px auto 0}
.day-rule{width:64px;height:1px;background:#dfc18a;margin:26px auto 20px}
.day-hero-place{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:#f3dfb5;max-width:none}

/* After the wedding: a note of thanks in place of the map and agenda */
.day-thanks{text-align:center;padding:84px 24px 76px}
.day-thanks-note{font:italic clamp(26px,3.2vw,40px)/1.35 var(--serif);max-width:30ch;margin:18px auto 0;text-wrap:balance}
.day-thanks>span{display:block;width:62px;height:1px;margin:30px auto 0;background:linear-gradient(90deg,transparent,#b69962,transparent)}

/* Venue: an arched window onto the map */
.day-venue{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,7vw,100px);align-items:center;padding:88px var(--gutter) 96px}
.day-map{position:relative;display:block;width:min(100%,470px);justify-self:center;padding:12px;border:1px solid #a18c5d66;border-radius:999px 999px 2px 2px;background:var(--mat);box-shadow:0 24px 60px #5e4c3018;transition:transform .5s cubic-bezier(.22,.61,.36,1),box-shadow .5s}
.day-map-window{position:relative;display:block;overflow:hidden;aspect-ratio:4/5;border-radius:999px 999px 2px 2px;background:radial-gradient(circle at 50% 55%,#fffdf6,#e8dfcc);transform:translateZ(0)}
/* Taller than its window so Google's place card sits above the arch, out of view. */
.day-map-window iframe{position:absolute;left:0;top:-136px;width:100%;height:calc(100% + 136px);border:0;pointer-events:none;filter:sepia(.28) saturate(.82) contrast(.96)}
.day-map-chip{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border:1px solid #a68d5e70;border-radius:999px;background:#fffdf6f2;color:#55452d;font-size:13px;letter-spacing:.05em;white-space:nowrap;box-shadow:0 8px 22px #4b38232e}
.day-map:hover{transform:translateY(-4px);box-shadow:0 30px 70px #5e4c3026}
.day-venue-copy h2{font-style:italic;margin:14px 0 10px}
.day-place{font-size:13px;letter-spacing:.18em;text-transform:uppercase}
.day-arrive{display:grid;gap:4px;margin:30px 0 0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:italic 24px/1.35 var(--serif)}
.day-arrive span{font:13px/1.6 var(--sans);letter-spacing:.04em;font-style:normal;opacity:.85}
.day-directions-label{margin-top:30px;font-size:12px;letter-spacing:.19em;text-transform:uppercase}
.day-directions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.day-directions .button{min-height:58px;gap:10px;padding:12px 14px;font-size:15px;letter-spacing:.03em}
.day-directions svg,.day-map-chip svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

/* The day, at a glance */
.day-schedule{padding:88px var(--gutter);background:var(--tint);text-align:center}
.day-schedule h2{font-style:italic;margin-top:12px}
.day-timeline{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px;margin:56px 0 0;padding:0;position:relative}
.day-timeline:before{content:"";position:absolute;top:6px;left:10%;right:10%;height:1px;background:#a48a5c66}
.day-timeline li{position:relative;padding-top:34px}
.day-timeline li:before{content:"";position:absolute;top:1px;left:calc(50% - 5px);width:10px;height:10px;border-radius:50%;background:#b59c70;box-shadow:0 0 0 5px var(--tint)}
.day-timeline time{display:block;font:italic 26px var(--serif);color:#8a6d3d}
.day-timeline h3{font-size:25px;margin:6px 0 8px}
.day-timeline p{font-size:14px;line-height:1.55;margin:0 auto;max-width:22ch;opacity:.9}
.day-help{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px 28px;margin:64px auto 0;padding-top:30px;border-top:1px solid var(--line);max-width:760px}
.day-help p{font:italic 24px var(--serif)}
.day-help div{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.day-help a{display:inline-flex;flex-direction:column;align-items:center;min-width:150px;padding:10px 20px;border:1px solid #a68d5e80;border-radius:999px;background:var(--paper);font-size:15px;line-height:1.35}
.day-help a span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.8}
.day-help a:hover{background:#fffdf6}

/* Photo wall: natural proportions, nothing cropped */
.day-photos{padding:96px var(--gutter)}
.day-photos-head{text-align:center;margin-bottom:52px}.day-photos-head h2{font-style:italic;margin-top:12px}
.photo-wall{columns:3;column-gap:22px}
.photo-tile{display:block;width:100%;margin:0 0 22px;padding:9px;break-inside:avoid;background:var(--mat);border:1px solid #a7916433;box-shadow:0 12px 28px #4b382314;cursor:zoom-in;transition:transform .5s cubic-bezier(.22,.61,.36,1),box-shadow .5s,border-color .3s}
.photo-tile img{width:100%;height:auto}
.photo-tile:hover,.photo-tile:focus-visible{border-color:#b69c69;box-shadow:0 20px 40px #5f492326;transform:translateY(-4px)}

/* A way back to the original invitation */
.day-invite{display:grid;place-items:center;padding:90px 24px;background:linear-gradient(#f6f0e52b,#f6f0e540),url('ivory-curtain.webp') center/cover no-repeat}
.day-invite-card{display:flex;flex-direction:column;align-items:center;text-align:center;width:min(100%,420px);padding:64px 30px 46px;border:1px solid #a68d5e80;border-radius:999px 999px 6px 6px;background:linear-gradient(140deg,#fffdf5eb,#f3ecdddc);outline:1px solid #a68d5e50;outline-offset:-12px;box-shadow:0 24px 70px #5e4c3018;transition:transform .5s cubic-bezier(.22,.61,.36,1),box-shadow .5s}
.day-invite-card .eyebrow{font-size:11px;letter-spacing:.24em}
.day-invite-card h2{font:italic clamp(48px,7vw,64px)/.96 var(--serif);margin:22px 0}
.day-invite-card h2 em{display:block;font-size:.5em;margin:8px 0}
.day-invite-cta{margin-top:24px;padding:10px 6px;border-bottom:1px solid #8d754d;font-size:14px;letter-spacing:.08em}
.day-invite-card:hover{transform:translateY(-4px);box-shadow:0 30px 80px #5e4c3026}

.day-footer{padding:56px 24px 64px;text-align:center;background:linear-gradient(155deg,#60554a,#51473e 60%,#493f37);color:#f3ead8}
.day-footer .eyebrow{color:#e2cda4;font-size:11px}
.day-footer .signature{font:italic clamp(40px,6vw,64px) var(--serif);margin:10px auto 8px}
.day-footer p:last-child{font-size:13px;letter-spacing:.18em;margin:0 auto}

@media(max-width:900px){
 .day-venue{grid-template-columns:1fr;gap:36px;padding-top:32px;padding-bottom:72px}
 .day-venue-copy{width:min(100%,520px);justify-self:center;text-align:center}
 .day-timeline{grid-template-columns:1fr;gap:0;max-width:440px;margin:40px auto 0;text-align:left}
 .day-timeline:before{top:8px;bottom:8px;left:5px;right:auto;width:1px;height:auto}
 .day-timeline li{display:grid;grid-template-columns:88px 1fr;column-gap:8px;padding:0 0 26px 30px}
 .day-timeline li:before{top:9px;left:0}
 .day-timeline time{font-size:22px;line-height:1.3;grid-row:span 2}
 .day-timeline h3{font-size:24px;margin:0 0 4px}
 .day-timeline p{margin:0;max-width:none}
 .photo-wall{columns:2;column-gap:14px}.photo-tile{margin-bottom:14px;padding:6px}
}
@media(max-width:600px){
 .day-bar nav a:not(.day-bar-keep){display:none}
 [data-phase=after] .day-bar nav a.day-bar-photos{display:block}
 .day-thanks{padding:60px 22px 56px}
 .day-hero{min-height:0;padding:44px 22px 48px}
 .day-hero:after{inset:12px 12px 0;border-radius:46% 46% 0 0}
 .day-hero .eyebrow{font-size:10px;margin-bottom:18px}
 .day-sub{font-size:18px;margin-top:14px}.day-rule{margin:16px auto 12px}.day-hero-place{font-size:11px}
 .day-map{padding:9px}.day-map-window{aspect-ratio:1/1}.day-map-window iframe{top:-80px;height:calc(100% + 80px)}
 .day-arrive{font-size:21px}
 .day-directions{gap:10px}.day-directions .button{font-size:14px;padding:12px 10px;gap:8px}
 .day-schedule,.day-photos{padding-top:64px;padding-bottom:64px}
 .day-photos-head{margin-bottom:34px}
 .day-help p{width:100%}.day-help a{min-width:0;flex:1 1 140px}
 .day-invite{padding:64px 20px}.day-invite-card{padding:56px 24px 40px}
}
@media(max-width:340px){.day-directions{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.day-hero-art img{animation:none;transform:scale(1.1)}}
