@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Merriweather:ital,wght@1,400&display=swap');

:root{
  --bg: #000;
  --ink: #fff;
  --muted: #cfcfcf;
  --rule: #fff;
  --pad: clamp(16px, 4vw, 36px);
  --g: clamp(14px, 3vw, 32px);
  --left: clamp(220px, 24vw, 360px);
  --logo-w: clamp(160px, 28vw, 320px);
  --transition: cubic-bezier(.2,.8,.2,1);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--ink);font-family:'Fira Mono','IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.45;overflow-x:hidden;}
a{color:var(--ink);text-decoration:none;}
.inline-link{text-decoration:underline;text-underline-offset:.18em;}
.layout{display:block;}
.right{padding:var(--pad);margin-left:calc(var(--left) + var(--g));min-height:100vh;}
@media(max-width:640px){.right{margin-left:0;}}
.right-header{display:none;margin-bottom:var(--g);}
.brand-inline img{width:var(--logo-w);height:auto;display:block;}
.sidebar-collapsed .right-header{display:block;}
.banner{background:#000;color:#fff;font-size:.9rem;text-transform:uppercase;padding:.5rem 0;border-bottom:1px solid #444;margin:0 0 var(--g) 0;}
.hero{padding:2rem 0 3rem;border-bottom:1px solid rgba(255,255,255,.15);margin-bottom:3rem;}
.hero-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap;}
.hero-copy{max-width:720px;}
.eyebrow{font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:1rem;}
h1{font-family:'VT323',monospace;font-size:clamp(3rem,9vw,6rem);line-height:.92;text-transform:uppercase;margin-bottom:1rem;}
.hero p{max-width:680px;color:#e0e0e0;font-size:1rem;line-height:1.7;}
@media(max-width:820px){.hero-inner{flex-direction:column;align-items:flex-start;}}
.filter-shell{position:sticky;top:0;z-index:100;background:#000;padding:1rem 0 1.5rem;margin-bottom:2rem;}
.filter-controls{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;}
.filter-bar{position:relative;display:flex;gap:.5rem;border:1px solid #fff;border-radius:0;padding:.35rem;overflow:hidden;width:fit-content;flex-wrap:wrap;background:#000;}
.filter-pill{position:absolute;top:.35rem;left:0;height:calc(100% - .7rem);background:#fff;border-radius:0;transition:all .35s var(--transition);z-index:0;}
.filter-btn{position:relative;z-index:1;appearance:none;border:none;background:transparent;color:#fff;padding:.85rem 1.4rem;font-family:'Fira Mono','IBM Plex Mono',monospace;font-size:.9rem;text-transform:uppercase;cursor:pointer;transition:color .25s ease;border-radius:0;white-space:nowrap;}
.filter-btn.active{color:#000;}
.sort-btn{border:1px solid #fff;background:transparent;color:#fff;padding:.85rem 1.4rem;font-family:'Fira Mono','IBM Plex Mono',monospace;font-size:.9rem;text-transform:uppercase;cursor:pointer;transition:background .2s ease,color .2s ease;white-space:nowrap;}
.sort-btn:hover{background:#fff;color:#000;}
section.category-section{margin-bottom:5rem;}
section.category-section.hidden{display:none;}
.section-heading{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap;}
.section-heading h2{font-family:'VT323',monospace;font-size:3rem;text-transform:uppercase;line-height:1;}
.section-count{border:1px solid #fff;padding:.25rem .75rem;border-radius:999px;font-size:.8rem;text-transform:uppercase;color:#cfcfcf;}
.event-stack{display:flex;flex-direction:column;gap:2rem;}
.event-card{border:1px solid #fff;padding:1.5rem;border-radius:4px;background:rgba(255,255,255,.01);transition:background .2s ease,border-color .2s ease;}
.event-card:hover{background:rgba(255,255,255,.03);}
.event-top{display:flex;justify-content:space-between;gap:2rem;margin-bottom:1rem;flex-wrap:wrap;}
.event-meta{display:flex;flex-direction:column;gap:.4rem;}
.event-type{display:inline-flex;width:fit-content;border:1px solid #fff;border-radius:999px;padding:.15rem .6rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;opacity:.9;}
.event-card h3{font-size:1.6rem;line-height:1.2;text-transform:capitalize;margin-bottom:.4rem;}
.event-credit{color:#d0d0d0;font-size:.95rem;line-height:1.6;}
.event-credit strong{color:#fff;font-weight:600;}
.event-series{text-align:right;color:#bdbdbd;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;}
.event-description{margin:1.25rem 0 1.5rem;color:#efefef;max-width:980px;line-height:1.75;font-size:.97rem;}
.event-link{margin-top:1rem;color:#d0d0d0;font-size:.95rem;}
.event-link a{text-decoration:underline;text-underline-offset:.18em;}
.image-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;}
.image-row button{appearance:none;border:none;background:none;cursor:zoom-in;padding:0;}
.image-row img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:4px;border:1px solid rgba(255,255,255,.15);transition:opacity .2s ease,transform .2s ease;display:block;}
.image-row img:hover{opacity:.88;transform:scale(.985);}
@media(max-width:760px){
  .image-row{grid-template-columns:repeat(3,minmax(0,1fr));}
  .event-top{flex-direction:column;}
  .event-series{text-align:left;}
  .filter-controls{flex-direction:column;align-items:stretch;}
  .filter-bar{width:100%;justify-content:center;}
  .sort-btn{width:100%;}
}
.pc-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.95);z-index:9999;display:none;align-items:center;justify-content:center;padding:2rem;}
.pc-lightbox[aria-hidden="false"]{display:flex;}
.pc-lightbox__inner{max-width:95vw;max-height:92vh;position:relative;}
.pc-lightbox__img{max-width:95vw;max-height:80vh;width:auto;height:auto;display:block;border-radius:4px;}
.pc-lightbox__caption{margin-top:1rem;color:#cfcfcf;text-align:center;font-size:.9rem;line-height:1.5;}
.pc-lightbox__btn,.pc-lightbox__close{position:fixed;width:54px;height:54px;border:1.5px solid rgba(255,255,255,.85);background:rgba(0,0,0,.35);color:#fff;display:grid;place-items:center;cursor:pointer;z-index:10010;transition:background .2s ease;}
.pc-lightbox__btn:hover,.pc-lightbox__close:hover{background:rgba(255,255,255,.08);}
.pc-lightbox__prev{left:16px;top:50%;transform:translateY(-50%);}
.pc-lightbox__next{right:16px;top:50%;transform:translateY(-50%);}
.pc-lightbox__close{top:16px;right:16px;font-size:0;}
.pc-lightbox__close::before{content:'×';position:absolute;font-size:24px;line-height:1;}
.site-footer{border-top:1px solid var(--rule);text-align:center;color:var(--muted);font-size:12px;margin-left:calc(var(--left) + var(--g));padding:20px var(--pad) 36px;}
@media(max-width:640px){.site-footer{margin-left:0;}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
