@font-face{font-family:"Archivo";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;
  src:url(/assets/fonts/archivo.woff2) format("woff2-variations"),url(/assets/fonts/archivo.woff2) format("woff2")}

:root{
  /* 60-30-10: exactly three colours. Everything else is a mix of these three. */
  --bg:#0D0F14;      /* 60: background */
  --ink:#F4F2EE;     /* 30: structure (text, nav, cards, lines) */
  --accent:#F24E06;  /* 10: primary buttons, in-text links, one phrase per page */
  --night:var(--bg); --night-2:color-mix(in srgb,var(--ink) 6%,var(--bg)); --line:color-mix(in srgb,var(--ink) 16%,var(--bg));
  --white:var(--ink); --dim:color-mix(in srgb,var(--ink) 66%,var(--bg)); --soft:color-mix(in srgb,var(--ink) 80%,var(--bg));
  --orange:var(--accent); --orange-hi:color-mix(in srgb,var(--accent) 85%,var(--ink));
  --shade:color-mix(in srgb,var(--bg) 85%,transparent);
  --cta-shadow:0 8px 24px color-mix(in srgb,var(--bg) 70%,transparent);
  /* Front, middle, back: the same three layers everywhere */
  --z-back:0; --z-mid:10; --z-front:20;
  --font:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --h1:clamp(3rem,13.5vw,10.5rem);
  --h2:clamp(2rem,7vw,4.75rem);
  --h3:clamp(1.9rem,8vw,5.25rem);
  --gutter:clamp(18px,5vw,56px);
  --radius:18px;
  --pill-h:64px;
  --logo-hole:var(--night);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background-color:var(--night);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .957 0 0 0 0 .949 0 0 0 0 .933 0 0 0 .045 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");color:var(--white);font:400 1.0625rem/1.55 var(--font);font-stretch:100%;
  padding-bottom:calc(var(--pill-h) + 28px + env(safe-area-inset-bottom));-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%;height:auto}
picture{display:block}
a{color:inherit}
h1,h2,h3{margin:0;font-weight:820;font-stretch:125%;line-height:.92;letter-spacing:-.02em;text-wrap:balance}
p{margin:0 0 1em;text-wrap:pretty}
.wrap{width:100%;max-width:1320px;margin-inline:auto;padding-inline:var(--gutter)}
.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}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--white);color:var(--night);padding:10px 16px;border-radius:8px;font-weight:700}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:4px}
.event-link:focus-visible,.reel-card:focus-visible,.photo-card:focus-visible,.book-list a:focus-visible,.dash-list a:focus-visible{outline-offset:6px;border-radius:12px}
[data-fade-up]:focus-within{opacity:1!important;transform:none!important}
.placeholder-note{color:var(--dim);font-size:.92rem;font-style:italic;border-left:2px dashed var(--line);padding-left:10px}

/* Header */
.site-header{position:absolute;inset:0 0 auto;z-index:var(--z-mid);display:flex;align-items:center;justify-content:space-between;
  padding:18px max(var(--gutter),calc((100% - 1320px) / 2 + var(--gutter)))}
.nav a,.brand-name{text-shadow:0 1px 10px color-mix(in srgb,var(--bg) 85%,transparent)}
.brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;color:var(--orange)}
.logo-mark{width:38px;height:38px;flex:none}
.brand-name{color:var(--white);font-weight:760;font-stretch:118%;font-size:.95rem;letter-spacing:.01em}
.nav{display:none}
.nav ul,.nav-mobile ul{list-style:none;margin:0;padding:0}
.nav ul{display:flex;gap:28px}
.nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-weight:600;font-size:.98rem}
.nav a:hover{opacity:1;text-decoration:underline;text-underline-offset:6px}
.nav-mobile{position:relative}
.nav-mobile summary{list-style:none;cursor:pointer;padding:10px 16px;border:1px solid color-mix(in srgb,var(--ink) 30%,transparent);border-radius:999px;font-weight:650;font-size:.95rem;
  background:color-mix(in srgb,var(--bg) 35%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.nav-mobile summary::-webkit-details-marker{display:none}
.nav-mobile ul{position:absolute;right:0;top:calc(100% + 10px);min-width:210px;padding:10px;border-radius:16px;
  background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line)}
.nav-mobile a{display:block;padding:12px 14px;text-decoration:none;font-weight:600;border-radius:10px}
.nav-mobile a:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}
@media (min-width:900px){.nav{display:block}.nav-mobile{display:none}}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 28px;border-radius:999px;
  font:750 1.02rem/1 var(--font);font-stretch:110%;text-decoration:none;border:0;cursor:pointer;transition:background-color .2s}
