/* ============================================================
   THRN — Industrial Noise · custom static site
   ============================================================ */
:root{
  --bg:#050505;
  --bg-2:#0b0b0c;
  --ink:#e8e6e3;
  --ink-dim:#9b968e;
  --accent:#e01b24;
  --accent-soft:rgba(224,27,36,.55);
  --line:rgba(232,230,227,.14);
  --font-head:"Space Grotesk",system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-head);
  font-size:1.0625rem;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--accent);color:#fff}

/* ---- global noise + scanline overlay ---- */
body::before{
  content:"";position:fixed;inset:0;z-index:5;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
body::after{
  content:"";position:fixed;inset:0;z-index:5;pointer-events:none;opacity:.06;
  background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.7) 2px 3px);
}

/* ---- loader ---- */
.loader{
  position:fixed;inset:0;z-index:200;background:var(--bg);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .65s ease,visibility .65s;
}
.loader::before{
  content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background:
    radial-gradient(ellipse at center,rgba(224,27,36,.05) 0%,transparent 60%),
    repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.6) 2px 3px);
}
.loader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.loader-inner{
  position:relative;display:flex;flex-direction:column;align-items:center;
  gap:2.2rem;width:min(320px,78vw);
}
.loader-logo{height:54px;width:auto;animation:loaderFlicker 2.8s infinite steps(1)}
@keyframes loaderFlicker{
  0%,100%{opacity:1;filter:none}
  7%{opacity:.35}
  9%{opacity:1}
  36%{opacity:.85;filter:drop-shadow(2px 0 0 rgba(224,27,36,.7))}
  38%{opacity:1;filter:none}
  61%{opacity:.2}
  62%{opacity:1}
  63%{opacity:.6;filter:drop-shadow(-2px 0 0 rgba(58,166,255,.5))}
  65%{opacity:1;filter:none}
}
.loader-bar{width:100%;height:1px;background:var(--line);position:relative}
.loader-bar span{
  position:absolute;left:0;top:0;height:1px;width:0%;
  background:var(--accent);box-shadow:0 0 10px var(--accent-soft);
}
.loader-status{
  display:flex;justify-content:space-between;align-items:baseline;width:100%;
  font-family:var(--font-mono);font-size:.66rem;letter-spacing:.3em;
  text-transform:uppercase;color:var(--ink-dim);
}
.loader-text::after{content:"";display:inline-block;animation:loaderDots 1.2s steps(1) infinite}
@keyframes loaderDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
.loader-pct{color:var(--ink)}
body.is-loading{overflow:hidden}
@media(prefers-reduced-motion:reduce){
  .loader{transition:none}
  .loader-logo,.loader-text::after{animation:none}
}

