/*
Theme Name: Nirucon
Theme URI: https://nirucon.se
Author: Nicklas Rudolfsson
Author URI: https://nirucon.se
Description: Skräddarsytt tema för Nirucon Productions. Mörkt, ceremoniellt och rotförankrat i underground metal och nordisk estetik.
Version: 1.5.9
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nirucon
Tags: custom-logo, custom-menu, featured-images, full-width-template, dark
*/

/* ============================================================
   CSS CUSTOM PROPERTIES
   ============================================================ */
:root {
  --color-void:      #080807;
  --color-abyss:     #0D0D0C;
  --color-deep:      #131312;
  --color-mid:       #1A1A18;
  --color-surface:   #202020;
  --color-bone:      #CEC8B4;
  --color-ash:       #A8A090;
  --color-dust:      #706860;

  --color-gold:      #AFA87A;
  --color-gold-deep: #8A8358;
  --color-gold-glow: #EBDFAE;
  --color-gold-dim:  #3A3420;

  --bg-page:        var(--color-void);
  --bg-surface:     var(--color-deep);
  --bg-raised:      var(--color-mid);
  --text-primary:   var(--color-bone);
  --text-secondary: var(--color-ash);
  --text-muted:     var(--color-dust);
  --accent:         var(--color-gold);
  --accent-hover:   var(--color-gold-deep);
  --accent-glow:    var(--color-gold-glow);
  --accent-dim:     var(--color-gold-dim);
  --border:         rgba(175,168,122,0.16);
  --border-subtle:  rgba(255,255,255,0.06);
  --hero-glow:      rgba(175,168,122,0.18);
  --hero-glow-2:    rgba(235,223,174,0.10);

  --font-display: 'Cinzel', 'Palatino Linotype', Georgia, serif;
  --font-body:    'IM Fell English', 'Palatino Linotype', Georgia, serif;
  --font-rune:    'Noto Sans Runic', 'Segoe UI Historic', serif;

  --space-xs:  0.375rem;
  --space-sm:  0.75rem;
  --space-md:  1.5rem;
  --space-lg:  3rem;
  --space-xl:  5rem;
  --space-2xl: 8rem;

  --max-width:         1140px;
  --max-width-content: 880px;
  --header-h:          70px;

  --ease: cubic-bezier(0.25,0.46,0.45,0.94);
  --dur:  0.30s;
}

/* ============================================================
   SEASONAL THEMES
   ============================================================ */
body.theme-ashen-vigil {
  --accent:#9AACB8; --accent-hover:#728898; --accent-glow:#C0D0DC; --accent-dim:#1E2A30;
  --border:rgba(154,172,184,0.15); --hero-glow:rgba(154,172,184,0.13); --hero-glow-2:rgba(100,120,140,0.09);
  --bg-page:#060810; --bg-surface:#0B0F18; --bg-raised:#111620;
}
body.theme-mossgrave {
  --accent:#6A9060; --accent-hover:#4E7046; --accent-glow:#8AB87E; --accent-dim:#182814;
  --border:rgba(106,144,96,0.15); --hero-glow:rgba(106,144,96,0.15); --hero-glow-2:rgba(70,110,58,0.11);
  --bg-page:#060A06; --bg-surface:#0C100B; --bg-raised:#111810;
}
body.theme-bloodtide {
  --accent:#904030; --accent-hover:#6E2E20; --accent-glow:#B85840; --accent-dim:#2C100A;
  --border:rgba(144,64,48,0.18); --hero-glow:rgba(144,64,48,0.19); --hero-glow-2:rgba(100,36,24,0.13);
  --bg-page:#0A0604; --bg-surface:#100806; --bg-raised:#170C08;
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{
  background-color:var(--bg-page);color:var(--text-primary);
  font-family:var(--font-body);font-size:1.05rem;font-weight:400;
  line-height:1.78;letter-spacing:0.01em;overflow-x:hidden;
}
body::before{
  content:'';position:fixed;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity:0.022;pointer-events:none;z-index:9999;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration:none;transition:color var(--dur) var(--ease)}
a:hover{color:var(--accent-glow)}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:400;line-height:1.2;letter-spacing:0.06em;color:var(--text-primary)}
h1{font-size:clamp(2rem,5vw,3.6rem)}
h2{font-size:clamp(1.4rem,3vw,2rem)}
h3{font-size:clamp(1.05rem,2vw,1.35rem)}
p{margin-bottom:var(--space-md)}
p:last-child{margin-bottom:0}
em,i{font-style:italic}
strong,b{font-weight:700}
.rune{font-family:var(--font-rune)}

.section-heading{
  font-family:var(--font-display);font-size:clamp(0.68rem,1vw,0.78rem);
  font-weight:400;letter-spacing:0.30em;text-transform:uppercase;color:var(--accent);
  display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-xl);
}
.section-heading::after{content:'';flex:1;height:1px;background:linear-gradient(to right,var(--border),transparent)}

/* ============================================================
   LAYOUT
   ============================================================ */
.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-lg)}
.container--content{max-width:var(--max-width-content);margin:0 auto;padding:0 var(--space-lg)}

/* ============================================================
   ADMIN BAR
   ============================================================ */
.admin-bar .site-header{top:32px}
@media screen and (max-width:782px){.admin-bar .site-header{top:46px}}

/* ============================================================
   HEADER — always solid dark for guaranteed readability
   ============================================================ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:200;
  height:var(--header-h);display:flex;align-items:center;
  background:rgba(8,8,7,0.92);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:0 1px 0 var(--border-subtle);
  transition:background var(--dur) var(--ease);
}
.site-header.scrolled{
  background:rgba(8,8,7,0.98);
}
.header__inner{
  max-width:var(--max-width);width:100%;margin:0 auto;padding:0 var(--space-lg);
  display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);
}

/* Logo */
.site-logo{display:flex;align-items:center;gap:14px;text-decoration:none;flex-shrink:0}
.site-logo img{height:42px;width:auto;max-height:42px;max-width:140px;object-fit:contain;flex-shrink:0;transition:opacity var(--dur) var(--ease)}
.site-logo:hover img{opacity:0.72}
.site-identity{display:flex;flex-direction:column;justify-content:center;line-height:1}
.site-identity__name{font-family:var(--font-display);font-size:0.78rem;letter-spacing:0.20em;text-transform:uppercase;color:var(--text-primary);white-space:nowrap;transition:color var(--dur) var(--ease)}
.site-identity__tagline{font-family:var(--font-display);font-size:0.58rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap;margin-top:5px}
.site-logo:hover .site-identity__name{color:var(--accent)}
.site-logo__text{font-family:var(--font-display);font-size:0.82rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--text-primary)}

/* Primary nav */
.primary-nav{display:flex;align-items:center}
.primary-nav>ul{list-style:none;display:flex;gap:var(--space-md);align-items:center}
.primary-nav>ul>li{position:relative}
.primary-nav>ul>li>a{
  font-family:var(--font-display);font-size:0.68rem;letter-spacing:0.26em;text-transform:uppercase;
  color:var(--text-secondary);display:flex;align-items:center;gap:5px;
  padding:6px 0;position:relative;
  transition:color var(--dur) var(--ease);white-space:nowrap;
}
/* Underline on <li> — same reference point as dropdown top:100%.
   Only for items WITHOUT dropdown. */
.primary-nav>ul>li{
  position:relative;
}
/* Diamond hover indicator — open rotated square matching the site logo shape */
.primary-nav>ul>li>a::before{
  content:'';
  position:absolute;
  top:-11px;
  left:50%;
  width:7px;
  height:7px;
  border:1px solid var(--accent);
  background:transparent;
  transform:translateX(-50%) rotate(45deg);
  opacity:0;
  transition:opacity var(--dur) var(--ease);
  pointer-events:none;
}
.primary-nav>ul>li:hover>a::before,
.primary-nav>ul>li.current-menu-item>a::before,
.primary-nav>ul>li.current-menu-ancestor>a::before{opacity:1}
.primary-nav>ul>li>a:hover,
.primary-nav>ul>li.current-menu-item>a,
.primary-nav>ul>li.current-menu-ancestor>a{color:var(--accent)}

/* Dropdown arrow */
.nav-arrow{
  display:inline-block;width:0;height:0;
  border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:4px solid currentColor;
  transition:transform var(--dur) var(--ease);margin-top:1px;flex-shrink:0;
}
.primary-nav>ul>li.menu-item-has-children:hover>a .nav-arrow{transform:rotate(180deg)}

/* Dropdown — top:100% of <li> aligns with bottom of <a> padding (including padding-bottom:8px).
   border-top accent line visually continues from the same baseline as active underlines. */
.primary-nav>ul>li>ul.sub-menu{
  position:absolute;top:100%;left:50%;
  transform:translateX(-50%) translateY(-4px);
  background:rgba(13,13,12,0.98);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid var(--border);border-top:2px solid var(--accent);
  min-width:210px;list-style:none;padding:var(--space-xs) 0 var(--space-sm);
  opacity:0;pointer-events:none;
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);z-index:300;
}
/* Invisible hover bridge — prevents gap between <a> and dropdown */
.primary-nav>ul>li>ul.sub-menu::after{content:'';position:absolute;top:-10px;left:0;right:0;height:10px}
/* No triangle pointer — cleaner, border-top is enough */
.primary-nav>ul>li:hover>ul.sub-menu,
.primary-nav>ul>li:focus-within>ul.sub-menu{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0)}
.primary-nav>ul>li>ul.sub-menu>li>a{
  display:block;padding:9px var(--space-md);font-family:var(--font-display);
  font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--text-secondary);
  transition:color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.primary-nav>ul>li>ul.sub-menu>li>a:hover{color:var(--accent);background:rgba(255,255,255,0.04)}
.primary-nav>ul>li>ul.sub-menu>li+li{border-top:1px solid var(--border-subtle)}

/* Search icon */
.nav-search-btn{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:6px;display:flex;align-items:center;transition:color var(--dur) var(--ease)}
.nav-search-btn:hover{color:var(--accent)}
.nav-search-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