.btn-primary{position:relative;z-index:var(--z-front);background:var(--accent);color:var(--bg);box-shadow:var(--cta-shadow)}
.btn-primary:hover{background:var(--orange-hi)}
.btn-ghost{background:transparent;color:var(--white);border:1px solid color-mix(in srgb,var(--ink) 35%,transparent)}
.btn-ghost:hover{border-color:var(--white)}
.btn-small{padding:0 22px}
.btn-solid{background:var(--ink);color:var(--bg)}
.btn-solid:hover{background:var(--soft)}

/* Glass */
.glass{background:linear-gradient(135deg,color-mix(in srgb,var(--bg) 82%,transparent),color-mix(in srgb,var(--bg) 78%,transparent));border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);border-radius:var(--radius);position:relative;overflow:hidden}
.glass::before{content:"";position:absolute;inset:0 0 auto;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--ink) 35%,transparent),transparent)}

/* Hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;isolation:isolate}
.hero-media,.hero-media picture,.hero-media img{position:absolute;inset:0;width:100%;height:100%}
.hero-media{z-index:var(--z-back);overflow:hidden}
.hero-media img{object-fit:cover;object-position:50% 58%}
.hero-scrim{position:absolute;inset:0;z-index:var(--z-back);pointer-events:none;background:
  linear-gradient(180deg,color-mix(in srgb,var(--bg) 60%,transparent) 0%,transparent 16%,transparent 42%,color-mix(in srgb,var(--bg) 78%,transparent) 68%,var(--bg) 100%)}
.hero-inner{position:relative;z-index:var(--z-mid);padding-top:120px;padding-bottom:0}
/* The one break-edge element: the next-night card hangs into the next section */
.home .next-card{margin-bottom:-72px;box-shadow:0 18px 40px color-mix(in srgb,var(--bg) 75%,transparent)}
.home .hero + .upcoming{padding-top:calc(72px + clamp(32px,5vw,64px))}
.hero-event .hero-inner,.page-head .hero-inner{padding-bottom:clamp(28px,6vh,64px)}
.hero-kicker{font-weight:650;font-size:.98rem;color:var(--white);margin-bottom:14px;text-shadow:0 1px 14px color-mix(in srgb,var(--bg) 90%,transparent),0 0 2px color-mix(in srgb,var(--bg) 80%,transparent)}
.hero-h{font-size:var(--h1);max-width:12ch;margin-bottom:clamp(22px,4vh,40px);text-shadow:0 2px 30px color-mix(in srgb,var(--bg) 70%,transparent),0 0 3px color-mix(in srgb,var(--bg) 50%,transparent)}
.next-card{padding:20px 20px 18px;max-width:440px}
.next-label{font-size:.9rem;color:var(--soft);margin:0 0 4px}
.next-name{font-size:1.45rem;line-height:1.05;margin-bottom:14px}
.next-name a{text-decoration:none}
.next-facts{display:grid;gap:6px;margin:0 0 18px}
.next-facts div,.ev-facts div{display:grid;grid-template-columns:5.5em 1fr;gap:10px}
.next-facts dt,.ev-facts dt{color:var(--soft);font-size:.95rem}
.next-facts dd,.ev-facts dd{margin:0;font-weight:600}
.next-card .btn{width:100%}
.next-fine{font-size:.88rem;color:var(--dim);margin:10px 0 0}
@media (min-width:900px){
  .hero-inner{display:grid;grid-template-columns:1fr 400px;align-items:end;gap:40px}
  .hero-kicker{grid-column:1/-1}
  .hero-h{margin-bottom:0;font-size:clamp(4rem,7.6vw,9rem);max-width:none}
}

/* Proof */
.proof{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.proof-list{list-style:none;margin:0 auto;display:grid;gap:0}
.proof-list li{padding:22px 0;border-bottom:1px solid var(--line)}
.proof-list li:last-child{border-bottom:0}
.proof-list strong{display:block;font-size:1.3rem;font-stretch:118%;font-weight:780;line-height:1.1;margin-bottom:4px}
.proof-list span{color:var(--dim);font-size:.95rem}
@media (min-width:900px){.proof-list{grid-template-columns:repeat(3,1fr);gap:40px}.proof-list li{border-bottom:0;padding:34px 0}}

/* Statement */
.statement{padding-block:clamp(40px,7vw,96px) clamp(20px,3.5vw,48px)}
.statement-text mark{background:none;color:var(--accent)}
.statement-text{font-size:clamp(1.5rem,4.4vw,3.1rem);line-height:1.18;font-weight:620;font-stretch:108%;max-width:24ch;margin:0;letter-spacing:-.01em}

/* Night panels */
.panel{position:relative;min-height:92svh;display:flex;align-items:flex-end;isolation:isolate;overflow:hidden}
.panel-media,.panel-media picture,.panel-media img{position:absolute;inset:0;width:100%;height:100%}
.panel-media{z-index:var(--z-back)}
.panel-media img{object-fit:cover}
.panel::after{content:"";position:absolute;inset:0;z-index:var(--z-back);background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 55%,transparent) 0%,transparent 12%,transparent 50%,color-mix(in srgb,var(--bg) 70%,transparent) 82%,color-mix(in srgb,var(--bg) 92%,transparent) 100%)}
.panel-copy p,.panel-h{text-shadow:0 1px 16px color-mix(in srgb,var(--bg) 85%,transparent)}
.panel-copy{position:relative;z-index:var(--z-mid);padding-bottom:clamp(40px,9vh,96px)}
.panel-h{font-size:var(--h3);max-width:11ch;margin-bottom:16px}
.panel-copy p{max-width:36ch;font-size:1.1rem}
@media (min-width:900px){.panel-right .panel-copy{text-align:right}.panel-right .panel-h,.panel-right .panel-copy p{margin-left:auto}}

