/* ============================================================
   KONTAKTO THEME — TERMINAL AESTHETIC
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Orbitron:wght@400;700;900&display=swap');

:root {
  --bg:          #1D1D1D;
  --bg-deep:     #111111;
  --primary:     #B4FF39;
  --primary-dim: rgba(180,255,57,0.35);
  --primary-glow:rgba(180,255,57,0.12);
  --secondary:   #F5F5F5;
  --accent:      #4E342E;
  --border:      rgba(180,255,57,0.25);

  --font-mono:    'Share Tech Mono','Courier New',monospace;
  --font-display: 'Orbitron',monospace;

  --glow-sm: 0 0 8px rgba(180,255,57,0.55);
  --glow-md: 0 0 16px rgba(180,255,57,0.45), 0 0 32px rgba(180,255,57,0.2);
  --glow-lg: 0 0 24px rgba(180,255,57,0.6), 0 0 48px rgba(180,255,57,0.3), 0 0 96px rgba(180,255,57,0.12);
}

*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }

html,body {
  background: var(--bg);
  color: var(--primary);
  font-family: var(--font-mono);
  font-size:13px;
  line-height: 1.6;
  height: 100%;
  overflow-x: clip; /* clip instead of hidden: doesn't create a scroll container, so position:sticky works */
}

/* Scanlines */
body::before {
  content:'';
  position:fixed; inset:0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0,0,0,0.04) 2px,
    rgba(0,0,0,0.04) 4px
  );
  pointer-events:none;
  z-index:10000;
}

/* Vignette */
body::after {
  content:'';
  position:fixed; inset:0;
  background: radial-gradient(ellipse at center,
    transparent 60%,
    rgba(0,0,0,0.55) 100%
  );
  pointer-events:none;
  z-index:9998;
}

/* ============================================================
   HOMEPAGE — TERMINAL LAYOUT
   ============================================================ */

.home-terminal { height:100vh; overflow:hidden; }

.terminal-container {
  display:grid;
  grid-template-rows: 70px 1fr 52px;
  height:100vh;
}

/* === SYSTEM HEADER === */
.sys-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  padding:10px 24px 8px;
  border-bottom:1px solid var(--border);
  position:relative;
  z-index:10;
}

.sys-header::after {
  content:'';
  position:absolute;
  bottom:-1px; left:0;
  width:100%; height:1px;
  background: linear-gradient(90deg, transparent, var(--primary) 20%, var(--primary) 80%, transparent);
  box-shadow: var(--glow-sm);
}

.header-left { display:flex; flex-direction:row; align-items:center; gap:14px; }

.header-logo-img img {
  width:48px;
  height:48px;
  display:block;
  filter: brightness(0) saturate(100%) invert(60%) sepia(80%) saturate(400%) hue-rotate(60deg) brightness(110%);
  opacity:0.9;
}

.header-left-text { display:flex; flex-direction:column; }

.sys-version {
  font-size:10px;
  color:var(--primary-dim);
  letter-spacing:0.15em;
  margin-bottom:2px;
}

.site-logo {
  font-family:var(--font-display);
  font-size:26px;
  font-weight:900;
  letter-spacing:0.04em;
  color:var(--primary);
  text-shadow:var(--glow-md);
  position:relative;
  display:inline-block;
}

.site-logo a { color:inherit; text-decoration:none; }

.header-right {
  display:flex;
  align-items:center;
  gap:12px;
  padding-top:2px;
}

.status-reticle {
  color:var(--primary);
  animation:reticle-pulse 3s ease-in-out infinite;
}

@keyframes reticle-pulse {
  0%,100% { opacity:0.9; filter:drop-shadow(0 0 4px rgba(180,255,57,0.6)); }
  50%      { opacity:0.4; filter:none; }
}

.status-info {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
  font-size:11px;
  letter-spacing:0.12em;
}

.status-id    { color:var(--secondary); opacity:0.6; }
.status-active { color:var(--primary); }

/* === MAIN GRID === */
.terminal-main {
  display:grid;
  grid-template-columns:240px 1fr 280px;
  overflow:hidden;
}

/* ── Elementor fills the terminal-main row ── */
.terminal-main > .elementor,
.terminal-main > [data-elementor-type] {
  height:100%;
  display:flex;
  flex-direction:column;
}

.terminal-main .elementor-section,
.terminal-main .e-con {
  flex:1;
  height:100%;
}

.terminal-main .elementor-container {
  max-width:none !important;
  width:100% !important;
  height:100% !important;
  padding:0 !important;
  gap:0 !important;
  display:flex !important;
  flex-wrap:nowrap !important;
}

/* Lock the three terminal column widths — client can't break layout */
.terminal-main .elementor-column.primary-nav {
  flex:0 0 240px !important;
  width:240px !important;
  max-width:240px !important;
}
.terminal-main .elementor-column.fingerprint-zone {
  flex:1 1 auto !important;
}
.terminal-main .elementor-column.data-panel {
  flex:0 0 280px !important;
  width:280px !important;
  max-width:280px !important;
}

/* Strip Elementor's default column padding for terminal columns */
.terminal-main .elementor-column.primary-nav > .elementor-element-populated,
.terminal-main .elementor-column.fingerprint-zone > .elementor-element-populated,
.terminal-main .elementor-column.data-panel > .elementor-element-populated {
  padding:0 !important;
  height:100%;
  display:flex;
  flex-direction:column;
}
.terminal-main .elementor-column.primary-nav > .elementor-element-populated {
  justify-content:center;
}

/* === LEFT NAV === */
.primary-nav {
  padding:0 24px;
  border-right:1px solid var(--border);
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
}

.primary-nav::before {
  content:'';
  position:absolute;
  top:0; right:-1px;
  width:1px; height:100%;
  background: linear-gradient(180deg, transparent, var(--primary) 30%, var(--primary) 70%, transparent);
  box-shadow: var(--glow-sm);
}

.primary-nav ul,
.primary-nav .nav-menu {
  list-style:none;
  counter-reset:nav-counter;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.primary-nav li { counter-increment:nav-counter; }

.primary-nav a {
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--primary);
  text-decoration:none;
  font-family:var(--font-mono);
  font-size:17px;
  letter-spacing:0.1em;
  padding:10px 0;
  transition:color 0.2s, text-shadow 0.2s, padding-left 0.2s;
  position:relative;
}

.primary-nav a::before {
  content:'[0' counter(nav-counter) ']';
  font-size:13px;
  color:var(--primary-dim);
  flex-shrink:0;
  min-width:34px;
  transition:color 0.2s;
}

.primary-nav a::after {
  content:'';
  position:absolute;
  bottom:0; left:0;
  width:0; height:1px;
  background:var(--primary);
  box-shadow:var(--glow-sm);
  transition:width 0.3s ease;
}

.primary-nav a:hover {
  color:var(--secondary);
  text-shadow:var(--glow-sm);
  padding-left:8px;
}

.primary-nav a:hover::before { color:var(--primary); }
.primary-nav a:hover::after  { width:100%; }

/* === CENTER: FINGERPRINT ZONE === */
.fingerprint-zone {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
}

.fingerprint-zone::before {
  content:'';
  position:absolute; inset:0;
  background: radial-gradient(ellipse at center,
    rgba(180,255,57,0.04) 0%,
    transparent 65%
  );
  pointer-events:none;
}

#fingerprint-canvas {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:2;
}

/* Scan beam */
.scan-beam {
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  width:340px;
  height:2px;
  background:linear-gradient(90deg, transparent 0%, var(--primary) 30%, var(--primary) 70%, transparent 100%);
  box-shadow: 0 0 12px rgba(180,255,57,0.9), 0 0 24px rgba(180,255,57,0.5);
  animation:scan-sweep 2.8s cubic-bezier(0.4,0,0.6,1) infinite;
  z-index:5;
  pointer-events:none;
}

@keyframes scan-sweep {
  0%   { top:calc(50% - 170px); opacity:0; }
  4%   { opacity:1; }
  96%  { opacity:1; }
  100% { top:calc(50% + 170px); opacity:0; }
}

/* Corner brackets */
.scan-corners {
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  width:350px; height:350px;
  pointer-events:none;
  z-index:4;
}

.corner {
  position:absolute;
  width:18px; height:18px;
  border-color:var(--primary);
  opacity:0.55;
}

.corner.tl { top:0;    left:0;  border-top:1.5px solid; border-left:1.5px solid; }
.corner.tr { top:0;    right:0; border-top:1.5px solid; border-right:1.5px solid; }
.corner.bl { bottom:0; left:0;  border-bottom:1.5px solid; border-left:1.5px solid; }
.corner.br { bottom:0; right:0; border-bottom:1.5px solid; border-right:1.5px solid; }

.corner { animation:corner-pulse 4s ease-in-out infinite; }
.corner.tl { animation-delay:0s; }
.corner.tr { animation-delay:1s; }
.corner.br { animation-delay:2s; }
.corner.bl { animation-delay:3s; }

@keyframes corner-pulse {
  0%,80%,100% { opacity:0.55; }
  90%          { opacity:1; box-shadow:var(--glow-sm); }
}

.scan-label {
  position:absolute;
  bottom:20px;
  font-size:10px;
  letter-spacing:0.2em;
  color:var(--primary-dim);
  z-index:6;
  animation:label-blink 2s step-start infinite;
}

@keyframes label-blink {
  0%,100% { opacity:1; }
  50%      { opacity:0.4; }
}

/* === RIGHT: DATA PANEL === */
.data-panel {
  padding:28px 24px 24px;
  border-left:1px solid var(--border);
  display:flex;
  flex-direction:column;
  position:relative;
}

.data-panel::before {
  content:'';
  position:absolute;
  top:0; left:-1px;
  width:1px; height:100%;
  background:linear-gradient(180deg, transparent, var(--primary) 30%, var(--primary) 70%, transparent);
  box-shadow:var(--glow-sm);
}

.panel-title {
  font-family:var(--font-mono);
  font-size:13px;
  font-weight:normal;
  letter-spacing:0.22em;
  color:var(--secondary);
  margin-bottom:24px;
  padding-bottom:10px;
  border-bottom:1px solid var(--border);
  text-transform:uppercase;
}

.data-entries { display:flex; flex-direction:column; gap:18px; }

.data-group { display:flex; flex-direction:column; gap:3px; }

.data-key {
  font-size:11px;
  letter-spacing:0.22em;
  color:var(--primary-dim);
  text-transform:uppercase;
}

.data-value {
  font-size:13px;
  letter-spacing:0.15em;
  color:var(--secondary);
  opacity:0.85;
}

.data-value.live {
  animation:data-live 3s ease-in-out infinite;
}

@keyframes data-live {
  0%,100% { opacity:0.85; }
  50%      { opacity:0.5; }
}

/* === FOOTER BAR === */
.sys-footer {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  padding:8px 24px 10px;
  border-top:1px solid var(--border);
  position:relative;
}

.sys-footer::before {
  content:'';
  position:absolute;
  top:-1px; left:0;
  width:100%; height:1px;
  background:linear-gradient(90deg, transparent, var(--primary) 20%, var(--primary) 80%, transparent);
  box-shadow:var(--glow-sm);
}

.binary-display {
  font-size:9px;
  color:rgba(180,255,57,0.22);
  letter-spacing:0.04em;
  max-width:360px;
  line-height:1.9;
  font-family:var(--font-mono);
  word-break:break-all;
}

.social-links { display:flex; flex-direction:column; align-items:flex-end; gap:3px; }

.social-links a {
  font-size:12px;
  letter-spacing:0.12em;
  color:var(--primary-dim);
  text-decoration:none;
  transition:color 0.2s, text-shadow 0.2s;
}

.social-links a:hover {
  color:var(--primary);
  text-shadow:var(--glow-sm);
}

/* ============================================================
   GLITCH EFFECT
   ============================================================ */

@keyframes glitch-clip-1 {
  0%,94%,100% { clip-path:inset(0 0 100% 0); transform:translate(0); }
  95%          { clip-path:inset(20% 0 55% 0); transform:translate(-3px,1px); }
  97%          { clip-path:inset(60% 0 5%  0); transform:translate(2px,-1px); }
}

