/* ============================================
   SPOREXIA // THE MYCELIUM NETWORK
   EPK Stylesheet — v1.1
   ============================================ */

:root{
  --black-void:#0A0A0A;
  --black-deep:#050505;
  --cold-white:#F2F3F2;
  --error-red:#FF151A;
  --glitch-purple:#7B00FF;
  --data-blue:#00A3FF;
  --tonic-green:#00FF7A;
  --grid:#1a1a1a;
  --line:#2a2a2a;
  --muted:#7a7a7a;

  --f-display:'Orbitron', 'Space Grotesk', sans-serif;
  --f-body:'IBM Plex Mono', 'Space Grotesk', monospace;
  --f-grotesk:'Space Grotesk', sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  background:var(--black-void);
  color:var(--cold-white);
  font-family:var(--f-body);
  font-size:16px;
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  position:relative;
  min-height:100vh;
}

::selection{background:var(--error-red);color:#000}

::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:#0a0a0a}
::-webkit-scrollbar-thumb{background:var(--error-red);border-radius:0}
::-webkit-scrollbar-thumb:hover{background:var(--glitch-purple)}

/* ============================================
   OVERLAYS (scanlines / noise / vignette)
   ============================================ */
.scanlines,.noise,.vignette{
  position:fixed;inset:0;pointer-events:none;z-index:5;
}
.scanlines{
  background:repeating-linear-gradient(
    to bottom,
    rgba(255,255,255,0.02) 0,
    rgba(255,255,255,0.02) 1px,
    transparent 1px,
    transparent 3px
  );
  mix-blend-mode:overlay;
}
.noise{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  opacity:.55;
  animation:noiseShift .25s steps(2) infinite;
}
@keyframes noiseShift{
  0%{transform:translate(0,0)}
  50%{transform:translate(-2px,1px)}
  100%{transform:translate(1px,-1px)}
}
.vignette{
  background:radial-gradient(ellipse at center, transparent 40%, rgba(0,0,0,0.85) 100%);
}

#mycelium-canvas{
  position:fixed;inset:0;width:100%;height:100%;
  z-index:1;opacity:.45;pointer-events:none;
}

/* ============================================
   TOP BAR
   ============================================ */
.top-bar{
  position:fixed;top:0;left:0;right:0;
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 26px;
  background:rgba(5,5,5,0.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
  z-index:50;
  font-size:13px;
  letter-spacing:2px;
  text-transform:uppercase;
  gap:14px;
}
.top-bar__left{display:flex;align-items:center;gap:10px;flex-shrink:0}
.status-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--tonic-green);
  box-shadow:0 0 10px var(--tonic-green);
  animation:pulseDot 1.4s infinite;
}
@keyframes pulseDot{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.4;transform:scale(1.4)}
}
.top-bar__txt{color:var(--muted)}
.top-nav{display:flex;gap:18px}
.top-nav a{
  color:var(--cold-white);text-decoration:none;
  position:relative;transition:color .25s;
}
.top-nav a:hover{color:var(--error-red)}
.top-nav a:hover::after{
  content:'';position:absolute;left:0;right:0;bottom:-4px;
  height:1px;background:var(--error-red);
}

.top-bar__right{
  display:flex;align-items:center;gap:14px;flex-shrink:0;
}

/* Language switch */
.lang-switch{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--f-body);font-size:13px;letter-spacing:2px;
}
.lang-switch span{color:var(--muted)}
.lang-btn{
  background:transparent;border:none;color:var(--muted);
  font-family:inherit;font-size:inherit;letter-spacing:inherit;
  cursor:pointer;padding:2px 4px;
  transition:color .2s;
}
.lang-btn:hover{color:var(--cold-white)}
.lang-btn.active{color:var(--error-red);font-weight:700}
.lang-switch--mobile{margin-top:24px;font-size:14px;justify-content:center}

@media(max-width:1024px){
  .top-nav{display:none}
  .utc-clock{display:none}
}

/* Mobile menu toggle — placed inline inside top-bar (no longer fixed) */
.menu-toggle{
  display:none;
  background:transparent;border:1px solid var(--line);
  color:var(--cold-white);
  width:40px;height:40px;
  cursor:pointer;font-size:14px;
  align-items:center;justify-content:center;
  flex-shrink:0;
  z-index:60;
}
.mobile-menu{
  position:fixed;inset:0;z-index:55;
  background:rgba(5,5,5,0.97);
  backdrop-filter:blur(20px);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:24px;
  opacity:0;pointer-events:none;
  transition:opacity .3s;
  padding:24px;
}
.mobile-menu.open{opacity:1;pointer-events:auto}
.mobile-menu a{
  color:var(--cold-white);text-decoration:none;
  font-family:var(--f-body);font-size:18px;letter-spacing:4px;
  text-transform:uppercase;
}
.mobile-menu a:hover{color:var(--error-red)}

/* Show toggle on tablet & mobile */
@media(max-width:1024px){
  .menu-toggle{display:inline-flex}
}

/* On smaller phones, hide the inline lang-switch (it stays in mobile menu) */
@media(max-width:560px){
  .top-bar{padding:10px 14px;gap:8px}
  .top-bar__left .top-bar__txt{display:none}
  .top-bar__right .lang-switch{display:none}
  .menu-toggle{width:38px;height:38px}
}

/* Very small phones — keep only status dot + toggle */
@media(max-width:380px){
  .top-bar__left{gap:0}
}

/* ============================================
   GENERIC SECTION
   ============================================ */
.section{
  position:relative;
  padding:120px 6vw 100px;
  z-index:10;
  border-bottom:1px solid var(--line);
}
.section__head{
  display:flex;align-items:center;gap:18px;
  margin-bottom:60px;flex-wrap:wrap;
}
.section__num{
  font-family:var(--f-body);
  color:var(--error-red);
  font-size:15px;letter-spacing:3px;
}
.section__title{
  font-family:var(--f-display);
  font-weight:500;
  font-size:clamp(26px,3.8vw,46px);
  letter-spacing:6px;
  color:var(--cold-white);
}
.section__line{
  flex:1;height:1px;background:var(--line);
  position:relative;min-width:60px;
}
.section__line::after{
  content:'';position:absolute;right:0;top:-3px;
  width:7px;height:7px;background:var(--error-red);
}

