/*
Theme Name: Noesis Vol III
Theme URI: https://blog.noesisgroup.com
Author: Noesis Group
Description: Dark editorial with bold graphics and sharp layout
Version: 3.0.0
Template: twentytwentyfive
Text Domain: noesis-v3
*/

*, *::before, *::after { box-sizing: border-box !important; }

:root {
  --bg: #0e0e10 !important;
  --bg-card: #16161a !important;
  --bg-elevated: #1c1c22 !important;
  --fg: #e8e6e3 !important;
  --fg-muted: #8a8580 !important;
  --accent: #00d4ff !important;
  --accent-warm: #ff6b35 !important;
  --accent-magenta: #ff0080 !important;
  --rule: #2a2a32 !important;
  --font-display: 'Space Grotesk', sans-serif !important;
  --font-body: 'Inter', sans-serif !important;
  --font-mono: 'JetBrains Mono', monospace !important;
  --content-width: 680px !important;
}

body {
  font-family: var(--font-body) !important;
  background: var(--bg) !important;
  color: var(--fg) !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  margin: 0 !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
}

body .is-layout-constrained > .alignfull { margin: 0 !important; }
.has-global-padding { padding: 0 !important; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display) !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: var(--fg) !important;
  letter-spacing: -0.02em !important;
  margin: 0 0 1rem 0 !important;
}

h1 { font-size: 2.5rem !important; font-weight: 700 !important; }
h2 { font-size: 1.75rem !important; margin-top: 2rem !important; }
h3 { font-size: 1.375rem !important; }

p { margin: 0 0 1rem 0 !important; font-size: 1rem !important; }

.wp-block-post-content > p:first-of-type::first-letter,
.entry-content > p:first-of-type::first-letter {
  font-family: var(--font-display) !important;
  font-size: 3.5em !important;
  font-weight: 700 !important;
  line-height: 0.8 !important;
  float: left !important;
  margin: 0.1em 0.1em 0 0 !important;
  color: var(--accent) !important;
}

a {
  color: var(--accent) !important;
  text-decoration: none !important;
  transition: color 0.2s !important;
}

a:hover { color: var(--accent-warm) !important; }

.wp-site-blocks { display: block !important; padding: 0 !important; }
.wp-site-blocks > * { margin: 0 !important; }

.is-layout-flow, .is-layout-flex, .is-layout-grid,
.is-layout-constrained, .wp-block-group, .wp-block-columns {
  display: block !important;
  gap: 0 !important;
  flex-direction: column !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.wp-block-column { flex: none !important; max-width: 100% !important; }

.wp-site-blocks > header {
  background: var(--bg) !important;
  border-bottom: 1px solid var(--rule) !important;
  padding: 1.5rem 3rem !important;
  margin: 0 !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 999 !important;
  text-align: center !important;
}

.wp-block-site-title a {
  font-family: var(--font-display) !important;
  font-weight: 700 !important;
  font-size: 1.5rem !important;
  letter-spacing: -0.02em !important;
  color: var(--fg) !important;
  text-decoration: none !important;
}

.wp-block-site-title a:hover { color: var(--accent) !important; }

.wp-block-site-tagline {
  font-family: var(--font-display) !important;
  font-size: 0.7rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--fg-muted) !important;
  margin: 0.25rem 0 0 0 !important;
}

.wp-block-navigation {
  margin-top: 1rem !important;
  padding-top: 1rem !important;
  border-top: 1px solid var(--rule) !important;
  display: flex !important;
  flex-direction: row !important;
  justify-content: center !important;
  gap: 2rem !important;
}

.wp-block-navigation__container, .wp-block-page-list {
  display: flex !important;
  flex-direction: row !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.wp-block-navigation-item { display: block !important; }

.wp-block-navigation-item__content, .wp-block-navigation a {
  font-family: var(--font-display) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  color: var(--fg-muted) !important;
  text-decoration: none !important;
  padding: 0.5rem 1rem !important;
  display: block !important;
  border-bottom: 2px solid transparent !important;
  transition: all 0.2s !important;
}

.wp-block-navigation-item__content:hover, .wp-block-navigation a:hover {
  color: var(--accent) !important;
  border-bottom-color: var(--accent) !important;
}

main { padding: 0 !important; margin: 0 !important; }

.wp-block-post-template {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)) !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.wp-block-post {
  background: var(--bg-card) !important;
  border: 1px solid var(--rule) !important;
  border-top: none !important;
  border-left: none !important;
  padding: 2rem !important;
  margin: 0 !important;
  transition: background 0.2s !important;
}

.wp-block-post:hover { background: var(--bg-elevated) !important; }

