
:root{--plum:#26112e;--purple:#3e2049;--cream:#f7f2e9;--gold:#e3c184;--ink:#2b1c30;--muted:#c9bbcc}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--plum);color:var(--cream);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #d3a8ef;outline-offset:5px}.wrap{width:min(1200px,88%);margin:auto}.skip{position:absolute;top:-100px}.skip:focus{top:8px;background:#fff;color:#000;z-index:99;padding:10px}header{border-bottom:1px solid #ffffff20;background:#26112ef5;position:sticky;top:0;z-index:10}nav{height:80px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.15}.brand strong{font:27px Georgia,serif;letter-spacing:-.5px}.brand span{font-size:8px;letter-spacing:2.4px;text-transform:uppercase;color:var(--gold);margin-top:5px}.links{display:flex;gap:30px;align-items:center;font-size:13px}.links>a{text-decoration:none}.links>a:hover{color:var(--gold)}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:52px;padding:13px 25px;background:var(--gold);color:var(--plum);text-decoration:none;font-size:13px;font-weight:bold;letter-spacing:.4px;border:1px solid var(--gold);transition:background .2s,transform .2s}.button:hover{background:#f3d9ab;transform:translateY(-2px)}.button.small{min-height:41px;padding:8px 17px}.eyebrow{font-size:11px;letter-spacing:3px;font-weight:bold;text-transform:uppercase;color:var(--gold);margin:0 0 25px}.hero{padding:65px 0 75px;position:relative;overflow:hidden;background:radial-gradient(ellipse at 77% 38%,#65416865,transparent 52%)}.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:8%;align-items:center}.hero h1{font-family:Georgia,'Times New Roman',serif;font-weight:normal;font-size:clamp(66px,7.3vw,108px);line-height:.98;letter-spacing:-4px;margin:0 0 25px}.hero h1 em{font-weight:normal;color:var(--gold)}.year{font:22px Georgia,serif;letter-spacing:8px;color:var(--gold);display:flex;align-items:center;gap:20px;margin-bottom:30px}.year:after{content:'';height:1px;width:90px;background:#e3c18480}.hero .theme{font:italic 24px/1.5 Georgia,serif;max-width:440px;margin:0 0 22px}.intro{color:var(--muted);max-width:440px;font-size:15px;margin-bottom:30px}.hero-meta{margin:0 0 30px;padding-left:16px;border-left:1px solid var(--gold);font-size:13px;line-height:1.9}.hero-meta strong{font-size:15px;font-weight:normal;color:#fff}.secondary{font-size:12px;display:block;margin-top:17px;color:var(--muted);text-underline-offset:5px}.poster{margin:0;position:relative}.poster a{display:block}.poster img{display:block;width:100%;height:auto;border:1px solid #e3c18470;box-shadow:0 24px 75px #0006}.poster figcaption{margin-top:15px;text-align:center;font-size:10px;letter-spacing:2px;color:var(--gold);text-transform:uppercase}.facts{border-top:1px solid #e3c18440;border-bottom:1px solid #e3c18440;background:#1e0d25}.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:30px 0;gap:28px}.facts p{margin:0}.label{font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--gold);margin-bottom:8px!important}.fact-value{font:21px Georgia,serif}.fact-note{font-size:12px;color:var(--muted);margin-top:3px!important}.light{background:var(--cream);color:var(--ink)}section{scroll-margin-top:80px}.invitation{padding:85px 0}.section-top{display:grid;grid-template-columns:1fr 1.15fr;gap:12%;align-items:start}.light .eyebrow{color:#78542c}.section-title{font:normal clamp(37px,4.2vw,58px)/1.1 Georgia,serif;letter-spacing:-1px;margin:0 0 24px}.section-copy{font-size:16px;line-height:1.9;color:#645668;margin:0 0 22px}.small-tag{display:inline-block;border-bottom:1px solid #a98450;padding-bottom:6px;font-size:12px;letter-spacing:1.1px}.dress{padding:70px 0 90px;border-top:1px solid #4a2a5325}.dress-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.guide{display:block;width:100%;height:auto;border:1px solid #ba9b6c80;box-shadow:0 20px 45px #29132d16}.dress-list{margin:25px 0 28px}.dress-list>div{border-top:1px solid #4a2a5325;padding:20px 0 0;margin-top:20px}.dress-list h3{font:24px Georgia,serif;margin:0 0 9px}.dress-list p{font-size:14px;color:#645668;margin:0}.text-link{font-size:13px;text-decoration:underline;text-underline-offset:5px}.swatches{display:flex;gap:9px;margin:23px 0 9px}.swatches span{height:23px;width:23px;border-radius:50%;border:1px solid #0002}.swatch-note{font-size:11px;color:#75677a}.venue{padding:85px 0;background:radial-gradient(ellipse at 0 0,#53315d,transparent 65%)}.venue-grid{display:grid;grid-template-columns:1fr 1fr;gap:12%}.venue h3{font:32px Georgia,serif;margin:0 0 15px}.venue address{font-style:normal;color:var(--muted);margin-bottom:24px}.venue-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.outline{background:transparent;color:var(--gold)}.outline:hover{color:var(--plum)}.venue-detail{border-top:1px solid #ffffff25;padding:18px 0;display:flex;justify-content:space-between;gap:25px;font-size:14px}.venue-detail span{color:var(--muted)}.faq{padding:65px 0 75px;border-bottom:1px solid #ffffff20}.faq-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:12%}.faq h2{font:38px Georgia,serif;margin:0}details{border-bottom:1px solid #ffffff25;padding:18px 0}details:first-child{padding-top:0}summary{cursor:pointer;font-size:15px}details p{color:var(--muted);font-size:14px;max-width:540px;padding-left:17px}.closing{text-align:center;padding:80px 0 90px;background:radial-gradient(ellipse at 50% 100%,#63406b60,transparent 70%)}.closing h2{font:normal clamp(39px,5vw,64px)/1.1 Georgia,serif;margin:0 0 25px}.closing p{color:var(--muted);font-size:14px;margin-bottom:26px}.closing .button{min-width:240px}footer{background:#1c0b23;padding:27px 0}footer .wrap{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px}footer a{text-underline-offset:4px}.mobile-cta{display:none}
@media(min-width:1500px){.hero{padding:75px 0}}@media(max-width:850px){.links{gap:18px}.hero-grid{gap:5%}.hero h1{font-size:70px}.hero .theme{font-size:21px}.hero{padding:45px 0}.facts-grid{grid-template-columns:repeat(2,1fr);gap:25px}.section-top,.venue-grid,.faq-grid{gap:7%}.dress-grid{gap:6%}.section-title{font-size:40px}.invitation{padding:60px 0}.dress{padding:55px 0}.hero .intro{font-size:14px}}
@media(max-width:600px){.wrap{width:88%}nav{height:72px}.brand strong{font-size:24px}.brand span{font-size:7px;letter-spacing:1.8px}.links>a:not(.button){display:none}.button.small{padding:8px 12px;font-size:11px}.hero-grid{grid-template-columns:1fr;gap:42px}.hero{padding:42px 0}.hero h1{font-size:78px;letter-spacing:-3px}.hero .eyebrow{font-size:10px;margin-bottom:22px}.hero .theme{font-size:24px}.hero .intro{font-size:15px}.poster{width:92%;margin:auto}.hero .button{width:100%}.secondary{text-align:center}.facts-grid{padding:28px 0;gap:22px 12px}.fact-value{font-size:20px}.fact-note{font-size:11px}.section-top,.dress-grid,.venue-grid,.faq-grid{grid-template-columns:1fr;gap:25px}.section-title{font-size:42px}.section-copy{font-size:15px}.invitation{padding:55px 0}.dress{padding:50px 0}.dress-grid .dress-copy{order:-1}.guide{width:100%}.venue{padding:55px 0}.faq{padding:50px 0}.faq h2{margin-bottom:14px}.closing{padding:55px 0}.closing h2{font-size:44px}footer{padding-bottom:100px}footer .wrap{flex-direction:column;gap:9px}.mobile-cta{display:flex;position:fixed;bottom:0;left:0;right:0;padding:10px 6% calc(10px + env(safe-area-inset-bottom));background:#26112ef5;z-index:15;border-top:1px solid #e3c18460}.mobile-cta .button{width:100%;min-height:45px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}

[data-style="local-style-1"]{background:#980d48}
[data-style="local-style-2"]{background:#580b1e}
[data-style="local-style-3"]{background:#133a32}
[data-style="local-style-4"]{background:#111b37}
[data-style="local-style-5"]{background:#c69c56}
[data-style="local-style-6"]{background:#cfaa94}
[data-style="local-style-7"]{background:#141111}
[data-style="local-style-8"]{background:#fffaf1}
[data-style="local-style-9"]{margin-top:28px}
/* Display the supplied unlocked-padlock emblem beside the brand text. */
.brand{flex-direction:row;align-items:center;gap:12px;flex-shrink:0}
.brand .brand-mark{display:block;position:relative;width:50px;height:50px;flex:0 0 50px;border-radius:50%;overflow:hidden;margin:0;letter-spacing:0;box-shadow:0 0 0 1px #dcb77555}
.brand-mark img{position:absolute;max-width:none;width:492.3077%;height:auto;left:-11.9231%;top:-26.9231%}
.brand .brand-text{display:flex;flex-direction:column;margin:0;letter-spacing:normal;text-transform:none;color:var(--cream)}
.brand-text strong{font-weight:normal}
.brand .brand-text>span{margin-top:5px}
@media(max-width:600px){nav{gap:10px}.brand{gap:8px}.brand .brand-mark{width:38px;height:38px;flex-basis:38px}.brand strong{font-size:20px}.brand .brand-text>span{font-size:6px;letter-spacing:1px}.button.small{padding:8px 10px;font-size:10px}}

/* Motion and polish. Everything here is CSS-only because the page's CSP blocks scripts. */
:root{--ease:cubic-bezier(.22,1,.36,1)}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
a,summary{touch-action:manipulation}
header{background:#26112ee0;-webkit-backdrop-filter:saturate(140%) blur(12px);backdrop-filter:saturate(140%) blur(12px)}

@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes settle{from{opacity:0;transform:translateY(28px) scale(.97)}to{opacity:1;transform:none}}
@keyframes draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes slide-up{from{transform:translateY(110%)}to{transform:none}}
@keyframes header-lift{to{background:#1e0d25f0;box-shadow:0 10px 30px #0000004d}}

/* Staggered hero entrance */
header{animation:fade .8s var(--ease) both}
.hero-grid>div>*{animation:rise .9s var(--ease) both}
.hero-grid>div>:nth-child(2){animation-delay:.08s}
.hero-grid>div>:nth-child(3){animation-delay:.16s}
.hero-grid>div>:nth-child(4){animation-delay:.24s}
.hero-grid>div>:nth-child(5){animation-delay:.32s}
.hero-grid>div>:nth-child(6){animation-delay:.4s}
.hero-grid>div>:nth-child(7){animation-delay:.48s}
.hero-grid>div>:nth-child(8){animation-delay:.56s}
.year:after{transform-origin:left;animation:draw 1.2s .6s var(--ease) both}
.poster{animation:settle 1.3s .2s var(--ease) both}
.mobile-cta{animation:slide-up .7s 1s var(--ease) both}

/* Images */
.poster img{background:var(--purple)}
.guide{background:#efe6d6}
.poster img,.guide{transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.poster a:hover img{transform:translateY(-6px);box-shadow:0 36px 90px #00000080}
a:hover>.guide{transform:translateY(-6px);box-shadow:0 30px 60px #29132d2e}

/* Buttons and links */
.button{transition:background-color .3s,color .3s,box-shadow .4s var(--ease),transform .4s var(--ease)}
.button:hover{box-shadow:0 12px 28px #e3c18433}
.button:active{transform:translateY(0) scale(.98);transition-duration:.08s}
.arr{display:inline-block;transition:transform .4s var(--ease)}
a:hover>.arr{transform:translate(3px,-3px)}
a:hover>.arr.down{transform:translateY(3px)}
.links>a:not(.button){position:relative;transition:color .3s}
.links>a:not(.button):after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.links>a:not(.button):hover:after{transform:scaleX(1);transform-origin:left}
.text-link,.secondary,footer a{text-decoration-color:currentColor;transition:color .3s,text-underline-offset .3s var(--ease),text-decoration-color .3s}
.text-link:hover,.secondary:hover,footer a:hover{text-underline-offset:8px;text-decoration-color:var(--gold)}
.secondary:hover,footer a:hover{color:var(--cream)}
.swatches span{transition:transform .35s var(--ease)}
.swatches span:hover{transform:translateY(-3px) scale(1.15)}

/* FAQ accordion */
summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;transition:color .3s}
summary::-webkit-details-marker{display:none}
summary:after{content:'+';flex:none;font:24px/1 Georgia,serif;color:var(--gold);transition:transform .45s var(--ease)}
summary:hover{color:var(--gold)}
details[open] summary:after{transform:rotate(45deg)}
details p{padding-left:0;margin-bottom:0}
@supports (interpolate-size:allow-keywords){
:root{interpolate-size:allow-keywords}
details::details-content{block-size:0;overflow:hidden;opacity:0;transition:block-size .5s var(--ease),opacity .4s,content-visibility .5s allow-discrete}
details[open]::details-content{block-size:auto;opacity:1}
}

/* Scroll-linked header shadow and section reveals, where the browser supports scroll timelines */
@media(prefers-reduced-motion:no-preference){
@supports (animation-timeline:scroll()){
header{animation:fade .8s var(--ease) both,header-lift linear both;animation-timeline:auto,scroll();animation-range:normal,0 140px}
}
@supports (animation-timeline:view()){
.facts-grid>div,.section-top>*,.dress-grid>*,.venue-grid>*,.faq-grid>div:first-child,details,.closing .wrap>*{animation:rise ease-out both;animation-timeline:view();animation-range:entry 5% entry 70%}
}
}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}}