.meta-label{
  color:var(--error-red);
  font-size:12px;letter-spacing:3px;
  text-transform:uppercase;
  margin-bottom:8px;
}
.meta-val{
  color:var(--cold-white);
  font-size:14px;letter-spacing:1.5px;
  margin-bottom:18px;
  text-transform:uppercase;
}
.meta-val.growth{color:var(--tonic-green)}

/* ============================================
   HERO
   ============================================ */
.hero{
  position:relative;min-height:100vh;
  display:grid;
  grid-template-columns:240px 1fr 280px;
  gap:30px;align-items:center;
  padding:120px 4vw 60px;
  z-index:10;
  overflow:hidden;
}
.hero__grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(var(--grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid) 1px, transparent 1px);
  background-size:60px 60px;
  opacity:.35;
  mask-image:radial-gradient(ellipse at center, #000 30%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at center, #000 30%, transparent 75%);
  pointer-events:none;
}

/* portrait background */
.hero__portrait{
  position:absolute;inset:0;z-index:0;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.hero__portrait img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  opacity:.28;
  filter:contrast(1.1) saturate(1.1);
  mix-blend-mode:luminosity;
}
.hero__portrait-overlay{
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 50% 50%, transparent 20%, rgba(10,10,10,0.85) 70%, var(--black-void) 100%),
    linear-gradient(180deg, rgba(10,10,10,0.5) 0%, transparent 40%, transparent 60%, rgba(10,10,10,0.9) 100%);
}

.hero__meta{font-size:13px;letter-spacing:2px;z-index:2;position:relative}
.hero__meta--right{text-align:right}

.hero__center{
  text-align:center;z-index:2;position:relative;
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.logo-mark{
  position:relative;
  width:62px;height:80px;
  filter:drop-shadow(0 0 9px rgba(255,21,26,0.35));
  animation:floatY 6s ease-in-out infinite;
}
.logo-svg{
  width:100%;height:100%;
  display:block;
  overflow:visible;
}

/* glitch ghosts — duplicate the SVG via CSS pseudo using filter trick.
   We animate the entire SVG with periodic translate ghosts using box-shadow on cap glitch group. */
.logo-svg .cap-glitch rect{
  animation:capGlitchScroll 3.5s steps(1) infinite;
}
@keyframes capGlitchScroll{
  0%,80%,100%{opacity:inherit;transform:translate(0,0)}
  82%{transform:translate(-2px,0)}
  84%{transform:translate(3px,0)}
  86%{transform:translate(-1px,0)}
  88%{transform:translate(2px,0)}
}

.logo-svg .spore-line{
  animation:sporeLinePulse 2.4s ease-in-out infinite;
  transform-origin:center;
}
@keyframes sporeLinePulse{
  0%,100%{opacity:.45;stroke-width:1.2}
  50%{opacity:1;stroke-width:1.8}
}

.logo-svg .roots path{
  animation:rootsBreath 7s ease-in-out infinite;
}
@keyframes rootsBreath{
  0%,100%{opacity:1}
  50%{opacity:.78}
}

/* RGB glitch ghosts using CSS filters on duplicated layers */
.logo-mark::before,
.logo-mark::after{
  content:'';
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 380'><g stroke='%23F2F3F2' fill='none' stroke-linecap='round'><circle cx='150' cy='14' r='4.5' fill='%23F2F3F2'/><line x1='150' y1='14' x2='150' y2='68' stroke-width='1.4'/><path d='M64,120 Q64,62 150,62 Q236,62 236,120 Q236,138 215,144 L85,144 Q64,138 64,120 Z' stroke-width='6' stroke-linejoin='round'/><line x1='150' y1='144' x2='150' y2='220' stroke-width='2.2'/><path d='M150,220 Q140,238 122,252 Q104,266 86,278' stroke-width='1.6'/><path d='M150,220 Q160,240 178,254 Q196,266 214,276' stroke-width='1.6'/><path d='M150,220 Q138,244 124,272 Q116,290 108,310' stroke-width='1.5'/><path d='M150,220 Q160,246 172,272 Q180,292 188,312' stroke-width='1.5'/><path d='M150,220 Q132,232 110,238 Q88,242 66,242' stroke-width='1.4'/><path d='M150,220 Q168,228 188,234 Q210,238 234,238' stroke-width='1.3'/></g></svg>");
  background-repeat:no-repeat;
  background-size:contain;
  background-position:center;
  pointer-events:none;
  mix-blend-mode:screen;
}
.logo-mark::before{
  filter:brightness(0) saturate(100%) invert(20%) sepia(99%) saturate(7474%) hue-rotate(355deg) brightness(102%) contrast(104%);
  opacity:.5;
  animation:logoGlitchR 5s infinite;
}
.logo-mark::after{
  filter:brightness(0) saturate(100%) invert(53%) sepia(98%) saturate(2476%) hue-rotate(178deg) brightness(101%) contrast(101%);
  opacity:.45;
  animation:logoGlitchB 5s infinite;
}
@keyframes logoGlitchR{
  0%,90%,100%{transform:translate(0,0)}
  91%{transform:translate(-3px,1px)}
  93%{transform:translate(2px,-1px)}
  95%{transform:translate(-1px,2px)}
  97%{transform:translate(2px,-2px)}
}
@keyframes logoGlitchB{
  0%,90%,100%{transform:translate(0,0)}
  91%{transform:translate(3px,-1px)}
  93%{transform:translate(-2px,1px)}
  95%{transform:translate(1px,-2px)}
  97%{transform:translate(-2px,2px)}
}
@keyframes floatY{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-10px)}
}

/* ================================================
   BRAND TITLE — cinematic glitch system v2
   ================================================ */