/* Sections */
.section-h{font-size:var(--h2);margin-bottom:24px}
.upcoming,.djs,.summer,.book{padding-block:clamp(44px,6.5vw,88px)}
.event-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.event-row{display:grid;gap:14px;padding:22px 0;border-bottom:1px solid var(--line)}
.event-link{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;text-decoration:none;align-items:center}
.event-date{grid-row:span 2;display:flex;flex-direction:column;align-items:center;justify-content:center;width:68px;height:68px;border:1px solid var(--line);border-radius:14px}
.event-day{font-size:1.6rem;font-weight:820;font-stretch:120%;line-height:1}
.event-mon{font-size:.85rem;color:var(--dim)}
.event-name{display:block;font-weight:780;font-stretch:115%;font-size:1.25rem;line-height:1.1}
.event-where{display:block;color:var(--dim);font-size:.95rem;margin-top:4px}
.event-price{grid-column:2;font-weight:650}
@media (min-width:900px){
  .event-row{grid-template-columns:1fr auto;align-items:center}
  .event-link{grid-template-columns:auto 1fr auto}
  .event-date{grid-row:auto}.event-price{grid-column:auto}
}

/* Reel */
.reel{padding-block:clamp(44px,6.5vw,88px) 0;overflow:hidden}
.reel-head p{color:var(--dim);max-width:40ch}
.reel-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px var(--gutter) 40px;scrollbar-width:none}
.reel-track::-webkit-scrollbar{display:none}
.reel-card{flex:0 0 78vw;max-width:520px;scroll-snap-align:start;text-decoration:none}
.reel-media{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;background:var(--night-2)}
.reel-media picture,.reel-media img{width:100%;height:100%}
.reel-media img{object-fit:cover}
.reel-meta{display:flex;justify-content:space-between;gap:12px;padding-top:12px}
.reel-venue{font-weight:720;font-stretch:112%}
.reel-date{color:var(--dim);font-size:.95rem}
.reel-all{display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;border:1px solid var(--line);border-radius:var(--radius);font-weight:780;font-stretch:118%;font-size:1.3rem}
.reel-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:8px 24px}
.reel-head .section-h,.reel-head p{grid-column:1}
.reel-nav{display:none;grid-column:2;grid-row:1 / span 2;gap:10px;padding-bottom:16px}
.reel-nav button{width:52px;height:52px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--white);font-size:1.3rem;cursor:pointer;transition:background .2s,border-color .2s}
.reel-nav button:hover{background:color-mix(in srgb,var(--ink) 8%,transparent);border-color:var(--white)}
.reel-media{position:relative}
.reel-tag{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;padding:56px 20px 18px;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--bg) 88%,transparent));pointer-events:none}
.reel-city{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:820;font-stretch:125%;text-transform:uppercase;line-height:.95;letter-spacing:-.01em}
.reel-tag .reel-date{color:var(--white);font-size:1rem;font-weight:600;margin-top:6px}
.reel-note{color:var(--dim);font-size:.95rem}
@media (min-width:900px){.reel-card{flex-basis:calc((100vw - 2 * var(--gutter) - 48px) / 3.3)}.reel-nav{display:flex}
  .reel-track{scroll-padding-inline:max(var(--gutter),calc((100% - 1320px) / 2 + var(--gutter)));padding-inline:max(var(--gutter),calc((100% - 1320px) / 2 + var(--gutter)))}}
