:root{--aub:#3b1f2b;--wine:#6b2c3e;--wine2:#8a3d52;--sand:#efe6da;--sand2:#e4d6c4;--ink:#2a1a20;--muted:#6f5c62;--white:#fbf8f4;
--serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--sans:system-ui,-apple-system,"Segoe UI",Inter,Roboto,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font:17px/1.65 var(--sans);color:var(--ink);background:var(--white)}
a{color:var(--wine)}img{max-width:100%}
.wrap{width:min(1120px,92vw);margin:auto}.narrow{width:min(720px,92vw)}.center{text-align:center}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:#fff;padding:.5rem;z-index:9}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15;margin:.2em 0 .5em}
h1{font-size:clamp(2.2rem,5.5vw,3.8rem)}h2{font-size:clamp(1.8rem,4vw,2.6rem)}h3{font-size:1.45rem}
.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;color:var(--wine2);margin:0}
.muted{color:var(--muted)}.small{font-size:.88rem}
.btn{display:inline-block;background:var(--wine);color:#fff;text-decoration:none;padding:.85rem 1.4rem;border-radius:999px;border:1px solid var(--wine);font-weight:600;cursor:pointer;font-size:1rem;transition:.2s}
.btn:hover{background:var(--aub)}.btn-sm{padding:.5rem 1rem;font-size:.9rem}
.btn-ghost{background:transparent;color:var(--sand);border-color:rgba(239,230,218,.5)}.btn-ghost:hover{background:rgba(255,255,255,.08)}
:focus-visible{outline:3px solid #d9a86c;outline-offset:3px}
.nav{position:sticky;top:0;z-index:5;background:rgba(59,31,43,.92);backdrop-filter:blur(8px)}
.nav-in{display:flex;align-items:center;justify-content:space-between;padding:.8rem 0}
.logo{font-family:var(--serif);font-size:1.6rem;letter-spacing:.06em;color:var(--sand);text-decoration:none}
.nav nav{display:flex;gap:1.3rem;align-items:center}.nav nav a{color:var(--sand);text-decoration:none;font-size:.92rem}
.nav nav a:not(.btn){display:none}
@media(min-width:820px){.nav nav a:not(.btn){display:inline}}
.hero{background:radial-gradient(120% 90% at 80% 20%,#5a2a3c 0,var(--aub) 60%);color:var(--sand);padding:4.5rem 0 5rem}
.hero .eyebrow{color:#d9b7a0}.lead{font-size:1.12rem;max-width:36rem;color:#e8dccf}
.hero-in{display:grid;gap:3rem;align-items:center}@media(min-width:900px){.hero-in{grid-template-columns:1.3fr 1fr}}
.cta-row{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.8rem 0}
.sec{padding:5rem 0}.sec-alt{background:var(--sand)}
.steps{counter-reset:s;list-style:none;padding:0;display:grid;gap:1rem;margin-top:2rem}
@media(min-width:900px){.steps{grid-template-columns:repeat(5,1fr)}}
.steps li{counter-increment:s;background:var(--sand);padding:1.3rem;border-radius:14px}
.steps li:before{content:counter(s,decimal-leading-zero);font-family:var(--serif);font-size:1.8rem;color:var(--wine2);display:block}
.steps b{display:block;margin-bottom:.3rem}.steps span{font-size:.93rem;color:var(--muted)}
.filters{display:flex;gap:.5rem;margin:1rem 0 1.5rem;flex-wrap:wrap}
.chip{border:1px solid var(--wine2);background:transparent;color:var(--wine);border-radius:999px;padding:.4rem 1rem;cursor:pointer;font:inherit;font-size:.9rem}
.chip.is-on{background:var(--wine);color:#fff}
.cards{display:grid;gap:1.2rem}@media(min-width:720px){.cards{grid-template-columns:repeat(auto-fill,minmax(310px,1fr))}}
.card{background:var(--white);border-radius:16px;padding:1.5rem;display:flex;flex-direction:column;box-shadow:0 1px 0 var(--sand2),0 10px 30px -18px rgba(59,31,43,.35)}
.tags{display:flex;gap:.4rem;flex-wrap:wrap}.tags span{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;background:var(--sand);padding:.2rem .6rem;border-radius:999px;color:var(--wine)}
.card h3{margin-top:.8rem}.when{margin:0;text-transform:capitalize}
.card-foot{margin-top:auto;padding-top:1rem;display:flex;justify-content:space-between;align-items:end;gap:1rem;border-top:1px solid var(--sand2)}
.seats{color:var(--wine2)}.note{margin-top:1.5rem}
.two{display:grid;gap:1.5rem}@media(min-width:820px){.two{grid-template-columns:1fr 1fr}}
.panel{padding:2rem;border:1px solid var(--sand2);border-radius:18px}.link{font-weight:600;text-decoration:none}
.instr{display:grid;gap:2rem;align-items:center}@media(min-width:820px){.instr{grid-template-columns:280px 1fr}}
details{border-bottom:1px solid var(--sand2);padding:1rem 0}summary{cursor:pointer;font-weight:600;list-style:none}
summary::after{content:"+";float:right;color:var(--wine2)}details[open] summary::after{content:"–"}details p{color:var(--muted);margin:.6rem 0 0}
.sub{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:center;margin-top:1.5rem}
.sub input{flex:1 1 240px;max-width:340px;padding:.85rem 1.1rem;border-radius:999px;border:1px solid var(--sand2);font:inherit}
.foot{background:var(--aub);color:var(--sand);padding:3rem 0}.foot a{color:#e8c3a8}.foot .muted{color:#b9a3a0}
.foot-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem}.foot p{margin:.2rem 0}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* P0 polish */
.btn-light{background:var(--sand);color:var(--aub);border-color:var(--sand)}.btn-light:hover{background:#fff;color:var(--aub)}
.hero{padding:5.5rem 0 6rem}.hero h1{max-width:14ch;letter-spacing:-.01em}.hero .lead{font-size:1.22rem}
blockquote{margin:1.5rem 0;padding-left:1.2rem;border-left:3px solid var(--wine2);font-family:var(--serif);font-size:1.35rem;line-height:1.4}
blockquote cite{display:block;font:normal .85rem var(--sans);color:var(--muted);margin-top:.5rem}
.outcome{margin:.8rem 0 .3rem;font-size:.95rem}.fits{margin:0 0 .5rem;color:var(--muted)}
.micro{margin:.6rem 0 0;font-size:.78rem;color:var(--muted);text-align:right}
.notice{background:var(--white);border:1px solid var(--wine2);border-radius:12px;padding:.8rem 1rem}
.sticky-cta{position:fixed;left:0;right:0;bottom:0;padding:.7rem 4vw calc(.7rem + env(safe-area-inset-bottom));background:rgba(59,31,43,.95);z-index:6;text-align:center}
.sticky-cta .btn{width:100%;max-width:420px}
@media(min-width:820px){.sticky-cta{display:none}}@media(max-width:819px){body{padding-bottom:4.5rem}}
.legal{padding:3rem 0 5rem}.legal h1{font-size:2.4rem}.legal h2{font-size:1.5rem;margin-top:2rem}
@media(prefers-reduced-motion:reduce){*{animation:none!important}}
/* Photo slots */
.hero{background:linear-gradient(170deg,#43222f 0,var(--aub) 70%);padding:6rem 0 6.5rem}
@media(min-width:900px){.hero-in{grid-template-columns:1.15fr 1fr;gap:5rem}}
.photo-slot{position:relative;margin:0;overflow:hidden;border-radius:18px;aspect-ratio:3/2;
background:linear-gradient(150deg,rgba(255,255,255,.35),transparent 60%),repeating-linear-gradient(135deg,transparent 0 14px,rgba(107,44,62,.045) 14px 15px),linear-gradient(160deg,var(--sand) 0,var(--sand2) 55%,#cfae9c 100%);
box-shadow:inset 0 0 0 1px rgba(107,44,62,.08)}
.photo-slot>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.photo-slot__label{position:absolute;left:1rem;bottom:.9rem;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(107,44,62,.5)}
.photo-slot__label:before{content:"";display:inline-block;width:1.4rem;height:1px;background:currentColor;vertical-align:middle;margin-right:.6rem}
.photo-slot--hero{aspect-ratio:4/5;max-width:440px;width:100%;margin:auto;border-radius:220px 220px 20px 20px;
background:radial-gradient(90% 60% at 50% 0,rgba(239,230,218,.18),transparent),repeating-linear-gradient(135deg,transparent 0 16px,rgba(239,230,218,.04) 16px 17px),linear-gradient(170deg,#7a3d50 0,#5a2a3c 50%,#4a2433 100%);box-shadow:inset 0 0 0 1px rgba(239,230,218,.15),0 30px 60px -30px rgba(0,0,0,.5)}
.photo-slot--hero .photo-slot__label{color:rgba(239,230,218,.45);left:50%;transform:translateX(-50%);bottom:1.4rem;white-space:nowrap}
.photo-slot--portrait{aspect-ratio:4/5;border-radius:160px 160px 18px 18px}
.photo-slot--panel{aspect-ratio:16/9;margin:-.5rem -.5rem 1.4rem;border-radius:12px}
.photo-slot--card{aspect-ratio:16/9;margin:-1.5rem -1.5rem 1rem;border-radius:16px 16px 0 0}
.mood{padding-top:0}
.mood-strip{display:grid;gap:1rem;grid-template-columns:1fr}
.photo-slot--mood{aspect-ratio:3/2}
@media(max-width:719px){.mood-strip{grid-auto-flow:column;grid-auto-columns:80%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:.5rem}.photo-slot--mood{scroll-snap-align:start}}
@media(min-width:720px){.mood-strip{grid-template-columns:1.4fr 1fr 1fr}.photo-slot--mood{aspect-ratio:auto;min-height:320px}}
.mood-cap{margin:1.2rem 0 0;text-align:center;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.panel{background:var(--white)}
