/* Past Events: archive list, event page, photo gallery, lightbox. */

/* ---------- Archive head ---------- */
.pe-head{padding:clamp(130px,16vw,190px) 0 clamp(28px,4vw,44px)}
.pe-head h1{font-size:clamp(3rem,9vw,6rem);font-weight:300;line-height:1}
.pe-head h1 em{font-style:italic}
.pe-head .lede{margin-top:22px;max-width:60ch;color:var(--muted);font-size:1.12rem}
.pe-head .lede b{color:var(--cream);font-weight:400}

/* ---------- Filter bar ---------- */
.pe-tools{position:sticky;top:61px;z-index:20;padding:14px 0;margin-bottom:8px;
  background:linear-gradient(180deg,rgba(7,3,18,.94) 70%,rgba(7,3,18,0));}
.pe-tools .wrap{display:flex;gap:14px 18px;align-items:center;flex-wrap:wrap}
.pe-search{position:relative;flex:1 1 260px;max-width:380px}
.pe-search svg{position:absolute;left:16px;top:50%;width:17px;height:17px;transform:translateY(-50%);stroke:var(--muted);pointer-events:none}
.pe-search input{width:100%;font:inherit;font-size:.95rem;color:var(--cream);background:rgba(20,10,40,.7);border:1px solid var(--line);
  border-radius:999px;padding:.72em 1em .72em 44px;transition:border-color .3s,box-shadow .3s}
.pe-search input::placeholder{color:var(--muted-dim)}
.pe-search input:focus{outline:none;border-color:rgba(54,231,215,.6);box-shadow:0 0 0 3px rgba(54,231,215,.15)}
.pe-years{display:flex;gap:6px;flex-wrap:wrap}
.pe-years button{font:inherit;font-size:.82rem;letter-spacing:.04em;color:var(--muted);background:transparent;border:1px solid transparent;
  border-radius:999px;padding:.42em .85em;cursor:pointer;transition:color .25s,border-color .25s,background .25s}
.pe-years button:hover{color:var(--cream);border-color:var(--line)}
.pe-years button[aria-pressed="true"]{color:var(--void);background:var(--cream);border-color:var(--cream)}
.pe-count{font-size:.85rem;color:var(--muted-dim);margin-left:auto}
@media(max-width:700px){
  .pe-tools{position:static;background:none}
  .pe-years{flex-wrap:nowrap;overflow-x:auto;margin:0 -18px;padding:0 18px;scrollbar-width:none;width:calc(100% + 36px)}
  .pe-years::-webkit-scrollbar{display:none}
  .pe-years button{flex:none}
  .pe-count{margin-left:0;width:100%}
}

/* ---------- Year groups + cards ---------- */
.pe-year{display:grid;grid-template-columns:150px 1fr;gap:28px;padding:34px 0 10px;border-top:1px solid var(--line)}
.pe-year:first-of-type{border-top:0}
.pe-year > h2{font-size:clamp(2.6rem,5vw,3.6rem);font-weight:300;position:sticky;top:140px;align-self:start;color:var(--muted)}
@media(max-width:900px){.pe-year{grid-template-columns:1fr;gap:14px}.pe-year > h2{position:static}}
.pe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:30px 24px;list-style:none}
.card{display:flex;flex-direction:column;height:100%}
.card a{display:flex;flex-direction:column;height:100%;border-radius:20px;outline-offset:6px}
.card-media{position:relative;aspect-ratio:4/3;border-radius:18px;overflow:hidden;background:var(--plum);
  box-shadow:0 18px 40px -24px rgba(0,0,0,.9);isolation:isolate}