.up-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.cities{padding-block:clamp(28px,5vw,64px) 0}
.city-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.city-list a{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:clamp(14px,2.4vw,26px) 0;border-bottom:1px solid var(--line);text-decoration:none;transition:color .25s}
.city-list span{font-size:clamp(2.6rem,10vw,8rem);font-weight:860;font-stretch:125%;text-transform:uppercase;line-height:.9;letter-spacing:-.02em}
.city-list small{color:var(--dim);font-size:1rem;white-space:nowrap}
.city-list a:hover span{color:var(--accent)}
.book .proof{margin-top:40px;border-bottom:0}
.book .proof-list li{padding:18px 0}
.book .proof-list strong{font-size:1.05rem}

/* DJs */
.dj-list{list-style:none;margin:0 0 20px;padding:0;display:flex;flex-wrap:wrap;gap:4px 28px}
.dj-list a{display:inline-flex;align-items:center;min-height:48px;font-size:clamp(2rem,9vw,5.5rem);font-weight:820;font-stretch:125%;text-decoration:none;line-height:1.05;letter-spacing:-.02em}
.dj-list a:hover{color:var(--orange)}
.dj-guests{color:var(--dim)}

/* Summer */
.summer-grid{display:grid;gap:16px}
.summer-item{padding:24px}
.summer-item h3{font-size:1.4rem;line-height:1.1;margin-bottom:10px;font-stretch:115%}
.summer-item p{color:var(--dim);margin:0}
@media (min-width:900px){.summer-grid{grid-template-columns:1fr 1fr}}

/* List */
.list-signup{padding-block:clamp(44px,6.5vw,88px);background:var(--night-2)}
.list-grid{display:grid;gap:28px}
.list-form{display:grid;gap:14px;padding:22px}
.list-form label{display:grid;gap:6px;font-size:.95rem;font-weight:600}
.list-form input[type=email],.list-form input[type=tel],.list-form input[type=text],.list-form select{min-height:50px;padding:0 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:color-mix(in srgb,var(--bg) 55%,transparent);color:var(--white);font:inherit}
.list-form .check{grid-template-columns:22px 1fr;align-items:center;min-height:44px;font-weight:500}
.list-form .check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--orange)}
.form-fine{font-size:.85rem;color:var(--dim);margin:0}
@media (min-width:900px){.list-grid{grid-template-columns:1fr 480px;align-items:center}}

/* Book */
.book-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.book-list{border-top:1px solid var(--line);gap:0!important}
.book-list a{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 24px;padding:20px 0;border-bottom:1px solid var(--line);text-decoration:none}
.book-list a:hover strong{text-decoration:underline;text-underline-offset:5px}
.book-list strong{font-size:clamp(1.3rem,3vw,1.9rem);font-stretch:118%;line-height:1.1}
.book-list span{color:var(--dim);font-size:.95rem}


/* Event page */
.hero-event{min-height:92svh}
.crumbs{font-size:.9rem;color:var(--dim);margin-bottom:16px}
.crumbs a{text-decoration:none}
.hero-h-event{font-size:clamp(2.6rem,10vw,7.5rem);max-width:14ch;margin-bottom:18px}
.ev-hype{font-size:1.15rem;max-width:40ch;margin-bottom:18px}
.ev-facts{display:grid;gap:6px;margin:0 0 20px}
.ev-price{font-size:1.15rem}
.ev-cta .btn{min-width:220px}
@media (min-width:900px){.hero-event .hero-inner{display:block}}
.ev-body{display:grid;gap:0;padding-block:40px 80px;max-width:860px}
.ev-block{padding:36px 0;border-bottom:1px solid var(--line)}
.block-h{font-size:clamp(1.6rem,5vw,2.4rem);margin-bottom:16px}
.facts-list{margin:0;padding-left:1.1em;display:grid;gap:8px}
.tix-box{padding:24px;display:grid;gap:12px;justify-items:start}
.tix-box p{margin:0;color:var(--dim)}
.tix-price{font-size:1.8rem;font-weight:820;font-stretch:120%;color:var(--white)!important}
.ev-address{font-style:normal;font-size:1.1rem;margin-bottom:10px}
.text-link,.prose p a,.page-lead a,.gallery-tag a,.gallery-fine a{color:var(--accent);text-underline-offset:4px;font-weight:600}
.faq details{border-top:1px solid var(--line);padding:16px 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:680;font-size:1.08rem}
.faq details p{margin:10px 0 0;color:var(--dim)}
.share-row{display:flex;flex-wrap:wrap;gap:10px}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding-top:56px}
.footer-grid{display:grid;gap:32px}
.footer-line{color:var(--dim);margin-top:14px;max-width:34ch}
.footer-h{font-size:.95rem;font-stretch:100%;font-weight:700;margin-bottom:12px;color:var(--dim);letter-spacing:0}
.footer-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.footer-list a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.footer-list a:hover{text-decoration:underline}
.footer-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;padding-block:28px;margin-top:40px;border-top:1px solid var(--line);color:var(--dim);font-size:.88rem}
.footer-base p{margin:0}
@media (min-width:900px){.footer-grid{grid-template-columns:2fr 1fr 1fr}}