/* Hamburger */
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:var(--space-xs);flex-direction:column;gap:5px;z-index:210}
.nav-toggle span{display:block;width:22px;height:1px;background:var(--text-primary);transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease)}
.nav-toggle.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* Mobile overlay */
.mobile-nav-overlay{
  display:none;position:fixed;inset:0;z-index:205;
  background:rgba(8,8,7,0.98);backdrop-filter:blur(24px);
  flex-direction:column;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity 0.4s var(--ease);
}
.mobile-nav-overlay.open{opacity:1;pointer-events:auto}
.mobile-nav-overlay__logo{margin-bottom:var(--space-xl)}
.mobile-nav-overlay__logo img{height:64px;width:auto;opacity:0.8}
.mobile-nav-overlay ul{list-style:none;text-align:center;padding:0}
.mobile-nav-overlay ul li{opacity:0;transform:translateY(16px);transition:opacity 0.4s var(--ease),transform 0.4s var(--ease)}
.mobile-nav-overlay.open ul li{opacity:1;transform:translateY(0)}
.mobile-nav-overlay.open ul li:nth-child(1){transition-delay:.06s}
.mobile-nav-overlay.open ul li:nth-child(2){transition-delay:.12s}
.mobile-nav-overlay.open ul li:nth-child(3){transition-delay:.18s}
.mobile-nav-overlay.open ul li:nth-child(4){transition-delay:.24s}
.mobile-nav-overlay.open ul li:nth-child(5){transition-delay:.30s}
.mobile-nav-overlay.open ul li:nth-child(6){transition-delay:.36s}
.mobile-nav-overlay ul li a{display:block;padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-size:clamp(1rem,3vw,1.4rem);letter-spacing:0.24em;text-transform:uppercase;color:var(--text-secondary);transition:color var(--dur) var(--ease)}
.mobile-nav-overlay ul li a:hover,.mobile-nav-overlay ul li.current-menu-item>a{color:var(--accent)}
.mobile-nav-overlay ul li ul{margin-top:var(--space-xs)}
.mobile-nav-overlay ul li ul li a{font-size:clamp(0.78rem,2vw,0.92rem);color:var(--text-muted);padding:var(--space-xs) var(--space-lg)}

/* Search overlay */
.search-overlay{position:fixed;inset:0;z-index:400;background:rgba(8,8,7,0.97);backdrop-filter:blur(20px);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.3s var(--ease)}
.search-overlay.open{opacity:1;pointer-events:auto}
.search-overlay__inner{width:min(640px,90vw)}
.search-overlay__label{font-family:var(--font-display);font-size:0.68rem;letter-spacing:0.32em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-md);display:block}
.search-overlay__form{display:flex;border-bottom:1px solid var(--border)}
.search-overlay__input{flex:1;background:none;border:none;outline:none;font-family:var(--font-body);font-size:clamp(1.3rem,3vw,2rem);color:var(--text-primary);padding:var(--space-sm) 0}
.search-overlay__input::placeholder{color:var(--text-muted)}
.search-overlay__submit{background:none;border:none;cursor:pointer;color:var(--accent);padding:var(--space-sm)}
.search-overlay__submit svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.search-overlay__links{margin-top:var(--space-lg)}
.search-overlay__links a{font-size:0.78rem;letter-spacing:0.18em;color:var(--text-muted);font-family:var(--font-display);text-transform:uppercase;transition:color var(--dur) var(--ease)}
.search-overlay__links a:hover{color:var(--accent)}
.search-overlay__close{position:absolute;top:var(--space-lg);right:var(--space-lg);background:none;border:none;cursor:pointer;color:var(--text-secondary);font-size:1.5rem;transition:color var(--dur) var(--ease);font-family:var(--font-display)}
.search-overlay__close:hover{color:var(--accent)}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg-layer{
  position:absolute;inset:0;z-index:1;
  background-image:
    radial-gradient(ellipse 80% 65% at 50% 110%,var(--hero-glow) 0%,transparent 65%),
    radial-gradient(ellipse 50% 55% at 78% 8%,var(--hero-glow-2) 0%,transparent 60%);
}
.hero__slides{position:absolute;inset:0;z-index:0}
.hero__slide{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;
  transition:opacity 2.8s cubic-bezier(0.4,0,0.2,1);
  will-change:opacity,transform;
}
.hero__slide.active{opacity:1}
.hero__slide--video{background:none!important;overflow:hidden}
/* Page/post hero variant */
.hero--page{
  position:relative;display:flex;align-items:flex-end;
  min-height:420px;overflow:hidden;
}
.hero--page .hero__bg{position:absolute;inset:0}
.hero--page .hero__content{
  position:relative;z-index:5;text-align:center;
  width:100%;padding:var(--space-xl) var(--space-lg);
}

/* Ken Burns keyframes — applied by JS per slide, restarts cleanly each cycle */
@keyframes kb1{from{transform:scale(1.00) translate(0,0)}         to{transform:scale(1.06) translate(-1.2%,-0.8%)}}
@keyframes kb2{from{transform:scale(1.06) translate(-0.8%,1%)}   to{transform:scale(1.00) translate(1.2%,0)}}
@keyframes kb3{from{transform:scale(1.03) translate(1%,-0.8%)}   to{transform:scale(1.08) translate(-1%,1%)}}

.hero__overlay{position:absolute;inset:0;z-index:2;background:rgba(8,8,7,0.54)}
.hero__vignette{position:absolute;inset:0;z-index:3;background:radial-gradient(ellipse 110% 100% at 50% 50%,transparent 30%,rgba(0,0,0,0.70) 100%)}
.hero__fade{position:absolute;bottom:0;left:0;right:0;height:300px;z-index:4;background:linear-gradient(to bottom,transparent 0%,var(--bg-page) 100%)}

.hero__content{position:relative;z-index:5;text-align:center;padding:0 var(--space-lg);max-width:800px;animation:heroReveal 1.6s cubic-bezier(0.16,1,0.3,1) both;animation-delay:0.15s}
@keyframes heroReveal{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.hero__logo{margin:0 auto var(--space-xl);width:clamp(100px,17vw,170px)}
.hero__logo img{width:100%;height:auto;animation:logoPulse 7s ease-in-out infinite}
@keyframes logoPulse{0%,100%{filter:drop-shadow(0 0 36px var(--hero-glow))}50%{filter:drop-shadow(0 0 68px var(--accent-glow))}}
.hero__title{font-family:var(--font-display);font-size:clamp(1.8rem,4.5vw,3.2rem);font-weight:400;letter-spacing:0.14em;text-transform:uppercase;margin-bottom:var(--space-md);line-height:1.18}
.hero__subtitle{font-family:var(--font-body);font-style:italic;font-size:clamp(0.95rem,1.6vw,1.1rem);color:var(--text-secondary);line-height:1.85;max-width:560px;margin:0 auto var(--space-lg);letter-spacing:0.02em}
.hero__rune-sig{font-family:var(--font-rune);font-size:1.05rem;color:var(--accent);letter-spacing:0.5em;opacity:0.55}

/* Scroll indicator — definitive centering, single line via ::after */
.hero__scroll{
  position:absolute;
  bottom:var(--space-lg);
  left:0;width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  z-index:10;
  pointer-events:all;
  cursor:pointer;
  text-decoration:none;
  animation:scrollBob 3s ease-in-out infinite;
}
.hero__scroll:hover .hero__scroll-label{opacity:0.75;}
@keyframes scrollBob{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(8px)}
}
.hero__scroll-label{
  font-family:var(--font-display);
  font-size:0.54rem;
  letter-spacing:0.40em;
  text-transform:uppercase;
  color:var(--accent);
  opacity:0.42;
  white-space:nowrap;
}
/* Single line rendered via pseudo-element — can never duplicate */
.hero__scroll::after{
  content:'';
  display:block;
  width:1px;
  height:52px;
  background:linear-gradient(to bottom,var(--accent),transparent);
  opacity:0.40;
}
/* Hide any accidental extra spans */
.hero__scroll span:not(.hero__scroll-label){display:none}

/* ============================================================
   SECTIONS
   ============================================================ */
.section{padding:var(--space-2xl) 0}
.section--dark{background:var(--bg-surface);position:relative}
.section--dark::before,.section--dark::after{content:'';position:absolute;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--border),transparent)}
.section--dark::before{top:0}.section--dark::after{bottom:0}

/* ============================================================
   CARD GRID — perfectly symmetric cards
   Every card in a row is identical in height.
   Text zones are fixed-height — nothing can overflow or shift.
   ============================================================ */
.card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:var(--space-lg);
  align-items:stretch;
}

/* Card: 2-row grid — image | body */
.news-card{
  background:var(--bg-raised);
  border:1px solid var(--border-subtle);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto 1fr;
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
  cursor:pointer;
}
.news-card:hover{border-color:var(--border);transform:translateY(-4px)}

/* Entire card is a link via wrapper — image, text and read more all clickable */
.news-card__link-wrap{
  display:contents; /* transparent wrapper — children behave normally */
}

/* Image: always 16:9, never taller, never shorter */
.news-card__image{
  aspect-ratio:16/9;
  overflow:hidden;
  display:block;
}
.news-card__image img{
  width:100%;height:100%;
  object-fit:cover;
  transition:transform 0.7s var(--ease);
  display:block;
}
.news-card:hover .news-card__image img{transform:scale(1.05)}

/* Placeholder: same height as image */
.news-card__no-image{
  aspect-ratio:16/9;
  background:var(--bg-surface);
  display:flex;align-items:center;justify-content:center;
}
.news-card__no-image::after{
  content:'◆';font-size:1.2rem;
  color:var(--accent-dim);opacity:0.6;
}

/* Body: flex column — zones stack predictably */
.news-card__body{
  padding:var(--space-md);
  display:flex;
  flex-direction:column;
}

