/**
 * Shared base styles for all MINDSETOR landing pages.
 * Single source of truth for body defaults, icon settings,
 * typography utilities, and nav component styles.
 *
 * Usage: <link rel="stylesheet" href="shared/base.css" />
 */

/* ── Design Tokens (CSS Custom Properties) ────────────────────── */
:root {
  --color-bg:            #fefefc;
  --color-text:          #1a1c1b;
  --color-accent:        #ff7b4a;
  --color-accent-dark:   #a63b0c;
  --color-outline:       #dfc0b6;
  --color-surface:       #f9f9f7;

  --font-primary:        'Plus Jakarta Sans', sans-serif;

  --nav-height:          72px;   /* py-6 (24px*2) + content */
  --sidebar-width:       80px;   /* w-20 = 5rem */

  --nav-link-size:       9px;
  --nav-link-spacing:    0.25em;
  --sidebar-label-size:  7px;
}

/* ── Base Resets ───────────────────────────────────────────────── */
body {
  font-family: var(--font-primary);
  background-color: var(--color-bg);
  color: var(--color-text);
  margin: 0;
  overflow-x: hidden;
}

/* ── Material Icons (consistent weight across pages) ──────────── */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
  vertical-align: middle;
}

/* ── Shared Typography Utilities ──────────────────────────────── */
.tracking-tighter-plus   { letter-spacing: -0.06em; }
.tracking-widest-plus    { letter-spacing: 0.2em; }
.letter-spacing-technical { letter-spacing: 0.15em; }
.kerning-tight           { font-feature-settings: "kern" 1, "liga" 1; }
.text-metadata           { font-size: 8px; letter-spacing: 0.25em; font-weight: 700; opacity: 0.3; }

.text-huge {
  font-size: clamp(4rem, 12vw, 10rem);
  line-height: 0.85;
}

.text-8xl-plus {
  font-size: 8rem;
  line-height: 0.9;
}

.editorial-quote {
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 1.05;
  letter-spacing: -0.04em;
}

/* ── Layout Utilities ─────────────────────────────────────────── */
.vertical-text { writing-mode: vertical-rl; }

.glass-panel {
  backdrop-filter: blur(30px);
  background: rgba(255, 255, 255, 0.7);
}

.technical-grid {
  background-size: 60px 60px;
  background-image: linear-gradient(to right, rgba(26, 28, 27, 0.03) 1px, transparent 1px),
                    linear-gradient(to bottom, rgba(26, 28, 27, 0.03) 1px, transparent 1px);
}

.grid-bg {
  background-image: radial-gradient(#1a1c1b 0.5px, transparent 0.5px);
  background-size: 30px 30px;
  opacity: 0.05;
}

.invisible-pulse {
  mask-image: radial-gradient(circle at center, black, transparent 80%);
  filter: contrast(1.1) brightness(1.1) grayscale(1);
}

/* ── Mobile Hamburger Menu ────────────────────────────────────── */
.mobile-menu-btn {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  padding: 4px;
  z-index: 60;
}
.mobile-menu-btn span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--color-text);
  transition: transform 0.3s, opacity 0.3s;
}
.mobile-menu-btn.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.mobile-menu-btn.active span:nth-child(2) { opacity: 0; }
.mobile-menu-btn.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

@media (max-width: 767px) {
  .mobile-menu-btn { display: flex; }
}

.mobile-drawer {
  position: fixed;
  inset: 0;
  z-index: 55;
  background: rgba(254,254,252,0.98);
  backdrop-filter: blur(20px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 40px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.mobile-drawer.open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.mobile-drawer a {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--color-text);
  opacity: 0.5;
  text-decoration: none;
  transition: color 0.3s, opacity 0.3s;
}
.mobile-drawer a:hover,
.mobile-drawer a.active-link {
  color: var(--color-accent);
  opacity: 1;
}