/* Fixed ticket pill: never animates, never moves */
.cta-pill{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:var(--z-front);
  display:inline-flex;align-items:center;gap:12px;height:var(--pill-h);padding:0 10px 0 28px;border-radius:999px;white-space:nowrap;
  background:var(--orange);color:var(--bg);text-decoration:none;font:780 1.08rem/1 var(--font);font-stretch:112%;
  box-shadow:0 14px 34px color-mix(in srgb,var(--bg) 45%,transparent);transition:opacity .25s}
.cta-pill-meta{display:inline-flex;align-items:center;height:44px;padding:0 16px;border-radius:999px;background:color-mix(in srgb,var(--bg) 14%,transparent);font-weight:650;font-size:.92rem;font-stretch:100%}
.cta-pill.is-hidden{opacity:0;pointer-events:none}
@media (min-width:900px){.cta-pill{left:auto;right:28px;bottom:28px;transform:none}body{padding-bottom:0}}

/* Motion states (only once motion.js has taken over) */
.motion [data-lights] img,.motion [data-hero-light] img{filter:grayscale(var(--g,0)) brightness(var(--b,1))}

@media (prefers-reduced-motion: reduce) {
  * {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
.motion-off * {animation:none!important;transition:none!important;scroll-behavior:auto!important}
.motion-off [data-lights] img,.motion-off [data-hero-light] img{filter:none!important}
.motion-toggle{background:none;border:0;padding:0;min-height:44px;color:var(--dim);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:4px}

/* Inner pages */
.page-head{position:relative;isolation:isolate;overflow:hidden;padding:clamp(120px,18vh,180px) 0 clamp(36px,6vw,64px);border-bottom:1px solid var(--line)}
.page-head-img{min-height:70svh;display:flex;align-items:flex-end}
.page-head-media,.page-head-media picture,.page-head-media img{position:absolute;inset:0;width:100%;height:100%}
.page-head-media{z-index:var(--z-back)}.page-head-media img{object-fit:cover}
.page-h{font-size:clamp(2.6rem,10vw,7rem);max-width:14ch;margin-bottom:18px}
.page-lead{font-size:clamp(1.08rem,2.2vw,1.35rem);max-width:46ch;margin:0}

.section-pad-sm{padding-block:clamp(40px,7vw,90px)}
.block-h-gap{margin-top:56px}
.after-list{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:40px;color:var(--dim)}
.after-list p{margin:0}
.prose-wrap{display:grid;gap:40px;padding-block:clamp(40px,7vw,90px)}
.prose{max-width:68ch}
.prose h2{font-size:clamp(1.5rem,4.5vw,2.2rem);margin:44px 0 14px}
.prose h2:first-child{margin-top:0}
.prose ul{padding-left:1.1em;display:grid;gap:8px}
.side-ctas{display:grid;gap:12px;align-content:start}
@media (min-width:1000px){.prose-wrap{grid-template-columns:minmax(0,1fr) 360px}.side-ctas{position:sticky;top:24px}}
.next-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;text-decoration:none;border:1px solid var(--line);border-radius:var(--radius)}
.next-strip > span:first-child{display:grid;gap:2px}
.next-strip > span:first-child span{color:var(--dim);font-size:.95rem}
.next-night{padding-block:clamp(48px,8vw,100px)}
.plain-list{list-style:none;padding:0!important;margin:0 0 1em;display:grid;gap:10px}
.card-grid{list-style:none;margin:0;padding:0;display:grid;gap:22px}
@media (min-width:700px){.card-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.card-grid{grid-template-columns:repeat(3,1fr)}}
.photo-card{display:grid;gap:6px;text-decoration:none}
.photo-card-media{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;margin-bottom:6px}
.photo-card-media picture,.photo-card-media img{width:100%;height:100%;object-fit:cover}
.photo-card-title{font-weight:780;font-stretch:115%;font-size:1.25rem}
.photo-card-meta{color:var(--dim);font-size:.95rem}
.venue-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.venue-list a{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 20px;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none}
.venue-list strong{font-size:clamp(1.4rem,4vw,2.2rem);font-stretch:120%;font-weight:800;line-height:1}
.venue-list span{color:var(--dim);align-self:end}
.venue-list a:hover strong{color:var(--orange)}
.dj-list-page{margin-bottom:0}

/* Gallery */
.gallery-tag{color:var(--dim);margin-top:14px}

.gallery{padding-block:28px 10px}
.gallery-grid{list-style:none;margin:0;padding:0;columns:2 160px;column-gap:8px}
@media (min-width:900px){.gallery-grid{columns:4 220px;column-gap:12px}}
.gallery-grid li{break-inside:avoid;margin-bottom:8px}
@media (min-width:900px){.gallery-grid li{margin-bottom:12px}}
.gallery-grid a{display:block;border-radius:10px;overflow:hidden;background:var(--night-2)}
.gallery-grid img{width:100%;transition:transform .4s}
.gallery-grid a:hover img{transform:scale(1.03)}
.gallery-fine{color:var(--dim);font-size:.92rem;margin-top:24px}

.lightbox{border:0;padding:0;max-width:100vw;max-height:100vh;width:100vw;height:100svh;background:color-mix(in srgb,var(--bg) 96%,transparent);color:var(--white)}
.lightbox::backdrop{background:color-mix(in srgb,var(--bg) 96%,transparent)}
.lightbox[open]{display:flex;flex-direction:column}
.lightbox img{flex:1;min-height:0;width:100%;object-fit:contain;padding:16px}
.lb-bar{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:12px 12px calc(14px + env(safe-area-inset-bottom))}
.lb-btn{background:transparent;color:var(--white);border:1px solid color-mix(in srgb,var(--ink) 30%,transparent);border-radius:999px;padding:10px 16px;font:600 .95rem var(--font);text-decoration:none;cursor:pointer}
.lb-count{color:var(--dim);min-width:5em;text-align:center}

/* Forms */
.chooser-q{font-weight:700;font-size:1.15rem}
.forms{display:grid;gap:28px;margin-top:40px}
.book-form,.list-page .list-form{display:grid;gap:14px;padding:24px;max-width:640px;scroll-margin-top:24px}
.book-form label,.list-page .list-form label{display:grid;gap:6px;font-size:.95rem;font-weight:600}
.book-form input:not([type=radio]):not([type=checkbox]),.book-form select,.book-form textarea{min-height:50px;padding:10px 14px;border-radius:12px;border:1px solid color-mix(in srgb,var(--ink) 22%,transparent);background:color-mix(in srgb,var(--bg) 55%,transparent);color:var(--white);font:inherit}
.book-form fieldset{border:0;padding:0;margin:0;display:grid;gap:8px}
.book-form legend{font-weight:600;font-size:.95rem;margin-bottom:6px}
.book-form .check{grid-template-columns:22px 1fr;align-items:center;min-height:44px;font-weight:500}
.book-form .check input{width:20px;height:20px;margin:0;accent-color:var(--orange)}
.book-form .btn,.list-form .btn{justify-self:start}
.form-done{padding:24px;max-width:640px;display:grid;gap:12px;justify-items:start}
.list-page{display:grid;gap:20px}

/* Dashboard */
.dash-legend{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:10px 22px;color:var(--dim);font-size:.95rem}
.dash-legend li{display:flex;align-items:center;gap:8px}
.dot{display:inline-block;width:11px;height:11px;border-radius:50%;flex:none}
.dot-ready{background:var(--ink)}
.dot-placeholders{background:var(--dim)}
.dot-waiting{background:var(--orange)}
.dash-grid{display:grid;gap:40px;padding-block:40px 80px}
@media (min-width:1000px){.dash-grid{grid-template-columns:minmax(0,1fr) 380px}.dash-grid aside{position:sticky;top:24px;align-self:start}}
.dash-group{margin-bottom:40px}
.dash-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.dash-list a{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line);text-decoration:none}
.dash-list a:hover{background:color-mix(in srgb,var(--ink) 3%,transparent)}
.dash-name{font-weight:700}
.dash-note{grid-column:2;color:var(--dim);font-size:.92rem}
.dash-note:empty{display:none}
.dash-box{padding:22px;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:16px}
.dash .cta-pill{display:none}