.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out),filter .6s}
.card-media.poster img{object-position:50% 18%}
.card a:hover .card-media img{transform:scale(1.045);filter:saturate(1.12)}
.card-media::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(243,236,255,.08);pointer-events:none}
.card-media .seedmark{position:absolute;inset:0;display:grid;place-items:center;
  background:radial-gradient(circle at 30% 25%,rgba(255,134,207,.45),transparent 60%),radial-gradient(circle at 75% 80%,rgba(54,231,215,.28),transparent 55%),linear-gradient(140deg,#3a1866,#150830)}
.card-media .seedmark svg{width:38%;opacity:.7}
.photos-badge{position:absolute;right:10px;bottom:10px;display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:500;
  color:var(--cream);background:rgba(7,3,18,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:999px;padding:.32em .75em}
.photos-badge svg{width:14px;height:14px;stroke:currentColor}
.card-body{padding:16px 4px 0;display:flex;flex-direction:column;gap:8px}
.card time{font-size:.8rem;letter-spacing:.06em;color:var(--aqua)}
.card h3{font-size:1.5rem;font-weight:500;line-height:1.12;transition:color .3s}
.card a:hover h3{color:#fff}
.card p{font-size:.94rem;color:var(--muted);line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pe-empty{padding:80px 0;text-align:center;color:var(--muted)}
.pe-empty button{margin-top:18px}

/* ---------- Event page hero ---------- */
.ev-hero{position:relative;min-height:min(78vh,760px);display:flex;align-items:flex-end;overflow:hidden;padding:120px 0 clamp(36px,5vw,60px)}
.ev-hero-img{position:absolute;inset:0;z-index:-1}
.ev-hero-img img{width:100%;height:100%;object-fit:cover;animation:settle 2.4s var(--ease-out) both}
@keyframes settle{from{transform:scale(1.08);filter:blur(8px) saturate(.8)}to{transform:none;filter:none}}
.ev-hero-img::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(7,3,18,.55) 0%,rgba(7,3,18,.1) 35%,rgba(7,3,18,.72) 72%,var(--void) 100%)}
.ev-hero > .wrap{width:100%}
.ev-hero h1{font-size:clamp(2.5rem,6.4vw,5.4rem);font-weight:400;max-width:20ch;text-shadow:0 2px 30px rgba(7,3,18,.6)}
.ev-meta{display:flex;gap:10px 22px;flex-wrap:wrap;align-items:center;margin-top:20px;font-size:.95rem;color:var(--cream)}
.ev-meta span{display:inline-flex;align-items:center;gap:8px}
.ev-meta svg{width:17px;height:17px;stroke:var(--aqua)}
.back{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;color:var(--muted);margin-bottom:26px;transition:color .3s,gap .3s}
.back:hover{color:var(--cream);gap:12px}
.back svg{width:16px;height:16px;stroke:currentColor}

/* Poster layout: flyer shown whole, blurred copy as the backdrop */
.ev-hero.is-poster{min-height:0;padding-top:130px}
.ev-hero.is-poster .ev-hero-img img{filter:blur(40px) saturate(1.2);transform:scale(1.25);opacity:.55;animation:none}
.ev-hero.is-poster .ev-hero-img::after{background:linear-gradient(180deg,rgba(7,3,18,.4),rgba(7,3,18,.75) 70%,var(--void))}
.poster-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,64px);align-items:end}
.poster-frame{border-radius:14px;overflow:hidden;box-shadow:0 30px 70px -30px rgba(0,0,0,.95),0 0 0 1px rgba(243,236,255,.1);
  justify-self:end;max-width:460px;width:100%;animation:lift 1.4s var(--ease-out) both}
@keyframes lift{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.poster-frame img{width:100%;height:auto}
.poster-frame a{display:block;cursor:zoom-in}
.poster-grid.wide{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.poster-grid.wide .poster-frame{max-width:640px}
@media(max-width:820px){.poster-grid,.poster-grid.wide{grid-template-columns:1fr}.poster-frame,.poster-grid.wide .poster-frame{justify-self:start;max-width:min(100%,460px);order:-1}}

/* No-image hero */
.ev-hero.is-plain{min-height:0;padding-top:150px}

/* ---------- Event body ---------- */
.ev-body{display:grid;grid-template-columns:minmax(0,68ch) 1fr;gap:56px;padding-top:clamp(28px,4vw,48px)}
@media(max-width:1000px){.ev-body{grid-template-columns:1fr;gap:36px}}
.prose{font-size:1.08rem;line-height:1.75;color:#e4dbf6;overflow-wrap:anywhere}
.prose > * + *{margin-top:1.05em}
.prose h2,.prose h3,.prose h4{font-family:"Cormorant Garamond";color:var(--cream);line-height:1.15;margin-top:1.6em}
.prose h2{font-size:2rem;font-weight:400}.prose h3{font-size:1.6rem;font-weight:500}.prose h4{font-size:1.3rem;font-weight:500}
.prose strong{color:var(--cream);font-weight:500}
.prose a{color:var(--aqua);text-decoration:underline;text-decoration-color:rgba(54,231,215,.4);text-underline-offset:3px;transition:text-decoration-color .3s}
.prose a:hover{text-decoration-color:var(--aqua)}
.prose ul,.prose ol{padding-left:1.3em}
.prose li + li{margin-top:.35em}
.prose blockquote{border-left:1px solid var(--rose);padding-left:1.1em;font-family:"Cormorant Garamond";font-size:1.35rem;font-style:italic;color:var(--cream)}
.prose img{border-radius:12px;height:auto;margin:1.6em 0}
.prose hr{border:0;height:1px;background:var(--line);margin:2em 0}
.prose table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}
.prose td,.prose th{padding:6px 10px;vertical-align:top}
.prose .detail{font-size:1.15rem;color:var(--cream);font-weight:400;margin-top:.35em}
.prose .detail:first-child{margin-top:0}

.ev-aside{align-self:start;position:sticky;top:96px;display:flex;flex-direction:column;gap:18px}
@media(max-width:1000px){.ev-aside{position:static}}
.aside-block{border-top:1px solid var(--line);padding-top:16px;font-size:.92rem;color:var(--muted)}
.aside-block h2{font-family:"Outfit";font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-dim);margin-bottom:10px}
.aside-block a{color:var(--cream);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.aside-block a:hover{text-decoration-color:var(--aqua)}
.aside-block ul{list-style:none;display:flex;flex-direction:column;gap:6px}
.aside-block .jump{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--cream)}
.aside-block .jump svg{width:16px;height:16px;stroke:var(--aqua)}

/* ---------- Gallery ---------- */
.gallery{padding-top:clamp(64px,8vw,100px)}
.gallery-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:26px}
.gallery-head h2{font-size:clamp(2.2rem,5vw,3.4rem);font-weight:300}
.gallery-head p{color:var(--muted);font-size:.95rem}
.masonry{columns:4 240px;column-gap:12px}
.masonry a{display:block;margin-bottom:12px;break-inside:avoid;border-radius:10px;overflow:hidden;background:var(--plum);cursor:zoom-in;position:relative}
.masonry img{width:100%;height:auto;transition:transform .7s var(--ease-out),opacity .5s}
.masonry a:hover img{transform:scale(1.035)}
.masonry a[hidden]{display:none}
.gallery-more{display:flex;justify-content:center;margin-top:26px}

/* ---------- Prev / next ---------- */
.ev-pager{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:clamp(64px,8vw,100px);border-top:1px solid var(--line);padding-top:28px}
.ev-pager a{display:flex;flex-direction:column;gap:6px;padding:4px 0;max-width:42ch}
.ev-pager a:last-child{text-align:right;justify-self:end;align-items:flex-end}
.ev-pager small{font-size:.8rem;color:var(--muted-dim);display:inline-flex;align-items:center;gap:6px}
.ev-pager small svg{width:15px;height:15px;stroke:currentColor}
.ev-pager span{font-family:"Cormorant Garamond";font-size:1.35rem;line-height:1.2;transition:color .3s}
.ev-pager a:hover span{color:var(--aqua)}
@media(max-width:600px){.ev-pager{grid-template-columns:1fr}.ev-pager a:last-child{text-align:left;justify-self:start;align-items:flex-start}}
