:root{--gold:#cdbc50;--blush:#f9e5e7;--pink:#fdb7b7;--coral:#f34b5c;--yellow:#fce478;--white:#fffdf9;--cream:#fff8ee;--black:#1d1a18}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--white);color:var(--black);font-family:"DM Sans",sans-serif;overflow-x:hidden}body.cover-open{overflow:hidden}img,video{display:block;width:100%}a{color:inherit}h1,h2,h3{font-family:"Cormorant Garamond",serif}h2{margin:0;font-size:clamp(3rem,6vw,5.2rem);font-weight:600;line-height:.93}h3{font-size:1.8rem}p{line-height:1.7}.container{width:min(1120px,calc(100% - 40px));margin:auto}.section{padding:110px 0}.overline{margin:0 0 20px;font-size:.68rem;font-weight:600;letter-spacing:.28em;text-transform:uppercase}.overline.coral{color:var(--coral)}.overline.light{color:rgba(255,255,255,.78)}

.campaign-cover{position:fixed;z-index:100;inset:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 50% 44%,#fff 0,#f7f4ef 43%,#e8e2db 100%);isolation:isolate;perspective:1400px}.campaign-cover[hidden]{display:none}.cover-glow{position:absolute;width:min(90vw,980px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(255,255,255,0) 68%);filter:blur(6px)}.suitcase-scene{position:relative;width:min(70vw,650px,60.4svh);aspect-ratio:1035/1370;transform-style:preserve-3d;filter:drop-shadow(0 32px 28px rgba(31,29,27,.22));animation:suitcase-arrival 1s cubic-bezier(.2,.72,.2,1) both;transition:transform .75s cubic-bezier(.55,0,.2,1)}.suitcase-scene>img{position:absolute;inset:0;height:100%;object-fit:contain}.suitcase-closed{z-index:4;transition:opacity .14s ease .12s}.suitcase-base{z-index:2;clip-path:inset(36% 0 0 0)}.suitcase-lid{z-index:5;clip-path:inset(0 0 61% 0);transform-origin:50% 39%;transform-style:preserve-3d;backface-visibility:visible}.suitcase-interior{position:absolute;z-index:1;top:38%;right:7%;bottom:8%;left:7%;overflow:hidden;padding:8% 8% 10%;border:7px solid #d7d7d5;border-radius:7% 7% 13% 13%;background:linear-gradient(145deg,#151515,#393939);box-shadow:inset 0 0 45px rgba(0,0,0,.75);opacity:0;transform:scaleY(.08);transform-origin:50% 0}.inside-collage{display:grid;height:82%;grid-template-columns:repeat(3,1fr);gap:2.4%;transform:rotate(-1deg)}.inside-collage img{height:100%;border:5px solid #fff;object-fit:cover;box-shadow:0 5px 15px rgba(0,0,0,.35)}.inside-collage img:nth-child(2){transform:translateY(7%) rotate(3deg)}.inside-collage img:nth-child(3){transform:rotate(-2deg)}.suitcase-interior p{margin:5% 0 0;color:#f8eee1;font:italic 600 clamp(.72rem,1.4vw,1.05rem) "Cormorant Garamond";letter-spacing:.08em;text-align:center}.open-button{position:absolute;z-index:8;bottom:max(28px,5vh);left:50%;display:flex;align-items:center;gap:18px;padding:15px 24px;border:1px solid rgba(29,26,24,.2);border-radius:999px;background:rgba(255,255,255,.86);color:var(--black);font:600 .67rem "DM Sans";letter-spacing:.16em;text-transform:uppercase;transform:translateX(-50%);box-shadow:0 12px 30px rgba(29,26,24,.12);backdrop-filter:blur(12px);cursor:pointer;transition:transform .25s,background .25s,opacity .25s}.open-button:hover{background:#fff;transform:translateX(-50%) translateY(-3px)}.open-button span:last-child{font-size:1.15rem}.open-button:disabled{cursor:default}.open-hint{position:absolute;z-index:8;bottom:max(8px,1.8vh);left:50%;margin:0;color:#77706a;font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;transform:translateX(-50%);transition:opacity .25s}.campaign-cover.is-opening .suitcase-closed{opacity:0}.campaign-cover.is-opening .suitcase-lid{animation:open-lid 1.35s cubic-bezier(.18,.72,.18,1) .14s forwards}.campaign-cover.is-opening .suitcase-interior{animation:reveal-interior 1s ease .35s forwards}.campaign-cover.is-opening .open-button,.campaign-cover.is-opening .open-hint{opacity:0;pointer-events:none}.campaign-cover.is-entering{animation:enter-campaign .75s cubic-bezier(.55,0,.2,1) forwards}.campaign-cover.is-entering .suitcase-scene{transform:scale(1.38)}
@keyframes suitcase-arrival{from{opacity:0;transform:translateY(28px) scale(.92)}to{opacity:1;transform:none}}@keyframes open-lid{0%{transform:rotateX(0) translateY(0)}45%{transform:rotateX(-55deg) translateY(-7%)}100%{transform:rotateX(-118deg) translateY(-12%);filter:brightness(.8)}}@keyframes reveal-interior{0%{opacity:0;transform:scaleY(.08)}40%{opacity:1}100%{opacity:1;transform:scaleY(1)}}@keyframes enter-campaign{0%{opacity:1}100%{opacity:0;transform:scale(1.08)}}

.campaign-header{position:sticky;z-index:30;top:0;display:flex;align-items:center;justify-content:space-between;padding:17px max(22px,calc((100% - 1120px)/2));border-bottom:1px solid rgba(205,188,80,.3);background:rgba(255,253,249,.92);backdrop-filter:blur(14px)}.header-brand{font:600 1.2rem "Cormorant Garamond";text-decoration:none}.campaign-header nav{display:flex;gap:25px}.campaign-header nav a,.header-enquire{font-size:.66rem;letter-spacing:.13em;text-decoration:none;text-transform:uppercase}.header-enquire{padding:10px 17px;background:var(--coral);color:white}
.route-hero{position:relative;display:flex;min-height:100svh;align-items:center;overflow:hidden}.route-hero>img{position:absolute;inset:0;height:100%;object-fit:cover;object-position:center 35%}.route-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(29,26,24,.76),rgba(29,26,24,.08))}.route-copy{position:relative;z-index:1;width:min(1120px,calc(100% - 40px));margin:auto;color:white}.route-copy h1{margin:0;font-size:clamp(4.2rem,9vw,7.5rem);font-weight:600;line-height:.72}.route-tagline{font:600 1.5rem "Cormorant Garamond"}.gold-line{display:block;width:35px;height:2px;margin:28px 0;background:var(--gold)}.route-polaroid{position:absolute;right:7%;bottom:7%;z-index:2;width:min(300px,25vw);margin:0;padding:10px 10px 28px;background:white;box-shadow:0 12px 35px rgba(0,0,0,.2);transform:rotate(-3deg)}.route-polaroid img{aspect-ratio:3/4;object-fit:cover}.route-polaroid figcaption{padding-top:8px;color:var(--black);font:italic 1rem "Cormorant Garamond";text-align:center}
.split-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.concept-section p:not(.overline){max-width:610px;color:#635b56;font-size:1.02rem}.gold-line.dark{margin:30px 0}.photo-stack{position:relative;padding:0 30px 45px}.photo-main{aspect-ratio:4/5;object-fit:cover;box-shadow:0 15px 35px rgba(29,26,24,.12);transform:rotate(1deg)}.photo-small{position:absolute;bottom:0;left:0;width:35%;aspect-ratio:3/4;border:8px solid white;object-fit:cover;box-shadow:0 8px 22px rgba(29,26,24,.15);transform:rotate(-3deg)}.photo-note{position:absolute;right:0;bottom:12px;padding:10px 15px;background:var(--yellow);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;transform:rotate(2deg)}
.section-heading{margin-bottom:55px}.section-heading.centered{text-align:center}.section-heading>p:last-child{color:#6e665f}.community-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.community-grid a{display:flex;min-height:225px;flex-direction:column;align-items:center;justify-content:center;border-top:1px solid var(--gold);border-radius:4px;background:#fdf3f4;text-decoration:none}.community-grid a:nth-child(2){background:#fff9d7}.community-grid a:nth-child(3){background:#fff0f0}.community-grid strong{color:var(--coral);font:700 3.6rem "Cormorant Garamond"}.community-grid span{font-size:.75rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.community-grid small{margin-top:9px;color:#736c66;font-size:.68rem}.community-featured{transform:translateY(-12px)}.community-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin:65px 0 40px;padding-top:38px;border-top:1px solid rgba(205,188,80,.45)}.community-notes article{text-align:center}.community-notes span{color:var(--coral);font:600 1.4rem "Cormorant Garamond"}.community-notes p{margin:8px 0}.text-link{display:block;color:var(--coral);font-size:.75rem;font-weight:600;letter-spacing:.12em;text-align:center;text-transform:uppercase}.community-closing{max-width:700px;margin:35px auto 0;color:#716a65;font:italic 1.15rem "Cormorant Garamond";text-align:center}
.moments-section{background:var(--cream)}.moment-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:repeat(2,290px);gap:15px}.moment-card{position:relative;overflow:hidden}.moment-card.moment-tall{grid-row:1/3}.moment-card img{height:100%;object-fit:cover;transition:transform .35s}.moment-card:hover img{transform:scale(1.04)}.moment-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(0,0,0,.7))}.moment-card div{position:absolute;right:0;bottom:0;left:0;z-index:1;padding:24px;color:white}.moment-card h3{margin:0 0 5px;font-size:1.6rem}.moment-card p{margin:0;font-size:.8rem}.category-line{max-width:900px;margin:45px auto 0;text-align:center}.category-line strong{color:var(--coral)}
.packages-section{background:var(--white)}.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.package-card{position:relative;display:flex;min-height:440px;flex-direction:column;padding:42px 35px;border-top:1px solid var(--gold);transition:transform .25s,box-shadow .25s}.package-card:hover{transform:translateY(-6px);box-shadow:0 15px 32px rgba(29,26,24,.08)}.package-yellow{background:var(--yellow)}.package-coral{background:var(--coral);color:white;transform:translateY(-12px)}.package-coral:hover{transform:translateY(-18px)}.package-pink{background:rgba(253,183,183,.35)}.package-kicker{margin:0 0 12px;font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.package-card h3{margin:0 0 30px;font-size:2rem}.package-card ul{margin:0;padding-left:19px;line-height:2}.package-card>strong{margin-top:auto;font:700 2rem "Cormorant Garamond";text-transform:uppercase}.popular-label{position:absolute;top:20px;right:18px;padding:7px 10px;background:rgba(255,255,255,.2);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase}
.final-cta{padding:115px 0;background:linear-gradient(135deg,var(--coral),#db6782);color:white}.final-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.final-cta h2{font-size:clamp(3.3rem,6vw,5.3rem)}.contact-details{display:flex;flex-direction:column;margin:35px 0}.contact-details strong{font:600 1.4rem "Cormorant Garamond"}.contact-details span,.contact-details a{margin-top:7px;color:rgba(255,255,255,.88)}.cta-button{display:inline-block;padding:15px 25px;background:white;color:var(--coral);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-decoration:none;text-transform:uppercase}.final-collage{position:relative;padding:0 0 45px 45px}.final-main{aspect-ratio:4/5;object-fit:cover;box-shadow:0 18px 40px rgba(0,0,0,.2);transform:rotate(-1deg)}.final-small{position:absolute;bottom:0;left:0;width:35%;aspect-ratio:3/4;border:8px solid white;object-fit:cover;transform:rotate(3deg)}.licensing-note{padding:45px 22px;background:var(--cream);text-align:center}.licensing-note p{max-width:850px;margin:0 auto 22px;color:#6c645e;font-size:.82rem}.licensing-note a{font-size:.65rem;letter-spacing:.15em;text-transform:uppercase}

@media(max-width:800px){.suitcase-scene{width:min(88vw,60.4svh)}.open-button{bottom:max(24px,4vh)}.campaign-header nav{display:none}.split-layout,.final-grid{grid-template-columns:1fr;gap:60px}.route-polaroid{display:none}.community-grid{gap:8px}.community-grid a{min-height:180px}.community-grid strong{font-size:2.8rem}.community-notes{grid-template-columns:1fr;gap:12px}.moment-grid{grid-template-columns:1fr 1fr;grid-template-rows:360px 230px 230px}.moment-card.moment-tall{grid-column:1/3;grid-row:auto}.package-grid{grid-template-columns:1fr}.package-coral,.package-coral:hover{transform:none}.final-collage{max-width:560px}.section{padding:80px 0}}
@media(max-width:520px){.container{width:calc(100% - 28px)}.suitcase-scene{width:min(92vw,60.4svh)}.suitcase-interior{border-width:4px}.inside-collage img{border-width:3px}.open-button{bottom:32px;width:max-content;padding:13px 19px}.open-hint{bottom:12px}.campaign-header{padding:14px}.community-grid strong{font-size:2.3rem}.community-grid a{min-height:145px}.community-grid span{font-size:.6rem}.community-grid small{font-size:.58rem}.moment-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.moment-card,.moment-card.moment-tall{flex:0 0 82vw;height:430px;scroll-snap-align:start}.package-card{min-height:390px}.final-collage{padding-left:28px}.final-cta{padding:80px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.suitcase-scene{animation:none}.campaign-cover.is-opening .suitcase-lid,.campaign-cover.is-opening .suitcase-interior,.campaign-cover.is-entering{animation:none}}
