/* Blackberry Jam — shared system v3. The artwork leads; the chrome stays quiet. */
:root{
  --night:#16041F; --plum:#22102E; --deep:#3B0A4A; --ink:#2A0A38;
  --lav:#DCC9F5; --lav-soft:#C9A6EC; --cream:#FFF9F0; --mut:#A98FC4;
  --pinkwash:#F6E7EF; --red:#B91F2E;
  --hdr-h:70px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Archivo',-apple-system,system-ui,sans-serif;background:var(--night);color:var(--cream);-webkit-font-smoothing:antialiased;overflow-x:hidden}
@keyframes pagein{from{opacity:0}to{opacity:1}}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;background:none;border:none;color:inherit;cursor:pointer}
::selection{background:var(--lav);color:var(--night)}
body.locked{overflow:hidden}

/* ===== sticky header ===== */
.hdr{position:fixed;top:0;left:0;right:0;z-index:70;min-height:var(--hdr-h);display:flex;align-items:center;justify-content:space-between;padding:0 20px;transition:background .3s ease,border-color .3s ease,color .3s ease;border-bottom:1px solid transparent;color:#fff}
@media(min-width:900px){.hdr{padding:0 40px}}
.hdr .wordmark{font-size:24px;line-height:.92}
.hdr.scrolled{background:rgba(22,4,31,.86);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom-color:rgba(255,249,240,.12);color:#fff}
.hdr.on-light{color:var(--ink)}
.hdr.on-light.scrolled{color:#fff}
.hdr.on-light .burger i,.hdr.on-light .burger i::before,.hdr.on-light .burger i::after{background:var(--ink)}
.hdr.on-light.scrolled .burger i,.hdr.on-light.scrolled .burger i::before,.hdr.on-light.scrolled .burger i::after{background:#fff}
.wordmark{font-weight:800;letter-spacing:-.03em;text-decoration:none;color:inherit;display:inline-block}
.wordmark span{color:var(--lav-soft)}
.hdr-right{display:flex;align-items:center;gap:14px}
.hdr-rsvp{display:none;font-weight:700;font-size:14px;background:var(--lav);color:#1D0A29;padding:8.5px 15px;border-radius:999px;text-decoration:none}
@media(min-width:640px){.hdr-rsvp{display:inline-block}}
.burger{width:44px;height:44px;display:grid;place-items:center}
.burger i{display:block;width:25px;height:2.5px;background:#fff;border-radius:2px;position:relative;transition:background .3s ease;transform:translateY(-4px)}
.burger i::before,.burger i::after{content:"";position:absolute;left:0;width:25px;height:2.5px;background:#fff;border-radius:2px;transition:background .3s ease}
.burger i::before{top:8px;left:auto;right:0;width:16px}.burger i::after{display:none}

/* ===== menu overlay ===== */
.menu{position:fixed;inset:0;background:var(--night);color:#FFF9F0;z-index:90;display:flex;flex-direction:column;padding:14px 20px calc(24px + env(safe-area-inset-bottom));transform:translateY(-102%);transition:transform .5s cubic-bezier(.76,0,.24,1);visibility:hidden}
.menu.open{transform:none;visibility:visible}
@media(min-width:900px){.menu{padding:14px 40px 34px}}
.menu-top{display:flex;justify-content:space-between;align-items:center;min-height:var(--hdr-h)}
.menu .wordmark{font-size:24px;line-height:.92}
.menu-close{width:44px;height:44px;display:grid;place-items:center;font-size:30px;color:#fff}
.menu nav{margin:auto 0;display:grid;gap:2px}
.menu nav a{font-size:clamp(28px,6.8vw,42px);font-weight:800;letter-spacing:-.03em;color:#fff;text-decoration:none;line-height:1.16;opacity:0;transform:translateY(16px);transition:opacity .4s ease,transform .4s ease}
.menu.open nav a{opacity:1;transform:none}
.menu nav a:nth-child(2){transition-delay:.05s}.menu nav a:nth-child(3){transition-delay:.1s}.menu nav a:nth-child(4){transition-delay:.15s}.menu nav a:nth-child(5){transition-delay:.2s}.menu nav a:nth-child(6){transition-delay:.25s}
.menu nav a em{font-style:normal;color:var(--lav-soft)}
.menu nav a small{font-size:13px;font-weight:700;letter-spacing:.22em;color:var(--mut);vertical-align:super;margin-left:10px}
.menu nav a:hover{color:var(--lav)}
.menu-foot{font-size:13px;color:var(--mut);font-weight:600;letter-spacing:.06em}

/* ===== generic ===== */
.wrap{padding:0 20px}
@media(min-width:900px){.wrap{padding:0 40px}}
.sec{padding-top:56px;padding-bottom:56px}
@media(min-width:900px){.sec{padding-top:84px;padding-bottom:84px}}
.eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;margin-bottom:14px}
.h-big{font-size:clamp(31px,6.4vw,56px);font-weight:800;letter-spacing:-.035em;line-height:1.0}
.h-big em{font-style:normal;color:var(--lav-soft)}
.lede{font-size:clamp(15.5px,2vw,17.5px);line-height:1.55;font-weight:500;opacity:.82;max-width:54ch;margin-top:16px}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s ease,transform .65s ease}
.reveal.in{opacity:1;transform:none}

/* ===== hero (poster full-bleed) ===== */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate;overflow:hidden}
.hero.short{min-height:88svh}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 34%}
.hero-bg video{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-bg::before{content:"";position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg, rgba(30,5,44,.72) 0, rgba(30,5,44,.25) 14%, rgba(30,5,44,0) 30%),
  linear-gradient(0deg, var(--night) 0%, rgba(22,4,31,.97) 20%, rgba(22,4,31,.9) 32%, rgba(22,4,31,.5) 46%, rgba(22,4,31,0) 60%)}
.hero.to-plum::before{background:
  linear-gradient(180deg, rgba(30,5,44,.72) 0, rgba(30,5,44,.25) 14%, rgba(30,5,44,0) 30%),
  linear-gradient(0deg, #2A0738 0%, rgba(42,7,56,.97) 20%, rgba(42,7,56,.9) 32%, rgba(42,7,56,.5) 46%, rgba(42,7,56,0) 60%)}
.hero.short .hero-bg::before{background:
  linear-gradient(180deg, rgba(30,5,44,.72) 0, rgba(30,5,44,.25) 14%, rgba(30,5,44,0) 30%),
  linear-gradient(0deg, var(--plum) 0%, rgba(34,16,46,.98) 16%, rgba(34,16,46,.88) 30%, rgba(34,16,46,.6) 46%, rgba(34,16,46,.28) 60%, rgba(34,16,46,0) 74%)}
.hero.short + .sec{padding-top:30px}
@media(min-width:900px){.hero.short + .sec{padding-top:44px}}
.hero-foot{padding:0 20px calc(24px + env(safe-area-inset-bottom))}
@media(min-width:900px){.hero-foot{padding:0 40px 36px;display:flex;align-items:flex-end;justify-content:space-between;gap:28px}}
.hero-kicker{font-size:11.5px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--lav);margin-bottom:10px}
.hero-title{font-size:clamp(33px,6.2vw,48px);font-weight:800;letter-spacing:-.03em;line-height:1;color:#fff}
.hero-date{font-size:clamp(16px,2.4vw,19px);font-weight:500;color:rgba(255,249,240,.92);margin-top:7px}
.hero-actions{display:flex;align-items:center;gap:26px;margin-top:22px;flex-wrap:wrap}
@media(min-width:900px){.hero-actions{margin-top:0;flex-shrink:0}}
.btn-lav{display:inline-flex;align-items:center;gap:9px;background:var(--lav);color:#1D0A29;font-weight:700;font-size:15px;padding:12.5px 21px;border-radius:999px;letter-spacing:-.01em;text-decoration:none;transition:transform .18s ease,background .18s ease;border:none;cursor:pointer}
.btn-lav:hover{background:#fff;transform:translateY(-2px)}
.link-under{font-weight:600;font-size:15px;color:#fff;text-decoration:none;border-bottom:1.5px solid rgba(255,255,255,.85);padding-bottom:6px;display:inline-flex;gap:8px;align-items:center}
.link-under:hover{color:var(--lav);border-color:var(--lav)}

/* ===== gateway panels (home) ===== */
.gate{position:relative;min-height:64svh;display:flex;align-items:flex-end;text-decoration:none;isolation:isolate;overflow:hidden}
.gate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s cubic-bezier(.2,.6,.2,1)}
.gate:hover img{transform:scale(1.04)}
.gate::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg, rgba(16,2,24,.96) 0%, rgba(16,2,24,.88) 22%, rgba(16,2,24,.45) 48%, rgba(16,2,24,.05) 72%)}
.gate-in{padding:0 20px 26px;width:100%}
@media(min-width:900px){.gate-in{padding:0 40px 34px}}
.gate .eyebrow{color:var(--lav);margin-bottom:8px}
.gate h3{font-size:clamp(26px,5.2vw,40px);font-weight:800;letter-spacing:-.03em;line-height:1;color:#fff}
.gate .g-meta{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-top:8px}
.gate .g-date{font-weight:600;font-size:15.5px;color:rgba(255,249,240,.9)}
.gate .g-go{font-weight:700;font-size:15px;color:var(--lav);white-space:nowrap}

/* ===== event pages ===== */
.pagehead{padding:calc(var(--hdr-h) + 34px) 20px 8px}
@media(min-width:900px){.pagehead{padding-left:40px;padding-right:40px}}
.poster-hero{width:min(900px,calc(100% - 40px));margin:22px auto 0}
@media(min-width:900px){.poster-hero{width:min(900px,calc(100% - 80px))}}
.poster-hero img{width:100%;border-radius:4px}
.rows{margin-top:20px;border-top:1px solid rgba(255,249,240,.13)}
.row{display:grid;grid-template-columns:88px 1fr;gap:14px;padding:13px 0;border-bottom:1px solid rgba(255,249,240,.13);font-size:15.5px;line-height:1.5}
.row dt{font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);padding-top:3px}
.row dd{font-weight:500}
.on-light .rows{border-top-color:rgba(42,10,56,.16)}
.on-light .row{border-bottom-color:rgba(42,10,56,.16)}
.on-light .row dt{color:#8A5FA8}

/* guest line */
.guestline{display:flex;align-items:center;gap:13px;margin-top:20px;padding:13px 15px;background:rgba(255,249,240,.06);border:1px solid rgba(255,249,240,.1);border-radius:10px}
.avatars{display:flex;flex-shrink:0}
.avatars span{width:34px;height:34px;border-radius:50%;border:2.5px solid var(--plum);margin-left:-10px;display:grid;place-items:center;font-size:14px}
.avatars span:first-child{margin-left:0}
.av1{background:linear-gradient(135deg,#8B5FBF,#3B0A4A)}.av2{background:linear-gradient(135deg,#B91F2E,#5E1220)}.av3{background:linear-gradient(135deg,#C9A6EC,#7A4FA3)}
.guestline p{font-size:14.5px;font-weight:600;line-height:1.4}
.guestline p small{display:block;opacity:.65;font-weight:500;font-size:13px}
.on-light .guestline{background:rgba(42,10,56,.05);border-color:rgba(42,10,56,.12)}
.on-light .avatars span{border-color:var(--pinkwash)}

/* RSVP */
.rsvp{margin-top:28px}
.rsvp h3{font-size:19px;font-weight:800;letter-spacing:-.01em}
.rsvp .sub{opacity:.65;font-size:14.5px;font-weight:500;margin-top:4px}
.rsvp form{margin-top:16px;display:grid;gap:15px}
.rsvp input,.rsvp select,.rsvp textarea{width:100%;background:transparent;border:none;border-bottom:1.5px solid rgba(255,249,240,.3);color:inherit;font:inherit;font-weight:600;font-size:16.5px;padding:9px 2px;border-radius:0;appearance:none}
.on-light .rsvp input,.on-light .rsvp select{border-bottom-color:rgba(42,10,56,.3)}
.rsvp select option{color:#1D0A29}
.rsvp input::placeholder,.rsvp textarea::placeholder{color:rgba(169,143,196,.8);font-weight:500}
.on-light .rsvp input::placeholder,.rsvp textarea::placeholder{color:rgba(122,79,163,.6)}
.rsvp input:focus,.rsvp select:focus,.rsvp textarea:focus{outline:none;border-color:var(--lav-soft)}
.rsvp .two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.rsvp .pj{display:flex;gap:11px;align-items:flex-start;font-size:15px;font-weight:500;cursor:pointer}
.rsvp .pj input{appearance:none;-webkit-appearance:none;width:20px;height:20px;flex-shrink:0;margin-top:1px;border:2px solid var(--lav-soft);border-radius:4px;background:transparent;padding:0;cursor:pointer;position:relative}
.rsvp .pj input:checked{background:var(--lav-soft)}
.rsvp .pj input:checked::after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:#1D0A29;font-size:14px;font-weight:900}
.btn-rsvp{background:var(--lav);color:#1D0A29;font-weight:800;font-size:15.5px;padding:14px;border-radius:999px;width:100%;cursor:pointer;border:none}
.btn-rsvp:hover{background:#fff}
.rsvp-msg{display:none;font-size:15px;font-weight:600;line-height:1.5;padding:13px 15px;border-radius:8px}
.rsvp-msg.err{display:block;background:rgba(220,80,90,.16);color:#F6C6CA}
.fine{margin-top:12px;font-size:13px;opacity:.55;text-align:center;font-weight:500}

/* confirmation */
.confirm{display:none;padding-top:4px}
.confirm.show{display:block}
.confirm h3{font-size:clamp(33px,8.6vw,42px);font-weight:800;letter-spacing:-.03em;line-height:1}
.confirm .ev{margin-top:16px;font-size:17px;font-weight:700}
.confirm .ev small{display:block;margin-top:4px;opacity:.6;font-weight:600;font-size:14.5px}
.confirm .who{margin-top:12px;font-size:15px;color:var(--lav-soft);font-weight:600}
.confirm .actions{display:flex;align-items:center;gap:11px;margin-top:22px;flex-wrap:wrap}
.pill-lav{display:inline-flex;align-items:center;gap:9px;background:var(--lav);color:#1D0A29;font-weight:800;font-size:14.5px;padding:11px 18px;border-radius:999px;text-decoration:none;border:none;cursor:pointer;font-family:inherit}
.pill-lav:hover{background:#fff}
.iconbtn{width:44px;height:44px;border-radius:10px;border:1.5px solid rgba(255,249,240,.35);display:grid;place-items:center;color:inherit;cursor:pointer;background:transparent;text-decoration:none}
.iconbtn:hover{border-color:var(--lav-soft);color:var(--lav-soft)}
.confirm .friends{margin-top:26px;padding-top:20px;border-top:1px solid rgba(255,249,240,.13)}
.confirm .friends h4{font-size:18px;font-weight:700}
.confirm .friends p{opacity:.65;font-size:14.5px;font-weight:500;margin:5px 0 14px;line-height:1.5}
.btn-ghostline{border:1.5px solid rgba(255,249,240,.35);color:inherit;font-weight:700;font-size:14.5px;padding:10.5px 17px;border-radius:999px;cursor:pointer;background:transparent;font-family:inherit}
.btn-ghostline:hover{border-color:var(--lav-soft);color:var(--lav-soft)}

/* ===== gallery ===== */
.gallery-sec{padding:56px 0}
@media(min-width:900px){.gallery-sec{padding:84px 0}}
.gallery-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:0 20px;margin-bottom:18px}
@media(min-width:900px){.gallery-head{padding:0 40px}}
.gallery-head h2{font-size:clamp(23px,4.6vw,32px);font-weight:800;letter-spacing:-.03em}
.gallery-head .g-note{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.55;white-space:nowrap}
.film{display:flex;gap:12px;overflow-x:auto;padding:4px 20px 18px;scroll-snap-type:x mandatory;scroll-padding:0 20px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.film::-webkit-scrollbar{display:none}
@media(min-width:900px){.film{padding:4px 40px 18px;scroll-padding:0 40px}}
.frame{flex:0 0 auto;scroll-snap-align:start;border-radius:8px;position:relative;overflow:hidden;display:grid;place-items:center}
.frame .f-label{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;opacity:.75;text-align:center;padding:0 14px;line-height:1.7}
.frame .play{width:52px;height:52px;border-radius:50%;background:rgba(255,249,240,.16);backdrop-filter:blur(4px);display:grid;place-items:center;margin-bottom:10px}
.frame .play::after{content:"";border-left:15px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:4px}
.f-tall{width:230px;height:340px}.f-wide{width:320px;height:240px}.f-sq{width:250px;height:250px}
@media(min-width:900px){.f-tall{width:270px;height:400px}.f-wide{width:400px;height:280px}.f-sq{width:290px;height:290px}}
.g-night-a{background:linear-gradient(150deg,#4A1566,#22102E)}
.g-night-b{background:linear-gradient(150deg,#5E1220,#2A0A18)}
.g-night-c{background:linear-gradient(150deg,#3B0A4A,#16041F)}
.g-pink-a{background:linear-gradient(150deg,#F2C4D2,#D9A7C0)}
.g-pink-b{background:linear-gradient(150deg,#E5D4F2,#C3A6DE)}
.g-pink-c{background:linear-gradient(150deg,#F7DEE6,#EAB9CB)}
.g-dusty-a{background:linear-gradient(150deg,#57186E,#2A0738)}
.g-dusty-b{background:linear-gradient(150deg,#7A2E5E,#33102E)}
.g-dusty-c{background:linear-gradient(150deg,#46205E,#1D0A29)}
.frame.on-light-f .f-label{color:#4A2560}
.frame .vid-stack{display:grid;place-items:center}
.frame img.ph,.frame video.ph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ===== owners ===== */
.owner-rows{margin-top:36px;border-top:1px solid rgba(255,249,240,.15)}
.owner-row{display:grid;grid-template-columns:52px 84px 1fr;gap:16px;align-items:center;padding:22px 0;border-bottom:1px solid rgba(255,249,240,.15)}
@media(min-width:760px){.owner-row{grid-template-columns:64px 120px 1fr auto}}
.owner-row .no{font-size:14px;font-weight:700;color:var(--mut);letter-spacing:.1em}
.owner-photo{width:84px;height:104px;border-radius:8px;background:linear-gradient(150deg,#3B0A4A,#22102E);display:grid;place-items:center;font-size:9.5px;font-weight:700;letter-spacing:.18em;color:var(--mut);text-align:center;padding:6px;line-height:1.6}
@media(min-width:760px){.owner-photo{width:120px;height:148px}}
.owner-row .name{font-size:clamp(20px,3.8vw,29px);font-weight:800;letter-spacing:-.02em}
.owner-row .name small{display:block;font-size:15px;font-weight:500;color:var(--mut);margin-top:4px;line-height:1.5}
.owner-row .role{display:none;font-size:12px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--lav-soft)}
@media(min-width:760px){.owner-row .role{display:block}}

/* ===== next-jam band + footer ===== */
.nextband{display:block;text-decoration:none;background:var(--deep);padding:56px 20px}
@media(min-width:900px){.nextband{padding:72px 40px}}
.nextband .eyebrow{color:var(--lav-soft)}
.nextband h2{font-size:clamp(27px,5.6vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1;color:#fff}
.nextband p{margin-top:8px;font-weight:600;color:var(--lav)}
footer{background:#0D0214;padding:56px 20px calc(30px + env(safe-area-inset-bottom))}
@media(min-width:900px){footer{padding:72px 40px 36px}}
.foot-mark{font-size:clamp(38px,9.5vw,88px);font-weight:800;letter-spacing:-.04em;line-height:.94;color:#fff}
.foot-mark span{color:var(--lav-soft)}
.foot-row{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,249,240,.14);font-size:13.5px;font-weight:600;color:var(--mut)}
.foot-row a{color:var(--lav);text-decoration:none}
.foot-nav{display:flex;gap:20px;flex-wrap:wrap}
.foot-nav a{color:rgba(255,249,240,.75)}

/* v5: static gate (next-event panel) + gate actions */
.gate.static{isolation:isolate}
.gate-actions{margin-top:18px;display:flex;gap:26px;align-items:center;flex-wrap:wrap}
.gate.strongfade::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg, rgba(22,4,31,.34), rgba(22,4,31,0) 22%, rgba(22,4,31,.62) 52%, rgba(22,4,31,.97) 82%)}

/* v5: RSVP bottom sheet + in-page list CTA */
.list-cta{margin-top:30px;border-top:1px solid rgba(255,249,240,.14);padding-top:24px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.list-cta h3{font-size:19px;font-weight:800;letter-spacing:-.01em}
.list-cta p{opacity:.65;font-size:14.5px;font-weight:500;margin-top:4px;max-width:300px}
.sheet-scrim{position:fixed;inset:0;background:rgba(10,2,16,.62);z-index:110;opacity:0;pointer-events:none;transition:opacity .3s ease}
.sheet-scrim.open{opacity:1;pointer-events:auto}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:120;background:var(--plum);color:var(--cream,#FFF8EE);border-radius:12px 12px 0 0;transform:translateY(112%);transition:transform .38s cubic-bezier(.32,.72,.24,1),box-shadow .38s ease;max-height:92svh;overflow-y:auto;padding:8px 22px calc(26px + env(safe-area-inset-bottom));box-shadow:none}
.sheet.open{transform:translateY(0);box-shadow:0 -18px 50px rgba(0,0,0,.45)}
.sheet-grab{width:38px;height:4px;border-radius:2px;background:rgba(255,249,240,.28);margin:6px auto 14px}
.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.sheet-kicker{font-size:11.5px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--lav-soft)}
.sheet-head h3{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-top:5px}
.sheet-close{flex-shrink:0;width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,249,240,.22);background:transparent;color:inherit;font-size:21px;line-height:1;cursor:pointer}
.sheet .rsvp{margin-top:14px}
@media(min-width:760px){.sheet{left:50%;right:auto;width:520px;bottom:22px;border-radius:12px;transform:translate(-50%,106%)}.sheet.open{transform:translate(-50%,0)}}

/* v6: premium home (Posh-inspired) */
.home{background:#0A0110}
.home .hero-bg::after{content:"";position:absolute;inset:0;background:rgba(8,1,13,.42)}
.home .hero-foot{align-items:center;text-align:center}
.home .hero-kicker{font-size:11px;letter-spacing:.3em;font-weight:700}
.home .hero-title{font-weight:600;letter-spacing:-.015em;font-size:clamp(33px,8.8vw,46px);line-height:1.1}
.home .hero-date{font-size:16.5px;font-weight:500;opacity:.78;max-width:320px}
.home .hero-actions{flex-direction:column;align-items:center;gap:20px}
.btn-pill{display:inline-flex;align-items:center;gap:9px;background:#8E63AC;color:#FFF8EE;font-weight:600;font-size:15.5px;padding:14px 30px;border-radius:999px;text-decoration:none;border:none;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.btn-pill:hover{background:#9D74B8}
.link-quiet{font-size:14.5px;font-weight:600;color:rgba(255,248,238,.66);text-decoration:none}
.link-quiet:hover{color:#FFF8EE}
.evcard{margin:16px 20px 0;border-radius:16px;overflow:hidden;background:#1C0A29;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.evcard .ev-main{display:block;text-decoration:none;color:inherit}
.evcard .ev-img{height:308px;overflow:hidden}
.evcard .ev-img img{width:100%;height:100%;object-fit:cover;object-position:center 16%;display:block}
.evcard.past .ev-img{height:228px}
.evcard .ev-body{padding:22px 20px 6px;text-align:left}
.ev-eyebrow{font-size:11px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--lav-soft)}
.ev-title{font-size:27px;font-weight:650;letter-spacing:-.02em;margin-top:9px}
.ev-desc{font-size:15px;font-weight:500;opacity:.72;margin-top:8px;line-height:1.45}
.ev-meta{font-size:13.5px;font-weight:600;opacity:.52;margin-top:12px}
.ev-guest{margin:16px 14px 14px;background:rgba(255,248,238,.055);border:1px solid rgba(255,248,238,.07);border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:11px}
.ev-guest .gl-t{min-width:0}
.ev-guest .gl-t b{display:block;font-size:13.5px;font-weight:700}
.ev-guest .gl-t span{display:block;font-size:12px;font-weight:500;opacity:.55;margin-top:1px}
.ev-guest .avatars{display:flex;flex-shrink:0}
.ev-guest .avatars span{width:28px;height:28px;border-radius:50%;border:2px solid #241131;margin-left:-9px}
.ev-guest .avatars span:first-child{margin-left:0}
.ev-guest .avatars .av1{background:linear-gradient(135deg,#8B5FBF,#5B2A86)}
.ev-guest .avatars .av2{background:linear-gradient(135deg,#B91F2E,#7A1220)}
.ev-guest .avatars .av3{background:linear-gradient(135deg,#D9C7EC,#8B5FBF)}
.ev-rsvp{margin-left:auto;flex-shrink:0;background:#8E63AC;color:#FFF8EE;font-weight:700;font-size:14px;padding:9px 19px;border-radius:999px;text-decoration:none}
.ev-rsvp:hover{background:#9D74B8}
.ev-view{display:block;text-align:left;padding:14px 20px 18px;font-size:14.5px;font-weight:600;color:rgba(255,248,238,.66);text-decoration:none}
.home-sec-label{text-align:center;font-size:11px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--lav-soft);margin-top:46px}
.home .owners-tease{text-align:center}
.home .owners-tease .h-big{font-weight:600}
.home .owners-tease .lede{margin-left:auto;margin-right:auto}

/* v6.1: balanced wraps on centered copy (no orphan lines) */
.home .hero-date,.ev-desc,.home .owners-tease .lede{text-wrap:balance}

/* v6.2: hero subhead box centered (max-width block needs auto margins) */
.home .hero-date{margin-left:auto;margin-right:auto}

/* v7: lightbox, gallery pages */
.frame[data-lightbox]{cursor:pointer}
.gal-link{font-size:14px;font-weight:700;color:var(--lav);text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:2px;white-space:nowrap}
.gal-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:18px 20px 56px}
@media(min-width:900px){.gal-grid{padding-left:40px;padding-right:40px;padding-bottom:84px}}
@media(min-width:760px){.gal-grid{grid-template-columns:repeat(3,1fr)}}
.gal-cell{position:relative;border-radius:10px;overflow:hidden;background:#1C0A29;border:none;padding:0;cursor:pointer;aspect-ratio:4/5;width:100%}
.gal-cell.wide{grid-column:span 2;aspect-ratio:8/5}
.gal-cell img,.gal-cell video{width:100%;height:100%;object-fit:cover;display:block}
.gal-cell .gc-cap{position:absolute;left:0;right:0;bottom:0;padding:16px 10px 8px;font-size:11.5px;font-weight:600;color:#FFF8EE;text-align:left;background:linear-gradient(0deg,rgba(10,2,16,.66),transparent)}
.gal-cell.ph{cursor:default;display:grid;place-items:center}
.lightbox{position:fixed;inset:0;z-index:130;background:rgba(5,0,9,.95);display:none;flex-direction:column;align-items:center;justify-content:center;padding:18px}
.lightbox.open{display:flex}
.lightbox .lb-media{max-width:94vw;max-height:82svh;display:grid;place-items:center}
.lightbox .lb-media img,.lightbox .lb-media video{max-width:94vw;max-height:82svh;border-radius:8px}
.lb-cap{margin-top:14px;font-size:14px;font-weight:600;color:rgba(255,248,238,.85);text-align:center;max-width:420px}
.lb-cap:empty{display:none}
.lb-close{position:absolute;top:calc(12px + env(safe-area-inset-top));right:14px;width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,249,240,.25);background:rgba(20,8,26,.6);color:#FFF8EE;font-size:22px;cursor:pointer;z-index:2}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,249,240,.22);background:rgba(20,8,26,.55);color:#FFF8EE;font-size:20px;cursor:pointer;z-index:2}
.lb-prev{left:10px}.lb-next{right:10px}
.lb-count{position:absolute;top:calc(20px + env(safe-area-inset-top));left:16px;font-size:13px;font-weight:700;color:rgba(255,248,238,.75)}

/* v8: nav structure (topnav dropdown + menu events accordion + socials) */
.topnav{display:none}
@media(min-width:900px){
  .topnav{display:flex;align-items:center;gap:28px;margin-left:36px}
  .topnav>a{color:#fff;text-decoration:none;font-weight:650;font-size:15px}
  .topnav>a:hover{color:var(--lav)}
  .burger{display:none}
  .hdr{justify-content:flex-start}
  .hdr-right{margin-left:auto}
}
.tn-events{position:relative}
.tn-btn{background:none;border:none;cursor:pointer;color:#fff;font:inherit;font-weight:650;font-size:15px;display:inline-flex;align-items:center;gap:6px;padding:6px 0}
.tn-btn:hover{color:var(--lav)}
.tn-drop{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,6px);min-width:236px;background:#1C0A29;border:1px solid rgba(255,249,240,.1);border-radius:12px;padding:8px;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;box-shadow:0 22px 50px rgba(0,0,0,.45)}
.tn-drop.open{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
@media(hover:hover){.tn-events:hover .tn-drop{opacity:1;pointer-events:auto;transform:translate(-50%,0)}}
.tn-drop a{display:flex;flex-direction:column;gap:1px;padding:9px 12px;border-radius:8px;color:#fff;text-decoration:none}
.tn-drop a:hover{background:rgba(255,249,240,.06)}
.tn-drop b{font-size:15px;font-weight:700}
.tn-drop span{font-size:12.5px;opacity:.55;font-weight:600}
.menu nav .m-events-btn{font-size:clamp(28px,6.8vw,42px);font-weight:800;letter-spacing:-.03em;color:#fff;background:none;border:none;cursor:pointer;line-height:1.16;padding:0;display:inline-flex;align-items:center;gap:12px;text-align:left;font-family:inherit}
.menu nav .m-events-btn:hover{color:var(--lav)}
.m-chev{font-size:.62em;color:var(--lav-soft);transition:transform .3s ease;display:inline-block;line-height:1}
.m-events-btn[aria-expanded="true"] .m-chev{transform:rotate(180deg)}
.m-sub{max-height:0;overflow:hidden;transition:max-height .38s ease;display:grid;gap:2px}
.m-sub.open{max-height:280px}
.menu nav .m-sub a{font-size:clamp(22px,5.6vw,31px);padding-left:20px}
.menu-social{display:flex;gap:24px;align-items:center;margin-bottom:14px;font-size:15.5px;font-weight:700}
.menu-social a{color:#fff;text-decoration:none}
.menu-social a:hover{color:var(--lav)}
.menu-social .soon{color:var(--mut);font-weight:600}
.gi-card{border:1px solid rgba(255,249,240,.1);background:#1C0A29;border-radius:12px;padding:20px;margin-top:14px}
.gi-card h3{font-size:20px;font-weight:800;letter-spacing:-.01em}
.gi-card p{color:var(--mut);font-weight:500;font-size:15px;line-height:1.55;margin-top:7px}

/* v8: event intro paragraph */
.intro-para p{font-size:16.5px;line-height:1.65;font-weight:500;color:rgba(255,248,238,.78);max-width:56ch}

/* v8: gallery page head + note (unified with .pagehead rhythm) */
.gal-h1{font-size:clamp(30px,7.4vw,44px);font-weight:750;letter-spacing:-.03em;margin-top:16px}
.gal-sub{color:var(--mut);font-weight:500;margin-top:9px;font-size:15.5px;line-height:1.5;max-width:52ch}
.gal-note{grid-column:1/-1;font-size:14.5px;color:var(--mut);font-weight:500;margin-top:10px;line-height:1.55}
@media(max-width:899px){.gal-grid{gap:2px;padding-left:0;padding-right:0}.gal-cell{border-radius:0}.gal-note{padding-left:20px;padding-right:20px}}

/* v8.1: intro paragraph lives at the end of the details/recap section */
.event-intro{margin-top:24px;font-size:16.5px;line-height:1.65;font-weight:500;color:rgba(255,248,238,.78);max-width:56ch}

/* guest list sheet */
.guestline{cursor:pointer}
.guest-summary{font-size:14.5px;color:var(--mut);font-weight:500;margin:10px 0 6px}
.glist{list-style:none;margin:6px 0 4px;padding:0;max-height:46svh;overflow-y:auto}
.glist li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:11px 2px;border-bottom:1px solid rgba(255,249,240,.09);font-size:16px;font-weight:600}
.glist li small{color:var(--lav);font-weight:700;font-size:13.5px}
.glist li.gempty{font-weight:500;color:var(--mut);border-bottom:none}
.gl-t[data-guest-open]{cursor:pointer}

.rsvp textarea{resize:vertical;min-height:64px}

/* ===== motion polish ===== */
html{scroll-behavior:smooth}
.reveal{transform:translateY(18px) scale(.985);transition:opacity .8s cubic-bezier(.22,.61,.21,1),transform .8s cubic-bezier(.22,.61,.21,1)}
.reveal.in{transform:none}
@keyframes heroUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.hero-foot>div:first-child>*{animation:heroUp .9s cubic-bezier(.22,.61,.21,1) both}
.hero-foot>div:first-child>*:nth-child(2){animation-delay:.08s}
.hero-foot>div:first-child>*:nth-child(3){animation-delay:.16s}
.hero-foot>.hero-actions{animation:heroUp .9s cubic-bezier(.22,.61,.21,1) .26s both}
@keyframes heroSettle{from{transform:scale(1.06)}to{transform:scale(1)}}
.hero-bg{animation:heroSettle 2.6s cubic-bezier(.22,.61,.21,1) both}
.btn-pill{transition:transform .18s ease,background .18s ease}
.btn-lav:active,.btn-pill:active{transform:scale(.98)}
.btn-rsvp:active{transform:scale(.99)}
.evcard{transition:transform .5s cubic-bezier(.22,.61,.21,1),box-shadow .5s cubic-bezier(.22,.61,.21,1)}
.evcard .ev-img img{transition:transform 1.2s cubic-bezier(.2,.6,.2,1)}
.gal-cell img{transition:transform 1s cubic-bezier(.2,.6,.2,1)}
@media(hover:hover){
  .evcard:hover{transform:translateY(-4px);box-shadow:0 32px 70px rgba(0,0,0,.55)}
  .evcard:hover .ev-img img{transform:scale(1.045)}
  .gal-cell:hover img{transform:scale(1.03)}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .reveal{opacity:1 !important;transform:none !important}
}

/* ===== light theme ===== */
.menu-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px}
.theme-seg{display:inline-flex;background:rgba(255,249,240,.08);border:1px solid rgba(255,249,240,.14);border-radius:999px;padding:3px;flex-shrink:0}
.theme-seg button{padding:6px 14px;border-radius:999px;font-weight:700;font-size:13px;color:var(--cream);background:transparent;border:none;cursor:pointer;font-family:inherit}
html:not([data-theme="light"]) .theme-seg [data-theme-set="dark"],html[data-theme="light"] .theme-seg [data-theme-set="light"]{background:var(--lav);color:#1D0A29}
html[data-theme="light"]{--night:#F7F0E6;--plum:#EFE6F7;--mut:#77618F}
html[data-theme="light"] body{color:#2A0E3E}
html[data-theme="light"] .home{background:#F7F0E6}
/* dark islands: overlays and photo moments keep the dark palette */
html[data-theme="light"] .sheet,html[data-theme="light"] footer,html[data-theme="light"] .nextband,html[data-theme="light"] .lightbox,html[data-theme="light"] .tn-drop,html[data-theme="light"] .gate{--night:#16041F;--plum:#22102E;--mut:#A98FC4;--lav:#DCC9F5;--lav-soft:#C9A6EC}
/* heroes fade into the light page; hero text goes dark */
html[data-theme="light"] .hero-bg::before{background:
  linear-gradient(180deg, rgba(30,5,44,.72) 0, rgba(30,5,44,.25) 14%, rgba(30,5,44,0) 30%),
  linear-gradient(0deg, #F7F0E6 0%, rgba(247,240,230,.94) 12%, rgba(247,240,230,.68) 30%, rgba(247,240,230,.34) 48%, rgba(247,240,230,0) 66%)}
html[data-theme="light"] .hero.short .hero-bg::before{background:
  linear-gradient(180deg, rgba(30,5,44,.72) 0, rgba(30,5,44,.25) 14%, rgba(30,5,44,0) 30%),
  linear-gradient(0deg, #EFE6F7 0%, rgba(239,230,247,.95) 14%, rgba(239,230,247,.7) 32%, rgba(239,230,247,.38) 52%, rgba(239,230,247,.14) 68%, rgba(239,230,247,0) 82%)}
html[data-theme="light"] .home .hero-bg::after{background:rgba(8,1,13,.14)}
html[data-theme="light"] .hero-title{color:#2A0E3E}
html[data-theme="light"] .hero-date{color:rgba(42,14,62,.85)}
html[data-theme="light"] .hero-kicker{color:#4A1566}
html[data-theme="light"] .link-under{color:#2A0E3E;border-color:rgba(42,14,62,.65)}
html[data-theme="light"] .home .link-quiet{color:rgba(42,14,62,.66)}
html[data-theme="light"] .home .link-quiet:hover{color:#2A0E3E}
/* header on light */
html[data-theme="light"] .hdr.scrolled{background:rgba(247,240,230,.88);border-bottom-color:rgba(42,10,56,.1);color:#2A0E3E}
html[data-theme="light"] .hdr.scrolled .burger i,html[data-theme="light"] .hdr.scrolled .burger i::before,html[data-theme="light"] .hdr.scrolled .burger i::after{background:#2A0E3E}
html[data-theme="light"] .hdr.scrolled .wordmark span{color:#4A1566}
html[data-theme="light"] .hdr.scrolled .topnav>a,html[data-theme="light"] .hdr.scrolled .tn-btn{color:#2A0E3E}
html[data-theme="light"] .hdr-solid{color:#2A0E3E}
html[data-theme="light"] .hdr-solid .burger i,html[data-theme="light"] .hdr-solid .burger i::before,html[data-theme="light"] .hdr-solid .burger i::after{background:#2A0E3E}
html[data-theme="light"] .hdr-solid .wordmark span{color:#4A1566}
html[data-theme="light"] .hdr-solid .topnav>a,html[data-theme="light"] .hdr-solid .tn-btn{color:#2A0E3E}
/* page flow surfaces */
html[data-theme="light"] .rows{border-top-color:rgba(42,10,56,.14)}
html[data-theme="light"] .row{border-bottom-color:rgba(42,10,56,.14)}
html[data-theme="light"] .owner-rows{border-top-color:rgba(42,10,56,.14)}
html[data-theme="light"] .owner-row{border-bottom-color:rgba(42,10,56,.14)}
html[data-theme="light"] .owner-photo{background:linear-gradient(150deg,#E4D2F5,#CDB2E8);color:#6B4E8E}
html[data-theme="light"] .guestline{background:rgba(42,10,56,.05);border-color:rgba(42,10,56,.1)}
html[data-theme="light"] .list-cta{border-top-color:rgba(42,10,56,.14)}
html[data-theme="light"] .evcard{background:#FFFFFF;box-shadow:0 18px 44px rgba(59,10,74,.13)}
html[data-theme="light"] .ev-guest{background:rgba(42,10,56,.05);border-color:rgba(42,10,56,.08)}
html[data-theme="light"] .ev-guest .avatars span{border-color:#fff}
html[data-theme="light"] .ev-view{color:rgba(42,10,56,.62)}
html[data-theme="light"] .gi-card{background:#FFFFFF;border-color:rgba(42,10,56,.1)}
html[data-theme="light"] .gal-cell{background:#EFE6F7}
html[data-theme="light"] .gal-link{color:#4A1566}
html[data-theme="light"] .h-big em{color:#4A1566}
html[data-theme="light"] .home-sec-label{color:#4A1566}
html[data-theme="light"] .ev-eyebrow{color:#4A1566}
html[data-theme="light"] .intro-para p,html[data-theme="light"] .event-intro{color:rgba(42,14,62,.8)}
html[data-theme="light"] [style*="color:var(--lav-soft)"]{color:#4A1566 !important}
html[data-theme="light"] [style*="color:var(--lav)"]{color:#4A1566 !important}

/* hero video: tighter, lower crop (less ceiling, more crowd) */
.home .hero-bg video{position:absolute;left:0;bottom:0;width:100%;height:126%;object-position:center}

html[data-theme="light"] .btn-lav{background:#4A1566;color:#FFF9F0}
html[data-theme="light"] .btn-lav:hover{background:#3B0A4A}
html[data-theme="light"] .btn-pill{background:#4A1566}
html[data-theme="light"] .btn-pill:hover{background:#3B0A4A}
html[data-theme="light"] .hdr-rsvp{background:#4A1566;color:#FFF9F0}
html[data-theme="light"] .ev-rsvp{background:#4A1566}
html[data-theme="light"] .ev-rsvp:hover{background:#3B0A4A}

/* menu follows the theme too */
html[data-theme="light"] .menu{color:#2A0E3E}
html[data-theme="light"] .menu nav a,html[data-theme="light"] .menu nav .m-events-btn{color:#2A0E3E}
html[data-theme="light"] .menu nav a:hover,html[data-theme="light"] .menu nav .m-events-btn:hover{color:#4A1566}
html[data-theme="light"] .menu nav a em,html[data-theme="light"] .m-chev,html[data-theme="light"] .menu .wordmark span{color:#4A1566}
html[data-theme="light"] .menu-close{color:#2A0E3E}
html[data-theme="light"] .menu-social a{color:#2A0E3E}
html[data-theme="light"] .theme-seg{background:rgba(42,10,56,.06);border-color:rgba(42,10,56,.14)}
html[data-theme="light"] .theme-seg button{color:#2A0E3E}
html[data-theme="light"] .theme-seg [data-theme-set="light"]{background:#4A1566;color:#FFF9F0}

.flyer-fig{margin:36px 0 8px}
.flyer-fig img{width:100%;height:auto;display:block;border-radius:16px}
