/*
Theme Name: FreeSonS Rock
Theme URI: https://freesons.ch/
Author: FreeSonS
Description: Le site officiel de FreeSonS, cover rock en live.
Version: 1.0.0
Requires at least: 6.3
Requires PHP: 7.4
Text Domain: freesons-rock
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

@font-face{font-family:Rock;src:url('assets/rock-display.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Archivo;src:url('assets/archivo-black.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:DM;src:url('assets/dm-sans.ttf') format('truetype');font-weight:400 700;font-style:normal;font-display:swap}
:root{--ink:#0a0a0a;--paper:#f2f2ef;--red:#d32929;--line:#d1d1c9;--muted:#a4a49d;--heading:Archivo,Impact,sans-serif;--rock:Rock,Impact,sans-serif;--body:DM,Arial,sans-serif;--grain:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' opacity='.065' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:118px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.75 var(--body)}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--heading);font-weight:400;line-height:1.12}h2{font-size:clamp(34px,3.7vw,57px);letter-spacing:-1.4px}::selection{background:var(--red);color:#fff}:focus-visible{outline:3px solid #ff894f;outline-offset:5px}.wrap{width:calc(100% - 120px);max-width:1300px;margin-inline:auto}.section-pad{padding-block:118px}.red-text{color:var(--red)}.eyebrow{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:2.1px;font-weight:700;line-height:1.4;margin-bottom:22px}.eyebrow>span{display:block;width:24px;height:2px;background:var(--red);flex-shrink:0}.eyebrow.light{color:var(--paper)}.outline-text{color:transparent;-webkit-text-stroke:1px var(--paper)}.skip-link{position:fixed;top:-80px;left:15px;background:var(--paper);color:var(--ink);padding:12px;z-index:100}.skip-link:focus{top:12px}
/* A centered masthead frames the band's own name. */
.site-header{height:104px;padding-inline:60px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:sticky;top:0;z-index:30;background:var(--ink);color:var(--paper);border-bottom:1px solid #ffffff19}.site-header>.wordmark{grid-column:2;grid-row:1;justify-self:center;font-size:38px;position:relative;z-index:2}.wordmark{color:var(--red);font:400 32px/1 var(--rock);letter-spacing:-1.4px;white-space:nowrap;display:inline-block;transform:rotate(-3deg)}.brand-dot{color:var(--red)}.site-header nav{display:contents}.nav-left,.nav-right{display:flex;gap:32px;align-items:center;grid-row:1}.nav-left{grid-column:1;justify-content:flex-end;padding-right:52px}.nav-right{grid-column:3;justify-content:flex-start;padding-left:52px}.site-header nav a{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;white-space:nowrap;position:relative;padding-block:12px}.site-header nav a:after{content:'';position:absolute;bottom:2px;height:2px;left:0;right:100%;background:var(--red);transition:right .2s}.site-header nav a:hover:after,.site-header nav a.is-active:after{right:0}.nav-contact>span{margin-left:5px;font-size:16px}.menu-toggle{display:none}
/* Full-bleed stage image and an oversized FreeSonS poster. */
.hero{height:calc(100svh - 104px);min-height:620px;max-height:850px;background:var(--ink);color:var(--paper);position:relative;isolation:isolate;overflow:hidden;clip-path:polygon(0 0,100% 0,100% 93%,0 100%)}
.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-3}.hero-image{object-position:center 47%;opacity:.68}.hero-shade{z-index:-2;background:linear-gradient(0deg,#080808 0%,#08080855 24%,#08080822 50%,#080808a1 100%),linear-gradient(90deg,#08080877,transparent 50%,#08080844)}.hero:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:var(--grain);opacity:.8}.hero-content{height:100%;padding-block:38px 160px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.hero .eyebrow{justify-content:center;font-size:9px;letter-spacing:4px;margin-bottom:26px}.hero .eyebrow>span{width:30px}.hero h1{color:var(--red);font-family:var(--rock);font-size:clamp(80px,14.6vw,215px);line-height:1.08;letter-spacing:-7px;white-space:nowrap;width:max-content;max-width:100%;text-shadow:3px 3px 0 #000b,0 3px 35px #0009;transform-origin:center}.hero-slogan{font:400 clamp(22px,2.8vw,42px)/1.3 var(--heading);letter-spacing:-1px;margin-top:16px}.hero-slogan>span{color:var(--red)}.hero-copy{font-size:12px;letter-spacing:.2px;color:#c8c8bf;margin-top:17px}.hero-actions{display:flex;justify-content:center;gap:14px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:27px;padding:17px 24px;border:1px solid transparent;font-size:10px;font-weight:700;letter-spacing:1.5px;line-height:1.5;text-transform:uppercase;transition:background .2s,transform .2s,box-shadow .2s}.button>span{font-size:19px;line-height:1}.button-red{background:var(--red);color:#fff}.button-red:hover{background:#b71e1e}.button-outline{background:#09090944;border-color:#f2f2efbd;color:var(--paper)}.button-outline:hover{background:var(--paper);color:var(--ink)}.button-outline>.small-play{font-size:10px}.hero-bottom{position:absolute;bottom:94px;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:30px}.hero-bottom>span{font-size:8px;letter-spacing:2px;color:#b4b4a9}.hero-next{display:flex;gap:14px;align-items:center}.hero-next i{height:6px;width:6px;background:var(--red);border-radius:50%;box-shadow:0 0 0 5px #d3292922}.hero-next>span{font-size:7px;letter-spacing:1.8px;color:#b4b4a9;line-height:1.5}.hero-next strong{display:block;color:var(--paper);font-size:10px;font-weight:700;margin-top:5px;letter-spacing:1px}.hero-next b{font-weight:400;font-size:25px;line-height:1;margin-left:10px}
/* Two large, offset images invite people into the music and booking. */
.promo-section{padding-block:82px 70px;background-image:var(--grain)}.promo-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}.promo-card{aspect-ratio:1.27;position:relative;isolation:isolate;display:block;overflow:hidden;background:var(--ink);border:1px solid #f2f2ef;outline:5px solid #cccac3;color:var(--paper)}.promo-live{outline-color:var(--red)}.promo-book{margin-top:88px}.promo-card>img{position:absolute;inset:0;width:100%;height:100%;z-index:-2;opacity:.65;object-position:center;transition:transform .7s,opacity .5s}.promo-book>img{object-position:42% center;filter:grayscale(1)}.promo-card:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#000c,#0001 80%)}.promo-content{position:absolute;left:31px;right:31px;bottom:31px}.promo-kicker{font-size:9px;letter-spacing:2px;font-weight:700;display:block;margin-bottom:21px}.promo-card h2{font-family:var(--rock);font-size:clamp(30px,3.6vw,54px);line-height:1.12;letter-spacing:-1.2px}.promo-card h2 span{color:var(--red)}.promo-content>p{display:flex;justify-content:space-between;align-items:center;font-size:9px;font-weight:700;letter-spacing:2px;margin-top:24px;border-top:1px solid #ffffff6e;padding-top:16px}.promo-content b{font-size:23px;font-weight:400;line-height:1}.promo-index{position:absolute;right:22px;top:17px;font-size:10px;letter-spacing:1px}.promo-card:hover>img{transform:scale(1.055);opacity:.85}
/* Poster-like date cards take the place of editorial rows. */
[data-word]{position:relative;isolation:isolate;overflow:hidden}[data-word]:before{content:attr(data-word);position:absolute;z-index:-1;top:-9px;left:3%;font:400 clamp(170px,22vw,340px)/1 var(--heading);letter-spacing:-16px;color:#00000005;white-space:nowrap;pointer-events:none}.concerts{padding-top:91px;background-image:var(--grain)}.concert-layout{display:block}.section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:40px}.section-intro .eyebrow{margin-bottom:17px}.section-intro h2{font-size:clamp(32px,3.3vw,49px)}.subtle-link{font-size:9px;letter-spacing:1.5px;font-weight:700;display:flex;align-items:center;gap:20px;white-space:nowrap;padding-bottom:7px}.subtle-link>span{font-size:21px}.subtle-link:hover{color:var(--red)}.concert-list{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.concert-row{min-height:372px;padding:31px 29px;background:var(--ink);background-image:var(--grain);color:var(--paper);display:flex;flex-direction:column;position:relative;isolation:isolate;border-top:4px solid var(--ink)}.concert-row:first-child{border-top-color:var(--red)}.date-block{display:flex;align-items:center;gap:15px;padding-bottom:22px;border-bottom:1px solid #ffffff38;margin-bottom:27px;line-height:1.4}.date-block strong{font:400 58px/1 var(--heading);letter-spacing:-3px}.date-block>span{font-size:10px;font-weight:700;letter-spacing:1.6px}.concert-info h3{font-size:clamp(23px,2.3vw,34px);letter-spacing:-1px;overflow-wrap:anywhere}.concert-info p{font-size:12px;color:#b7b7ae;margin-top:11px}.next-pill{position:absolute;right:20px;top:13px;font-size:6px;letter-spacing:1px;color:#f1736c;font-weight:700}.venue-link{margin-top:auto;display:flex;align-items:center;justify-content:space-between;width:100%;border:1px solid #ffffff9e;padding:10px 15px;font-size:23px;line-height:1.3;transition:background .2s,color .2s}.venue-link>span{font-size:9px;font-weight:700;letter-spacing:1.7px}.venue-link:hover{background:var(--paper);color:var(--ink)}.past-dates{grid-column:1/-1;font-size:11px;margin-top:7px}.past-dates summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:19px 0;border-bottom:1px solid #bdbdb2;color:#5f5f57}.past-dates summary::-webkit-details-marker{display:none}.past-dates summary>span{font-size:24px;line-height:1}.past-dates[open] summary>span{transform:rotate(45deg)}.past-dates ul{list-style:none;margin:0;padding:0}.past-dates li{display:flex;gap:25px;padding:12px 0;border-bottom:1px solid #d0d0c8}.past-dates time{font-size:10px;color:#6a6a60;min-width:85px}
/* Media, portraits, and audience photos share a strong black/white rhythm. */
.media-section{background:var(--ink);color:var(--paper);padding-block:150px 118px;clip-path:polygon(0 0,100% 43px,100% 100%,0 100%);margin-top:-1px}.media-section:before,.gallery-section:before{color:#ffffff04;top:45px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:42px}.section-heading>p{font-size:12px;color:#aaa99f;line-height:1.8}.media-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:55px;align-items:center}.live-poster{position:relative;aspect-ratio:1.5;isolation:isolate;overflow:hidden;padding:0;background:#151515;color:var(--paper);text-align:left;border:1px solid #f2f2ef38}.live-poster>img{width:100%;height:100%;transition:transform .6s}.live-poster:hover>img{transform:scale(1.05)}.poster-vignette{position:absolute;inset:0;background:linear-gradient(0deg,#000d,transparent 80%)}.video-kicker{position:absolute;top:20px;left:23px;font-size:8px;letter-spacing:1.8px;display:flex;gap:8px;align-items:center}.video-kicker i{height:5px;width:5px;background:var(--red);border-radius:50%}.big-play{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);width:69px;height:69px;display:flex;align-items:center;justify-content:center;border:1px solid var(--paper);background:#0003;font-size:20px;padding-left:4px;transition:background .2s,border-color .2s}.live-poster:hover .big-play{background:var(--red);border-color:var(--red)}.video-caption{position:absolute;left:23px;bottom:24px;font:400 22px/1.3 var(--heading);max-width:90%}.video-caption small{font:700 8px/1.5 var(--body);letter-spacing:1.8px;margin-top:10px;display:flex;gap:15px;align-items:center}.video-caption small>span{font-size:18px}.track-heading{font-size:9px;letter-spacing:2px;color:#aaa99f;margin-bottom:3px}.track-row{display:flex;gap:20px;align-items:center;padding:24px 0;border-bottom:1px solid #41413b}.track-number{font-size:9px;color:#95958c;align-self:flex-start;margin-top:7px}.track-row h3{font-size:24px;letter-spacing:-.6px}.track-row p{font-size:10px;color:#a4a49a;margin-top:7px}.track-button{margin-left:auto;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:46px;background:transparent;padding:0;color:#aaa99f;font-size:8px}.track-icon{width:33px;height:33px;border:1px solid #85857b;display:flex;align-items:center;justify-content:center}.track-icon:after{content:'';border-left:7px solid var(--paper);border-top:4px solid transparent;border-bottom:4px solid transparent;margin-left:2px}.track-button:hover .track-icon,.track-button.is-playing .track-icon{background:var(--red);border-color:var(--red)}.track-button.is-playing .track-icon:after{width:7px;height:10px;border:0;border-inline:2px solid white;margin-left:0}.youtube-link{display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:1.4px;padding-top:24px}.youtube-link>span{font-size:21px}.youtube-link:hover{color:#ed6860}.media-status{padding:15px;background:#402721;font-size:12px;margin-top:20px}.rock-strip{display:flex;align-items:center;gap:36px;height:81px;background:var(--red);color:var(--paper);overflow:hidden;white-space:nowrap;font:400 28px/1 var(--rock)}.rock-strip span{flex-shrink:0}.rock-strip b{font-size:24px;font-weight:400}.rock-strip span:nth-of-type(even){color:transparent;-webkit-text-stroke:1px var(--paper)}
.band-section{background-image:var(--grain)}.band-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:13%;align-items:end;margin-bottom:43px}.band-intro h2{font-size:clamp(30px,3.1vw,46px)}.band-copy{font-size:13px;color:#62625a;line-height:1.9}.band-copy p+p{margin-top:13px}.band-photo{height:360px;overflow:hidden;position:relative;margin-bottom:31px;background:#222}.band-photo img{width:100%;height:100%;object-position:center 45%;filter:grayscale(1);transition:filter .6s}.band-photo:hover img{filter:grayscale(0)}.band-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 50%,#0006)}.band-photo>span{position:absolute;right:25px;bottom:23px;color:var(--paper);z-index:1;font:400 19px/1.4 var(--rock);text-align:right}.members{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.portrait{aspect-ratio:.83;background:#181818;overflow:hidden;border-bottom:3px solid var(--red)}.portrait img{width:100%;height:100%;object-position:center 25%;transition:transform .5s}.members article:hover img{transform:scale(1.045)}.member-caption{display:flex;align-items:baseline;justify-content:space-between;gap:5px;margin-top:15px}.member-caption h3{font-size:20px;letter-spacing:-.5px}.member-caption>span{font-size:8px;letter-spacing:1.3px;color:#737367}.gallery-section{background:var(--ink);color:var(--paper);padding-block:145px 150px;clip-path:polygon(0 0,100% 38px,100% 100%,0 calc(100% - 35px))}.text-link{font-size:11px;font-weight:700;display:inline-flex;gap:20px;align-items:center}.text-link:hover{color:var(--red)}.gallery-section .text-link{font-size:10px;color:#bdbdb2}.gallery-grid{display:grid;grid-template-columns:1.12fr 1fr;grid-template-rows:232px 232px;gap:17px}.gallery-item{position:relative;isolation:isolate;overflow:hidden;background:#222;padding:0;text-align:left;color:var(--paper);border:1px solid #f2f2ef28}.gallery-item.gallery-wide{grid-row:span 2}.gallery-item>img{width:100%;height:100%;transition:transform .6s}.gallery-item:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#000d,transparent 70%)}.gallery-item:hover>img{transform:scale(1.05)}.gallery-item>span{position:absolute;bottom:22px;left:24px;z-index:1;max-width:80%}.gallery-item strong{display:block;font:400 21px/1.3 var(--heading);letter-spacing:-.6px}.gallery-item small{display:block;font-size:8px;letter-spacing:1.5px;margin-top:9px}.gallery-item>i{position:absolute;bottom:20px;right:22px;z-index:1;font-size:24px;font-style:normal;transition:transform .2s}.gallery-item:hover>i{transform:translate(3px,-3px)}.gallery-wide strong{font-size:27px}.gallery-wide>img{object-position:48% center}.contact-section{background:var(--red);color:var(--paper);margin-top:-36px;padding-top:151px;position:relative;z-index:-0}.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:13%;align-items:center}.contact-section .eyebrow>span{background:var(--paper)}.contact-section h2{font:400 clamp(49px,5.4vw,79px)/1.16 var(--rock);letter-spacing:-1.5px}.contact-section h2>span{color:transparent;-webkit-text-stroke:1px var(--paper);display:inline-block;transform:rotate(-3deg);transform-origin:left center;white-space:nowrap}.contact-lead{font:400 29px/1.3 var(--heading);letter-spacing:-.8px;margin-bottom:23px}.contact-copy>p:not(.contact-lead):not(.contact-note){font-size:13px;line-height:1.9;color:#ffe0db;max-width:390px}.contact-email{font:400 clamp(26px,2.7vw,39px)/1.3 var(--heading);letter-spacing:-1px;display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:1px solid #f2f2ef9c;padding:17px 0 14px;margin-top:16px;white-space:nowrap}.contact-email>span{font:400 33px/1 var(--body);transition:transform .2s}.contact-email:hover>span{transform:translate(4px,-4px)}.contact-note{font-size:10px;color:#ffe0db;line-height:1.9;margin-top:18px}.social-links{display:flex;gap:26px;margin-top:29px;font-size:10px}.social-links a:hover{text-decoration:underline;text-underline-offset:5px}.site-footer{background:var(--ink);color:var(--paper);width:100%;max-width:none;min-height:180px;padding:45px max(60px,calc((100vw - 1300px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.site-footer>div{display:flex;align-items:center;gap:30px}.site-footer .wordmark{font-size:35px}.site-footer>div>span{border-left:1px solid #55554b;padding-left:28px;color:#a5a599;font-size:8px;letter-spacing:1.7px}.site-footer>p{color:#a5a599;font-size:9px}.back-top{display:flex;gap:24px;align-items:center;font-size:8px;letter-spacing:1.5px}.back-top>span{font-size:25px}
/* Modal controls and keyboard focus remain available throughout. */
dialog{border:1px solid #525249;background:var(--ink);color:var(--paper);padding:0;max-width:100%;box-shadow:0 20px 100px #0008}dialog::backdrop{background:#080807ed;backdrop-filter:blur(4px)}.dialog-bar{display:flex;align-items:center;justify-content:space-between;padding:13px 20px;gap:20px;font-size:9px;letter-spacing:1.5px}.dialog-bar button{display:flex;align-items:center;gap:17px;background:transparent;color:var(--paper);font-size:11px}.dialog-bar button>span{font-size:26px;line-height:1}.media-dialog{width:min(1000px,94vw)}.media-dialog video{display:block;width:100%;max-height:80svh}.photo-dialog{width:max-content;max-width:94vw}.photo-dialog>img{max-width:90vw;max-height:76svh;object-fit:contain}.photo-dialog>p{font-size:11px;padding:12px 20px;color:#b9b9ad}
/* Brief entrances, then a single reveal per element while scrolling. */
@media(prefers-reduced-motion:no-preference){
.hero-image{animation:stage-arrival 1.8s cubic-bezier(.2,.65,.25,1) both}.hero .eyebrow{animation:stage-label .65s .1s both}.hero h1{animation:poster-impact .95s .2s cubic-bezier(.18,.8,.25,1.1) both}.hero-slogan{animation:stage-label .7s .6s both}.hero-copy{animation:stage-label .7s .7s both}.hero-actions{animation:stage-label .7s .82s both}.hero-next i{animation:live-pulse 2.8s 2s ease-out 3}.js-motion .reveal{opacity:0;transform:translate3d(0,31px,0) rotate(.45deg);transition:opacity .7s var(--reveal-delay,0ms),transform .8s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms)}.js-motion .reveal.is-visible{opacity:1;transform:translate3d(0,0,0) rotate(0)}.button:hover{transform:translateY(-3px);box-shadow:4px 4px 0 #0005}.is-playing .track-icon{animation:speaker-beat 1s ease-in-out infinite}.concert-row:hover .date-block strong{color:var(--red);transform:rotate(-5deg)}.date-block strong{transition:transform .25s,color .25s}}
@keyframes stage-arrival{from{opacity:0;transform:scale(1.07)}to{opacity:.68;transform:scale(1)}}@keyframes stage-label{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes poster-impact{0%{opacity:0;transform:translateY(26px) rotate(-3deg) scale(1.1);filter:blur(3px)}65%{opacity:1;transform:translateY(-3px) rotate(.6deg) scale(.995);filter:blur(0)}100%{opacity:1;transform:translateY(0) rotate(0) scale(1);filter:blur(0)}}@keyframes live-pulse{0%,100%{box-shadow:0 0 0 3px #d3292928}50%{box-shadow:0 0 0 8px #d3292900}}@keyframes speaker-beat{0%,100%{box-shadow:0 0 0 0 #d3292944}50%{box-shadow:0 0 0 6px #d3292900}}
@media(min-width:1600px){.hero h1{font-size:224px}.hero{min-height:740px}}
@media(max-width:1150px){.wrap{width:calc(100% - 80px)}.site-header{padding-inline:40px}.site-header>.wordmark{font-size:33px}.nav-left{padding-right:35px}.nav-right{padding-left:35px}.nav-left,.nav-right{gap:23px}.site-header nav a{font-size:9px;letter-spacing:1px}.hero h1{letter-spacing:-5px}.hero-content{padding-bottom:145px}.promo-content{left:25px;right:25px;bottom:25px}.promo-kicker{font-size:8px;letter-spacing:1.5px}.promo-card h2{font-size:38px}.promo-book{margin-top:70px}.section-pad{padding-block:95px}.concerts{padding-top:75px}.section-intro h2{font-size:35px}.concert-row{padding:28px 23px;min-height:352px}.concert-info h3{font-size:25px}.next-pill{font-size:5px;right:14px}.media-section{padding-top:135px}.media-layout{gap:35px}.track-row{gap:15px}.track-row h3{font-size:22px}.video-caption{font-size:19px}.band-intro{gap:8%}.band-photo{height:310px}.members{gap:20px}.member-caption h3{font-size:18px}.member-caption>span{font-size:7px}.gallery-grid{grid-template-rows:205px 205px}.gallery-item strong{font-size:19px}.gallery-wide strong{font-size:24px}.gallery-section{padding-block:135px}.contact-section{padding-top:135px}.contact-layout{gap:10%}.contact-section h2{font-size:58px}.contact-lead{font-size:26px}.site-footer{padding-inline:40px}.site-footer>div>span{display:none}}
@media(max-width:850px){.site-header{height:88px}.site-header>.wordmark{font-size:29px}.nav-left{padding-right:25px}.nav-right{padding-left:25px}.nav-left,.nav-right{gap:17px}.site-header nav a{font-size:8px;letter-spacing:.7px}.nav-contact>span{font-size:13px}.hero{height:calc(100svh - 88px);min-height:620px}.hero h1{font-size:14.2vw;letter-spacing:-4px}.hero-slogan{font-size:28px}.hero .eyebrow{font-size:8px;letter-spacing:3px}.hero-copy{font-size:11px}.hero-actions{gap:12px}.button{padding:15px 18px;font-size:9px;letter-spacing:1px;gap:18px}.hero-bottom{bottom:84px}.hero-bottom>span{font-size:6px;letter-spacing:1px}.hero-next strong{font-size:8px;letter-spacing:.5px}.hero-next>span{font-size:6px}.promo-section{padding-top:66px;padding-bottom:52px}.promo-grid{gap:23px}.promo-card{aspect-ratio:1.06;outline-width:4px}.promo-book{margin-top:53px}.promo-content{left:20px;right:20px;bottom:20px}.promo-card h2{font-size:30px;letter-spacing:-.7px}.promo-kicker{font-size:6px;letter-spacing:1px;margin-bottom:17px}.promo-content>p{font-size:7px;letter-spacing:1.2px;margin-top:18px;padding-top:13px}.promo-index{font-size:8px;right:17px;top:14px}.section-intro{align-items:flex-start;flex-direction:column;gap:17px;margin-bottom:32px}.section-intro h2{font-size:35px}.subtle-link{font-size:8px;letter-spacing:1.3px;padding:0}.concert-list{gap:12px}.concert-row{padding:24px 18px;min-height:324px}.date-block{gap:10px;margin-bottom:23px;padding-bottom:19px}.date-block strong{font-size:43px;letter-spacing:-2px}.date-block>span{font-size:7px;letter-spacing:.8px}.concert-info h3{font-size:20px;letter-spacing:-.7px}.concert-info p{font-size:10px;line-height:1.7;margin-top:10px}.next-pill{font-size:4.5px;letter-spacing:.6px;right:10px;top:10px}.venue-link{padding:9px 10px;font-size:19px}.venue-link>span{font-size:7px;letter-spacing:1px}.section-heading h2{font-size:39px}.media-layout{grid-template-columns:1fr;gap:34px}.live-poster{aspect-ratio:1.8}.track-row{padding:23px 0}.track-row h3{font-size:25px}.track-row p{font-size:11px}.track-heading{font-size:9px}.video-caption{font-size:23px}.band-intro{grid-template-columns:1fr;gap:25px}.band-intro h2{font-size:37px}.band-copy{max-width:590px;font-size:12px}.band-photo{height:285px}.band-photo>span{font-size:15px}.members{gap:17px}.member-caption{flex-direction:column;gap:8px}.member-caption h3{font-size:18px}.member-caption>span{font-size:7px}.gallery-grid{grid-template-rows:185px 185px}.gallery-item>span{left:19px;bottom:19px}.gallery-item strong{font-size:16px}.gallery-wide strong{font-size:21px}.gallery-item small{font-size:6px;letter-spacing:1px}.gallery-item>i{right:17px;bottom:17px;font-size:21px}.contact-layout{gap:8%}.contact-section h2{font-size:45px}.contact-lead{font-size:23px}.contact-copy>p:not(.contact-lead):not(.contact-note){font-size:11px}.contact-email{font-size:25px}.contact-email>span{font-size:25px}.social-links{gap:17px;font-size:9px}.contact-note{font-size:9px}.site-footer{min-height:155px}.site-footer .wordmark{font-size:29px}}
@media(max-width:640px){html{scroll-padding-top:85px}.wrap{width:calc(100% - 42px)}.section-pad{padding-block:70px}.site-header{display:flex;justify-content:center;height:76px;padding-inline:21px}.site-header>.wordmark{font-size:32px}.menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;left:18px;width:40px;height:44px;background:transparent;padding:0;gap:6px}.menu-toggle>span{display:block;width:24px;height:2px;background:var(--paper);transition:transform .2s}.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true]>span:last-child{transform:translateY(-4px) rotate(-45deg)}.site-header nav{display:none;position:absolute;top:76px;left:0;right:0;background:var(--ink);padding:19px 27px 28px;border-bottom:1px solid #6d6d60;box-shadow:0 20px 30px #0007}.site-header nav.is-open{display:block}.nav-left,.nav-right{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0}.site-header nav a{display:block;font-size:14px;letter-spacing:1.2px;padding:13px 0}.site-header nav a:after{bottom:7px;width:27px;right:auto;opacity:0}.site-header nav a.is-active:after{opacity:1}.site-header nav .nav-contact{border:1px solid #c9c9bd;padding:12px 16px;margin-top:14px}.nav-contact>span{float:right;font-size:18px}.hero{height:calc(100svh - 76px);min-height:655px;max-height:850px;clip-path:polygon(0 0,100% 0,100% 96%,0 100%)}.hero-image{object-position:58% center}.hero-shade{background:linear-gradient(0deg,#080808 0%,#08080844 37%,#08080844 65%,#080808b5 100%)}.hero-content{padding-block:40px 170px}.hero .eyebrow{font-size:7px;letter-spacing:2.2px;margin-bottom:27px;gap:11px}.hero .eyebrow>span{width:18px}.hero h1{font-size:14.5vw;letter-spacing:-2.8px;line-height:1.2}.hero-slogan{font-size:23px;letter-spacing:-.8px;line-height:1.45;max-width:330px;margin-top:21px}.hero-copy{max-width:275px;font-size:11px;line-height:1.9;margin-top:19px}.hero-actions{flex-direction:column;gap:12px;margin-top:28px;align-items:center}.hero .button{min-width:247px;padding:15px 20px;font-size:9px;letter-spacing:1px}.hero-bottom{bottom:69px;justify-content:center;gap:0}.hero-bottom>span{display:none}.hero-next{gap:13px;justify-content:center}.hero-next>span{font-size:6px;letter-spacing:1.8px}.hero-next strong{font-size:8px;letter-spacing:.6px;margin-top:6px}.hero-next b{font-size:24px;margin-left:7px}.hero-next i{width:5px;height:5px}.promo-section{padding-block:61px 30px}.promo-grid{grid-template-columns:1fr;gap:27px}.promo-card{aspect-ratio:1.2;outline-width:4px}.promo-book{margin-top:0;margin-left:25px}.promo-live{margin-right:25px}.promo-content{left:21px;right:21px;bottom:21px}.promo-card h2{font-size:clamp(30px,9vw,48px);line-height:1.17}.promo-kicker{font-size:7px;letter-spacing:1.2px;margin-bottom:20px}.promo-content>p{font-size:7px;letter-spacing:1.2px;margin-top:19px;padding-top:13px}.promo-index{font-size:8px}.eyebrow{font-size:7px;letter-spacing:1.6px;gap:10px;margin-bottom:18px}.eyebrow>span{width:18px}h2,.section-intro h2,.section-heading h2{font-size:clamp(29px,8.7vw,45px);letter-spacing:-1px;line-height:1.13}[data-word]:before{font-size:165px;letter-spacing:-9px;top:10px;left:0}.concerts{padding-top:74px}.section-intro{gap:20px;margin-bottom:29px}.section-intro .eyebrow{margin-bottom:17px}.subtle-link{font-size:8px;letter-spacing:1px}.concert-list{grid-template-columns:1fr;gap:17px}.concert-row{padding:28px 25px;min-height:310px}.date-block{gap:17px;margin-bottom:22px;padding-bottom:18px}.date-block strong{font-size:55px;letter-spacing:-3px}.date-block>span{font-size:10px;letter-spacing:1.5px}.next-pill{font-size:6px;right:18px;top:12px;letter-spacing:.8px}.concert-info h3{font-size:30px;letter-spacing:-1px}.concert-info p{font-size:12px;margin-top:9px}.venue-link{padding:10px 15px;font-size:21px;margin-top:26px}.venue-link>span{font-size:9px;letter-spacing:1.4px}.past-dates{margin-top:0;font-size:10px}.past-dates summary{padding-block:15px}.past-dates li{font-size:9px;gap:10px;line-height:1.7}.past-dates time{font-size:8px;min-width:65px}.media-section{padding-top:105px;clip-path:polygon(0 0,100% 22px,100% 100%,0 100%)}.media-section:before,.gallery-section:before{top:55px;font-size:155px}.section-heading{flex-direction:column;align-items:flex-start;gap:19px;margin-bottom:29px}.section-heading>p{font-size:11px;line-height:1.8}.section-heading>p br{display:none}.media-layout{gap:28px}.live-poster{aspect-ratio:1.33}.video-kicker{font-size:7px;top:18px;left:18px;letter-spacing:1.4px}.video-caption{font-size:18px;left:18px;bottom:20px;line-height:1.4}.video-caption small{font-size:7px;letter-spacing:1.2px;margin-top:8px}.big-play{height:56px;width:56px;font-size:17px;top:42%}.track-row{gap:14px;padding:20px 0}.track-row h3{font-size:23px;letter-spacing:-.6px}.track-row p{font-size:9px;margin-top:7px}.track-number{font-size:8px;margin-top:6px}.track-heading{font-size:8px;letter-spacing:1.5px}.track-button{font-size:7px}.track-icon{width:31px;height:31px}.youtube-link{font-size:7px;letter-spacing:1px;padding-top:21px}.rock-strip{height:62px;font-size:22px;gap:26px}.rock-strip b{font-size:19px}.band-intro{gap:23px;margin-bottom:27px}.band-intro h2{font-size:clamp(26px,7.5vw,42px);line-height:1.2}.band-copy{font-size:12px;line-height:1.9}.band-photo{height:235px;margin-bottom:25px}.band-photo img{object-position:52% center}.band-photo>span{font-size:12px;right:14px;bottom:17px}.members{grid-template-columns:repeat(2,1fr);gap:27px 17px}.portrait{aspect-ratio:.81}.member-caption{flex-direction:row;align-items:baseline;margin-top:11px}.member-caption h3{font-size:17px;letter-spacing:-.5px}.member-caption>span{font-size:6px;letter-spacing:.5px}.gallery-section{padding-block:106px 110px;clip-path:polygon(0 0,100% 22px,100% 100%,0 calc(100% - 22px))}.gallery-section .text-link{font-size:10px}.gallery-grid{grid-template-columns:1fr;grid-template-rows:310px 220px 220px;gap:15px}.gallery-item.gallery-wide{grid-row:span 1}.gallery-item>span{left:19px;bottom:19px}.gallery-item strong,.gallery-wide strong{font-size:22px;max-width:265px;line-height:1.3}.gallery-item small{font-size:7px;letter-spacing:1px}.gallery-item>i{right:19px;bottom:19px;font-size:22px}.gallery-wide>img{object-position:48% 43%}.contact-section{margin-top:-23px;padding-top:105px}.contact-layout{grid-template-columns:1fr;gap:38px}.contact-section h2{font-size:clamp(43px,13.3vw,75px);line-height:1.16;letter-spacing:-1.2px}.contact-section .eyebrow{margin-bottom:24px}.contact-lead{font-size:28px;line-height:1.25;margin-bottom:21px}.contact-copy>p:not(.contact-lead):not(.contact-note){font-size:12px}.contact-email{font-size:clamp(27px,8vw,40px);letter-spacing:-1px;padding-top:16px}.contact-email>span{font-size:29px}.contact-note{font-size:10px}.social-links{font-size:10px;gap:26px}.site-footer{padding:38px 21px 28px;flex-wrap:wrap;gap:27px;min-height:160px}.site-footer>div{width:calc(100% - 130px)}.site-footer .wordmark{font-size:28px}.site-footer>p{order:3;width:100%;padding-top:18px;border-top:1px solid #45453b;font-size:8px}.back-top{font-size:7px;gap:16px}.back-top>span{font-size:24px}.dialog-bar{font-size:7px;padding:10px 13px}.dialog-bar button{font-size:10px}.photo-dialog>p{font-size:10px;padding:12px 13px}.photo-dialog>img{max-width:94vw}.js-motion .reveal{transform:translate3d(0,23px,0) rotate(.4deg)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}}

/* The supplied artwork is used intact; screen blending removes its black field. */
.wordmark{width:218px;line-height:0;font-size:0!important;letter-spacing:0;transform:none;mix-blend-mode:screen}
.wordmark img{width:100%;height:auto;object-fit:contain}
.site-header>.wordmark{width:218px}
.hero h1.hero-logo{width:min(1160px,100%);max-width:100%;font-size:0;line-height:0;letter-spacing:0;white-space:normal;text-shadow:none;position:relative;mix-blend-mode:screen}
.hero-logo img{width:100%;height:auto;object-fit:contain}
.hero-content{padding-block:25px 151px}
.hero .eyebrow{margin-bottom:7px}
.hero-actions{margin-top:28px}
.hero-logo:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(110deg,transparent 35%,#fff5 49%,transparent 64%);mix-blend-mode:overlay}
.strip-logo{width:174px;height:58px;object-fit:contain;flex-shrink:0;mix-blend-mode:screen}
.site-footer .wordmark{width:213px}

/* Three original stage drawings respond to position in the page. */
.instrument-stage{--stage-progress:.5;position:relative;isolation:isolate;overflow:hidden;background:#090909;color:var(--paper);padding-block:89px 91px;clip-path:polygon(0 25px,100% 0,100% calc(100% - 25px),0 100%)}
.instrument-stage:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 16% 60%,#d3292918,transparent 29%),radial-gradient(ellipse at 50% 40%,#d3292914,transparent 30%),radial-gradient(ellipse at 85% 60%,#d3292918,transparent 28%),var(--grain)}
.instrument-heading{justify-content:center;font-size:9px;letter-spacing:3px;margin-bottom:24px}
.instrument-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;max-width:1110px;margin-inline:auto}
.instrument{--instrument-delay:0ms;margin:0;min-width:0;position:relative;text-align:center}
.instrument-drums{--instrument-delay:130ms}.instrument-mic{--instrument-delay:260ms}
.instrument-parallax{position:relative;will-change:transform}
.instrument-arrival{transform-origin:50% 70%}
.instrument-art{width:100%;max-width:280px;height:auto;aspect-ratio:1;object-fit:contain;margin-inline:auto;filter:drop-shadow(0 12px 18px #0005);transform-origin:50% 75%}
.instrument figcaption{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:21px;font:400 16px/1.3 var(--heading);letter-spacing:-.2px}
.instrument figcaption>span{font:700 8px/1 var(--body);letter-spacing:1px;color:#e44840}
.instrument figcaption:after{content:'';height:1px;width:27px;background:#d3292966;margin-left:4px}
@media(prefers-reduced-motion:no-preference){
  .hero h1.hero-logo{animation:logo-arrival 1.25s .15s cubic-bezier(.18,.7,.23,1) both}
  .hero-logo:after{animation:logo-light .8s 1.15s ease-out both}
  .hero .eyebrow{animation-delay:.1s}.hero-actions{animation-delay:1s}
  .js-motion .instrument-arrival{opacity:0;transform:translate3d(0,46px,0) scale(.9) rotate(-5deg);transition:opacity .85s var(--instrument-delay),transform 1s cubic-bezier(.16,.7,.2,1) var(--instrument-delay)}
  .instrument-stage.is-revealed .instrument-arrival{opacity:1;transform:translate3d(0,0,0) scale(1) rotate(0)}
  .instrument-guitar .instrument-parallax{transform:translate3d(calc((var(--stage-progress) - .5)*72px),calc((.5 - var(--stage-progress))*27px),0) rotate(calc((var(--stage-progress) - .5)*16deg))}
  .instrument-drums .instrument-parallax{transform:translate3d(0,calc((.5 - var(--stage-progress))*57px),0) rotate(calc((var(--stage-progress) - .5)*-4deg))}
  .instrument-mic .instrument-parallax{transform:translate3d(calc((.5 - var(--stage-progress))*72px),calc((var(--stage-progress) - .5)*27px),0) rotate(calc((.5 - var(--stage-progress))*16deg))}
  .instrument-guitar .instrument-art{animation:guitar-riff 3.1s ease-in-out infinite;animation-play-state:paused}
  .instrument-drums .instrument-art{animation:drum-beat 1.2s ease-in-out infinite;animation-play-state:paused}
  .instrument-mic .instrument-art{animation:microphone-sway 3.8s ease-in-out infinite;animation-play-state:paused}
  .instrument-stage.is-in-view .instrument-art{animation-play-state:running}
}
@keyframes logo-arrival{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(15px) scale(1.035)}64%{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(-3px) scale(1.006)}100%{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(0) scale(1)}}
@keyframes logo-light{0%{opacity:0;transform:translateX(-110%)}18%{opacity:.65}100%{opacity:0;transform:translateX(110%)}}
@keyframes guitar-riff{0%,100%{transform:rotate(-2.5deg) translateY(0)}50%{transform:rotate(2.5deg) translateY(-5px)}}
@keyframes drum-beat{0%,52%,100%{transform:translateY(0) scale(1)}12%{transform:translateY(3px) scale(1.016,.985)}27%{transform:translateY(-2px) scale(.996,1.008)}65%{transform:translateY(2px) scale(1.012,.99)}80%{transform:translateY(-1px) scale(1)}}
@keyframes microphone-sway{0%,100%{transform:rotate(3deg) translateY(-2px)}50%{transform:rotate(-3deg) translateY(4px)}}
@media(max-width:1150px){.site-header>.wordmark{width:190px}.wordmark{width:190px}.site-footer .wordmark{width:190px}.instrument-grid{gap:32px}.instrument-art{max-width:245px}.instrument-stage{padding-block:80px 82px}}
@media(max-width:850px){.site-header>.wordmark{width:160px}.wordmark{width:160px}.hero-content{padding-block:25px 145px}.hero h1.hero-logo{width:100%}.instrument-grid{gap:21px}.instrument-art{max-width:220px}.instrument figcaption{font-size:12px;gap:8px}.instrument figcaption:after{width:17px}.instrument-heading{font-size:8px;letter-spacing:2px}}
@media(max-width:640px){.site-header>.wordmark{width:177px}.hero-content{padding-block:20px 156px}.hero .eyebrow{font-size:6px;letter-spacing:1.8px;margin-bottom:21px}.hero h1.hero-logo{width:calc(100% + 8px);max-width:calc(100% + 8px)}.hero-actions{margin-top:37px}.site-footer .wordmark{width:151px}.site-footer>div{width:158px}.strip-logo{width:137px;height:46px}.instrument-stage{padding-block:64px 64px;clip-path:polygon(0 16px,100% 0,100% calc(100% - 16px),0 100%)}.instrument-heading{font-size:6px;letter-spacing:1.8px;margin-bottom:28px;gap:9px}.instrument-heading>span{width:14px}.instrument-grid{gap:6px}.instrument-art{max-width:155px}.instrument figcaption{font-size:9px;letter-spacing:-.2px;gap:6px;margin-top:20px;white-space:nowrap}.instrument figcaption>span{font-size:6px}.instrument figcaption:after{display:none}.instrument-guitar .instrument-parallax{transform:translate3d(calc((var(--stage-progress) - .5)*27px),calc((.5 - var(--stage-progress))*16px),0) rotate(calc((var(--stage-progress) - .5)*12deg))}.instrument-drums .instrument-parallax{transform:translate3d(0,calc((.5 - var(--stage-progress))*32px),0)}.instrument-mic .instrument-parallax{transform:translate3d(calc((.5 - var(--stage-progress))*27px),calc((var(--stage-progress) - .5)*16px),0) rotate(calc((.5 - var(--stage-progress))*12deg))}}
@media(prefers-reduced-motion:reduce){.hero h1.hero-logo,.hero-logo:after,.instrument-art{animation:none!important}.hero-logo:after{display:none}.instrument-arrival,.js-motion .instrument-arrival{opacity:1;transform:none;transition:none!important}.instrument-parallax{transform:none!important;will-change:auto}}
.strip-logo{mix-blend-mode:normal;background:#010101;border:1px solid #ffffff24;width:192px;height:64px}
@media(max-width:640px){.strip-logo{width:137px;height:46px}}

/* WordPress toolbar offsets apply only to signed-in visitors. */
body.admin-bar .site-header{top:32px}
html:has(body.admin-bar){scroll-padding-top:150px}
@media(max-width:782px){body.admin-bar .site-header{top:46px}html:has(body.admin-bar){scroll-padding-top:164px}}
@media(max-width:640px){html:has(body.admin-bar){scroll-padding-top:131px}}
@media(max-width:600px){body.admin-bar .site-header{top:0}html:has(body.admin-bar){scroll-padding-top:85px}}
/* WordPress data rendering. */
.hero-next strong,.concert-info h3{text-transform:uppercase}.concert-empty{grid-column:1/-1;padding:30px;background:var(--ink);color:var(--paper)}.concert-empty a{text-decoration:underline}.concert-list{grid-auto-rows:auto}.gallery-grid{grid-auto-rows:232px}.wp-content-page h1{font-size:clamp(30px,5vw,64px);margin-bottom:25px}.wp-content-page article+article{margin-top:45px}.wp-content-page .entry-content p{margin-block:16px}.wp-content-page .entry-content a{text-decoration:underline}@media(max-width:640px){.gallery-grid{grid-auto-rows:220px}}