/* Zone 1: category badge — fixed height, invisible placeholder if none */
.news-card__category{
  font-family:var(--font-display);
  font-size:0.58rem;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:var(--text-muted);
  border:1px solid var(--border-subtle);
  padding:2px 7px;
  display:inline-block;
  align-self:flex-start;
  margin-bottom:var(--space-xs);
  transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease);
  white-space:nowrap;
  overflow:hidden;
  max-width:100%;
  text-overflow:ellipsis;
}
.news-card:hover .news-card__category{
  border-color:var(--border);color:var(--accent);
}

/* Zone 2: date */
.news-card__date{
  font-family:var(--font-display);
  font-size:0.66rem;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:var(--space-xs);
  flex-shrink:0;
}

/* Zone 3: title — always exactly 2 lines tall */
.news-card__title{
  font-family:var(--font-display);
  font-size:0.96rem;
  letter-spacing:0.06em;
  line-height:1.38;
  height:calc(1.38em * 2);       /* exactly 2 lines */
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  word-break:break-word;
  overflow-wrap:break-word;
  margin-bottom:var(--space-sm);
  flex-shrink:0;
}
.news-card__title a{
  color:var(--text-primary);
  text-decoration:none;
  transition:color var(--dur) var(--ease);
}
.news-card__title a:hover{color:var(--accent)}

/* Zone 4: excerpt — always exactly 3 lines tall, never more */
.news-card__excerpt{
  font-size:0.95rem;
  color:var(--text-secondary);
  line-height:1.72;
  height:calc(1.72em * 3);       /* exactly 3 lines */
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  word-break:break-word;
  overflow-wrap:break-word;
  flex-shrink:0;
  cursor:pointer;
}

/* Zone 5: read more — always at the bottom */
.news-card__readmore{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:auto;
  padding-top:var(--space-md);
  font-family:var(--font-display);
  font-size:0.66rem;
  letter-spacing:0.20em;
  text-transform:uppercase;
  color:var(--accent);
  text-decoration:none;
  transition:color var(--dur) var(--ease);
  align-self:flex-start;
  flex-shrink:0;
}
.news-card__readmore:hover{color:var(--accent-glow)}

.load-more-wrap{text-align:center;margin-top:var(--space-xl)}
.btn-load-more{font-family:var(--font-display);font-size:0.70rem;letter-spacing:0.28em;text-transform:uppercase;color:var(--accent);border:1px solid var(--border);background:none;padding:var(--space-sm) var(--space-xl);cursor:pointer;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease)}
.btn-load-more:hover{border-color:var(--accent);background:rgba(175,168,122,0.06);color:var(--accent-glow)}
.btn-load-more:disabled{opacity:0.3;cursor:default;pointer-events:none}
.btn-load-more .spinner{display:none;width:14px;height:14px;border:1px solid var(--accent);border-top-color:transparent;border-radius:50%;animation:spin 0.6s linear infinite;vertical-align:middle;margin-right:6px}
.btn-load-more.loading .spinner{display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}

/* ============================================================
   RELEASES
   ============================================================ */
.releases-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:var(--space-lg)}
.release-card{background:var(--bg-raised);border:1px solid var(--border-subtle);overflow:hidden;display:flex;flex-direction:column;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.release-card:hover{border-color:var(--border);transform:translateY(-3px)}
.release-card__cover{aspect-ratio:1;overflow:hidden}
.release-card__cover img{width:100%;height:100%;object-fit:cover;transition:transform 0.8s var(--ease)}
.release-card:hover .release-card__cover img{transform:scale(1.04)}
.release-card__cover--empty{aspect-ratio:1;background:var(--bg-surface);display:flex;align-items:center;justify-content:center}
.release-card__cover--empty::after{content:'◆';font-size:2rem;color:var(--accent-dim);opacity:0.5}
.release-card__body{padding:var(--space-md);display:flex;flex-direction:column;flex:1}
.release-card__artist{font-family:var(--font-display);font-size:0.68rem;letter-spacing:0.26em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-xs)}
.release-card__title{font-family:var(--font-display);font-size:0.93rem;letter-spacing:0.07em;color:var(--text-primary);margin-bottom:var(--space-sm)}
.release-card__meta{font-size:0.80rem;color:var(--text-muted);letter-spacing:0.06em;margin-bottom:var(--space-sm)}
/* Player pushed to same vertical position across all cards via flex-grow spacer */
.release-card__spacer{flex:1}   /* invisible spacer between meta and player */
.release-card__player{margin-top:0}
.release-card__player iframe{border:0;width:100%;display:block}
.release-card__link{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);align-self:flex-start;font-family:var(--font-display);font-size:0.66rem;letter-spacing:0.20em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--border);padding-bottom:2px;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.release-card__link:hover{color:var(--accent-glow);border-color:var(--accent)}

/* ============================================================
   ABOUT
   ============================================================ */
.about__inner{display:grid;grid-template-columns:320px 1fr;gap:var(--space-2xl);align-items:start}
.about__inner--no-image{grid-template-columns:1fr}
.about__image-wrap{position:sticky;top:calc(var(--header-h) + 2rem)}
.about__image{width:100%;aspect-ratio:3/4;object-fit:cover;filter:grayscale(15%) contrast(1.06);border:1px solid var(--border-subtle)}
.about__text h2{margin-bottom:var(--space-lg)}
.about__text p{color:var(--text-secondary);font-size:1rem;line-height:1.88;margin-bottom:var(--space-md)}
.about__text p:last-of-type{margin-bottom:0}
.about__text a{color:var(--accent)}.about__text a:hover{color:var(--accent-glow)}
.about__readmore{display:inline-flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-lg);font-family:var(--font-display);font-size:0.72rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);padding:var(--space-sm) var(--space-md);border:1px solid var(--border);position:relative;overflow:hidden;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
.about__readmore::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent);transition:width var(--dur) var(--ease)}
.about__readmore:hover{color:var(--accent-glow);border-color:var(--accent);background:rgba(175,168,122,0.05)}
.about__readmore:hover::before{width:4px}
.about__sig{margin-top:var(--space-xl);font-family:var(--font-rune);font-size:1.15rem;letter-spacing:0.45em;color:var(--accent);opacity:0.42}

/* ============================================================
   PROJECT ARCHIVE
   ============================================================ */
.project-card{background:var(--bg-raised);border:1px solid var(--border-subtle);overflow:hidden;display:flex;flex-direction:column;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.project-card:hover{border-color:var(--border);transform:translateY(-4px)}
.project-card__image{aspect-ratio:1;overflow:hidden}
.project-card__image img{width:100%;height:100%;object-fit:cover;transition:transform 0.7s var(--ease)}
.project-card:hover .project-card__image img{transform:scale(1.05)}
.project-card__no-image{aspect-ratio:1;background:var(--bg-surface);display:flex;align-items:center;justify-content:center}
.project-card__no-image::after{content:'◆';font-size:1.5rem;color:var(--accent-dim);opacity:0.4}
.project-card__body{padding:var(--space-md);flex:1;display:flex;flex-direction:column}
.project-card__status{font-family:var(--font-display);font-size:0.62rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-xs);opacity:0.7}
.project-card__title{font-family:var(--font-display);font-size:0.96rem;letter-spacing:0.08em;color:var(--text-primary);margin-bottom:var(--space-sm)}
.project-card__excerpt{font-size:0.95rem;color:var(--text-secondary);line-height:1.72;flex:1}
.project-card__link{margin-top:var(--space-md);font-family:var(--font-display);font-size:0.66rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--border);padding-bottom:2px;align-self:flex-start;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.project-card__link:hover{color:var(--accent-glow);border-color:var(--accent)}

/* ============================================================
   SINGLE PROJECT
   ============================================================ */
.project-hero{
  position:relative;
  min-height:65vh;
  display:flex;align-items:flex-end;
  padding-top:calc(var(--header-h) + var(--space-xl));
  padding-bottom:var(--space-2xl);
  overflow:hidden;
}
.project-hero__bg{position:absolute;inset:0;z-index:0}
.project-hero__bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(20%) brightness(0.38)}
.project-hero__video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;
  filter:grayscale(100%) brightness(0.28) sepia(20%);
  z-index:0;
}
.project-hero__overlay{
  position:absolute;inset:0;
  background:linear-gradient(to bottom,rgba(8,8,7,0.35) 0%,rgba(8,8,7,0.65) 60%,var(--bg-page) 100%);
  z-index:1;
}
.project-hero__overlay--video{
  background:linear-gradient(to bottom,rgba(8,8,7,0.55) 0%,rgba(8,8,7,0.80) 55%,var(--bg-page) 100%);
}
.project-hero__content{position:relative;z-index:2;width:100%}
.project-hero__logo{margin-bottom:var(--space-md)}
.project-hero__logo img{
  max-height:100px;max-width:320px;
  width:auto;height:auto;
  filter:drop-shadow(0 0 30px var(--hero-glow));
}
.project-hero__logo-name{
  font-family:var(--font-display);font-size:clamp(1.1rem,3vw,1.6rem);
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--text-primary);margin-bottom:var(--space-sm);
}
.project-hero__status{
  font-family:var(--font-display);font-size:0.68rem;
  letter-spacing:0.28em;text-transform:uppercase;
  color:var(--accent);margin-bottom:var(--space-sm);
}
.project-hero__title{
  font-family:var(--font-display);font-size:clamp(2.2rem,5vw,4rem);
  font-weight:400;letter-spacing:0.10em;text-transform:uppercase;
  line-height:1.05;margin-bottom:var(--space-md);
}
.project-section{padding:var(--space-xl) 0}
.project-section+.project-section{border-top:1px solid var(--border-subtle)}
.project-bio p{color:var(--text-secondary);font-size:1rem;line-height:1.9;margin-bottom:var(--space-md)}
.project-bio a{color:var(--accent)}

/* Project intro tagline */
.project-hero__intro{
  font-family:var(--font-body);font-style:italic;
  font-size:clamp(0.88rem,1.8vw,1.05rem);
  color:var(--text-secondary);
  max-width:520px;
  line-height:1.75;
  margin-bottom:var(--space-md);
  opacity:0.82;
}

