/* HI LIFE editorial direction: airy colour, structured programme, portrait-led artists. */
:root{--editorial-rule:rgba(0,0,0,.22)}
body{color:#000;background:#f6f6f0}
body:before{background:radial-gradient(ellipse at 8% 12%,#dcefeb 0,transparent 46%),radial-gradient(ellipse at 95% 35%,#e6def3 0,transparent 47%),radial-gradient(ellipse at 25% 80%,#f0e4d4 0,transparent 45%)}
.wrap{max-width:1440px;margin-inline:auto;padding-inline:5%}
.section-heading{align-items:end;border-top:1px solid var(--editorial-rule);padding-top:22px;margin-bottom:32px}
.section-heading h2,.stories-heading h2{font-size:clamp(38px,5.4vw,76px);font-weight:900;line-height:.98;letter-spacing:-.055em}
.section-heading a{font-size:12px;text-transform:uppercase;font-weight:700;white-space:nowrap}
.hi-hero{min-height:calc(92svh - 100px)}
.hi-hero .kinetic-caption{letter-spacing:.12em;max-width:90%}
.menu-shell{border-radius:4px}.menu-shell nav{border-radius:0 0 4px 4px}.menu-shell nav a{border-bottom:1px solid #ffffff30;padding-block:11px}
.header-visit{border-radius:2px;border:1px solid #000;background:transparent}
.stories-section{padding-inline:5%}.stories-heading{text-align:left;max-width:1296px;margin-inline:auto;border-top:1px solid var(--editorial-rule);padding-top:22px}
.story-stack{max-width:1296px}.story-panel{border-radius:4px!important;height:clamp(350px,63svh,650px)}
.real-story .story-panel-copy{left:32px;bottom:30px;display:block}.real-story .story-panel-copy h3{font-size:clamp(32px,4.2vw,60px);max-width:650px;line-height:.98;letter-spacing:-.045em;margin:0}
#home-events{padding-top:45px;padding-bottom:70px}
#home-events .venue-heading{padding-top:42px;margin-bottom:12px}
.event-stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding-bottom:0}
.event-stack .event-panel{position:relative;top:auto;margin:0;opacity:1;transform:none;min-width:0;align-self:stretch}
.event-stack .event-panel:first-child{grid-column:1/-1}
.featured-event.event-board{border-radius:4px;border:1px solid rgba(0,0,0,.1);box-shadow:none}
.event-board .featured-info{padding:26px 30px 30px}
.event-board-main{grid-template-columns:1fr 1fr;gap:40px}
.event-board-title h3{font-size:clamp(48px,6vw,80px);letter-spacing:-.06em;line-height:.94;margin:0 0 24px}
.event-board .event-weekday{font-size:26px;letter-spacing:-.03em;margin:0 0 5px}
.event-board .event-calendar-date{font-size:19px}.event-doors{font-size:11px;letter-spacing:.06em}
.event-board .featured-date{margin-bottom:22px}.event-board .featured-cta{border-radius:0;background:transparent;color:#000;padding:0 0 7px;border:0;border-bottom:1px solid #000;font-size:11px}
.event-board-programme{align-self:center}.featured-lineup-label{font-size:10px;border-bottom:1px solid var(--editorial-rule);padding-bottom:12px}
.board-lineup>a{gap:14px;padding-block:12px}.board-lineup .board-set-time{font-size:25px;min-width:96px}.board-lineup .board-dj-name{font-size:25px}
.event-stack .event-panel:not(:first-child) .featured-info{padding:25px}
.event-stack .event-panel:not(:first-child) .event-board-main{grid-template-columns:1fr;gap:20px}
.event-stack .event-panel:not(:first-child) .event-board-title{display:grid;grid-template-columns:1fr auto;gap:12px}
.event-stack .event-panel:not(:first-child) .event-board-title h3{font-size:38px;grid-column:1;margin:0;align-self:end}
.event-stack .event-panel:not(:first-child) .featured-date{grid-column:2;grid-row:1/3;text-align:right;margin:0}
.event-stack .event-panel:not(:first-child) .event-weekday{font-size:19px}
.event-stack .event-panel:not(:first-child) .event-calendar-date{font-size:15px}
.event-stack .event-panel:not(:first-child) .featured-cta{justify-self:start;grid-column:1;font-size:10px}
.event-stack .event-panel:not(:first-child) .board-lineup>a{padding-block:10px}
.event-stack .event-panel:not(:first-child) .board-dj-name,.event-stack .event-panel:not(:first-child) .board-set-time{font-size:20px}
.venue-note{font-size:10px!important;margin-top:16px}
.destination-grid{gap:18px}.destination{border-radius:4px;min-height:370px;padding:24px}.destination h3{font-size:clamp(32px,3.6vw,50px)}
.residents-section .artist-grid{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 54px)/4);grid-template-columns:none;gap:18px;overflow-x:auto;padding-bottom:24px;scroll-snap-type:x mandatory;scrollbar-color:#000 #0001;scrollbar-width:thin}
.artist-card{min-width:0;scroll-snap-align:start}.portrait{height:auto;aspect-ratio:3/4;border-radius:3px;background-image:url('assets/artist-concept.png');background-size:auto 394%;background-position:13.4% 33.64%;background-repeat:no-repeat;overflow:hidden}
.portrait img{opacity:0}.portrait.p1{background-position:50.4% 33.64%}.portrait.p2{background-position:86.4% 33.64%}.portrait.p3{background-position:13.4% 80.76%}.portrait.p4{background-position:50.4% 80.76%}.portrait.p5{background-position:86.4% 80.76%}
.artist-name{margin-top:12px}.artist-name h2,.directory-grid .artist-name h2{font-size:clamp(22px,2.6vw,34px);font-weight:900;letter-spacing:-.045em;color:#000}.artist-card>p{font-size:10px;line-height:1.6;color:#000;margin-top:6px}
.directory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 20px}.artist-directory .dj-tools{position:sticky;top:107px;z-index:8;background:#f3f3ecf5;backdrop-filter:blur(14px);padding:16px 0;border-block:1px solid var(--editorial-rule)}
.dj-tools input,.dj-tools select{border-radius:0;background:transparent;border:0;border-bottom:1px solid #000}
.inside-section{margin:40px 5% 80px;border-radius:4px;overflow:hidden}.inside-art{min-height:450px}.inside-copy{padding:40px}
.community-section{border-radius:4px;margin:0 5% 70px;padding:40px}.community-channel{border-radius:2px!important}.sponsor-strip{border-top:1px solid var(--editorial-rule)}
@media(max-width:900px){.event-board-main{gap:24px}.event-stack .event-panel:not(:first-child) .event-board-title{display:block}.event-stack .event-panel:not(:first-child) .featured-date{text-align:left;margin:16px 0}.residents-section .artist-grid{grid-auto-columns:calc((100% - 36px)/3)}.artist-directory .dj-tools{top:100px}}
@media(max-width:600px){.section-heading{gap:15px;align-items:end}.section-heading a{font-size:9px}.section-heading h2,.stories-heading h2{font-size:39px}.event-stack{grid-template-columns:1fr}.event-board-main{grid-template-columns:1fr;gap:24px}.event-board .featured-info{padding:22px}.event-board-title h3{font-size:52px}.event-board .event-weekday{font-size:23px}.event-stack .event-panel:not(:first-child) .event-board-title{display:grid}.event-stack .event-panel:not(:first-child) .featured-date{text-align:right;margin:0}.event-stack .event-panel:not(:first-child) .event-board-title h3{font-size:31px}.event-stack .event-panel:not(:first-child) .event-weekday{font-size:16px}.event-stack .event-panel:not(:first-child) .event-doors{font-size:9px}.board-lineup .board-dj-name{font-size:23px}.residents-section .artist-grid{grid-auto-columns:72%}.directory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px}.artist-name h2,.directory-grid .artist-name h2{font-size:23px}.artist-card>p{font-size:9px}.real-story .story-panel-copy{left:22px;bottom:25px}.real-story .story-panel-copy h3{font-size:34px}.inside-section{grid-template-columns:1fr}.inside-art{min-height:350px}.community-section{padding:25px}.community-section h2{font-size:54px}.destination{min-height:340px}.artist-directory .dj-tools{top:95px}.hi-hero .kinetic-caption{font-size:10px!important}}
.artist-grid .artist-card .portrait{aspect-ratio:3/4;height:auto}
main:focus{outline:none}
.artist-grid .artist-card .portrait{aspect-ratio:3/4!important}
.artist-grid .portrait{background-size:auto 416%;background-position-y:33%}.artist-grid .portrait.p3,.artist-grid .portrait.p4,.artist-grid .portrait.p5{background-position-y:79.3%}
/* Story cards measured against Hï Ibiza residency cards. */
.stories-section .story-stack{width:100%;max-width:672px}
.stories-section .story-panel.real-story{height:auto;min-height:0;aspect-ratio:2/3;border-radius:36px!important;background:#151515;color:#fff}
.story-panel.real-story:after{background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.12) 62%,rgba(0,0,0,.76) 100%)}
.stories-section .real-story .story-panel-copy{left:32px;right:32px;bottom:56px;display:block;text-align:center;color:#fff}
.stories-section .real-story .story-panel-copy h3{max-width:none;margin:0;color:#fff;font-size:40px;font-weight:700;line-height:1;letter-spacing:normal;text-align:center}
@media(min-width:640px){.stories-section .story-stack{max-width:768px}.stories-section .story-panel.real-story{aspect-ratio:3/2}}
@media(min-width:768px){.stories-section .real-story .story-panel-copy h3{font-size:44px}}
@media(min-width:1024px){.stories-section .story-stack{max-width:896px}}
@media(min-width:1536px){.stories-section .story-stack{max-width:1024px}}
/* Sequential welcome and quiet terminal-style season animation. */
.header-calendar{position:absolute;left:4%;top:42px;font:12px/1.2 Menlo,Consolas,'Liberation Mono',monospace;letter-spacing:.03em;color:#000;text-decoration:none;z-index:2}
.header-calendar:hover{text-decoration:underline;text-underline-offset:5px}
.hi-hero{position:relative;min-height:calc(100svh - 130px);padding:32px 5% 100px;justify-content:flex-start}
.hi-hero .welcome-title{width:100%;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:clamp(58px,11.25vw,180px);font-weight:700;line-height:.86;letter-spacing:-.055em;margin:0;padding-top:18px;color:#000}
.welcome-line{display:block!important;white-space:nowrap;overflow:hidden;padding-bottom:.09em}
.welcome-title .welcome-line>span{display:inline-block;animation:welcome-reveal .75s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--word)*.25s)}
.season-code{position:relative;display:flex;flex-direction:column;align-items:center;gap:13px;margin-top:72px;font:10px/1.4 Menlo,Consolas,'Liberation Mono',monospace;letter-spacing:.04em;color:#000;min-height:35px}
.season-label{animation:season-resolve 1.9s steps(1,end) both}
.code-scramble{position:absolute;top:0;white-space:nowrap;animation:code-hide 1.9s steps(1,end) forwards}.code-scramble:before{content:'S3A50N / 20X6';animation:code-text 1.9s steps(1,end) forwards}
.season-loader{display:block;width:106px;height:2px;background:#0002;overflow:hidden}.season-loader i{display:block;width:34%;height:100%;background:#000;animation:season-scan 2.8s ease-in-out infinite}
.hi-hero .kinetic-caption{margin:25px 0 0;font:9px/1.5 Menlo,Consolas,'Liberation Mono',monospace!important;letter-spacing:.08em}
.motion-paused .welcome-title span,.motion-paused .season-code *,.motion-paused .code-scramble:before{animation-play-state:paused!important}
@keyframes welcome-reveal{from{opacity:0;transform:translateY(105%)}to{opacity:1;transform:translateY(0)}}
@keyframes season-resolve{0%{opacity:0}100%{opacity:1}}
@keyframes code-hide{0%{opacity:1}100%{opacity:0}}
@keyframes code-text{0%{content:'5X / 0X10 //'}25%{content:'S3AS0N 2X6_'}50%{content:'SEAS0N 20X6'}75%{content:'SEASON 202_'}100%{content:'SEASON 2026'}}
@keyframes season-scan{0%,100%{transform:translateX(-110%)}60%{transform:translateX(300%)}}
@media(max-width:700px){.header-calendar{top:94px;left:5%;font-size:10px}.hi-hero{padding-top:65px;min-height:calc(95svh - 100px)}.hi-hero .welcome-title{font-size:11.25vw;line-height:.95}.season-code{margin-top:65px}.hi-hero .kinetic-caption{max-width:270px;margin-top:24px}.header-calendar{padding:8px 0}}
@media(prefers-reduced-motion:reduce){.welcome-title .welcome-line>span,.season-label,.season-loader i{animation:none}.code-scramble{display:none}.season-loader i{transform:none;width:100%}}
/* Centred identity, right-hand numbered navigation, matched utility typography. */
header{height:88px;min-height:88px;max-width:none;width:100%;padding:0 3.2%;display:block}
header .menu-shell,header .menu-shell.is-open{display:contents;background:none;color:#000}
header .menu-shell .logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
header .menu-shell .logo img{width:105px;filter:none}header .menu-shell .logo span{display:none}
header .header-calendar,header .header-visit,header .menu-shell .menu-toggle{font:400 12px/1.2 Menlo,Consolas,'Liberation Mono',monospace;letter-spacing:.03em;text-transform:uppercase;color:#000;background:transparent;border:0;border-radius:0;padding:10px 0;margin:0;position:absolute;top:50%;transform:translateY(-50%);min-width:0}
header .header-calendar{left:3.2%}header .header-visit{right:calc(3.2% + 105px)}header .menu-shell .menu-toggle{right:3.2%;display:flex;gap:12px;align-items:center}
.menu-toggle:after{content:'';display:block;width:16px;height:10px;border-block:1px solid;box-shadow:inset 0 4px transparent;background:linear-gradient(currentColor,currentColor) center/100% 1px no-repeat}
.menu-toggle[aria-expanded=true]:after{height:0;border-bottom:0;background:none}
header .menu-shell nav{position:absolute;left:auto;right:3.2%;top:78px;width:338px;max-width:calc(100vw - 32px);max-height:calc(100svh - 110px);padding:24px 18px 30px;border-radius:3px;background:#e6e5e1;color:#000;box-shadow:0 12px 50px #0002;display:flex;flex-direction:column;gap:0;animation:menu-enter .25s ease-out;z-index:102;counter-reset:none;overflow:auto}
header .menu-shell nav[hidden]{display:none}
header .menu-shell nav a,header .menu-shell nav a:last-child{display:flex;gap:12px;align-items:baseline;color:#222;font:700 28px/1.35 'Helvetica Neue',Helvetica,Arial,sans-serif;letter-spacing:-1px;border:0;padding:0;text-transform:uppercase;transition:transform .18s,color .18s}
header .menu-shell nav a:hover,header .menu-shell nav a.active{color:#000;transform:translateX(4px)}
header .menu-shell nav .menu-number{font:9px/1.2 Menlo,Consolas,monospace;letter-spacing:0;min-width:16px;color:#555}
.menu-caption,.menu-foot{font:10px/1.6 Menlo,Consolas,monospace;letter-spacing:.03em;color:#444}.menu-caption{margin-bottom:36px}.menu-foot{margin-top:38px}
@keyframes menu-enter{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
/* Repeating ten-character typing, hold, erase and blinking underscore. */
.code-scramble{display:none}.season-typing{display:flex;align-items:baseline;height:16px;font:12px/16px Menlo,Consolas,'Liberation Mono',monospace;letter-spacing:0}
.season-typing>span{display:block;overflow:hidden;white-space:nowrap;width:0;animation:season-type 7s steps(10,end) infinite}
.season-typing>i{font-style:normal;animation:season-cursor .65s steps(1,end) infinite}
@keyframes season-type{0%,8%{width:0}43%,78%{width:10ch}94%,100%{width:0}}
@keyframes season-cursor{0%,49%{opacity:1}50%,100%{opacity:0}}
/* Stories follow the programme in a simple two-column editorial grid. */
.stories-section{padding-top:50px;padding-bottom:75px}
.stories-section .stories-heading{margin-bottom:30px}
.stories-section .story-stack{max-width:1296px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-bottom:0}
.stories-section .story-panel.real-story{position:relative;top:auto;aspect-ratio:3/2;height:auto;margin:0;opacity:1;transform:none;border-radius:3px!important;min-width:0}
.stories-section .real-story .story-panel-copy{left:24px;right:24px;bottom:30px}
.stories-section .real-story .story-panel-copy h3{font-size:clamp(24px,2.5vw,36px);line-height:1.05}
@media(max-width:700px){header{height:100px;min-height:100px}header .menu-shell .logo{top:25px}header .menu-shell .logo img{width:90px}header .header-calendar,header .header-visit,header .menu-shell .menu-toggle{top:72px;font-size:10px}header .header-calendar{left:5%}header .header-visit{right:calc(5% + 68px)}header .menu-shell .menu-toggle{right:5%;gap:6px}.menu-toggle:after{width:12px}header .menu-shell nav{top:98px;right:5%;width:338px;max-width:90vw}.hi-hero{padding-top:38px}.stories-section .story-stack{grid-template-columns:1fr;gap:24px}.stories-section .real-story .story-panel-copy{bottom:25px;left:18px;right:18px}.stories-section .real-story .story-panel-copy h3{font-size:27px}.stories-section{padding-bottom:45px}}
@media(prefers-reduced-motion:reduce){.season-typing>span{animation:none;width:10ch}.season-typing>i{animation:none}header .menu-shell nav{animation:none}}
header .menu-shell.is-open .logo img{filter:none!important}header .menu-shell.is-open .menu-toggle{color:#000;background:transparent}header .menu-shell nav{align-items:stretch;text-align:left}header .menu-shell nav a{justify-content:flex-start}
.menu-languages{display:flex;align-self:flex-start;gap:2px;padding:4px;background:#0000000c;border-radius:4px;margin-bottom:40px}
.menu-languages .language-option{border:0;border-radius:2px;background:transparent;color:#666;font:11px/1 Menlo,Consolas,monospace;padding:9px 12px;min-width:40px;cursor:pointer}
.menu-languages .language-option[aria-pressed=true]{background:#f7f7f3;color:#111;box-shadow:0 1px 4px #0000000a}
.menu-languages .language-option:hover{color:#000;background:#ffffff70}
.menu-languages .language-option:focus-visible{outline:1px solid #000;outline-offset:2px}
/* Shared HI LIFE type system and dark club direction. */
:root{--hi-display:'Helvetica Neue',Helvetica,Arial,sans-serif;--hi-mono:Menlo,Consolas,'Liberation Mono',monospace;--editorial-rule:#ffffff30;--ink:#f3f2ed;--muted:#b3b3ae;--paper:#212121}
body{background:var(--paper);color:var(--ink);font-family:var(--hi-display)}body:before,.hi-hero .ambient{display:none}
body h1,body h2,body h3,body h4,.hi-hero .welcome-title,.artist-name h2,.board-dj-name{font-family:var(--hi-display)!important;font-weight:700;color:var(--ink);letter-spacing:-.045em}
a{color:inherit}p,.small,.eyebrow{color:inherit}
.eyebrow,.small,.preview-bar,.header-left a,.header-visit,.menu-toggle,.menu-number,.menu-foot,.season-render,.kinetic-caption,.scroll-cue,.motion-toggle,.event-calendar-date,.event-doors,.board-set-time,.countdown,.featured-lineup-label,.section-heading>a,.featured-cta,.destination-link,.artist-card>p,.tags,.month-toolbar,.cell-date,.calendar-time,.calendar-more,.calendar-week-label,.weekdays,.back,.filters,.button,button,input,select,.footer-bottom,.interview-source{font-family:var(--hi-mono)!important;letter-spacing:.02em}
.preview-bar{background:#292929;color:#c4c4be;border:0}.preview-bar a{color:inherit}
header{position:sticky!important;top:0!important;z-index:1000!important;background:transparent!important;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;transform:none!important;opacity:1!important;visibility:visible!important;border:0}
header .menu-shell .logo img,header .menu-shell.is-open .logo img{filter:invert(1)!important}
header .header-visit,header .menu-shell .menu-toggle,header .menu-shell.is-open .menu-toggle{color:var(--ink);background:transparent}
.header-left{position:absolute;left:3.2%;top:50%;transform:translateY(-50%);display:flex;gap:28px;align-items:center}
header .header-left .header-calendar,header .header-left .header-updates{position:static;transform:none;top:auto;left:auto;font:400 12px/1.2 var(--hi-mono);letter-spacing:.03em;color:var(--ink);padding:10px 0;text-decoration:none}
.header-left a:before{content:'[ ';visibility:hidden}.header-left a:after{content:' ]';visibility:hidden}.header-left a.active:before,.header-left a.active:after{visibility:visible}
header .menu-shell nav{background:#d5d4d0;color:#212121}
header .menu-shell nav a,header .menu-shell nav a:last-child{font-family:var(--hi-display)!important;color:#212121;gap:7px}
header .menu-shell nav a.active:after{content:']';font-weight:400}header .menu-shell nav a.active .menu-number:after{content:' [';font-size:20px;color:#212121}
header .menu-shell nav a:hover{transform:translateX(3px)}
header .menu-languages button{font-family:var(--hi-mono)!important}.menu-foot{color:#494946}
.hi-hero,.hi-hero .welcome-title{color:var(--ink)}.season-code{color:#b4b4ae;font:10px/1.4 var(--hi-mono);min-height:14px}.season-render{display:block;min-width:170px;font:10px/1.4 var(--hi-mono);letter-spacing:0}.hi-hero .kinetic-caption{color:#b4b4ae}.motion-toggle,.scroll-cue{color:#b4b4ae!important;background:transparent}
html[lang=de] .hi-hero .welcome-title,html[lang=es] .hi-hero .welcome-title{font-size:9vw}
.featured-event.event-board{color:var(--ink);background:#2c2b28;border-color:#ffffff24}
.featured-event.venue-theme-garden{background:radial-gradient(ellipse at 100% 0%,#a56a3c 0%,transparent 65%),linear-gradient(125deg,#38261e,#704529)}.featured-event.venue-theme-wambo{background:radial-gradient(ellipse at 100% 0%,#237ca0 0%,transparent 65%),linear-gradient(125deg,#102d4c,#174d79)}.featured-event.venue-theme-clubroom{background:radial-gradient(ellipse at 100% 0%,#ff3026 0%,transparent 70%),linear-gradient(125deg,#740d13,#d21d20)}
.event-board .featured-info,.event-board .event-board-title h3,.event-board .event-weekday,.event-board .event-calendar-date,.event-board .event-doors,.event-board .featured-lineup-label,.event-board .board-lineup a,.event-board .board-set-time,.event-board .board-dj-name,.event-board .featured-cta,.event-board .countdown,.event-board .countdown strong,.event-board .countdown small,.event-board .countdown-wrap,.event-board .now-live-link,.event-board .now-live-link span{color:var(--ink)!important}
.event-board .featured-cta{background:transparent;border-color:#b4b4ae}.event-board-top,.board-lineup>a,.featured-lineup-label{border-color:#ffffff28}.board-lineup>a.is-playing:after{background:var(--ink)!important}.featured-info .countdown>span+span{border-color:#ffffff45}
.venue-note{color:var(--muted)}
/* UNVRS residents card proportions: 3:4, four cards across, horizontal rail. */
.stories-section{padding:65px 3.2% 80px}.stories-section .stories-heading{max-width:none;margin-bottom:22px;display:flex;align-items:center}.stories-heading h2{font-size:clamp(32px,3.2vw,48px)}
.story-rail-controls{display:flex;justify-content:flex-end;gap:10px;margin:-55px 0 27px;position:relative}
.story-rail-controls button{border:1px solid #ffffff50;color:var(--ink);background:transparent;border-radius:50%;width:32px;height:32px;cursor:pointer}
.stories-section .story-stack{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/4);gap:16px;max-width:none;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#d2d2cb #ffffff12;padding:0 0 16px;justify-content:start}
.stories-section .story-panel.real-story{aspect-ratio:3/4;scroll-snap-align:start;border-radius:3px!important;min-width:0;height:auto;opacity:1;transform:none;position:relative;top:auto;margin:0}
.stories-section .real-story .story-panel-copy{left:18px;right:18px;bottom:22px;text-align:left}.stories-section .real-story .story-panel-copy h3{font-size:clamp(22px,2vw,30px);text-align:left;color:#f3f2ed;line-height:1.02;font-weight:700}
.story-original-photo{opacity:1}.story-rail-controls button:hover{background:#ffffff15}
.destination,.destination.hero,.destination.garden,.destination.pool{color:var(--ink)!important;background-blend-mode:multiply;background-color:#727272}.destination h3,.destination p,.destination span{color:var(--ink)!important}.destination-link{border-color:#ffffff55}
.artist-card,.artist-name h2,.directory-grid .artist-name h2,.artist-card>p{color:var(--ink)!important}.artist-card>p{color:var(--muted)!important}.artist-directory .dj-tools{background:#212121f5;border-color:#ffffff30}.dj-tools input,.dj-tools select{color:var(--ink);border-color:#ffffff55}.dj-tools input::placeholder{color:#aaa}.dj-tools select option{background:#262626;color:var(--ink)}
.inside-section{background:#2a2a28;color:var(--ink)}.inside-copy,.inside-copy h3,.inside-copy p{color:var(--ink)}.community-section{background:#292a28;color:var(--ink)}.community-section h2,.community-section p,.community-section .eyebrow{color:var(--ink)}.community-channel{background:transparent!important;border:1px solid #ffffff35;color:var(--ink)!important}.community-channel h3{color:var(--ink)}.community-channel img{filter:grayscale(1) brightness(0) invert(1)}
.sponsor-strip{background:#212121;color:var(--muted);border-color:#ffffff25}.sponsor-bearded,.sponsor-rora{mix-blend-mode:screen}.sponsor-bearded img{filter:grayscale(1) contrast(4)}.sponsor-rora img{filter:grayscale(1) invert(1) contrast(3)}.sponsor-rora>span{color:var(--ink)}
footer{background:#1c1c1c;color:var(--ink)}footer .logo img{filter:invert(1)}footer a,footer p,footer span{color:inherit}.footer-bottom{border-color:#ffffff25}
.button,.button.dark,.button.outline,button.primary{color:var(--ink);background:transparent;border:1px solid #ffffff50}.button:hover{background:#ffffff14}
.page-intro p,.detail-copy p,.detail-copy strong,.detail-copy .eyebrow,.text-page p,.three-col p,.tags span,.next-set,.next-set dt,.next-set dd,.story-detail,.story-detail p,.story-detail h2{color:var(--ink)}.tags span,.next-set,.lineup-row{background:transparent;border-color:#ffffff35}.notice{background:#ffffff0b;color:#c7c7bf;border-color:#ffffff30}
.month-cell{background:#292929;color:var(--ink);border-color:#ffffff25}.month-cell.outside-month{background:#242424}.month-cell.open-stage-day{background:#252525}.month-cell.is-today{background:#3a3a33;outline-color:#ededde}.today-badge{background:#ededde;color:#212121}.calendar-pending h3,.calendar-pending p,.calendar-pending span,.cell-date{color:var(--ink)}.calendar-week-label,.weekdays{color:#bebeb8}.calendar-event{color:#fff;background-color:#777;background-blend-mode:multiply}.calendar-event h3,.calendar-event p,.calendar-event span{color:#fff}.month-arrow,.calendar-today-button{background:transparent;color:var(--ink);border-color:#ffffff45}
.panel{background:#292929;color:var(--ink);border-color:#ffffff25}.panel h2,.panel .small,.stepper span{color:var(--ink)}.panel select{background:#333;color:#fff}.status-row{border-color:#ffffff25}
@media(max-width:900px){.header-left{gap:10px}.stories-section .story-stack{grid-auto-columns:calc((100% - 32px)/3)}}
@media(max-width:700px){.header-left{left:5%;top:72px;gap:12px}header .header-left .header-calendar,header .header-left .header-updates{font-size:9px}.header-left a:before,.header-left a:after{display:none}.header-left a.active{outline:1px solid #ffffff66;outline-offset:3px}header .header-visit{font-size:9px;right:calc(5% + 62px)}header .menu-shell .menu-toggle{font-size:9px}.stories-section .story-stack{grid-auto-columns:72%;gap:16px}.stories-section .real-story .story-panel-copy h3{font-size:26px}.stories-heading h2{font-size:32px}.story-rail-controls{margin-top:-51px}.stories-section{padding:45px 5%}.season-code{margin-top:65px}.menu-foot{font-size:9px}}
header .header-visit{right:calc(3.2% + 145px)}
.calendar-week-label{background:#292929;border-color:#ffffff25}.month-grid{background:#242424;border-color:#ffffff25}.month-cell.is-today{box-shadow:inset 0 0 0 2px #eeeee3}.cell-date{background:transparent}
@media(max-width:700px){header .header-visit{right:calc(5% + 90px);font-size:8px}.header-left{gap:5px}.header-left a:before,.header-left a:after{display:inline}.header-left a.active{outline:none}header .header-left .header-calendar,header .header-left .header-updates{font-size:8px}header .menu-shell .menu-toggle{font-size:8px;gap:5px}.story-rail-controls{margin-top:0;margin-bottom:18px}.stories-section .stories-heading{margin-bottom:16px}}

/* Scroll-driven welcome exit; the fixed navigation is unaffected. */
.hi-hero>.welcome-title,.hi-hero>.season-code,.hi-hero>.kinetic-caption,.hi-hero>.motion-toggle,.hi-hero>.scroll-cue{opacity:var(--hero-opacity,1);translate:0 var(--hero-lift,0px)}
@media(prefers-reduced-motion:reduce){.hi-hero>.welcome-title,.hi-hero>.season-code,.hi-hero>.kinetic-caption,.hi-hero>.motion-toggle,.hi-hero>.scroll-cue{opacity:1;translate:none}}

.rail-progress{display:flex;align-items:center;gap:20px;width:100%;margin:6px 0 20px;color:var(--ink);font:10px/1 var(--hi-mono);letter-spacing:.03em}
.rail-progress-track{position:relative;flex:1;height:1px;background:#ffffff30;overflow:hidden}
.rail-progress-track i{display:block;width:100%;height:100%;background:var(--ink);transform:scaleX(var(--rail-progress,0));transform-origin:left center}
.rail-progress-value{min-width:4ch;text-align:right;font-variant-numeric:tabular-nums}
.hi-hero~.stories-section .story-stack,.residents-section .artist-grid{scrollbar-width:none}
.hi-hero~.stories-section .story-stack::-webkit-scrollbar,.residents-section .artist-grid::-webkit-scrollbar{display:none}

/* Club link uses the same neutral surface as the open menu. */
header .header-visit:hover,header .header-visit:focus-visible{background:#d5d4d0;color:#212121;box-shadow:8px 0 #d5d4d0,-8px 0 #d5d4d0}
.updates-page{min-height:65svh}.updates-empty{border-top:1px solid #ffffff30;padding:60px 0 90px}.updates-empty h2{font-size:clamp(28px,4vw,48px);margin:0 0 16px}.updates-empty p{color:var(--muted)}
header .header-visit:focus-visible{outline-color:#d5d4d0}

/* UNVRS action proportions, using HI LIFE's existing mono font. */
.event-board .featured-cta,.event-stack .event-panel:not(:first-child) .featured-cta{display:inline-flex;align-items:center;justify-content:center;width:fit-content;padding:20px 28px;border:0;border-radius:4px;background:#fbf9f6!important;color:#212121!important;font:400 12px/16px var(--hi-mono)!important;letter-spacing:normal;text-transform:uppercase;text-decoration:none;transition:background-color .2s ease,color .2s ease}
.event-board .featured-cta:hover{background:#d5d4d0!important;color:#212121!important}
.event-board .featured-cta:focus-visible{outline:2px solid #fbf9f6;outline-offset:4px}

/* Calendar uses the two HI LIFE type families consistently. */
.programme-page{font-family:var(--hi-display)}
.programme-page .eyebrow,.programme-page .weekdays>div,.programme-page .calendar-week-label,.programme-page .cell-date,.programme-page .cell-date span,.programme-page .today-badge,.programme-page .calendar-time,.programme-page .calendar-more,.programme-page .calendar-pending p{font-family:var(--hi-mono)!important;font-weight:400;letter-spacing:.02em}
.programme-page .weekdays>div{font-size:11px;line-height:16px;text-transform:uppercase}
.programme-page .cell-date>span:last-child{font-size:8px;line-height:12px}
.programme-page .calendar-artists{display:flex;flex-direction:column;gap:4px;font-family:var(--hi-display)!important;font-size:15px;font-weight:700;line-height:1.15;letter-spacing:-.025em}
.programme-page .calendar-artists span{font-family:inherit!important;font-weight:inherit}
.programme-page .calendar-time,.programme-page .calendar-more{font-size:10px;line-height:1.4}
.programme-page .page-intro .eyebrow{font-weight:400!important}

/* Compact artist directory: name and genre sit inside each portrait. */
.artist-directory .directory-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px 14px}
.directory-artist-card{position:relative;display:block;aspect-ratio:3/4;border-radius:4px;overflow:hidden;transition:transform .3s ease}
.directory-artist-card .portrait{width:100%;height:100%;margin:0}
.directory-artist-card:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#000b);pointer-events:none}
.directory-artist-copy{position:absolute;inset:auto 16px 16px;display:flex;flex-direction:column;align-items:flex-start;gap:12px;z-index:1}
.directory-genre{font:400 10px/1.2 var(--hi-mono)!important;text-transform:uppercase;letter-spacing:normal;padding:4px;background:#ffffff1a;border-radius:2px;color:#fbf9f6;backdrop-filter:blur(4px)}
.directory-artist-copy h2{font:700 20px/28px var(--hi-display)!important;letter-spacing:normal!important;text-transform:uppercase;color:#fbf9f6!important;margin:0;overflow-wrap:anywhere}
.directory-artist-card:hover{transform:scale(.98)}
.artist-directory .eyebrow,.artist-directory .dj-tools,.artist-directory .dj-tools input,.artist-directory .dj-tools select{font-family:var(--hi-mono)!important;font-weight:400;letter-spacing:.02em}
.artist-directory .dj-tools{margin-bottom:24px}.artist-directory .page-intro{margin-bottom:28px}
@media(max-width:1000px){.artist-directory .directory-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.artist-directory .directory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px}.directory-artist-copy{inset:auto 10px 10px;gap:8px}.directory-artist-copy h2{font-size:18px!important;line-height:22px!important}}
@media(max-width:480px){.artist-directory .directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.directory-artist-card{transition:none}.directory-artist-card:hover{transform:none}}

.footer-top .footer-socials{display:flex;flex-wrap:wrap;gap:20px 28px;align-items:center}
.footer-socials a{display:inline-flex;align-items:center;gap:8px;font:400 11px/16px var(--hi-mono);letter-spacing:normal;text-transform:uppercase;color:var(--ink);text-decoration:none}
.footer-socials img{width:18px;height:18px;object-fit:contain;filter:grayscale(1) brightness(0) invert(1)}
.footer-socials a:hover{color:#d5d4d0;text-decoration:underline;text-underline-offset:5px}
.footer-socials a:focus-visible{outline:1px solid #d5d4d0;outline-offset:6px}
@media(max-width:600px){.footer-top .footer-socials{gap:18px}.footer-socials a{font-size:10px}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.directory-artist-card{transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease}.directory-artist-card:hover{transform:translateY(-5px) scale(.98);box-shadow:0 16px 28px #0005}}
.directory-artist-card:focus-visible{outline:2px solid var(--ink);outline-offset:4px}

.footer-social-block .footer-social-heading{font:400 10px/14px var(--hi-mono);letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}
.footer-socials img[src$="primfeed-logo.png"],.community-channel img[src$="primfeed-logo.png"]{filter:grayscale(1)}
.artist-directory input:focus-visible,.artist-directory select:focus-visible{outline-color:#d5d4d0}

.portrait.real-portrait{background:#212121}.portrait.real-portrait img{opacity:1;display:block;width:100%;height:100%;object-fit:cover;position:static;filter:none;transform:none}

/* Reference type hierarchy: regular copy and utility labels, bold titles/names. */
body{font-weight:400}
.page-intro>p,.inside-copy>p,.community-section>div>p,.detail-copy>p,.text-page p,.three-col p,.interview-body p,.story-intro,.updates-empty p{font-family:var(--hi-display)!important;font-weight:400!important;letter-spacing:normal!important}
.page-intro>p{font-size:18px;line-height:1.5}
.eyebrow,.small,.tags,.tags span,.calendar-time,.calendar-more,.calendar-week-label,.event-calendar-date,.event-doors,.featured-lineup-label,.board-set-time,.board-set-time small,.countdown small,.countdown-wrap>.eyebrow,.section-heading>a,.artist-card>p,.destination-link,.back,.filters,.filters label,.footer-bottom,.footer-social-heading{font-family:var(--hi-mono)!important;font-weight:400!important;letter-spacing:.02em}
.section-heading h2,.stories-heading h2,.page-title,.artist-name h2,.event-board-title h3,.event-weekday,.board-dj-name{font-family:var(--hi-display)!important;font-weight:700!important}
.inside-copy h3,.text-page h2,.interview-question h2{font-weight:600!important}
@media(max-width:600px){.page-intro>p{font-size:16px;line-height:1.5}}

.venue-intro>p:not(.eyebrow){font:400 18px/1.5 var(--hi-display)!important;letter-spacing:normal}.club-about .three-col h2{font:400 12px/16px var(--hi-mono)!important;letter-spacing:.02em}.club-about .three-col p{font:400 18px/1.5 var(--hi-display)!important;letter-spacing:normal}.club-about .club-title{font-weight:700}.club-about .club-visual{max-height:360px}

.club-moods{padding-top:0}.mood-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.mood-card{padding:28px;min-height:360px;border-radius:4px;display:flex;flex-direction:column;justify-content:flex-end;color:#f3f2ed;border:1px solid #ffffff20}.mood-garden{background:radial-gradient(ellipse at 100% 0%,#a56a3c,transparent 70%),linear-gradient(125deg,#38261e,#704529)}.mood-wambo{background:radial-gradient(ellipse at 100% 0%,#237ca0,transparent 70%),linear-gradient(125deg,#102d4c,#174d79)}.mood-clubroom{background:radial-gradient(ellipse at 100% 0%,#ff3026,transparent 70%),linear-gradient(125deg,#740d13,#d21d20)}.mood-day{font:400 12px/16px var(--hi-mono);margin-bottom:auto;padding-bottom:45px}.mood-card h3{font:700 clamp(28px,3vw,42px)/1 var(--hi-display)!important;margin:0 0 18px}.mood-card .mood-genres{font:400 10px/16px var(--hi-mono);letter-spacing:0;margin:0 0 18px}.mood-card>p:last-child{font:400 16px/1.5 var(--hi-display);margin:0;max-width:34ch}
@media(max-width:800px){.mood-grid{grid-template-columns:1fr}.mood-card{min-height:280px}}
.community-section>div>p{font:400 18px/1.5 var(--hi-display)!important;letter-spacing:normal!important}
@media(max-width:600px){.community-section>div>p,.club-about .three-col p,.venue-intro>p:not(.eyebrow){font-size:16px!important}}

/* Start-page programme rail, with the next card peeking in. */
#home-events .event-stack{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:82%;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:5px 0 18px}
#home-events .event-stack::-webkit-scrollbar{display:none}
#home-events .event-panel,#home-events .event-panel:first-child{grid-column:auto;scroll-snap-align:start;min-width:0}
#home-events .event-panel .event-board-main{grid-template-columns:1fr 1fr;gap:28px}
#home-events .event-panel .event-board-title{display:block}
#home-events .event-panel .featured-date{text-align:left;margin:18px 0}
#home-events .event-panel .event-board-title h3{font-size:clamp(32px,4vw,56px)}
#home-events .event-panel .featured-info{padding:28px}
.event-rail-controls{display:flex;justify-content:flex-end;gap:8px;margin:0 0 14px}
.event-rail-controls button{width:36px;height:36px;border:1px solid #ffffff55;border-radius:50%;background:transparent;color:var(--ink);font:400 16px var(--hi-mono);cursor:pointer}
.event-rail-controls button:hover{background:#d5d4d0;color:#212121}
.club-social-block{margin-top:36px;padding-top:28px;border-top:1px solid #ffffff25}.club-social-block .footer-socials{display:flex;flex-wrap:wrap;gap:24px}
@media(max-width:700px){#home-events .event-stack{grid-auto-columns:90%}#home-events .event-panel .event-board-main{grid-template-columns:1fr;gap:18px}#home-events .event-panel .featured-info{padding:22px}}

.artist-directory .page-intro{align-items:center;gap:24px}.artist-directory .artist-search{display:flex;align-items:center;gap:2px;flex:0 0 254px;width:254px;height:44px;padding:4px;border-radius:4px;background:rgb(0 0 0 / 25%);color:#fff;backdrop-filter:blur(12px);margin-left:auto;box-sizing:border-box}
.artist-search svg{flex:0 0 20px;width:20px;height:20px;margin:8px}
.artist-directory .artist-search input{min-width:0;width:208px;padding:8px 4px;background:transparent;border:0;border-radius:0;color:#fff;font:400 12px/16px var(--hi-mono)!important;text-transform:uppercase;letter-spacing:normal;outline:none;box-shadow:none}
.artist-search input::placeholder{color:rgb(255 255 255 / 50%);opacity:1}.artist-search:focus-within{outline:1px solid #d5d4d0;outline-offset:3px}
.artist-directory .dj-tools{position:static;justify-content:flex-end;border-top:0;background:transparent;backdrop-filter:none;padding:8px 0 18px}
@media(max-width:600px){.artist-directory .page-intro{flex-direction:column;align-items:stretch}.artist-directory .artist-search{flex-basis:auto;width:100%;margin:0}.artist-directory .artist-search input{flex:1;width:auto}}
.featured-event.event-board{border:0!important;outline:0;box-shadow:none!important}

/* One navigation pattern for every horizontal rail. */
.story-rail-controls,.event-rail-controls{display:none!important}
.rail-progress{display:flex;align-items:flex-end;justify-content:flex-end;gap:24px;margin:12px 0 24px;width:100%;color:#d5d4d0}
.rail-progress-readout{display:flex;flex-direction:column;gap:14px;width:256px;max-width:calc(100% - 144px)}
.rail-progress-value{font:400 18px/24px var(--hi-mono);text-align:left;min-height:24px;font-variant-numeric:tabular-nums;letter-spacing:0}
.rail-progress-track{display:block;flex:none;width:100%;height:2px;background:#ffffff35}
.rail-progress-track i{background:#e5e5e0;height:2px}
.rail-progress-buttons{display:flex;gap:8px}
.rail-progress-buttons button{display:grid;place-items:center;width:56px;height:56px;border:0;border-radius:7px;background:#4a4a49;color:#e2e2df;font:400 28px/1 var(--hi-mono);padding:0;cursor:pointer;transition:background .18s}
.rail-progress-buttons button:hover:not(:disabled){background:#626260}.rail-progress-buttons button:disabled{opacity:.35;cursor:default}.rail-progress-buttons button:focus-visible{outline:1px solid #e2e2df;outline-offset:3px}
.calendar-scroll{scrollbar-width:none}.calendar-scroll::-webkit-scrollbar{display:none}
@media(max-width:600px){.rail-progress{gap:16px}.rail-progress-readout{flex:1;max-width:none}.rail-progress-buttons button{width:44px;height:44px;font-size:24px}.rail-progress-value{font-size:14px;line-height:20px}.rail-progress-readout{gap:10px}}

/* Keep shared carousel navigation above each row, aligned right. */
.rail-progress{margin:0 0 24px}

/* Pool-day badges sit inside every artist portrait, directly above the name. */
.artist-pool-days{display:flex;flex-wrap:wrap;gap:5px}
.artist-pool-days:empty{display:none}
.artist-pool-day{display:inline-block;padding:5px 6px;border-radius:2px;background:#ffffff26;backdrop-filter:blur(8px);color:#fbf9f6;font:400 10px/12px var(--hi-mono);letter-spacing:0;text-transform:uppercase}
.residents-section .directory-artist-card{margin-bottom:0}

/* Compact event detail: flyer and all essential information in one desktop view. */
.event-detail-page{padding:14px 5% 30px;max-width:1320px;margin:auto}
.event-detail-page>.back{display:inline-block;margin:0 0 16px;font:400 11px/16px var(--hi-mono)}
.event-detail-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:center}
.event-detail-flyer{min-width:0;max-width:440px;justify-self:center;width:100%}
.event-detail-flyer .poster{height:clamp(390px,calc(100svh - 190px),570px);border-radius:4px;padding:24px;display:flex;flex-direction:column;justify-content:space-between}
.event-detail-flyer .poster h3{font-size:clamp(36px,4vw,60px);line-height:1;letter-spacing:-.04em}
.event-detail-flyer .poster .lineup{font-size:16px;line-height:1.4}
.event-detail-flyer .poster .date{font:400 11px/18px var(--hi-mono)}
.event-detail-info>.eyebrow{margin:0 0 10px;font:400 10px/14px var(--hi-mono)}
.event-detail-info h1{font:700 clamp(32px,4vw,52px)/1 var(--hi-display);letter-spacing:-.04em;margin:0 0 18px}
.event-detail-info .event-theme-name{font:400 16px/22px var(--hi-mono)!important;letter-spacing:0;margin:-6px 0 14px}
.event-detail-date{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline}
.event-detail-date strong{font:700 20px/25px var(--hi-display);text-transform:uppercase}
.event-detail-date>span,.event-detail-doors{font:400 13px/20px var(--hi-mono)}
.event-detail-doors{margin:6px 0 20px}
.event-detail-lineup .featured-lineup-label{display:flex;justify-content:space-between;font:400 10px/16px var(--hi-mono);margin:0 0 7px}
.event-detail-set{display:grid;grid-template-columns:92px 1fr 18px;gap:10px;align-items:center;min-height:43px;border-top:1px solid #ffffff25;font:700 20px/24px var(--hi-display)}
.event-detail-set .event-detail-time{font:400 13px/20px var(--hi-mono);white-space:nowrap}
.event-detail-set>span:last-child{font-weight:400;font-size:18px}
.event-detail-visit.button{margin-top:20px;padding:16px 22px;border:0;border-radius:4px;background:#fbf9f6;color:#212121;font:400 12px/16px var(--hi-mono);text-transform:uppercase}
.event-detail-visit.button:hover{background:#d5d4d0}
.event-detail-note{font:400 9px/14px var(--hi-mono);color:#aaa;margin:12px 0 0}
@media(max-width:650px){.event-detail-layout{grid-template-columns:1fr;gap:24px}.event-detail-flyer{max-width:320px}.event-detail-flyer .poster{height:360px}.event-detail-info h1{font-size:36px}.event-detail-page{padding-top:12px}}

.event-detail-lineup .featured-lineup-label span{color:#b5b5b0}

/* Artist detail shares the compact event typography and stacks all future sets. */
.artist-profile-page{padding:14px 5% 40px;max-width:1320px;margin:auto}
.artist-profile-page>.back{display:inline-block;margin:0 0 16px;font:400 11px/16px var(--hi-mono)}
.artist-profile-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.artist-profile-photo{width:100%;max-width:420px;justify-self:center}
.artist-profile-photo .portrait{aspect-ratio:3/4!important;margin:0;border-radius:4px}
.artist-profile-info>.eyebrow{margin:0 0 10px;font:400 10px/14px var(--hi-mono)}
.artist-profile-info h1{font:700 clamp(32px,4vw,52px)/1 var(--hi-display);letter-spacing:-.04em;margin:0 0 16px}
.artist-profile-genres{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.artist-profile-genres span{font:400 11px/16px var(--hi-mono);text-transform:uppercase;padding:5px 8px;background:#ffffff15;border-radius:2px}
.artist-profile-socials{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.artist-profile-socials .button{padding:12px 18px;border:0;border-radius:4px;background:#fbf9f6;color:#212121;font:400 12px/16px var(--hi-mono);text-transform:uppercase}
.artist-profile-socials .button:hover{background:#d5d4d0}
.artist-next-sets>h2{font:400 11px/16px var(--hi-mono)!important;letter-spacing:.02em;margin:22px 0 10px}
.artist-set-entry{display:block;padding:15px 0;border-top:1px solid #ffffff30}
.artist-set-date{font:400 12px/18px var(--hi-mono);color:#c8c8c3}
.artist-set-entry h3{display:flex;justify-content:space-between;align-items:center;font:700 24px/28px var(--hi-display);letter-spacing:-.02em;margin:7px 0}
.artist-set-entry h3>span{font:400 20px/24px var(--hi-mono)}
.artist-set-time,.artist-set-theme,.artist-set-pending{font:400 11px/18px var(--hi-mono);margin:4px 0}
.artist-set-entry:hover h3{opacity:.75}
.artist-set-empty{font:400 14px/22px var(--hi-mono)}
.artist-profile-note{font:400 9px/14px var(--hi-mono);color:#aaa;margin:18px 0 0}
@media(max-width:650px){.artist-profile-layout{grid-template-columns:1fr;gap:24px}.artist-profile-photo{max-width:320px}.artist-profile-info h1{font-size:36px}}

/* The active set uses a percentage readout over a fine progress track. */
.board-lineup>a.is-playing{position:relative;padding-bottom:42px}
.board-lineup>a.is-playing:after{display:none}
.set-play-progress{position:absolute;bottom:8px;left:0;right:0;display:flex;flex-direction:column;gap:7px;pointer-events:none}
.set-play-percent{font:400 12px/16px var(--hi-mono);letter-spacing:0;color:var(--ink);text-align:left}
.set-play-track{display:block;height:2px;width:100%;background:#ffffff35;overflow:hidden}
.set-play-track i{display:block;height:2px;width:100%;background:#e5e5e0;transform:scaleX(var(--set-progress,0));transform-origin:left;transition:transform 1s linear}
@media(prefers-reduced-motion:reduce){.set-play-track i{transition:none}}

.event-board .now-live-link,.event-board .now-live-link span{font-family:var(--hi-mono)!important;font-weight:400!important;letter-spacing:0}

.featured-event.has-flyer-background{background-image:var(--event-art);background-size:cover;background-position:center 43%}
.featured-event.light-flyer-background{--ink:#212121;color:#212121}
.featured-event.light-flyer-background .event-board-top,.featured-event.light-flyer-background .board-lineup>a,.featured-event.light-flyer-background .featured-lineup-label{border-color:#21212135}
.featured-event.light-flyer-background .set-play-track{background:#21212130}
.featured-event.light-flyer-background .set-play-track i{background:#212121}
.featured-event.venue-theme-wambo.has-flyer-background.light-flyer-background{background-image:linear-gradient(#fff8e899,#fff8e899),var(--event-art)}
.artist-profile-pools{margin:0 0 18px}
.artist-profile-pools>.eyebrow{font:400 10px/14px var(--hi-mono);margin:0 0 7px;color:#c8c8c3}
.artist-profile-pools .artist-pool-day{font-size:11px;line-height:16px}

.artist-social-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff35;border-radius:4px;background:transparent;transition:background .2s}
.artist-social-icon:hover,.artist-social-icon:focus-visible{background:#ffffff18}
.artist-social-icon img{width:20px;height:20px;object-fit:contain;filter:brightness(0) invert(1)}
.artist-social-icon img[src$="primfeed-logo.png"]{filter:grayscale(1)}

.artist-social-demo-note{font:400 10px/16px var(--hi-mono);color:#aaa;margin:-14px 0 18px}

.season-year-progress{width:210px;max-width:60vw;display:flex;flex-direction:column;align-items:center;gap:8px;color:#b4b4ae}
.season-year-value{font:400 11px/16px var(--hi-mono);letter-spacing:0;font-variant-numeric:tabular-nums}
.season-year-track{display:block;height:2px;width:100%;background:#ffffff30;overflow:hidden}
.season-year-track i{display:block;height:100%;width:100%;background:#d5d4d0;transform:scaleX(var(--season-progress,0));transform-origin:left}

/* About copy uses the compact mono face with consistent column rhythm. */
.club-about .three-col{gap:clamp(28px,4vw,64px);align-items:start}
.club-about .three-col h2{margin:0 0 18px;font:400 12px/18px var(--hi-mono)!important;letter-spacing:.02em}
.club-about .three-col p{font:400 13px/1.8 var(--hi-mono)!important;letter-spacing:0!important;margin:0;max-width:48ch;text-wrap:pretty}
@media(max-width:700px){.club-about .three-col{grid-template-columns:1fr;gap:28px}.club-about .three-col h2{margin-bottom:10px}.club-about .three-col p{font-size:13px!important;max-width:60ch}}

/* Venue identities use only text and a fine colour underline. */
.club-moods .mood-grid{gap:clamp(28px,4vw,64px)}
.club-moods .mood-card{background:none;border:0;border-radius:0;box-shadow:none;padding:0;min-height:0;justify-content:flex-start;align-items:flex-start}
.club-moods .mood-day{margin:0 0 20px;padding:0}
.club-moods .mood-card h3{display:inline-block;font-size:clamp(26px,2.7vw,38px)!important;line-height:1.15!important;padding-bottom:12px;margin-bottom:18px;border-bottom:1px solid var(--mood-accent)}
.mood-garden{--mood-accent:#c08c60}.mood-wambo{--mood-accent:#429fc5}.mood-clubroom{--mood-accent:#ff3026}
.club-moods .mood-card>p:last-child{font:400 13px/1.8 var(--hi-mono);max-width:48ch}
@media(max-width:800px){.club-moods .mood-grid{gap:36px}}

.calendar-today-button:hover,.calendar-today-button:focus-visible{background:#d5d4d0;color:#212121;border-color:#d5d4d0}
.calendar-today-button:focus-visible{outline:1px solid #d5d4d0;outline-offset:3px}

.season-year-readout{display:flex;justify-content:center;gap:7px;white-space:nowrap;font:400 11px/16px var(--hi-mono);letter-spacing:0}
.season-loading-label{font:inherit}
.season-year-progress{width:280px;max-width:85vw}

.stories-section .real-story .story-panel-copy{left:16px;right:16px;bottom:16px;text-align:left}
.stories-section .real-story .story-panel-copy h3{font:700 20px/28px var(--hi-display)!important;letter-spacing:normal!important;text-transform:uppercase;text-align:left;margin:0;color:#fbf9f6}
@media(max-width:700px){.stories-section .real-story .story-panel-copy{left:10px;right:10px;bottom:10px}.stories-section .real-story .story-panel-copy h3{font-size:18px!important;line-height:22px!important}}

/* Calendar cards stay typographic, using venue colours only on the name. */
.calendar-event{background:none!important;background-image:none!important;border-radius:4px;transition:transform .22s ease,box-shadow .22s ease,background-color .22s ease}
.calendar-venue-garden{--calendar-venue-color:#c99a71}.calendar-venue-wambo{--calendar-venue-color:#58b5db}.calendar-venue-clubroom{--calendar-venue-color:#ff514b}
.calendar-event h3,.calendar-pending .calendar-venue-name{color:var(--calendar-venue-color)!important}
.calendar-event h3{margin:0 0 10px}
.calendar-event .calendar-time{display:block;margin:0 0 12px;color:#e4e3de}
.calendar-event .calendar-more{display:block;margin-top:14px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.calendar-event:hover{transform:translateY(-5px);background-color:#ffffff08!important;box-shadow:0 10px 18px #0004}}
.calendar-event:focus-visible{outline:1px solid #d5d4d0;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.calendar-event{transition:none}}

.destination.floor-text-card{background:none!important;background-image:none!important;border:0;border-radius:0;box-shadow:none;min-height:190px;padding:0;display:flex;flex-direction:column;justify-content:flex-start;gap:28px}
.destination.floor-text-card:before,.destination.floor-text-card:after{display:none}
.floor-garden{--floor-accent:#c08c60}.floor-wambo{--floor-accent:#429fc5}.floor-clubroom{--floor-accent:#ff3026}
.destination.floor-text-card h3{display:table;font:700 clamp(26px,2.7vw,38px)/1.15 var(--hi-display);letter-spacing:-.04em;border-bottom:1px solid var(--floor-accent);padding-bottom:12px;margin:0 0 20px}
.destination.floor-text-card .destination-link{display:inline-block;border:0;padding:0;font:400 11px/16px var(--hi-mono)}
.destination.floor-text-card>div>p:empty{display:none}

/* Persistent group entry, awaiting the confirmed inworld group URL. */
header .header-group{position:absolute;right:calc(3.2% + 306px);top:50%;transform:translateY(-50%);font:400 11px/1.2 var(--hi-mono);padding:10px 0;border:0;background:none;color:#b4b4ae;white-space:nowrap;cursor:default}
@media(max-width:1100px) and (min-width:701px){header .header-group{font-size:9px;right:calc(3.2% + 260px)}header .header-visit{font-size:10px;right:calc(3.2% + 116px)}}
@media(max-width:700px){header .header-group{top:25px;left:5%;right:auto;font-size:8px;max-width:28%;text-align:left;white-space:normal}}
.artist-directory .page-intro>div:first-child{min-height:124px}
.artist-directory .page-title{font-size:96px!important;line-height:1;transition:font-size 1s cubic-bezier(.22,1,.36,1)}
.artists-scrolled .artist-directory .page-title{font-size:60px!important}
@media(max-width:700px){.artist-directory .page-intro>div:first-child{min-height:82px}.artist-directory .page-title{font-size:56px!important}.artists-scrolled .artist-directory .page-title{font-size:40px!important}}
@media(prefers-reduced-motion:reduce){.artist-directory .page-title{transition:none}}
/* Editorial footer with a large wordmark and two live, DST-aware clocks. */
body>footer.site-footer{background:#212121;color:#d5d4d0;padding:60px 3.2% 24px}
.footer-navigation{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:36px}
.site-footer h2{font:700 14px/20px var(--hi-display);margin:0 0 22px;text-transform:uppercase;letter-spacing:0}
.footer-column{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.footer-column h2{margin-bottom:4px}
.footer-column>a,.footer-column>button,.footer-preview-note{font:400 12px/20px var(--hi-mono);letter-spacing:.02em;text-transform:uppercase}
.footer-column>button{background:none;border:0;padding:0;color:#999;text-align:left;cursor:default}
.site-footer .footer-socials{display:flex;gap:8px;flex-wrap:wrap}
.site-footer .footer-socials a{width:42px;height:42px;display:grid;place-items:center;background:#4a4a49;border-radius:4px}
.site-footer .footer-socials a:hover{background:#626260}
.site-footer .footer-socials img{width:22px;height:22px}
.site-footer .footer-socials span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.footer-signature{width:65%;margin:100px 0 0 auto}
.footer-signature>a{display:block}.footer-signature>a>img{width:100%;height:auto;display:block;filter:invert(1);opacity:.85}
.footer-signature-bottom{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-top:24px;font:400 10px/18px var(--hi-mono)}
.footer-clocks{display:flex;flex-wrap:wrap;gap:12px 28px;font-variant-numeric:tabular-nums}.footer-clocks>span{white-space:nowrap}.footer-clocks time{margin-right:10px}
.footer-copyright{white-space:nowrap}
@media(max-width:900px){.footer-navigation{grid-template-columns:repeat(3,1fr)}.footer-navigation>.footer-social-block{grid-column:1/-1}.footer-signature{width:100%;margin-top:65px}}
@media(max-width:500px){.footer-navigation{grid-template-columns:1fr 1fr;gap:28px}.footer-column>a,.footer-column>button,.footer-preview-note{font-size:10px}.footer-signature-bottom{flex-direction:column}.footer-clocks{gap:6px 14px;font-size:9px}}
.site-footer nav{margin:0}.site-footer .footer-column a{padding:0;border:0}.footer-navigation{align-items:start}

header a.header-group{color:var(--ink);cursor:pointer}header a.header-group:hover{color:#d5d4d0;text-decoration:underline;text-underline-offset:5px}
/* Footer link rhythm measured from UNVRS: 16px gutters and link gaps. */
@media(min-width:901px){body>footer.site-footer{padding-left:40px;padding-right:40px}.footer-navigation{grid-template-columns:minmax(0,1fr) repeat(3,minmax(0,209.3px));gap:16px;padding-right:16px}}
.site-footer .footer-column{gap:16px}
.site-footer .footer-column h2{font-size:14px;line-height:17.5px;margin:0}
.site-footer .footer-column>a,.site-footer .footer-preview-note{font-size:12px;line-height:16px}
@media(max-width:900px){.footer-navigation{column-gap:16px}.site-footer .footer-column{gap:16px}}

/* Uniform calendar rhythm, including unannounced event days. */
.programme-page .calendar-event,.programme-page .event-day .calendar-pending{padding:14px 11px;display:flex;flex-direction:column;align-items:stretch}
.programme-page .calendar-event h3,.programme-page .calendar-pending h3.calendar-venue-name{font:700 22px/22px var(--hi-display)!important;letter-spacing:-.04em!important;text-transform:uppercase;min-height:44px;margin:0 0 12px;color:var(--calendar-venue-color)}
.programme-page .calendar-time{height:16px;line-height:16px;margin:0 0 12px}
.programme-page .calendar-artists{min-height:80px;margin:0;gap:4px;line-height:18px}
.programme-page .calendar-more{margin:16px 0 0;line-height:16px}
.programme-page .event-day .calendar-pending p{margin:0;font:400 10px/16px var(--hi-mono)}
.menu-shell nav .menu-clubs{width:100%;margin-top:14px;padding-top:14px;border-top:1px solid #ffffff30}
.menu-clubs p{font:400 16px/24px var(--hi-mono);margin:0 0 8px;display:flex;gap:14px;align-items:center}
.menu-shell nav .menu-clubs a,.menu-shell nav .menu-clubs a:last-child{font:400 16px/24px var(--hi-mono)!important;letter-spacing:0;display:flex;gap:14px;padding:4px 0;border:0}
.guest-club-page{text-align:center;min-height:65vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px}
.guest-club-brand h1{font:700 clamp(36px,7vw,100px)/1 var(--hi-display);letter-spacing:-.04em;margin:20px 0}.guest-club-brand img{max-width:min(550px,80vw);max-height:250px;object-fit:contain}.guest-club-visit.button{background:#d5d4d0;color:#212121;font:400 12px/16px var(--hi-mono);border:0;border-radius:4px}.guest-club-page>.small{margin:0}

.programme-page .calendar-artists{min-height:84px}
/* First visit: welcome alone, followed by the rest of the interface. */
header,.preview-bar,.hi-hero>.season-code,.hi-hero>.kinetic-caption,.hi-hero>.motion-toggle,.hi-hero>.scroll-cue,main>section:not(.hi-hero),.sponsor-strip,body>footer{transition:opacity .8s ease}
.intro-arrival header,.intro-arrival .preview-bar,.intro-arrival .hi-hero>:not(.welcome-title),.intro-arrival main>section:not(.hi-hero),.intro-arrival .sponsor-strip,.intro-arrival body>footer{opacity:0;visibility:hidden;pointer-events:none}
@media(prefers-reduced-motion:reduce){header,.preview-bar,.hi-hero>*,main>section,.sponsor-strip,body>footer{transition:none}}
html.intro-arrival header{opacity:0!important;visibility:hidden!important}
.scroll-scale-heading{transform:scale(1);transform-origin:top left;transition:transform 1s cubic-bezier(.22,1,.36,1)!important}
.scroll-scale-heading.is-compact{transform:scale(.625)}
@media(prefers-reduced-motion:reduce){.scroll-scale-heading{transform:none!important;transition:none!important}}
/* Keep the Artists carousel controls beside its title, not in a tall extra row. */
.residents-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,400px);gap:24px 32px}
.residents-section>.section-heading{margin:0;align-items:end}
.residents-section>.rail-progress{margin:0;align-self:end}
.residents-section>.artist-grid{grid-column:1/-1}
@media(max-width:900px){.residents-section{grid-template-columns:1fr;gap:16px}.residents-section>.rail-progress{max-width:400px;justify-self:end}}
.residents-section>.artist-grid{margin-top:0}
.menu-shell nav .menu-clubs{border-top-color:#21212130}

/* The persistent navigation floats over content without a painted strip. */
body>header{background:none!important;background-image:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important;border:0!important;pointer-events:none}
body>header a,body>header button,body>header nav{pointer-events:auto}
body>header::before,body>header::after{content:none!important}
/* A consistent text-only rollover for the navigation. */
.header-roll{display:inline-flex;position:relative;overflow:hidden;vertical-align:bottom;color:transparent;line-height:1.2}
.header-roll::before,.header-roll::after{content:attr(data-label);position:absolute;inset:0;color:var(--ink);transition:transform .3s ease-in-out,opacity .3s ease-in-out;white-space:inherit}
.header-roll::after{opacity:0;transform:translateY(100%) scale(.9)}
header :is(a,button):is(:hover,:focus-visible)>.header-roll::before{opacity:0;transform:translateY(-100%) scale(.9)}
header :is(a,button):is(:hover,:focus-visible)>.header-roll::after{opacity:1;transform:translateY(0) scale(1)}
header .header-visit:hover,header .header-visit:focus-visible,header a.header-group:hover,header a.header-group:focus-visible{background:transparent!important;box-shadow:none!important;text-decoration:none!important;color:var(--ink)}
@media(prefers-reduced-motion:reduce){.header-roll::before,.header-roll::after{transition:none}header :is(a,button):is(:hover,:focus-visible)>.header-roll::before{opacity:1;transform:none}.header-roll::after{display:none}}
header .header-roll,header .header-roll::before,header .header-roll::after{pointer-events:none}

.programme-page .calendar-theme{display:block;height:20px;min-height:0;margin:-32px 0 12px;font:400 11px/16px var(--hi-mono);text-transform:uppercase;color:var(--ink)}
.programme-page .calendar-theme:empty{display:none}
/* The theme occupies the reserved second title line instead of adding a row. */
.programme-page .calendar-event,.programme-page .event-day .calendar-pending{padding-left:0;padding-right:0}
.programme-page .calendar-event h3,.programme-page .calendar-pending h3.calendar-venue-name{overflow-wrap:normal;word-break:normal}

/* Live time references stay beneath the centred wordmark. */
.header-clocks{position:absolute;top:calc(50% + 22px);left:50%;transform:translateX(-50%);display:flex;gap:16px;white-space:nowrap;color:#bdbdb7;font:400 8px/12px var(--hi-mono);font-variant-numeric:tabular-nums;letter-spacing:0;pointer-events:none}
.header-clocks time{margin-right:4px}
@media(max-width:700px){.header-clocks{top:40px;font-size:7px;line-height:10px;gap:10px}}

/* Floor details: image, identity and upcoming programme. */
.floor-detail .back{display:inline-block;margin-bottom:22px}
.floor-hero{position:relative;margin:0;aspect-ratio:2.6;overflow:hidden}
.floor-hero>img{width:100%;height:100%;object-fit:cover;display:block}
.floor-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 20%,#0009)}
.floor-hero figcaption{position:absolute;z-index:1;bottom:32px;left:32px;color:#f3f2ed}
.floor-hero h1.page-title{margin:12px 0 0;font-size:clamp(42px,7vw,96px);line-height:1}
.floor-description{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:40px 0 48px;border-bottom:1px solid #ffffff30}
.floor-description h2{font:700 clamp(24px,3vw,40px)/1.05 var(--hi-display);margin:14px 0 0}
.floor-description .floor-genres{font:400 12px/1.6 var(--hi-mono);margin:0 0 18px}
.floor-description .floor-energy{font:400 14px/1.8 var(--hi-mono);margin:0;max-width:52ch}
.floor-garden .floor-genres{color:#c08c60}.floor-wambo .floor-genres{color:#429fc5}.floor-clubroom .floor-genres{color:#ff5249}
.floor-upcoming{margin:42px 0 24px}.floor-upcoming h2{font-size:clamp(28px,4vw,52px)}
@media(max-width:700px){.floor-hero{aspect-ratio:1.25}.floor-hero figcaption{bottom:24px;left:20px}.floor-description{grid-template-columns:1fr;gap:24px;padding:28px 0}.floor-upcoming{align-items:flex-start;gap:20px}.floor-upcoming h2{font-size:28px}}

header .header-radio{appearance:none;border:0;background:none!important;padding:0;color:var(--ink);font:400 10px/1.4 var(--hi-mono);white-space:nowrap;cursor:pointer;letter-spacing:0}
header .header-radio:hover{color:var(--ink);box-shadow:none}
.radio-status{position:absolute;top:30px;right:0;white-space:nowrap;background:#30302e;color:#f3f2ed;padding:9px 12px;font:400 10px/1.4 var(--hi-mono)}
.radio-status[hidden]{display:none}
@media(max-width:700px){header .header-radio{font-size:8px}.header-left{gap:8px}}

.floor-description{grid-template-columns:1fr 2fr}
.floor-description .floor-energy{max-width:70ch;margin:0 0 18px}
.floor-description .floor-energy:last-child{margin-bottom:0}
header .header-back{position:absolute;left:3.2%;top:calc(50% + 21px);padding:0;border:0;background:transparent!important;color:var(--ink);font:400 24px/24px var(--hi-mono);cursor:pointer;box-shadow:none}
header .header-back[hidden]{display:none}
header .header-back:hover{transform:translateX(-3px);color:var(--ink)}
@media(max-width:700px){.floor-description{grid-template-columns:1fr;gap:12px}header .header-back{left:5%;top:87px;font-size:20px}}

.club-moods .mood-card h3 a{color:inherit;text-decoration:none}.club-moods .mood-card h3 a:hover{opacity:.7}.club-moods .mood-card h3 a:focus-visible{outline:1px solid currentColor;outline-offset:5px}
.community-section>div>p{font:400 14px/1.8 var(--hi-mono);max-width:58ch;margin:0}.community-section>.eyebrow{font:400 11px/1.5 var(--hi-mono)}

main .community-section>div>p{font:400 14px/1.8 var(--hi-mono)!important;letter-spacing:0!important;max-width:58ch}

/* Event details work independently of flyer production. */
.event-detail-layout{display:block}.event-detail-info{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(32px,6vw,90px);align-items:start}
.event-detail-info>*{grid-column:1}.event-detail-info .event-detail-lineup{grid-column:2;grid-row:1/span 7;align-self:start;padding-top:4px}
.event-detail-info .event-detail-visit{justify-self:start}.event-detail-info .event-detail-date{margin-top:4px}
@media(max-width:700px){.event-detail-info{display:block}.event-detail-info .event-detail-lineup{margin-top:24px}}

/* Compact community overview, four equal destinations. */
main .community-compact{display:grid;grid-template-columns:1fr 1.3fr;gap:20px 40px;align-items:start;margin:0 5% 40px;padding:28px;background:transparent}
main .community-compact>.eyebrow{grid-column:1/-1;margin:0}
main .community-compact>h2{font:700 clamp(32px,4vw,52px)/1.05 var(--hi-display);letter-spacing:-.04em;margin:0}
main .community-compact .community-copy p{font:400 13px/1.7 var(--hi-mono)!important;letter-spacing:0!important;max-width:64ch;margin:0 0 12px}
main .community-compact .community-copy p:last-child{margin:0}
main .community-compact .community-channels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;grid-column:1/-1;margin:8px 0 0}
main .community-compact .community-channel{display:flex;align-items:center;gap:12px;padding:18px 14px;min-height:70px;border-radius:3px!important}
main .community-compact .community-channel img{width:24px;height:24px;object-fit:contain;flex-shrink:0;margin:0}
main .community-compact .community-channel h3{font:400 12px/1.4 var(--hi-mono)!important;letter-spacing:0;margin:0}
main .community-compact .channel-arrow{position:static;margin-left:auto;font-size:18px}
@media(max-width:800px){main .community-compact .community-channels{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){main .community-compact{grid-template-columns:1fr;padding:16px 0;gap:20px}main .community-compact>h2{font-size:36px}main .community-compact .community-channel{gap:8px;padding:14px 10px}main .community-compact .community-channel h3{font-size:10px!important}}

.event-detail-set{grid-template-columns:92px 42px minmax(0,1fr) 18px;gap:12px;min-height:60px;padding:8px 0}
.event-slot-portrait,.event-slot-initials{width:42px;height:42px;border-radius:3px;object-fit:cover;display:block}
.event-slot-portrait{filter:grayscale(1)}.event-slot-initials{display:grid;place-items:center;background:#373735;color:#c6c6bf;font:400 13px/1 var(--hi-mono)}
@media(max-width:450px){.event-detail-set{grid-template-columns:80px 36px minmax(0,1fr) 14px;gap:9px}.event-slot-portrait,.event-slot-initials{width:36px;height:36px}}

.header-radio-group,.radio-transport{display:flex;align-items:center}.header-radio-group{gap:8px}.radio-transport{gap:2px}
header .radio-transport button{display:grid;place-items:center;appearance:none;background:none!important;border:0;padding:3px;width:22px;height:24px;color:var(--ink);box-shadow:none}
header .radio-transport button:disabled{opacity:.45;cursor:default}
.radio-transport svg{display:block;width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linejoin:round}
.radio-transport .radio-pause svg{stroke-width:2}
@media(max-width:700px){.header-radio-group{gap:3px}header .radio-transport button{width:17px;padding:2px}.radio-transport{gap:0}}

main .floor-description>div:first-child>.eyebrow{font:400 clamp(22px,2.6vw,34px)/1.15 var(--hi-mono)!important;letter-spacing:0;margin:0;text-transform:uppercase}
.floor-description .floor-genres{line-height:1.8;max-width:70ch}

/* Floor copy aligned to the shared left edge. */
main .floor-description{display:block;text-align:left}
main .floor-description .floor-energy{max-width:82ch}
main .floor-description .floor-genres{max-width:none}

/* Compact calendar rows, with a persistent SLT today marker. */
.programme-page .month-cell{min-height:200px;padding:10px}
.programme-page .cell-date{margin-bottom:10px;min-height:28px}
.programme-page .calendar-event,.programme-page .event-day .calendar-pending{padding:6px 0;min-height:0}
.programme-page .calendar-event h3,.programme-page .calendar-pending h3.calendar-venue-name{margin-bottom:8px}
.programme-page .calendar-theme{margin-top:-28px;margin-bottom:8px}
.programme-page .calendar-time{margin-bottom:8px}
.programme-page .calendar-artists{min-height:40px;gap:3px}
.programme-page .calendar-more{margin-top:10px}
.programme-page .calendar-pending{padding:6px 0}
.programme-page .calendar-pending h3{margin:8px 0 10px}
.programme-page .calendar-week-label{padding:9px 10px}
.programme-page .month-cell.is-today{background:#353533;outline:0;box-shadow:inset 0 0 0 2px #efeee8}
.programme-page .is-today .cell-date{background:transparent;flex-wrap:nowrap;gap:4px}
.programme-page .today-badge{background:#efeee8;color:#212121;font-size:8px;line-height:12px;padding:3px 4px;border-radius:2px}

.sponsor-radio{display:block;width:290px;max-width:100%;mix-blend-mode:screen}.sponsor-radio img{display:block;width:100%;height:auto;filter:grayscale(1) contrast(1.3)}.sponsor-radio:focus-visible{outline:1px solid #eee;outline-offset:8px}.sponsor-radio:hover{opacity:.8}

/* Welcome-only arrival; timing begins after homepage data is ready. */
html.intro-arrival,html.intro-arrival body{overflow:hidden}
html.intro-arrival .welcome-title .welcome-line>span{animation:none;opacity:0;transform:translateY(110%)}
html.intro-arrival.intro-playing .welcome-title .welcome-line>span{animation:welcome-reveal .9s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--word)*.25s)}
header,.preview-bar,.hi-hero>.season-code,.hi-hero>.kinetic-caption,.hi-hero>.scroll-cue,main>section:not(.hi-hero),.sponsor-strip,body>footer{transition:opacity .85s ease,visibility .85s}
html.intro-arrival header,html.intro-arrival .preview-bar,html.intro-arrival .hi-hero>:not(.welcome-title),html.intro-arrival main>section:not(.hi-hero),html.intro-arrival .sponsor-strip,html.intro-arrival body>footer{opacity:0!important;visibility:hidden!important;transition:none!important;pointer-events:none}
@media(prefers-reduced-motion:reduce){header,.preview-bar,.hi-hero>.season-code,.hi-hero>.kinetic-caption,main>section:not(.hi-hero),.sponsor-strip,body>footer{transition:none}}

.programme-page .calendar-artists{display:flex;flex-direction:column;font-size:12px;line-height:15px;gap:2px;min-height:40px}.programme-page .calendar-artists>span{min-width:0;overflow-wrap:anywhere}

/* Larger artist portraits in the event's set list. */
.event-detail-set{grid-template-columns:92px 76px minmax(0,1fr) 18px;gap:16px;min-height:100px;padding:12px 0}
.event-detail-set .event-slot-portrait,.event-detail-set .event-slot-initials{width:76px;height:76px;border-radius:4px}
.event-detail-set .event-slot-initials{font-size:22px}
@media(max-width:450px){.event-detail-set{grid-template-columns:72px 60px minmax(0,1fr) 14px;gap:10px;min-height:84px;padding:10px 0}.event-detail-set .event-slot-portrait,.event-detail-set .event-slot-initials{width:60px;height:60px}}

.hi-hero .hero-event-days{margin:18px 0 0;font:400 11px/1.5 var(--hi-mono)!important;letter-spacing:.06em!important;color:#b4b4ae;opacity:var(--hero-opacity,1);translate:0 var(--hero-lift,0px);transition:opacity .85s ease,visibility .85s}
@media(max-width:700px){.hi-hero .hero-event-days{font-size:9px!important;margin-top:14px}}
@media(prefers-reduced-motion:reduce){.hi-hero .hero-event-days{transition:none;opacity:1;translate:none}}

/* Fine floor-specific accents in event details. */
.event-detail-page{--detail-accent:#c08c60}.event-detail-page.event-floor-wambo{--detail-accent:#429fc5}.event-detail-page.event-floor-clubroom{--detail-accent:#ee3935}
.event-detail-info h1{padding-bottom:14px;border-bottom:1px solid var(--detail-accent)}
.event-detail-lineup .featured-lineup-label{padding-bottom:12px;border-bottom:1px solid var(--detail-accent)}
.event-detail-set{border-top:1px solid color-mix(in srgb,var(--detail-accent) 40%,transparent)}
.event-detail-set:first-of-type{border-top:0}
.event-detail-set:hover{border-color:var(--detail-accent)}

/* Text-only floor listings and status shared with the featured event. */
.floor-detail .event-row-text{grid-template-columns:76px minmax(0,1fr) auto 24px}
.event-detail-status{display:flex;align-items:center;gap:14px;margin:12px 0;font:400 14px/22px var(--hi-mono)}
.event-detail-status[hidden]{display:none}.event-detail-status .pulse-dot{flex:0 0 10px;width:10px;height:10px}
.detail-countdown{display:flex;gap:10px}.detail-countdown>span+span{padding-left:10px;border-left:1px solid #666}.detail-countdown small{font-size:9px}
.event-detail-info .event-detail-lineup{grid-row:1/span 8}
@media(max-width:600px){.floor-detail .event-row-text{grid-template-columns:52px minmax(0,1fr) 18px}.floor-detail .event-row-text .time{grid-column:2}.floor-detail .event-row-text .arrow{grid-column:3;grid-row:1}}

/* Shared heading row keeps both accent rules exactly aligned. */
.event-detail-lineup-heading{display:flex;justify-content:space-between;gap:12px;font:400 10px/16px var(--hi-mono);padding-bottom:14px;border-bottom:1px solid var(--detail-accent);margin:0 0 18px}
.event-detail-lineup-heading span{color:#b5b5b0}
@media(min-width:701px){
.event-detail-info>h1{grid-row:2}
.event-detail-info>.event-detail-lineup-heading{grid-column:2;grid-row:2;align-self:end;margin:0 0 18px;padding-bottom:14px}
.event-detail-info>.event-detail-lineup{grid-row:3/span 8;padding-top:0}
}
@media(max-width:700px){.event-detail-info>.event-detail-lineup-heading{margin:24px 0 10px}.event-detail-info .event-detail-lineup{margin-top:0}}

/* Six artists per desktop row, compact labels within each portrait. */
@media(min-width:1001px){.artist-directory .directory-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:20px 12px}.artist-directory .directory-artist-copy{inset:auto 8px 10px;gap:8px}.artist-directory .directory-artist-copy h2{font-size:clamp(15px,1.4vw,20px)!important;line-height:1.15!important}.artist-directory .artist-pool-days{gap:3px}.artist-directory .artist-pool-day{font-size:8px;line-height:10px;padding:3px 4px}}

/* Floor overview: compact spacing and a shared typographic baseline. */
.venue-intro>p:not(.eyebrow){font:400 13px/1.7 var(--hi-mono)!important;letter-spacing:.01em;margin:18px 0 0}
.venue-intro{padding-bottom:0}.venue-intro+.venue-destinations{padding-top:32px}
.venue-destinations .destination-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;max-width:1060px}
.destination.floor-text-card{min-height:0;gap:18px}.destination.floor-text-card>.eyebrow{margin:0}
.destination.floor-text-card h3{display:block;min-height:60px;margin:0 0 16px;padding-bottom:12px;font-size:clamp(24px,2.7vw,36px)}
@media(max-width:700px){.venue-destinations .destination-grid{grid-template-columns:1fr;gap:32px}.destination.floor-text-card h3{min-height:0}.venue-intro+.venue-destinations{padding-top:24px}}

/* Upcoming events use one consistent text grid on every floor. */
.floor-detail .floor-upcoming{align-items:center;gap:24px;margin:36px 0 20px}
.floor-detail .floor-upcoming h2{font-size:clamp(26px,3.2vw,42px)}
.floor-event-list{border-top:1px solid #ffffff30}
.floor-event-row{display:grid;grid-template-columns:155px minmax(0,1fr) 150px 22px;gap:28px;align-items:center;padding:22px 0;border-bottom:1px solid #ffffff30;transition:background .2s}
.floor-event-row:hover{background:#ffffff05}
.floor-event-date,.floor-event-time{display:flex;flex-direction:column;gap:8px;font:400 12px/18px var(--hi-mono);letter-spacing:0}
.floor-event-date>span{text-transform:uppercase}.floor-event-date strong{font:inherit;color:var(--muted)}
.floor-event-programme{min-width:0}.floor-event-programme h3{font:700 24px/1.15 var(--hi-display)!important;letter-spacing:-.025em!important;margin:0 0 10px}
.floor-event-artists{display:flex;flex-wrap:wrap;gap:4px 18px;font:400 12px/18px var(--hi-mono)}
.floor-event-time{white-space:nowrap}.floor-event-time small{font:400 10px/18px var(--hi-mono);color:var(--muted)}
.floor-event-arrow{font:400 22px/1 var(--hi-mono);justify-self:end}
@media(max-width:700px){.floor-detail .floor-upcoming{align-items:flex-start;flex-direction:column;gap:12px}.floor-event-row{grid-template-columns:110px minmax(0,1fr) 18px;gap:12px 16px;padding:20px 0}.floor-event-date{grid-column:1;grid-row:1/span 2;font-size:10px}.floor-event-programme{grid-column:2;grid-row:1}.floor-event-programme h3{font-size:20px!important}.floor-event-artists{font-size:11px;gap:3px 10px}.floor-event-time{grid-column:2;grid-row:2;font-size:11px;gap:2px}.floor-event-arrow{grid-column:3;grid-row:1}}

.residents-section .section-heading h2 .artists-heading-link{font:inherit!important;letter-spacing:inherit!important;line-height:inherit!important;text-decoration:none;color:inherit;white-space:normal;transition:opacity .2s}.residents-section .artists-heading-link:hover{opacity:.7}

.artist-photo-pending{display:flex;align-items:center;justify-content:center;background:#2b2b2a!important;color:#8d8d87;font:400 clamp(28px,4vw,60px)/1 var(--hi-mono)}.artist-photo-pending>span{margin-top:-20%}.artist-profile-photo .artist-photo-pending{min-height:360px}
.event-board .board-lineup>div.pending-slot{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid #ffffff30}
.board-lineup .pending-slot .board-dj-name,.event-detail-set.pending-slot>span:nth-child(3){font:400 12px/1.5 var(--hi-mono)!important;color:var(--muted)}

/* Editorial covers use the existing site typography, never text baked into a new image. */
.updates-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 28px}.update-card{min-width:0}.editorial-cover{position:relative;aspect-ratio:4/3;background:#2b2b2a;overflow:hidden}.editorial-cover>img{width:100%;height:100%;object-fit:cover}.editorial-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,rgba(0,0,0,.78))}.editorial-cover-copy{position:absolute;z-index:1;bottom:28px;left:28px;right:28px}.editorial-cover-copy h2{font:700 clamp(28px,3.5vw,52px)/1.04 var(--hi-display)!important;letter-spacing:-.035em!important;margin:12px 0 0;overflow-wrap:anywhere}.editorial-cover-copy .eyebrow{font:400 11px/1.5 var(--hi-mono)!important}.update-card>p{font:400 13px/1.7 var(--hi-mono);max-width:60ch}.story-panel-copy h3{font-family:var(--hi-display)!important;font-weight:700!important}.story-detail .page-title{overflow-wrap:anywhere}.update-card:focus-visible{outline:2px solid #f3f2ed;outline-offset:6px}@media(max-width:700px){.updates-grid{grid-template-columns:1fr}.editorial-cover-copy{left:22px;right:22px;bottom:22px}}
/* Keep an expanded club list in the existing single-column, scrollable menu. */
header .menu-shell nav{flex-wrap:nowrap}header .menu-shell nav>*{flex-shrink:0;min-width:0}.menu-shell nav .menu-clubs a{white-space:normal;overflow-wrap:anywhere}

/* Editorial archive: one typographic hierarchy, no legacy flyer footer. */
.stories-section .real-story .story-panel-copy{bottom:30px;left:24px;right:24px}
.stories-section .real-story .story-panel-copy h3,.story-detail-cover h3{font:700 clamp(30px,3vw,48px)/1.02 var(--hi-display)!important;letter-spacing:-.035em!important;text-transform:uppercase;margin:10px 0!important;color:#f3f2ed}
.story-panel-copy .story-cover-series,.story-panel-copy .story-cover-date{font:400 10px/1.5 var(--hi-mono)!important;letter-spacing:.08em!important;text-transform:uppercase;color:#f3f2ed!important;margin:8px 0!important}
.story-detail-cover{position:relative;max-width:660px;aspect-ratio:3/4;overflow:hidden;background:#252524;margin:32px 0 48px}
.story-detail-cover>img{width:100%;height:100%;object-fit:cover;object-position:center top}
.story-detail-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#000b)}
.story-detail-cover .story-panel-copy{position:absolute;left:32px;right:32px;bottom:36px;z-index:2}
@media(max-width:700px){.stories-section .real-story .story-panel-copy{left:18px;right:18px;bottom:24px}.stories-section .real-story .story-panel-copy h3{font-size:32px!important}.story-detail-cover .story-panel-copy{left:24px;right:24px;bottom:28px}}

/* Partner artwork keeps its original proportions, separate from cover typography. */
.editorial-logo{background:#252524;aspect-ratio:4/3}.editorial-logo>img{position:absolute;top:7%;left:20%;width:60%;height:38%;object-fit:contain;object-position:center;opacity:1}.editorial-logo:after{display:none}.editorial-logo .story-panel-copy{left:28px;right:28px;bottom:28px}.editorial-logo .story-panel-copy h3{font-size:clamp(25px,3vw,40px)!important}.editorial-logo .editorial-cover-copy h2{font-size:clamp(24px,2.4vw,36px)!important}

/* Compact headers use separate flow rows so translated controls cannot collide. */
@media(max-width:900px){
  body>header{display:grid;grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr);grid-template-rows:44px 18px 44px 44px;height:auto;min-height:150px;padding:4px 5%;column-gap:4px;align-items:center}
  header .menu-shell .logo{position:static;grid-column:2;grid-row:1;transform:none;justify-self:center}
  header .menu-shell .logo img{width:90px}
  header .header-clocks{position:static;grid-column:1/-1;grid-row:2;transform:none;justify-content:center;font-size:7px;line-height:10px;gap:10px}
  header .menu-shell .menu-toggle{position:static;grid-column:3;grid-row:1;transform:none;justify-self:end;min-height:44px;font-size:12px;gap:8px}
  header .header-back{position:static;grid-column:1;grid-row:1;transform:none;justify-self:start;min-width:44px;min-height:44px;text-align:left;font-size:22px}
  header .header-left{position:relative;grid-column:1/-1;grid-row:3;left:auto;top:auto;transform:none;justify-content:space-between;gap:8px;min-width:0}
  header .header-left .header-calendar,header .header-left .header-updates{font-size:10px;padding:14px 0}
  header .header-left a:before,header .header-left a:after{display:none}
  header .header-radio{font-size:10px;min-height:44px}
  header .header-radio-group{gap:3px}
  header .radio-transport button{width:26px;min-height:44px;padding:4px}
  header a.header-group,header a.header-visit{position:static;top:auto;left:auto;right:auto;transform:none;font-size:10px;line-height:1.4;min-height:44px;max-width:none;padding:8px 0;display:flex;align-items:center;white-space:normal}
  header a.header-group{grid-column:1/3;grid-row:4;justify-self:start;text-align:left}
  header a.header-visit{grid-column:3;grid-row:4;justify-self:end;text-align:right}
  header .menu-shell nav{top:100%;right:5%;width:338px;max-width:90vw;max-height:calc(100svh - 170px)}
  header .radio-status{top:100%;right:0;max-width:90vw;white-space:normal}
}

/* Match the existing Artists lift; leave Artists rules unchanged. */
.stories-section .story-stack{padding-top:8px;padding-bottom:28px;margin-top:-8px;margin-bottom:-12px}
.stories-section .story-panel.real-story:focus-visible,.destination.floor-text-card:focus-visible{outline:2px solid #f3f2ed;outline-offset:3px}
@media(prefers-reduced-motion:no-preference){
 .stories-section .story-panel.real-story,.destination.floor-text-card{transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s ease}
 .stories-section .story-panel.real-story:focus-visible,.destination.floor-text-card:focus-visible{transform:translateY(-5px) scale(.98);box-shadow:0 16px 28px #0005}
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 .stories-section .story-panel.real-story:hover,.destination.floor-text-card:hover{transform:translateY(-5px) scale(.98);box-shadow:0 16px 28px #0005}
}
@media(prefers-reduced-motion:reduce){
 .stories-section .story-panel.real-story,.destination.floor-text-card{transition:none;transform:none!important}
}
.header-radio-group{position:relative}
.header-radio-tooltip{position:absolute;right:0;top:calc(100% + 4px);z-index:20;white-space:nowrap;padding:8px 10px;background:#30302e;color:#f3f2ed;font:400 10px/1.4 var(--hi-mono);visibility:hidden;opacity:0;pointer-events:none}
.header-radio-group:hover .header-radio-tooltip,.header-radio-group:focus-within .header-radio-tooltip{visibility:visible;opacity:1}

@media(hover:hover) and (pointer:fine){.mouse-drag-rail{cursor:grab;user-select:none;-webkit-user-select:none}}
.mouse-drag-rail.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto;user-select:none;-webkit-user-select:none}
.mouse-drag-rail.is-dragging *{cursor:grabbing!important;user-select:none;-webkit-user-select:none}

/* Partner announcement: original poster and readable original post. */
.partnership-article{max-width:1160px}
.partnership-article .page-title{max-width:18ch;font-size:clamp(36px,5vw,68px);line-height:1.04;letter-spacing:-.045em;margin-bottom:36px}
.partnership-article .editorial-content{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,64px);align-items:start}
.partnership-article .story-detail-cover.editorial-poster{aspect-ratio:auto;margin:0;background:transparent;max-width:none}
.partnership-article .story-detail-cover.editorial-poster>img{display:block;position:static;width:100%;height:auto;object-fit:contain}
.story-detail-cover.editorial-poster:after,.editorial-cover.editorial-poster:after{display:none}
.partnership-article .interview-body{max-width:58ch;margin:0}
.partnership-article .interview-body p{font-size:16px;line-height:1.65;margin:0 0 22px;text-wrap:pretty}
.partnership-article .interview-body .story-intro{font-size:clamp(21px,2.1vw,27px);line-height:1.3;font-weight:700!important;margin-bottom:26px}
.partnership-article .interview-body strong{font-weight:700}
.partnership-article .interview-body .interview-source{font:400 11px/1.8 var(--hi-mono)!important;border-color:#ffffff30;margin-top:30px;padding-top:18px;color:var(--muted)}
.editorial-cover.editorial-poster{aspect-ratio:auto;overflow:visible;background:transparent}
.editorial-cover.editorial-poster>img{display:block;width:100%;height:360px;object-fit:contain;background:#292928}
.editorial-cover.editorial-poster .editorial-cover-copy{position:static;padding:22px 0 0}
.editorial-cover.editorial-poster .editorial-cover-copy h2{font-size:clamp(26px,3vw,40px)!important}
@media(max-width:760px){.partnership-article .editorial-content{grid-template-columns:1fr;gap:28px}.partnership-article .story-detail-cover.editorial-poster{width:100%;max-width:460px}.partnership-article .interview-body{max-width:100%}.partnership-article .page-title{margin-bottom:26px}.editorial-cover.editorial-poster>img{height:320px}}

/* Article reading rhythm measured on UNVRS, 3 Nov 2026; HI LIFE typeface retained. */
.story-detail .interview-body{max-width:674px}
.story-detail .interview-body p{font-family:var(--hi-display)!important;font-size:20px;line-height:1.25;letter-spacing:normal;margin:0 0 25px;font-weight:400!important}
.story-detail .interview-body .story-intro{font-size:20px;line-height:1.25;font-weight:400!important;margin-bottom:25px}
.story-detail .interview-body .interview-source{font:400 12px/1.5 var(--hi-mono)!important;border-color:#ffffff30;margin-top:32px;padding-top:20px}
@media(max-width:760px){.story-detail .interview-body p,.story-detail .interview-body .story-intro{font-size:18px;line-height:1.25;margin-bottom:22.5px}}

/* Web-native editorial header and sponsor treatment. No flyer letterboxing. */
.story-detail .article-heading{text-align:center;padding:32px 0 56px;max-width:1100px;margin:auto}
.story-detail .article-heading .page-title{max-width:20ch;margin:16px auto 24px;font:700 clamp(40px,6.5vw,88px)/.98 var(--hi-display)!important;letter-spacing:-.045em;text-transform:uppercase;text-wrap:balance}
.story-detail .article-heading .eyebrow,.story-detail .article-date{font:400 12px/1.5 var(--hi-mono)!important;letter-spacing:.05em}
.partnership-article .editorial-content{border-top:1px solid #ffffff25;padding-top:48px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(40px,7vw,100px)}
.partnership-article .story-detail-cover.editorial-logo{position:relative;aspect-ratio:auto;max-width:none;margin:0;padding:35px 0;background:transparent;mix-blend-mode:screen}
.partnership-article .story-detail-cover.editorial-logo>img{display:block;position:static;width:100%;max-width:320px;height:auto;margin:auto;object-fit:contain;filter:grayscale(1) contrast(4)}
.editorial-cover.editorial-logo{background:transparent;border-top:1px solid #ffffff25;border-bottom:1px solid #ffffff25}
.editorial-cover.editorial-logo>img{filter:grayscale(1) contrast(4);mix-blend-mode:screen}
@media(max-width:760px){.story-detail .article-heading{padding:24px 0 32px}.partnership-article .editorial-content{grid-template-columns:1fr;gap:28px;padding-top:28px}.partnership-article .story-detail-cover.editorial-logo{padding:0}.partnership-article .story-detail-cover.editorial-logo>img{max-width:190px}}

.partnership-article .story-detail-cover.editorial-logo{background:#212121;padding:40px 0;mix-blend-mode:normal}
.article-partner-logo{margin:0 auto;width:280px;height:157px;max-width:100%;mix-blend-mode:screen}
.article-partner-logo img{width:308px;left:-14px;top:-77px}
@media(max-width:760px){.partnership-article .story-detail-cover.editorial-logo{padding:0}.article-partner-logo{width:200px;height:112px}.article-partner-logo img{width:220px;left:-10px;top:-55px}}

.editorial-cover.editorial-logo{background:#212121}.update-partner-logo{position:absolute;top:12%;left:50%;transform:translateX(-50%)}

/* UNVRS article proportions measured at 1448px: title 84/84, hero 2.35:1, body 674px at 20/25. */
.story-detail{max-width:none;padding-left:40px;padding-right:40px}
.story-detail .article-heading{max-width:820.8px;padding:24px 0 44px}
.story-detail .article-heading .page-title{font-size:clamp(40px,5.8vw,84px)!important;line-height:1!important;max-width:none}
.article-hero{margin:0 -40px 64px;aspect-ratio:2.35;overflow:hidden}
.article-hero img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 58%}
.partnership-article .editorial-content{max-width:1368px;margin:auto;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;border:0;padding-top:0}
.partnership-article .interview-body{width:100%;max-width:674px}
.partnership-article .story-detail-cover.editorial-logo{padding:40px 0}
@media(max-width:760px){.story-detail{padding-left:20px;padding-right:20px}.story-detail .article-heading{padding:20px 0 32px}.article-hero{margin:0 -20px 32px}.partnership-article .editorial-content{grid-template-columns:1fr;gap:28px}.partnership-article .story-detail-cover.editorial-logo{padding:0}}

/* Approved club library: original master proportions and verbatim copy. */
.guest-club-page{display:block;text-align:left;min-height:65vh;max-width:1360px;margin:auto}
.guest-club-title{font:700 clamp(38px,6vw,78px)/1 var(--hi-display);letter-spacing:-.04em;margin:20px 0 48px}
.guest-club-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(32px,5vw,80px)}
.guest-club-brand img{display:block;width:100%;height:auto;max-width:560px;max-height:none;object-fit:contain}
.guest-club-description{font:400 var(--hi-description-size)/var(--hi-description-leading) var(--hi-description-font);letter-spacing:normal;text-transform:none;text-align:left;white-space:normal;overflow-wrap:anywhere;color:var(--ink)}
.guest-club-copy>.eyebrow{margin-top:0}
.guest-club-description p{font:inherit;letter-spacing:inherit;margin:0 0 var(--hi-description-paragraph)}
.guest-club-description p:last-child{margin-bottom:0}
.guest-club-copy .guest-club-visit{margin-top:32px}
@media(max-width:760px){.guest-club-layout{grid-template-columns:1fr;gap:32px}.guest-club-brand img{max-width:460px}.guest-club-title{margin-bottom:32px}}

/* Preserve complete environmental portraits in artist detail; cards retain consistent crops. */
.artist-profile-photo .portrait.portrait-scene{aspect-ratio:auto!important;background:transparent}
.artist-profile-photo .portrait.portrait-scene img{width:100%;height:auto;object-fit:contain}

/* Shared editorial description typography: Garden floor is the reference. */
:root{--hi-description-font:var(--hi-mono);--hi-description-size:14px;--hi-description-leading:1.8;--hi-description-paragraph:18px}
main .floor-description .floor-energy,
main .story-detail .interview-body p,
main .story-detail .interview-body .story-intro{font-family:var(--hi-description-font)!important;font-size:var(--hi-description-size);font-weight:400!important;line-height:var(--hi-description-leading);letter-spacing:normal;text-align:left;text-transform:none;margin:0 0 var(--hi-description-paragraph);text-wrap:pretty}
main .story-detail .interview-body p:last-child{margin-bottom:0}
main .story-detail .interview-body .interview-source{font:400 12px/1.8 var(--hi-mono)!important;margin-top:32px;padding-top:20px}
main .story-detail .interview-question h2{font-family:var(--hi-description-font);font-size:clamp(17px,1.6vw,21px);font-weight:700;line-height:1.5;letter-spacing:normal;text-align:left;margin:0 0 18px}

/* Community origin: full-width readable introduction, existing music/community blocks retained. */
main .club-about .three-col{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:clamp(24px,4vw,60px)}
main .club-about .club-origin{grid-column:auto;max-width:none;margin-bottom:0}
main .club-about .three-col p{font:400 var(--hi-description-size)/var(--hi-description-leading) var(--hi-description-font)!important;text-align:left;letter-spacing:normal;margin:0 0 var(--hi-description-paragraph)}
@media(max-width:700px){main .club-about .three-col{grid-template-columns:1fr}}

main .club-about .three-col h2{margin-top:0;margin-bottom:22px;text-align:left}
/* Shared image/text layout for illustrated interviews and stories. */
.story-detail:not(.partnership-article) .editorial-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,60px);align-items:start;max-width:1368px;margin:auto}
.story-detail:not(.partnership-article) .story-detail-cover{width:100%;max-width:none;height:auto;min-height:0;aspect-ratio:1/1;margin:0;overflow:hidden;position:relative}
.story-detail:not(.partnership-article) .story-detail-cover .story-original-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.story-detail:not(.partnership-article) .story-detail-cover .story-panel-copy{display:none}
.story-detail:not(.partnership-article) .interview-body{margin:0;max-width:100%;min-width:0}
@media(max-width:760px){.story-detail:not(.partnership-article) .editorial-content{grid-template-columns:1fr;gap:28px}}

/* Directory pagination follows the existing compact outline-button language. */
main .more-djs.button{font:400 13px/1.4 var(--hi-mono)!important;letter-spacing:0;padding:14px 24px;margin:32px auto 0;min-height:48px;border:1px solid #ffffff50;border-radius:4px;background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:center;transition:background .18s,border-color .18s}
main .more-djs.button:hover{background:#ffffff14;border-color:#ffffff99}
main .more-djs.button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.artist-photo-credit{font:400 10px/1.6 var(--hi-mono);text-align:left;color:var(--muted);margin:10px 0 0;overflow-wrap:anywhere}

/* Keep mouse rails free between cards, including after release. */
#home-events .event-stack.free-mouse-scroll,.stories-section .story-stack.free-mouse-scroll,.residents-section .artist-grid.free-mouse-scroll{scroll-snap-type:none;scroll-behavior:auto}

/* Contact inherits the small menu signature typography. */
header .menu-shell nav a.menu-contact{display:block;width:fit-content;margin:8px 0 0;padding:0;border:0;font:inherit!important;letter-spacing:inherit;text-transform:uppercase;white-space:nowrap}
header .menu-shell nav a.menu-contact:hover{transform:none;text-decoration:underline;text-underline-offset:4px}
header .menu-shell nav a.menu-contact:focus-visible{outline:2px solid currentColor;outline-offset:5px}

.footer-privacy{font:400 11px/1.6 var(--hi-mono);color:inherit;text-decoration:underline;text-underline-offset:3px}.privacy-page{max-width:900px}.privacy-page h2{font-size:22px;margin-top:28px}.privacy-page p{font-size:16px;line-height:1.65}.privacy-page a{text-decoration:underline;text-underline-offset:3px}
