:root{--lime:#ced94f;--forest:#214635;--white:#fffef4;--line:rgba(33,70,53,.25);--script:'Satisfy',cursive}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:92px}body{font-size:21px;margin:0;background:var(--lime);color:var(--forest);font-family:'DM Sans','Noto Sans TC',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible,[role=tabpanel]:focus-visible{outline:3px solid currentColor;outline-offset:6px}button{color:inherit}::selection{background:var(--forest);color:var(--lime)}.skip{position:fixed;top:-80px;left:20px;z-index:99;background:white;padding:16px}.skip:focus{top:20px}.progress{height:3px;width:0;background:var(--forest);position:fixed;top:0;z-index:100}.nav{height:85px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--lime);position:relative;z-index:9}.brand{font-weight:700;font-size:23px;letter-spacing:-1px;display:flex;align-items:center;gap:12px}.brand span{font-size:14px;letter-spacing:2px;font-weight:500;border-left:1px solid var(--forest);padding:5px 0 5px 12px}.nav nav{display:flex;gap:38px;font-size:18px}.nav nav a{border-bottom:1px solid transparent;padding:6px 0}.nav nav a:hover{border-color:var(--forest)}.language{border:1px solid var(--forest);border-radius:30px;padding:9px 17px;background:transparent;font-size:17px}.language span{margin-left:10px}.hero{padding:42px 5% 0;min-height:calc(100svh - 85px);overflow:hidden}.hero-top,.hero-bottom,.hero-foot{display:flex;justify-content:space-between}.eyebrow{font-size:21px;line-height:1.3;margin:0}.eyebrow strong{font-size:28px}.edition{font-size:15px;line-height:1.7;text-align:right;letter-spacing:1.5px}.invitation-title{max-width:1260px;margin:0 auto;position:relative;text-align:center;padding:0 0 35px;transform:rotate(-5deg)}h1{font-family:var(--script);font-weight:400;font-size:clamp(120px,22vw,330px);letter-spacing:-.065em;line-height:1.25;color:var(--white);margin:-10px 0 -40px;animation:title-in 1.2s ease-out both}.swoosh{display:block;width:95%;height:60px;overflow:visible;margin:0 auto}.swoosh path{fill:none;stroke:var(--white);stroke-width:18;stroke-linecap:round;stroke-dasharray:1;animation:draw 1.5s ease-out both .3s}.script{font-family:var(--script);font-weight:400}.subtitle{font-size:clamp(20px,3.3vw,46px);color:var(--white);text-align:right;margin:0 12% 0 0}.hero-bottom{gap:40px;align-items:flex-end;max-width:1320px;margin:15px auto 35px}.small-label{display:block;font-size:15px;letter-spacing:1.7px;font-weight:500;line-height:1.7}.destination h2{font-weight:500;font-size:clamp(24px,3vw,42px);letter-spacing:-1px;line-height:1.15;margin:14px 0 18px}.text-link{display:inline-flex;gap:30px;align-items:center;font-size:17px;border-bottom:1px solid var(--forest);padding-bottom:7px}.text-link span:last-child{font-size:27px}.date-block{text-align:right;padding-bottom:4px}.date-block>p{font-size:clamp(25px,3.7vw,52px);font-weight:500;letter-spacing:-2px;line-height:1.08;margin:15px 0}.date-block>p span{display:block;font-size:.5em;letter-spacing:0;margin-top:8px}.date-block>div{font-size:17px}.hero-foot{padding:18px 0;border-top:1px solid var(--line);font-size:14px;letter-spacing:1.4px}.letter-section{padding:80px 5% 0}.letter{background:var(--forest);color:var(--lime);max-width:1320px;margin:auto;border-radius:8px;padding:70px 7% 50px;position:relative}.letter h2{font-weight:400;font-size:clamp(36px,5.4vw,78px);line-height:1.15;letter-spacing:-2px;margin:25px 0 35px}.letter em,h2 em{font:400 1.15em var(--script)}.letter-copy{max-width:680px;margin-left:auto}.letter-copy p{font-size:22px;line-height:1.8;margin:0 0 24px}.letter-sign{display:flex;justify-content:space-between;align-items:center;margin-top:50px;gap:20px}.letter-sign .script{font-size:46px;color:white}.letter-sign>span:last-child{font-size:17px;letter-spacing:4px}.original-art{height:clamp(120px,21vw,310px);background-image:url('assets/invitation.png');background-size:100% auto;background-position:center bottom;background-repeat:no-repeat;max-width:1400px;margin:0 auto}.section-pad{padding:85px 7%}.section-kicker{display:flex;justify-content:space-between;font-size:14px;letter-spacing:1.7px;padding-bottom:21px;border-bottom:1px solid var(--line);gap:20px}.hosted{background:var(--white)}.hosted-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin:55px 0}.hosted h2,.section-heading h2,.closing h2{font-size:clamp(40px,5.5vw,77px);font-weight:400;letter-spacing:-2px;line-height:1.08;margin:20px 0}.hosted-grid>div>p:last-child{font-size:20px}.inclusions{display:grid;grid-template-columns:1fr 1fr;gap:35px 22px}.inclusions>div{border-bottom:1px solid var(--line);padding:0 0 25px}.icon{font-size:34px;display:block;line-height:1.2;font-weight:400}.inclusions h3{font-size:22px;font-weight:500;margin:15px 0 5px}.inclusions p{font-size:17px;margin:0}.hosted-note{padding:20px 0 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;font-size:17px}.hosted-note strong{font-weight:600}.journey{background:var(--lime)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin:35px 0 50px}.section-heading h2{margin:0;flex:1}.section-heading>p{max-width:290px;font-size:19px;line-height:1.8;margin:0 0 5px}.day-tabs{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--forest)}.day-tab{border:0;border-right:1px solid var(--line);background:transparent;text-align:left;padding:17px 13px;transition:background .2s,color .2s}.day-tab:last-child{border-right:0}.day-tab span{font-size:15px;display:block;letter-spacing:1px}.day-tab b{font-weight:500;font-size:30px;display:block;margin-top:7px}.day-tab[aria-selected=true]{background:var(--forest);color:var(--lime);border-radius:6px 6px 0 0}.day-tab:hover:not([aria-selected=true]){background:rgba(255,255,255,.2)}.day-panel{display:grid;grid-template-columns:.9fr 1.2fr;gap:65px;min-height:430px;padding:48px 0 30px;animation:panel-in .4s ease-out}.day-meta{display:flex;gap:20px;align-items:center}.day-number{font:400 95px/1 var(--script)}.day-date{font-size:16px;line-height:1.7;letter-spacing:1px}.day-story h3{font-size:34px;font-weight:500;line-height:1.15;letter-spacing:-1px;margin:20px 0 14px;max-width:410px}.day-story p{font-size:19px;line-height:1.7;max-width:360px}.day-stay{font-size:17px;border-top:1px solid var(--line);padding-top:18px;margin-top:24px;line-height:1.8}.day-stay span{display:block;font-size:14px;letter-spacing:1.7px}.timeline{list-style:none;padding:0;margin:8px 0}.timeline li{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:0 0 25px;position:relative}.timeline li:before{content:'';position:absolute;left:78px;top:10px;bottom:-5px;width:1px;background:var(--line)}.timeline li:last-child:before{display:none}.timeline li:after{content:'';position:absolute;left:75px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--forest)}.time{font-size:15px;letter-spacing:.3px;line-height:1.8}.timeline h4{font-size:20px;font-weight:500;line-height:1.7;margin:0 0 7px}.timeline p{font-size:17px;line-height:1.7;margin:0;opacity:.8}.full-itinerary{border-top:1px solid var(--forest);border-bottom:1px solid var(--forest)}summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;padding:22px 0;font-size:18px}summary::-webkit-details-marker{display:none}summary span:last-child{transition:transform .3s}.full-itinerary[open] summary span:last-child{transform:rotate(45deg)}.all-day{display:grid;grid-template-columns:120px 1fr;gap:25px;border-top:1px solid var(--line);padding:22px 0}.all-day h3{font-size:18px;line-height:1.7;margin:0}.all-day p{font-size:18px;line-height:1.8;margin:0 0 7px}.fine-print{font-size:15px;line-height:1.8;opacity:.75;margin-top:18px}.travel{background:var(--forest);color:var(--lime)}.travel .section-kicker{border-color:rgba(206,217,79,.3)}.travel-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%}.flight{border-bottom:1px solid rgba(206,217,79,.25);padding:28px 0}.flight>div:first-child{display:flex;justify-content:space-between;font-size:15px;letter-spacing:1px}.flight b{font-size:18px;font-weight:500}.route{display:flex;justify-content:space-between;align-items:center;padding:18px 0 8px}.route strong{font-size:56px;letter-spacing:-2px;font-weight:400}.route>span{font-size:30px;position:relative}.airport{display:flex;justify-content:space-between;font-size:16px}.hotel-row{display:grid;grid-template-columns:60px 1fr;gap:16px;border-bottom:1px solid rgba(206,217,79,.25);padding:18px 0}.hotel-row>span{font-size:16px;line-height:1.8}.hotel-row strong{font-size:20px;font-weight:500;display:block}.hotel-row small{font-size:16px;display:block;opacity:.8;margin-top:4px}.closing{text-align:center;position:relative;overflow:hidden}.closing h2{font-size:clamp(48px,7.5vw,108px);margin:35px 0 28px}.closing>p{font-size:19px}.closing .closing-offer{font-size:17px;margin:20px 0 32px}.apply{display:flex;align-items:center;justify-content:space-between;gap:65px;background:var(--forest);color:var(--lime);padding:20px 28px;border:1px solid var(--forest);border-radius:40px;font-size:21px;margin:auto;transition:transform .2s,background .2s}.apply:hover{transform:translateY(-4px);background:#163b2a}.apply>span:last-child{font-size:28px}.registration-note{font-size:15px;display:block;margin-top:14px;opacity:.7}.closing-sign{font-size:72px;display:block;width:max-content;margin:50px auto 0;transform:rotate(-8deg)}footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);font-size:15px;padding:25px 5% 110px;gap:20px}.sticky-cta{position:fixed;bottom:20px;left:50%;transform:translate(-50%,150%);transition:transform .4s;z-index:10;background:var(--white);color:var(--forest);padding:10px 12px 10px 22px;border:1px solid var(--forest);border-radius:50px;box-shadow:0 8px 30px #1738221a;display:flex;gap:40px;align-items:center;white-space:nowrap}.sticky-cta.show{transform:translate(-50%,0)}.sticky-cta b{font-size:17px;font-weight:500;display:block}.sticky-cta small{font-size:13px;letter-spacing:1px;display:block;margin-top:3px}.sticky-cta button{background:var(--forest);color:var(--lime);border:0;padding:13px 20px;border-radius:30px;font-size:17px}.reveal{transition:opacity .8s,transform .8s}.js .reveal:not(.visible){opacity:0;transform:translateY(25px)}dialog{width:min(92vw,480px);padding:48px 35px 35px;background:var(--lime);color:var(--forest);border:1px solid var(--forest);border-radius:12px}dialog::backdrop{background:#133a2bc9;backdrop-filter:blur(5px)}dialog h2{font-size:45px;line-height:1.08;font-weight:400;letter-spacing:-1px;margin:25px 0}dialog p{font-size:19px;line-height:1.8}.dialog-close{position:absolute;top:13px;right:18px;background:none;border:0;font-size:28px}.dialog-offer{border-top:1px solid var(--line);padding-top:18px;font-size:17px}.dialog-done{background:var(--forest);color:var(--lime);border:0;border-radius:30px;padding:13px 20px;margin-top:12px}.zh h1{font-family:var(--script)}.zh h2 em{font-family:'Noto Sans TC',sans-serif;font-size:.9em}.zh .letter h2,.zh .hosted h2,.zh .section-heading h2,.zh .closing h2{line-height:1.35}.zh .letter-sign .script{font-family:var(--script)}@keyframes draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes title-in{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes panel-in{from{opacity:.3;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero,.section-pad,.letter-section{padding-left:max(7%,calc((100vw - 1400px)/2));padding-right:max(7%,calc((100vw - 1400px)/2))}.hero{min-height:auto}.hero-top{max-width:1320px;margin:auto}}
@media(max-width:760px){.nav{height:70px}.brand{font-size:19px}.nav nav{gap:18px;font-size:16px}.brand span{display:none}.language{padding:7px 12px}.hero{padding-top:30px;min-height:auto}.eyebrow{font-size:16px}.eyebrow strong{font-size:26px}.edition{font-size:12px;letter-spacing:.6px}.invitation-title{margin:25px -1% 10px;padding-bottom:20px}h1{font-size:23vw;margin:0 0 -20px}.swoosh{height:40px}.swoosh path{stroke-width:20}.subtitle{font-size:5vw;margin-right:4%}.hero-bottom{display:block;margin-top:10px}.destination .small-label{font-size:13px}.destination h2{font-size:32px}.date-block{margin-top:35px;border-top:1px solid var(--line);padding-top:20px;text-align:left}.date-block>p{font-size:38px;letter-spacing:-1.5px;margin:10px 0}.date-block>p span{display:inline;font-size:23px;margin-left:10px}.date-block>div{font-size:16px}.hero-foot{font-size:12px;letter-spacing:.5px}.hero-foot>span:last-child{font-size:11px}.letter-section{padding-top:40px}.letter{padding:35px 7% 30px}.letter .small-label{font-size:13px}.letter h2{font-size:39px;letter-spacing:-1.5px}.letter-copy p{font-size:19px;line-height:1.85}.letter-sign{margin-top:30px;align-items:flex-end}.letter-sign .script{font-size:30px}.letter-sign>span:last-child{font-size:14px;letter-spacing:1px}.section-pad{padding:55px 6%}.section-kicker{font-size:12px;letter-spacing:1px;line-height:1.8}.hosted-grid{grid-template-columns:1fr;gap:35px;margin:35px 0}.hosted h2,.section-heading h2{font-size:48px;letter-spacing:-1.5px}.inclusions{gap:30px}.inclusions h3{font-size:21px}.hosted-note{flex-direction:column;gap:8px;font-size:16px}.section-heading{display:block;margin:30px 0}.section-heading>p{margin-top:25px;max-width:100%;font-size:18px}.day-tab{padding:13px 6px}.day-tab span{font-size:13px;letter-spacing:0}.day-tab b{font-size:23px}.day-panel{grid-template-columns:1fr;gap:25px;padding-top:25px}.day-number{font-size:75px}.day-story h3{font-size:30px;margin-top:15px}.day-story p{max-width:100%}.day-stay{margin-top:15px}.timeline{margin-top:0}.timeline li{grid-template-columns:60px 1fr;gap:20px;padding-bottom:25px}.timeline li:before{left:68px}.timeline li:after{left:65px}.timeline h4{font-size:19px}.all-day{grid-template-columns:75px 1fr;gap:13px}.all-day h3,.all-day p{font-size:16px}.travel-grid{grid-template-columns:1fr;gap:35px}.route strong{font-size:50px}.hotel-row{padding:18px 0}.closing h2{font-size:54px;letter-spacing:-2px}.closing>p{font-size:17px}.closing .closing-offer{font-size:16px;line-height:1.7}.apply{font-size:19px;padding:16px 24px;gap:45px}.closing-sign{font-size:62px;margin-top:40px}footer{font-size:13px;padding-bottom:110px}footer>span:nth-child(2){display:none}.sticky-cta{bottom:12px;gap:18px;width:calc(100% - 28px);max-width:430px;padding:9px 10px 9px 18px;justify-content:space-between}.sticky-cta b{font-size:15px}.sticky-cta button{padding:12px 16px;font-size:16px}dialog{padding:45px 25px 30px}.original-art{height:22vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js .reveal:not(.visible){opacity:1;transform:none}}

/* Wider text tracks and wrapping preserve readability at the larger type size. */
.section-kicker,.hero-foot,.hosted-note{flex-wrap:wrap}
.timeline li{grid-template-columns:110px 1fr}
.timeline li:before{left:118px}.timeline li:after{left:115px}
.hotel-row{grid-template-columns:85px minmax(0,1fr)}
.day-panel>* ,.travel-grid>*{min-width:0}
.day-tabs{grid-template-columns:repeat(7,minmax(0,1fr))}
.sticky-cta>span{min-width:0;white-space:normal}
.sticky-cta button{flex-shrink:0}
@media(max-width:760px){
.nav{height:auto;min-height:114px;display:grid;grid-template-columns:1fr auto;gap:12px;padding-top:14px;padding-bottom:12px}
.nav nav{grid-column:1/-1;grid-row:2;justify-content:center;gap:30px;border-top:1px solid var(--line);padding-top:8px}
.language{grid-column:2;grid-row:1}
.timeline li{grid-template-columns:minmax(0,1fr);gap:8px;padding-left:20px}
.timeline li:before{left:3px}.timeline li:after{left:0}
.all-day{grid-template-columns:minmax(0,1fr);gap:12px}
.day-tab{padding-left:4px;padding-right:4px}
.day-tab span{font-size:13px}
.sticky-cta{gap:12px}
.sticky-cta button{padding:12px 14px}
.hero-top{gap:20px}.edition{max-width:48%}
footer{padding-bottom:135px}
}

/* Shared accommodation badges and a separate meal row prevent ambiguous line breaks. */
.stay-tag{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;max-width:100%;padding:10px 14px;border-radius:8px;background:var(--forest);color:var(--lime);line-height:1.7}
.stay-tag .stay-tag-label{font-size:14px;font-weight:600;letter-spacing:1px;white-space:nowrap}
.stay-tag .stay-tag-name{font-size:inherit;letter-spacing:0;min-width:0;overflow-wrap:anywhere}
.hotel-row strong{display:inline-block;background:var(--lime);color:var(--forest);padding:8px 12px;border-radius:8px;line-height:1.6;max-width:100%;overflow-wrap:anywhere}
.meal-note{display:flex;flex-wrap:wrap;gap:4px 6px;margin-top:10px}
.meal-place{white-space:nowrap}
.day-stay .stay-tag{display:inline-flex;font-size:17px;letter-spacing:0}

/* Blessings is the editorial theme; the original invitation palette and lettering remain. */
.blessing-banner{display:flex;align-items:center;gap:26px;max-width:1320px;margin:16px auto 38px;padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.blessing-seal{display:grid;place-items:center;width:92px;height:92px;flex:0 0 92px;border:1px solid var(--forest);border-radius:50%;font-size:54px;line-height:1;transform:rotate(-8deg)}
.blessing-banner>div{min-width:0}
.blessing-title{font-size:clamp(30px,4.2vw,58px);font-weight:500;line-height:1.2;letter-spacing:-1.5px;margin:8px 0 10px}
.blessing-motto{display:block;font-size:17px;line-height:1.7}
.blessing-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:20px 0;margin:0 0 36px;border-top:1px solid #ced94f55;border-bottom:1px solid #ced94f55;font-size:16px;line-height:1.7}
.letter-sign{flex-wrap:wrap}
.day-date{display:flex;flex-direction:column;gap:4px;min-width:0}
.day-date>span{display:block}
.day-story .chapter-label,.all-day .chapter-label{font-size:14px;font-weight:500;letter-spacing:1px;line-height:1.7;margin:20px 0 10px;max-width:none}
.all-day .chapter-label{margin-top:0}
.all-day{grid-template-columns:170px minmax(0,1fr)}
.all-day h3{display:flex;flex-direction:column;gap:4px;min-width:0}
.itinerary-day,.itinerary-date{display:block}
.itinerary-date{font-size:.92em;font-weight:500;white-space:nowrap}
.day-panel .timeline>li>div{min-width:0}
.full-itinerary summary{gap:18px}
.full-itinerary summary>span:last-child{flex:0 0 auto}
@media(max-width:760px){
.blessing-banner{gap:16px;align-items:flex-start;padding:22px 0;margin-bottom:30px}
.blessing-seal{width:58px;height:58px;flex-basis:58px;font-size:35px}
.blessing-title{font-size:30px;line-height:1.25;letter-spacing:-1px}
.blessing-banner .small-label{font-size:12px;letter-spacing:.8px}
.blessing-motto{font-size:16px}
.blessing-values{grid-template-columns:1fr;gap:12px;font-size:17px}
.all-day{grid-template-columns:minmax(0,1fr)}
.all-day h3{gap:5px}
.day-story .chapter-label,.all-day .chapter-label{font-size:14px}
.letter-sign .script{font-size:30px}
}

@media(max-width:760px){
.zh .section-heading h2{font-size:clamp(36px,10vw,48px)}
.zh .closing h2{font-size:clamp(36px,9.6vw,54px)}
.zh .letter h2{font-size:clamp(32px,8.7vw,39px)}
.day-tab span:first-child{font-size:12px;white-space:nowrap}
}
