/* =========================================================================
   Night Edition, alive. The vinyl shelf's vocabulary on the other pages:
   artwork glow, a catalogue ticker, one moving signature per page head,
   the disc behind a release sleeve. Markup comes from night-alive.js and
   is decoration only. Night Edition tokens only; still under reduced motion.
   ========================================================================= */

/* ---- Glow: artwork lights the black around it ------------------------- */
:root body .ne-glow{
  box-shadow:0 18px 64px -16px color-mix(in srgb,var(--ne-glow) 62%,transparent);
  transition:box-shadow 700ms var(--ne-ease),transform 500ms var(--ne-ease);
}
:root body :is(a,li,article):hover > .ne-glow,
:root body :is(a,li,article):hover .ne-glow,
:root body .ne-glow:hover{box-shadow:0 26px 90px -8px color-mix(in srgb,var(--ne-glow) 82%,transparent);}

/* Covers lift a little on hover. */
:root body .gp-labelos-release__media{transition:transform 500ms var(--ne-ease),box-shadow 700ms var(--ne-ease);}
:root body .gp-labelos-release__link:hover .gp-labelos-release__media{transform:scale(1.08) rotate(-3deg);}
:root body .gp-labelos-wall__link{transition:transform 500ms var(--ne-ease),box-shadow 700ms var(--ne-ease);}
:root body .gp-labelos-wall__link:hover{transform:translateY(-4px);}
:root body .gp-event-card__link:hover .gp-event-card-media{transform:translateY(-4px);}
:root body .ne-bk-card__img{transition:transform 500ms var(--ne-ease),box-shadow 700ms var(--ne-ease);}
:root body .ne-bk-card:hover .ne-bk-card__img{transform:translateY(-4px);}

/* ---- Ticker: the page's own catalogue drifting by --------------------- */
:root body .ne-ticker{
  overflow:hidden;padding:18px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);
}
:root body .ne-ticker__track{display:flex;width:max-content;animation:ne-ticker var(--ne-ticker-s,60s) linear infinite;}
:root body .ne-ticker:hover .ne-ticker__track{animation-play-state:paused;}
:root body .ne-ticker__set{display:flex;flex:none;}
:root body .ne-ticker__item{
  display:inline-flex;align-items:center;gap:26px;padding-right:26px;white-space:nowrap;
  font-size:var(--ne-fs-meta);letter-spacing:var(--ne-track-meta);text-transform:uppercase;color:var(--ne-muted);
}
:root body .ne-ticker__k{color:var(--ne-text-2);margin-right:-14px;}
:root body .ne-ticker__item::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--ne-red-text);opacity:.85;}
@keyframes ne-ticker{to{transform:translateX(-50%);}}

/* ---- Signature frame: the empty end of the page head's title column --- */
:root body .ne-has-sig{position:relative;}
:root body .gp-page-hero.ne-has-sig > .gp-page-hero__inner{position:relative;z-index:1;}
:root body .ne-sig{position:absolute;inset:0;z-index:0;pointer-events:none;}
:root body .ne-sig__frame{
  display:grid;grid-template-columns:minmax(0,7fr) clamp(32px,4vw,72px) minmax(0,5fr);grid-template-rows:minmax(0,1fr);
  height:100%;padding-top:clamp(64px,7.4vw,120px);padding-bottom:clamp(48px,5.2vw,80px);box-sizing:border-box;
}
:root body .ne-sig__unit{position:relative;grid-column:1;justify-self:end;align-self:end;margin-right:clamp(12px,3vw,56px);}
:root body .ne-paused *,:root body .ne-paused *::before,:root body .ne-paused *::after{animation-play-state:paused !important;}