/* ---- header / nav ---- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem 2rem;
}
.site-header::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(rgba(5,5,5,.85),rgba(5,5,5,0));
  transition:background .35s ease, backdrop-filter .35s ease;
}
.site-header.is-scrolled::before{
  background:rgba(5,5,5,.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:.75rem}
.brand img{height:38px;width:auto}
.nav{display:flex;gap:2.25rem;align-items:center}
.nav a{
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.28em;
  text-transform:uppercase;color:var(--ink-dim);
  position:relative;padding:.35rem 0;transition:color .25s;
}
.nav a::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:0;
  background:var(--accent);transition:width .3s ease;
}
.nav a:hover,.nav a.is-active{color:var(--ink)}
.nav a:hover::after,.nav a.is-active::after{width:100%}
.nav-toggle{
  display:none;background:none;border:1px solid var(--line);color:var(--ink);
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;
  text-transform:uppercase;padding:.5rem .9rem;cursor:pointer;
}
@media(max-width:760px){
  .site-header{padding:.8rem 1.1rem}
  .nav-toggle{display:block}
  .nav{
    position:fixed;inset:0;z-index:60;flex-direction:column;justify-content:center;
    background:rgba(5,5,5,.97);gap:2.4rem;
    opacity:0;pointer-events:none;transition:opacity .3s ease;
  }
  .nav.is-open{opacity:1;pointer-events:auto}
  .nav a{font-size:1rem}
  .nav .nav-close{position:absolute;top:1.2rem;right:1.2rem;font-size:.8rem;letter-spacing:.2em}
}
@media(min-width:761px){.nav .nav-close{display:none}}

/* ---- hero ---- */
.hero{
  position:relative;min-height:100vh;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;overflow:hidden;padding:6rem 1.5rem 4rem;
}
.hero-media{position:absolute;inset:0;z-index:0;background:#000}
.hero-media .bg-img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:.55;filter:grayscale(.2) contrast(1.1);
}
.hero-media iframe{
  position:absolute;top:50%;left:50%;
  width:100vw;height:56.25vw;min-width:177.78vh;min-height:100vh;
  transform:translate(-50%,-50%);
  pointer-events:none;border:0;opacity:.55;filter:contrast(1.05);
}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at center,rgba(5,5,5,.25) 0%,rgba(5,5,5,.88) 100%);
}
.hero-inner{position:relative;z-index:2;max-width:60rem}
.hero-kicker{
  font-family:var(--font-mono);font-size:.8rem;letter-spacing:.55em;
  text-transform:uppercase;color:var(--accent);margin-bottom:1.4rem;
}
.hero-title{
  font-size:clamp(2.6rem,9vw,7.5rem);
  font-weight:700;letter-spacing:.06em;line-height:1.02;
  text-transform:uppercase;
}
.hero-sub{
  margin-top:1.8rem;font-family:var(--font-mono);
  font-size:clamp(.8rem,1.6vw,1rem);letter-spacing:.3em;
  text-transform:uppercase;color:var(--ink-dim);
}
.hero--short{min-height:72vh}
@supports(height:100svh){
  .hero{min-height:100svh}
  .hero--short{min-height:72svh}
}
.hero-scroll{
  position:absolute;bottom:2.2rem;left:50%;transform:translateX(-50%);z-index:2;
  font-family:var(--font-mono);font-size:.65rem;letter-spacing:.4em;
  text-transform:uppercase;color:var(--ink-dim);
  display:flex;flex-direction:column;align-items:center;gap:.6rem;
}
.hero-scroll::after{
  content:"";width:1px;height:44px;background:var(--line);
  animation:drop 2.2s ease-in-out infinite;
}
@keyframes drop{0%{transform:scaleY(0);transform-origin:top}55%{transform:scaleY(1);transform-origin:top}56%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* glitch */
.glitch{position:relative;display:inline-block}
.glitch::before,.glitch::after{
  content:attr(data-text);position:absolute;inset:0;overflow:hidden;
  clip-path:inset(50% 0 50% 0);opacity:.8;
}
.glitch::before{color:var(--accent);transform:translate(-2px,-1px);animation:glitchA 3.2s infinite steps(1)}
.glitch::after{color:#3aa6ff;transform:translate(2px,1px);animation:glitchB 2.7s infinite steps(1)}
@keyframes glitchA{
  0%,86%,100%{clip-path:inset(50% 0 50% 0)}
  87%{clip-path:inset(10% 0 72% 0)}
  89%{clip-path:inset(64% 0 8% 0)}
  91%{clip-path:inset(30% 0 52% 0)}
  93%{clip-path:inset(80% 0 6% 0)}
  95%{clip-path:inset(42% 0 40% 0)}
}
@keyframes glitchB{
  0%,80%,100%{clip-path:inset(50% 0 50% 0)}
  81%{clip-path:inset(70% 0 12% 0)}
  84%{clip-path:inset(20% 0 66% 0)}
  87%{clip-path:inset(55% 0 30% 0)}
  90%{clip-path:inset(6% 0 84% 0)}
}
@media(prefers-reduced-motion:reduce){
  .glitch::before,.glitch::after,.hero-scroll::after{animation:none;display:none}
  html{scroll-behavior:auto}
}

/* ---- sections ---- */
.section{position:relative;padding:clamp(5rem,12vw,9.5rem) 1.5rem;overflow:hidden}
.section-bg{position:absolute;inset:0;z-index:0}
.section-bg img{width:100%;height:100%;object-fit:cover;opacity:.28;filter:grayscale(.3)}
.section-bg--portrait img{object-position:22% 30%;opacity:.6;filter:grayscale(.15) contrast(1.05)}
.section-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(5,5,5,.75),rgba(5,5,5,.9))}
.section-bg--portrait::after{background:linear-gradient(rgba(5,5,5,.35),rgba(5,5,5,.6))}
.section-inner{position:relative;z-index:2;max-width:52rem;margin:0 auto}
.section-inner.wide{max-width:72rem}
.section-label{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.5em;
  text-transform:uppercase;color:var(--accent);margin-bottom:1.1rem;
  display:flex;align-items:center;gap:1rem;
}
.section-label::after{content:"";flex:1;height:1px;background:var(--line)}
.section-title{
  font-size:clamp(1.9rem,4.6vw,3.4rem);font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;line-height:1.08;margin-bottom:2rem;
}
.section p{color:var(--ink-dim);margin-bottom:1.15rem}
.section p strong{color:var(--ink);font-weight:600}
.quote{
  border-left:2px solid var(--accent);padding:.4rem 0 .4rem 1.4rem;
  margin:2.4rem 0;color:var(--ink);font-size:1.2rem;line-height:1.6;
  font-style:italic;
}
.btn{
  display:inline-block;margin-top:1.6rem;
  font-family:var(--font-mono);font-size:.8rem;letter-spacing:.35em;
  text-transform:uppercase;color:var(--ink);
  border:1px solid var(--ink);padding:1rem 2.4rem;
  position:relative;overflow:hidden;transition:color .3s,border-color .3s;
  z-index:0;
}
.btn::before{
  content:"";position:absolute;inset:0;background:var(--accent);
  transform:translateX(-101%);transition:transform .32s ease;z-index:-1;
}
.btn:hover{color:#fff;border-color:var(--accent)}
.btn:hover::before{transform:translateX(0)}

/* ---- video embeds ---- */
.video-frame{
  position:relative;aspect-ratio:16/9;margin:2.5rem 0;
  border:1px solid var(--line);background:#000;
}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---- releases ---- */
.release{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:3.5rem;align-items:start}
@media(max-width:900px){.release{grid-template-columns:1fr}}
.release-cover{position:relative;border:1px solid var(--line)}
.release-cover img{width:100%}
.release-cover::after{
  content:"";position:absolute;inset:0;box-shadow:inset 0 0 60px rgba(0,0,0,.55);
  pointer-events:none;
}
.tracklist{list-style:none;margin:1.4rem 0 0;font-family:var(--font-mono)}
.tracklist li{
  display:flex;gap:1rem;padding:.7rem .2rem;border-bottom:1px solid var(--line);
  font-size:.9rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);
}
.tracklist li span{color:var(--accent)}
.meta-line{font-family:var(--font-mono);font-size:.85rem;letter-spacing:.08em;color:var(--ink-dim)}
.meta-line strong{color:var(--ink)}
.meta-line a{color:var(--ink);border-bottom:1px solid var(--accent-soft)}
.meta-line a:hover{color:var(--accent)}
.vsm{margin-top:3.5rem;display:flex;align-items:center;justify-content:center;gap:1.2rem}
.vsm::before,.vsm::after{content:"";flex:0 1 120px;height:1px;background:var(--line)}
.vsm img{height:74px;width:auto;opacity:.9;transition:opacity .3s}
.vsm img:hover{opacity:1}
.divider{height:1px;background:var(--line);margin:clamp(3rem,8vw,5.5rem) 0}