.brand-title{
  font-family:var(--f-display);
  font-weight:700;
  font-size:clamp(48px,9vw,128px);
  letter-spacing:clamp(4px,1.2vw,18px);
  margin:8px 0 4px;
  position:relative;
  display:inline-block;
  color:var(--cold-white);
  text-shadow:
    0 0 1px rgba(242,243,242,0.4),
    0 0 18px rgba(255,21,26,0.12),
    0 0 40px rgba(0,163,255,0.05);
  animation:titleBreath 6s ease-in-out infinite, titleJitter 7s steps(1) infinite;
  will-change:transform, filter;
}
@keyframes titleBreath{
  0%,100%{filter:brightness(1) contrast(1)}
  45%{filter:brightness(1.12) contrast(1.05)}
  50%{filter:brightness(.92) contrast(1.15)}
  55%{filter:brightness(1.12) contrast(1.05)}
}
/* macro jitter — sudden full-title shake every cycle */
@keyframes titleJitter{
  0%,84%,100%{transform:translate(0,0) skewX(0deg)}
  85%{transform:translate(-3px,1px) skewX(-1.5deg)}
  85.5%{transform:translate(2px,-2px) skewX(2deg)}
  86%{transform:translate(-1px,1px) skewX(0deg)}
  86.5%{transform:translate(3px,0) skewX(-.5deg)}
  87%{transform:translate(0,0) skewX(0deg)}
  /* second micro burst */
  42%{transform:translate(-1px,0) skewX(0deg)}
  42.3%{transform:translate(1px,1px) skewX(.5deg)}
  42.6%{transform:translate(0,0) skewX(0deg)}
}

/* per-letter chaotic drift + corruption */
.brand-title span{
  display:inline-block;
  position:relative;
  transition:transform .25s, color .2s;
  animation:letterFlicker 8s infinite, letterCorrupt 11s steps(1) infinite;
  will-change:transform, opacity;
}
.brand-title span:nth-child(1){animation-delay:.0s, .0s}
.brand-title span:nth-child(2){animation-delay:.4s, 1.1s}
.brand-title span:nth-child(3){animation-delay:.8s, 2.2s}
.brand-title span:nth-child(4){animation-delay:1.2s, 3.3s}
.brand-title span:nth-child(5){animation-delay:1.6s, 4.4s}
.brand-title span:nth-child(6){animation-delay:2.0s, 5.5s}
.brand-title span:nth-child(7){animation-delay:2.4s, 6.6s}
.brand-title span:nth-child(8){animation-delay:2.8s, 7.7s}
@keyframes letterFlicker{
  0%,94%,100%{opacity:1;transform:translateY(0)}
  95%{opacity:.2;transform:translateY(-2px)}
  96%{opacity:1;transform:translateY(2px)}
  97%{opacity:.5;transform:translateY(-1px)}
  98%{opacity:1;transform:translateY(0)}
}
/* random per-letter corruption — letter pops out of place */
@keyframes letterCorrupt{
  0%,90%,100%{transform:translate(0,0) scaleY(1);filter:none}
  91%{transform:translate(-4px,3px) scaleY(1.08);filter:hue-rotate(45deg) blur(.4px)}
  91.5%{transform:translate(5px,-2px) scaleY(.94);filter:hue-rotate(-30deg)}
  92%{transform:translate(-2px,1px) scaleY(1);filter:none}
}

.brand-title span.x-red{
  color:var(--error-red);
  position:relative;
  animation:eRedPulse 3s ease-in-out infinite, letterFlicker 8s infinite;
  text-shadow:0 0 14px rgba(255,21,26,0.55);
}
@keyframes eRedPulse{
  0%,100%{filter:drop-shadow(0 0 6px rgba(255,21,26,0.5))}
  50%{filter:drop-shadow(0 0 16px rgba(255,21,26,0.95))}
}
.brand-title span.x-red::before{
  /* horizontal red slash through the E */
  content:'';position:absolute;top:50%;left:-6px;right:-6px;height:3px;
  background:var(--error-red);
  box-shadow:0 0 8px var(--error-red);
  transform:scaleX(0);
  animation:redSlash 4s infinite;
}
@keyframes redSlash{
  0%,89%,100%{transform:scaleX(0);opacity:0}
  90%{transform:scaleX(1);opacity:1}
  93%{transform:scaleX(1) translateX(3px);opacity:.7}
  95%{transform:scaleX(1) translateX(-2px);opacity:1}
  97%{transform:scaleX(0);opacity:0}
}
.brand-title span.x-red::after{
  /* vertical transmission line */
  content:'';position:absolute;top:-40%;bottom:-40%;left:50%;width:1px;
  background:var(--error-red);
  box-shadow:0 0 6px var(--error-red);
  opacity:0;
  animation:redBeam 5.5s infinite;
}
@keyframes redBeam{
  0%,84%,100%{opacity:0;transform:scaleY(0)}
  85%{opacity:1;transform:scaleY(1)}
  88%{opacity:.4;transform:scaleY(1)}
  90%{opacity:1;transform:scaleY(1)}
  92%{opacity:0;transform:scaleY(0)}
}

/* RGB split — RED layer (more aggressive, more frequent) */
.brand-title::before{
  content:attr(data-text);
  position:absolute;top:0;left:0;width:100%;height:100%;
  color:var(--error-red);
  pointer-events:none;
  z-index:-1;
  text-shadow:
    -2px 0 var(--error-red),
    1px 0 10px rgba(255,21,26,0.5);
  animation:glitchRed 3.6s infinite;
  mix-blend-mode:screen;
  will-change:transform, clip-path, opacity;
}
/* RGB split — BLUE layer */
.brand-title::after{
  content:attr(data-text);
  position:absolute;top:0;left:0;width:100%;height:100%;
  color:var(--data-blue);
  pointer-events:none;
  z-index:-1;
  text-shadow:
    2px 0 var(--data-blue),
    -1px 0 10px rgba(0,163,255,0.5);
  animation:glitchBlue 3.6s infinite;
  mix-blend-mode:screen;
  will-change:transform, clip-path, opacity;
}