.wp-block-post:first-child {
  grid-column: 1 / -1 !important;
  background: linear-gradient(135deg, #0a0a12 0%, #141422 50%, #1a1020 100%) !important;
  border-top: 3px solid var(--accent) !important;
  padding: 4rem 3rem !important;
  position: relative !important;
  overflow: hidden !important;
}

.wp-block-post:first-child::before {
  content: '' !important;
  position: absolute !important;
  top: -50% !important;
  right: -20% !important;
  width: 600px !important;
  height: 600px !important;
  background: radial-gradient(circle, rgba(0,212,255,0.08) 0%, transparent 70%) !important;
  pointer-events: none !important;
}

.wp-block-post:first-child::after {
  content: '' !important;
  position: absolute !important;
  bottom: -30% !important;
  left: -10% !important;
  width: 400px !important;
  height: 400px !important;
  background: radial-gradient(circle, rgba(255,0,128,0.06) 0%, transparent 70%) !important;
  pointer-events: none !important;
}

.wp-block-post:first-child .wp-block-post-title {
  font-size: clamp(2rem, 4vw, 3rem) !important;
  position: relative !important;
  z-index: 1 !important;
}

.wp-block-post:first-child .wp-block-post-excerpt {
  font-size: 1.125rem !important;
  color: var(--fg-muted) !important;
  position: relative !important;
  z-index: 1 !important;
}

.wp-block-post:nth-child(2) { border-top: 3px solid var(--accent) !important; }
.wp-block-post:nth-child(3) { border-top: 3px solid var(--accent-warm) !important; }
.wp-block-post:nth-child(4) { border-top: 3px solid var(--accent-magenta) !important; }
.wp-block-post:nth-child(5) { border-top: 3px solid var(--accent) !important; }

.wp-block-post-title {
  font-family: var(--font-display) !important;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  margin-bottom: 0.5rem !important;
}

.wp-block-post-title a { color: var(--fg) !important; text-decoration: none !important; }
.wp-block-post-title a:hover { color: var(--accent) !important; }

.wp-block-post-excerpt { color: var(--fg-muted) !important; font-size: 0.9rem !important; line-height: 1.6 !important; }

.wp-block-post-excerpt__more-link {
  font-family: var(--font-display) !important;
  font-size: 0.7rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  color: var(--accent) !important;
  border-bottom: 1px solid var(--accent) !important;
  padding-bottom: 2px !important;
}

.wp-block-post-excerpt__more-link:hover { color: var(--accent-warm) !important; border-color: var(--accent-warm) !important; }

.wp-block-post-date {
  font-family: var(--font-display) !important;
  font-size: 0.6875rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  color: var(--fg-muted) !important;
  margin-bottom: 0.75rem !important;
}

.wp-block-post-date a { color: var(--fg-muted) !important; text-decoration: none !important; }

.single-post .entry-header, .single-post .wp-block-post-title {
  text-align: center !important;
  padding: 4rem 3rem 2rem !important;
  background: linear-gradient(180deg, var(--bg-elevated) 0%, var(--bg) 100%) !important;
  border-bottom: 1px solid var(--rule) !important;
}

.single-post .wp-block-post-title {
  font-family: var(--font-display) !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
  max-width: 800px !important;
  margin: 0 auto !important;
}

.wp-block-post-content {
  max-width: var(--content-width) !important;
  margin: 0 auto !important;
  padding: 3rem 2rem !important;
  font-size: 1.0625rem !important;
  line-height: 1.8 !important;
}

.wp-block-post-content h2 {
  font-family: var(--font-display) !important;
  font-size: 1.5rem !important;
  font-weight: 600 !important;
  margin-top: 2.5rem !important;
  margin-bottom: 1rem !important;
  padding-top: 1.5rem !important;
  border-top: 1px solid var(--rule) !important;
}

.wp-block-quote, blockquote {
  border-left: 3px solid var(--accent) !important;
  background: var(--bg-card) !important;
  padding: 1.5rem 2rem !important;
  margin: 2rem 0 !important;
  font-family: var(--font-display) !important;
  font-size: 1.125rem !important;
  color: var(--fg) !important;
  font-style: italic !important;
}

.wp-block-button__link, .wp-element-button {
  font-family: var(--font-display) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  background: var(--accent) !important;
  color: var(--bg) !important;
  padding: 0.75rem 1.5rem !important;
  border: none !important;
  border-radius: 0 !important;
  transition: all 0.2s !important;
  text-decoration: none !important;
}

.wp-block-button__link:hover, .wp-element-button:hover {
  background: var(--accent-warm) !important;
  color: var(--bg) !important;
}

.wp-site-blocks > footer {
  background: var(--bg-card) !important;
  border-top: 1px solid var(--rule) !important;
  padding: 3rem !important;
  margin: 0 !important;
  text-align: center !important;
  color: var(--fg-muted) !important;
}

.wp-site-blocks > footer .wp-block-site-title a { font-size: 1.25rem !important; color: var(--fg) !important; }

@media (max-width: 768px) {
  .wp-site-blocks > header { padding: 1rem 1.5rem !important; }
  .wp-block-post-template { grid-template-columns: 1fr !important; }
  .wp-block-post:first-child { padding: 2.5rem 1.5rem !important; }
  .single-post .wp-block-post-title { padding: 2rem 1.5rem !important; }
  .wp-block-post-content { padding: 2rem 1.5rem !important; }
  .wp-block-navigation { flex-wrap: wrap !important; gap: 1rem !important; }
  .wp-block-navigation__container, .wp-block-page-list { flex-wrap: wrap !important; justify-content: center !important; }
}

.wp-block-spacer, .wp-block-separator, .wp-block-query-pagination { display: none !important; }
.wp-block-navigation__responsive-container, .wp-block-navigation__responsive-close,
.wp-block-navigation__responsive-dialog, .wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-content { display: none !important; }

.home h1:first-of-type {
  font-family: var(--font-display) !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.15em !important;
  color: var(--fg-muted) !important;
  text-align: center !important;
  padding: 2rem 0 !important;
  margin: 0 !important;
  border-bottom: 1px solid var(--rule) !important;
}

.wp-block-post:first-child .entry-content::before,
.wp-block-post:first-child .wp-block-post-excerpt::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  background-image:
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px) !important;
  background-size: 40px 40px !important;
  pointer-events: none !important;
}