/* ---- contact ---- */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);border:1px solid var(--line);margin-top:2.5rem}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}}
.contact-cell{background:var(--bg-2);padding:2.4rem 1.8rem}
.contact-cell h3{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.45em;
  text-transform:uppercase;color:var(--accent);margin-bottom:1rem;
}
.contact-cell p,.contact-cell a{font-size:1.05rem;color:var(--ink)}
.contact-cell p{margin-bottom:.6rem}
.contact-cell p:last-child{margin-bottom:0}
.contact-cell a{border-bottom:1px solid var(--accent-soft);transition:color .25s}
.contact-cell a:hover{color:var(--accent)}

/* ---- blog: post list ---- */
.post-list{display:flex;flex-direction:column;gap:2px;background:var(--line);border:1px solid var(--line);margin-top:2.5rem}
.post-card{
  display:grid;grid-template-columns:240px 1fr;background:var(--bg-2);
  text-decoration:none;color:inherit;
}
@media(max-width:700px){.post-card{grid-template-columns:1fr}}
.post-card-media{position:relative;overflow:hidden;min-height:180px}
.post-card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.3);transition:transform .6s ease,filter .6s ease}
.post-card:hover .post-card-media img{transform:scale(1.05);filter:grayscale(0) contrast(1.05)}
.post-card-body{padding:2rem 2.2rem;display:flex;flex-direction:column;justify-content:center;gap:.7rem}
.post-meta{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--accent)}
.post-title{font-size:1.5rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;line-height:1.25}
.post-excerpt{color:var(--ink-dim);font-size:.95rem}
.post-more{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--ink);display:inline-flex;align-items:center;gap:.6rem;transition:color .25s,gap .25s;
}
.post-card:hover .post-more{color:var(--accent);gap:.9rem}