/* Official site badge */
.nc-official-badge{
  display:inline-flex;align-items:center;gap:7px;
  font-family:var(--font-display);font-size:0.62rem;
  letter-spacing:0.22em;text-transform:uppercase;
  color:var(--accent);border:1px solid rgba(175,168,122,0.45);
  padding:6px 14px;
  background:rgba(175,168,122,0.07);
}
.nc-official-badge::before{content:'◆';font-size:0.52rem;opacity:0.8;}

/* Official domain link */
.nc-official-domain{
  font-family:var(--font-display);font-size:0.62rem;
  letter-spacing:0.16em;text-transform:lowercase;
  color:var(--text-secondary);
  text-decoration:none;
  border-bottom:1px solid rgba(175,168,122,0.3);
  padding-bottom:1px;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.nc-official-domain:hover{color:var(--accent);border-bottom-color:var(--accent);}
.nc-official-domain::after{content:' ↗';font-size:0.70rem;}

/* Hero CTA row: button + optional badge inline */
.project-hero__cta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-xs)}

/* Record label block */
.project-hero__label{
  display:flex;flex-direction:column;align-items:flex-start;gap:8px;
  margin-top:var(--space-sm);
}
.project-hero__label-top{
  display:flex;align-items:center;gap:9px;
}
.project-hero__label-prefix{
  font-family:var(--font-display);font-size:0.56rem;
  letter-spacing:0.28em;text-transform:uppercase;
  color:var(--text-muted);opacity:0.7;
  white-space:nowrap;
}
.project-hero__label-logo{
  height:60px;width:auto;
  opacity:0.85;
  filter:brightness(1.15) grayscale(0.15);
  display:block;
  transition:opacity var(--dur) var(--ease);
}
.project-hero__label-logo-link{display:block;}
.project-hero__label-logo-link:hover .project-hero__label-logo{opacity:1;}
.project-hero__label-link{
  display:inline-flex;align-items:center;gap:4px;
  font-family:var(--font-display);font-size:0.60rem;
  letter-spacing:0.16em;text-transform:uppercase;
  color:var(--text-secondary);
  text-decoration:none;
  border-bottom:1px solid rgba(175,168,122,0.25);
  padding-bottom:1px;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.project-hero__label-link::after{content:' ↗';font-size:0.70rem;}
.project-hero__label-link:hover{color:var(--accent);border-bottom-color:var(--accent);}
.project-hero__label-text{
  font-family:var(--font-display);font-size:0.60rem;
  letter-spacing:0.16em;text-transform:uppercase;
  color:var(--text-secondary);
}

/* Archive stats line */
.projects-archive-stats{
  font-family:var(--font-display);font-size:0.65rem;
  letter-spacing:0.18em;text-transform:uppercase;
  color:var(--text-muted);margin-top:var(--space-sm);
}
.projects-archive-stats__complete{color:var(--accent);}

/* Collapsible details — More Information */
.nc-details{border:none;background:none;}
.nc-details__summary{
  cursor:pointer;
  list-style:none;
  margin-bottom:0;
  user-select:none;
}
.nc-details__summary::-webkit-details-marker{display:none;}
.nc-details__summary::before{
  content:'+';
  font-family:var(--font-display);
  font-size:0.85rem;
  color:var(--accent);
  margin-right:var(--space-sm);
  display:inline-block;
  transition:transform var(--dur) var(--ease);
  line-height:1;
}
.nc-details[open] > .nc-details__summary::before{content:'−';}
.nc-details__summary:hover{color:var(--accent-glow);}
.nc-details__body{
  margin-top:var(--space-lg);
  animation:nc-details-open 0.25s var(--ease);
}
@keyframes nc-details-open{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* Project links — icons + text buttons */
.project-links{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center}
.project-link-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border-subtle);color:var(--text-secondary);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease)}
.project-link-icon:hover{border-color:var(--border);color:var(--accent);background:var(--bg-raised)}
.project-link-icon svg{width:16px;height:16px;fill:currentColor}
.project-link-btn{display:inline-flex;align-items:center;gap:var(--space-xs);font-family:var(--font-display);font-size:0.65rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);border:1px solid var(--border);padding:var(--space-xs) var(--space-md);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease)}
.project-link-btn:hover{border-color:var(--accent);background:rgba(175,168,122,0.06);color:var(--accent-glow)}
.nc-admin-hint{display:flex;align-items:flex-start;gap:var(--space-sm);background:rgba(175,168,122,0.07);border:1px dashed var(--border);padding:var(--space-sm) var(--space-md);margin-top:var(--space-md);font-size:0.88rem;color:var(--text-muted);line-height:1.6}
.nc-admin-hint strong{color:var(--text-secondary)}.nc-admin-hint a{color:var(--accent)}

/* ============================================================
   DISCOGRAPHY
   ============================================================ */
.discography-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-lg);margin-bottom:var(--space-xl)}
.disc-card{background:var(--bg-raised);border:1px solid var(--border-subtle);overflow:hidden;display:flex;flex-direction:column;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}
.disc-card:hover{border-color:var(--border);transform:translateY(-3px)}
.disc-card__art{aspect-ratio:1;overflow:hidden;background:var(--bg-surface)}
.disc-card__art img{width:100%;height:100%;object-fit:cover;transition:transform 0.7s var(--ease)}
.disc-card:hover .disc-card__art img{transform:scale(1.04)}
.disc-card__art--empty{aspect-ratio:1;background:var(--bg-surface);display:flex;align-items:center;justify-content:center}
.disc-card__art--empty::after{content:'◆';font-size:2rem;color:var(--accent-dim);opacity:0.5}
.disc-card__body{padding:var(--space-md);display:flex;flex-direction:column;flex:1}
.disc-card__title{font-family:var(--font-display);font-size:0.90rem;letter-spacing:0.08em;color:var(--text-primary);margin-bottom:4px;line-height:1.3}
.disc-card__subtitle{font-size:0.88rem;color:var(--text-secondary);font-style:italic;margin-bottom:var(--space-sm)}
.disc-card__meta{font-family:var(--font-display);font-size:0.68rem;color:var(--text-muted);letter-spacing:0.10em;text-transform:uppercase;line-height:1.7;margin-bottom:auto}
.disc-card__meta span{display:block}
.disc-card__link{display:inline-flex;align-items:center;gap:5px;margin-top:var(--space-sm);align-self:flex-start;font-family:var(--font-display);font-size:0.64rem;letter-spacing:0.20em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--border);padding-bottom:2px;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.disc-card__link:hover{color:var(--accent-glow);border-color:var(--accent)}
.project-bandcamp-player{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--border-subtle)}
.project-bandcamp-player h3{font-family:var(--font-display);font-size:0.68rem;letter-spacing:0.28em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-md)}
.project-bandcamp-player iframe{width:100%;border:0;display:block}

/* ============================================================
   PAGES & POSTS
   ============================================================ */
.page-header-block{padding:calc(var(--header-h) + var(--space-xl)) 0 var(--space-xl);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}
.page-header-block__sub{font-family:var(--font-display);font-size:0.68rem;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-sm)}
.page-header-block__description{
  font-family:var(--font-body);font-style:italic;
  font-size:1rem;color:var(--text-secondary);
  line-height:1.75;max-width:820px;
  margin-top:var(--space-md);
}
.entry-content-wrap{padding:var(--space-2xl) 0}
.entry-content{max-width:var(--max-width-content)}
.entry-content p{color:var(--text-secondary);font-size:1rem;line-height:1.9;margin-bottom:var(--space-md)}
.entry-content h2,.entry-content h3{margin:var(--space-xl) 0 var(--space-md)}
/* Dotted underline on content links for clarity */
.entry-content a,
.project-bio a,
.about__text a {
  color:var(--accent);
  text-decoration:underline;
  text-decoration-style:dotted;
  text-decoration-color:var(--accent-dim);
  text-underline-offset:3px;
  transition:color var(--dur) var(--ease),text-decoration-color var(--dur) var(--ease);
}
.entry-content a:hover,
.project-bio a:hover,
.about__text a:hover {
  color:var(--accent-glow);
  text-decoration-color:var(--accent);
}
.entry-content img{width:100%;margin:var(--space-lg) 0}
.entry-content ul,.entry-content ol{padding-left:var(--space-md);color:var(--text-secondary);font-size:1rem;line-height:1.9;margin-bottom:var(--space-md)}
.entry-content blockquote{border-left:2px solid var(--accent);padding-left:var(--space-md);margin:var(--space-lg) 0;color:var(--text-secondary);font-style:italic}

/* ============================================================
   HERO ANNOUNCEMENT BANNER
   ============================================================ */
.hero__announcement {
  margin-bottom: var(--space-lg);
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  padding: 8px 20px;
  border: 1px solid var(--border);
  border-left: 2px solid var(--accent);
  background: rgba(8,8,7,0.82);
  backdrop-filter: blur(8px);
  font-family: var(--font-body);
  font-style: italic;
  font-size: clamp(0.82rem,1.2vw,0.92rem);
  color: var(--text-secondary);
  letter-spacing: 0.01em;
  line-height: 1.5;
  text-align: left;
  max-width: 600px;
  transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.hero__announcement a {
  color: var(--accent);
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 3px;
  transition: color var(--dur) var(--ease);
}
.hero__announcement a:hover { color: var(--accent-glow); }
.hero__announcement--link {
  cursor: pointer;
  display: inline-flex;
}
.hero__announcement--link:hover {
  border-color: var(--accent);
  background: rgba(8,8,7,0.75);
}
.hero__announcement__icon {
  flex-shrink: 0;
  font-size: 0.75rem;
  color: var(--accent);
  opacity: 0.8;
}

/* ============================================================
   SEARCH — sectioned
   ============================================================ */
.search-section{margin-bottom:var(--space-2xl)}
.search-section__heading{font-family:var(--font-display);font-size:0.70rem;letter-spacing:0.30em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-lg);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--space-md)}
.search-section__heading::after{content:'';flex:1;height:1px;background:linear-gradient(to right,var(--border),transparent)}
.search-results-list{display:flex;flex-direction:column;gap:var(--space-lg)}
.search-result{padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-subtle)}
.search-result:last-child{border-bottom:none}
.search-result__title{font-family:var(--font-display);font-size:1.1rem;letter-spacing:0.06em;margin-bottom:var(--space-sm)}
.search-result__title a{color:var(--text-primary);transition:color var(--dur) var(--ease)}
.search-result__title a:hover{color:var(--accent)}
.search-result__excerpt{font-size:0.95rem;color:var(--text-secondary);line-height:1.78}