/* RED — multi-burst chromatic aberration */
@keyframes glitchRed{
  0%{transform:translate(0,0);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);opacity:0}
  /* idle low pulse */
  18%{transform:translate(-1.5px,0);opacity:.35;clip-path:polygon(0 42%,100% 42%,100% 56%,0 56%)}
  20%{opacity:0;transform:translate(0,0)}
  /* BURST 1 — top fracture */
  55%{transform:translate(-6px,2px);clip-path:polygon(0 0,100% 0,100% 18%,0 18%);opacity:1}
  56%{transform:translate(5px,-3px);clip-path:polygon(0 24%,100% 24%,100% 42%,0 42%);opacity:.95}
  57%{transform:translate(-4px,1px);clip-path:polygon(0 8%,100% 8%,100% 34%,0 34%);opacity:1}
  58%{transform:translate(3px,-1px);clip-path:polygon(0 60%,100% 60%,100% 82%,0 82%);opacity:.85}
  59%{transform:translate(-2px,2px);clip-path:polygon(0 86%,100% 86%,100% 100%,0 100%);opacity:.9}
  60%{transform:translate(0,0);opacity:0}
  /* idle */
  75%{opacity:0}
  /* BURST 2 — full corruption */
  86%{transform:translate(-8px,3px);clip-path:polygon(0 0,100% 0,100% 12%,0 12%);opacity:1;filter:blur(.4px)}
  87%{transform:translate(7px,-2px);clip-path:polygon(0 16%,100% 16%,100% 34%,0 34%);opacity:1}
  88%{transform:translate(-5px,2px);clip-path:polygon(0 38%,100% 38%,100% 56%,0 56%);opacity:.95;filter:blur(.6px)}
  89%{transform:translate(6px,-3px);clip-path:polygon(0 60%,100% 60%,100% 78%,0 78%);opacity:1}
  90%{transform:translate(-4px,1px);clip-path:polygon(0 82%,100% 82%,100% 100%,0 100%);opacity:.9}
  91%{transform:translate(3px,0);clip-path:polygon(0 30%,100% 30%,100% 70%,0 70%);opacity:.7;filter:blur(.8px)}
  92%{transform:translate(0,0);opacity:0;filter:blur(0)}
  100%{opacity:0}
}
@keyframes glitchBlue{
  0%{transform:translate(0,0);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);opacity:0}
  18%{transform:translate(1.5px,0);opacity:.3;clip-path:polygon(0 48%,100% 48%,100% 60%,0 60%)}
  20%{opacity:0;transform:translate(0,0)}
  /* BURST 1 — opposite phase */
  55%{transform:translate(6px,-2px);clip-path:polygon(0 64%,100% 64%,100% 86%,0 86%);opacity:1}
  56%{transform:translate(-5px,3px);clip-path:polygon(0 12%,100% 12%,100% 32%,0 32%);opacity:.95}
  57%{transform:translate(4px,-1px);clip-path:polygon(0 40%,100% 40%,100% 60%,0 60%);opacity:1}
  58%{transform:translate(-3px,2px);clip-path:polygon(0 0,100% 0,100% 16%,0 16%);opacity:.85}
  59%{transform:translate(2px,-2px);clip-path:polygon(0 88%,100% 88%,100% 100%,0 100%);opacity:.9}
  60%{transform:translate(0,0);opacity:0}
  75%{opacity:0}
  /* BURST 2 */
  86%{transform:translate(8px,-3px);clip-path:polygon(0 70%,100% 70%,100% 92%,0 92%);opacity:1;filter:blur(.5px)}
  87%{transform:translate(-7px,2px);clip-path:polygon(0 24%,100% 24%,100% 42%,0 42%);opacity:1}
  88%{transform:translate(5px,-2px);clip-path:polygon(0 50%,100% 50%,100% 70%,0 70%);opacity:.95;filter:blur(.6px)}
  89%{transform:translate(-6px,3px);clip-path:polygon(0 4%,100% 4%,100% 22%,0 22%);opacity:1}
  90%{transform:translate(4px,-1px);clip-path:polygon(0 80%,100% 80%,100% 100%,0 100%);opacity:.9}
  91%{transform:translate(-3px,0);clip-path:polygon(0 35%,100% 35%,100% 65%,0 65%);opacity:.7;filter:blur(.8px)}
  92%{transform:translate(0,0);opacity:0;filter:blur(0)}
  100%{opacity:0}
}

/* horizontal slice/scan distortion overlay */
.brand-title-wrap{
  position:relative;
  display:inline-block;
  isolation:isolate;
}
.brand-title-wrap::before{
  content:'';
  position:absolute;
  left:-10px;right:-10px;top:0;height:100%;
  background:repeating-linear-gradient(
    180deg,
    transparent 0,
    transparent 4px,
    rgba(255,21,26,0.05) 4px,
    rgba(255,21,26,0.05) 5px
  );
  pointer-events:none;
  z-index:3;
  mix-blend-mode:screen;
  animation:scanDrift 4s linear infinite;
  opacity:.7;
}
@keyframes scanDrift{
  0%{background-position:0 0}
  100%{background-position:0 80px}
}

/* glitch slice — animated tearing bands */
.brand-title-wrap::after{
  content:'';
  position:absolute;inset:-4px;
  pointer-events:none;
  z-index:4;
  background:
    linear-gradient(180deg,
      transparent 0%, transparent 14%,
      rgba(255,21,26,0.18) 14.2%, rgba(255,21,26,0.18) 16%,
      transparent 16.2%, transparent 38%,
      rgba(0,163,255,0.16) 38.2%, rgba(0,163,255,0.16) 40%,
      transparent 40.2%, transparent 62%,
      rgba(123,0,255,0.14) 62.2%, rgba(123,0,255,0.14) 64%,
      transparent 64.2%, transparent 84%,
      rgba(255,21,26,0.14) 84.2%, rgba(255,21,26,0.14) 86%,
      transparent 86.2%
    );
  mix-blend-mode:screen;
  animation:sliceShift 3.2s steps(1) infinite, sliceSlide 9s linear infinite;
  opacity:0;
}
@keyframes sliceShift{
  0%,87%,100%{transform:translateX(0) skewX(0deg);opacity:0}
  88%{transform:translateX(-14px) skewX(-2deg);opacity:1}
  89%{transform:translateX(10px) skewX(3deg);opacity:.9}
  90%{transform:translateX(-6px) skewX(-1deg);opacity:1}
  91%{transform:translateX(8px) skewX(2deg);opacity:.8}
  92%{transform:translateX(-2px) skewX(0deg);opacity:.4}
  93%{transform:translateX(0) skewX(0deg);opacity:0}
  /* mid-cycle micro burst */
  56%{transform:translateX(-4px);opacity:.6}
  57%{transform:translateX(3px);opacity:.4}
  58%{opacity:0}
}
@keyframes sliceSlide{
  0%{background-position:0 0}
  100%{background-position:0 -200px}
}

