:root { --ink:#071c36; --night:#041125; --ice:#d9f0ff; --blue:#1975dc; --red:#c62838; --paper:#f7f9f9; --gold:#e7bb63; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"DM Sans",sans-serif; font-size:16px; line-height:1.55; }
a { color:inherit; }
.skip-link { position:absolute; left:-999px; top:0; z-index:10; background:#fff; padding:.75rem 1rem; }.skip-link:focus { left:1rem; top:1rem; }
.site-header { min-height:76px; padding:12px clamp(20px,5vw,76px); display:flex; align-items:center; justify-content:space-between; gap:28px; position:absolute; inset:0 0 auto; z-index:2; color:#fff; }
.brand { font-weight:700; letter-spacing:.15em; line-height:.86; text-decoration:none; font-size:.8rem; }.brand span { font-size:.58rem; letter-spacing:.24em; }
nav { display:flex; gap:clamp(16px,2.5vw,36px); } nav a { color:#fff; text-decoration:none; font-size:.88rem; } nav a:hover,.text-link:hover { text-decoration:underline; text-underline-offset:4px; }
.date-pill { border:1px solid rgba(255,255,255,.65); border-radius:99px; padding:.5rem .9rem; text-decoration:none; font-size:.8rem; white-space:nowrap; }
.hero { min-height:760px; min-height:100svh; color:#fff; position:relative; display:grid; place-items:center; overflow:hidden; isolation:isolate; background:radial-gradient(circle at 78% 20%,#287bcb 0,transparent 24%),radial-gradient(circle at 20% 78%,#0a467f 0,transparent 36%),linear-gradient(130deg,#031126,#0c3670 68%,#06182f); }
.hero:before,.hero:after { content:""; position:absolute; z-index:-1; border-radius:50%; filter:blur(3px); opacity:.7; }.hero:before { width:46vw; height:46vw; top:-18vw; left:-10vw; border:1px solid rgba(218,241,255,.33); box-shadow:0 0 0 60px rgba(218,241,255,.04),0 0 0 130px rgba(218,241,255,.04); }.hero:after { width:25vw; height:25vw; right:-6vw; bottom:-8vw; background:rgba(201,35,52,.35); }
.hero-content { max-width:790px; padding:138px 26px 90px; text-align:center; }.eyebrow,.section-label { text-transform:uppercase; letter-spacing:.18em; font-size:.72rem; font-weight:700; }.hero-logo { width:min(390px,74vw); height:auto; margin:18px auto 10px; display:block; filter:drop-shadow(0 8px 18px rgba(0,0,0,.25)); }.hero h1,.intro h2,.cocktail-copy h2,.location h2,.updates h2 { font-family:Fraunces,serif; font-weight:600; letter-spacing:-.04em; line-height:.97; }.hero h1 { font-size:clamp(3rem,6.5vw,5.7rem); margin:14px 0 20px; }.hero-copy { max-width:590px; margin:0 auto 30px; color:#e5f1fd; font-size:1.1rem; }.button { display:inline-flex; align-items:center; gap:12px; text-decoration:none; padding:.82rem 1.2rem; border-radius:4px; font-size:.92rem; font-weight:700; }.button-primary { color:#fff; background:var(--red); box-shadow:0 7px 0 #891526; }.button-primary:hover { transform:translateY(2px); box-shadow:0 5px 0 #891526; }.hero-footnote { position:absolute; bottom:18px; margin:0; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; opacity:.75; }.snowflakes { position:absolute; top:105px; color:#a9d9ff; letter-spacing:1em; white-space:nowrap; opacity:.65; font-size:1.2rem; }
.section { padding:clamp(72px,11vw,150px) clamp(24px,8vw,130px); }.intro { display:grid; grid-template-columns:.65fr 1.35fr; gap:clamp(44px,10vw,150px); }.section-label { color:var(--blue); }.intro-copy { max-width:720px; }.intro h2,.cocktail-copy h2,.location h2 { font-size:clamp(2.7rem,5vw,4.75rem); margin:.2rem 0 24px; }.intro p,.cocktail-copy p { font-size:1.15rem; max-width:650px; }.experience-grid { grid-column:2; display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:28px; }.experience-grid article { background:#fff; border-top:3px solid var(--gold); padding:24px; min-height:210px; }.experience-grid span { color:var(--blue); font-size:.78rem; font-weight:700; }.experience-grid h3 { font-family:Fraunces,serif; font-size:1.5rem; line-height:1.05; margin:28px 0 10px; }.experience-grid p { font-size:.94rem; margin:0; }
.cocktails { background:var(--ice); display:grid; grid-template-columns:1fr 1.15fr 1fr; align-items:center; gap:clamp(25px,5vw,70px); }.photo-frame { overflow:hidden; box-shadow:14px 14px 0 rgba(7,28,54,.13); }.photo-frame img { width:100%; aspect-ratio:4/5; object-fit:cover; display:block; }.photo-right img { aspect-ratio:4/5; }.muted { color:#43617b; font-size:.95rem !important; }
.location { background:var(--night); color:#fff; display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,12vw,180px); }.location .section-label { color:#95caff; }.location h2 { margin-bottom:0; }.location-details { max-width:450px; }.location-details p:first-child { font-family:Fraunces,serif; font-size:1.7rem; line-height:1.2; margin-top:0; }.text-link { color:#b9defe; font-weight:700; text-underline-offset:4px; }
.faq { display:grid; grid-template-columns:.65fr 1.35fr; gap:clamp(44px,10vw,150px); }.faq-copy { max-width:760px; }.faq h2 { font-family:Fraunces,serif; font-size:clamp(2.7rem,5vw,4.75rem); letter-spacing:-.04em; line-height:.97; margin:.2rem 0 34px; }.faq-grid { display:grid; gap:0; border-top:1px solid #bdd0df; }.faq-grid article { padding:24px 0; border-bottom:1px solid #bdd0df; }.faq-grid h3 { font-family:Fraunces,serif; font-size:1.45rem; line-height:1.1; margin:0 0 8px; }.faq-grid p { margin:0; max-width:650px; }
.updates { text-align:center; padding:clamp(76px,11vw,150px) 24px; background:var(--red); color:#fff; }.updates .eyebrow { color:#ffd8a0; }.updates h2 { max-width:850px; font-size:clamp(2.9rem,6vw,5.7rem); margin:14px auto 20px; }.updates p:not(.eyebrow) { max-width:570px; margin:0 auto 30px; font-size:1.08rem; }.button-light { background:#fff; color:var(--red); }
footer { padding:24px clamp(24px,8vw,130px); background:#071c36; color:#d2e8ff; display:flex; justify-content:space-between; gap:20px; font-size:.82rem; } footer a { color:#fff; }
@media (max-width:760px) { .site-header { min-height:62px; padding:12px 20px; }.site-header nav { display:none; }.hero { min-height:690px; }.hero-content { padding-top:118px; }.snowflakes { top:86px; }.intro,.location,.faq { grid-template-columns:1fr; gap:30px; }.experience-grid { grid-column:auto; grid-template-columns:1fr; }.cocktails { grid-template-columns:1fr; }.photo-right { display:none; }.cocktail-copy { order:-1; }.section { padding:72px 24px; } footer { flex-direction:column; } }