.book-more{margin:28px 0 0}
.panel-copy .btn{margin-top:8px}
@media (max-width:599px){.city-list a{flex-direction:column;gap:4px}.city-list span{font-size:clamp(2.2rem,11vw,3.4rem)}}
.book .proof{padding-top:8px}
.lineup{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.lineup li{padding:16px 0;border-bottom:1px solid var(--line);font-size:clamp(1.3rem,3vw,1.9rem);font-weight:780;font-stretch:115%;line-height:1.15}
.lineup .b2b{color:var(--dim);font-size:.6em;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-inline:.3em}
.countdown{color:var(--ink);font-weight:600}

/* Close: the page resolves on the night itself, with the one action.
   Signature move (desktop with a mouse): the photo waits in black and white and the
   visitor's pointer is the light that switches it to colour. Phones, reduced motion
   and Motion off get the full-colour photo, still. */
.close{position:relative;isolation:isolate;min-height:88svh;display:flex;align-items:center;overflow:hidden;margin-top:clamp(40px,8vw,96px)}
.close-media,.close-media picture,.close-media img,.close-colour{position:absolute;inset:0;width:100%;height:100%}
.close-media{z-index:var(--z-back)}
.close-media img{object-fit:cover;object-position:50% 45%}
.close-colour{display:none}
.close::after{content:"";position:absolute;inset:0;z-index:var(--z-back);pointer-events:none;background:radial-gradient(ellipse 60% 55% at 50% 50%,color-mix(in srgb,var(--bg) 72%,transparent),transparent 75%),linear-gradient(180deg,var(--bg) 0%,transparent 22%,transparent 78%,var(--bg) 100%)}
.close-inner{position:relative;z-index:var(--z-mid);text-align:center;display:flex;flex-direction:column;align-items:center;padding-block:96px}
.close-h{font-size:var(--h2);max-width:14ch;margin-bottom:18px;text-shadow:0 2px 24px color-mix(in srgb,var(--bg) 80%,transparent)}
.close-sub{font-size:1.1rem;font-weight:600;max-width:40ch;margin-bottom:26px;text-shadow:0 1px 12px color-mix(in srgb,var(--bg) 90%,transparent)}
@media (hover:hover) and (pointer:fine){
  .motion .close-media > picture img{filter:grayscale(1) brightness(.62)}
  .motion .close-colour{display:block;-webkit-mask-image:radial-gradient(circle var(--spot-r,0px) at var(--mx,50%) var(--my,50%),#000 35%,transparent 100%);mask-image:radial-gradient(circle var(--spot-r,0px) at var(--mx,50%) var(--my,50%),#000 35%,transparent 100%)}
}

/* ===== Layering, more visible (Josh, 11 Nov): back = photo, middle = glass text cards, front = Get tickets.
   Text cards straddle the seam between sections so the page reads as layers, not stacked boxes. ===== */
.night{position:relative;z-index:var(--z-mid);isolation:isolate}
.night .panel{isolation:auto;overflow:visible;min-height:84svh}
.night .panel-media{overflow:hidden}
.night .panel::after{pointer-events:none}
.night .panel-copy{padding-bottom:0}
.panel-card{position:relative;z-index:var(--z-mid);max-width:520px;padding:clamp(22px,3vw,34px);margin-bottom:clamp(-120px,-12vw,-72px);
  box-shadow:0 24px 60px color-mix(in srgb,var(--bg) 70%,transparent),0 2px 0 color-mix(in srgb,var(--ink) 6%,transparent) inset}
.panel-card .panel-h{font-size:clamp(1.9rem,5vw,3.6rem);max-width:none}
.panel-card p{max-width:none}
.panel-card p,.panel-card .panel-h{text-shadow:none}
@media (min-width:900px){.panel-right .panel-card{margin-left:auto}}
.night + .list-signup{padding-top:calc(clamp(72px,12vw,120px) + clamp(28px,4vw,56px))}
.night .panel + .panel .panel-media{top:0}
/* The hero card hangs deeper and the statement sits on its own plate between hero and panels */
.home .next-card{box-shadow:0 30px 70px color-mix(in srgb,var(--bg) 78%,transparent)}
/* Motion layer sizes: images get headroom so parallax never shows an edge */
.motion [data-depth-back] img,.motion .night .panel-media img,.motion .hero-media img{transform:scale(1.06);will-change:transform}
.motion [data-reveal-wipe] .panel-media{clip-path:inset(8% 5% round 28px)}
.kin-w{display:inline}

/* Interactive layer wrappers: pointer depth moves these; scroll moves their children. */
.panel-media{will-change:transform}
.reel-track.is-drag{cursor:grabbing;scroll-snap-type:none}
.reel-track{cursor:grab}
.motion .reel-card .reel-media{overflow:hidden}
.cities,.night{overflow-x:clip}
.panel-media.pos-top img{object-position:50% 34%}
.panel-media.pos-faces img{object-position:50% 22%}

/* Next night: one big featured event box (Glasshouse usually has one night on sale at a time) */
.feature{display:grid;overflow:hidden;border-radius:24px;padding:0}
.feature-media{position:relative;display:block;min-height:260px;overflow:hidden}
.feature-media picture,.feature-media img{position:absolute;inset:0;width:100%;height:100%}
.feature-media img{object-fit:cover;object-position:50% 38%}
.feature-date{position:absolute;left:18px;top:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:84px;height:92px;border-radius:16px;
  background:color-mix(in srgb,var(--bg) 82%,transparent);border:1px solid var(--line);line-height:1}
.feature-date span{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--soft)}
.feature-date strong{font-size:2.3rem;font-weight:860;font-stretch:115%;margin:4px 0}
.feature-body{padding:clamp(22px,3.4vw,44px)}
.feature-count{margin:0 0 8px;min-height:1.3em;font-weight:650}
.feature-count span{color:var(--soft)}
.feature-name{font-size:clamp(1.9rem,4.4vw,3.3rem);line-height:1;margin-bottom:14px}
.feature-name a{text-decoration:none}
.feature-hype{font-size:1.1rem;max-width:44ch;margin-bottom:22px}
.feature-facts{display:grid;gap:0;margin:0 0 26px;border-top:1px solid var(--line)}
.feature-facts div{display:grid;grid-template-columns:6.5em 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.feature-facts dt{color:var(--soft)}
.feature-facts dd{margin:0;font-weight:600}
.feature-lineup{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.feature-actions{display:flex;flex-wrap:wrap;gap:12px}
@media (min-width:900px){.feature{grid-template-columns:1.15fr 1fr;min-height:560px}.feature-media{min-height:100%}}
@media (max-width:899px){.feature-media{min-height:340px}}

/* Event flyer in the Next night box: shown whole (3:4), never cropped */
.feature-flyer{aspect-ratio:3/4;min-height:0!important;background:var(--bg)}
.feature-flyer img{object-fit:cover;object-position:50% 50%}
@media (min-width:900px){.feature{grid-template-columns:minmax(0,.85fr) minmax(0,1fr);align-items:center;min-height:0}.feature-flyer{height:100%;aspect-ratio:auto}.feature-flyer img{object-fit:contain}}
@media (min-width:900px){.feature{grid-template-columns:minmax(0,3fr) minmax(0,4fr);align-items:stretch}.feature-flyer{height:auto;aspect-ratio:3/4}.feature-flyer img{object-fit:cover}.feature-body{align-self:center}}
.tix-tiers{list-style:none;margin:0 0 16px;padding:0;border-top:1px solid var(--line)}
.tix-tiers li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 0;border-bottom:1px solid var(--line)}
.tix-tiers strong{font-size:1.4rem}
.tix-tiers small{grid-column:1 / -1;color:var(--soft)}

/* Giveaways page */
.give-grid{display:grid;gap:24px}
@media (min-width:960px){.give-grid{grid-template-columns:1.1fr 1fr;align-items:start}}
.give-card{padding:clamp(22px,3.4vw,40px);border-radius:24px}
.give-tag{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--soft);margin:0 0 8px}
.give-h{font-size:clamp(1.9rem,4.2vw,3rem);line-height:1;margin-bottom:10px}
.give-when{margin-bottom:22px}
.give-sub{font-size:1.15rem;margin-bottom:10px}
.give-prizes{list-style:none;margin:0 0 20px;padding:0;border-top:1px solid var(--line)}
.give-prizes li{padding:14px 0;border-bottom:1px solid var(--line);font-size:1.15rem;font-weight:650}
.give-facts{display:grid;margin:0 0 24px}
.give-facts div{display:grid;grid-template-columns:6.5em 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.give-facts dt{color:var(--soft)}.give-facts dd{margin:0}
.give-five{font-size:1.05rem;margin-bottom:16px}
.give-past{list-style:none;margin:0;padding:0;display:grid;gap:16px}
@media (min-width:700px){.give-past{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.give-past{grid-template-columns:repeat(3,1fr)}}
.give-past li{padding:22px;border-radius:20px}
.give-past h3{font-size:1.3rem;margin-bottom:8px}
.give-past p:last-child{margin-bottom:0}
.give-brand{margin-top:24px}
.rules-list{display:grid;gap:10px;max-width:70ch;padding-left:1.2em}
[hidden]{display:none!important}
.page-head-inner{position:relative;z-index:var(--z-mid)}
.dash-list .dash-off{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center;padding:16px 4px;border-bottom:1px solid var(--line);opacity:.55}
.dot-later{background:transparent;border:1px solid var(--dim)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-error{color:var(--ink);font-weight:600;margin:4px 0 0}
.form-error a{color:var(--accent)}
.ig-embeds{display:grid;gap:18px;margin:18px 0 8px}
@media (min-width:700px){.ig-embeds{grid-template-columns:1fr 1fr}}
.ig-embed{width:100%;max-width:420px;aspect-ratio:9/16;min-height:560px;border:0;border-radius:16px;background:var(--night-2,#16181f)}
.night + section{padding-top:calc(clamp(72px,12vw,120px) + clamp(28px,4vw,56px))}
a.is-opening{position:relative;pointer-events:none}
a.is-opening::after{content:"";width:1em;height:1em;margin-left:.6em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;vertical-align:-.15em;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