@keyframes glitch-clip-2 {
  0%,96%,100% { clip-path:inset(0 0 100% 0); transform:translate(0); }
  97%          { clip-path:inset(30% 0 40% 0); transform:translate(3px,0); }
  99%          { clip-path:inset(70% 0 15% 0); transform:translate(-2px,1px); }
}

.glitch { position:relative; }

.glitch::before,
.glitch::after {
  content:attr(data-text);
  position:absolute;
  top:0; left:0;
  width:100%; height:100%;
  font-family:inherit;
  font-size:inherit;
  font-weight:inherit;
  letter-spacing:inherit;
}

.glitch::before {
  color:rgba(255,60,120,0.75);
  animation:glitch-clip-1 6s infinite step-start;
  mix-blend-mode:screen;
}

.glitch::after {
  color:rgba(0,200,255,0.6);
  animation:glitch-clip-2 6s infinite step-start;
  animation-delay:0.08s;
  mix-blend-mode:screen;
}

/* Cursor */
.cursor {
  display:inline-block;
  width:7px; height:11px;
  background:var(--primary);
  animation:cursor-blink 1s step-start infinite;
  vertical-align:middle;
  margin-left:3px;
  box-shadow:var(--glow-sm);
}

@keyframes cursor-blink {
  0%,100% { opacity:1; }
  50%      { opacity:0; }
}

/* ============================================================
   INNER PAGES
   ============================================================ */

.inner-page {
  min-height:100vh;
  display:grid;
  grid-template-rows:64px 1fr 50px;
}

.inner-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 48px;
  border-bottom:1px solid var(--border);
  position:relative;
  z-index:100;
}

.inner-header::after {
  content:'';
  position:absolute;
  bottom:-1px; left:0;
  width:100%; height:1px;
  background:linear-gradient(90deg, transparent, var(--primary) 20%, var(--primary) 80%, transparent);
  box-shadow:var(--glow-sm);
}

.inner-logo {
  font-family:var(--font-display);
  font-size:18px;
  font-weight:900;
  letter-spacing:0.05em;
  color:var(--primary);
  text-shadow:var(--glow-sm);
  text-decoration:none;
}

.inner-nav ul {
  list-style:none;
  display:flex;
  gap:28px;
  counter-reset:nav-counter;
}

.inner-nav li { counter-increment:nav-counter; }

.inner-nav a {
  font-size:13px;
  letter-spacing:0.14em;
  color:var(--primary-dim);
  text-decoration:none;
  transition:color 0.2s;
  position:relative;
}

.inner-nav a::before {
  content:'[0' counter(nav-counter) '] ';
  font-size:11px;
  color:rgba(180,255,57,0.25);
}

.inner-nav a:hover { color:var(--primary); text-shadow:var(--glow-sm); }

.inner-nav li.current-menu-item a { color:var(--primary); }

/* Content area */
.inner-content {
  padding:56px 48px;
  overflow-y:auto;
}

.page-eyebrow {
  font-size:11px;
  letter-spacing:0.3em;
  color:var(--primary-dim);
  margin-bottom:8px;
  text-transform:uppercase;
}

.page-title {
  font-family:var(--font-display);
  font-size:32px;
  font-weight:900;
  letter-spacing:0.04em;
  color:var(--primary);
  text-shadow:var(--glow-sm);
  margin-bottom:32px;
  position:relative;
  display:inline-block;
}

.page-title::before {
  content:'> ';
  font-size:20px;
  opacity:0.4;
  font-family:var(--font-mono);
}

.entry-content {
  font-size:14px;
  line-height:1.9;
  color:var(--secondary);
  opacity:0.8;
  max-width:680px;
}

.entry-content p      { margin-bottom:16px; }
.entry-content h2,
.entry-content h3     { color:var(--primary); font-family:var(--font-mono); letter-spacing:0.1em; margin:24px 0 12px; }

.entry-content a {
  color:var(--primary);
  text-decoration:none;
  border-bottom:1px solid var(--border);
  transition:border-color 0.2s, text-shadow 0.2s;
}

.entry-content a:hover { border-color:var(--primary); text-shadow:var(--glow-sm); }

/* Post list (archive / transmissions) */
.post-list { display:grid; gap:0; margin-top:32px; max-width:800px; }

.post-item {
  display:grid;
  grid-template-columns:48px 1fr auto;
  align-items:center;
  gap:16px;
  padding:14px 0;
  border-bottom:1px solid rgba(180,255,57,0.1);
  transition:border-color 0.2s, padding-left 0.2s;
}

.post-item:hover {
  border-bottom-color:var(--primary);
  padding-left:12px;
}

.post-number { font-size:11px; color:var(--primary-dim); letter-spacing:0.1em; }

.post-title a {
  font-size:14px;
  letter-spacing:0.1em;
  color:var(--secondary);
  text-decoration:none;
  opacity:0.85;
  transition:color 0.2s, opacity 0.2s;
}

.post-item:hover .post-title a { color:var(--primary); opacity:1; }

.post-meta { font-size:11px; color:rgba(180,255,57,0.3); letter-spacing:0.08em; white-space:nowrap; }

/* Single post */
.post-header {
  margin-bottom:40px;
  padding-bottom:24px;
  border-bottom:1px solid var(--border);
}

.post-date-line {
  font-size:11px;
  letter-spacing:0.2em;
  color:var(--primary-dim);
  margin-top:8px;
}

/* 404 */
.error-code {
  font-family:var(--font-display);
  font-size:120px;
  font-weight:900;
  color:var(--primary);
  text-shadow:var(--glow-lg);
  line-height:1;
  margin-bottom:16px;
  animation:glitch-clip-1 4s infinite step-start;
}

.error-msg {
  font-size:13px;
  letter-spacing:0.2em;
  color:var(--primary-dim);
  margin-bottom:32px;
}

.btn-terminal {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 20px;
  border:1px solid var(--border);
  color:var(--primary);
  text-decoration:none;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.15em;
  transition:border-color 0.2s, box-shadow 0.2s, color 0.2s;
}

.btn-terminal:hover {
  border-color:var(--primary);
  box-shadow:var(--glow-sm);
  color:var(--secondary);
}

.btn-terminal::before { content:'> '; color:var(--primary-dim); }

/* Inner footer */
.inner-footer {
  padding:0 48px;
  border-top:1px solid var(--border);
  display:flex;
  justify-content:space-between;
  align-items:center;
  position:relative;
}

.inner-footer::before {
  content:'';
  position:absolute;
  top:-1px; left:0;
  width:100%; height:1px;
  background:linear-gradient(90deg, transparent, var(--primary) 20%, var(--primary) 80%, transparent);
  box-shadow:var(--glow-sm);
}

.footer-copy {
  font-size:10px;
  color:rgba(180,255,57,0.25);
  letter-spacing:0.1em;
}

.footer-social { display:flex; gap:20px; }

.footer-social a {
  font-size:11px;
  color:rgba(180,255,57,0.35);
  text-decoration:none;
  letter-spacing:0.1em;
  transition:color 0.2s;
}

.footer-social a:hover { color:var(--primary); text-shadow:var(--glow-sm); }

/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width:900px) {
  .home-terminal  { height:auto; overflow:auto; }
  .terminal-container { grid-template-rows:auto auto auto; height:auto; }

  /* Stack Elementor columns on mobile */
  .terminal-main .elementor-container { flex-direction:column !important; }
  .terminal-main .elementor-column.primary-nav,
  .terminal-main .elementor-column.fingerprint-zone,
  .terminal-main .elementor-column.data-panel {
    flex:0 0 100% !important;
    width:100% !important;
    max-width:100% !important;
  }

  .primary-nav {
    border-right:none;
    border-bottom:1px solid var(--border);
    padding:24px 24px;
    justify-content:flex-start;
  }
  .primary-nav::before { display:none; }
  .primary-nav ul { flex-direction:row; flex-wrap:wrap; gap:8px 24px; }
  .primary-nav a { font-size:14px; padding:6px 0; }

  .fingerprint-zone { padding:0; min-height:300px; }
  #fingerprint-canvas { inset:0; width:100%; height:100%; }

  .data-panel { border-left:none; border-top:1px solid var(--border); }
  .data-panel::before { display:none; }
  .data-entries { flex-direction:row; flex-wrap:wrap; gap:16px 32px; }

  .sys-footer { flex-direction:column; align-items:flex-start; gap:8px; padding:12px 24px; }
  .binary-display { max-width:100%; }
  .social-links { flex-direction:row; gap:12px; }
}

@media (max-width:600px) {
  .inner-content { padding:36px 20px; }
  .inner-footer  { padding:0 20px; }
  .page-title    { font-size:22px; }
}

/* Scrollbar */
::-webkit-scrollbar       { width:3px; height:3px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:var(--border); }
::-webkit-scrollbar-thumb:hover { background:var(--primary-dim); }

::selection { background:var(--primary); color:var(--bg); }

/* ============================================================
   RELEASES
   ============================================================ */

.release-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));
  gap:24px;
  margin-top:32px;
}

.release-card a { display:block; text-decoration:none; color:inherit; }

.release-cover {
  position:relative;
  aspect-ratio:1;
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--bg-deep);
}

.release-cover img {
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(20%) brightness(0.85);
  transition:filter 0.35s, transform 0.35s;
}

.release-card:hover .release-cover img {
  filter:grayscale(0%) brightness(1);
  transform:scale(1.04);
}

.release-overlay {
  position:absolute; inset:0;
  background:rgba(0,0,0,0.72);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:8px;
  opacity:0;
  transition:opacity 0.25s;
}

.release-card:hover .release-overlay { opacity:1; }

.release-overlay__cat {
  font-size:10px;
  letter-spacing:0.25em;
  color:var(--primary-dim);
}

.release-overlay__cta {
  font-size:12px;
  letter-spacing:0.2em;
  color:var(--primary);
  text-shadow:var(--glow-sm);
}

.release-cover__placeholder {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; letter-spacing:0.25em;
  color:var(--primary-dim);
}

.release-meta {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
  padding:10px 0 4px;
}

.release-title {
  font-size:13px; letter-spacing:0.1em;
  color:var(--secondary); opacity:0.85;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  flex:1; min-width:0;
}

.release-year {
  font-size:11px; color:var(--primary-dim);
  letter-spacing:0.08em; flex-shrink:0;
}

/* ── Single Release ── */

.release-detail {
  display:grid;
  grid-template-columns:320px 1fr;
  gap:48px;
  margin-top:16px;
  align-items:start;
}

.release-detail__cover img {
  width:100%; display:block;
  border:1px solid var(--border);
}

.release-cover__placeholder--lg {
  aspect-ratio:1;
  border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-size:12px; letter-spacing:0.2em;
  color:var(--primary-dim); background:var(--bg-deep);
}

.release-detail__date {
  font-size:11px; letter-spacing:0.2em;
  color:var(--primary-dim); margin-top:12px;
}

.release-links {
  display:flex; flex-direction:column;
  gap:8px; margin-top:20px;
}

.release-link {
  display:block; padding:10px 14px;
  font-size:13px; letter-spacing:0.15em;
  text-decoration:none; text-align:center;
  border:1px solid var(--border);
  transition:border-color 0.2s, box-shadow 0.2s, color 0.2s;
}

.release-link:hover {
  border-color:var(--primary);
  box-shadow:var(--glow-sm);
  color:var(--secondary);
}

.release-link--beatport { color:var(--primary); }
.release-link--bandcamp { color:var(--secondary); opacity:0.8; }
.release-link--spotify  { color:#1ed760; border-color:rgba(30,215,96,0.25); }
.release-link--spotify:hover {
  border-color:#1ed760;
  box-shadow:0 0 8px rgba(30,215,96,0.55);
}

/* Tracklist */
.tracklist { margin-bottom:32px; }

.tracklist-items {
  list-style:none;
  margin-top:16px;
  display:flex; flex-direction:column;
}

.tracklist-item {
  display:grid;
  grid-template-columns:32px 1fr auto;
  align-items:center;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid rgba(180,255,57,0.08);
  font-size:13px; letter-spacing:0.1em;
}

.track-num  { font-size:11px; color:var(--primary-dim); }
.track-title{ color:var(--secondary); opacity:0.85; }
.track-mix  { font-size:11px; color:var(--primary-dim); opacity:0.7; }

.release-back { margin-top:32px; }

/* ============================================================
   ARTISTS
   ============================================================ */

.artist-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(210px, 1fr));
  gap:28px;
  margin-top:32px;
}