/* ---- Deck (Labels, label pages): a record turning, tone arm down ------ */
:root body .ne-deck{position:relative;display:block;aspect-ratio:1/1;}
:root body .ne-deck__glow{
  position:absolute;inset:-10%;border-radius:50%;background:center/cover no-repeat;
  filter:blur(56px) saturate(1.8);opacity:.4;transition:opacity 520ms var(--ne-ease);
}
:root body .ne-deck__disc{
  position:absolute;inset:0;display:block;border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.06) 0 17.6%,transparent 18%),
    repeating-radial-gradient(circle at 50% 50%,#111 0 1px,#1c1c1c 1px 2px,#141414 2px 3px),
    #111;
  box-shadow:0 0 0 1px rgba(255,255,255,.08),0 26px 60px rgba(0,0,0,.7);
  animation:ne-spin 3.6s linear infinite;animation-play-state:paused;
}
:root body .ne-deck__disc::after{content:"";position:absolute;left:50%;top:50%;width:3%;height:3%;margin:-1.5% 0 0 -1.5%;border-radius:50%;background:var(--ne-bg);box-shadow:0 0 0 1px rgba(255,255,255,.18);}
:root body .ne-deck__label{position:absolute;left:33%;top:33%;width:34%;height:34%;border-radius:50%;object-fit:cover;transition:opacity 520ms var(--ne-ease);}
/* Light on the record stays still while it turns. */
:root body .ne-deck::before{
  content:"";position:absolute;inset:0;z-index:1;border-radius:50%;pointer-events:none;
  background:conic-gradient(from 25deg,transparent 0deg,rgba(255,255,255,.10) 26deg,transparent 60deg,transparent 180deg,rgba(255,255,255,.07) 206deg,transparent 240deg);
}
:root body .ne-deck__arm{
  position:absolute;left:104%;top:-3%;z-index:3;display:block;width:3px;height:70%;margin-left:-1.5px;border-radius:2px;
  background:linear-gradient(rgba(241,239,233,.55),rgba(241,239,233,.32));
  transform-origin:50% 0;transform:rotate(-6deg);transition:transform 1100ms var(--ne-ease);
}
:root body .ne-deck__arm::before{
  content:"";position:absolute;left:50%;top:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;
  background:#1a1a1a;box-shadow:0 0 0 1px rgba(241,239,233,.28),0 0 0 4px #121212,0 0 0 5px rgba(241,239,233,.12);
}
:root body .ne-deck__head{position:absolute;left:50%;bottom:-2px;width:8px;height:14px;margin-left:-4px;border-radius:2px;background:rgba(241,239,233,.6);transform:rotate(22deg);transform-origin:50% 0;}
:root body .is-playing .ne-deck__arm{transform:rotate(15deg);}
:root body .is-playing .ne-deck__disc{animation-play-state:running;}
:root body .is-swapping .ne-deck__arm{transform:rotate(9deg);}
:root body .is-swapping :is(.ne-deck__label,.ne-deck__glow,.ne-now__v){opacity:0;}
@keyframes ne-spin{to{transform:rotate(360deg);}}

/* Labels hub: two decks, one per label. */
:root body .ne-sig--decks .ne-sig__unit{display:grid;grid-template-columns:1fr 1fr;column-gap:24%;width:clamp(210px,21vw,310px);}
:root body .ne-sig--decks .ne-deck--b .ne-deck__disc{animation-duration:4.1s;}

/* Label page: the label's deck spins its releases. */
:root body .gp-imprint-hero.ne-has-sig{position:relative;}
:root body .ne-imprint-deck{
  position:absolute;right:clamp(28px,4vw,72px);top:50%;width:clamp(170px,16vw,240px);transform:translateY(-58%);
  pointer-events:none;
}
:root body .ne-imprint-deck--low{top:var(--ne-deck-top,50%);transform:none;width:clamp(150px,13vw,200px);}
:root body .ne-imprint-deck--off{display:none;}
:root body .ne-now{
  position:absolute;left:-60%;right:-60%;top:100%;margin-top:18px;text-align:center;white-space:nowrap;
  font-size:var(--ne-fs-meta);letter-spacing:var(--ne-track-meta);text-transform:uppercase;color:var(--ne-muted);
}
:root body .ne-now__v{color:var(--ne-text-2);transition:opacity 520ms var(--ne-ease);}