/* "DATA CORRUPTION" block — intermittent horizontal block of garbled text */
.brand-title-wrap{
  --corrupt-glyph:'░▓SP█X▒A';
}
.glitch-corrupt{
  position:absolute;
  left:0;right:0;top:35%;
  height:18%;
  pointer-events:none;
  z-index:5;
  overflow:hidden;
  opacity:0;
  animation:corruptBlock 6.5s steps(1) infinite;
  mix-blend-mode:screen;
}
.glitch-corrupt::before{
  content:'01001110▒█░▓SPRX▒';
  display:block;
  font-family:var(--f-body);
  font-size:.42em;
  letter-spacing:1px;
  color:var(--tonic-green);
  white-space:nowrap;
  text-shadow:0 0 6px var(--tonic-green);
  animation:corruptScroll .6s linear infinite;
}
@keyframes corruptBlock{
  0%,82%,100%{opacity:0;transform:translateX(0) scaleY(1)}
  83%{opacity:.9;transform:translateX(-10px) scaleY(1.1)}
  84%{opacity:.7;transform:translateX(8px) scaleY(.9)}
  85%{opacity:1;transform:translateX(-4px) scaleY(1.2)}
  86%{opacity:.6;transform:translateX(2px) scaleY(1)}
  87%{opacity:0}
}
@keyframes corruptScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}

/* radial red glow flash on glitch peak */
.brand-title-wrap{
  position:relative;
}
.brand-title-wrap > .glitch-flash{
  position:absolute;inset:-30%;
  pointer-events:none;z-index:0;
  background:radial-gradient(ellipse at center, rgba(255,21,26,0.22) 0%, transparent 60%);
  opacity:0;
  animation:flashPulse 6s ease-out infinite;
  filter:blur(20px);
}
@keyframes flashPulse{
  0%,84%,100%{opacity:0}
  86%{opacity:1}
  90%{opacity:.4}
  93%{opacity:0}
}

/* hover — accelerate everything */
.brand-title:hover{animation-duration:1.2s, 1.5s}
.brand-title:hover::before{animation-duration:.9s}
.brand-title:hover::after{animation-duration:.9s}
.brand-title:hover span{transform:translateY(-2px)}
.brand-title-wrap:hover .glitch-corrupt{animation-duration:2.5s}

.brand-sub{
  color:var(--error-red);
  font-size:14px;letter-spacing:8px;
  margin-bottom:6px;
}
.brand-tag{
  font-family:var(--f-body);
  color:var(--cold-white);
  letter-spacing:6px;
  font-size:15px;
  opacity:.85;
}

.hero__cta{
  display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;justify-content:center;
}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:16px 28px;
  font-family:var(--f-body);font-size:13px;
  letter-spacing:3px;text-transform:uppercase;
  text-decoration:none;color:var(--cold-white);
  border:1px solid var(--cold-white);
  background:transparent;cursor:pointer;
  transition:all .25s;
  position:relative;overflow:hidden;
}
.btn::before{
  content:'';position:absolute;inset:0;
  background:var(--cold-white);transform:translateX(-100%);
  transition:transform .25s;z-index:-1;
}
.btn:hover{color:#000}
.btn:hover::before{transform:translateX(0)}
.btn--primary{
  background:var(--error-red);border-color:var(--error-red);color:#fff;
}
.btn--primary::before{background:var(--cold-white)}

.terminal{
  background:rgba(0,0,0,0.65);
  border:1px solid var(--line);
  border-left:2px solid var(--error-red);
  padding:16px;
  text-align:left;
  font-size:13px;
  color:var(--cold-white);
  backdrop-filter:blur(4px);
}
.terminal p{margin:2px 0}
.terminal .data-blue{color:var(--data-blue)}
.terminal .green{color:var(--tonic-green)}
.terminal .red{color:var(--error-red)}
.terminal .purple{color:var(--glitch-purple)}

.hero__scroll{
  position:absolute;bottom:24px;left:50%;transform:translateX(-50%);
  font-size:12px;letter-spacing:4px;color:var(--muted);
  display:flex;flex-direction:column;align-items:center;gap:6px;
  animation:bob 2s ease-in-out infinite;
  z-index:3;
}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}

@media(max-width:1024px){
  .hero{grid-template-columns:1fr;text-align:center;padding-top:90px}
  .hero__meta--left,.hero__meta--right{display:none}
  .terminal{display:none}
}

/* ============================================
   BIO
   ============================================ */
.bio-wrap{
  display:grid;grid-template-columns:0.9fr 1.6fr;gap:36px;align-items:stretch;
}
.bio-portrait{
  position:relative;overflow:hidden;
  min-height:420px;
  border:1px solid var(--line);
  border-left:3px solid var(--error-red);
  background:#050505;
}
.bio-portrait img{
  width:100%;height:100%;object-fit:cover;
  object-position:center top;
  filter:contrast(1.1) grayscale(0.1);
  transition:transform .6s;
}
.bio-portrait:hover img{transform:scale(1.05)}
.bio-portrait__overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, transparent 50%, rgba(10,10,10,0.85) 100%),
    repeating-linear-gradient(0deg, transparent 0 3px, rgba(0,0,0,0.15) 3px 4px);
  pointer-events:none;
}
.bio-portrait__tag{
  position:absolute;bottom:12px;left:12px;
  font-size:12px;letter-spacing:3px;color:var(--error-red);
  background:rgba(0,0,0,0.7);padding:5px 10px;
  font-family:var(--f-body);
}

.bio-card{
  background:linear-gradient(180deg, rgba(10,10,10,.7), rgba(5,5,5,.7));
  border:1px solid var(--line);
  border-left:3px solid var(--error-red);
  padding:36px;
  position:relative;
  backdrop-filter:blur(4px);
  display:flex;flex-direction:column;justify-content:center;gap:12px;
}
/* logo (mycelium SVG) — decorative ornament inside bio-card */
.logo-mark--bio{
  position:absolute;
  top:18px;right:22px;
  width:54px;height:70px;
  opacity:.85;
  filter:drop-shadow(0 0 8px rgba(255,21,26,0.35));
  z-index:2;
  pointer-events:none;
}
.logo-mark--bio::before,
.logo-mark--bio::after{
  /* attenuate ghost layers in bio context */
  opacity:.35;
}
.bio-card::before{
  content:'> SYS_LOG';position:absolute;top:-10px;left:18px;
  background:var(--black-void);padding:2px 8px;
  font-size:10px;letter-spacing:2px;color:var(--error-red);
}
.bio-text{
  font-family:var(--f-grotesk);
  font-size:18px;line-height:1.85;
  color:#dcdcdc;margin-bottom:20px;
}
.hl-red{color:var(--error-red);font-weight:700}
.hl-purple{color:var(--glitch-purple)}
.hl-blue{color:var(--data-blue)}
.hl-green{color:var(--tonic-green)}