.artist-card a { display:block; text-decoration:none; color:inherit; }

.artist-photo {
  position:relative;
  aspect-ratio:1;
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--bg-deep);
}

.artist-photo img {
  width:100%; height:100%;
  object-fit:cover; display:block;
  filter:grayscale(30%) brightness(0.85);
  transition:filter 0.35s, transform 0.35s;
}

.artist-card:hover .artist-photo img {
  filter:grayscale(0%) brightness(1);
  transform:scale(1.04);
}

.artist-overlay {
  position:absolute; inset:0;
  background:rgba(0,0,0,0.65);
  display:flex; align-items:center; justify-content:center;
  font-size:12px; letter-spacing:0.2em;
  color:var(--primary); text-shadow:var(--glow-sm);
  opacity:0; transition:opacity 0.25s;
}

.artist-card:hover .artist-overlay { opacity:1; }

.artist-photo--classified {
  display:flex; align-items:center; justify-content:center;
  border:1px dashed rgba(180,255,57,0.15);
}

.artist-classified-label {
  font-size:12px; letter-spacing:0.2em;
  color:var(--primary-dim);
}

.artist-photo__placeholder {
  width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; letter-spacing:0.2em; color:var(--primary-dim);
}

.artist-info {
  display:flex; justify-content:space-between;
  align-items:baseline; gap:8px;
  padding:10px 0 4px;
}

.artist-name  { font-size:13px; letter-spacing:0.12em; color:var(--secondary); opacity:0.85; }
.artist-status{ font-size:11px;  letter-spacing:0.15em; color:var(--primary-dim); }

/* ── Single Artist ── */

.artist-detail {
  display:grid;
  grid-template-columns:300px 1fr;
  gap:48px;
  margin-top:16px;
  align-items:start;
}

.artist-detail__photo img {
  width:100%; display:block;
  border:1px solid var(--border);
  filter:grayscale(10%) brightness(0.9);
}

.artist-photo__placeholder--lg {
  aspect-ratio:1;
  border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-size:11px; letter-spacing:0.2em;
  color:var(--primary-dim); background:var(--bg-deep);
}

.artist-social {
  display:flex; flex-direction:column;
  gap:6px; margin-top:16px;
}

.artist-social a {
  font-size:12px; letter-spacing:0.12em;
  color:var(--primary-dim); text-decoration:none;
  transition:color 0.2s, text-shadow 0.2s;
}

.artist-social a:hover { color:var(--primary); text-shadow:var(--glow-sm); }

.artist-bio-text { margin-top:8px; }
.artist-back     { margin-top:32px; }

/* ── Artist photo gallery ── */
.artist-gallery {
  margin-top:52px;
  padding-top:32px;
  border-top:1px solid var(--border);
}

.artist-gallery__grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
  gap:16px;
  margin-top:20px;
}

.artist-gallery__item {
  margin:0;
  position:relative;
  overflow:hidden;
  border:1px solid var(--border);
  background:var(--bg-deep);
  aspect-ratio:4/3;
}

.artist-gallery__item a { display:block; height:100%; }

.artist-gallery__item img {
  width:100%; height:100%;
  object-fit:cover; display:block;
  filter:grayscale(15%) brightness(0.85);
  transition:filter 0.35s, transform 0.35s;
}

.artist-gallery__item:hover img {
  filter:grayscale(0%) brightness(1);
  transform:scale(1.04);
}

.artist-gallery__item figcaption {
  position:absolute;
  bottom:0; left:0; right:0;
  padding:6px 10px;
  font-size:10px; letter-spacing:0.15em;
  color:var(--primary-dim);
  background:rgba(0,0,0,0.7);
  opacity:0;
  transition:opacity 0.25s;
  text-transform:uppercase;
}

.artist-gallery__item:hover figcaption { opacity:1; }

/* ============================================================
   EVENTS
   ============================================================ */

.events-section { margin-top:32px; }
.events-section + .events-section { margin-top:52px; }

.events-list { margin-top:16px; }

.event-item {
  display:grid;
  grid-template-columns:72px 1fr auto;
  align-items:center;
  gap:24px;
  padding:16px 0;
  border-bottom:1px solid rgba(180,255,57,0.1);
  transition:border-color 0.2s, padding-left 0.2s;
}

.event-item:hover:not(.event-item--past) {
  border-bottom-color:var(--primary);
  padding-left:8px;
}

.event-item--past { opacity:0.35; }

.event-date-col {
  display:flex; flex-direction:column;
  align-items:center; gap:1px;
}

.event-day   { font-family:var(--font-display); font-size:26px; font-weight:700; color:var(--primary); line-height:1; }
.event-month { font-size:10px; letter-spacing:0.2em; color:var(--primary-dim); }
.event-year  { font-size:9px; letter-spacing:0.1em; color:rgba(180,255,57,0.2); }

.event-info  { display:flex; flex-direction:column; gap:5px; }

.event-title { font-size:14px; letter-spacing:0.1em; color:var(--secondary); opacity:0.9; }

.event-venue { font-size:11px; letter-spacing:0.12em; color:var(--primary-dim); }

.event-actions { display:flex; flex-direction:column; align-items:flex-end; gap:8px; }

.event-status {
  font-size:10px; letter-spacing:0.18em;
  padding:3px 8px; border:1px solid;
  text-transform:uppercase;
}