/* ---- Events: club light beams ----------------------------------------- */
:root body .ne-sig--beams .ne-sig__frame{display:block;padding:0;}
:root body .ne-sig--beams .ne-sig__unit{position:relative;height:100%;width:44%;margin:0 6% 0 auto;overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent);mask-image:linear-gradient(to bottom,#000 55%,transparent);}
:root body .ne-beam{
  position:absolute;top:-6%;left:50%;width:40%;height:120%;margin-left:-20%;
  transform-origin:50% 0;mix-blend-mode:screen;filter:blur(8px);
  background:linear-gradient(to bottom,rgba(224,70,61,.42),rgba(224,70,61,0) 82%);
  clip-path:polygon(47% 0,53% 0,100% 100%,0 100%);
  animation:ne-sweep-a 9s ease-in-out infinite alternate;
}
:root body .ne-beam--2{left:30%;animation:ne-sweep-b 11s ease-in-out infinite alternate;animation-delay:-4s;background:linear-gradient(to bottom,rgba(241,239,233,.20),rgba(241,239,233,0) 78%);}
:root body .ne-beam--3{left:72%;animation:ne-sweep-a 13s ease-in-out infinite alternate-reverse;animation-delay:-7s;}
:root body .ne-haze{position:absolute;left:0;right:0;bottom:0;height:55%;background:radial-gradient(ellipse at 50% 100%,rgba(224,70,61,.14),transparent 70%);animation:ne-breathe 6s ease-in-out infinite alternate;}
@keyframes ne-sweep-a{from{transform:rotate(-22deg);}to{transform:rotate(18deg);}}
@keyframes ne-sweep-b{from{transform:rotate(24deg);}to{transform:rotate(-16deg);}}
@keyframes ne-breathe{from{opacity:.55;}to{opacity:1;}}

/* ---- Signal and Contact: on air --------------------------------------- */
:root body .ne-air{position:relative;display:block;width:clamp(150px,15vw,230px);aspect-ratio:1/1;}
:root body .ne-air::before{
  content:"";position:absolute;inset:0;border-radius:50%;
  background:repeating-radial-gradient(circle at 50% 50%,transparent 0 17%,rgba(241,239,233,.07) 17.3% 17.8%);
}
:root body .ne-air__ring{
  position:absolute;inset:0;border-radius:50%;border:1px solid rgba(241,239,233,.38);
  transform:scale(.06);opacity:0;animation:ne-ring 3.6s cubic-bezier(.2,.6,.3,1) infinite;
}
:root body .ne-air__ring:nth-child(2){animation-delay:1.2s;}
:root body .ne-air__ring:nth-child(3){animation-delay:2.4s;}
:root body .ne-air__dot{
  position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;
  background:var(--ne-red-text);box-shadow:0 0 0 4px rgba(224,70,61,.18),0 0 26px rgba(224,70,61,.75);
  animation:ne-blink 2.4s ease-in-out infinite;
}
:root body .ne-sig--quiet .ne-air{width:clamp(120px,11vw,170px);}
:root body .ne-sig--quiet .ne-air__ring{border-color:rgba(241,239,233,.24);}
@keyframes ne-ring{0%{transform:scale(.06);opacity:.9;}100%{transform:scale(1);opacity:0;}}
@keyframes ne-blink{0%,100%{opacity:1;}50%{opacity:.45;}}

/* ---- Culture: a waveform ---------------------------------------------- */
:root body .ne-wave{
  position:absolute;right:0;bottom:16%;width:36%;height:clamp(120px,14vw,200px);z-index:0;pointer-events:none;
  display:flex;align-items:flex-end;gap:3px;
}
:root body .ne-wave i{
  flex:1;height:var(--h);border-radius:1px;transform-origin:50% 100%;
  background:linear-gradient(to top,rgba(241,239,233,.42),rgba(241,239,233,.08));
  animation:ne-bar 1.9s ease-in-out infinite alternate;animation-delay:var(--d);
}
:root body .ne-wave i:nth-child(7n+3){background:linear-gradient(to top,rgba(224,70,61,.7),rgba(224,70,61,.08));}
@keyframes ne-bar{from{transform:scaleY(.32);}to{transform:scaleY(1);}}

/* ---- Release page: the disc behind the sleeve, level bars ------------- */
:root body .ne-has-disc{position:relative;}
:root body .ne-has-disc > img{position:relative;z-index:2;}
:root body .ne-rdisc{
  position:absolute;top:3%;left:3%;z-index:1;width:94%;height:94%;border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.06) 0 17.6%,transparent 18%),
    conic-gradient(from 20deg,transparent 0deg,rgba(255,255,255,.10) 28deg,transparent 64deg,transparent 180deg,rgba(255,255,255,.07) 208deg,transparent 244deg),
    repeating-radial-gradient(circle at 50% 50%,#121212 0 1px,#1d1d1d 1px 2px,#151515 2px 3px),#121212;
  box-shadow:0 0 0 1px rgba(255,255,255,.09),0 20px 50px rgba(0,0,0,.6);
  transform:translateX(12%);transition:transform 900ms var(--ne-ease);
}
:root body .ne-rdisc img{position:absolute;left:33%;top:33%;width:34%;height:34%;border-radius:50%;object-fit:cover;}
:root body .ne-has-disc:hover .ne-rdisc{transform:translateX(20%) rotate(28deg);}
:root body .ne-has-disc:hover .ne-rdisc img{animation:ne-spin 1.8s linear infinite;}
:root body .ne-eq{display:none;align-items:flex-end;gap:2px;height:12px;}
:root body .ne-eq i{width:3px;height:100%;background:var(--ne-red-text);transform-origin:50% 100%;animation:ne-bar .7s ease-in-out infinite alternate;}
:root body .ne-eq i:nth-child(2){animation-delay:-.3s;}
:root body .ne-eq i:nth-child(3){animation-delay:-.55s;}
:root body .ne-eq i:nth-child(4){animation-delay:-.15s;}
:root body li:hover > .ne-eq{display:inline-flex;}
:root body li:hover > .ne-eq + .gp-tracklist__n{display:none;}

