/* Illustrations occupy their own space beneath text. */
:root{--ink:#493d37;--muted:#74665e;--rose:#a96e72;--line:#dfd3c9}
nav{box-shadow:0 4px 20px #57433806}
.hero{max-width:1500px;margin:auto;gap:30px;padding-bottom:70px}
.intro{border-radius:190px 190px 10px 10px;box-shadow:0 12px 35px #62493e08;justify-content:flex-start}
.intro .eyebrow{padding-top:100px;line-height:2.1;font-size:16px}
.intro h1{display:flex;align-items:center;justify-content:center;gap:22px;line-height:1.7;font-size:clamp(42px,4.5vw,68px);margin:20px 0 25px;white-space:nowrap}
.intro h1 i{font-size:20px;line-height:2;display:inline-block;margin:0;color:#9b7b70}
.intro h1 span{display:block}
.intro>p{max-width:340px;margin:0 auto 10px;line-height:2}
.date{font-size:24px;padding:15px 0;margin-top:24px;border-color:#cdb9a7}
.intro .venue{font-size:18px;margin-top:10px}
.button{border-radius:5px;letter-spacing:0;box-shadow:0 3px 8px #55443706}
.intro .button{background:#725d50;color:#fffdf8;border-color:#725d50;padding:14px 30px}
.intro .button:hover{background:#59463c}
.intro .scroll{letter-spacing:0;font-size:14px;margin-top:26px}
.hero-photo{border:7px solid #fffdf8;box-shadow:0 18px 40px #53433215}
.invitation{box-shadow:0 15px 50px #77604c08;margin-bottom:65px}
.invitation .names{padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.names small{color:#8f6562;font-size:15px;letter-spacing:.3px}
.family{padding:18px 0}
.countdown{border-top:1px solid #ded6d5;border-bottom:1px solid #ded6d5;padding:45px 20px}
.clock{gap:0;margin:25px auto 0;max-width:520px}
.clock>div{flex:1;padding:0 20px;border-right:1px solid #bcb1ad88}
.clock>div:last-child{border:0}
.clock b{font-size:49px;color:#72564e}
.clock span{font-size:15px}
.events{gap:18px;margin-top:35px}
.event{border:1px solid #e1d6cb;border-radius:80px 80px 8px 8px;padding:32px 12px 26px;background:linear-gradient(160deg,#fffdf9,#f3ede7);box-shadow:0 8px 22px #79604f07}
.event:before{display:none}
.event time{color:#855e57;margin:14px 0;font-size:43px}
.event p{font-size:17px;line-height:2}
.event small{font-size:14px;color:#81726a}
.section-head{margin-bottom:40px}
.moments{background:linear-gradient(150deg,#f3e7e5,#eee8eb 55%,#e7edef)}
.photos>div{transform:none;box-shadow:0 15px 35px #644b4115;border-radius:3px;padding:16px 16px 8px}
.photos>div:nth-child(2){transform:none;margin-top:60px}
.caption{line-height:2;margin:15px 0 10px;color:#725d54}
.actions .button:first-child{background:#725d50;color:#fffdf8;border-color:#725d50}
.yuki-copy{padding:15px 0 0}
.yuki:after{mask-image:linear-gradient(to bottom,transparent,#000 12%);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 12%)}
footer{color:#776558;background:#f4eee5;border-color:#e2d7ca}
@media(max-width:700px){
 nav{height:auto;min-height:72px;padding:13px 16px;gap:12px;justify-content:center;flex-wrap:wrap}
 .monogram{font-size:16px;white-space:nowrap}.links{font-size:14px;gap:18px}
 .hero{gap:22px;padding:18px 16px 45px}
 .intro{padding:50px 18px 45px;border-radius:150px 150px 7px 7px}
 .intro h1{font-size:43px;gap:15px;margin:18px 0 24px}
 .intro h1 i{font-size:17px}
 .intro .eyebrow{font-size:15px;padding-top:85px}
 .intro>p{font-size:16px}
 .date{font-size:22px;padding:12px 0;line-height:1.9}
 .intro .scroll{font-size:13px}
 .hero-photo{border-width:5px;height:66vh;min-height:420px}
 .invitation{margin-bottom:45px}
 .invitation .names{padding:20px 0}
 .clock{max-width:370px;flex-wrap:nowrap}.clock>div{padding:0 9px;min-width:0}.clock b{font-size:39px}.clock span{font-size:13px}
 .countdown>.eyebrow{font-size:16px}
 .events{gap:13px}
 .event{border-radius:8px;padding:19px 18px;background:#fffcf7;grid-template-columns:88px minmax(0,1fr);column-gap:16px}
 .event time{font-size:36px;margin:0;padding-right:14px;border-right:1px solid #decec1}
 .event p{font-size:17px;line-height:1.9}
 .photos{grid-template-columns:1fr;gap:28px;max-width:420px}
 .photos>div:nth-child(2){margin-top:0}
 .photos>div{padding:12px 12px 8px}
 .caption{font-size:16px;padding:0 4px}
 .bottom{box-shadow:0 -4px 20px #57433808;padding:13px 10px max(13px,env(safe-area-inset-bottom));font-size:15px}
 .bottom a{min-height:32px;display:flex;align-items:center;padding:0 12px}
 .bottom a:first-child{border-right:1px solid var(--line)}
}
@media(max-width:360px){.intro h1{font-size:37px;gap:12px}.date{font-size:20px}.links{gap:15px}.clock b{font-size:35px}.event{padding:17px 12px;column-gap:12px}}
.yuki{display:block;min-height:0;padding:60px 24px 0;background:#faf8f3}
.yuki-copy{position:static;margin:0 auto;max-width:650px;padding:0}
.yuki h2{line-height:1.9;margin:18px 0 28px}
.yuki p{line-height:2.2}
.yuki .signature{margin:24px 0 35px}
.yuki:after{content:'';display:block;height:430px;max-width:1000px;margin:0 auto;background:none center bottom/cover no-repeat}
.intro{background:#fcfaf5 url('assets/wedding-background.webp') center/cover no-repeat}
.farewell{background:#fcfaf5 url('assets/wedding-background.webp') center/cover no-repeat;padding:85px 25px}
.farewell h2{line-height:1.9}
.farewell p{max-width:700px;margin:20px auto;background:#fcfaf5d9;border-radius:8px}
.location:before,.location:after{display:none}
.location{background:#fcfaf5 url('assets/wedding-background.webp') center/cover no-repeat}
.location>p,.location>h2,.location>h3,.location>.eyebrow{width:fit-content;max-width:100%;margin-left:auto;margin-right:auto;padding:0 12px;background:#fcfaf5d9;border-radius:8px}
.names{display:grid;grid-template-columns:minmax(0,1fr) 35px minmax(0,1fr);gap:12px;align-items:center;line-height:2.1}
.names>div,.family>div{min-width:0;overflow-wrap:break-word}
.names small{margin-top:10px;line-height:1.8}
.family{grid-template-columns:minmax(0,1fr) minmax(0,1fr);line-height:2.2}
@media(max-width:700px){
 .yuki{padding:45px 20px 0;min-height:0;background:#faf8f3}
 .yuki:after{height:320px;margin:0 -20px;background-size:auto 450px}
 .yuki h2{font-size:29px;line-height:1.9}
 .yuki p{font-size:16px;line-height:2.2}
 .yuki .signature{margin:25px 0 35px}
 .farewell{padding:65px 22px 85px;background-size:auto 100%}
 .farewell h2{font-size:29px}
 .names{font-size:17px;gap:6px;grid-template-columns:minmax(0,1fr) 25px minmax(0,1fr)}
 .names small{font-size:14px}
 .location{background-size:auto 100%}
}

/* Ceremony illustrations sit in normal layout, apart from the labels. */
.schedule{max-width:1250px;padding-left:5vw;padding-right:5vw}
.events{gap:20px;align-items:stretch}
.event{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;position:relative;padding:30px 12px 28px;border-radius:100px 100px 10px 10px;background:radial-gradient(ellipse at 50% 30%,#f4e4df66,transparent 65%),#fdfaf5;box-shadow:0 8px 22px #79604f08;min-width:0}
.event:before{content:'';display:block;position:static;flex:none;width:130px;height:120px;margin:5px auto 12px;border-radius:0;background:url('assets/bridal-bouquet.webp') center/contain no-repeat;pointer-events:none}
.event:nth-child(2):before{background-image:url('assets/wedding-rings.webp')}
.event:nth-child(3):before{background-image:url('assets/blessing-threads.webp')}
.event:nth-child(4):before{background-image:url('assets/reception-cake.webp')}
.event small{display:block;line-height:1.8;font-size:14px;margin:0 0 8px;color:#807168;letter-spacing:0}
.event time{display:block;font-size:44px;line-height:1.3;margin:4px 0 16px;color:#8b6158;padding:0;border:0}
.event p{font-size:17px;line-height:1.9;margin:0;text-align:center;max-width:100%;overflow-wrap:break-word}
.event:after{content:'';display:block;width:30px;height:1px;background:#cba9a0;margin:20px auto 0}
@media(max-width:900px) and (min-width:701px){.events{grid-template-columns:1fr 1fr;max-width:650px;margin-left:auto;margin-right:auto}}
@media(max-width:700px){.schedule{padding-left:20px;padding-right:20px}.events{grid-template-columns:1fr;gap:15px}.event{display:grid;grid-template-columns:90px minmax(0,1fr);grid-template-rows:auto auto;column-gap:18px;row-gap:6px;border-radius:14px;padding:20px;align-items:center;text-align:left}.event:before{grid-column:1;grid-row:1/3;width:90px;height:105px;margin:0}.event small{display:none}.event time{grid-column:2;grid-row:1;margin:0;padding:0;border:0;font-size:35px;line-height:1.5;align-self:end}.event p{grid-column:2;grid-row:2;text-align:left;font-size:17px;line-height:1.9;align-self:start}.event:after{display:none}}
@media(max-width:360px){.event{padding:16px 12px;grid-template-columns:75px minmax(0,1fr);column-gap:13px}.event:before{width:75px;height:95px}.event p{font-size:16px}}

/* Rounded pastel flowers match the new reference. */
:root{--cream:#fffdf9;--rose:#c980a2;--line:#e6dce2}
body{background:#fffdf9}
.intro,.location,.farewell{background-color:#fffdf9;background-image:url('assets/pastel-flower-background.webp');background-position:center;background-size:100% auto;background-repeat:no-repeat}
.intro{border-color:#e5d9e9;box-shadow:0 12px 35px #b1a1c51a}
.intro .eyebrow:before{background-image:url('assets/pastel-daisies.svg');width:180px;height:80px;transform:translateX(-50%);top:0}
.intro .eyebrow{padding-top:95px}
.intro .button,.actions .button:first-child{background:#786c8d;border-color:#786c8d}
.invitation{background:#fffcf9 url('assets/pastel-flower-background.webp') center/100% auto no-repeat;border-color:#e9dbe5}
.invitation:after{width:200px;height:80px;background-image:url('assets/pastel-daisies.svg');transform:none;margin-top:30px}
.section-head:after,.farewell:after{width:220px;height:80px;background-image:url('assets/pastel-daisies.svg');transform:none}
.farewell:before{display:none}
.moments{background:linear-gradient(140deg,#fceef2,#f1ebfa 55%,#eaf3fb)}
.countdown{background:linear-gradient(110deg,#eef5ff,#f9eff8 55%,#fff8df);border-color:#e8deed}
.clock b{color:#887096}
.clock>div{border-color:#d8cde2}
.event{background:#fffdf9;border-color:#e5dcec}
.event:nth-child(1){background:linear-gradient(160deg,#edf5ff,#fffdf9 70%)}
.event:nth-child(2){background:linear-gradient(160deg,#fff0f5,#fffdf9 70%)}
.event:nth-child(3){background:linear-gradient(160deg,#f3edfc,#fffdf9 70%)}
.event:nth-child(4){background:linear-gradient(160deg,#fff8df,#fffdf9 70%)}
.event:first-child:before{background-image:url('assets/pastel-daisies.svg');width:145px}
.location>p,.location>h2,.location>h3,.location>.eyebrow,.farewell p{background:#fffdf9e8}
footer{background:#f4effa;border-color:#e4dced}
.yuki{background:#fffdf9}
.bottom{background:#fffdf9f5}
@media(max-width:700px){.intro,.invitation,.location,.farewell{background-size:100% auto}.section-head:after,.farewell:after{width:180px;height:65px}.event:first-child:before{width:90px}.intro .eyebrow:before{width:160px;height:75px}.intro .eyebrow{padding-top:85px}.yuki{background:#fffdf9}}
@media(max-width:360px){.event:first-child:before{width:75px}}

/* Wide footer sections use small ornaments instead of stretching a portrait image. */
.location,.farewell{background-image:url('assets/pastel-daisies.svg'),url('assets/pastel-daisies.svg');background-position:left 20px bottom 25px,right 20px top 25px;background-size:clamp(140px,18vw,230px) auto;background-repeat:no-repeat}
@media(max-width:700px){.location,.farewell{background-size:135px auto;background-position:left 3px bottom 12px,right 3px top 12px}}

/* The supplied photographs form one complete, browsable album. */
.hero-photo img{object-position:center 37%}
.wedding-gallery{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;align-items:start}
.gallery-item{margin:0;padding:10px 10px 12px;background:#fffdfb;border:1px solid #fff8;box-shadow:0 10px 28px #7a658314;border-radius:5px;min-width:0}
.gallery-item:nth-child(3n+2){margin-top:32px}
.gallery-item .photo{border-radius:3px;width:100%;aspect-ratio:2/3;background:#eee7e8}
.gallery-item img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.gallery-item figcaption{font-size:15px;text-align:center;line-height:1.9;padding:13px 4px 3px;color:#79657a}
.gallery-item .photo:focus-visible{outline:3px solid #a28bc0;outline-offset:4px}
.gallery-hint{font-size:14px;color:#7f6e82;margin-top:16px!important}
#lightbox{position:fixed;margin:auto;overflow:visible;max-width:100vw;max-height:100dvh;width:100vw;height:100dvh;background:transparent;outline:none}
#lightbox[open]{display:flex;align-items:center;justify-content:center}
#lightbox img{max-width:calc(100vw - 160px);max-height:calc(100dvh - 120px);width:auto;height:auto;object-fit:contain;box-shadow:0 12px 45px #0004}
#lightbox button{z-index:2;display:flex;align-items:center;justify-content:center;border:1px solid #ffffff50;background:#fffdf3f0;color:#4b3d4f;width:48px;height:48px;border-radius:50%;font-family:Arial,sans-serif;font-size:34px;line-height:1;padding:0;position:fixed}
#lightbox .close-photo{top:18px;right:20px}
#lightbox .prev-photo{top:50%;left:20px;right:auto;transform:translateY(-50%)}
#lightbox .next-photo{top:50%;right:20px;transform:translateY(-50%)}
#lightbox .photo-counter{position:fixed;bottom:15px;left:50%;transform:translateX(-50%);margin:0;padding:3px 20px;border-radius:30px;background:#ffffff16;color:#fff;font-size:16px;line-height:1.8}
@media(max-width:900px){.wedding-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.gallery-item:nth-child(3n+2){margin-top:0}.gallery-item:nth-child(even){margin-top:25px}}
@media(max-width:700px){.moments{padding-left:16px;padding-right:16px}.wedding-gallery{gap:12px}.gallery-item{padding:6px 6px 8px}.gallery-item figcaption{font-size:13px;padding:10px 2px 1px;line-height:1.8}.gallery-item:nth-child(even){margin-top:20px}.gallery-hint{font-size:14px}#lightbox img{max-width:calc(100vw - 24px);max-height:calc(100dvh - 155px)}#lightbox .prev-photo,#lightbox .next-photo{top:auto;bottom:20px;transform:none;width:46px;height:46px}#lightbox .prev-photo{left:22px}#lightbox .next-photo{right:22px}#lightbox .photo-counter{bottom:25px}.hero-photo img{object-position:center 35%}}