.bio-side{display:flex;flex-direction:column;gap:0}
.data-row{
  display:flex;justify-content:space-between;
  padding:14px 0;border-bottom:1px dashed var(--line);
  font-size:13px;letter-spacing:2px;
}
.data-row span:first-child{color:var(--muted)}
.data-row .green{color:var(--tonic-green)}
.data-row .red{color:var(--error-red)}
.bio-quote{
  margin-top:22px;padding:20px;
  border:1px solid var(--error-red);
  background:rgba(255,21,26,0.06);
  text-align:center;
}
.bio-quote p{
  font-family:var(--f-display);
  font-size:15px;letter-spacing:2px;line-height:1.7;
  color:var(--cold-white);
}

@media(max-width:900px){
  .bio-wrap{grid-template-columns:1fr;gap:24px}
  .bio-portrait{min-height:0;height:420px}
}
@media(max-width:500px){
  .bio-portrait{height:340px}
}

/* ============================================
   PLAYER
   ============================================ */
.player{
  display:grid;grid-template-columns:240px 1fr;gap:30px;
  background:linear-gradient(135deg, #0c0c0c 0%, #050505 100%);
  border:1px solid var(--line);
  border-top:2px solid var(--error-red);
  padding:24px;
  position:relative;
  overflow:hidden;
}
.player::before{
  content:'> NOW_PLAYING';position:absolute;top:-10px;left:24px;
  background:var(--black-void);padding:3px 10px;
  font-size:12px;letter-spacing:2px;color:var(--tonic-green);
}
.player__cover{
  aspect-ratio:1/1;position:relative;
  background:#000;
  border:1px solid var(--line);
  display:flex;align-items:flex-end;justify-content:center;
  overflow:hidden;
}
.player__art{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
  z-index:1;
  filter:contrast(1.05);
  transition:opacity .4s;
}
.player__visual{
  position:absolute;inset:0;
  display:flex;align-items:center;justify-content:center;
  z-index:2;pointer-events:none;
}
.player__pulse{
  position:absolute;
  width:60%;aspect-ratio:1/1;
  border:1px solid var(--error-red);
  border-radius:50%;
  opacity:0;
}
.player.playing .player__pulse{
  animation:pulseRing 2.4s ease-out infinite;
}
.player.playing .player__pulse--2{animation-delay:.8s}
.player.playing .player__pulse--3{animation-delay:1.6s}
@keyframes pulseRing{
  0%{transform:scale(.4);opacity:.9;border-color:var(--error-red)}
  50%{border-color:var(--glitch-purple)}
  100%{transform:scale(1.6);opacity:0;border-color:var(--data-blue)}
}
.player__cover::before{
  content:'';position:absolute;inset:0;z-index:2;
  background:linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.7) 100%),
             repeating-linear-gradient(0deg, transparent 0 2px, rgba(0,0,0,0.15) 2px 3px);
  pointer-events:none;
}
.player__id{z-index:3 !important}
.player__id{
  position:relative;z-index:2;
  font-family:var(--f-display);font-size:15px;letter-spacing:4px;
  margin-bottom:12px;
  background:rgba(0,0,0,.6);padding:5px 12px;
}
.player__body{display:flex;flex-direction:column;justify-content:center;gap:10px}
.player__title{
  font-family:var(--f-display);
  font-size:clamp(26px,3.4vw,40px);
  letter-spacing:4px;
  font-weight:500;
}
.player__meta{font-size:13px;letter-spacing:2px;color:var(--muted)}