/* ---- Smaller screens --------------------------------------------------- */
@media (max-width:1100px){
  :root body .ne-wave{width:26%;}
  :root body .ne-rdisc{transform:translateX(8%);}
  :root body .ne-has-disc:hover .ne-rdisc{transform:translateX(12%) rotate(28deg);}
  :root body .ne-imprint-deck{width:150px;}
}
@media (max-width:760px){
  :root body .ne-sig__frame{grid-template-columns:minmax(0,1fr);padding-top:16px;}
  :root body .ne-sig__unit{grid-column:1;align-self:start;margin-right:20px;}
  :root body .ne-sig--decks .ne-sig__unit{width:140px;}
  :root body .ne-air,:root body .ne-sig--quiet .ne-air{width:110px;}
  :root body .ne-sig--beams .ne-sig__frame{padding:0;}
  :root body .ne-sig--beams .ne-sig__unit{width:70%;margin-right:0;opacity:.8;}
  :root body .ne-imprint-deck{display:none;}
  :root body .ne-wave{position:relative;right:auto;bottom:auto;width:100%;height:56px;margin-top:28px;}
  :root body .ne-ticker{padding:12px 0;}
}
@media (prefers-reduced-motion:reduce){
  :root body :is(.ne-ticker__track,.ne-deck__disc,.ne-beam,.ne-haze,.ne-air__ring,.ne-air__dot,.ne-wave i,.ne-eq i,.ne-has-disc:hover .ne-rdisc img){animation:none;}
  :root body .ne-air__ring{opacity:0;}
  :root body .ne-deck__arm{transform:rotate(15deg);transition:none;}
  :root body .ne-wave i{transform:scaleY(.7);}
  :root body :is(.ne-rdisc,.ne-glow,.gp-labelos-release__media,.gp-labelos-wall__link,.ne-bk-card__img){transition:none;}
  :root body .gp-labelos-release__link:hover .gp-labelos-release__media,
  :root body .gp-labelos-wall__link:hover,
  :root body .ne-bk-card:hover .ne-bk-card__img,
  :root body .gp-event-card__link:hover .gp-event-card-media{transform:none;}
}
