:root{
  --bg:#000; --bg2:#07070a; --card:#0d0d11; --line:rgba(255,255,255,.1); --line2:rgba(255,255,255,.18);
  --text:#ececf1; --muted:#9a9ca8; --steel:#c9ccd4;
  --chrome:linear-gradient(180deg,#ffffff 0%,#d9dbe2 22%,#7d808b 48%,#f4f5f8 56%,#a9acb6 78%,#e7e8ec 100%);
  --r:16px; --maxw:1180px; --ease:cubic-bezier(.2,.7,.2,1);
  --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px);
  --sal:env(safe-area-inset-left,0px); --sar:env(safe-area-inset-right,0px);
  --dock-h:0px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:#000}
body{background:var(--bg);color:var(--text);font-family:"Space Grotesk",system-ui,-apple-system,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-x:clip;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}
a{color:inherit} img,video{max-width:100%;display:block}
button{font:inherit;color:inherit}
h1,h2,h3{font-family:"Unbounded",sans-serif;line-height:1.08;letter-spacing:-.02em;font-weight:700}
h2{font-size:clamp(2rem,4.6vw,3.6rem);margin-bottom:1.6rem;max-width:16ch}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:#fff;color:#000;padding:.6rem 1rem;z-index:300}
.skip:focus{left:1rem;top:calc(var(--sat) + .5rem)}
:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* chrome text + slow shimmer */
.chrome{background:var(--chrome);background-size:100% 200%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:sheen 9s ease-in-out infinite}
@keyframes sheen{0%,100%{background-position:0 0}50%{background-position:0 100%}}

/* film grain */
.grain{position:fixed;inset:-50%;pointer-events:none;z-index:100;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* scroll progress + cursor light */
.progress{position:fixed;left:0;right:0;top:0;height:2px;z-index:120;pointer-events:none}
.progress span{display:block;height:100%;background:linear-gradient(90deg,#6f727c,#fff,#9a9da6);transform-origin:0 50%;transform:scaleX(var(--p,0))}
.cursor-glow{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;z-index:1;
  background:radial-gradient(circle,rgba(220,225,240,.075),transparent 62%);transform:translate3d(-999px,-999px,0);transition:opacity .4s;opacity:0}
.has-pointer .cursor-glow{opacity:1}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 max(1.5rem,var(--sar)) 0 max(1.5rem,var(--sal))}
.section{padding:clamp(5rem,10vw,8.5rem) 0;position:relative}
.kicker{font-size:.75rem;letter-spacing:.32em;text-transform:uppercase;color:var(--steel);margin-bottom:1.1rem;display:flex;align-items:center;gap:.8rem}
.kicker::before{content:"";width:28px;height:1px;background:var(--chrome);transform-origin:0 50%;transition:transform 1s var(--ease) .2s}
.js .kicker.reveal:not(.in)::before{transform:scaleX(0)}
.center .kicker{justify-content:center}
.lead{font-size:clamp(1.1rem,2vw,1.32rem);color:var(--text);margin-bottom:1.2rem}
p{color:var(--muted);margin-bottom:1rem}
.muted{color:var(--muted)} .small{font-size:.85rem}
.placeholder{color:#d8c79a;border-left:2px dashed #8a7d5c;padding-left:.9rem;font-style:italic}

/* buttons: brushed chrome + cursor spotlight */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600;min-height:48px;padding:.95rem 1.8rem;border-radius:999px;text-decoration:none;color:#0a0a0c;
  background:linear-gradient(180deg,#fafbfc 0%,#c5c8cf 45%,#9a9da6 52%,#e9eaee 100%);border:1px solid rgba(255,255,255,.6);
  box-shadow:inset 0 1px 0 #fff,0 8px 30px -12px rgba(255,255,255,.35);transition:transform .25s var(--ease),box-shadow .25s,filter .25s;-webkit-user-select:none;user-select:none;touch-action:manipulation}
.btn::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(120px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.75),transparent 60%);mix-blend-mode:soft-light}
.btn.ghost::after{background:radial-gradient(140px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.14),transparent 60%);mix-blend-mode:normal}
.btn:active{transform:scale(.97)}
@media (hover:hover){
  .btn:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:inset 0 1px 0 #fff,0 14px 40px -12px rgba(255,255,255,.5)}
  .btn:hover::after{opacity:1}
  .btn.ghost:hover{border-color:#fff}
}
.btn.ghost{background:rgba(255,255,255,.03);color:var(--text);border-color:var(--line2);box-shadow:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.btn.xl{font-size:clamp(.95rem,2vw,1.15rem);padding:1.05rem 2rem}
.btn-sm{background:linear-gradient(180deg,#fafbfc,#b9bcc4);color:#0a0a0c!important;padding:.45rem 1.25rem!important;border-radius:999px;font-weight:600;opacity:1!important}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:calc(.7rem + var(--sat)) max(1.5rem,var(--sar)) .7rem max(1.5rem,var(--sal));transition:background .35s,border-color .35s,transform .45s var(--ease);border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(0,0,0,.72);-webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%);border-bottom-color:var(--line)}
.logo{display:inline-flex;min-height:44px;align-items:center}
.logo img{height:52px;width:auto;filter:drop-shadow(0 0 10px rgba(255,255,255,.12));transition:transform .3s}
@media (hover:hover){.logo:hover img{transform:scale(1.05) rotate(-2deg)}}
.menu{display:flex;gap:1.8rem;align-items:center}
.menu a{text-decoration:none;font-size:.92rem;color:var(--text);opacity:.72;transition:opacity .2s;position:relative;padding:.75rem 0;min-height:44px;display:inline-flex;align-items:center}
.menu a:not(.btn-sm)::after{content:"";position:absolute;left:0;right:0;bottom:.45rem;height:1px;background:#fff;transform:scaleX(0);transform-origin:100% 50%;transition:transform .35s var(--ease)}
.menu a:hover,.menu a.active{opacity:1}
.menu a:hover::after,.menu a.active::after{transform:scaleX(1);transform-origin:0 50%}
.ig{display:inline-flex;align-items:center;gap:.4rem}
.ig-label{display:none}

/* hero */
.hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;text-align:center;background:#000}
.hero-bg{position:absolute;inset:-8% 0;z-index:0;opacity:.55;will-change:transform}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.hero-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 55% at 50% 42%,rgba(0,0,0,.35),rgba(0,0,0,.85) 75%),linear-gradient(180deg,rgba(0,0,0,.6),transparent 30%,transparent 65%,#000)}
.hero-glow{position:absolute;inset:0;z-index:0;background:radial-gradient(ellipse 45% 40% at 50% 42%,rgba(210,215,230,.14),transparent 70%),radial-gradient(ellipse 80% 50% at 50% 110%,rgba(160,165,180,.10),transparent 70%)}
/* slow sweeping club light beams */
.beams{position:absolute;inset:0;z-index:0;pointer-events:none;mix-blend-mode:screen;opacity:.5}
.beams i{position:absolute;bottom:-20%;left:50%;width:22vmax;height:130%;transform-origin:50% 100%;
  background:linear-gradient(0deg,rgba(220,225,240,.16),rgba(220,225,240,0) 75%);-webkit-clip-path:polygon(46% 100%,54% 100%,100% 0,0 0);clip-path:polygon(46% 100%,54% 100%,100% 0,0 0);filter:blur(6px);animation:beam 11s ease-in-out infinite alternate}
.beams i:nth-child(1){margin-left:-11vmax;animation-delay:-2s}
.beams i:nth-child(2){margin-left:-30vmax;animation-duration:14s}
.beams i:nth-child(3){margin-left:8vmax;animation-duration:9s;animation-delay:-5s}
@keyframes beam{0%{transform:rotate(-24deg)}100%{transform:rotate(24deg)}}
/* NB: .hero-inner must NOT create a stacking context (no z-index/transform/opacity), or the logo's screen blend breaks */
.hero-inner{position:relative;padding:calc(5.5rem + var(--sat)) 1.5rem 4.5rem;width:100%;display:flex;flex-direction:column;align-items:center}
.logo-park{mix-blend-mode:screen;will-change:transform,opacity;display:flex;justify-content:center;width:100%}
.hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;width:100%;will-change:transform,opacity}
.logo-stage{width:min(66vh,92vw,680px);width:min(66svh,92vw,680px);aspect-ratio:1;margin:-2% 0 -3%;position:relative}
.logo-stage .tilt-inner{width:100%;height:100%;-webkit-mask-image:radial-gradient(closest-side,#000 82%,transparent 100%);mask-image:radial-gradient(closest-side,#000 82%,transparent 100%)}
.logo-video{width:100%;height:100%;object-fit:contain;background:#000}
.video-tap{position:absolute;inset:0;background:none;border:0;cursor:pointer;z-index:3}

/* interactive tilt + chrome sheen */
.tilt{perspective:900px;touch-action:pan-y;cursor:grab}
.tilt-inner{position:relative;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(var(--ts,1));transform-style:preserve-3d;transition:transform .6s var(--ease);will-change:transform}
.tilt.live .tilt-inner{transition:transform .08s linear}
.sheen{position:absolute;inset:0;pointer-events:none;mix-blend-mode:color-dodge;opacity:var(--so,0);transition:opacity .5s;
  background:radial-gradient(circle at var(--sx,50%) var(--sy,40%),rgba(255,255,255,.95),rgba(190,200,230,.35) 18%,transparent 45%)}
.sheen.masked{mix-blend-mode:overlay;-webkit-mask:url(../assets/brand/logo-chrome.webp) center/contain no-repeat;mask:url(../assets/brand/logo-chrome.webp) center/contain no-repeat}
.tilt.idle .tilt-inner{animation:float 7s ease-in-out infinite}
@keyframes float{0%,100%{transform:rotateX(4deg) rotateY(-8deg) translateY(0)}50%{transform:rotateX(-3deg) rotateY(8deg) translateY(-6px)}}

.eyebrow{font-size:.78rem;letter-spacing:.38em;text-transform:uppercase;color:var(--steel);margin:1rem 0 .6rem}
.eyebrow span{opacity:.5;margin:0 .3rem}
.tags{font-size:clamp(.95rem,1.8vw,1.15rem);color:var(--text);margin-bottom:2rem;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.2rem .9rem}
.tags i{width:5px;height:5px;transform:rotate(45deg);background:var(--chrome);display:inline-block}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}
.hero-line{opacity:0;transform:translateY(18px);animation:rise 1s var(--ease) forwards}
.eyebrow.hero-line{animation-delay:.35s}.tags.hero-line{animation-delay:.5s}.hero-cta.hero-line{animation-delay:.65s}
@keyframes rise{to{opacity:1;transform:none}}
.logo-stage{animation:pop 1.4s var(--ease) both}
@keyframes pop{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:none}}
.scroll-cue{position:absolute;bottom:calc(1.6rem + var(--sab));left:50%;transform:translateX(-50%);width:24px;height:38px;border:1.5px solid var(--line2);border-radius:14px;z-index:2}
.scroll-cue span{position:absolute;left:50%;top:7px;width:3px;height:8px;margin-left:-1.5px;border-radius:2px;background:#fff;animation:cue 1.8s infinite}
@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}100%{opacity:0;transform:translateY(12px)}}

/* marquees */
.marquee{border-block:1px solid var(--line);background:#050507;overflow:hidden;padding:1rem 0;position:relative;z-index:2}
.marquee-wrap{overflow:hidden;padding:1.2rem 0}
.marquee.alt{background:#000;transform:rotate(-1.2deg) scale(1.04)}
.marquee.alt .track span{color:#c9ccd4;font-weight:700;font-size:1.05rem}
.track{display:flex;width:max-content;animation:scroll 40s linear infinite;will-change:transform}
.marquee.alt .track{animation-direction:reverse}
.js-marquee .track{animation:none}
.track span{font-family:"Unbounded";font-weight:500;font-size:.85rem;letter-spacing:.3em;white-space:nowrap;color:#6f717c}
@keyframes scroll{to{transform:translateX(-50%)}}

/* about */
.two{display:grid;grid-template-columns:1fr 1.1fr;gap:4.5rem;align-items:start}
.about-copy{padding-top:3.2rem}
.portrait-wrap{position:relative;max-width:420px;margin-top:.5rem;padding:1px;border-radius:var(--r);background:linear-gradient(160deg,rgba(255,255,255,.55),rgba(255,255,255,.05) 40%,rgba(255,255,255,.35));will-change:transform}
.portrait{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:calc(var(--r) - 1px);filter:grayscale(1) contrast(1.05)}
.facts{list-style:none;margin-top:2rem;border-top:1px solid var(--line)}
.facts li{display:flex;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--line);color:var(--text)}
.facts span{min-width:72px;font-size:.72rem;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);padding-top:.25rem}

/* music */
.music,.shows{background:var(--bg2)}
.mixes{display:grid;gap:1.2rem}
.mix{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card);transition:border-color .3s}
.mix:hover{border-color:var(--line2)}
.mix-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1rem 1.2rem .2rem}
.mix-head strong{font-family:"Unbounded";font-weight:500;font-size:1rem}
.mix-head span{font-size:.75rem;color:var(--muted);letter-spacing:.15em;text-transform:uppercase;white-space:nowrap}
.mix-frame{position:relative;min-height:166px;background:linear-gradient(90deg,#0d0d11,#16161b,#0d0d11);background-size:200% 100%;animation:shimmer 1.6s linear infinite}
.mix-frame.loaded{animation:none;background:#0d0d11}
.mix-frame iframe{display:block;width:100%;border:0}
.mix-frame.yt{aspect-ratio:16/9;min-height:0}
.mix-frame.yt iframe{position:absolute;inset:0;height:100%}
@keyframes shimmer{to{background-position:-200% 0}}
.mix-empty{border:1px dashed var(--line2);border-radius:var(--r);padding:2rem;display:flex;align-items:center;gap:1.8rem;flex-wrap:wrap;background:radial-gradient(ellipse 60% 120% at 0% 50%,rgba(200,205,220,.06),transparent 70%)}
.mix-empty > div:nth-child(2){flex:1;min-width:220px}
.mix-empty p{margin:0}
.mix-empty-title{color:var(--text)!important;font-family:"Unbounded";font-size:1.15rem;margin-bottom:.3rem!important}
.eq{display:flex;align-items:flex-end;gap:5px;height:48px}
.eq i{width:6px;height:100%;border-radius:3px;background:var(--chrome);transform-origin:50% 100%;animation:eq 1.1s ease-in-out infinite}
.eq i:nth-child(2){animation-delay:-.3s;animation-duration:.9s}.eq i:nth-child(3){animation-delay:-.6s}.eq i:nth-child(4){animation-delay:-.15s;animation-duration:1.3s}
.eq i:nth-child(5){animation-delay:-.45s}.eq i:nth-child(6){animation-delay:-.8s;animation-duration:.8s}.eq i:nth-child(7){animation-delay:-.25s}
@keyframes eq{0%,100%{transform:scaleY(.2)}50%{transform:scaleY(1)}}
.platforms{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem}
.pill{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;border:1px solid var(--line2);padding:.6rem 1.2rem;border-radius:999px;font-size:.88rem;transition:.2s;background:rgba(255,255,255,.02)}
@media (hover:hover){.pill:hover{border-color:#fff;background:rgba(255,255,255,.06)}}
.videos{margin-top:3rem}
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.2rem}

/* shows */
.empty{border:1px dashed var(--line2);border-radius:var(--r);padding:2rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.empty p{margin:0;color:var(--text);max-width:60ch}
.empty a:not(.btn),.contact a:not(.btn),.foot-mail{color:var(--text);text-underline-offset:3px}
.sub{font-size:1rem;margin:3rem 0 1rem;color:var(--muted);letter-spacing:.2em;text-transform:uppercase}
.gigs{list-style:none;display:grid;gap:.8rem}
.gig{display:flex;align-items:center;gap:1.6rem;padding:1.2rem 1.4rem;border:1px solid var(--line);border-radius:var(--r);background:var(--card);transition:border-color .3s,transform .4s var(--ease),background .3s}
@media (hover:hover){.gig:hover{border-color:var(--line2);transform:translateX(6px);background:#111116}}
.gig.upcoming{border-color:rgba(255,255,255,.28);background:linear-gradient(90deg,rgba(255,255,255,.06),var(--card) 60%)}
.date{display:flex;flex-direction:column;align-items:center;min-width:60px;font-family:"Unbounded"}
.date .m{font-size:.7rem;color:var(--muted);letter-spacing:.2em}
.date .d{font-size:2rem;font-weight:800;line-height:1;background:var(--chrome);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.date .y{font-size:.65rem;color:var(--muted);letter-spacing:.15em;margin-top:.2rem}
.info{flex:1;display:flex;flex-direction:column;min-width:0}
.info strong{font-weight:600}
.tag{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;border:1px solid var(--line2);padding:.3rem .8rem;border-radius:999px;color:var(--muted);white-space:nowrap}
.tag.live{color:#0a0a0c;background:var(--chrome);border-color:transparent;font-weight:600}
a.tag{text-decoration:none;min-height:44px;display:inline-flex;align-items:center;padding:.3rem 1.1rem}
.poster-thumb{flex:none;width:72px;height:72px;border-radius:10px;overflow:hidden;border:1px solid var(--line2);display:block}
.poster-thumb img{width:100%;height:100%;object-fit:cover;filter:saturate(.8);transition:filter .3s,transform .5s var(--ease)}
.poster-thumb:hover img{filter:none;transform:scale(1.08)}
.placeholder-inline{color:#c9a96a}

/* gallery */
.masonry{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;grid-auto-flow:dense;gap:1rem}
.g{border-radius:var(--r);position:relative;overflow:hidden;border:1px solid var(--line);background:#0b0b0e;-webkit-mask-image:-webkit-radial-gradient(white,black)}
.g-open{position:absolute;inset:0;border:0;padding:0;background:none;cursor:zoom-in;display:block;width:100%;height:100%}
.g img{position:absolute;left:0;top:-10%;width:100%;height:120%;object-fit:cover;filter:saturate(.75) contrast(1.05);transition:filter .6s;will-change:transform}
.g::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.16),transparent 60%)}
@media (hover:hover){.g:hover img{filter:saturate(1) contrast(1.08)}.g:hover::after{opacity:1}}
.g figcaption{position:absolute;left:1rem;bottom:1rem;z-index:1;font-size:.75rem;color:#fff;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:.3rem .75rem;border-radius:999px;border:1px solid var(--line);pointer-events:none}
.g:nth-child(5n+1){grid-column:span 2;grid-row:span 2}
.g:nth-child(5n+2),.g:nth-child(5n+3){grid-row:span 2}
.g:nth-child(5n+4),.g:nth-child(5n){grid-column:span 2}

/* lightbox */
.lightbox{border:0;padding:0;margin:0;width:100%;height:100%;max-width:none;max-height:none;background:rgba(0,0,0,.94);color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.lightbox[open]{display:flex;align-items:center;justify-content:center;animation:fade .3s ease}
.lightbox::backdrop{background:rgba(0,0,0,.7)}
.lightbox figure{max-width:min(92vw,1200px);max-height:86vh;max-height:86svh;display:flex;flex-direction:column;align-items:center;gap:.8rem;touch-action:pan-y}
.lightbox img{max-height:80vh;max-height:80svh;width:auto;border-radius:12px;object-fit:contain;animation:zoomin .4s var(--ease)}
.lightbox figcaption{font-size:.85rem;color:var(--muted)}
.lightbox button{position:absolute;width:48px;height:48px;border-radius:50%;border:1px solid var(--line2);background:rgba(0,0,0,.5);font-size:1.6rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb-close{top:calc(1rem + var(--sat));right:calc(1rem + var(--sar))}
.lb-prev{left:calc(1rem + var(--sal));top:50%;transform:translateY(-50%)}
.lb-next{right:calc(1rem + var(--sar));top:50%;transform:translateY(-50%)}
@keyframes fade{from{opacity:0}}
@keyframes zoomin{from{opacity:0;transform:scale(.94)}}

/* instagram */
.insta{background:var(--bg2)}
.insta-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.6rem}
.insta-head h2{margin-bottom:0}
.ig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.ig-post{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#0b0b0e;border:1px solid var(--line);display:block}
.ig-post img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .5s;filter:saturate(.85)}
.ig-post::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.7));opacity:0;transition:opacity .4s}
.ig-post .ig-cap{position:absolute;left:.7rem;right:.7rem;bottom:.6rem;z-index:1;font-size:.75rem;line-height:1.35;color:#fff;opacity:0;transform:translateY(6px);transition:.4s var(--ease);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ig-post .ig-type{position:absolute;top:.5rem;right:.5rem;z-index:1;width:22px;height:22px;color:#fff;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}
@media (hover:hover){.ig-post:hover img{transform:scale(1.06);filter:none}.ig-post:hover::after,.ig-post:hover .ig-cap{opacity:1;transform:none}}
.ig-follow{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;text-align:center;text-decoration:none;background:radial-gradient(circle at 50% 30%,#1b1c22,#060608);padding:1rem}
.ig-follow svg{width:34px;height:34px}
.ig-follow strong{font-family:"Unbounded";font-weight:500;font-size:.85rem}
.ig-follow span{font-size:.75rem;color:var(--muted)}

/* contact */
.center{text-align:center}
.center .lead{margin-left:auto;margin-right:auto}
.contact{background:radial-gradient(ellipse 50% 60% at 50% 30%,rgba(200,205,220,.09),transparent 70%),#000;overflow:hidden}
.contact-logo-wrap{width:min(340px,64vw);margin:0 auto 1.5rem}
.contact-logo{width:100%;height:auto;filter:drop-shadow(0 20px 40px rgba(255,255,255,.08))}
.big{font-size:clamp(2.2rem,6.4vw,5rem);margin-left:auto;margin-right:auto;max-width:14ch}
.contact-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin:1.6rem 0 1rem}

/* footer */
.footer{border-top:1px solid var(--line);padding:2.5rem 0 calc(2.5rem + var(--dock-h) + var(--sab));background:#000}
.foot{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.foot .logo img{height:64px}
.foot p{margin:0;text-align:right}
.foot-mail{color:var(--text)!important;text-decoration:none}
.socials{display:flex;gap:.4rem 1.4rem;flex-wrap:wrap}
.socials a{text-decoration:none;color:var(--muted);font-size:.9rem;transition:color .2s;min-height:44px;display:inline-flex;align-items:center}
.socials a:hover{color:#fff}

/* reveal (only when JS is running, so no-JS visitors see everything) */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s var(--ease);transition-delay:calc(var(--i,0) * 80ms)}
.js .reveal.wipe{transform:translateY(.4em);-webkit-clip-path:inset(0 0 100% 0);clip-path:inset(0 0 100% 0);transition:opacity .6s ease,transform 1s var(--ease),-webkit-clip-path 1.1s var(--ease),clip-path 1.1s var(--ease)}
.js .g.reveal{transform:translateY(40px) scale(.96)}
.js .reveal.in{opacity:1;transform:none;-webkit-clip-path:inset(-10% -10% -20% -10%);clip-path:inset(-10% -10% -20% -10%)}

/* mobile dock + sheet (hidden on desktop) */
.dock,.sheet{display:none}

@media (max-width:900px){
  .two{grid-template-columns:1fr;gap:1.5rem}
  .about-copy{padding-top:0}
  .masonry{grid-template-columns:1fr 1fr;grid-auto-rows:170px}
  .portrait-wrap{max-width:360px}
  .ig-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:820px){
  :root{--dock-h:64px}
  html{scroll-padding-top:72px}
  .menu{display:none}
  .nav{justify-content:center;padding-top:calc(.45rem + var(--sat));padding-bottom:.45rem}
  .nav:not(.scrolled){background:linear-gradient(180deg,rgba(0,0,0,.55),transparent)}
  .nav.hide{transform:translateY(-100%)}
  .logo img{height:40px}
  .cursor-glow{display:none}
  .dock{display:flex;position:fixed;z-index:90;left:max(.6rem,var(--sal));right:max(.6rem,var(--sar));bottom:calc(.5rem + var(--sab));height:var(--dock-h);
    align-items:stretch;justify-content:space-around;border-radius:22px;border:1px solid var(--line2);
    background:rgba(12,12,16,.78);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);
    box-shadow:0 10px 40px rgba(0,0,0,.6);transition:transform .45s var(--ease),opacity .3s;transform:translateY(0)}
  .dock.away{transform:translateY(calc(100% + 1rem + var(--sab)));opacity:0}
  .dock a,.dock button{flex:1;min-width:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;font-size:.66rem;letter-spacing:.06em;color:var(--muted);background:none;border:0;cursor:pointer;touch-action:manipulation}
  .dock svg{width:22px;height:22px}
  .dock a.active{color:#fff}
  .dock .dock-book{flex:1.15;margin:8px 2px;border-radius:16px;color:#0a0a0c;font-weight:700;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(180deg,#fafbfc 0%,#c5c8cf 45%,#9a9da6 52%,#e9eaee 100%)}
  .sheet{display:flex;position:fixed;inset:0;z-index:110;background:rgba(0,0,0,.96);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);flex-direction:column;justify-content:center;
    padding:calc(4rem + var(--sat)) max(2rem,var(--sar)) calc(2rem + var(--sab)) max(2rem,var(--sal));opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
  .sheet[hidden]{display:flex}
  .sheet.open{opacity:1;visibility:visible}
  .sheet nav{display:flex;flex-direction:column;gap:.2rem}
  .sheet nav a{font-family:"Unbounded";font-size:clamp(1.6rem,8vw,2.3rem);font-weight:700;text-decoration:none;padding:.35rem 0;min-height:48px;
    background:var(--chrome);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
    opacity:0;transform:translateY(16px);transition:opacity .45s,transform .55s var(--ease)}
  .sheet.open nav a{opacity:1;transform:none}
  .sheet.open nav a:nth-child(2){transition-delay:.04s}.sheet.open nav a:nth-child(3){transition-delay:.08s}.sheet.open nav a:nth-child(4){transition-delay:.12s}.sheet.open nav a:nth-child(5){transition-delay:.16s}.sheet.open nav a:nth-child(6){transition-delay:.2s}
  .sheet-social{display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:2.2rem}
  .sheet-social a{color:var(--muted);text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
  .sheet-close{position:absolute;top:calc(.6rem + var(--sat));right:max(1rem,var(--sar));width:48px;height:48px;border-radius:50%;border:1px solid var(--line2);background:none;font-size:1.8rem;line-height:1;cursor:pointer}
  .scroll-cue{bottom:calc(var(--dock-h) + 1.4rem + var(--sab))}
}
@media (max-width:760px){
  .hero-inner{padding:calc(4rem + var(--sat)) 1.25rem calc(var(--dock-h) + 2rem + var(--sab))}
  .logo-stage{width:min(50vh,94vw,520px);width:min(50svh,94vw,520px);margin:-2% 0 -4%}
  .tags{font-size:.9rem;gap:.2rem .6rem;margin-bottom:1.5rem}
  .eyebrow{letter-spacing:.28em;font-size:.72rem}
  .hero-cta{width:100%;max-width:400px;flex-wrap:nowrap;gap:.6rem}
  .hero-cta .btn{flex:1;padding:.9rem 1rem}
  .scroll-cue{display:none}
  .beams{opacity:.35}
  .masonry{grid-auto-rows:150px;gap:.6rem}
  .g:nth-child(5n+4),.g:nth-child(5n){grid-column:1/-1}
  .empty,.mix-empty{flex-direction:column;align-items:flex-start;padding:1.5rem}
  .mix-empty .btn,.empty .btn{width:100%}
  .gig{gap:1rem;padding:1rem}
  .gig .tag:not(a){display:none}
  .poster-thumb{width:60px;height:60px}
  .ig-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}
  .ig-post .ig-cap{display:none}
  .insta-head .btn{width:100%}
  .contact-cta .btn{width:100%}
  .btn.xl{font-size:.95rem;padding:1rem 1.2rem}
  .foot{flex-direction:column;text-align:center}
  .socials{justify-content:center;gap:.2rem 1.1rem}
  .foot p{text-align:center}
  .marquee.alt .track span{font-size:.9rem}
  .video-grid{grid-template-columns:1fr}
  h2{font-size:clamp(1.9rem,9vw,2.6rem)}
  .lightbox .lb-prev,.lightbox .lb-next{top:auto;bottom:calc(1.2rem + var(--sab));transform:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .js .reveal,.js .reveal.wipe,.hero-line{opacity:1;transform:none;-webkit-clip-path:none;clip-path:none}
  .beams,.cursor-glow{display:none}
}
.split.is-split{background:none;-webkit-background-clip:border-box;background-clip:border-box;animation:none;color:var(--text)}