/* ---- press ---- */
.press-list{display:flex;flex-direction:column;gap:2px;background:var(--line);border:1px solid var(--line);margin-top:2.5rem}
.press-item{
  display:grid;grid-template-columns:200px 1fr;background:var(--bg-2);
  text-decoration:none;color:inherit;transition:background .3s ease;
}
@media(max-width:700px){.press-item{grid-template-columns:1fr}}
.press-item:hover{background:#111113}
.press-item-media{position:relative;overflow:hidden;min-height:160px;background:var(--bg)}
.press-item-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.25);transition:transform .6s ease,filter .6s ease}
.press-item:hover .press-item-media img{transform:scale(1.05);filter:grayscale(0) contrast(1.05)}
.press-item-body{padding:2rem 2.2rem;display:flex;flex-direction:column;gap:.7rem;justify-content:center}
.press-meta{
  display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);
}
.press-meta .dot{color:var(--ink-dim)}
.press-title{font-size:1.3rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;line-height:1.3}
.press-excerpt{color:var(--ink-dim);font-size:.95rem}
.press-more{
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--ink);display:inline-flex;align-items:center;gap:.6rem;transition:color .25s,gap .25s;
}
.press-item:hover .press-more{color:var(--accent);gap:.9rem}

/* ---- blog: article ---- */
.back-link{
  display:inline-flex;align-items:center;gap:.6rem;margin-bottom:2.4rem;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--ink-dim);transition:color .25s;
}
.back-link:hover{color:var(--accent)}
.article-meta{
  display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;align-items:center;margin-bottom:1.6rem;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);
}
.article-meta .dot{color:var(--accent)}
.section-inner.article{max-width:42rem}
.article-body h2{
  font-size:clamp(1.35rem,3vw,1.9rem);font-weight:700;letter-spacing:.03em;
  text-transform:uppercase;color:var(--ink);margin:3rem 0 1.2rem;line-height:1.2;
}
.article-body h3{
  font-family:var(--font-mono);font-size:.78rem;letter-spacing:.25em;text-transform:uppercase;
  color:var(--accent);margin:2rem 0 .9rem;
}
.article-body ul{list-style:none;margin:0 0 1.6rem;padding:0}
.article-body ul li{position:relative;padding-left:1.6rem;margin-bottom:.65rem;color:var(--ink)}
.article-body ul li::before{content:"—";position:absolute;left:0;color:var(--accent)}
.tag-row{display:flex;flex-wrap:wrap;gap:.7rem;margin:1.8rem 0 2.2rem}
.tag-pill{
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  border:1px solid var(--line);padding:.6rem 1.15rem;color:var(--ink-dim);
}
.bio-card{border-left:2px solid var(--accent);padding:.3rem 0 .3rem 1.4rem;margin:2rem 0}
.bio-card p{color:var(--ink-dim);margin-bottom:1rem}
.bio-card p:last-child{margin-bottom:0}
.bio-card strong{color:var(--ink)}
.quote--final{
  font-size:1.4rem;text-align:center;border-left:none;border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);padding:2.2rem 1rem;margin:3rem 0;
}
.article-cta{margin-top:3rem}
.article-cover{border:1px solid var(--line);margin-bottom:.5rem;overflow:hidden}
.article-cover img{width:100%;display:block}
.still-gallery{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2px;
  background:var(--line);border:1px solid var(--line);margin:2.4rem 0;
}
.still{position:relative;overflow:hidden;background:var(--bg-2)}
.still img{width:100%;display:block;filter:grayscale(.1);transition:transform .6s ease,filter .6s ease}
.still:hover img{transform:scale(1.04);filter:grayscale(0) contrast(1.05)}
.still figcaption{
  font-family:var(--font-mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--ink-dim);padding:.9rem 1rem;
}

/* ---- footer ---- */
.site-footer{
  border-top:1px solid var(--line);
  padding:3rem 1.5rem;text-align:center;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.25em;
  text-transform:uppercase;color:var(--ink-dim);line-height:2.2;
}
.site-footer .sig{color:var(--ink)}

/* ---- visual polish ---- */
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:#26262a;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--accent)}

a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.release-cover{overflow:hidden}
.release-cover img{transition:transform .6s ease,filter .6s ease}
.release-cover:hover img{transform:scale(1.035);filter:contrast(1.05)}

.tracklist li{transition:background .25s ease,padding-left .25s ease}
.tracklist li:hover{background:rgba(224,27,36,.07);padding-left:.7rem}

.ticker{
  overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:1.05rem 0;background:var(--bg-2);
}
.ticker-track{
  display:flex;white-space:nowrap;width:max-content;
  animation:ticker 30s linear infinite;
  font-family:var(--font-mono);font-size:.78rem;
  letter-spacing:.35em;text-transform:uppercase;color:var(--ink-dim);
}
.ticker-track span{padding-right:3rem}
.ticker-track b{color:var(--accent);font-weight:400}
@keyframes ticker{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}}

/* ---- reveal on scroll ---- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