/* ============================================================
   SITEMAP
   ============================================================ */
.sitemap-section{margin-bottom:var(--space-xl)}
.sitemap-section h3{font-family:var(--font-display);font-size:0.70rem;letter-spacing:0.28em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border-subtle)}
.sitemap-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-xs) var(--space-md)}
.sitemap-list li a{font-size:0.95rem;color:var(--text-secondary);transition:color var(--dur) var(--ease)}
.sitemap-list li a:hover{color:var(--accent)}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--color-void);border-top:1px solid var(--border-subtle);padding:var(--space-2xl) 0 var(--space-lg)}
.footer__inner{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:var(--space-2xl);margin-bottom:var(--space-xl)}
.footer__brand-logo{height:38px;width:auto;margin-bottom:var(--space-md);opacity:0.52;transition:opacity var(--dur) var(--ease)}
.footer__brand-logo:hover{opacity:0.78}
.footer__brand-identity{margin-bottom:var(--space-md)}
.footer__brand-name{font-family:var(--font-display);font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-secondary)}
.footer__brand-tagline{font-family:var(--font-display);font-size:0.60rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--text-muted);margin-top:4px}
.footer__tagline{font-size:0.95rem;color:var(--text-secondary);line-height:1.75;max-width:280px}
.footer__social{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}
.footer__social a{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-subtle);color:var(--text-secondary);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),background var(--dur) var(--ease)}
.footer__social a:hover{border-color:var(--border);color:var(--accent);background:var(--bg-raised)}
.footer__social svg{width:15px;height:15px;fill:currentColor}
.footer__col h4{font-family:var(--font-display);font-size:0.66rem;letter-spacing:0.30em;text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-md)}
.footer__col ul{list-style:none}
.footer__col ul li{margin-bottom:var(--space-xs)}
.footer__col ul a{font-size:0.95rem;color:var(--text-secondary);letter-spacing:0.03em;transition:color var(--dur) var(--ease)}
.footer__col ul a:hover{color:var(--text-primary)}
.footer__contact-email{font-size:0.95rem;color:var(--text-secondary);margin-bottom:var(--space-sm);display:block;transition:color var(--dur) var(--ease)}
.footer__contact-email:hover{color:var(--accent)}
.footer__contact-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-sm)}
.footer__contact-social a{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border-subtle);color:var(--text-muted);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.footer__contact-social a:hover{border-color:var(--border);color:var(--accent)}
.footer__contact-social svg{width:14px;height:14px;fill:currentColor}
.footer__bottom{padding-top:var(--space-lg);border-top:1px solid var(--border-subtle);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-md)}
.footer__copy{font-family:var(--font-display);font-size:0.68rem;color:var(--text-secondary);letter-spacing:0.06em}
.footer__version{font-family:var(--font-display);font-size:0.64rem;letter-spacing:0.22em;text-transform:uppercase;color:var(--accent);opacity:0.42;text-align:center}
.footer__rune-bottom{font-family:var(--font-rune);font-size:0.95rem;letter-spacing:0.38em;color:var(--accent);opacity:0.38;text-align:right}

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.9s var(--ease),transform 0.9s var(--ease)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal:nth-child(2){transition-delay:.08s}.reveal:nth-child(3){transition-delay:.16s}.reveal:nth-child(4){transition-delay:.24s}
.back-to-top{position:fixed;bottom:var(--space-lg);right:var(--space-lg);width:36px;height:36px;background:var(--bg-raised);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:0.85rem;opacity:0;transform:translateY(10px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease),background var(--dur) var(--ease);pointer-events:none;z-index:90}
.back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.back-to-top:hover{background:var(--bg-surface);color:var(--accent-glow)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  :root{--space-lg:2rem;--space-2xl:5rem}
  .footer__inner{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1 / -1}
  .about__inner{grid-template-columns:260px 1fr;gap:var(--space-xl)}
  .discography-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:768px){
  .card-grid{grid-template-columns:1fr}
  .about__inner{grid-template-columns:1fr}
  .about__image-wrap{position:static}.about__image{aspect-ratio:16/9}
  .footer__inner{grid-template-columns:1fr;gap:var(--space-lg)}
  .footer__bottom{grid-template-columns:1fr;text-align:center;gap:var(--space-sm)}
  .footer__copy,.footer__rune-bottom{text-align:center}
  .discography-grid{grid-template-columns:repeat(2,1fr)}
  .project-hero{min-height:70vh}
}
@media (max-width:640px){
  :root{--space-lg:1.25rem;--space-2xl:3.5rem}
  .nav-toggle{display:flex}
  .nav-search-btn{display:none}
  .primary-nav{display:none}
  .site-identity{display:none}
  body{font-size:1rem}
  .hero__logo{width:clamp(80px,28vw,120px)}
  .releases-grid,.card-grid{grid-template-columns:1fr}
  .container{padding:0 var(--space-md)}
  .discography-grid{grid-template-columns:1fr}
  .search-overlay__close{top:var(--space-md);right:var(--space-md)}
  .news-card__excerpt,.entry-content p,.project-bio p{font-size:1rem}
}

/* ============================================================
   WORDPRESS CORE
   ============================================================ */
.wp-caption{max-width:100%}
.wp-caption-text{font-size:0.82rem;color:var(--text-muted);text-align:center;padding:var(--space-xs) 0}
/* Constrain YouTube/video embeds to text content width */
.entry-content .wp-block-embed{max-width:100%}
.entry-content .wp-block-embed__wrapper{position:relative}
.entry-content .wp-block-embed__wrapper iframe{max-width:100%;width:100%}
.alignleft{float:left;margin:0 var(--space-md) var(--space-md) 0}
.alignright{float:right;margin:0 0 var(--space-md) var(--space-md)}
.aligncenter{display:block;margin:0 auto var(--space-md)}
.screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}

/* ============================================================
   NEWS CARD — TAGS
   ============================================================ */
/* Tag zone: fixed min-height so cards stay symmetric when no tags */
.news-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  min-height: calc(1.4em + var(--space-xs)); /* 1 tag-row height always reserved */
  align-items: flex-start;
  align-content: flex-start;
  margin-bottom: 0;
  padding-top: var(--space-xs);
}
.news-card__tag {
  font-family: var(--font-display);
  font-size: 0.54rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-muted);
  border: 1px solid var(--border-subtle);
  padding: 1px 6px;
  white-space: nowrap;
  text-decoration: none;
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.news-card__tag:hover { color: var(--accent); border-color: var(--border); }
.news-card__tag--more {
  color: var(--text-muted);
  font-size: 0.54rem;
  font-family: var(--font-display);
  letter-spacing: 0.12em;
  padding: 1px 4px;
  border: 1px solid var(--border-subtle);
}

/* ============================================================
   STICKY / FEATURED POST
   ============================================================ */
.featured-post {
  margin-bottom: var(--space-xl);
  border: 1px solid var(--border);
  background: var(--bg-raised);
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
  transition: border-color var(--dur) var(--ease);
}
.featured-post:hover { border-color: var(--accent); }

.featured-post__image {
  position: relative;
  overflow: hidden;
  /* Stretch to full card height — image fills whatever height the text col needs */
  align-self: stretch;
  min-height: 280px;
  display: flex;
}
.featured-post__image-link {
  display: flex;
  width: 100%;
  flex: 1;
}
.featured-post__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  flex: 1;
  transition: transform 0.8s var(--ease);
}
.featured-post:hover .featured-post__image img { transform: scale(1.04); }
.featured-post__no-image {
  align-self: stretch;
  min-height: 280px;
  background: var(--bg-surface);
  display: flex; align-items: center; justify-content: center;
}
.featured-post__no-image::after {
  content: '◆'; font-size: 2rem; color: var(--accent-dim); opacity: 0.4;
}

