/* Modern Editorial — white paper, chocolate ink, real photographs. */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Noto+Sans+Thai:wght@400;500&display=swap');
:root{--editorial-rule:#583a2938;--section-space:72px;--heading-gap:32px}
body{font-family:'Noto Sans Thai',sans-serif;font-size:18px;line-height:1.95;font-weight:400}
nav{height:76px;min-height:76px;padding:0 max(24px,6vw);border-bottom:1px solid var(--editorial-rule);gap:24px}
.monogram{font-family:'Cormorant Garamond',Georgia,serif;font-size:29px;font-weight:500;white-space:nowrap}
.links{font-size:15px;gap:30px}
.button{font-family:'Noto Sans Thai',sans-serif;font-size:16px;border:1px solid #583a2966!important;border-radius:0;min-height:50px;padding:11px 24px;box-shadow:none!important;transform:none}
.button:hover,.button:focus-visible{background-color:#f5f0ec!important}
.eyebrow{font-family:'Noto Sans Thai',sans-serif;font-size:15px;letter-spacing:.04em;line-height:1.8}
.serif,.section-head h2,.invitation h2,.location h2,.yuki h2,.farewell h2{font-family:'Noto Sans Thai',sans-serif;font-weight:400;font-style:normal}
.section-head h2,.invitation h2,.location h2,.yuki h2,.farewell h2{font-size:clamp(28px,3vw,39px);line-height:1.6}
.section-head p,.invitation>p,.location>p,.yuki p,.farewell p{font-size:18px;line-height:2}
.invitation:before,.countdown:before,.yuki-copy:before,.farewell:before,.event:before,.event:after{content:none!important;display:none!important}
.editorial-cover{max-width:1120px;margin:0 auto;padding:32px 48px 56px;min-height:0;text-align:center}
.edition{display:flex;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--editorial-rule);font-size:13px;letter-spacing:.06em}
.masthead{display:flex;align-items:center;gap:30px;text-align:left;margin:20px 0 24px}
.wedding-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(90px,15vw,190px);line-height:.86;font-weight:400;letter-spacing:-.065em;flex:1}
.masthead p{font-size:14px;line-height:2;border-left:1px solid var(--editorial-rule);padding:15px 0 15px 24px;margin:0}
.editorial-photo{margin:0;overflow:hidden;aspect-ratio:1.55;background:#fff}
.editorial-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 42%}
.couple-heading{padding:30px 0 24px}
.couple-heading .eyebrow{margin:0 0 12px}
.couple-heading h1{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(64px,8vw,100px);font-weight:400;line-height:1.05;display:flex;align-items:baseline;justify-content:center;gap:24px;margin:0;letter-spacing:-.025em}
.couple-heading h1 i{font-family:inherit;font-size:.55em;font-style:italic;display:inline;margin:0;line-height:1}
.cover-facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--editorial-rule);border-bottom:1px solid var(--editorial-rule)}
.cover-facts p{margin:0;padding:16px 20px;font-size:17px}
.cover-facts p+p{border-left:1px solid var(--editorial-rule)}
.cover-actions{padding:24px 0 0;gap:14px}
.cover-actions .button{font-size:16px}
main>.invitation{max-width:940px;border:0;border-radius:0;box-shadow:none}
.invitation .names{direction:ltr;grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);font-size:clamp(40px,5vw,60px);line-height:1.1;border-color:var(--editorial-rule)!important;gap:20px}
.names>div>span,.names .amp{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400}
.names .amp{font-size:36px;font-style:italic}
.names small{font-family:'Noto Sans Thai',sans-serif;font-size:16px;margin-top:14px;line-height:1.8}
.family{font-size:17px;line-height:2}
.family small{font-size:14px}
.countdown{border-top:1px solid var(--editorial-rule);border-bottom:1px solid var(--editorial-rule)}
.clock{max-width:560px;margin-top:24px}
.clock b{font-family:'Cormorant Garamond',Georgia,serif;font-size:54px;line-height:1.2;font-weight:400}
.clock span{font-size:14px}
.clock>div{border-color:var(--editorial-rule)}
main>.schedule{max-width:1080px}
.schedule .section-head{text-align:left;max-width:none}
.events{display:block;border-top:1px solid var(--editorial-rule);margin:0}
.event{display:grid;grid-template-columns:170px 1fr;gap:30px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--editorial-rule);border-radius:0;box-shadow:none;padding:24px 20px}
.event small{display:none}
.event time{font-family:'Cormorant Garamond',Georgia,serif;font-size:44px;line-height:1.25;margin:0;border:0;padding:0;grid-column:1;grid-row:1}
.event p{font-size:20px;text-align:left;margin:0;grid-column:2;grid-row:1}
main>.moments{border-top:1px solid var(--editorial-rule);border-bottom:1px solid var(--editorial-rule)}
.gallery-hint{font-size:15px!important}
.wedding-gallery{max-width:1000px;gap:48px 48px;padding:16px 14px}
.wedding-gallery .gallery-item{padding:12px 12px 0;border:1px solid #583a291c;box-shadow:0 6px 18px #583a290d;transform:rotate(-1deg);border-radius:0}
.wedding-gallery .gallery-item:nth-child(even){transform:rotate(1deg);margin-top:20px}
.wedding-gallery .gallery-item:before{display:none}
.wedding-gallery .gallery-item figcaption{font-family:'Itim','Noto Sans Thai',sans-serif;font-size:21px;min-height:72px;padding:18px 6px}
.location h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(38px,5vw,60px);font-weight:400}
.actions{gap:14px}
main>.yuki{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);max-width:1080px;margin:0 auto;gap:48px;align-items:center;text-align:left;border-top:1px solid var(--editorial-rule)}
.yuki-copy{max-width:none;margin:0;padding:0}
.yuki h2{margin:12px 0 20px}
.yuki .signature{font-family:'Itim',sans-serif;font-size:23px;margin:24px 0 0}
.yuki-portrait{width:100%;max-width:360px;padding:0;margin:0 auto}
main>.farewell{border-top:1px solid var(--editorial-rule)}
footer{font-size:14px;border-top:1px solid var(--editorial-rule)}
footer span{font-family:'Cormorant Garamond',Georgia,serif;font-size:22px}
.bottom{font-family:'Noto Sans Thai',sans-serif;font-size:15px;border-color:var(--editorial-rule)}
@media(max-width:700px){
 :root{--section-space:48px;--heading-gap:28px}
 body{font-size:17px}
 nav{height:auto;min-height:72px;padding:12px 20px;justify-content:space-between;gap:12px;flex-wrap:wrap}
 .monogram{font-size:26px}.links{font-size:13px;gap:16px}
 .editorial-cover{padding:24px 20px 40px}
 .edition{font-size:11px;padding-bottom:12px;letter-spacing:0}
 .masthead{gap:16px;margin:20px 0}
 .wedding-title{font-size:clamp(76px,19vw,130px)}
 .masthead p{font-size:11px;padding:10px 0 10px 14px;line-height:1.9}
 .editorial-photo{aspect-ratio:1.05}
 .editorial-photo img{object-position:center 44%}
 .couple-heading{padding:24px 0}
 .couple-heading .eyebrow{font-size:14px;margin-bottom:12px}
 .couple-heading h1{font-size:clamp(56px,13vw,82px);gap:16px}
 .cover-facts p{font-size:14px;padding:14px 10px;line-height:1.85}
 .cover-actions{padding-top:20px;gap:12px}
 .cover-actions .button{font-size:15px;padding:10px 18px}
 .section-head p,.invitation>p,.location>p,.yuki p,.farewell p{font-size:17px}
 .invitation .names{font-size:44px;gap:10px;grid-template-columns:minmax(0,1fr) 26px minmax(0,1fr)}
 .names .amp{font-size:28px}.names small{font-size:13px;margin-top:10px}
 .family{font-size:15px}.family small{font-size:13px}
 .clock b{font-size:44px}.clock span{font-size:13px}
 .event{grid-template-columns:88px minmax(0,1fr);gap:20px;padding:20px 0}
 .event time{font-size:36px;line-height:1.3}
 .event p{font-size:17px;line-height:1.9}
 .wedding-gallery{gap:30px 18px;padding:12px 4px}
 .wedding-gallery .gallery-item{padding:7px 7px 0}
 .wedding-gallery .gallery-item:nth-child(even){margin-top:16px}
 .wedding-gallery .gallery-item figcaption{font-size:16px;min-height:66px;padding:14px 3px;line-height:1.6}
 main>.yuki{grid-template-columns:1fr;gap:28px;text-align:center}
 .yuki-portrait{width:82%;max-width:300px}
 .yuki .signature{font-size:22px;margin-top:20px}
 footer{font-size:13px}
}
@media(max-width:380px){nav{justify-content:center}.masthead p{font-size:10px;padding-left:10px}.masthead{gap:10px}.couple-heading h1{gap:12px}.event{gap:14px}.family{font-size:14px}}

/* Keep the chosen portrait complete, centered, within 70% of the page. */
.editorial-photo{width:70%;aspect-ratio:auto;margin:0 auto;overflow:visible;display:flex;justify-content:center}
.editorial-photo img{width:auto;height:auto;max-width:100%;max-height:70svh;object-fit:contain;object-position:center}
@media(max-width:700px){.couple-heading h1{font-size:clamp(44px,11vw,72px);gap:12px}.invitation .names{font-size:clamp(35px,9vw,44px)}}