.event-status--incoming  { color:var(--primary);              border-color:var(--border); }
.event-status--sold-out  { color:#ff5555;                     border-color:rgba(255,85,85,0.3); }
.event-status--free      { color:#69ff6e;                     border-color:rgba(105,255,110,0.3); }
.event-status--cancelled { color:rgba(255,255,255,0.25);      border-color:rgba(255,255,255,0.1); text-decoration:line-through; }
.event-status--past      { color:rgba(180,255,57,0.2);        border-color:rgba(180,255,57,0.1); }

.event-ticket {
  font-size:12px; letter-spacing:0.15em;
  color:var(--primary); text-decoration:none;
  transition:text-shadow 0.2s;
}

.event-ticket:hover { text-shadow:var(--glow-sm); }

.events-empty { margin-top:32px; }

/* ============================================================
   DEMOS / CF7 FORM
   ============================================================ */

.inner-content--centered {
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.inner-content--centered .page-eyebrow,
.inner-content--centered .page-title,
.inner-content--centered .demo-intro,
.inner-content--centered .term-msg,
.inner-content--centered .demo-accordion { text-align:left; }

.inner-content--centered .demo-accordion { width:100%; max-width:620px; }

.demo-intro {
  font-size:13px; line-height:1.8;
  color:var(--secondary); opacity:0.7;
  max-width:560px; margin-bottom:8px;
}

/* CF7 resets */
.inner-content .wpcf7 { max-width:580px; margin-top:32px; }

.inner-content .wpcf7 label,
.inner-content .wpcf7 .wpcf7-form-control-wrap::before {
  display:block;
  font-size:11px; letter-spacing:0.22em;
  color:var(--primary-dim); text-transform:uppercase;
  margin-bottom:5px;
}

.inner-content .wpcf7 input[type="text"],
.inner-content .wpcf7 input[type="email"],
.inner-content .wpcf7 input[type="date"],
.inner-content .wpcf7 input[type="url"],
.inner-content .wpcf7 input[type="file"],
.inner-content .wpcf7 textarea {
  width:100%;
  background:var(--bg-deep);
  border:1px solid var(--border);
  color:var(--secondary);
  font-family:var(--font-mono);
  font-size:13px; letter-spacing:0.08em;
  padding:10px 14px;
  outline:none;
  border-radius:0;
  -webkit-appearance:none;
  transition:border-color 0.2s, box-shadow 0.2s;
}

.inner-content .wpcf7 input:focus,
.inner-content .wpcf7 textarea:focus {
  border-color:var(--primary);
  box-shadow:var(--glow-sm);
}

.inner-content .wpcf7 textarea { resize:vertical; min-height:90px; }

.inner-content .wpcf7 input[type="file"] {
  cursor:pointer; color:var(--primary-dim); padding:8px 14px;
}

.inner-content .wpcf7 input[type="submit"] {
  background:transparent;
  border:1px solid var(--border);
  color:var(--primary);
  font-family:var(--font-mono);
  font-size:13px; letter-spacing:0.2em;
  padding:11px 24px;
  cursor:pointer; text-transform:uppercase;
  transition:border-color 0.2s, box-shadow 0.2s;
  margin-top:8px;
}

.inner-content .wpcf7 input[type="submit"]:hover {
  border-color:var(--primary);
  box-shadow:var(--glow-sm);
}

.wpcf7-response-output {
  font-size:12px !important; letter-spacing:0.15em !important;
  border:1px solid var(--border) !important;
  padding:10px 14px !important; margin:12px 0 0 !important;
  border-radius:0 !important;
}

.wpcf7-mail-sent-ok  { border-color:var(--primary) !important; color:var(--primary) !important; }
.wpcf7-validation-errors,
.wpcf7-mail-sent-ng  { border-color:rgba(255,85,85,0.5) !important; color:rgba(255,85,85,0.85) !important; }
.wpcf7-not-valid-tip { font-size:11px !important; color:rgba(255,85,85,0.8) !important; letter-spacing:0.1em !important; }

/* ============================================================
   AUDIO EMBED (SoundCloud / Bandcamp)
   ============================================================ */

.audio-embed {
  position:relative;
  border:1px solid var(--border);
  padding:2px;
  margin-top:8px;
}

.audio-embed::before {
  content:'AUDIO_STREAM';
  position:absolute;
  top:-9px; left:12px;
  font-size:10px; letter-spacing:0.2em;
  color:var(--primary-dim);
  background:var(--bg); padding:0 6px;
}

.audio-embed iframe { display:block; width:100%; border:none; }

/* ============================================================
   ARTIST HUD PAGE  (single-kontakto_artist.php)
   ============================================================ */

/* Force body to exact viewport height so 1fr row is bounded */
body.single-kontakto_artist .inner-page { height:100vh; overflow:hidden; }

/* Override inner-content defaults */
.artist-hud-page {
  padding:0 !important;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}

/* 3-column HUD grid */
.hud-main {
  display:grid;
  grid-template-columns:1fr 1fr;
  height:calc(100vh - 116px); /* 64 header + 50 footer + 2 borders */
  overflow:hidden;
}

.hud-sidebar__header {
  padding:20px 16px 16px;
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}

.hud-sidebar__title {
  display:block;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.22em;
  color:var(--primary);
  text-transform:uppercase;
  margin-bottom:8px;
}

.hud-status {
  display:flex;
  align-items:center;
  gap:6px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.15em;
  color:var(--primary-dim);
}

.hud-dot {
  flex-shrink:0;
  width:7px; height:7px;
  border-radius:50%;
  background:var(--primary);
  box-shadow:0 0 6px var(--primary);
  animation:hud-dot-pulse 2s ease-in-out infinite;
}

@keyframes hud-dot-pulse {
  0%,100% { opacity:1; }
  50%      { opacity:0.25; }
}

.hud-nav {
  flex:1;
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  padding:8px 0;
}

.hud-nav__item {
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 16px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.18em;
  color:rgba(180,255,57,0.38);
  text-decoration:none;
  text-transform:uppercase;
  border-left:2px solid transparent;
  transition:color 0.2s, border-color 0.2s, background 0.2s;
  cursor:default;
}

.hud-nav__item::before {
  content:'';
  display:inline-block;
  width:9px; height:9px;
  border:1px solid currentColor;
  flex-shrink:0;
  opacity:0.5;
}

.hud-nav__item[href] { cursor:pointer; }
.hud-nav__item[href]:hover {
  color:var(--primary);
  border-left-color:var(--primary);
  background:rgba(180,255,57,0.04);
}

.hud-nav__item--active {
  background:var(--primary);
  color:var(--bg) !important;
  border-left-color:transparent;
  cursor:default;
}
.hud-nav__item--active::before { background:var(--bg); border-color:var(--bg); opacity:1; }

.hud-nav__item--back {
  margin-top:auto;
  border-top:1px solid var(--border);
  padding-top:12px;
  color:rgba(180,255,57,0.28);
}

/* ── Center scanner zone ── */
.hud-center {
  display:flex;
  flex-direction:column;
  border-right:1px solid var(--border);
  overflow:hidden;
}

.hud-photo-wrap {
  position:relative;
  flex:1;
  overflow:hidden;
  min-height:0;
  background:#000;
}

.hud-photo-img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  filter:brightness(0.92) contrast(1.05);
}

.hud-photo-empty {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%; height:100%;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.3em;
  color:var(--primary-dim);
}

/* Canvas scanner overlay */
.hud-scanner-canvas {
  position:absolute;
  inset:0;
  width:100%; height:100%;
  pointer-events:none;
  mix-blend-mode:screen;
}

.hud-scanner-watermark {
  position:absolute;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
  pointer-events:none;
  opacity:0.06;
  mix-blend-mode:screen;
}

/* HUD data overlays */
.hud-overlay-tl {
  position:absolute;
  top:12px; left:12px;
  display:flex; flex-direction:column; gap:3px;
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.14em; line-height:1.55;
  color:var(--primary);
  text-shadow:0 0 8px var(--primary);
  z-index:2;
}
.hud-overlay-tl .hud-val { color:var(--secondary); }

.hud-overlay-tr {
  position:absolute;
  top:12px; right:12px;
  z-index:2;
}

.hud-terminal-tag {
  display:inline-block;
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.15em;
  color:var(--primary);
  border:1px solid var(--primary);
  padding:3px 7px;
  text-shadow:0 0 6px var(--primary);
}
.hud-terminal-x { opacity:0.55; margin-left:4px; }

/* Identity bar */
.hud-identity-bar {
  position:absolute;
  bottom:0; left:0; right:0;
  background:rgba(0,0,0,0.78);
  border-top:1px solid rgba(180,255,57,0.38);
  padding:8px 12px 10px;
  display:flex; flex-direction:column; gap:3px;
  z-index:2;
}

.hud-identity-line {
  font-family:var(--font-mono);
  font-size:12px; letter-spacing:0.2em;
  color:var(--primary);
  text-shadow:var(--glow-sm);
  text-transform:uppercase;
}

.hud-bio-scan {
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.18em;
  color:rgba(180,255,57,0.45);
}

/* Stream bar */
.hud-stream-bar {
  flex-shrink:0;
  padding:8px 12px;
  border-top:1px solid var(--border);
  display:flex; justify-content:space-between;
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.1em;
  color:rgba(180,255,57,0.28);
}

/* ── Bio panel (right column) ── */
.hud-bio-panel {
  padding:24px 28px;
  overflow-y:auto;
  display:flex; flex-direction:column; gap:20px;
}

.hud-panel-title {
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.35em;
  color:var(--primary-dim);
  text-transform:uppercase;
  margin:0 0 4px;
  border-bottom:1px solid var(--border);
  padding-bottom:10px;
}

.hud-tags {
  display:flex; flex-wrap:wrap; gap:6px;
}

.hud-tag {
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.2em;
  color:var(--primary);
  border:1px solid var(--border);
  padding:3px 8px;
  text-transform:uppercase;
}

.hud-section-label {
  display:block;
  font-family:var(--font-mono);
  font-size:10px; letter-spacing:0.25em;
  color:var(--primary-dim);
  text-transform:uppercase;
  margin-bottom:10px;
}

.hud-bio-section,
.hud-links-section { display:flex; flex-direction:column; }

.hud-bio-text {
  font-family:var(--font-mono);
  font-size:13px; line-height:1.9;
  color:rgba(255,255,255,0.62);
}
.hud-bio-text p { margin:0 0 0.85em; }
.hud-bio-text p:last-child { margin-bottom:0; }

.hud-icons-row {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:4px;
}

.hud-icon-btn {
  display:flex;
  align-items:center;
  justify-content:center;
  width:34px; height:34px;
  border:1px solid rgba(180,255,57,0.2);
  color:rgba(180,255,57,0.45);
  text-decoration:none;
  transition:color 0.2s, border-color 0.2s, box-shadow 0.2s;
  flex-shrink:0;
}
.hud-icon-btn svg { width:16px; height:16px; display:block; }
.hud-icon-btn:hover {
  color:var(--primary);
  border-color:var(--primary);
  box-shadow:var(--glow-sm);
}

/* Bio strong highlight */
.hud-bio-text strong {
  color:var(--primary);
  font-weight:normal;
}

/* LO_STATUS */
.hud-lo-status { display:flex; flex-direction:column; }

.hud-lo-btns {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.hud-lo-btn {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.22em;
  color:var(--primary-dim);
  border:1px solid rgba(180,255,57,0.18);
  padding:4px 10px;
  text-transform:uppercase;
  cursor:default;
}

.hud-lo-btn--active {
  color:var(--primary);
  border-color:var(--primary);
  text-shadow:var(--glow-sm);
  box-shadow:0 0 6px rgba(180,255,57,0.25) inset;
}

/* VOL_MEDIA_RELEASE */
.hud-media-release {
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid var(--border);
}

.hud-release-title {
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.18em;
  color:var(--secondary);
  opacity:0.75;
}

/* ENCRYPT nav item */
.hud-nav__item--encrypt::before {
  content:'';
  display:inline-block;
  width:9px; height:9px;
  border:1px solid currentColor;
  flex-shrink:0;
  opacity:0.5;
  background:
    linear-gradient(currentColor, currentColor) center 55%/2px 4px no-repeat,
    linear-gradient(currentColor, currentColor) center 38%/6px 2px no-repeat;
}

/* ── Gallery (below HUD, full width) ── */
.artist-hud-page .artist-gallery {
  border-top:1px solid var(--border);
  padding:32px 28px 40px;
  flex-shrink:0;
}

.artist-hud-page .artist-gallery .panel-title { margin-bottom:20px; }

.artist-hud-page .artist-gallery__grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:12px;
}

.artist-gallery__item {
  margin:0;
  border:1px solid var(--border);
  overflow:hidden;
  background:var(--bg-deep);
  transition:border-color 0.2s;
}
.artist-gallery__item:hover { border-color:var(--primary); }

.artist-gallery__item a {
  display:block; aspect-ratio:1/1; overflow:hidden;
}
.artist-gallery__item img {
  display:block; width:100%; height:100%;
  object-fit:cover;
  filter:grayscale(15%);
  transition:filter 0.3s, transform 0.4s;
}
.artist-gallery__item:hover img { filter:grayscale(0%); transform:scale(1.04); }

.artist-gallery__item figcaption {
  padding:7px 10px;
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.18em;
  color:var(--primary-dim);
  text-transform:uppercase;
}

/* ── Old artist-single classes (archive page, etc.) ── */
.artist-topbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 0 20px;
  border-bottom:1px solid var(--border);
  margin-bottom:32px;
}

.artist-topbar__log {
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.25em;
  color:var(--primary-dim);
  text-transform:uppercase;
}

/* Main two-column layout */
.artist-layout {
  display:grid;
  grid-template-columns:360px 1fr;
  gap:48px;
  align-items:start;
  margin-bottom:56px;
}

/* Photo column */
.artist-visual { display:flex; flex-direction:column; gap:12px; }

.artist-photo-frame {
  position:relative;
  width:100%;
  aspect-ratio:1 / 1;
  background:var(--bg-deep);
  border:1px solid var(--border);
  overflow:hidden;
}

.artist-photo-img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
  filter:grayscale(20%) contrast(1.05);
  transition:filter 0.4s;
}

.artist-photo-frame:hover .artist-photo-img { filter:grayscale(0%) contrast(1.1); }

.artist-photo-empty {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.3em;
  color:var(--primary-dim);
}

/* Scan bracket corners — reused from fingerprint zone */
.artist-frame-corners { pointer-events:none; }

.artist-frame-corners .corner {
  position:absolute;
  width:16px; height:16px;
  border-color:var(--primary);
  border-style:solid;
  opacity:0.7;
}
.artist-frame-corners .corner.tl { top:6px;  left:6px;  border-width:2px 0 0 2px; }
.artist-frame-corners .corner.tr { top:6px;  right:6px; border-width:2px 2px 0 0; }
.artist-frame-corners .corner.bl { bottom:6px; left:6px;  border-width:0 0 2px 2px; }
.artist-frame-corners .corner.br { bottom:6px; right:6px; border-width:0 2px 2px 0; }

.artist-photo-caption {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.2em;
  color:var(--primary-dim);
  text-transform:uppercase;
  margin:0;
}

/* Info column */
.artist-info-col {
  display:flex;
  flex-direction:column;
  gap:24px;
  padding-top:8px;
}

.artist-display-name {
  font-family:var(--font-display);
  font-size:clamp(2.2rem, 5vw, 3.8rem);
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--secondary);
  line-height:1.1;
  margin:0;
}

/* Social icon row */
.artist-social-icons {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:4px;
}

.social-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px; height:38px;
  border:1px solid var(--border);
  color:var(--secondary);
  transition:border-color 0.2s, color 0.2s, box-shadow 0.2s, background 0.2s;
  flex-shrink:0;
}

.social-icon svg {
  width:18px; height:18px;
  fill:currentColor;
  display:block;
}

.social-icon:hover { border-color:currentColor; box-shadow:0 0 8px currentColor; }