.featured-post__body {
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.featured-post__badge {
  font-family: var(--font-display);
  font-size: 0.58rem;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: var(--space-sm);
  display: flex;
  align-items: center;
  gap: 6px;
}
.featured-post__badge::before {
  content: '★';
  font-size: 0.65rem;
}
.featured-post__meta {
  font-family: var(--font-display);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: var(--space-sm);
}
.featured-post__title {
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  letter-spacing: 0.06em;
  line-height: 1.3;
  margin-bottom: var(--space-md);
}
.featured-post__title a {
  color: var(--text-primary);
  text-decoration: none;
  transition: color var(--dur) var(--ease);
}
.featured-post__title a:hover { color: var(--accent); }
.featured-post__excerpt {
  font-size: 0.98rem;
  color: var(--text-secondary);
  line-height: 1.78;
  margin-bottom: var(--space-lg);
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.featured-post__readmore {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
  border-bottom: 1px solid var(--border);
  padding-bottom: 2px;
  align-self: flex-start;
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.featured-post__readmore:hover { color: var(--accent-glow); border-color: var(--accent); }

/* Mobile: stack */
@media (max-width: 768px) {
  .featured-post { grid-template-columns: 1fr; }
  .featured-post__body { padding: var(--space-md); }
}

/* ============================================================
   CONTACT FORM (nirucon-contact plugin)
   ============================================================ */
.nc-contact-wrap {
  max-width: 680px;
  margin: 0;   /* left-aligned, matches text content below */
}
.nc-contact-form {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}
.nc-contact-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.nc-contact-label {
  font-family: var(--font-display);
  font-size: 0.65rem;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--accent);
}
.nc-contact-input,
.nc-contact-select,
.nc-contact-textarea {
  background: var(--bg-raised);
  border: 1px solid var(--border-subtle);
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: 0.98rem;
  padding: 10px 14px;
  width: 100%;
  outline: none;
  transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
  border-radius: 0;
  -webkit-appearance: none;
  appearance: none;
}
.nc-contact-input:focus,
.nc-contact-select:focus,
.nc-contact-textarea:focus {
  border-color: var(--accent);
  background: var(--bg-surface);
}
.nc-contact-input::placeholder,
.nc-contact-textarea::placeholder {
  color: var(--text-muted);
  font-style: italic;
}
.nc-contact-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23AFA87A' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
  cursor: pointer;
}
.nc-contact-select option {
  background: #131312;
  color: var(--text-primary);
}
.nc-contact-textarea { min-height: 160px; resize: vertical; line-height: 1.7; }
.nc-contact-submit {
  font-family: var(--font-display);
  font-size: 0.70rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--accent);
  background: none;
  border: 1px solid var(--border);
  padding: var(--space-sm) var(--space-xl);
  cursor: pointer;
  align-self: flex-start;
  transition: border-color var(--dur) var(--ease), color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.nc-contact-submit:hover {
  border-color: var(--accent);
  background: rgba(175,168,122,0.06);
  color: var(--accent-glow);
}
.nc-contact-submit:disabled {
  opacity: 0.5;
  cursor: default;
  pointer-events: none;
}
.nc-contact-notice {
  padding: var(--space-sm) var(--space-md);
  border-left: 2px solid var(--accent);
  background: rgba(175,168,122,0.06);
  font-size: 0.95rem;
  color: var(--text-secondary);
  display: none;
}
.nc-contact-notice.success {
  display: block;
  border-left-color: #4a8c4a;
  color: #8ac88a;
}
.nc-contact-notice.error {
  display: block;
  border-left-color: #8c3a3a;
  color: #c88a8a;
}
/* Honeypot */
.nc-contact-hp { display: none !important; }
/* Loading spinner on button */
.nc-contact-submit .nc-spinner {
  display: inline-block; width: 12px; height: 12px;
  border: 1px solid currentColor; border-top-color: transparent;
  border-radius: 50%; animation: ncSpin 0.6s linear infinite;
  vertical-align: middle; margin-right: 6px;
}
@keyframes ncSpin { to { transform: rotate(360deg); } }

/* ============================================================
   HORIZONTAL RULES & SEPARATORS
   Three levels depending on context — all gradient-based.
   ============================================================ */

/* ── Base: all hr and WP separator blocks ── */
hr,
.wp-block-separator {
  border: none;
  outline: none;
  margin: var(--space-xl) auto;
  position: relative;
  overflow: visible;   /* needed for ::before/::after ornament */
}

/* ── Level 1: subtle section divider (plain gradient line) ──
   Used automatically on all hr without extra classes.
   Also used on .section--dark top/bottom borders.         */
hr,
.wp-block-separator:not(.is-style-wide):not(.is-style-dots) {
  height: 1px;
  width: 100%;
  background: linear-gradient(
    to right,
    transparent 0%,
    var(--border) 25%,
    var(--border) 75%,
    transparent 100%
  );
}

/* ── Level 2: decorative separator with centre ornament ──
   Use WP "Wide" separator style for this variant.        */
.wp-block-separator.is-style-wide {
  height: 1px;
  width: 100%;
  background: none;   /* gradient via ::before */
  display: flex;
  align-items: center;
  justify-content: center;
}
.wp-block-separator.is-style-wide::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 50%;
  height: 1px;
  background: linear-gradient(
    to right,
    transparent 0%,
    var(--border) 20%,
    var(--border) 80%,
    transparent 100%
  );
}
.wp-block-separator.is-style-wide::after {
  content: '◆';
  position: relative;
  z-index: 1;
  font-size: 0.55rem;
  color: var(--accent);
  opacity: 0.55;
  background: var(--bg-page);
  padding: 0 var(--space-md);
  letter-spacing: 0;
  line-height: 1;
}

/* ── Level 3: dots style → three small diamonds ── */
.wp-block-separator.is-style-dots {
  height: auto;
  width: 100%;
  background: none;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-md);
}
.wp-block-separator.is-style-dots::before {
  content: '◆ ◆ ◆';
  font-size: 0.45rem;
  color: var(--accent);
  opacity: 0.40;
  letter-spacing: 0.6em;
}

/* ── Section heading ruled line — consistent with separators ── */
.section-heading::after {
  background: linear-gradient(
    to right,
    var(--border) 0%,
    transparent 100%
  );
}

/* ── Page header block bottom border ── */
.page-header-block {
  border-bottom: none;
  position: relative;
}
.page-header-block::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(
    to right,
    var(--border-subtle) 0%,
    var(--border) 30%,
    var(--border) 70%,
    var(--border-subtle) 100%
  );
}

/* ── section--dark border overrides — richer gradient ── */
.section--dark::before,
.section--dark::after {
  background: linear-gradient(
    to right,
    transparent 0%,
    var(--border-subtle) 10%,
    var(--border) 40%,
    var(--border) 60%,
    var(--border-subtle) 90%,
    transparent 100%
  );
}

/* ── Footer top border ── */
.site-footer {
  border-top: none;
  position: relative;
}
.site-footer::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(
    to right,
    transparent 0%,
    var(--border-subtle) 10%,
    var(--border) 40%,
    var(--border) 60%,
    var(--border-subtle) 90%,
    transparent 100%
  );
}

/* ── Footer bottom bar top border ── */
.footer__bottom {
  border-top: none;
  position: relative;
}
.footer__bottom::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(
    to right,
    transparent 0%,
    var(--border-subtle) 20%,
    var(--border-subtle) 80%,
    transparent 100%
  );
}

/* ── Sitemap section headings ── */
.sitemap-section h3 {
  border-bottom: none;
  position: relative;
  padding-bottom: var(--space-sm);
}
.sitemap-section h3::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(
    to right,
    var(--border) 0%,
    var(--border-subtle) 60%,
    transparent 100%
  );
}

/* ── Search section headings ── */
.search-section__heading {
  border-bottom: none;
  position: relative;
  padding-bottom: var(--space-sm);
}
.search-section__heading::after {
  height: 1px;
  background: linear-gradient(
    to right,
    var(--border) 0%,
    var(--border-subtle) 50%,
    transparent 100%
  );
}

/* ── Disc card link border ── */
.disc-card__link { border-bottom-style: solid; }

/* ── Entry content — hr inside posts/pages ── */
.entry-content hr {
  margin: var(--space-lg) 0;
}


/* ============================================================
   NIRUGRAM — photo grid with overlay cards
   ============================================================ */
.nirugram-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md);
}

/* Gram card — square, overlay text */
.gram-card {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  background: var(--bg-surface);
  aspect-ratio: 1;
  display: block;        /* entire card is a clickable element */
  border: 1px solid var(--border-subtle);
  transition: border-color var(--dur) var(--ease);
}
.gram-card:hover { border-color: var(--border); }
.gram-card:focus { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Featured: double width */
.gram-card--featured {
  grid-column: span 2;
  aspect-ratio: 2/1;
}

/* Photo */
.gram-card__photo {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease);
}
.gram-card:hover .gram-card__photo { transform: scale(1.05); }

/* Gradient overlay — always present, text on top */
.gram-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(8,8,7,0.90) 0%,
    rgba(8,8,7,0.45) 40%,
    transparent 75%
  );
  transition: background var(--dur) var(--ease);
}
.gram-card:hover .gram-card__overlay {
  background: linear-gradient(
    to top,
    rgba(8,8,7,0.95) 0%,
    rgba(8,8,7,0.55) 50%,
    rgba(8,8,7,0.10) 100%
  );
}

/* Text zone at bottom */
.gram-card__body {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: var(--space-md);
  z-index: 1;
}
.gram-card__date {
  font-family: var(--font-display);
  font-size: 0.60rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  opacity: 0.72;
  margin-bottom: 4px;
}
.gram-card__title {
  font-family: var(--font-display);
  font-size: 0.88rem;
  letter-spacing: 0.06em;
  color: var(--text-primary);
  margin-bottom: 4px;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.gram-card__text {
  font-size: 0.82rem;
  color: var(--text-secondary);
  line-height: 1.58;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
}
.gram-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}
.gram-card__tag {
  font-family: var(--font-display);
  font-size: 0.52rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-muted);
  opacity: 0.75;
}
.gram-card__tag::before { content: '#'; }

/* Placeholder when no image */
.gram-card__no-photo {
  position: absolute; inset: 0;
  background: var(--bg-surface);
  display: flex; align-items: center; justify-content: center;
}
.gram-card__no-photo::after {
  content: '◆'; font-size: 1.5rem;
  color: var(--accent-dim); opacity: 0.4;
}

/* ── Nirugram section on front page ── */
.nirugram-front-wrap { }
.nirugram-front-footer {
  margin-top: var(--space-lg);
  text-align: right;
}
.nirugram-view-all {
  font-family: var(--font-display);
  font-size: 0.68rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
  border-bottom: 1px solid var(--border);
  padding-bottom: 2px;
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.nirugram-view-all:hover { color: var(--accent-glow); border-color: var(--accent); }

/* ============================================================
   INSTAGRAM (Smash Balloon override)
   Forces plugin output to match .nirugram-grid / .gram-card
   ============================================================ */
/* Hide plugin chrome we don't want */
.nc-instagram-wrap .sbi_header_text,
.nc-instagram-wrap .sbi_header,
.nc-instagram-wrap #sbi_load,
.nc-instagram-wrap .sbi_load_btn_wrap,
.nc-instagram-wrap .sbi-load-more,
.nc-instagram-wrap .sbi_follow_btn,
.nc-instagram-wrap .sbi-follow-btn { display: none !important; }

/* Reset plugin's own grid — use ours */
.nc-instagram-wrap #sbi,
.nc-instagram-wrap .sbi-col-3 { width: 100% !important; }

.nc-instagram-wrap .sbi_photos,
.nc-instagram-wrap #sbi_images {
  display: grid !important;
  grid-template-columns: repeat(3,1fr) !important;
  gap: var(--space-md) !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

/* Each photo item — match gram-card exactly */
.nc-instagram-wrap .sbi_photo_wrap,
.nc-instagram-wrap .sbi_item {
  position: relative !important;
  overflow: hidden !important;
  aspect-ratio: 1 !important;
  background: var(--bg-surface) !important;
  border: 1px solid var(--border-subtle) !important;
  transition: border-color var(--dur) var(--ease) !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  float: none !important;
}
.nc-instagram-wrap .sbi_photo_wrap:hover,
.nc-instagram-wrap .sbi_item:hover {
  border-color: var(--border) !important;
}

/* Image fills the card */
.nc-instagram-wrap .sbi_photo_wrap img,
.nc-instagram-wrap .sbi_item img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.8s var(--ease) !important;
  display: block !important;
}
.nc-instagram-wrap .sbi_photo_wrap:hover img,
.nc-instagram-wrap .sbi_item:hover img {
  transform: scale(1.05) !important;
}

