:root{--plum:#27131e;--deep:#190f17;--wine:#4b2435;--gold:#d6b574;--ivory:#f8f0e4;--muted:#b6a7a7}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#150e14;color:var(--ivory);font-family:'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,a{font:inherit}
button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.desktop-context{position:fixed;inset:0 50% 0 0;background:radial-gradient(circle at 15% 5%,#533043 0,transparent 45%),linear-gradient(145deg,#28151f,#120d13);border-right:1px solid #d6b5742a}
.context-inner{height:100%;max-width:710px;margin-left:auto;padding:clamp(30px,5vw,80px);display:flex;flex-direction:column;justify-content:space-between}
.context-brand{font-size:13px;font-weight:700;letter-spacing:.2em;color:var(--gold)}
.brand-mark{font-size:20px;margin-right:8px}.brand-muted{color:#a8949d;font-weight:400}
.context-copy{padding:10vh 0}.eyebrow,.section-kicker{font-size:10px;font-weight:700;letter-spacing:.32em;color:var(--gold)}
.context-copy h1{margin:25px 0;font-family:'Playfair Display',Georgia,serif;font-weight:400;font-size:clamp(48px,5vw,84px);line-height:1.13;letter-spacing:-.04em}
.context-copy h1 em{color:var(--gold);font-weight:400}
.context-copy>p:last-of-type{max-width:480px;color:#d6c4c7;font-size:15px;line-height:1.9}
.context-line{display:flex;align-items:center;gap:10px;margin-top:54px;color:#d4c3bc;font-size:10px;letter-spacing:.08em;white-space:nowrap}
.context-line>span:not(.line){color:var(--gold)}.context-line .line{width:32px;height:1px;background:#a58b87}
.context-note{margin:0;color:#9b8892;font-size:11px;line-height:1.8}
.card-stage{width:50%;margin-left:50%;min-height:100vh;padding:36px;display:flex;align-items:flex-start;justify-content:center;background:radial-gradient(circle at 50% 25%,#583341 0,#241520 50%,#160f17 100%)}
.card{position:relative;width:min(100%,460px);min-height:calc(100vh - 72px);overflow:hidden;background:var(--deep);box-shadow:0 30px 90px #0007;border:1px solid #e3c9942a}
.demo-chip{position:absolute;top:16px;right:16px;z-index:20;padding:9px 11px;border:1px solid #f8e8c980;border-radius:2px;background:#24141bbd;backdrop-filter:blur(10px);font-size:9px;font-weight:700;letter-spacing:.15em;color:#f5dec1}
.cover{position:absolute;top:0;left:0;right:0;z-index:10;height:calc(100vh - 72px);min-height:590px;display:grid;place-items:center;overflow:hidden;transition:opacity .65s ease,transform .75s ease}
.cover[hidden]{display:none}.cover-image,.cover-shade{position:absolute;inset:0}.cover-image{background:url('/assets/welcome-bg.png') center/cover no-repeat;filter:brightness(.65);transform:scale(1.03)}
.cover-shade{background:linear-gradient(180deg,#1e0b17aa,#27131e66 37%,#170e16d6)}
.cover-content{position:relative;text-align:center;z-index:1;padding:90px 22px 45px;text-shadow:0 2px 25px #12070b}
.cover-kicker{color:#f4e0b6;font-size:10px;font-weight:700;letter-spacing:.36em}
.cover-monogram{margin:42px auto 13px;width:120px;height:120px;display:grid;place-items:center;border:1px solid #f5e4bb98;border-radius:50%;background:#29192185;box-shadow:0 0 0 10px #e0c28b12,0 0 45px #08030355;color:var(--gold);font-family:'Playfair Display',Georgia,serif;font-size:32px;letter-spacing:-.08em}
.cover-monogram span{font-size:22px;margin:0 4px;font-style:italic}
.cover h2{margin:25px 0 8px;color:#fff9ed;font-family:'Playfair Display',Georgia,serif;font-size:clamp(46px,11vw,66px);font-weight:400;line-height:1.1}
.cover h2 span,.hero h2 span{color:var(--gold);font-style:italic}.cover-date{margin:18px 0 37px;color:#e4c99b;font-size:12px;letter-spacing:.28em}
.open-button{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 auto;padding:16px 25px;min-width:190px;background:var(--gold);border:1px solid #f8e6b6;color:#261620;font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-size:11px;cursor:pointer;box-shadow:0 12px 40px #0b070c99;transition:transform .2s,background .2s}
.open-button:hover{transform:translateY(-3px);background:#f3d9a4}.open-button:active{transform:translateY(0)}.open-spark{font-size:17px}
.cover-hint{margin-top:21px;color:#f7e9d0ad;font-size:9px;letter-spacing:.17em}
.is-open .cover{opacity:0;transform:scale(1.05);pointer-events:none}
.invitation{display:none}.is-open .invitation{display:block;animation:reveal .8s ease both}
.hero{height:680px;max-height:100svh;min-height:590px;position:relative;display:flex;align-items:flex-end;justify-content:center;text-align:center;padding:100px 22px 88px;overflow:hidden}
.hero-image,.hero-shade{position:absolute;inset:0}.hero-image{background:url('/assets/hero-bg.png') center/cover no-repeat;filter:saturate(.8)}.hero-shade{background:linear-gradient(180deg,#160f1744,#160f1700 28%,#170e1688 60%,#170e16)}
.hero-content{position:relative;z-index:1}.hero h2{margin:24px 0;font-family:'Playfair Display',Georgia,serif;font-size:clamp(68px,16vw,86px);font-weight:400;line-height:1.04;text-shadow:0 3px 35px #000b}
.hero-content>p:last-child{font-size:11px;font-weight:600;letter-spacing:.22em;color:#f5dfb8}.hero-rule{width:220px;margin:26px auto;display:flex;align-items:center;gap:18px;color:var(--gold)}.hero-rule:before,.hero-rule:after{content:'';height:1px;flex:1;background:#e4c88e88}.scroll-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);z-index:1;color:var(--gold);font-size:25px;text-decoration:none;animation:bob 1.8s ease-in-out infinite}
.section{text-align:center;padding:90px 35px}.intro{background:linear-gradient(#25131e,#1c111a)}.ornament{margin:0;color:var(--gold);font-size:27px}.ornament.bottom{margin-top:30px}.intro .section-kicker{margin-top:31px}
.section h2{margin:18px 0 27px;font-family:'Playfair Display',Georgia,serif;font-size:clamp(34px,8vw,46px);font-weight:400;line-height:1.25}.intro h2 em{font-size:.68em;color:var(--gold)}.intro>p:not(.ornament):not(.section-kicker){max-width:340px;margin:0 auto;color:#d4c4c4;font-size:13px;line-height:2}
.names{display:flex;flex-direction:column;align-items:center;gap:4px;margin:35px 0;color:var(--ivory);font-family:'Playfair Display',Georgia,serif}.names strong{font-size:43px;font-weight:400}.names span{color:var(--gold);font-size:28px;font-style:italic}
.intro .full-names{margin-bottom:26px!important;color:var(--gold)!important;font-size:12px!important;letter-spacing:.03em;overflow-wrap:anywhere}
.date-section{background:#2b1723;border-top:1px solid #d6b5742a;border-bottom:1px solid #d6b5742a}.date-section h2{color:var(--gold)}.date-subtitle{margin-top:-13px;font-size:11px;letter-spacing:.13em;color:#dccaca}
.date-ornament{display:flex;align-items:center;gap:22px;margin:42px auto 0;max-width:170px;color:var(--gold);font-size:24px}.date-ornament:before,.date-ornament:after{content:'';height:1px;flex:1;background:#d6b57466}
.details{background:#1b111a}.detail-card{margin-top:38px;padding:36px 20px;border:1px solid #d6b57465;background:radial-gradient(circle at 50% 0,#4b243544,transparent 70%);box-shadow:0 0 0 5px #d6b5740d}.detail-icon{color:var(--gold);font-size:32px}.detail-label{margin:23px 0 9px;color:var(--gold);font-size:10px;letter-spacing:.18em;font-weight:700}.detail-card p:not(.detail-label){margin:0;color:#f0e3d6;font-family:'Playfair Display',Georgia,serif;font-size:20px;line-height:1.5}.fine-rule{width:70px;height:1px;margin:27px auto;background:#d6b57488}.demo-note{margin:24px 0 0;color:#a7989e;font-size:11px;line-height:1.7}
.map-links{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:28px}.map-links a{padding:11px 14px;border:1px solid #d6b57477;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.07em;text-decoration:none;transition:background .2s,color .2s}.map-links a:hover{background:var(--gold);color:var(--deep)}
.programme{background:#21131d}.programme-list{margin-top:36px;border-top:1px solid #d6b57433}.programme-list>div{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:22px 0;border-bottom:1px solid #d6b57433;text-align:left}.programme-list time{color:var(--gold);font-size:11px;white-space:nowrap}.programme-list span{font-family:'Playfair Display',Georgia,serif;font-size:19px;text-align:right}
.card-footer{text-align:center;padding:75px 24px 46px;background:linear-gradient(#21131d,#160e16)}.card-footer>p:not(.ornament){font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:22px}.card-footer>span{display:block;margin:20px;color:var(--gold);font-family:'Playfair Display',Georgia,serif;font-size:30px}.card-footer small{display:block;margin-top:65px;color:#9a8d91;font-size:8px;letter-spacing:.14em}
@keyframes bob{50%{transform:translate(-50%,6px)}}
@keyframes reveal{from{opacity:0}to{opacity:1}}
@media(max-width:900px){.desktop-context{display:none}.card-stage{width:100%;margin:0;padding:0;background:var(--deep)}.card{width:100%;min-height:100svh;border:0;box-shadow:none}.cover{height:100svh;min-height:0}.cover-content{padding-top:90px}.demo-chip{top:14px;right:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cover,.open-button{transition:none}.invitation,.scroll-cue{animation:none}}