.player__controls{
  display:flex;align-items:center;gap:16px;margin-top:12px;
}
.player__btn{
  width:42px;height:42px;border-radius:50%;
  background:transparent;color:var(--cold-white);
  border:1px solid var(--line);
  cursor:pointer;font-size:13px;
  transition:all .2s;
}
.player__btn:hover{border-color:var(--error-red);color:var(--error-red)}
.player__btn--main{
  width:56px;height:56px;font-size:16px;
  background:var(--error-red);border-color:var(--error-red);color:#fff;
}
.player__btn--main:hover{background:#fff;color:var(--error-red);border-color:#fff}

.player__progress{
  height:4px;background:#1a1a1a;cursor:pointer;
  position:relative;overflow:hidden;margin-top:8px;
}
.player__progress-fill{
  height:100%;width:0;
  background:linear-gradient(90deg, var(--error-red), var(--glitch-purple));
  transition:width .1s linear;
}
.player__time{
  display:flex;justify-content:space-between;
  font-size:12px;color:var(--muted);letter-spacing:2px;
}

.player__wave{
  display:flex;align-items:flex-end;justify-content:space-between;
  height:34px;margin-top:8px;gap:2px;
}
.player__wave span{
  flex:1;
  background:linear-gradient(180deg, var(--error-red), var(--glitch-purple));
  height:20%;
  opacity:.45;
}
.player__wave.playing span{
  animation:wave 1.2s ease-in-out infinite;
}
.player__wave.playing span:nth-child(1){animation-delay:.0s}
.player__wave.playing span:nth-child(2){animation-delay:.05s}
.player__wave.playing span:nth-child(3){animation-delay:.1s}
.player__wave.playing span:nth-child(4){animation-delay:.15s}
.player__wave.playing span:nth-child(5){animation-delay:.2s}
.player__wave.playing span:nth-child(6){animation-delay:.25s}
.player__wave.playing span:nth-child(7){animation-delay:.3s}
.player__wave.playing span:nth-child(8){animation-delay:.35s}
.player__wave.playing span:nth-child(9){animation-delay:.4s}
.player__wave.playing span:nth-child(10){animation-delay:.45s}
.player__wave.playing span:nth-child(11){animation-delay:.5s}
.player__wave.playing span:nth-child(12){animation-delay:.55s}
.player__wave.playing span:nth-child(13){animation-delay:.6s}
.player__wave.playing span:nth-child(14){animation-delay:.65s}
.player__wave.playing span:nth-child(15){animation-delay:.7s}
.player__wave.playing span:nth-child(odd){animation-delay:.4s}
@keyframes wave{
  0%,100%{height:20%;opacity:.45}
  50%{height:95%;opacity:1}
}

@media(max-width:700px){
  .player{grid-template-columns:1fr}
  .player__cover{max-width:240px;margin:0 auto}
}

/* ============================================
   TRACKS — compact horizontal list
   ============================================ */
.tracks{
  display:flex;flex-direction:column;
  gap:10px;margin-top:14px;
}
.track{
  display:grid;
  grid-template-columns:90px 1fr;
  gap:18px;
  background:#0c0c0c;
  border:1px solid var(--line);
  transition:transform .25s, border-color .25s, background .25s;
  position:relative;overflow:hidden;
  cursor:pointer;
  align-items:center;
  padding:10px;
}
.track:hover{border-color:var(--error-red);background:#101010}
.track.active{border-color:var(--error-red);box-shadow:0 0 0 1px var(--error-red) inset}
.track.active::before{
  content:'> ACTIVE';position:absolute;top:6px;right:8px;z-index:3;
  font-size:10px;color:var(--error-red);letter-spacing:2px;
  background:rgba(0,0,0,.7);padding:2px 6px;
}
.track__cover{
  position:relative;
  width:90px;height:90px;
  background:#000;
  overflow:hidden;
  flex-shrink:0;
}
.track__art{
  position:absolute;inset:0;
  width:100%;height:100%;object-fit:cover;
  filter:contrast(1.05);
  transition:transform .4s, filter .3s;
}
.track:hover .track__art{transform:scale(1.06);filter:contrast(1.15) saturate(1.1)}
.track__cover::after{
  content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(0deg, transparent 0 2px, rgba(0,0,0,0.18) 2px 3px);
  pointer-events:none;
}
.track__id{
  position:absolute;bottom:4px;left:4px;z-index:2;
  font-family:var(--f-body);
  font-size:9px;letter-spacing:2px;color:var(--cold-white);
  background:rgba(0,0,0,.7);padding:2px 5px;
}
.track__play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;
  width:34px;height:34px;border-radius:50%;
  background:rgba(0,0,0,.6);color:var(--cold-white);
  border:1px solid var(--cold-white);
  cursor:pointer;transition:all .25s;
  display:inline-flex;align-items:center;justify-content:center;
  text-decoration:none;font-size:11px;
  opacity:0;
}
.track:hover .track__play,
.track.active .track__play{opacity:1}
.track__play:hover{background:var(--error-red);border-color:var(--error-red);color:#fff}

.track__info{
  padding:0;position:relative;
  display:flex;flex-direction:column;gap:4px;
  min-width:0;
}
.track__num{font-size:10px;letter-spacing:3px;color:var(--error-red)}
.track__info h3{
  font-family:var(--f-display);
  font-weight:500;letter-spacing:3px;
  font-size:15px;margin:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.track__meta{font-size:11px;color:var(--muted);letter-spacing:1.5px}
.track__bar{
  margin-top:6px;height:2px;background:#1a1a1a;position:relative;overflow:hidden;
}
.track__bar span{
  display:block;height:100%;width:var(--p);
  background:linear-gradient(90deg, var(--error-red), var(--glitch-purple));
  transition:width .15s linear;
}

@media(max-width:500px){
  .track{grid-template-columns:70px 1fr;gap:14px;padding:8px}
  .track__cover{width:70px;height:70px}
  .track__info h3{font-size:13px;letter-spacing:2px}
}

.platforms{margin-top:60px}
.platforms__list{
  display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;
}
.platform{
  display:inline-flex;align-items:center;gap:10px;
  padding:12px 18px;border:1px solid var(--line);
  font-size:13px;letter-spacing:2px;color:var(--cold-white);
  text-decoration:none;transition:all .25s;
}
.platform:hover{border-color:var(--error-red);color:var(--error-red);transform:translateY(-2px)}

/* ============================================
   NETWORK / STATS
   ============================================ */
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border:1px solid var(--line);
}
.stat{
  padding:36px 22px;text-align:center;
  border-right:1px solid var(--line);
  position:relative;
}
.stat:last-child{border-right:none}
.stat__num{
  font-family:var(--f-display);
  font-size:clamp(34px,4.5vw,60px);
  font-weight:700;
  color:var(--error-red);
  letter-spacing:2px;
}
.stat__label{
  font-size:12px;letter-spacing:3px;color:var(--muted);
  margin-top:8px;
}

.manifest{margin-top:40px}
.manifest__list{
  list-style:none;margin-top:14px;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:8px 24px;
}
.manifest__list li{
  font-size:14px;letter-spacing:2px;
  padding:10px 0;border-bottom:1px dashed var(--line);
}
.manifest__list span{color:var(--error-red);margin-right:10px}

@media(max-width:700px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
}

/* ============================================
   VISUAL / GALLERY
   ============================================ */
.gallery{
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
.gal{
  aspect-ratio:1/1;position:relative;
  background:#0c0c0c;border:1px solid var(--line);
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  transition:border-color .3s, transform .3s;
}
.gal:hover{border-color:var(--error-red);transform:translateY(-4px)}
.gal__inner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.gal__inner svg{width:90%;height:90%}
.gal__inner img{
  width:100%;height:100%;object-fit:cover;
  filter:contrast(1.1);
  transition:transform .6s, filter .4s;
}
.gal--photo:hover img{transform:scale(1.08);filter:contrast(1.15) saturate(1.2)}
.gal--photo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(10,10,10,0.8) 100%),
             repeating-linear-gradient(0deg, transparent 0 2px, rgba(0,0,0,0.1) 2px 3px);
  pointer-events:none;
}
.gal__lbl{
  position:absolute;bottom:10px;left:10px;z-index:2;
  font-size:12px;letter-spacing:3px;color:var(--cold-white);
  background:rgba(0,0,0,.65);padding:5px 10px;
}

/* glitch tile */
.gal--glitch .glitch-layer{position:absolute;inset:0}
.glitch-layer.l1{
  background:linear-gradient(90deg, transparent 0, transparent 30%, var(--error-red) 30%, var(--error-red) 32%, transparent 32%);
  background-size:100% 6px;
  animation:gscroll 3s linear infinite;
  mix-blend-mode:screen;opacity:.7;
}
.glitch-layer.l2{
  background:repeating-linear-gradient(90deg, transparent 0 8px, rgba(0,163,255,0.5) 8px 9px);
  animation:gscroll 5s linear infinite reverse;
  mix-blend-mode:screen;opacity:.55;
}
.glitch-layer.l3{
  background:repeating-linear-gradient(0deg, transparent 0 4px, rgba(123,0,255,0.4) 4px 5px);
  animation:gscroll 7s linear infinite;
  mix-blend-mode:screen;opacity:.5;
}
@keyframes gscroll{0%{background-position:0 0}100%{background-position:0 200px}}

/* neuro tile */
.gal--neuro .gal__inner{
  background:radial-gradient(circle at 30% 40%, rgba(255,21,26,0.35), transparent 50%),
             radial-gradient(circle at 70% 60%, rgba(123,0,255,0.25), transparent 55%),
             #050505;
}
.gal--neuro .gal__inner::before{
  content:'';position:absolute;inset:0;
  background-image:
    radial-gradient(circle, rgba(255,21,26,0.6) 1px, transparent 1.5px),
    radial-gradient(circle, rgba(255,255,255,0.2) 1px, transparent 1.5px);
  background-size:18px 18px, 9px 9px;
  background-position:0 0, 5px 5px;
  mix-blend-mode:screen;
  animation:netPulse 4s ease-in-out infinite;
}
@keyframes netPulse{
  0%,100%{opacity:.55;transform:scale(1)}
  50%{opacity:.9;transform:scale(1.06)}
}

@media(max-width:700px){
  .gallery{grid-template-columns:repeat(2,1fr)}
}

/* palette */
.palette{margin-top:50px}
.palette__row{
  display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:12px;
}
.swatch{display:flex;align-items:center;gap:12px}
.swatch span{
  width:46px;height:46px;display:block;flex-shrink:0;
}
.swatch p{font-size:12px;letter-spacing:1.5px;line-height:1.4}
.swatch i{color:var(--muted);font-style:normal}

@media(max-width:900px){.palette__row{grid-template-columns:repeat(3,1fr)}}
@media(max-width:500px){.palette__row{grid-template-columns:repeat(2,1fr)}}

/* ============================================
   TECH RIDER
   ============================================ */
.rider{
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;
}
.rider__col{
  background:#0a0a0a;border:1px solid var(--line);
  padding:24px;
  border-top:2px solid var(--error-red);
}
.rider__col ul{list-style:none;margin-top:14px}
.rider__col li{
  font-size:14px;letter-spacing:1px;
  padding:10px 0;border-bottom:1px dashed var(--line);
  color:#cfcfcf;
}
.rider__col li::before{content:'> ';color:var(--error-red)}

@media(max-width:800px){.rider{grid-template-columns:1fr}}

/* ============================================
   CONTACT
   ============================================ */
.contact-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:40px;
}
.contact-info{
  background:#0a0a0a;border:1px solid var(--line);padding:30px;
  border-left:3px solid var(--error-red);
}
.contact-headline{
  font-family:var(--f-display);
  font-size:16px;letter-spacing:4px;color:var(--error-red);
  margin-bottom:16px;
}
.contact-sub{
  font-family:var(--f-grotesk);
  font-size:16px;line-height:1.7;color:#cfcfcf;margin-bottom:24px;
}
.contact-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 0;border-bottom:1px dashed var(--line);
  flex-wrap:wrap;gap:8px;
}
.contact-row a{
  color:var(--cold-white);text-decoration:none;
  font-size:15px;letter-spacing:1.5px;
}
.contact-row a:hover{color:var(--error-red)}
.socials{
  display:flex;gap:12px;margin-top:22px;flex-wrap:wrap;
}
.socials a{
  width:42px;height:42px;display:inline-flex;
  align-items:center;justify-content:center;
  border:1px solid var(--line);color:var(--cold-white);
  text-decoration:none;transition:all .25s;
}
.socials a:hover{border-color:var(--error-red);color:var(--error-red);transform:translateY(-3px)}