/* Gradient overlay — same as gram-card */
.nc-instagram-wrap .sbi_photo_wrap::after,
.nc-instagram-wrap .sbi_item::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(
    to top,
    rgba(8,8,7,0.75) 0%,
    rgba(8,8,7,0.25) 40%,
    transparent 75%
  );
  transition: background var(--dur) var(--ease);
  pointer-events: none;
  z-index: 1;
}
.nc-instagram-wrap .sbi_photo_wrap:hover::after,
.nc-instagram-wrap .sbi_item:hover::after {
  background: linear-gradient(
    to top,
    rgba(8,8,7,0.90) 0%,
    rgba(8,8,7,0.45) 50%,
    rgba(8,8,7,0.10) 100%
  );
}

/* Hide plugin's caption/icon overlays — we use our gradient only */
.nc-instagram-wrap .sbi_photo_wrap .sbi_photo_image_wrap,
.nc-instagram-wrap .sbi_link { position: static !important; }

/* Responsive — match nirugram breakpoints */
@media (max-width: 768px) {
  .nc-instagram-wrap .sbi_photos,
  .nc-instagram-wrap #sbi_images {
    grid-template-columns: repeat(2,1fr) !important;
  }
}
@media (max-width: 480px) {
  .nc-instagram-wrap .sbi_photos,
  .nc-instagram-wrap #sbi_images {
    grid-template-columns: repeat(2,1fr) !important;
    gap: var(--space-sm) !important;
  }
}

/* ── Lightbox ── */
.gram-lightbox {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(8,8,7,0.97);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s var(--ease);
  padding: var(--space-lg);
}
.gram-lightbox.open { opacity: 1; pointer-events: auto; }

.gram-lightbox__inner {
  display: grid;
  grid-template-columns: 3fr 2fr;   /* image dominant */
  gap: var(--space-xl);
  max-width: 1200px;                 /* larger on big screens */
  width: 100%;
  max-height: 90vh;
  align-items: center;
  position: relative;
}
.gram-lightbox__image-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1;
  background: var(--bg-surface);
}
.gram-lightbox__image-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0;
  transition: opacity 0.35s var(--ease);
}
.gram-lightbox__image-wrap img.loaded { opacity: 1; }

.gram-lightbox__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
  overflow-y: auto;
  max-height: 80vh;
}
.gram-lightbox__date {
  font-family: var(--font-display);
  font-size: 0.64rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}
.gram-lightbox__title {
  font-family: var(--font-display);
  font-size: clamp(1rem, 2vw, 1.4rem);
  letter-spacing: 0.08em;
  color: var(--text-primary);
  line-height: 1.3;
}
.gram-lightbox__text {
  font-size: 1rem;
  color: var(--text-secondary);
  line-height: 1.82;
  font-family: var(--font-body);
}
.gram-lightbox__tags {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.gram-lightbox__tag {
  font-family: var(--font-display);
  font-size: 0.60rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-muted);
  border: 1px solid var(--border-subtle);
  padding: 2px 7px;
  text-decoration: none;
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.gram-lightbox__tag:hover { color: var(--accent); border-color: var(--border); }
.gram-lightbox__tag::before { content: '#'; }

/* Image counter: "2 / 5" */
.gram-lightbox__counter {
  font-family: var(--font-display);
  font-size: 0.58rem;
  letter-spacing: 0.22em;
  color: var(--text-muted);
  opacity: 0.6;
  margin-top: auto;
  padding-top: var(--space-sm);
}

.gram-lightbox__close {
  position: fixed;
  top: var(--space-lg); right: var(--space-lg);
  background: none; border: none; cursor: pointer;
  color: var(--text-secondary);
  font-size: 1.4rem;
  font-family: var(--font-display);
  transition: color var(--dur) var(--ease);
  z-index: 10;
  line-height: 1;
  padding: var(--space-xs);
  min-width: 36px; min-height: 36px;
}
.gram-lightbox__close:hover { color: var(--accent); }

/* Nav arrows — inside the inner container, not fixed to viewport edge */
.gram-lightbox__nav {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  background: rgba(8,8,7,0.7);
  border: 1px solid var(--border-subtle);
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 1.4rem;
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
  transition: color var(--dur) var(--ease),
              border-color var(--dur) var(--ease),
              background var(--dur) var(--ease);
  z-index: 2;
  line-height: 1;
}
.gram-lightbox__nav:hover {
  color: var(--accent);
  border-color: var(--border);
  background: rgba(8,8,7,0.92);
}
.gram-lightbox__nav--prev { left: var(--space-sm); }
.gram-lightbox__nav--next {
  left: auto;
  right: var(--space-sm);     /* relative to image-wrap, not viewport */
}

/* Lightbox mobile — stack vertically, swipe-friendly */
@media (max-width: 768px) {
  .gram-lightbox {
    padding: var(--space-md);
    align-items: flex-start;
  }
  .gram-lightbox__inner {
    grid-template-columns: 1fr;
    overflow-y: auto;
    max-height: 90vh;
    gap: var(--space-md);
    align-items: start;
  }
  .gram-lightbox__body { max-height: none; }
  .gram-lightbox__nav {
    position: fixed;
    top: auto;
    bottom: var(--space-lg);
    transform: none;
  }
  .gram-lightbox__nav--prev { left: var(--space-lg); }
  .gram-lightbox__nav--next { right: var(--space-lg); left: auto; }
}

/* Nirugram grid responsive */
@media (max-width: 768px) {
  .nirugram-grid { grid-template-columns: repeat(2,1fr); gap: var(--space-sm); }
  .gram-card--featured { grid-column: span 2; aspect-ratio: 16/9; }
}
@media (max-width: 480px) {
  .nirugram-grid { grid-template-columns: 1fr; }
  .gram-card--featured { grid-column: span 1; aspect-ratio: 1; }
}

/* ============================================================
   RELEASE GRID — layout variants (grid / half / full)
   Used by [nirucon_bandcamp] shortcode inside posts/pages.
   ============================================================ */

/* Default grid: same as front page */
.releases-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(255px, 1fr));
  gap: var(--space-lg);
}

/* Half: always 2 columns */
.releases-grid--half {
  grid-template-columns: repeat(2, 1fr);
}

/* Full: one card per row, horizontal layout */
.releases-grid--full {
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}
.releases-grid--full .release-card {
  display: grid;
  grid-template-columns: 300px 1fr;
  align-items: start;
}
.releases-grid--full .release-card__cover {
  aspect-ratio: 1;
  height: 100%;
}
.releases-grid--full .release-card__cover img {
  height: 100%;
  object-fit: cover;
}
.releases-grid--full .release-card__body {
  padding: var(--space-lg);
}
.releases-grid--full .release-card__title {
  font-size: 1.1rem;
  margin-bottom: var(--space-sm);
}
.releases-grid--full .release-card__artist {
  font-size: 0.72rem;
  margin-bottom: var(--space-sm);
}
.releases-grid--full .release-card__meta {
  margin-bottom: var(--space-md);
}

/* Inside entry-content — break out of max-width constraint */
.entry-content .releases-grid,
.entry-content .releases-grid--half,
.entry-content .releases-grid--full {
  width: 100%;
  max-width: none;
}

/* ── Responsive ── */
@media (max-width: 900px) {
  .releases-grid--full .release-card {
    grid-template-columns: 220px 1fr;
  }
}
@media (max-width: 768px) {
  /* Grid: 2 columns on tablet */
  .releases-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  /* Half: 2 columns → stays 2 on tablet */
  .releases-grid--half {
    grid-template-columns: repeat(2, 1fr);
  }
  /* Full: stack vertically on tablet */
  .releases-grid--full .release-card {
    grid-template-columns: 1fr;
  }
  .releases-grid--full .release-card__cover {
    aspect-ratio: 1;
    height: auto;
  }
  .releases-grid--full .release-card__body {
    padding: var(--space-md);
  }
}
@media (max-width: 480px) {
  /* All grids: 1 column on mobile */
  .releases-grid,
  .releases-grid--half,
  .releases-grid--full .release-card {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   RELEASE GRID — single card fixes
   When only one card exists, always span full width.
   Spacer removed when card is alone (no alignment needed).
   ============================================================ */

/* Single card spans full width in half and grid layouts */
.releases-grid .release-card:only-child,
.releases-grid--half .release-card:only-child {
  grid-column: 1 / -1;
  max-width: 480px;   /* cap width so it doesn't look too stretched */
}

/* Single card in full layout — already full width, just ensure it looks right */
.releases-grid--full .release-card:only-child {
  grid-column: 1 / -1;
  max-width: none;
}

/* Collapse the flex spacer when card is alone — no alignment needed */
.release-card:only-child .release-card__spacer {
  flex: 0;
}

/* Tighten body padding slightly in half layout for better proportions */
.releases-grid--half .release-card__body {
  padding: var(--space-md);
}

/* Artist label slightly more visible */
.release-card__artist {
  letter-spacing: 0.24em;
  margin-bottom: var(--space-sm);
}

/* ============================================================
   SINGLE POST — project link + tags below heading
   ============================================================ */
.post-meta-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px var(--space-sm);
  margin-bottom: var(--space-lg);
  min-height: 36px; /* touch target */
}
.post-meta-bar__project {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--font-display);
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
  border: 1px solid var(--border);
  padding: 4px 10px;
  transition: border-color var(--dur) var(--ease),
              background var(--dur) var(--ease),
              color var(--dur) var(--ease);
  white-space: nowrap;
}
.post-meta-bar__project:hover {
  border-color: var(--accent);
  background: rgba(175,168,122,0.06);
  color: var(--accent-glow);
}
.post-meta-bar__project::before {
  content: '◆';
  font-size: 0.45rem;
  opacity: 0.6;
}
.post-meta-bar__sep {
  color: var(--border);
  font-size: 0.7rem;
  user-select: none;
}
.post-meta-bar__tag {
  font-family: var(--font-display);
  font-size: 0.60rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-muted);
  border: 1px solid var(--border-subtle);
  padding: 3px 8px;
  text-decoration: none;
  transition: color var(--dur) var(--ease),
              border-color var(--dur) var(--ease);
  white-space: nowrap;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
}
.post-meta-bar__tag:hover {
  color: var(--accent);
  border-color: var(--border);
}
.post-meta-bar__tag::before { content: '#'; }