/* Platform accent colours */
.social-icon--instagram:hover  { color:#e1306c; }
.social-icon--tiktok:hover     { color:#ff0050; }
.social-icon--youtube:hover    { color:#ff0000; }
.social-icon--spotify:hover    { color:#1db954; }
.social-icon--soundcloud:hover { color:#ff5500; }
.social-icon--bandcamp:hover   { color:#1da0c3; }
.social-icon--ra:hover         { color:var(--primary); }
.social-icon--beatport:hover   { color:var(--primary); }

/* Bio */
.artist-single .artist-bio {
  font-family:var(--font-mono);
  font-size:14px;
  line-height:1.85;
  color:rgba(255,255,255,0.7);
  margin:0;
  border-left:2px solid var(--border);
  padding-left:18px;
}

.artist-single .artist-bio p { margin:0 0 1em; }
.artist-single .artist-bio p:last-child { margin-bottom:0; }

/* Additional photo gallery */
.artist-gallery {
  border-top:1px solid var(--border);
  padding-top:40px;
  margin-top:8px;
}

.artist-gallery .panel-title { margin-bottom:24px; }

.artist-gallery__grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
  gap:16px;
}

.artist-gallery__item {
  margin:0;
  border:1px solid var(--border);
  overflow:hidden;
  background:var(--bg-deep);
  transition:border-color 0.2s;
}

.artist-gallery__item:hover { border-color:var(--primary); }

.artist-gallery__item a { display:block; aspect-ratio:1 / 1; overflow:hidden; }

.artist-gallery__item img {
  display:block;
  width:100%; height:100%;
  object-fit:cover;
  filter:grayscale(15%);
  transition:filter 0.3s, transform 0.4s;
}

.artist-gallery__item:hover img {
  filter:grayscale(0%);
  transform:scale(1.03);
}

.artist-gallery__item figcaption {
  padding:8px 10px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.18em;
  color:var(--primary-dim);
  text-transform:uppercase;
}

/* ============================================================
   RELEASE CATALOG PAGE  (archive-kontakto_release.php)
   ============================================================ */

.release-catalog-page {
  padding:0 !important;
  display:block;
}

/* ── Catalog sidebar ── */
.catalog-sidebar {
  width:180px;
  flex-shrink:0;
  border-right:1px solid var(--border);
  display:flex;
  flex-direction:column;
  height:100%;
  overflow-y:auto;
  position:relative;
}

.catalog-sidebar::after {
  content:'';
  position:absolute;
  top:0; right:-1px;
  width:1px; height:100%;
  background:linear-gradient(180deg,transparent,var(--primary) 30%,var(--primary) 70%,transparent);
  box-shadow:var(--glow-sm);
}

.catalog-sidebar__top {
  padding:20px 16px 16px;
  border-bottom:1px solid var(--border);
  flex-shrink:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}

.catalog-sidebar__sys {
  display:block;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.22em;
  color:var(--primary-dim);
  text-transform:uppercase;
}

.catalog-sidebar__connect {
  display:block;
  background:var(--primary);
  color:var(--bg);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.18em;
  padding:9px 12px;
  text-decoration:none;
  text-transform:uppercase;
  transition:box-shadow 0.2s;
}
.catalog-sidebar__connect:hover { box-shadow:var(--glow-md); }

.catalog-nav {
  flex:1;
  display:flex;
  flex-direction:column;
  padding:8px 0;
  overflow-y:auto;
}

.cat-nav__item {
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 16px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.18em;
  color:rgba(180,255,57,0.38);
  text-decoration:none;
  text-transform:uppercase;
  border-left:2px solid transparent;
  transition:color 0.2s, border-color 0.2s, background 0.2s;
  cursor:default;
}

.cat-nav__item::before {
  content:'';
  display:inline-block;
  width:9px; height:9px;
  border:1px solid currentColor;
  flex-shrink:0;
  opacity:0.5;
}

.cat-nav__item[href] { cursor:pointer; }
.cat-nav__item[href]:hover {
  color:var(--primary);
  border-left-color:var(--primary);
  background:rgba(180,255,57,0.04);
}

.cat-nav__item--active {
  background:var(--primary);
  color:var(--bg) !important;
  border-left-color:transparent;
  cursor:default;
}
.cat-nav__item--active::before { background:var(--bg); border-color:var(--bg); opacity:1; }

.cat-nav__item--encrypt {
  margin-top:auto;
  border-top:1px solid var(--border);
  padding-top:12px;
  color:rgba(180,255,57,0.28);
}

/* ── Main scrollable area ── */
.catalog-main {
  padding:32px 36px 48px;
  display:flex;
  flex-direction:column;
  gap:24px;
}

/* ── Header ── */
.catalog-header { flex-shrink:0; }

.catalog-title {
  font-family:var(--font-mono);
  font-size:20px;
  font-weight:normal;
  letter-spacing:0.06em;
  color:var(--primary);
  text-shadow:var(--glow-sm);
  margin-bottom:6px;
  text-transform:uppercase;
}

.catalog-subtitle {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.1em;
  color:rgba(180,255,57,0.28);
  line-height:1.7;
}

/* ── Release grid ── */
.catalog-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
  gap:20px;
  flex-shrink:0;
}

/* ── Release card ── */
.cat-release-card { cursor:pointer; }

.cat-card__thumb {
  position:relative;
  aspect-ratio:1;
  overflow:hidden;
  background:var(--bg-deep);
  border:1px solid rgba(180,255,57,0.15);
  transition:border-color 0.2s;
}

.cat-release-card:hover .cat-card__thumb,
.cat-release-card.is-active .cat-card__thumb {
  border-color:var(--primary);
}

.cat-card__thumb img {
  position:absolute;
  inset:0;
  display:block;
  width:100%; height:100%;
  object-fit:cover;
  object-position:center;
  filter:grayscale(30%) brightness(0.78) contrast(1.1);
  transition:filter 0.3s;
}

.cat-release-card:hover .cat-card__thumb img { filter:grayscale(10%) brightness(0.9); }

.cat-card__no-thumb {
  width:100%; height:100%;
  background:var(--bg-deep);
}

/* Corner brackets */
.cat-corner {
  position:absolute;
  width:12px; height:12px;
  border-color:var(--primary);
  border-style:solid;
  opacity:0.55;
  z-index:2;
  transition:opacity 0.2s, box-shadow 0.2s;
}
.cat-corner--tl { top:5px;    left:5px;  border-width:1.5px 0 0 1.5px; }
.cat-corner--tr { top:5px;    right:5px; border-width:1.5px 1.5px 0 0; }
.cat-corner--bl { bottom:5px; left:5px;  border-width:0 0 1.5px 1.5px; }
.cat-corner--br { bottom:5px; right:5px; border-width:0 1.5px 1.5px 0; }

.cat-release-card:hover .cat-corner,
.cat-release-card.is-active .cat-corner { opacity:1; }
.cat-release-card.is-active .cat-corner { box-shadow:var(--glow-sm); }

/* Catalog ID — top-left */
.cat-card__cat-id {
  position:absolute;
  top:8px; left:20px;
  font-family:var(--font-mono);
  font-size:10px; letter-spacing:0.12em;
  color:rgba(180,255,57,0.6);
  z-index:2;
  text-shadow:0 0 6px rgba(180,255,57,0.4);
}

/* BPM — bottom-right */
.cat-card__bpm {
  position:absolute;
  bottom:22px; right:8px;
  font-family:var(--font-mono);
  font-size:10px; letter-spacing:0.12em;
  color:var(--primary);
  z-index:2;
  text-shadow:var(--glow-sm);
}

/* Bottom scanline accent */
.cat-card__scanline {
  position:absolute;
  bottom:0; left:0; right:0;
  height:2px;
  background:var(--primary);
  box-shadow:0 0 10px rgba(180,255,57,0.9);
  z-index:2;
  opacity:0;
  transition:opacity 0.2s;
}
.cat-release-card:hover .cat-card__scanline,
.cat-release-card.is-active .cat-card__scanline { opacity:1; }

/* Card text */
.cat-card__info { padding:8px 0 4px; }

.cat-card__title {
  font-family:var(--font-mono);
  font-size:13px; letter-spacing:0.1em;
  color:var(--secondary);
  opacity:0.85;
  margin:0 0 4px;
  line-height:1.3;
}
.cat-release-card:hover .cat-card__title,
.cat-release-card.is-active .cat-card__title { color:var(--primary); opacity:1; }

.cat-card__artist {
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.12em;
  color:var(--primary-dim);
  margin:0;
}

/* ── EXTRACTED_METADATA panel ── */
.cat-metadata {
  border:1px solid var(--border);
  background:rgba(0,0,0,0.45);
  flex-shrink:0;
}

.cat-meta__header {
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 18px;
  border-bottom:1px solid var(--border);
  background:rgba(180,255,57,0.04);
}

.cat-meta__icon {
  font-size:13px;
  color:var(--primary-dim);
  flex-shrink:0;
}

.cat-meta__label {
  font-family:var(--font-mono);
  font-size:12px; letter-spacing:0.14em;
  color:var(--primary-dim);
  flex:1;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.cat-meta__dots { display:flex; gap:5px; flex-shrink:0; }
.dot { width:10px; height:10px; border-radius:50%; }
.dot--red    { background:#ff5f57; }
.dot--orange { background:#febc2e; }
.dot--green  { background:#28c840; }

.cat-meta__body {
  display:grid;
  grid-template-columns:360px 1fr 1fr;
  border-bottom:1px solid var(--border);
}

.cat-meta__cover {
  position:relative;
  overflow:hidden;
  border-right:1px solid var(--border);
  aspect-ratio:1/1;
  max-height:360px;
  background:#000;
}

.cat-meta__cover img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.cat-meta__bpm {
  position:absolute;
  bottom:10px;
  left:12px;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.12em;
  color:var(--secondary);
  background:rgba(0,0,0,0.55);
  padding:2px 6px;
}

.cat-meta__tracklist { padding:20px 24px; border-right:1px solid var(--border); }
.cat-meta__specs     { padding:20px 24px; }
.cat-meta__specs[hidden] { display:none; }

.cat-meta__col-title {
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.22em;
  color:var(--primary-dim);
  font-weight:normal;
  text-transform:uppercase;
  margin:0 0 14px;
  padding-bottom:8px;
  border-bottom:1px solid rgba(180,255,57,0.1);
}

/* Tracklist */
.cat-track-list {
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:2px;
}

.cat-track-item {
  display:grid;
  grid-template-columns:24px 1fr auto;
  gap:10px;
  align-items:baseline;
  padding:6px 0;
  border-bottom:1px solid rgba(180,255,57,0.06);
  font-family:var(--font-mono);
}

.cat-track__num   { font-size:11px; color:var(--primary-dim); letter-spacing:0.08em; }
.cat-track__title { font-size:13px; color:var(--secondary); opacity:0.8; letter-spacing:0.08em; line-height:1.4; }
.cat-track__dur   { font-size:11px; color:var(--primary-dim); letter-spacing:0.08em; white-space:nowrap; }

.cat-track-item--empty {
  font-size:11px; color:var(--primary-dim); letter-spacing:0.15em; grid-column:1/-1;
}

/* Spec tags */
.cat-spec-tags {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.cat-spec-tag {
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.15em;
  color:var(--primary-dim);
  border:1px solid rgba(180,255,57,0.2);
  padding:7px 10px;
  text-align:center;
  text-transform:uppercase;
}

/* Access commands */
.cat-meta__access {
  padding:18px 24px 22px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.cat-access-links {
  display:flex;
  flex-direction:column;
  gap:2px;
}

.cat-access-link {
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-mono);
  font-size:13px; letter-spacing:0.12em;
  color:var(--primary-dim);
  text-decoration:none;
  padding:8px 0;
  border-bottom:1px solid rgba(180,255,57,0.08);
  transition:color 0.2s, border-color 0.2s;
}
.cat-access-link:hover { color:var(--primary); border-bottom-color:var(--primary); }

.cat-access-prompt { color:var(--primary); flex-shrink:0; }
.cat-access-name   { flex:1; }
.cat-access-arrow  { color:var(--primary); font-size:16px; flex-shrink:0; }

.cat-access-icon {
  width:16px !important; height:16px !important;
  min-width:16px; max-width:16px;
  min-height:16px; max-height:16px;
  flex-shrink:0;
  overflow:hidden;
  opacity:0.6;
  transition:opacity 0.2s;
}
.cat-access-link:hover .cat-access-icon { opacity:1; }

.cat-access-empty {
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:0.18em;
  color:var(--primary-dim);
}

/* Empty state / pagination */
.catalog-empty {
  font-family:var(--font-mono);
  font-size:13px; letter-spacing:0.2em;
  color:var(--primary-dim);
}

.catalog-pagination .nav-links { display:flex; gap:12px; }
.catalog-pagination a,
.catalog-pagination .current {
  font-family:var(--font-mono);
  font-size:12px; letter-spacing:0.15em;
  color:var(--primary-dim);
  text-decoration:none;
  padding:5px 10px;
  border:1px solid rgba(180,255,57,0.15);
  transition:color 0.2s, border-color 0.2s;
}
.catalog-pagination a:hover { color:var(--primary); border-color:var(--primary); }
.catalog-pagination .current { color:var(--primary); border-color:var(--border); }

/* ============================================================
   TERMINAL / DEMO SUBMISSION PAGE  (page-terminal.php)
   ============================================================ */

.terminal-page {
  padding:32px 48px 56px !important;
  overflow-y:auto;
}

/* ── Top status bar ── */
.term-topbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:28px;
  padding-bottom:10px;
  border-bottom:1px solid rgba(180,255,57,0.1);
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.18em;
}

.term-topbar__left { color:var(--primary-dim); }

.term-topbar__right {
  display:flex;
  align-items:center;
  gap:14px;
}

.term-uplink {
  color:rgba(180,255,57,0.3);
  letter-spacing:0.18em;
}

.term-exec-btn {
  color:var(--primary);
  border:1px solid var(--border);
  padding:3px 10px;
  letter-spacing:0.15em;
}

/* ── Form wrapper ── */
.term-form-wrap { max-width:620px; }

/* ── Header ── */
.term-header { margin-bottom:28px; }

.term-title {
  font-family:var(--font-mono);
  font-size:18px;
  font-weight:normal;
  letter-spacing:0.08em;
  color:var(--primary);
  text-shadow:var(--glow-sm);
  margin:0 0 8px;
}

.term-intro {
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.14em;
  color:var(--primary-dim);
  margin:0;
  display:flex;
  align-items:center;
  gap:8px;
}

.term-dot {
  color:var(--primary);
  animation:hud-dot-pulse 2s ease-in-out infinite;
  font-size:14px;
  line-height:1;
}

/* ── Status messages ── */
.term-msg {
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.14em;
  padding:12px 16px;
  border:1px solid;
  margin-bottom:24px;
}

.term-msg--ok  { color:var(--primary); border-color:var(--primary); }
.term-msg--err { color:#ff5555;        border-color:rgba(255,85,85,0.4); }

/* ── Form layout ── */
.term-form { display:flex; flex-direction:column; gap:20px; }

.term-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

.term-field { display:flex; flex-direction:column; gap:6px; }
.term-field--full { grid-column:1 / -1; }

/* ── Label ── */
.term-label {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.2em;
  color:rgba(255,255,255,0.55);
  text-transform:uppercase;
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}

.term-label__tag {
  color:var(--primary);
  font-size:11px;
}

.term-label__badge {
  margin-left:auto;
  color:rgba(180,255,57,0.35);
  font-size:10px;
  letter-spacing:0.18em;
}

/* ── Inputs ── */
.term-input,
.term-textarea {
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.08em;
  color:var(--secondary);
  background:rgba(0,0,0,0.4);
  border:1px solid rgba(180,255,57,0.2);
  padding:11px 14px;
  outline:none;
  border-radius:0;
  -webkit-appearance:none;
  transition:border-color 0.2s, box-shadow 0.2s;
  width:100%;
}

.term-input::placeholder,
.term-textarea::placeholder {
  color:rgba(180,255,57,0.25);
  font-size:13px;
}

.term-input:focus,
.term-textarea:focus {
  border-color:var(--primary);
  box-shadow:var(--glow-sm);
}

/* Date input — force light color on calendar icon */
.term-input--date {
  color-scheme:dark;
}

/* ── File drop zone ── */
.term-dropzone {
  position:relative;
  border:1px dashed rgba(180,255,57,0.3);
  background:rgba(0,0,0,0.35);
  min-height:148px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  transition:border-color 0.2s, background 0.2s;
  cursor:pointer;
}

.term-dropzone.drag-over {
  border-color:var(--primary);
  background:rgba(180,255,57,0.04);
  box-shadow:0 0 12px rgba(180,255,57,0.15) inset;
}

.term-dropzone.has-file { border-color:var(--primary); }

/* Corner brackets (TL + BR only) */
.term-dc {
  position:absolute;
  width:12px; height:12px;
  border-color:var(--primary);
  border-style:solid;
  opacity:0.6;
}
.term-dc--tl { top:-1px;    left:-1px;  border-width:2px 0 0 2px; }
.term-dc--br { bottom:-1px; right:-1px; border-width:0 2px 2px 0; }

/* Hide the native file input */
.term-file-input {
  position:absolute;
  inset:0;
  opacity:0;
  width:100%;
  height:100%;
  cursor:pointer;
  z-index:2;
}

/* Clickable label (visuals) */
.term-dropzone__body {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:24px 20px;
  cursor:pointer;
  z-index:1;
  pointer-events:none;
}

.term-drop-icon {
  width:40px; height:40px;
  color:rgba(180,255,57,0.45);
}

.term-drop-main {
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.18em;
  color:rgba(180,255,57,0.5);
  text-transform:uppercase;
}

.term-drop-sub {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.14em;
  color:rgba(180,255,57,0.28);
}

/* Filename display */
.term-drop-filename {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.12em;
  color:var(--primary);
  padding:4px 14px 10px;
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  text-align:center;
}

/* ── Textarea ── */
.term-textarea {
  resize:vertical;
  min-height:110px;
  line-height:1.7;
}

/* ── Submit row ── */
.term-submit-row {
  display:flex;
  align-items:center;
  gap:24px;
  margin-top:8px;
  flex-wrap:wrap;
}

.term-submit-btn {
  flex-shrink:0;
  font-family:var(--font-mono);
  font-size:14px;
  letter-spacing:0.2em;
  color:var(--bg);
  background:var(--primary);
  border:none;
  padding:14px 28px;
  cursor:pointer;
  text-transform:uppercase;
  transition:box-shadow 0.2s, filter 0.2s;
}

.term-submit-btn:hover {
  box-shadow:var(--glow-md);
  filter:brightness(1.1);
}

.term-submit-meta {
  display:flex;
  flex-direction:column;
  gap:3px;
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:0.1em;
  color:rgba(180,255,57,0.28);
  line-height:1.6;
}

/* ── Responsive ── */
@media (max-width:640px) {
  .terminal-page    { padding:24px 20px 40px !important; }
  .term-row         { grid-template-columns:1fr; }
  .term-submit-row  { flex-direction:column; align-items:flex-start; }
}

/* ============================================================
   EVENTS — MISSION TIMELINE  (archive-kontakto_event.php)
   ============================================================ */

body.post-type-archive-kontakto_event .inner-page { height:100vh; overflow:hidden; }

.events-timeline-page {
  padding:0 !important;
  display:flex;
  height:calc(100vh - 114px);
  overflow:hidden;
}

/* ── Sidebar ── */
.evt-sidebar {
  width:160px;
  flex-shrink:0;
  border-right:1px solid var(--border);
  display:flex;
  flex-direction:column;
  height:100%;
  overflow-y:auto;
  position:relative;
}

.evt-sidebar::after {
  content:'';
  position:absolute;
  top:0; right:-1px;
  width:1px; height:100%;
  background:linear-gradient(180deg,transparent,var(--primary) 30%,var(--primary) 70%,transparent);
  box-shadow:var(--glow-sm);
}

.evt-sidebar__system {
  display:flex;
  align-items:center;
  gap:10px;
  padding:16px 14px;
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}

.evt-sidebar__icon {
  flex-shrink:0;
  width:32px; height:32px;
  border:1px solid var(--border);
  background:
    linear-gradient(var(--primary),var(--primary)) center/1px 60% no-repeat,
    linear-gradient(var(--primary),var(--primary)) center/60% 1px no-repeat,
    radial-gradient(circle,transparent 30%,var(--primary-glow) 100%);
  opacity:0.55;
}

.evt-sidebar__hud {
  display:block;
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:0.2em;
  color:var(--primary-dim);
  text-transform:uppercase;
  margin-bottom:3px;
}

.evt-sidebar__status {
  display:flex;
  align-items:center;
  gap:5px;
  font-family:var(--font-mono);
  font-size:9px;
  letter-spacing:0.14em;
  color:var(--primary-dim);
}

/* Nav */
.evt-sidebar__nav {
  flex:1;
  display:flex;
  flex-direction:column;
  padding:8px 0;
  overflow-y:auto;
}

.evt-nav__item {
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.18em;
  color:rgba(180,255,57,0.38);
  text-decoration:none;
  text-transform:uppercase;
  border-left:2px solid transparent;
  transition:color 0.2s, border-color 0.2s, background 0.2s;
  cursor:default;
}

.evt-nav__item::before {
  content:'';
  display:inline-block;
  width:9px; height:9px;
  border:1px solid currentColor;
  flex-shrink:0;
  opacity:0.5;
}

.evt-nav__item[href] { cursor:pointer; }
.evt-nav__item[href]:hover {
  color:var(--primary);
  border-left-color:var(--primary);
  background:rgba(180,255,57,0.04);
}

.evt-nav__item--active {
  background:var(--primary);
  color:var(--bg) !important;
  border-left-color:transparent;
}
.evt-nav__item--active::before { background:var(--bg); border-color:var(--bg); opacity:1; }

.evt-nav__item--encrypt {
  border-top:1px solid var(--border);
  color:rgba(180,255,57,0.28);
}

/* Connect button — pinned bottom */
.evt-sidebar__connect {
  display:block;
  background:var(--primary);
  color:var(--bg);
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.18em;
  padding:12px 14px;
  text-decoration:none;
  text-transform:uppercase;
  text-align:center;
  flex-shrink:0;
  margin-top:auto;
  transition:box-shadow 0.2s;
}
.evt-sidebar__connect:hover { box-shadow:var(--glow-md); }

/* ── Main scrollable area ── */
.evt-main {
  flex:1;
  padding:32px 36px 48px;
  display:flex;
  flex-direction:column;
  gap:24px;
  min-width:0;
  height:100%;
  overflow-y:auto;
}

/* ── Header ── */
.evt-header {
  display:flex;
  align-items:stretch;
  gap:16px;
  flex-shrink:0;
}

.evt-header__bar {
  width:3px;
  background:var(--primary);
  box-shadow:var(--glow-sm);
  flex-shrink:0;
}

.evt-header__text { display:flex; flex-direction:column; gap:6px; }

.evt-title {
  font-family:var(--font-mono);
  font-size:20px;
  font-weight:normal;
  letter-spacing:0.06em;
  color:var(--primary);
  text-shadow:var(--glow-sm);
  text-transform:uppercase;
  margin:0;
}

.evt-subtitle {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.12em;
  color:rgba(180,255,57,0.3);
  margin:0;
}

/* ── Featured grid ── */
.evt-featured-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  flex-shrink:0;
}

.evt-feat-card {
  border:1px solid var(--border);
  display:flex;
  overflow:hidden;
  background:rgba(0,0,0,0.3);
}

/* Primary card: image on left, body on right */
.evt-feat-card--primary {
  flex-direction:row;
}

/* Secondary card: image on top, body below */
.evt-feat-card--secondary {
  flex-direction:column;
}

.evt-feat-card--secondary .evt-feat-card__img {
  flex:none;
  height:180px;
}

/* Image section (primary card) */
.evt-feat-card__img {
  position:relative;
  flex:0 0 40%;
  background:var(--bg-deep);
  overflow:hidden;
}

.evt-feat-card__img img {
  display:block;
  width:100%; height:100%;
  object-fit:cover;
  filter:grayscale(35%) brightness(0.75) contrast(1.1);
}

.evt-feat-card__img--empty {
  background:
    repeating-linear-gradient(
      45deg,
      transparent,
      transparent 6px,
      rgba(180,255,57,0.03) 6px,
      rgba(180,255,57,0.03) 7px
    );
}

/* Body */
.evt-feat-card__body {
  flex:1;
  padding:18px 20px 20px;
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}

.evt-feat-card__top {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

/* Sector label (secondary card) */
.evt-scan-sector {
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:0.15em;
  color:var(--primary-dim);
  margin-left:auto;
  order:3;
}

/* Status badge */
.evt-status-badge {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.15em;
  padding:3px 9px;
  border:1px solid;
  text-transform:uppercase;
  flex-shrink:0;
}

.evt-status-badge--active {
  color:var(--primary);
  border-color:var(--primary);
  box-shadow:0 0 6px rgba(180,255,57,0.3) inset;
}

.evt-status-badge--locked {
  color:#febc2e;
  border-color:rgba(254,188,46,0.5);
}

/* IP address */
.evt-ip {
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:0.1em;
  color:var(--primary-dim);
  margin-left:auto;
}

/* Event title */
.evt-feat-card__title {
  font-family:var(--font-mono);
  font-size:clamp(16px,2.2vw,22px);
  font-weight:normal;
  letter-spacing:0.06em;
  color:var(--primary);
  text-shadow:var(--glow-sm);
  text-transform:uppercase;
  margin:0;
  line-height:1.2;
}

/* Meta lines (DATE, LOCATION) */
.evt-feat-card__meta {
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.1em;
  color:rgba(180,255,57,0.55);
  margin:0;
  line-height:1.5;
}

.evt-meta-key {
  color:var(--primary-dim);
  margin-right:4px;
}

/* Transmission cells (lineup) */
.evt-cells { display:flex; flex-direction:column; gap:6px; }

.evt-cells__label {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.18em;
  color:var(--primary-dim);
  text-transform:uppercase;
}

.evt-cells__tags {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.evt-cell-tag {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.12em;
  color:var(--primary);
  border:1px solid var(--border);
  padding:3px 8px;
  text-transform:uppercase;
  white-space:nowrap;
}

/* Access button */
.evt-access-btn {
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.18em;
  color:var(--primary);
  text-decoration:none;
  border:1px solid var(--primary);
  padding:9px 16px;
  text-transform:uppercase;
  transition:background 0.2s, color 0.2s, box-shadow 0.2s;
  margin-top:auto;
  align-self:flex-start;
}

.evt-access-btn:hover {
  background:var(--primary);
  color:var(--bg);
  box-shadow:var(--glow-sm);
}

.evt-access-btn--locked {
  color:var(--primary-dim);
  border-color:rgba(180,255,57,0.2);
  cursor:default;
}

/* ── Secondary transmissions ── */
.evt-secondary { flex-shrink:0; }

.evt-secondary__heading {
  font-family:var(--font-mono);
  font-size:11px;
  font-weight:normal;
  letter-spacing:0.28em;
  color:var(--primary-dim);
  text-align:center;
  margin:0 0 12px;
  padding:8px 0;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
  text-transform:uppercase;
}

.evt-row {
  display:grid;
  grid-template-columns:40px 100px 1fr 1fr 1fr auto;
  align-items:center;
  gap:16px;
  padding:14px 0;
  border-bottom:1px solid rgba(180,255,57,0.08);
  transition:border-color 0.2s, padding-left 0.2s;
}

.evt-row:hover { border-bottom-color:rgba(180,255,57,0.25); padding-left:6px; }
.evt-row--past { opacity:0.4; }
.evt-row--past:hover { opacity:0.6; padding-left:0; }

.evt-row__counter {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.1em;
  color:var(--primary-dim);
  flex-shrink:0;
}

.evt-row__date {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.08em;
  color:rgba(180,255,57,0.45);
  line-height:1.5;
}

.evt-row__title {
  font-family:var(--font-mono);
  font-size:14px;
  font-weight:normal;
  letter-spacing:0.1em;
  color:var(--primary);
  text-transform:uppercase;
  margin:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.evt-row__loc {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.1em;
  color:var(--primary-dim);
  line-height:1.5;
}

.evt-row__lineup {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.08em;
  color:rgba(180,255,57,0.45);
  line-height:1.7;
}

.evt-row__lineup-label { color:var(--primary-dim); }

.evt-row__status { font-size:10px; letter-spacing:0.1em; }
.evt-row__status--active { color:var(--primary); }
.evt-row__status--locked { color:#febc2e; }
.evt-row__status--past   { color:rgba(180,255,57,0.32); letter-spacing:0.14em; }

.evt-row__link {
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.12em;
  color:var(--primary);
  text-decoration:none;
  white-space:nowrap;
  transition:text-shadow 0.2s;
}

.evt-row__link:hover { text-shadow:var(--glow-sm); }
.evt-row__link--locked { color:rgba(180,255,57,0.25); cursor:default; }
.evt-row__link--dim    { color:rgba(180,255,57,0.2); cursor:default; }

/* Title column wrapper (title + inline status/ticket) */
.evt-row__title-col {
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}

.evt-row__inline-meta {
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

/* Ticket link inside secondary rows */
.evt-row__ticket-link {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.14em;
  color:var(--primary);
  text-decoration:none;
  white-space:nowrap;
  transition:text-shadow 0.2s;
}
.evt-row__ticket-link:hover { text-shadow:var(--glow-sm); }
.evt-row__ticket-link--locked { color:rgba(180,255,57,0.22); cursor:default; }

/* Empty state */
.evt-empty {
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.2em;
  color:var(--primary-dim);
  margin-top:24px;
}

/* ── Clickable event items ── */
.js-evt-item { cursor:pointer; }

.evt-feat-card.is-active {
  border-color:var(--primary);
  box-shadow:0 0 10px rgba(180,255,57,0.18) inset;
}

.evt-row.is-active {
  background:rgba(180,255,57,0.03);
  border-bottom-color:var(--primary);
}

.evt-expand-hint {
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.15em;
  color:rgba(180,255,57,0.28);
  margin-top:auto;
  align-self:flex-start;
}

.evt-row__expand {
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.12em;
  color:var(--primary);
  white-space:nowrap;
}
.evt-row__expand--dim { color:rgba(180,255,57,0.22); }

/* ── Event signal data panel ── */
.evt-metadata {
  border:1px solid var(--border);
  background:rgba(0,0,0,0.45);
  flex-shrink:0;
}

.evt-meta__header {
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 18px;
  border-bottom:1px solid var(--border);
  background:rgba(180,255,57,0.04);
}

.evt-meta__icon {
  font-size:13px;
  color:var(--primary-dim);
  flex-shrink:0;
}

.evt-meta__label {
  font-family:var(--font-mono);
  font-size:12px; letter-spacing:0.14em;
  color:var(--primary-dim);
  flex:1;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.evt-meta__body {
  display:grid;
  grid-template-columns:280px 1fr;
  border-bottom:1px solid var(--border);
}

.evt-metadata--no-img .evt-meta__body {
  grid-template-columns:1fr;
}

.evt-meta__img-col {
  position:relative;
  overflow:hidden;
  border-right:1px solid var(--border);
  aspect-ratio:1/1;
  max-height:280px;
  background:#000;
}

.evt-meta__img-col img {
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}

.evt-meta__details {
  padding:24px 28px;
  display:flex;
  flex-direction:column;
  gap:16px;
}

.evtm-row {
  display:flex;
  flex-direction:column;
  gap:4px;
}

.evtm-key {
  font-family:var(--font-mono);
  font-size:10px; letter-spacing:0.25em;
  color:var(--primary-dim);
  text-transform:uppercase;
}

.evtm-val {
  font-family:var(--font-mono);
  font-size:13px; letter-spacing:0.1em;
  color:var(--secondary);
  opacity:0.85;
  line-height:1.5;
}

.evtm-status--active   { color:var(--primary); opacity:1; }
.evtm-status--locked   { color:#febc2e; opacity:1; }
.evtm-status--past     { color:rgba(180,255,57,0.35); opacity:1; }

/* Event description — slightly softer than other rows */
.evtm-row--desc .evtm-val {
  color:rgba(255,255,255,0.62);
  font-size:12px;
  line-height:1.75;
  letter-spacing:0.04em;
  white-space:pre-line;
}

/* Featured card description */
.evt-feat-card__desc {
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.05em;
  line-height:1.75;
  color:rgba(255,255,255,0.55);
  margin:0;
}

.evt-meta__access {
  padding:18px 24px 22px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

/* ============================================================
   RESPONSIVE — NEW SECTIONS
   ============================================================ */

@media (max-width:960px) {
  body.post-type-archive-kontakto_event .inner-page { height:auto; overflow:visible; }

  .release-detail,
  .artist-detail {
    grid-template-columns:1fr;
  }

  .release-detail__cover,
  .artist-detail__photo {
    max-width:340px;
  }

  /* HUD artist: stack on tablet */
  body.single-kontakto_artist .inner-page { height:auto; overflow:visible; }

  .hud-main {
    grid-template-columns:1fr;
    height:auto;
  }

  .hud-bio-panel { grid-column:1 / -1; border-top:1px solid var(--border); }

  .hud-photo-wrap { min-height:55vw; }

  /* Catalog: collapse metadata to 1-col on tablet/mobile */
  .cat-meta__body { grid-template-columns:1fr; }
  .cat-meta__cover { border-right:none; border-bottom:1px solid var(--border); aspect-ratio:16/9; max-height:260px; }
  .cat-meta__tracklist { border-right:none; border-bottom:1px solid var(--border); }
  .cat-meta__specs:not([hidden]) { border-bottom:1px solid var(--border); }
  .catalog-main { padding:24px 20px 40px; }
  /* Catalog grid: 3 columns on tablet */
  .catalog-grid { grid-template-columns:repeat(3,1fr); gap:14px; }

  /* Events: 1-col featured, simpler rows */
  .evt-featured-grid { grid-template-columns:1fr; }
  .evt-feat-card--primary { flex-direction:column; }
  .evt-feat-card__img { flex:0 0 240px; }
  .evt-row { grid-template-columns:40px 90px 1fr; gap:10px; }
  .evt-row__loc, .evt-row__lineup, .evt-row__expand { display:none; }
  .evt-main { padding:24px 20px 40px; height:auto; overflow-y:visible; }

  .event-item {
    grid-template-columns:60px 1fr;
    gap:16px;
  }

  .event-actions {
    grid-column:2;
    flex-direction:row; align-items:center; gap:12px;
  }
}

@media (max-width:640px) {
  .release-grid { grid-template-columns:repeat(2,1fr); gap:14px; }
  .artist-grid  { grid-template-columns:repeat(2,1fr); gap:14px; }

  /* HUD artist: single column stack */
  .hud-main {
    grid-template-columns:1fr;
    height:auto;
  }

  .hud-center { border-right:none; }
  .hud-photo-wrap { min-height:70vw; }

  .artist-hud-page .artist-gallery__grid { grid-template-columns:repeat(2,1fr); }

  /* Catalog: single column stack */
  .catalog-grid { grid-template-columns:repeat(2,1fr); gap:12px; }

  /* Events: single column stack */
  .events-timeline-page { flex-direction:column; height:auto; overflow:visible; }
  /* Row: counter hidden, date + title stack in a single column */
  .evt-row { grid-template-columns:1fr; gap:2px; padding:12px 0; }
  .evt-row__counter { display:none; }
  .evt-row__date { font-size:10px; letter-spacing:0.06em; }
  .evt-row__title { white-space:normal; overflow:visible; text-overflow:clip; font-size:13px; }
  .evt-row__loc, .evt-row__lineup, .evt-row__expand { display:none; }
  .evt-meta__body { grid-template-columns:1fr; }
  .evt-meta__img-col { border-right:none; border-bottom:1px solid var(--border); max-height:200px; }

  .event-item { grid-template-columns:1fr; gap:8px; }
  .event-date-col { flex-direction:row; gap:6px; align-items:baseline; }
  .event-day  { font-size:18px; }
  .event-actions { grid-column:1; flex-direction:row; }
}

/* ── RELEASES: mobile-specific fixes ─────────────────────── */
@media (max-width:480px) {

  /* Tighter main padding */
  .catalog-main { padding:16px 14px 32px; gap:16px; }

  /* Subtitle legible at small size */
  .catalog-subtitle { font-size:12px; }

  /* Cards: 1-col on very narrow screens so image is usable */
  .catalog-grid { grid-template-columns:repeat(2,1fr); gap:10px; }

  /* Panel header: shrink text less aggressively */
  .cat-meta__header { padding:8px 12px; }
  .cat-meta__label  { font-size:11px; letter-spacing:0.1em; }

  /* Cover: taller ratio on narrow screens */
  .cat-meta__cover  { aspect-ratio:4/3; max-height:none; }

  /* Compact inner padding */
  .cat-meta__tracklist { padding:14px 16px; }
  .cat-meta__specs     { padding:14px 16px; }
  .cat-meta__access    { padding:12px 16px 18px; gap:6px; }

  /* Tags: single column so text never clips */
  .cat-spec-tags { grid-template-columns:1fr; gap:6px; }

  /* Bigger touch targets on access links (min 44px) */
  .cat-access-link {
    padding:14px 0;
    font-size:12px;
    letter-spacing:0.08em;
    gap:8px;
  }

  /* Arrow always visible */
  .cat-access-arrow { font-size:14px; }
}

@media (max-width:360px) {
  /* Single-column card grid on the smallest phones */
  .catalog-grid { grid-template-columns:1fr; }
}

/* ============================================================
   BURGER MENU — INNER PAGES
   ============================================================ */

.nav-toggle {
  display:none;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  width:40px; height:40px;
  background:none;
  border:1px solid var(--border);
  cursor:pointer;
  padding:0;
  flex-shrink:0;
  transition:border-color 0.2s, box-shadow 0.2s;
}

.nav-toggle:hover {
  border-color:var(--primary);
  box-shadow:var(--glow-sm);
}

.nav-toggle__bar {
  display:block;
  width:18px; height:1.5px;
  background:var(--primary);
  box-shadow:var(--glow-sm);
  transform-origin:center;
  transition:transform 0.25s ease, opacity 0.25s ease;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(1) {
  transform:translateY(6.5px) rotate(45deg);
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(2) {
  opacity:0;
  transform:scaleX(0);
}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(3) {
  transform:translateY(-6.5px) rotate(-45deg);
}

@keyframes navSlideIn {
  from { opacity:0; transform:translateY(-6px); }
  to   { opacity:1; transform:translateY(0); }
}

@media (max-width:768px) {
  /* Show burger button */
  .nav-toggle { display:flex; }

  /* Header: sticky so the burger is always reachable while scrolling */
  .inner-header {
    padding:0 20px;
    position:sticky;
    top:0;
    background:var(--bg);
  }

  /* Nav: hidden by default, dropdown on open */
  .inner-nav {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--bg-deep);
    border-top:2px solid var(--primary);
    border-bottom:1px solid var(--border);
    box-shadow:0 12px 32px rgba(0,0,0,0.75);
    z-index:999;
    max-height:calc(100vh - 60px);
    overflow-y:auto;
  }

  .inner-nav.is-open {
    display:block;
    animation:navSlideIn 0.18s ease forwards;
  }

  .inner-nav ul {
    flex-direction:column;
    gap:0;
    padding:6px 0 10px;
    counter-reset:nav-counter;
  }

  .inner-nav a {
    font-size:14px;
    letter-spacing:0.14em;
    padding:13px 28px;
    display:block;
    border-bottom:1px solid rgba(180,255,57,0.06);
    transition:color 0.2s, background 0.2s, padding-left 0.2s;
  }

  .inner-nav a:hover {
    background:rgba(180,255,57,0.04);
    padding-left:36px;
    color:var(--primary);
    text-shadow:var(--glow-sm);
  }

  /* Disable the underline slide-in on mobile */
  .inner-nav a::after { display:none; }
}

/* ============================================================
   HOME PAGE FINGERPRINT ANIMATION — MOBILE FIX
   ============================================================ */

@media (max-width:900px) {
  /* Stack the three columns vertically so fingerprint-zone gets real space */
  .terminal-main {
    grid-template-columns:1fr;
    overflow:visible;
    height:auto;
  }

  .fingerprint-zone {
    min-height:300px;
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
  }
}

/* ============================================================
   HOMEPAGE AUDIO PLAYER
   ============================================================ */

/* Allow inner flex children to shrink/scroll */
.data-panel { overflow:hidden; }

/* Player wrapper — grows to fill available panel space */
.sys-player {
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
  margin-bottom:16px;
}

/* Now-playing label + track title */
.player-now {
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:14px;
}

.player-now__label {
  font-size:10px;
  letter-spacing:0.25em;
  color:var(--primary-dim);
  text-transform:uppercase;
}

.player-now__title {
  font-size:12px;
  letter-spacing:0.1em;
  color:var(--secondary);
  opacity:0.9;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-shadow:none;
  transition:color 0.2s;
}

/* Progress bar */
.player-progress-wrap {
  height:3px;
  background:rgba(180,255,57,0.15);
  cursor:pointer;
  margin-bottom:5px;
  position:relative;
}

.player-progress-fill {
  position:absolute;
  top:0; left:0;
  height:100%;
  width:0;
  background:var(--primary);
  box-shadow:0 0 6px rgba(180,255,57,0.7);
  pointer-events:none;
}

/* Elapsed / duration */
.player-time {
  display:flex;
  justify-content:space-between;
  font-size:10px;
  letter-spacing:0.12em;
  color:var(--primary-dim);
  margin-bottom:12px;
}

/* Control buttons row */
.player-ctrl {
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:14px;
}

.player-btn {
  -webkit-appearance:none;
  appearance:none;
  background:none;
  border:none;
  outline:none;
  position:relative;
  color:var(--primary-dim);
  font-family:var(--font-mono);
  font-size:10px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  padding:2px 0 4px;
  cursor:pointer;
  transition:color 0.2s, text-shadow 0.2s;
  line-height:1;
  flex-shrink:0;
}

.player-btn::after {
  content:'';
  position:absolute;
  bottom:0; left:0;
  width:0; height:1px;
  background:var(--primary);
  box-shadow:var(--glow-sm);
  transition:width 0.25s ease;
}

.player-btn:hover {
  color:var(--primary);
  text-shadow:var(--glow-sm);
}

.player-btn:hover::after { width:100%; }

.player-btn--play {
  color:var(--primary);
  letter-spacing:0.28em;
}

.player-btn--play::after {
  width:40%;
}

.player-btn--play.is-playing {
  text-shadow:0 0 10px rgba(180,255,57,0.75);
}

.player-btn--play.is-playing::after { width:100%; }

/* Playlist */
.player-playlist {
  flex:1;
  min-height:0;
  overflow-y:auto;
  list-style:none;
  display:flex;
  flex-direction:column;
  border:1px solid var(--border);
}

.player-track {
  display:grid;
  grid-template-columns:26px 1fr;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border-bottom:1px solid rgba(180,255,57,0.07);
  cursor:pointer;
  transition:background 0.15s;
}

.player-track:last-child { border-bottom:none; }

.player-track:hover { background:rgba(180,255,57,0.05); }

.player-track.is-active {
  background:rgba(180,255,57,0.09);
  border-left:2px solid var(--primary);
}

.player-track__num {
  font-size:10px;
  letter-spacing:0.08em;
  color:var(--primary-dim);
  text-align:right;
}

.player-track.is-active .player-track__num { color:var(--primary); }

.player-track__title {
  font-size:12px;
  letter-spacing:0.07em;
  color:var(--secondary);
  opacity:0.72;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.player-track.is-active .player-track__title { color:var(--primary); opacity:1; }

/* No-tracks fallback */
.player-empty {
  font-size:10px;
  letter-spacing:0.14em;
  color:var(--primary-dim);
  border:1px dashed var(--border);
  padding:14px 10px;
  line-height:1.7;
  margin-bottom:14px;
}

/* Separator + compact data section */
.data-section {
  flex-shrink:0;
  padding-top:14px;
  border-top:1px solid var(--border);
}

.panel-title--sub {
  font-size:11px;
  margin-bottom:12px;
  padding-bottom:8px;
}

/* Mobile: player stacks naturally */
@media (max-width:900px) {
  .sys-player { flex:none; }
  .player-playlist { max-height:200px; }
}

/* ============================================================
   GLOBAL PERSISTENT PLAYER BAR
   ============================================================ */

.global-player {
  position:fixed;
  bottom:0; left:0; right:0;
  z-index:1000;
  background:var(--bg-deep);
  border-top:2px solid var(--primary);
  box-shadow:0 -6px 28px rgba(0,0,0,0.7), 0 -2px 0 rgba(180,255,57,0.06);
  font-family:var(--font-mono);
}
.global-player[hidden]    { display:none; }
.global-player.gp-no-tracks { opacity:0.35; pointer-events:none; }

.gp-progress-wrap {
  height:3px;
  background:rgba(180,255,57,0.1);
  cursor:pointer;
  position:relative;
}
.gp-progress-fill {
  height:100%; width:0;
  background:var(--primary);
  box-shadow:var(--glow-sm);
  pointer-events:none;
}

.gp-bar {
  display:flex;
  align-items:center;
  gap:20px;
  padding:0 28px;
  height:54px;
}

.gp-info {
  display:flex;
  flex-direction:column;
  min-width:0;
  flex:0 1 220px;
  overflow:hidden;
}
.gp-label {
  font-size:9px;
  letter-spacing:0.28em;
  color:var(--primary-dim);
  line-height:1;
  margin-bottom:3px;
}
.gp-title {
  font-size:12px;
  letter-spacing:0.1em;
  color:var(--primary);
  text-shadow:var(--glow-sm);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.gp-controls {
  display:flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
}
.gp-btn {
  background:none;
  border:1px solid var(--border);
  color:var(--primary);
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:0.07em;
  padding:6px 12px;
  cursor:pointer;
  white-space:nowrap;
  transition:border-color 0.15s, box-shadow 0.15s, background 0.15s, color 0.15s;
}
.gp-btn:hover { border-color:var(--primary); box-shadow:var(--glow-sm); }
.gp-btn--play { padding:6px 20px; border-color:rgba(180,255,57,0.45); }
.gp-btn--play.is-playing {
  background:var(--primary);
  color:var(--bg);
  border-color:var(--primary);
  box-shadow:var(--glow-sm);
}

.gp-viz { flex-shrink:0; display:block; opacity:0.85; }

.gp-time {
  font-size:11px;
  letter-spacing:0.08em;
  color:var(--primary-dim);
  white-space:nowrap;
  flex-shrink:0;
}
.gp-sep { opacity:0.4; margin:0 3px; }

.gp-vol {
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
  flex-shrink:0;
}
.gp-vol-icon { font-size:14px; color:var(--primary-dim); user-select:none; }

.gp-vol-slider {
  -webkit-appearance:none;
  appearance:none;
  width:72px; height:3px;
  background:rgba(180,255,57,0.2);
  outline:none;
  cursor:pointer;
}
.gp-vol-slider::-webkit-slider-thumb {
  -webkit-appearance:none;
  width:10px; height:10px;
  background:var(--primary);
  box-shadow:var(--glow-sm);
  cursor:pointer;
  border-radius:0;
}
.gp-vol-slider::-moz-range-thumb {
  width:10px; height:10px;
  background:var(--primary);
  border:none;
  cursor:pointer;
  border-radius:0;
}

/* Push content up when player is visible */
/* always leave room for the player bar */
.inner-content, .artist-hud-page { padding-bottom:70px; }
.inner-footer  { margin-bottom:54px; }
.terminal-container { padding-bottom:54px; }

@media (max-width:600px) {
  .gp-bar  { padding:0 14px; gap:10px; height:50px; }
  .gp-info { flex:0 1 120px; }
  .gp-viz  { display:none; }
  .gp-vol  { display:none; }
  .gp-label { display:none; }
  .gp-btn  { padding:5px 8px; font-size:10px; }
  .gp-btn--play { padding:5px 12px; }
}

/* ============================================================
   DEMOS PAGE — COLLAPSIBLE FORM ACCORDION
   ============================================================ */

.demo-accordion {
  max-width:620px;
  margin-top:32px;
  border:1px solid var(--border);
  position:relative;
}

.demo-accordion::before {
  content:'';
  position:absolute;
  top:-1px; left:0;
  width:100%; height:1px;
  background:linear-gradient(90deg, transparent, var(--primary) 20%, var(--primary) 80%, transparent);
  box-shadow:var(--glow-sm);
}

.demo-accordion__trigger {
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  padding:16px 20px;
  background:transparent;
  border:none;
  color:var(--primary);
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:0.2em;
  text-align:left;
  cursor:pointer;
  text-transform:uppercase;
  transition:background 0.2s;
}

.demo-accordion__trigger:hover {
  background:rgba(180,255,57,0.04);
}

.demo-accordion__trigger[aria-expanded="true"] {
  border-bottom:1px solid var(--border);
}

.demo-accordion__icon {
  font-size:18px;
  line-height:1;
  color:var(--primary);
  min-width:16px;
  text-align:center;
  transition:transform 0.3s;
}

.demo-accordion__trigger[aria-expanded="true"] .demo-accordion__icon {
  color:var(--primary);
  text-shadow:var(--glow-sm);
}

.demo-accordion__label {
  flex:1;
  text-shadow:none;
}

.demo-accordion__trigger[aria-expanded="true"] .demo-accordion__label {
  text-shadow:var(--glow-sm);
}

.demo-accordion__status {
  font-size:11px;
  color:var(--primary-dim);
  letter-spacing:0.15em;
}

.demo-accordion__body {
  padding:0 20px 24px;
  overflow:hidden;
}

.demo-accordion__body .term-form-wrap {
  max-width:100%;
}

@media (max-width:640px) {
  .demo-accordion { margin-top:24px; }
  .demo-accordion__trigger { font-size:11px; padding:14px 16px; }
  .demo-accordion__body { padding:0 16px 20px; }
}
}
