@font-face{font-family:Italiana;font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/italiana.ttf) format('truetype')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/cormorant-regular.ttf) format('truetype')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/cormorant-italic.ttf) format('truetype')}
@font-face{font-family:'Noto Serif Thai';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/noto-serif-thai.ttf) format('truetype')}
:root{--forest:#172416;--deep:#101b12;--gold:#ddc58f;--ivory:#f3f0e7;--ink:#253a29;--muted:#bdc3b4;--line:#ddc58f38;--serif:'Cormorant Garamond',Georgia,serif;--display:Italiana,'Cormorant Garamond',Georgia,serif;--thai:'Noto Serif Thai',Tahoma,serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--deep);color:var(--ivory);font-family:var(--thai);font-size:16px;line-height:1.9;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid currentColor;outline-offset:6px}img{max-width:100%;height:auto;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}::selection{background:var(--gold);color:var(--deep)}.skip{position:fixed;top:-100px;left:20px;padding:12px;background:var(--ivory);color:var(--ink);z-index:100}.skip:focus{top:20px}
.site-header{position:absolute;inset:0 0 auto;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:86px;padding:12px 5%;border-bottom:1px solid #f4e6c52b;color:var(--ivory)}.monogram{font-family:var(--serif);font-size:38px;letter-spacing:-3px;line-height:1.3;color:var(--gold);min-width:72px}.monogram span{font-size:24px;font-style:italic;margin:0 3px}.site-header nav{display:flex;gap:8px}.site-header nav a{display:flex;align-items:center;justify-content:center;padding:9px 18px;min-height:44px;font-size:14px;border-radius:40px;transition:background .3s,color .3s}.site-header nav a:hover,.site-header nav a[aria-current]{background:#ffffff12;color:#f9e5b9}.header-date{font-family:var(--serif);font-size:20px;letter-spacing:2px;white-space:nowrap}.header-date span{margin-left:12px;font-family:Arial,sans-serif;font-size:16px}
.hero{position:relative;isolation:isolate;min-height:950px;min-height:max(950px,100svh);overflow:hidden;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:116px 24px 80px}.hero-scene,.hero-shade{position:absolute;inset:0;z-index:-2;pointer-events:none}.hero-scene{will-change:transform;transform:scale(1.025);transform-origin:50% 40%}.hero-scene img{width:100%;height:100%;object-fit:cover;object-position:center}.hero-shade{z-index:-1;background:linear-gradient(180deg,#09140f44,transparent 20%,#0b170c16 60%,#101b12c7),radial-gradient(ellipse at 50% 45%,#0b170c66 0,transparent 65%)}.hero-inner{width:min(880px,100%);margin:auto}.eyebrow{font-family:Arial,sans-serif;font-size:12px;line-height:1.7;letter-spacing:.18em;color:var(--gold);margin:0 0 22px}.countdown-wrap{display:inline-block;margin-bottom:42px;padding:0 24px 21px;border-bottom:1px solid var(--line)}.countdown-wrap .eyebrow{font-size:12px;letter-spacing:.2em;margin-bottom:15px;color:#ecddbb}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;min-width:310px}.countdown>div{display:flex;flex-direction:column;position:relative}.countdown>div+div:before{content:'';position:absolute;left:-13px;top:15px;width:1px;height:24px;background:#ddc58f55}.countdown span{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:43px;line-height:1.1;color:#f5e5bd}.countdown small{font-size:12px;color:#e2dfd2;margin-top:5px}.hero-kicker{margin-bottom:18px;letter-spacing:.33em;color:#f5ebd6}.hero h1{font-family:var(--display);font-size:clamp(76px,8.3vw,132px);line-height:1.05;letter-spacing:-.035em;margin:0 0 25px;color:#f7ead0;text-shadow:0 4px 22px #0003}.hero h1 span{display:block}.hero h1 i{font-family:var(--serif);font-size:50px;line-height:.85;display:block;font-weight:400;color:var(--gold);margin:9px 0 0}.hero-message{font-size:17px;line-height:1.9;margin:0 0 24px;color:#f1eee5}.hero-details{margin-bottom:24px}.hero-date{font-family:var(--serif);font-size:30px;line-height:1.3;letter-spacing:.06em;margin-bottom:10px}.hero-date i{font-size:30px;letter-spacing:0;margin:0 7px}.hero-details>p:last-child{font-family:Arial,sans-serif;font-size:12px;letter-spacing:.15em;color:#dedccb;margin:0}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;padding:13px 24px;min-height:52px;border:1px solid transparent;border-radius:2px;font-size:15px;line-height:1.8;transition:transform .3s,background .3s,box-shadow .3s}.button span{font-family:Arial,sans-serif;font-size:20px}.button:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0002}.button.ivory{background:var(--ivory);color:var(--forest)}.button.ivory:hover{background:var(--gold)}.button.outline{border-color:#ddc58f77;color:var(--gold)}.button.outline:hover{background:#ddc58f14}.button.forest{background:var(--forest);color:var(--ivory)}.button.forest:hover{background:#304832}.hero-bottom{position:absolute;bottom:25px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:flex-end;font-family:Arial,sans-serif;font-size:12px;letter-spacing:.1em;color:#e2d8bd}.hero-bottom>a{display:flex;flex-direction:column;align-items:center;gap:11px;position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap}.scroll-line{height:26px;width:1px;background:linear-gradient(transparent,var(--gold));animation:scroll-cue 2.8s ease-in-out infinite}
.chapter:not(.hero){padding:38px max(6%,calc((100% - 1320px)/2)) 75px}.section-top{display:flex;justify-content:space-between;gap:20px;font-family:Arial,sans-serif;letter-spacing:.12em;font-size:12px;line-height:1.7;padding-bottom:25px;border-bottom:1px solid currentColor;color:#7b826d}.invitation{background:var(--ivory);color:var(--ink)}.invitation-grid{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:10%;padding:80px 0 60px}.invitation-art{padding:0 26px;text-align:center;max-width:430px;justify-self:center}.art-note{display:block;font-family:var(--serif);font-size:28px;font-style:italic;margin-bottom:24px;color:#7a785d}.original-card{display:block;border:1px solid #9a865d59;padding:9px;background:#e5e2d6;transform:rotate(-4deg);box-shadow:12px 20px 45px #18261824;transition:transform .65s cubic-bezier(.2,.7,.2,1),box-shadow .65s}.original-card:hover,.original-card:focus-visible{transform:rotate(0) translateY(-6px);box-shadow:8px 28px 50px #18261835}.original-card img{width:100%;height:auto}.art-edition{display:block;font-family:Arial,sans-serif;font-size:12px;letter-spacing:.14em;color:#686d58;margin-top:32px}.invitation .eyebrow,.venue .eyebrow{color:#6e694d}.display-title{font-family:var(--display);font-size:clamp(46px,4.7vw,70px);line-height:1.08;letter-spacing:-.035em;margin-bottom:28px}.display-title em{font-family:var(--serif);font-weight:400;letter-spacing:-.025em}.invitation-intro{margin-bottom:27px;font-size:17px;line-height:2}.couple{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin:0 0 25px}.couple h3{font-size:22px;line-height:1.6;margin:0 0 5px}.couple p{font-family:Arial,sans-serif;font-size:12px;letter-spacing:.12em;color:#686e5a;margin:0}.couple p span{font-family:var(--thai);font-size:14px;letter-spacing:0;margin-left:6px}.couple>i{font-family:var(--serif);font-size:35px;color:#8b7f56}.invitation-date{border-top:1px solid #71806440;padding-top:23px;font-size:16px;line-height:1.9}.invitation-date p{margin:0 0 6px}.text-link{display:inline-flex;align-items:center;gap:26px;padding:12px 0 7px;border-bottom:1px solid #67725580;font-size:14px;min-height:44px}.text-link span{font-family:Arial,sans-serif}.dress-code{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid #71806440;padding:38px 0 0}.dress-code .eyebrow{margin-bottom:7px}.dress-code h3{font-size:23px;margin:0}.dress-code>p{font-size:14px;color:#656d59;margin:0}.swatches{list-style:none;display:flex;gap:24px;padding:0;margin:0}.swatches li{text-align:center;font-size:14px;white-space:nowrap;color:#535d49}.swatches span{width:48px;height:48px;display:block;border-radius:50%;background:var(--swatch);box-shadow:0 0 0 4px var(--ivory),0 0 0 5px #969a8240;margin:0 auto 12px;transition:transform .35s}.swatches li:hover span{transform:translateY(-6px)}
.schedule{background:var(--forest);color:var(--ivory);position:relative;overflow:hidden}.schedule .section-top{color:#bcb99e;border-bottom-color:var(--line)}.schedule-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:10%;padding:72px 0 5px}.schedule .display-title{font-size:clamp(42px,4.2vw,65px)}.thai-title{font-size:23px;line-height:1.7;margin:0 0 10px}.schedule-intro>p:not([class]){color:var(--muted);margin-bottom:28px}.schedule-signature{font-family:var(--display);font-size:140px;line-height:1;color:#ddc58f28;margin:38px 0 0;letter-spacing:-.08em;user-select:none}.schedule-signature i{font-family:var(--serif);font-size:90px}.timeline{margin:0;list-style:none;padding:0}.timeline li{display:grid;grid-template-columns:35px 132px 1fr;gap:20px;align-items:center;padding:34px 0;border-bottom:1px solid var(--line);position:relative;transition:background .3s,padding .3s}.timeline li:first-child{border-top:1px solid var(--line)}.timeline li:hover{background:#ddc58f09;padding-left:8px}.step{font-family:var(--serif);font-size:20px;color:#bdbe9f}.timeline time{font-family:var(--serif);font-size:46px;line-height:1;color:#e7d4aa;white-space:nowrap}.timeline time small{font-family:var(--thai);font-size:14px}.timeline h3{font-size:19px;line-height:1.8;margin:0 0 5px}.timeline p{font-size:14px;color:var(--muted);margin:0}
.venue{background:var(--ivory);color:var(--ink)}.venue-grid{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:9%;padding:70px 0 55px}.venue .display-title{font-size:clamp(64px,6vw,90px);margin-bottom:26px}.venue-copy>p:not([class]){color:#606b56;margin-bottom:27px}.map-frame{border:1px solid #89907355;padding:10px;background:#eae9df;box-shadow:0 15px 35px #1724160b;min-width:0}.map-heading{display:flex;justify-content:space-between;gap:12px;font-family:Arial,sans-serif;font-size:12px;line-height:1.6;letter-spacing:.09em;padding:9px 7px 18px;color:#58634b}.map-frame iframe{width:100%;height:380px;display:block;border:0;background:#d7ddce}.map-frame>p{font-size:12px;color:#56624d;line-height:1.8;margin:14px 8px 5px}.closing{text-align:center;border-top:1px solid #71806440;padding-top:45px}.closing-names{font-family:var(--display);font-size:clamp(40px,5vw,62px);line-height:1.3;letter-spacing:-.04em;margin-bottom:16px}.closing-names i{font-family:var(--serif);color:#8b805d}.closing>p:not([class]){font-size:16px;margin-bottom:13px}.closing>span{font-family:var(--serif);font-size:25px;font-style:italic;color:#757253}.apology{font-size:14px;margin:15px 0 0;color:#626955}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 6%}footer>span{font-family:Arial,sans-serif;font-size:12px;letter-spacing:.1em;color:#c0bda2}footer>a:last-child{font-size:14px;min-height:44px;display:flex;align-items:center}
.reveal.is-pending{opacity:0;transform:translateY(24px)}.reveal{transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:translateY(0)}
@keyframes scroll-cue{0%,100%{transform:scaleY(.75);opacity:.5}50%{transform:scaleY(1);opacity:1}}
@media(min-width:1500px){.hero{min-height:1000px}.hero-scene img{object-position:center 43%}}
@media(max-width:1100px){.invitation-grid{gap:6%}.invitation-art{padding:0 10px}.couple{gap:16px}.couple h3{font-size:20px}.dress-code>p{display:none}.schedule-grid{gap:6%}.timeline li{grid-template-columns:26px 112px 1fr;gap:10px}.timeline time{font-size:40px}.timeline h3{font-size:17px}.venue-grid{gap:6%}}
@media(max-width:760px){html{scroll-padding-top:25px}.site-header{min-height:70px;padding:12px 6%}.site-header .monogram{font-size:33px}.header-date{font-size:18px}.site-header nav{position:fixed;left:14px;right:14px;bottom:max(12px,env(safe-area-inset-bottom));background:#142618f2;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid #ddc58f55;box-shadow:0 7px 30px #0004;border-radius:38px;padding:5px;gap:1px;max-width:440px;margin:auto;z-index:30}.site-header nav a{flex:1;padding:9px 5px;font-size:14px;line-height:1.7;min-height:44px;white-space:nowrap}.hero{min-height:850px;min-height:max(850px,100svh);padding:95px 23px 100px}.hero-scene img{object-position:30% center}.hero-shade{background:linear-gradient(180deg,#0d1a1166,#0d1a1144 40%,#0d1a1177 80%,#101b12),radial-gradient(ellipse at 50% 44%,#0d1a1170,transparent 90%)}.countdown-wrap{margin-bottom:35px;padding:0 12px 20px}.countdown-wrap .eyebrow{font-size:12px;letter-spacing:.12em}.countdown{min-width:274px;gap:18px}.countdown>div+div:before{left:-9px}.countdown span{font-size:36px}.hero-kicker{font-size:12px;letter-spacing:.22em;margin-bottom:18px}.hero h1{font-size:clamp(70px,16vw,106px);letter-spacing:-.035em;margin-bottom:23px}.hero h1 i{font-size:39px;line-height:1;margin:5px 0 0}.hero-message{font-size:16px;margin-bottom:19px}.hero-date,.hero-date i{font-size:27px}.hero-details>p:last-child{font-size:12px;letter-spacing:.06em}.hero-bottom{bottom:26px;left:6%;right:6%;font-size:12px}.hero-bottom>a{position:static;transform:none;font-size:0;gap:0}.hero-bottom>span:last-child{display:none}.hero-bottom .scroll-line{height:28px}.chapter:not(.hero){padding:28px 7% 50px}.section-top{font-size:12px;letter-spacing:.08em;gap:16px;padding-bottom:20px}.section-top>span:last-child{display:none}.invitation-grid{display:flex;flex-direction:column-reverse;gap:40px;padding:44px 0}.invitation-copy{width:100%;text-align:center}.eyebrow{font-size:12px;letter-spacing:.13em;margin-bottom:19px}.display-title{font-size:clamp(43px,9vw,60px);margin-bottom:24px}.invitation-intro{font-size:16px;margin-bottom:25px}.couple{justify-content:center;gap:17px 20px}.couple h3{font-size:20px}.couple>i{font-size:29px}.couple p{font-size:12px}.invitation-date{font-size:16px;padding-top:20px}.invitation-date p{margin-bottom:8px}.invitation-art{width:76%;max-width:320px;padding:0}.art-note{font-size:26px;margin-bottom:21px}.art-edition{font-size:12px;letter-spacing:.07em;margin-top:27px}.dress-code{flex-direction:column;text-align:center;gap:27px;padding-top:32px}.dress-code h3{font-size:23px}.swatches{gap:24px;justify-content:center;width:100%}.swatches span{width:44px;height:44px}.swatches li{font-size:14px}.schedule-grid{grid-template-columns:1fr;gap:37px;padding:44px 0 0}.schedule-intro{text-align:center}.schedule .display-title{font-size:clamp(41px,8.8vw,60px);margin-bottom:24px}.thai-title{font-size:22px}.schedule-intro>p:not([class]){font-size:16px;margin-bottom:22px}.schedule-signature{display:none}.timeline li{grid-template-columns:25px 115px 1fr;gap:12px;padding:27px 0}.timeline time{font-size:39px}.timeline h3{font-size:17px}.timeline p{font-size:14px}.step{font-size:18px}.venue-grid{grid-template-columns:1fr;gap:34px;padding:42px 0 35px}.venue-copy{text-align:center}.venue .display-title{font-size:68px}.map-heading{font-size:12px;letter-spacing:.02em;padding:8px 3px 14px}.map-heading>span:last-child{font-size:12px}.map-frame{padding:7px}.map-frame iframe{height:320px}.map-frame>p{font-size:12px;margin:12px 5px 4px}.closing{padding-top:34px}.closing-names{font-size:clamp(33px,8.8vw,48px)}.closing>p:not([class]){font-size:16px;line-height:2}.apology{font-size:14px}footer{flex-wrap:wrap;gap:16px;padding:22px 7% calc(96px + env(safe-area-inset-bottom))}footer>.monogram{font-size:32px}footer>span{order:3;width:100%;text-align:center;font-size:12px}footer>a:last-child{margin-left:auto}}
@media(max-width:400px){.hero{padding-left:16px;padding-right:16px}.countdown{min-width:258px;gap:16px}.countdown-wrap{padding-left:7px;padding-right:7px}.countdown span{font-size:35px}.countdown-wrap .eyebrow{letter-spacing:.08em}.couple{flex-direction:column;gap:9px}.couple>i{line-height:1}.couple h3{font-size:21px}.swatches{gap:18px}.swatches span{width:40px;height:40px}.swatches li{font-size:14px}.timeline li{grid-template-columns:22px 1fr;gap:8px 15px}.timeline li>div{grid-column:2}.timeline time{font-size:42px}.timeline h3{font-size:18px}.timeline p{font-size:14px}.map-heading>span:last-child{display:none}.button{font-size:14px;padding:13px 21px}.hero h1{font-size:21vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero-scene{transform:none!important}.reveal.is-pending{opacity:1;transform:none}.original-card{transform:none}}
@media print{.site-header,footer,.button,.hero-bottom,.countdown-wrap,.hero-scene,.hero-shade,.invitation-art,.map-frame,.text-link{display:none}.hero{min-height:0;padding:25px}.hero h1{font-size:65px}.hero,.schedule,.invitation,.venue{background:white;color:#172416}.hero h1,.hero-message,.hero-date,.hero-kicker,.hero-details>p:last-child,.timeline time,.schedule-intro>p:not([class]),.timeline p,.eyebrow{color:#172416}.chapter:not(.hero){padding:25px}.invitation-grid,.schedule-grid,.venue-grid{display:block;padding:15px 0}.dress-code{padding-top:15px}.timeline{break-inside:avoid}.reveal.is-pending{opacity:1;transform:none}.schedule-signature{display:none}}