/* "All News & Updates" link at bottom of post */
.post-footer-nav {
  padding: var(--space-lg) 0;
  border-top: none;
  position: relative;
  margin-top: var(--space-lg);
}
.post-footer-nav::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(to right,
    var(--border-subtle) 0%,
    var(--border) 30%,
    var(--border) 70%,
    var(--border-subtle) 100%
  );
}
.post-footer-nav__link {
  font-family: var(--font-display);
  font-size: 0.68rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color var(--dur) var(--ease);
  min-height: 36px; /* touch target */
}
.post-footer-nav__link:hover { color: var(--accent-glow); }

/* ============================================================
   RELEASE CARD — spacer fix inside entry-content
   Prevents empty gap above player when card is alone.
   ============================================================ */
.entry-content .release-card__spacer,
.entry-content .release-card:only-child .release-card__spacer {
  flex: 0 !important;
  min-height: 0 !important;
}

/* ============================================================
   PROJECT CARD — updated date
   ============================================================ */
.project-card__updated {
  font-family: var(--font-display);
  font-size: 0.60rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-top: var(--space-xs);
  opacity: 0.65;
}

/* ============================================================
   PROJECT HERO — status bar (status · updated · info)
   ============================================================ */
.project-status-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 0;
  margin-bottom: var(--space-sm);
}
.project-status-bar__item {
  font-family: var(--font-display);
  font-size: 0.66rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}
.project-status-bar__sep {
  color: var(--border);
  margin: 0 var(--space-sm);
  font-size: 0.6rem;
  user-select: none;
}
/* Info status colour variants */
.project-status-bar__info--complete  { color: #6ab870; }
.project-status-bar__info--good      { color: #8ab870; }
.project-status-bar__info--partial   { color: #c8b060; }
.project-status-bar__info--updating  { color: #6898c8; }
.project-status-bar__info--incomplete{ color: #c08050; }
.project-status-bar__info--placeholder{ color: #b85050; }
/* Founded and genre — slightly muted vs active status */
.project-status-bar__founded{ color: var(--text-secondary); }
.project-status-bar__genre  { color: var(--text-secondary); font-style: italic; letter-spacing: 0.12em; }

/* Back link (C — was inline-styled) */
.project-back-wrap{
  padding:var(--space-lg) 0;
  border-top:1px solid var(--border-subtle);
}
.project-back-link{
  font-family:var(--font-display);font-size:0.70rem;
  letter-spacing:0.22em;text-transform:uppercase;
  color:var(--accent);text-decoration:none;
  transition:color var(--dur) var(--ease);
}
.project-back-link:hover{ color:var(--accent-glow); }

/* ============================================================
   HERO PLAYER — release embed directly below hero
   ============================================================ */
.hero-player{
  background:var(--bg-surface);
  border-top:1px solid var(--border-subtle);
  border-bottom:1px solid var(--border-subtle);
  padding:var(--space-lg) 0;
}
.hero-player__inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-xl);
  align-items:center;
}
/* Left: info */
.hero-player__label{
  font-family:var(--font-display);font-size:0.58rem;
  letter-spacing:0.30em;text-transform:uppercase;
  color:var(--accent);opacity:0.8;
  margin-bottom:var(--space-xs);
}
.hero-player__title{
  font-family:var(--font-display);font-size:clamp(0.85rem,1.6vw,1.10rem);
  letter-spacing:0.10em;text-transform:uppercase;
  color:var(--text-primary);font-weight:400;
  margin-bottom:var(--space-sm);
  line-height:1.3;
}
.hero-player__meta{
  display:flex;flex-wrap:wrap;gap:4px 14px;
  font-family:var(--font-display);font-size:0.62rem;
  letter-spacing:0.14em;text-transform:uppercase;
  color:var(--text-muted);
  margin-bottom:var(--space-md);
}
.hero-player__meta span + span::before{
  content:'·';margin-right:14px;opacity:0.4;
}
.hero-player__buy{
  display:inline-flex;align-items:center;
  font-family:var(--font-display);font-size:0.64rem;
  letter-spacing:0.20em;text-transform:uppercase;
  color:var(--accent);
  border-bottom:1px solid var(--border);
  padding-bottom:2px;text-decoration:none;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.hero-player__buy:hover{color:var(--accent-glow);border-color:var(--accent);}
/* Right: embed */
.hero-player__player{
  display:flex;flex-direction:column;
}
.hero-player__embed iframe{
  width:100%!important;border:0;display:block;
}
/* Tablet: stack */
@media(max-width:900px){
  .hero-player__inner{
    grid-template-columns:1fr;
    gap:var(--space-md);
  }
}
/* Mobile */
@media(max-width:600px){
  .hero-player{padding:var(--space-md) 0;}
  .hero-player__meta span + span::before{display:none;}
}

/* Section heading separator — between Featured and full Discography (B) */
.section-heading--separated{
  margin-top:var(--space-2xl);
  padding-top:var(--space-xl);
  border-top:1px solid var(--border-subtle);
}

/* Mobile: stack status bar items */
@media (max-width: 640px) {
  .project-status-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
  .project-status-bar__sep { display: none; }
  .post-meta-bar { gap: 6px; }
  .post-meta-bar__sep { display: none; }
}

/* ============================================================
   SECTION VIEW-MORE LINK
   No border/box — clean text link with arrow.
   Same style for news, nirugram and about.
   ============================================================ */
.section-view-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-size: 0.70rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
  transition: color var(--dur) var(--ease);
}
.section-view-more:hover { color: var(--accent-glow); }

/* Footer row — right-aligned for news + nirugram */
.section-footer {
  margin-top: var(--space-lg);
  display: flex;
  justify-content: flex-end;
}
/* Left-aligned for about section */
.section-footer--left {
  justify-content: flex-start;
}

/* ============================================================
   FEATURED VIDEO SECTION
   ============================================================ */
.video-section { }

.video-wrap {
  /* Full container width — matches releases-grid span */
  width: 100%;
}
.video-wrap__ratio {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: var(--bg-surface);
  overflow: hidden;
  border: 1px solid var(--border);
}
.video-wrap__ratio iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}

/* ============================================================
   FEATURED / SELECTED RELEASES — project page
   ============================================================ */
.disc-featured-wrap {
  margin-bottom: var(--space-2xl);
}
.disc-featured-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--space-lg);
}

/* ============================================================
   DOWNLOADS — press & promo files
   ============================================================ */
.downloads-wrap {
  margin-top: var(--space-2xl);
}
.downloads-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--border-subtle);
}
.downloads-item {
  display: grid;
  grid-template-columns: auto 1fr auto auto;
  align-items: center;
  gap: var(--space-md);
  padding: var(--space-md) var(--space-lg);
  border-bottom: 1px solid var(--border-subtle);
  transition: background var(--dur) var(--ease);
  text-decoration: none;
  color: inherit;
}
.downloads-item:last-child { border-bottom: none; }
.downloads-item:hover { background: var(--bg-raised); }

.downloads-item__icon {
  font-size: 1.1rem;
  width: 28px;
  text-align: center;
  flex-shrink: 0;
  opacity: 0.7;
}
.downloads-item__label {
  font-family: var(--font-display);
  font-size: 0.76rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-primary);
}
.downloads-item__desc {
  font-size: 0.82rem;
  color: var(--text-muted);
  margin-top: 2px;
}
.downloads-item__size {
  font-family: var(--font-display);
  font-size: 0.60rem;
  letter-spacing: 0.14em;
  color: var(--text-muted);
  white-space: nowrap;
  opacity: 0.6;
}
.downloads-item__dl {
  font-family: var(--font-display);
  font-size: 0.62rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
  transition: color var(--dur) var(--ease);
  border: 1px solid var(--border-subtle);
  padding: 4px 10px;
}
.downloads-item:hover .downloads-item__dl {
  color: var(--accent-glow);
  border-color: var(--border);
}

.downloads-note {
  margin-top: var(--space-md);
  font-size: 0.80rem;
  color: var(--text-muted);
  font-style: italic;
}

/* Mobile — downloads */
@media (max-width: 640px) {
  .downloads-item {
    grid-template-columns: auto 1fr auto;
    gap: var(--space-sm);
    padding: var(--space-md);
  }
  .downloads-item__size { display: none; }
  .downloads-item__dl {
    padding: 6px 10px;
    min-height: 36px;
    display: flex;
    align-items: center;
  }
  .disc-featured-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-md);
  }
}
@media (max-width: 400px) {
  .disc-featured-grid { grid-template-columns: 1fr; }
}

/* Downloads item info — stacked label + desc */
.downloads-item__info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

/* <!--more--> read more link in project additional info */
.project-more-link {
  display: block;
  margin-top: var(--space-md);
}
.project-more-link a {
  font-family: var(--font-display);
  font-size: 0.70rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
  transition: color var(--dur) var(--ease);
}
.project-more-link a:hover { color: var(--accent-glow); }