.contact-form{
  background:#0a0a0a;border:1px solid var(--line);padding:30px;
  display:flex;flex-direction:column;gap:14px;
}
.form-line{
  font-size:13px;color:var(--tonic-green);letter-spacing:2px;
  margin-bottom:6px;
}
.contact-form label{display:flex;flex-direction:column;gap:8px}
.contact-form span{
  font-size:12px;letter-spacing:2px;color:var(--error-red);
}
.contact-form input,
.contact-form select,
.contact-form textarea{
  background:#050505;
  border:1px solid var(--line);
  color:var(--cold-white);
  padding:14px;
  font-family:var(--f-body);
  font-size:15px;
  outline:none;
  transition:border-color .25s;
}
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus{border-color:var(--error-red)}
.contact-form textarea{resize:vertical}
.form-status{font-size:13px;letter-spacing:2px;min-height:18px}

@media(max-width:800px){.contact-wrap{grid-template-columns:1fr}}

/* ============================================
   FOOTER
   ============================================ */
.footer{
  position:relative;z-index:10;
  padding:50px 6vw 30px;
  border-top:1px solid var(--line);
  background:#030303;
}
.footer__top{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:16px;margin-bottom:30px;
}
.footer__brand{
  font-family:var(--f-display);
  font-size:32px;letter-spacing:8px;font-weight:700;
}
.footer__brand .x-red{color:var(--error-red)}
.footer__sub{
  display:block;font-size:12px;letter-spacing:4px;color:var(--muted);
  margin-top:4px;
}
.footer__tag{
  font-size:13px;letter-spacing:4px;color:var(--cold-white);
}
.footer__bottom{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
  font-size:12px;letter-spacing:2px;color:var(--muted);
  padding-top:16px;border-top:1px dashed var(--line);
}
.footer__bottom .green{color:var(--tonic-green)}

/* ============================================
   REVEAL ANIMATIONS
   ============================================ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease, transform .8s ease}
.reveal.in{opacity:1;transform:translateY(0)}
