/* ==========================================================================
   BASE — Reset, typography, layout primitives
   ========================================================================== */

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

html { scroll-behavior: smooth; }

body {
  background-color: var(--bone-2);
  color: var(--fg);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.6;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font: inherit; }

/* Layout primitives */
.section {
  position: relative;
  padding-block: var(--section-y);
  padding-inline: var(--section-x);
}
@media (min-width: 768px) {
  .section {
    padding-block: var(--section-y-lg);
    padding-inline: var(--section-x-lg);
  }
}

.section-container {
  max-width: 90rem;
  margin-inline: auto;
  width: 100%;
}

/* Typography scale */
.font-display { font-family: var(--font-display); }

h1, h2, h3, h4 { font-weight: 400; font-family: var(--font-display); line-height: 1.05; }

/* Utility text */
.eyebrow {
  font-size: 0.6875rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 1rem;
  display: block;
}

/* Gradient text helpers */
.accent-text {
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-light) 50%, var(--accent) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

.slate-text {
  background: linear-gradient(135deg, var(--slate) 0%, var(--slate-dark) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Separator line */
.accent-line {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
}

/* Glassmorphism */
.glass {
  background: rgba(255,255,255,0.7);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border: 1px solid rgba(255,255,255,0.4);
}

/* Noise overlay */
.noise::after {
  content: "";
  position: absolute;
  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='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.025'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 1;
}

/* Subtle grid overlay */
.grid-overlay {
  position: absolute;
  inset: 0;
  opacity: 0.04;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.3) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.3) 1px, transparent 1px);
  background-size: 80px 80px;
}

/* Radial glow helpers */
.glow-accent-tr {
  position: absolute;
  top: -8rem;
  right: -8rem;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(233,39,46,0.12) 0%, transparent 70%);
  filter: blur(60px);
  pointer-events: none;
}

.glow-accent-br {
  position: absolute;
  bottom: -10rem;
  right: -10rem;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(233,39,46,0.35) 0%, transparent 70%);
  filter: blur(80px);
  pointer-events: none;
}

.glow-accent-tl {
  position: absolute;
  top: -10rem;
  left: -10rem;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(233,39,46,0.1) 0%, transparent 70%);
  filter: blur(60px);
  pointer-events: none;
}

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--bone-2); }
::-webkit-scrollbar-thumb { background: var(--ink-6); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent); }

/* ==========================================================================
   ANIMATIONS
   ========================================================================== */

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.animate-marquee {
  animation: marquee 30s linear infinite;
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(32px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* AOS overrides — ensure our animations fire with AOS */
[data-aos="tombake-fade-up"] {
  opacity: 0;
  transform: translateY(32px);
  transition-property: opacity, transform;
}
[data-aos="tombake-fade-up"].aos-animate {
  opacity: 1;
  transform: translateY(0);
}

/* ==========================================================================
   WORDPRESS RESETS
   ========================================================================== */
.wp-block-image { margin: 0; }
.alignnone, .alignleft, .alignright { max-width: 100%; }
