/* =========================================================================
   NIRAJ OJHA — UFF TECHYNIX
   Custom layer on top of Bentos template.
   Airlight-aligned tokens. Dark-first. Aurora gradients. Glass surfaces.
   ========================================================================= */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&family=Inter:wght@300;400;500;600;700;800&family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@300;400;500&display=swap');

/* =========================================================================
   COLOR TOKEN SYSTEM
   :root      = LIGHT MODE (default)
   [data-theme="dark"] = DARK MODE override
   Logo blue (#0178DC) is the brand identity in BOTH modes.
   ========================================================================= */

:root {
  /* === BRAND === */
  --brand-primary: #0178DC;
  --brand-primary-hover: #005FB3;
  --brand-primary-soft: #E6F3FF;
  --brand-primary-deep: #005FB3;

  /* === BACKGROUND === */
  --bg-page: #F5F9FD;
  --bg-surface: #FFFFFF;
  --bg-elevated: #FFFFFF;
  --bg-soft: #E6F3FF;

  /* === TEXT === */
  --text-primary: #071B33;
  --text-secondary: #5B677A;
  --text-muted: #8A96A8;
  --text-inverse: #FFFFFF;

  /* === BORDER === */
  --border-soft: #DDE7F2;
  --border-strong-color: #C8D6E5;

  /* === ACCENT === */
  --accent-cyan: #22D3EE;
  --accent-purple: #7C3AED;
  --accent-teal: #18B7A0;

  /* === SEMANTIC === */
  --success: #10B981;
  --warning: #F59E0B;
  --error: #EF4444;

  /* === SHADOW / FOCUS === */
  --shadow-soft: 0 10px 30px rgba(7, 27, 51, 0.06);
  --shadow-medium: 0 18px 50px rgba(7, 27, 51, 0.10);
  --focus-ring: 0 0 0 4px rgba(1, 120, 220, 0.12);
  --glow-blue: 0 0 40px rgba(1, 120, 220, 0.18);
  --glow-cyan: 0 0 32px rgba(34, 211, 238, 0.18);

  /* === NAVBAR (theme-aware) === */
  --nav-bg: rgba(255, 255, 255, 0.85);
  --nav-bg-scrolled: rgba(255, 255, 255, 0.95);
  --nav-border: var(--border-soft);

  /* === SURFACE GLASS === */
  --surface-glass: rgba(255, 255, 255, 0.72);
  --surface-soft-rgba: rgba(7, 27, 51, 0.04);

  /* =========================================================================
     BACKWARD-COMPAT ALIASES
     Existing CSS rules use --bg, --surface, --text, --accent etc.
     These now resolve to the right value per theme.
     ========================================================================= */
  --bg: var(--bg-page);
  --bg-elev: var(--bg-surface);
  --bg-elev-2: var(--bg-elevated);
  --surface: var(--bg-surface);
  --surface-hover: var(--brand-primary-soft);
  --border: var(--border-soft);
  --border-strong: var(--border-strong-color);

  --text: var(--text-primary);
  --text-2: var(--text-secondary);
  --text-3: var(--text-muted);
  --text-4: var(--text-muted);

  --main-color: var(--text-secondary);
  --heading-color: var(--text-primary);
  --primary-color: var(--brand-primary);
  --lighter-color: var(--text-muted);
  --subtitle-color: var(--text-muted);
  --black-color: var(--text-primary);
  --border-color: var(--border-soft);
  --button-border: var(--border-strong-color);
  --body-background: var(--bg-page);
  --grey-bg: var(--bg-soft);

  --accent: var(--brand-primary);
  --accent-2: var(--brand-primary-hover);
  --accent-3: var(--accent-purple);
  --accent-4: var(--accent-teal);
  --accent-warm: var(--warning);
  --accent-glow: rgba(1, 120, 220, 0.30);

  --grad-aurora: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-hover) 50%, var(--accent-purple) 100%);
  --grad-fire: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-hover) 100%);
  --grad-ocean: linear-gradient(135deg, var(--brand-primary) 0%, var(--accent-cyan) 100%);
  --grad-violet: linear-gradient(135deg, var(--accent-purple) 0%, var(--brand-primary) 100%);

  --shadow-sm: 0 1px 2px rgba(7, 27, 51, 0.06);
  --shadow-md: var(--shadow-soft);
  --shadow-lg: var(--shadow-medium);
  --shadow-glow: 0 0 40px var(--accent-glow);

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-xl: 28px;

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 200ms;
  --dur-base: 400ms;
  --dur-slow: 700ms;

  --font-display: 'Space Grotesk', 'DM Sans', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}

/* =========================================================================
   DARK MODE
   ========================================================================= */

[data-theme="dark"] {
  /* === BRAND (logo blue stays) === */
  --brand-primary: #0178DC;
  --brand-primary-hover: #3395E6;
  --brand-primary-soft: rgba(1, 120, 220, 0.16);
  --brand-primary-deep: #005FB3;

  /* === BACKGROUND === */
  --bg-page: #111315;
  --bg-surface: #1A1D21;
  --bg-elevated: #23272E;
  --bg-soft: rgba(1, 120, 220, 0.12);

  /* === TEXT === */
  --text-primary: #F5F7FA;
  --text-secondary: #AEB7C4;
  --text-muted: #7D8794;
  --text-inverse: #111315;

  /* === BORDER === */
  --border-soft: #343A44;
  --border-strong-color: #4B5563;

  /* === ACCENT === */
  --accent-cyan: #32C8FF;
  --accent-purple: #8B5CF6;
  --accent-teal: #18B7A0;

  /* === SEMANTIC === */
  --success: #22C55E;
  --warning: #F5A623;

  /* === SHADOW / GLOW === */
  --shadow-soft: 0 10px 30px rgba(0, 0, 0, 0.28);
  --shadow-medium: 0 20px 60px rgba(0, 0, 0, 0.42);
  --glow-blue: 0 0 40px rgba(1, 120, 220, 0.35);
  --glow-cyan: 0 0 36px rgba(50, 200, 255, 0.24);
  --focus-ring: 0 0 0 4px rgba(51, 149, 230, 0.22);

  /* === NAVBAR === */
  --nav-bg: rgba(26, 29, 33, 0.82);
  --nav-bg-scrolled: rgba(11, 13, 16, 0.92);

  /* === SURFACE GLASS === */
  --surface-glass: rgba(255, 255, 255, 0.04);
  --surface-soft-rgba: rgba(255, 255, 255, 0.04);

  /* === Backward-compat (resolves via the var chain) === */
  --accent-glow: rgba(1, 120, 220, 0.45);
}

/* =========================================================================
   GLOBAL RESET / BASE
   ========================================================================= */

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  background: var(--bg);
  color: var(--text-2);
  font-size: 16px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

/* Aurora background mesh — light by default, deeper in dark mode */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(900px 600px at 10% -10%, rgba(1, 120, 220, 0.10), transparent 60%),
    radial-gradient(800px 500px at 90% 0%, rgba(124, 58, 237, 0.08), transparent 60%),
    radial-gradient(700px 500px at 50% 100%, rgba(34, 211, 238, 0.07), transparent 60%);
  pointer-events: none;
  animation: auroraShift 24s ease-in-out infinite alternate;
}
[data-theme="dark"] body::before {
  background:
    radial-gradient(900px 600px at 10% -10%, rgba(1, 120, 220, 0.20), transparent 60%),
    radial-gradient(800px 500px at 90% 0%, rgba(139, 92, 246, 0.16), transparent 60%),
    radial-gradient(700px 500px at 50% 100%, rgba(50, 200, 255, 0.14), transparent 60%);
}

body::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  background: repeating-linear-gradient(0deg, transparent 0 2px, rgba(7,27,51,0.015) 2px 3px);
  pointer-events: none;
  opacity: 0.4;
}
[data-theme="dark"] body::after {
  background: repeating-linear-gradient(0deg, transparent 0 2px, rgba(255,255,255,0.015) 2px 3px);
  opacity: 0.5;
}

@keyframes auroraShift {
  0%   { transform: translate3d(0,0,0) scale(1); }
  100% { transform: translate3d(2%, -2%, 0) scale(1.05); }
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  color: var(--text);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.1;
}

h1, .h1 { font-size: clamp(2.5rem, 6vw, 5.5rem); font-weight: 700; letter-spacing: -0.03em; }
h2, .h2 { font-size: clamp(1.75rem, 3.4vw, 2.75rem); }
h3, .h3 { font-size: clamp(1.35rem, 2.4vw, 1.75rem); }
h4, .h4 { font-size: clamp(1.15rem, 1.6vw, 1.35rem); }
h5, .h5 { font-size: 1.1rem; }
h6, .h6 { font-size: 0.95rem; }

p { color: var(--text-2); line-height: 1.7; }

a { color: var(--text-2); transition: color var(--dur-fast) var(--ease-out); }
a:hover { color: var(--accent); }

::selection { background: var(--accent); color: #fff; }
::-moz-selection { background: var(--accent); color: #fff; }

/* Custom scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent); }

/* =========================================================================
   CUSTOM CURSOR
   ========================================================================= */

.n-cursor {
  position: fixed;
  top: 0; left: 0;
  width: 8px; height: 8px;
  background: var(--accent);
  border-radius: 50%;
  pointer-events: none;
  z-index: 99999;
  transform: translate(-50%, -50%);
  mix-blend-mode: difference;
  transition: width 200ms var(--ease-out), height 200ms var(--ease-out), background 200ms var(--ease-out);
}
.n-cursor-ring {
  position: fixed;
  top: 0; left: 0;
  width: 38px; height: 38px;
  border: 1.5px solid rgba(14, 112, 220, 0.5);
  border-radius: 50%;
  pointer-events: none;
  z-index: 99998;
  transform: translate(-50%, -50%);
  transition: width 300ms var(--ease-out), height 300ms var(--ease-out), border-color 300ms var(--ease-out), opacity 300ms;
}
.n-cursor.is-hover { width: 0; height: 0; }
.n-cursor-ring.is-hover {
  width: 70px; height: 70px;
  border-color: var(--accent);
  background: rgba(14, 112, 220, 0.08);
}
@media (max-width: 991px) {
  .n-cursor, .n-cursor-ring { display: none; }
}

/* =========================================================================
   PRELOADER OVERRIDE
   ========================================================================= */

.preloader {
  background: var(--bg) !important;
  z-index: 99999;
}
.preloader svg path { fill: var(--bg); }
.preloader .preloader-heading .load-text {
  font-size: 56px !important;
  letter-spacing: 18px !important;
  font-weight: 700 !important;
}
@media (max-width: 768px) {
  .preloader .preloader-heading .load-text {
    font-size: 38px !important;
    letter-spacing: 10px !important;
  }
}
.preloader-heading .load-text span {
  color: var(--text);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}
.preloader-heading .load-text span:nth-child(1),
.preloader-heading .load-text span:nth-child(8) { color: var(--accent); }
.preloader-heading .load-text span:nth-child(2),
.preloader-heading .load-text span:nth-child(7) { color: var(--accent-2); }
.preloader-heading .load-text span:nth-child(3),
.preloader-heading .load-text span:nth-child(6) { color: var(--accent-3); }
.preloader-heading .load-text span:nth-child(4),
.preloader-heading .load-text span:nth-child(5) { color: var(--accent-4); }
.preloader .load-text span:nth-child(8) {
  -webkit-animation-delay: 0.7s;
  animation-delay: 0.7s;
}

/* =========================================================================
   NAVBAR — Floating glass pill (rebuilt)
   ========================================================================= */

.site-nav {
  position: fixed;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 999;
  width: calc(100% - 32px);
  max-width: 1280px;
  border-radius: 999px;
  background: var(--nav-bg);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid var(--border);
  padding: 6px;
  transition: top 300ms var(--ease-out), background 300ms var(--ease-out), border-color 300ms var(--ease-out), box-shadow 300ms var(--ease-out);
}
.site-nav.scrolled {
  top: 8px;
  background: var(--nav-bg-scrolled);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-medium), 0 0 0 1px rgba(1, 120, 220, 0.10);
}

.site-nav-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 4px 6px 4px 14px;
}

/* Brand — Techynix wordmark */
.site-nav-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
  height: 44px;
}
.site-nav-brand .brand-logo {
  display: block;
  height: 34px;
  width: auto;
  color: var(--text);
  transition: color 250ms var(--ease-out), transform 350ms var(--ease-out);
}
.site-nav-brand:hover .brand-logo {
  color: var(--accent);
  transform: translateY(-1px);
}
/* Mobile-nav header uses a slightly smaller variant */
.mobile-nav-head .site-nav-brand .brand-logo { height: 30px; }
/* Legacy brand-mark / brand-name kept for safety, hidden when .brand-logo present */
.site-nav-brand .brand-mark { display: none; }
.site-nav-brand .brand-name { display: none; }

/* Center links */
.site-nav-links {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-left: auto;
  margin-right: auto;
}
.site-nav-links a {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 9px 16px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 13.5px;
  color: var(--text-2);
  letter-spacing: 0.01em;
  text-decoration: none;
  border-radius: 999px;
  transition: color 200ms var(--ease-out), background 200ms var(--ease-out);
}
.site-nav-links a:hover {
  color: var(--text);
  background: var(--brand-primary-soft);
}
.site-nav-links a.active {
  color: var(--brand-primary);
  background: var(--brand-primary-soft);
  padding-left: 24px;
}
[data-theme="dark"] .site-nav-links a.active { color: var(--text); }
.site-nav-links a.active::before {
  content: '';
  position: absolute;
  left: 12px; top: 50%;
  transform: translateY(-50%);
  width: 5px; height: 5px;
  background: var(--accent);
  border-radius: 50%;
  box-shadow: 0 0 8px var(--accent);
}

/* Right CTA */
.site-nav-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  background: var(--brand-primary);
  color: #fff !important;
  border-radius: 999px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 13.5px;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(1, 120, 220, 0.4);
  transition: transform 200ms var(--ease-out), box-shadow 200ms var(--ease-out), background 200ms var(--ease-out);
}
.site-nav-cta:hover {
  transform: translateY(-1px);
  background: var(--brand-primary-hover);
  box-shadow: 0 8px 24px rgba(1, 120, 220, 0.55);
  color: #fff !important;
}

/* === THEME TOGGLE button (sun/moon) — sits inside .site-nav === */
.theme-toggle {
  display: inline-grid;
  place-items: center;
  width: 36px; height: 36px;
  margin: 0 4px;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 200ms var(--ease-out);
  flex-shrink: 0;
}
.theme-toggle:hover {
  border-color: var(--brand-primary);
  color: var(--brand-primary);
  background: var(--brand-primary-soft);
}
.theme-toggle .icon-sun,
.theme-toggle .icon-moon {
  font-size: 16px;
  line-height: 1;
}
.theme-toggle .icon-sun { display: none; }
.theme-toggle .icon-moon { display: inline-block; }
[data-theme="dark"] .theme-toggle .icon-sun { display: inline-block; }
[data-theme="dark"] .theme-toggle .icon-moon { display: none; }
@media (max-width: 991px) {
  .theme-toggle { margin-left: auto; margin-right: 8px; }
}
.site-nav-cta i { transition: transform 200ms var(--ease-out); font-size: 16px; }
.site-nav-cta:hover i { transform: translate(2px, -2px); }

/* Hamburger toggle */
.nav-toggle {
  display: none;
  width: 40px; height: 40px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0;
  margin-left: auto;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
}
.nav-toggle span {
  display: block;
  width: 16px; height: 1.5px;
  background: var(--text);
  border-radius: 2px;
  transition: transform 250ms var(--ease-out);
}

/* Hide legacy bentos navbar — we replaced the markup */
.main-header { display: none; }

/* =========================================================================
   MOBILE NAV PANEL — Full-screen overlay
   ========================================================================= */

.mobile-nav {
  position: fixed;
  inset: 0;
  z-index: 998;
  background: rgba(7, 7, 12, 0.97);
  backdrop-filter: blur(24px) saturate(160%);
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  display: flex;
  flex-direction: column;
  padding: 16px 18px 28px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-12px);
  transition: opacity 350ms var(--ease-out), visibility 350ms, transform 400ms var(--ease-out);
  overflow-y: auto;
}
.mobile-nav.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.mobile-nav-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
  padding: 4px 6px 4px 4px;
}
.mobile-nav-close {
  width: 40px; height: 40px;
  display: inline-grid;
  place-items: center;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: 12px;
  color: var(--text);
  font-size: 20px;
  cursor: pointer;
  transition: all 200ms var(--ease-out);
}
.mobile-nav-close:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.mobile-nav-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}
.mobile-nav-links a {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  color: var(--text);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 18px;
  text-decoration: none;
  transition: all 200ms var(--ease-out);
}
.mobile-nav-links a .num {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--text-3);
  font-weight: 400;
  min-width: 24px;
}
.mobile-nav-links a .arrow {
  margin-left: auto;
  font-size: 20px;
  color: var(--text-3);
  transition: transform 200ms var(--ease-out);
}
.mobile-nav-links a:hover,
.mobile-nav-links a.active {
  background: rgba(14, 112, 220, 0.08);
  border-color: rgba(14, 112, 220, 0.45);
  color: var(--text);
}
.mobile-nav-links a:hover .arrow,
.mobile-nav-links a.active .arrow {
  color: var(--accent);
  transform: translate(2px, -2px);
}
.mobile-nav-links a.active .num { color: var(--accent); }

.mobile-nav-foot {
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px solid var(--border);
}
.mobile-nav-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  padding: 16px 20px;
  background: var(--accent);
  color: #fff !important;
  border-radius: 999px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  margin-bottom: 16px;
  box-shadow: 0 8px 24px rgba(14, 112, 220, 0.45);
}
.mobile-nav-social {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
}
.mobile-nav-social a {
  width: 42px; height: 42px;
  display: grid;
  place-items: center;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 12px;
  color: var(--text-2);
  font-size: 18px;
  text-decoration: none;
  transition: all 200ms var(--ease-out);
}
.mobile-nav-social a:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.mobile-nav-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-3);
  letter-spacing: 0.04em;
}
.mobile-nav-meta strong {
  color: var(--accent-4);
  font-weight: 500;
}

@media (max-width: 991px) {
  .site-nav {
    width: calc(100% - 16px);
    top: 8px;
    border-radius: 18px;
  }
  .site-nav-inner { padding: 4px 4px 4px 10px; }
  .site-nav-brand .brand-logo { height: 26px; }
  .site-nav-links,
  .site-nav-cta { display: none; }
  .nav-toggle { display: flex; }
}

/* =========================================================================
   BUTTONS
   ========================================================================= */

.theme-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 26px;
  background: var(--text);
  color: var(--bg) !important;
  border: 1px solid var(--text);
  border-radius: 999px;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.02em;
  position: relative;
  overflow: hidden;
  transition: all var(--dur-base) var(--ease-out);
  cursor: pointer;
  white-space: nowrap;
}
.theme-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--grad-aurora);
  opacity: 0;
  transition: opacity var(--dur-base) var(--ease-out);
  z-index: -1;
}
.theme-btn:hover {
  color: #fff !important;
  border-color: transparent;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(14, 112, 220, 0.35);
}
.theme-btn:hover::before { opacity: 1; }
.theme-btn i { transition: transform var(--dur-base) var(--ease-out); }
.theme-btn:hover i { transform: translate(2px, -2px) rotate(8deg); }

.theme-btn.btn-ghost {
  background: transparent;
  color: var(--text) !important;
  border-color: var(--border-strong);
}
.theme-btn.btn-ghost:hover {
  background: var(--surface);
  border-color: var(--accent);
}

/* =========================================================================
   SECTION COMMONS
   ========================================================================= */

section { position: relative; padding: 100px 0; }
.innerpage-single-area { padding-top: 160px !important; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 20px;
}
.eyebrow::before {
  content: '';
  width: 6px; height: 6px;
  background: var(--accent);
  border-radius: 50%;
  box-shadow: 0 0 10px var(--accent);
  animation: pulse 1.6s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

.section-title { margin-bottom: 60px; }
/* Neutralise bentos `.section-title p { padding: 0 300px }` for ALL paragraphs */
.section-title p {
  padding: 0 !important;
}
/* Eyebrow — the first <p> (the kicker) */
.section-title > p:first-child,
.section-title > p.section-eyebrow {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 12px;
  max-width: 100%;
}
.section-title h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  margin-bottom: 16px;
  background: linear-gradient(180deg, var(--text-primary) 0%, var(--text-secondary) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
/* Description body copy after the heading */
.section-title > p:not(:first-child),
.section-title .section-desc {
  font-family: var(--font-body);
  font-size: 1.02rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--text-2);
  line-height: 1.65;
  max-width: 720px;
  margin-top: 6px;
}
/* When section-title is centered (via .text-center wrapper or class), center the body copy */
.section-title.text-center > p,
.text-center > .section-title > p,
.section-title.is-centered > p {
  margin-left: auto;
  margin-right: auto;
}

/* =========================================================================
   HERO
   ========================================================================= */

.hero-area {
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding: 160px 0 100px;
  position: relative;
  overflow: hidden;
}
.hero-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(255,255,255,0.03) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255,255,255,0.03) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 40%, #000 0%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 40%, #000 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.hero-inner { position: relative; z-index: 2; }
.hero-eyebrow { margin-bottom: 28px; }
.hero-title {
  font-size: clamp(2.8rem, 8vw, 7rem);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: -0.04em;
  margin-bottom: 28px;
}
.hero-title .accent {
  background: var(--grad-aurora);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  position: relative;
  display: inline-block;
}
.hero-sub {
  font-size: clamp(1.05rem, 1.6vw, 1.35rem);
  color: var(--text-2);
  max-width: 720px;
  margin-bottom: 16px;
  line-height: 1.5;
  font-weight: 400;
}
.hero-tag {
  font-family: var(--font-mono);
  color: var(--text-3);
  font-size: 13px;
  margin-bottom: 36px;
  letter-spacing: 0.04em;
}
.hero-tag span { color: var(--accent); }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 60px; }

.hero-stats {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
}
.hero-stat {
  padding: 18px 18px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  backdrop-filter: blur(10px);
  transition: all var(--dur-base) var(--ease-out);
  position: relative;
  overflow: hidden;
}
.hero-stat::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--grad-aurora);
  opacity: 0;
  transition: opacity var(--dur-base) var(--ease-out);
  z-index: -1;
}
.hero-stat:hover {
  transform: translateY(-4px);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-md);
}
.hero-stat-num {
  font-family: var(--font-display);
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.03em;
  display: block;
  line-height: 1;
}
.hero-stat-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-top: 6px;
  display: block;
}

@media (max-width: 991px) {
  .hero-stats { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 575px) {
  .hero-stats { grid-template-columns: repeat(2, 1fr); }
  .hero-stat-num { font-size: 1.35rem; }
}

/* Marquee badges */
.tech-marquee {
  margin-top: 60px;
  padding: 22px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  overflow: hidden;
  position: relative;
}
.tech-marquee-track {
  display: inline-flex;
  gap: 50px;
  white-space: nowrap;
  animation: marquee 40s linear infinite;
  align-items: center;
}
.tech-marquee:hover .tech-marquee-track { animation-play-state: paused; }
.tech-marquee-item {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 600;
  color: var(--text-3);
  display: inline-flex;
  align-items: center;
  gap: 12px;
  transition: color var(--dur-fast);
}
.tech-marquee-item:hover { color: var(--text); }
.tech-marquee-item::after {
  content: '✦';
  color: var(--accent);
  font-size: 12px;
}
@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* =========================================================================
   STORY / ABOUT
   ========================================================================= */

.story-area { background: var(--bg); }
.story-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 70px;
  align-items: start;
}
.story-portrait {
  position: relative;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: var(--bg-elev);
  border: 1px solid var(--border);
  aspect-ratio: 4/5;
  display: grid;
  place-items: center;
  background-image:
    radial-gradient(circle at 30% 30%, rgba(14, 112, 220, 0.4), transparent 50%),
    radial-gradient(circle at 70% 70%, rgba(79, 140, 255, 0.3), transparent 50%),
    linear-gradient(180deg, var(--bg-elev) 0%, var(--bg-elev-2) 100%);
}
.story-portrait-inner {
  text-align: center;
  padding: 32px;
}
.story-portrait-monogram {
  font-family: var(--font-display);
  font-size: 8rem;
  font-weight: 700;
  background: var(--grad-aurora);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  letter-spacing: -0.05em;
  margin-bottom: 20px;
}
.story-portrait-name {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 4px;
}
.story-portrait-role {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-3);
}
.story-portrait::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: var(--radius-xl);
  padding: 1.5px;
  background: var(--grad-aurora);
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  opacity: 0.5;
}
.story-social {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin-top: 20px;
}
.story-social a {
  width: 40px; height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
  color: var(--text-2);
  transition: all var(--dur-fast) var(--ease-out);
}
.story-social a:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
  transform: translateY(-3px);
}

.story-content p {
  font-size: 1.05rem;
  color: var(--text-2);
  margin-bottom: 18px;
  line-height: 1.75;
}
.story-content p strong { color: var(--text); font-weight: 600; }

@media (max-width: 991px) {
  .story-grid { grid-template-columns: 1fr; gap: 40px; }
  .story-portrait { max-width: 380px; margin: 0 auto; }
}

/* =========================================================================
   COMPANIES + BRANDS GRIDS
   ========================================================================= */

.companies-grid, .brands-grid {
  display: grid;
  gap: 22px;
}
.companies-grid { grid-template-columns: repeat(3, 1fr); }
.brands-grid { grid-template-columns: repeat(3, 1fr); }

.company-card, .brand-card {
  position: relative;
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  transition: all var(--dur-base) var(--ease-out);
  overflow: hidden;
  isolation: isolate;
}
.company-card::before, .brand-card::before {
  content: '';
  position: absolute;
  top: -50%; right: -50%;
  width: 200%; height: 200%;
  background: radial-gradient(circle at 50% 50%, var(--card-glow, var(--accent-glow)), transparent 60%);
  opacity: 0;
  transition: opacity var(--dur-base) var(--ease-out);
  z-index: -1;
}
.company-card:hover, .brand-card:hover {
  transform: translateY(-6px);
  border-color: var(--border-strong);
  background: var(--surface-hover);
}
.company-card:hover::before, .brand-card:hover::before { opacity: 0.5; }

.company-card .badge,
.brand-card .badge {
  display: inline-flex;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  padding: 4px 10px;
  border: 1px solid var(--accent);
  border-radius: 999px;
  margin-bottom: 18px;
  background: rgba(14, 112, 220, 0.05);
}
.company-card h3, .brand-card h3 {
  font-size: 1.4rem;
  margin-bottom: 8px;
  font-weight: 600;
}
.company-card .meta, .brand-card .meta {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 16px;
}
.company-card p, .brand-card p {
  color: var(--text-2);
  font-size: 0.95rem;
  margin-bottom: 18px;
  line-height: 1.65;
}
.company-card ul, .brand-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.company-card ul li, .brand-card ul li {
  padding: 6px 0 6px 22px;
  position: relative;
  color: var(--text-2);
  font-size: 0.9rem;
  border-bottom: 1px dashed var(--border);
}
.company-card ul li:last-child, .brand-card ul li:last-child { border-bottom: 0; }
.company-card ul li::before, .brand-card ul li::before {
  content: '→';
  position: absolute;
  left: 0;
  color: var(--accent);
  font-weight: 600;
}

.brand-card[data-color="orange"] { --card-glow: rgba(14, 112, 220, 0.35); }
.brand-card[data-color="blue"]   { --card-glow: rgba(79, 140, 255, 0.35); }
.brand-card[data-color="violet"] { --card-glow: rgba(185, 103, 255, 0.35); }
.brand-card[data-color="teal"]   { --card-glow: rgba(45, 212, 191, 0.35); }
.brand-card[data-color="orange"] .badge { color: #FF6B2C; border-color: #FF6B2C; background: rgba(14,112,220,0.08); }
.brand-card[data-color="blue"]   .badge { color: #4F8CFF; border-color: #4F8CFF; background: rgba(79,140,255,0.08); }
.brand-card[data-color="violet"] .badge { color: #B967FF; border-color: #B967FF; background: rgba(185,103,255,0.08); }
.brand-card[data-color="teal"]   .badge { color: #2DD4BF; border-color: #2DD4BF; background: rgba(45,212,191,0.08); }

@media (max-width: 991px) {
  .companies-grid, .brands-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 575px) {
  .companies-grid, .brands-grid { grid-template-columns: 1fr; }
}

/* =========================================================================
   STACK / SKILLS COLUMNS
   ========================================================================= */

.stack-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.stack-col {
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  transition: all var(--dur-base) var(--ease-out);
}
.stack-col:hover {
  border-color: var(--border-strong);
  transform: translateY(-3px);
}
.stack-col h4 {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 1rem;
  margin-bottom: 18px;
  color: var(--text);
}
.stack-col h4 i {
  width: 36px; height: 36px;
  display: grid;
  place-items: center;
  background: var(--grad-aurora);
  border-radius: 10px;
  color: #fff;
  font-size: 16px;
}
.stack-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.stack-tag {
  padding: 6px 12px;
  background: var(--bg-elev-2);
  border: 1px solid var(--border);
  border-radius: 8px;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-2);
  transition: all var(--dur-fast) var(--ease-out);
}
.stack-tag:hover {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
  transform: translateY(-2px);
}

@media (max-width: 991px) { .stack-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .stack-grid { grid-template-columns: 1fr; } }

/* =========================================================================
   PARTNERS / LOGO STRIP
   ========================================================================= */

.partners-strip {
  display: grid;
  grid-template-columns: repeat(8, 1fr);
  gap: 16px;
  align-items: center;
}
.partner-pill {
  padding: 18px 12px;
  text-align: center;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 13px;
  color: var(--text-2);
  transition: all var(--dur-base) var(--ease-out);
  letter-spacing: 0.02em;
}
.partner-pill:hover {
  border-color: var(--accent);
  color: var(--text);
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(14, 112, 220, 0.15);
}

@media (max-width: 991px) { .partners-strip { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 575px) { .partners-strip { grid-template-columns: repeat(2, 1fr); } }

/* =========================================================================
   MILESTONES TIMELINE
   ========================================================================= */

.timeline {
  position: relative;
  padding-left: 28px;
}
.timeline::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0; left: 6px;
  width: 1.5px;
  background: linear-gradient(180deg, var(--accent), var(--accent-2), var(--accent-3));
  opacity: 0.4;
}
.timeline-item {
  position: relative;
  padding-bottom: 36px;
  padding-left: 24px;
}
.timeline-item::before {
  content: '';
  position: absolute;
  left: -28px;
  top: 6px;
  width: 13px; height: 13px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 4px var(--bg), 0 0 0 5px var(--accent);
}
.timeline-item:hover::before {
  background: var(--accent-2);
  box-shadow: 0 0 0 4px var(--bg), 0 0 0 5px var(--accent-2);
}
.timeline-year {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
.timeline-item h4 { font-size: 1.05rem; margin-bottom: 6px; color: var(--text); }
.timeline-item p { color: var(--text-2); font-size: 0.92rem; margin: 0; }

/* =========================================================================
   PROJECTS GRID (override of bentos)
   ========================================================================= */

.projects-area .project-filter,
.project-filter.filter-btns-one {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 36px;
  padding: 0;
}
.project-filter li {
  list-style: none;
  padding: 8px 18px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 13px;
  color: var(--text-2);
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease-out);
}
.project-filter li:hover { color: var(--text); border-color: var(--border-strong); }
.project-filter li.current {
  background: var(--text);
  color: var(--bg);
  border-color: var(--text);
}

.project-item.style-two,
.project-item {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--border);
  margin-bottom: 24px;
  transition: all var(--dur-base) var(--ease-out);
}
.project-item:hover {
  transform: translateY(-6px);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-lg);
}
.project-item .project-image {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  background: var(--bg-elev-2);
}
.project-item .project-image img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 800ms var(--ease-out);
}
.project-item:hover .project-image img { transform: scale(1.06); }
.project-item .details-btn {
  position: absolute;
  top: 16px; right: 16px;
  width: 44px; height: 44px;
  display: grid;
  place-items: center;
  background: var(--text);
  color: var(--bg);
  border-radius: 50%;
  font-size: 18px;
  z-index: 5;
  transition: all var(--dur-base) var(--ease-out);
  opacity: 0;
  transform: translate(8px, -8px);
}
.project-item:hover .details-btn {
  opacity: 1;
  transform: translate(0, 0);
}
.project-item .details-btn:hover {
  background: var(--accent);
  color: #fff;
}

.project-item .project-content { padding: 22px 22px 24px; }
.project-item .project-content .sub-title {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 8px;
  display: block;
}
.project-item .project-content h3 {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text);
  margin: 0;
  line-height: 1.3;
}

/* Detailed case-study card variant */
.case-card {
  display: grid;
  grid-template-columns: 1fr;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 28px;
  margin-bottom: 22px;
  transition: all var(--dur-base) var(--ease-out);
}
.case-card:hover {
  border-color: var(--border-strong);
  transform: translateY(-3px);
}
.case-card .case-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
}
.case-card .case-meta span {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
  background: var(--bg-elev-2);
  color: var(--text-2);
}
.case-card .case-meta span.status {
  background: rgba(45, 212, 191, 0.1);
  color: var(--accent-4);
  border: 1px solid rgba(45, 212, 191, 0.3);
}
.case-card h3 { font-size: 1.4rem; margin-bottom: 6px; }
.case-card .case-sub { font-family: var(--font-display); color: var(--text-2); font-weight: 500; font-size: 1rem; margin-bottom: 14px; }
.case-card p { color: var(--text-2); font-size: 0.95rem; margin-bottom: 14px; }
.case-card .case-stack {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px dashed var(--border);
}
.case-card .case-stack .tag {
  padding: 4px 10px;
  background: var(--bg-elev-2);
  border-radius: 6px;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-3);
}

/* =========================================================================
   SERVICES GRID
   ========================================================================= */

.services-area .row { gap: 0; }
.service-item {
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  margin-bottom: 22px;
  height: calc(100% - 22px);
  transition: all var(--dur-base) var(--ease-out);
  position: relative;
  overflow: hidden;
}
.service-item::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--grad-aurora);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur-base) var(--ease-out);
}
.service-item:hover {
  transform: translateY(-4px);
  border-color: var(--border-strong);
  background: var(--surface-hover);
}
.service-item:hover::before { transform: scaleX(1); }

.service-item i {
  display: inline-grid;
  place-items: center;
  width: 56px; height: 56px;
  background: var(--grad-aurora);
  border-radius: 14px;
  color: #fff;
  font-size: 22px;
  margin-bottom: 22px;
  box-shadow: 0 8px 24px rgba(14, 112, 220, 0.25);
  transition: transform var(--dur-base) var(--ease-out);
}
.service-item:hover i { transform: rotate(-6deg) scale(1.05); }
.service-item h4 { font-size: 1.2rem; margin-bottom: 10px; }
.service-item p { color: var(--text-2); font-size: 0.92rem; line-height: 1.6; margin-bottom: 12px; }
.service-item .price-meta {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--accent);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* =========================================================================
   RESUME / EXPERIENCE
   ========================================================================= */

.single-resume { padding: 0; }
.single-resume h2 {
  font-size: 1.5rem;
  margin-bottom: 26px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.single-resume h2::before {
  content: '';
  width: 26px; height: 1px;
  background: var(--accent);
  display: inline-block;
}
.resume-item {
  display: flex;
  gap: 16px;
  padding: 22px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  margin-bottom: 14px;
  transition: all var(--dur-base) var(--ease-out);
}
.resume-item:hover {
  border-color: var(--border-strong);
  background: var(--surface-hover);
  transform: translateX(4px);
}
.resume-item .icon {
  width: 44px; height: 44px;
  display: grid;
  place-items: center;
  background: var(--bg-elev-2);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--accent);
  font-size: 18px;
  flex-shrink: 0;
}
.resume-item .content { flex: 1; }
.resume-item .years {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  display: block;
  margin-bottom: 4px;
}
.resume-item h4 { font-size: 1.05rem; margin-bottom: 4px; color: var(--text); }
.resume-item .company { color: var(--text-3); font-size: 0.85rem; }

/* =========================================================================
   CONTACT
   ========================================================================= */

.contact-area .single-contact {
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  margin-bottom: 14px;
  transition: all var(--dur-base) var(--ease-out);
}
.contact-area .single-contact:hover {
  border-color: var(--border-strong);
  background: var(--surface-hover);
}
.contact-icon {
  width: 44px; height: 44px;
  display: grid;
  place-items: center;
  background: var(--grad-aurora);
  border-radius: 10px;
  color: #fff;
  font-size: 18px;
  margin-bottom: 14px;
  box-shadow: 0 6px 18px rgba(14, 112, 220, 0.25);
}
.single-contact h2 {
  font-size: 11px;
  font-family: var(--font-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 6px;
}
.single-contact p {
  color: var(--text);
  font-size: 1rem;
  font-weight: 500;
  margin: 0;
}

.contact-form {
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
}
.contact-form .form-group {
  margin-bottom: 18px;
  position: relative;
}
.contact-form label {
  display: block;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 8px;
}
.contact-form .form-control,
.contact-form input,
.contact-form textarea {
  width: 100%;
  padding: 14px 18px;
  background: var(--bg-elev-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 14px;
  transition: all var(--dur-fast) var(--ease-out);
}
.contact-form input:focus,
.contact-form textarea:focus {
  border-color: var(--accent);
  background: var(--bg-elev);
  box-shadow: 0 0 0 3px rgba(14, 112, 220, 0.12);
}
.contact-form textarea { min-height: 140px; resize: vertical; }
.contact-form .for-icon { display: none; }
.contact-form .help-block { font-size: 11px; color: #FF6B6B; margin-top: 4px; }

/* Override Bentos hardcoded #F9F9F9 form bg + black text — make theme-aware */
.contact-form-area .form-group .form-control,
.contact-form-area .form-group input,
.contact-form-area .form-group textarea,
.contact-form-area .form-group select,
.contact-form .form-group .form-control,
.contact-form .form-group input,
.contact-form .form-group textarea,
.contact-form .form-group select {
  background: var(--bg-elev-2);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 18px;
  font-size: 14px;
  line-height: 1.4;
}
.contact-form-area .form-group .form-control:focus,
.contact-form-area .form-group input:focus,
.contact-form-area .form-group textarea:focus,
.contact-form .form-group .form-control:focus,
.contact-form .form-group input:focus,
.contact-form .form-group textarea:focus {
  background: var(--bg-elev);
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-glow);
  outline: none;
}
.contact-form-area .form-group .form-control::placeholder,
.contact-form .form-group .form-control::placeholder {
  color: var(--text-3);
  opacity: 1;
}

/* =========================================================================
   CALL TO ACTION
   ========================================================================= */

.call-to-action-area { padding: 80px 0; }
.call-to-action-part {
  max-width: 820px;
  margin: 0 auto;
  padding: 60px 40px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  position: relative;
  overflow: hidden;
}
.call-to-action-part::before {
  content: '';
  position: absolute;
  top: -50%; right: -20%;
  width: 60%; height: 200%;
  background: radial-gradient(circle, var(--accent-glow), transparent 60%);
  pointer-events: none;
}
.call-to-action-part h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin-bottom: 14px;
  position: relative;
}
.call-to-action-part p {
  color: var(--text-2);
  margin-bottom: 28px;
  position: relative;
}
.call-to-action-part .hero-btns { position: relative; }

/* =========================================================================
   FOOTER
   ========================================================================= */

.main-footer {
  background: var(--bg);
  border-top: 1px solid var(--border);
}
.footer-bottom { padding: 30px 0; }
.copyright-text p {
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--text-3);
  margin: 0;
  letter-spacing: 0.04em;
}
.copyright-text a { color: var(--accent); }

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 40px;
  padding: 60px 0 40px;
}
.footer-col h5 {
  font-size: 0.9rem;
  font-family: var(--font-mono);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 16px;
}
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col ul li { margin-bottom: 8px; }
.footer-col ul li a { color: var(--text-2); font-size: 14px; }
.footer-col ul li a:hover { color: var(--accent); }
.footer-brand h4 {
  font-size: 1.5rem;
  margin-bottom: 10px;
  background: var(--grad-aurora);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.footer-brand p { color: var(--text-3); font-size: 0.92rem; max-width: 360px; }

@media (max-width: 768px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

/* =========================================================================
   PROGRESS / SCROLL TOP
   ========================================================================= */

.progress-wrap {
  background: var(--bg-elev-2);
  border: 1px solid var(--border);
}
.progress-wrap::after { color: var(--text); }
.progress-wrap .progress-circle path { stroke: var(--accent); }
.progress-wrap i { color: var(--text); }

/* =========================================================================
   SOUND TOGGLE
   ========================================================================= */

.sound-toggle {
  position: fixed;
  bottom: 30px; left: 30px;
  width: 50px; height: 50px;
  display: grid;
  place-items: center;
  background: rgba(7, 7, 12, 0.7);
  backdrop-filter: blur(12px);
  border: 1px solid var(--border-strong);
  border-radius: 50%;
  color: var(--text);
  cursor: pointer;
  z-index: 998;
  transition: all var(--dur-base) var(--ease-out);
}
.sound-toggle:hover {
  border-color: var(--accent);
  color: var(--accent);
  transform: scale(1.05);
}
.sound-toggle .bars {
  display: inline-flex;
  align-items: flex-end;
  gap: 2px;
  height: 16px;
}
.sound-toggle .bars span {
  display: block;
  width: 2px;
  background: currentColor;
  border-radius: 2px;
  animation: barWave 1.2s ease-in-out infinite;
}
.sound-toggle .bars span:nth-child(1) { height: 60%; animation-delay: 0s; }
.sound-toggle .bars span:nth-child(2) { height: 90%; animation-delay: 0.15s; }
.sound-toggle .bars span:nth-child(3) { height: 50%; animation-delay: 0.3s; }
.sound-toggle .bars span:nth-child(4) { height: 80%; animation-delay: 0.45s; }
.sound-toggle.is-muted .bars span { animation-play-state: paused; opacity: 0.4; }
@keyframes barWave {
  0%, 100% { transform: scaleY(0.4); }
  50% { transform: scaleY(1); }
}

/* =========================================================================
   ENTRY OVERLAY
   ========================================================================= */

.entry-overlay {
  position: fixed;
  inset: 0;
  background: rgba(7, 7, 12, 0.92);
  backdrop-filter: blur(20px);
  display: grid;
  place-items: center;
  z-index: 99997;
  transition: opacity 600ms var(--ease-out), visibility 600ms;
}
.entry-overlay.is-hidden { opacity: 0; visibility: hidden; }
.entry-card {
  text-align: center;
  padding: 40px 60px;
  max-width: 460px;
}
.entry-card h2 {
  font-size: 2.4rem;
  margin-bottom: 12px;
  background: var(--grad-aurora);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.entry-card p { color: var(--text-2); font-size: 1rem; margin-bottom: 28px; }
.entry-card button {
  padding: 14px 36px;
  background: var(--text);
  color: var(--bg);
  border: 0;
  border-radius: 999px;
  font-family: var(--font-display);
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  transition: all var(--dur-base) var(--ease-out);
}
.entry-card button:hover {
  background: var(--accent);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(14, 112, 220, 0.4);
}
.entry-card .skip {
  display: block;
  background: none;
  color: var(--text-3);
  font-size: 12px;
  text-decoration: underline;
  margin-top: 16px;
  padding: 6px;
}
.entry-card .skip:hover { background: none; color: var(--text); transform: none; box-shadow: none; }

/* =========================================================================
   REVEAL ANIMATIONS — gated to html.js so non-JS users never see hidden state
   ========================================================================= */

html.js .is-reveal-pending { opacity: 0; will-change: opacity, transform; }
html.js .is-reveal-pending.reveal-up { transform: translateY(40px); }
html.js .is-reveal-pending.reveal-scale { transform: scale(0.94); }
html.js .is-revealed { opacity: 1 !important; transform: none !important; transition: opacity 800ms cubic-bezier(0.16,1,0.3,1), transform 800ms cubic-bezier(0.16,1,0.3,1); }

/* =========================================================================
   INVESTOR / NOW RAISING SECTION
   ========================================================================= */

.now-raising-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  background: linear-gradient(135deg, rgba(45,212,191,0.15), rgba(79,140,255,0.15));
  border: 1px solid rgba(45, 212, 191, 0.4);
  border-radius: 999px;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent-4);
  margin-bottom: 24px;
  position: relative;
}
.now-raising-badge::before {
  content: '';
  width: 7px; height: 7px;
  background: var(--accent-4);
  border-radius: 50%;
  box-shadow: 0 0 10px var(--accent-4);
  animation: pulse 1.4s ease-in-out infinite;
}

.invest-area { padding: 100px 0; position: relative; }
.invest-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 22px;
}
@media (max-width: 767px) { .invest-grid { grid-template-columns: 1fr; } }

.invest-card {
  position: relative;
  padding: 36px;
  background: var(--surface);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius-xl);
  overflow: hidden;
  isolation: isolate;
  transition: all var(--dur-base) var(--ease-out);
}
.invest-card::before {
  content: '';
  position: absolute;
  top: -60%; left: -10%; width: 120%; height: 200%;
  background: radial-gradient(ellipse at center, var(--card-glow, rgba(45,212,191,0.2)), transparent 60%);
  z-index: -1;
  opacity: 0.5;
  transition: opacity 400ms var(--ease-out);
}
.invest-card:hover { border-color: var(--accent-4); transform: translateY(-4px); }
.invest-card:hover::before { opacity: 1; }
.invest-card[data-stage="seed"] { --card-glow: rgba(14,112,220,0.22); }
.invest-card[data-stage="seed"]:hover { border-color: var(--accent); }
.invest-card[data-stage="series-a"] { --card-glow: rgba(79,140,255,0.22); }
.invest-card[data-stage="series-a"]:hover { border-color: var(--accent-2); }

.invest-card .stage-pill {
  display: inline-flex;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid;
  margin-bottom: 18px;
}
.invest-card[data-stage="seed"] .stage-pill {
  color: var(--accent);
  border-color: var(--accent);
  background: rgba(14,112,220,0.08);
}
.invest-card[data-stage="series-a"] .stage-pill {
  color: var(--accent-2);
  border-color: var(--accent-2);
  background: rgba(79,140,255,0.08);
}

.invest-card h3 {
  font-size: 1.85rem;
  margin-bottom: 6px;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.invest-card .invest-tag {
  font-family: var(--font-display);
  font-size: 0.95rem;
  color: var(--text-2);
  margin-bottom: 18px;
  font-weight: 500;
}
.invest-card .invest-thesis {
  color: var(--text-2);
  font-size: 0.95rem;
  line-height: 1.7;
  margin-bottom: 22px;
}
.invest-card .invest-thesis strong { color: var(--text); }

.invest-traction {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin: 18px 0;
  padding: 18px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.invest-traction .item {
  font-size: 0.85rem;
  color: var(--text-2);
  display: flex;
  gap: 8px;
  align-items: flex-start;
}
.invest-traction .item::before {
  content: '✓';
  color: var(--accent-4);
  font-weight: 700;
  flex-shrink: 0;
}
.invest-traction .item strong { color: var(--text); font-weight: 600; }

.invest-card .invest-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 8px;
}
.invest-card .invest-ask {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-3);
}
.invest-card .invest-ask strong {
  color: var(--text);
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
  font-family: var(--font-display);
  font-weight: 600;
  display: block;
  margin-top: 2px;
}

/* Traction strip — 4-up metrics */
.traction-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin: 30px 0;
}
@media (max-width: 767px) { .traction-strip { grid-template-columns: repeat(2, 1fr); } }
.traction-tile {
  padding: 22px 18px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  text-align: left;
}
.traction-tile .num {
  display: block;
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  background: var(--grad-aurora);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
}
.traction-tile .lab {
  display: block;
  margin-top: 8px;
  font-size: 0.82rem;
  color: var(--text-3);
  line-height: 1.4;
}

/* Investor CTA strip */
.invest-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: center;
  align-items: center;
  margin-top: 30px;
}

/* =========================================================================
   CREDENTIALS / GOVT VALIDATION GRID
   ========================================================================= */

.credentials-area {
  padding: 90px 0;
  position: relative;
}
.credentials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
@media (max-width: 991px) { .credentials-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .credentials-grid { grid-template-columns: 1fr; } }

.cred-tile {
  position: relative;
  padding: 26px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  transition: all var(--dur-base) var(--ease-out);
  overflow: hidden;
  isolation: isolate;
}
.cred-tile::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--grad-aurora);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur-base) var(--ease-out);
}
.cred-tile:hover {
  border-color: var(--border-strong);
  background: var(--surface-hover);
  transform: translateY(-3px);
}
.cred-tile:hover::before { transform: scaleX(1); }

.cred-tile .cred-icon {
  display: inline-grid;
  place-items: center;
  width: 46px; height: 46px;
  background: linear-gradient(135deg, rgba(14,112,220,0.15), rgba(123,91,255,0.15));
  border: 1px solid rgba(14,112,220,0.25);
  border-radius: 12px;
  color: var(--accent);
  font-size: 20px;
  margin-bottom: 16px;
}
.cred-tile h4 {
  font-size: 1.15rem;
  font-weight: 700;
  margin-bottom: 6px;
  letter-spacing: -0.01em;
  background: var(--grad-aurora);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.cred-tile p {
  color: var(--text-2);
  font-size: 0.9rem;
  line-height: 1.55;
  margin: 0;
}

/* Valuation strip on invest cards */
.invest-card .invest-valuation {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.4rem;
  margin-bottom: 8px;
  background: var(--grad-aurora);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: -0.02em;
}
.invest-card .invest-valuation-label {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
  display: block;
  margin-bottom: 4px;
}

/* Combined valuation banner */
.combined-valuation {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 18px;
  background: linear-gradient(135deg, rgba(14,112,220,0.12), rgba(123,91,255,0.12));
  border: 1px solid rgba(14,112,220,0.3);
  border-radius: 999px;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-2);
  margin-bottom: 24px;
}
.combined-valuation strong {
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--accent);
}

/* Trust strip — small inline credentials */
.trust-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: center;
  justify-content: flex-start;
  margin-top: 22px;
}
.trust-item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--text-3);
  padding: 6px 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.trust-item i { color: var(--accent); font-size: 13px; }
.trust-item strong { color: var(--text-2); font-weight: 500; }

/* =========================================================================
   PORTFOLIO GALLERY
   ========================================================================= */

.portfolio-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-bottom: 36px;
}
.portfolio-filter button {
  padding: 8px 18px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 13px;
  color: var(--text-2);
  cursor: pointer;
  transition: all var(--dur-fast) var(--ease-out);
}
.portfolio-filter button:hover { color: var(--text); border-color: var(--border-strong); }
.portfolio-filter button.is-active {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px;
}
.portfolio-item {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--bg-elev);
  border: 1px solid var(--border);
  aspect-ratio: 4/3;
  cursor: pointer;
  transition: all var(--dur-base) var(--ease-out);
}
.portfolio-item:hover {
  transform: translateY(-4px);
  border-color: var(--border-strong);
  box-shadow: var(--shadow-lg);
}
.portfolio-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 800ms var(--ease-out);
}
.portfolio-item:hover img { transform: scale(1.05); }
.portfolio-item .pf-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(7,7,12,0.92) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 20px;
  opacity: 0.9;
  transition: opacity var(--dur-base);
}
.portfolio-item:hover .pf-overlay { opacity: 1; }
.portfolio-item .pf-tag {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
.portfolio-item .pf-title {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 600;
  color: #fff;
  letter-spacing: -0.01em;
  margin: 0;
}
.portfolio-item .pf-meta {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-3);
  margin-top: 4px;
}

/* Bento layout — different column spans */
.portfolio-item.span-3 { grid-column: span 3; }
.portfolio-item.span-4 { grid-column: span 4; }
.portfolio-item.span-5 { grid-column: span 5; }
.portfolio-item.span-6 { grid-column: span 6; }
.portfolio-item.span-7 { grid-column: span 7; }
.portfolio-item.span-8 { grid-column: span 8; }
.portfolio-item.tall { aspect-ratio: 3/4; }
.portfolio-item.wide { aspect-ratio: 16/9; }
.portfolio-item.square { aspect-ratio: 1/1; }

@media (max-width: 991px) {
  .portfolio-grid { grid-template-columns: repeat(6, 1fr); }
  .portfolio-item.span-3,
  .portfolio-item.span-4,
  .portfolio-item.span-5,
  .portfolio-item.span-7,
  .portfolio-item.span-8 { grid-column: span 6; }
  .portfolio-item.span-6 { grid-column: span 6; }
}
@media (max-width: 575px) {
  .portfolio-grid { grid-template-columns: 1fr; }
  .portfolio-item { grid-column: span 1 !important; aspect-ratio: 4/3 !important; }
}

/* =========================================================================
   HERO IMAGE / PORTRAIT BLOCK
   ========================================================================= */

.hero-image-card {
  position: relative;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: var(--bg-elev);
  border: 1px solid var(--border-strong);
  aspect-ratio: 4/5;
  box-shadow: var(--shadow-lg);
}
.hero-image-card img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.hero-image-card::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1.5px;
  background: var(--grad-aurora);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  opacity: 0.45;
}
.hero-image-meta {
  position: absolute;
  bottom: 18px; left: 18px; right: 18px;
  padding: 14px 18px;
  background: rgba(7,7,12,0.65);
  backdrop-filter: blur(14px);
  border: 1px solid var(--border-strong);
  border-radius: 16px;
}
.hero-image-meta strong {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--text);
  margin-bottom: 2px;
}
.hero-image-meta span {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
}

/* =========================================================================
   PRESS / MEDIA STRIP
   ========================================================================= */

.press-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
@media (max-width: 768px) { .press-strip { grid-template-columns: repeat(2, 1fr); } }
.press-tile {
  padding: 22px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  transition: all var(--dur-base) var(--ease-out);
}
.press-tile:hover { border-color: var(--border-strong); transform: translateY(-3px); }
.press-tile .press-source {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  display: block;
  margin-bottom: 8px;
}
.press-tile .press-title {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--text);
  margin: 0 0 8px;
  line-height: 1.4;
}
.press-tile .press-date {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-3);
}

/* =========================================================================
   TEXT ANIMATIONS — words fade-up, shimmer sweep, typewriter
   ========================================================================= */

/* Word-by-word fade-up */
.text-words-reveal .word{
  display:inline-block;
  opacity:0;
  transform:translateY(0.55em) rotateX(20deg);
  transform-origin:50% 100%;
  transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);
  transition-delay:calc(var(--i,0) * 60ms);
  will-change:transform,opacity;
}
.text-words-reveal.is-revealed .word{ opacity:1; transform:translateY(0) rotateX(0); }

/* Shimmer gradient sweep */
.text-shimmer{
  background:linear-gradient(110deg,
    var(--accent) 0%, var(--accent-2) 25%, var(--accent-3) 50%,
    var(--accent-4) 75%, var(--accent) 100%);
  background-size:300% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  animation:shimmerSweep 4s linear infinite;
}
@keyframes shimmerSweep{
  0%{background-position:0% 50%;}
  100%{background-position:300% 50%;}
}

/* Typewriter */
.text-typewriter{
  display:inline-block;
  overflow:hidden;
  white-space:nowrap;
  border-right:2px solid var(--accent-2);
  width:0;
  animation:typeIn 2.4s steps(40,end) .3s forwards,
            caretBlink .8s step-end infinite;
  letter-spacing:0.01em;
}
@keyframes typeIn{ from{width:0;} to{width:100%;} }
@keyframes caretBlink{ 50%{border-color:transparent;} }
.text-typewriter.is-done{ border-right:none; animation:none; width:auto; }

/* =========================================================================
   AMBIENT SVG ANIMATIONS — aurora orbit, pulse rings, scribble
   ========================================================================= */

.aurora-orbit{
  position:absolute;
  width:520px; height:520px;
  pointer-events:none;
  filter:blur(0.4px);
  opacity:.7;
}
.aurora-orbit .ring{ transform-origin:50% 50%; transform-box:fill-box; }
.aurora-orbit .ring-1{ animation:orbitSpin 14s linear infinite; }
.aurora-orbit .ring-2{ animation:orbitSpin 22s linear infinite reverse; }
.aurora-orbit .ring-3{ animation:orbitSpin 30s linear infinite; }
.aurora-orbit .arc{ stroke-dasharray:60 800; animation:arcDrift 8s var(--ease-out) infinite alternate; }
@keyframes orbitSpin{ to{ transform:rotate(360deg); } }
@keyframes arcDrift{ to{ stroke-dashoffset:-200; } }

.pulse-rings{ width:24px; height:24px; pointer-events:none; display:inline-block; vertical-align:middle; margin-right:6px; }
.pulse-rings .ring{
  fill:none;
  stroke:var(--accent-4);
  stroke-width:2;
  transform-origin:60px 60px;
  transform-box:fill-box;
  animation:pulseOut 2.6s var(--ease-out) infinite;
  opacity:0;
}
.pulse-rings .ring:nth-child(2){ animation-delay:.6s; }
.pulse-rings .ring:nth-child(3){ animation-delay:1.2s; }
.pulse-rings .dot{ fill:var(--accent-4); }
@keyframes pulseOut{
  0%  { transform:scale(.2); opacity:0; }
  20% { opacity:.9; }
  100%{ transform:scale(1); opacity:0; }
}

.scribble-wrap{ position:relative; display:inline-block; }
.scribble-wrap svg{
  position:absolute; left:-4%; bottom:-10px;
  width:108%; height:18px; overflow:visible; pointer-events:none;
}
.scribble-wrap svg path{
  fill:none;
  stroke:var(--accent-3);
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-dasharray:300;
  stroke-dashoffset:300;
  transition:stroke-dashoffset 1.4s var(--ease-out) .2s;
}
.scribble-wrap.is-revealed svg path{ stroke-dashoffset:0; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .text-shimmer,.aurora-orbit *,.pulse-rings *,.text-typewriter{ animation:none !important; }
  .text-words-reveal .word{ opacity:1; transform:none; transition:none; }
}

/* =========================================================================
   DATA-VIZ COMPONENTS — skills bars, sector donut, growth sparkline, fluency grid
   ========================================================================= */

.dv-section { padding: 100px 0; }
.dv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
@media (max-width: 991px) { .dv-row { grid-template-columns: 1fr; } }

.dv-eyebrow{font-family:var(--font-mono);font-size:11px;color:var(--accent-2);letter-spacing:.18em;text-transform:uppercase}
.dv-title{font-family:var(--font-display);font-size:1.5rem;color:var(--text);margin:8px 0 6px;letter-spacing:-.02em;font-weight:600}
.dv-sub{color:var(--text-3);font-size:14px;margin-bottom:28px;max-width:46ch}

/* Skills bars */
.dv-skills{padding:36px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);backdrop-filter:blur(14px) saturate(160%);position:relative;overflow:hidden}
.dv-skills__list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.dv-bar{display:grid;grid-template-columns:170px 1fr 44px;align-items:center;gap:18px}
.dv-bar__label{font-family:var(--font-display);font-size:13px;color:var(--text-2);font-weight:500}
.dv-bar__track{position:relative;height:8px;background:rgba(255,255,255,.05);border-radius:999px;overflow:hidden;border:1px solid var(--border)}
.dv-bar__fill{position:absolute;inset:0;width:0;background:linear-gradient(90deg,var(--accent) 0%,var(--accent-2) 60%,var(--accent-3) 100%);border-radius:999px;box-shadow:0 0 18px rgba(14,112,220,.55);transition:width 1400ms cubic-bezier(.16,1,.3,1)}
.dv-bar__fill::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:translateX(-100%)}
.dv-bar__val{font-family:var(--font-mono);font-size:12px;color:var(--accent-2);text-align:right;opacity:0;transform:translateY(4px);transition:all 700ms var(--ease-out) 600ms}
.dv-skills.is-revealed .dv-bar__fill{width:calc(var(--v) * 1%)}
.dv-skills.is-revealed .dv-bar__val{opacity:1;transform:translateY(0)}
.dv-skills.is-revealed .dv-bar__fill::after{animation:dvShine 2.4s ease-out 1.2s 1}
@keyframes dvShine{from{transform:translateX(-100%)}to{transform:translateX(120%)}}
@media(max-width:640px){.dv-bar{grid-template-columns:120px 1fr 36px;gap:12px}}

/* Sector donut */
.dv-donut{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:36px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center}
.dv-donut__chart{aspect-ratio:1;max-width:340px;margin:0 auto;filter:drop-shadow(0 0 36px rgba(14,112,220,.25))}
.dv-seg{stroke:var(--c);stroke-dasharray:0 439.82;stroke-dashoffset:var(--off);transition:stroke-dasharray 1600ms cubic-bezier(.16,1,.3,1)}
.dv-donut.is-revealed .dv-seg{stroke-dasharray:var(--len) 439.82}
.dv-donut.is-revealed .dv-seg:nth-child(2){transition-delay:120ms}
.dv-donut.is-revealed .dv-seg:nth-child(3){transition-delay:240ms}
.dv-donut.is-revealed .dv-seg:nth-child(4){transition-delay:360ms}
.dv-donut.is-revealed .dv-seg:nth-child(5){transition-delay:480ms}
.dv-donut.is-revealed .dv-seg:nth-child(6){transition-delay:600ms}
.dv-donut.is-revealed .dv-seg:nth-child(7){transition-delay:720ms}
.dv-donut.is-revealed .dv-seg:nth-child(8){transition-delay:840ms}
.dv-donut__big{font-family:var(--font-display);font-size:36px;font-weight:700;fill:var(--text);letter-spacing:-.02em}
.dv-donut__sm{font-family:var(--font-display);font-size:11px;fill:var(--text-2);letter-spacing:.12em;text-transform:uppercase}
.dv-donut__xs{font-family:var(--font-mono);font-size:10px;fill:var(--accent-2);letter-spacing:.16em}
.dv-donut__legend{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.dv-donut__legend li{display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:12px;padding:10px 14px;background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:10px;font-family:var(--font-display);font-size:13px;color:var(--text-2);opacity:0;transform:translateX(8px);transition:all 500ms var(--ease-out)}
.dv-donut__legend li i{width:10px;height:10px;border-radius:3px;display:inline-block}
.dv-donut__legend li span{font-family:var(--font-mono);font-size:12px;color:var(--accent-2)}
.dv-donut.is-revealed .dv-donut__legend li{opacity:1;transform:translateX(0)}
.dv-donut.is-revealed .dv-donut__legend li:nth-child(1){transition-delay:900ms}
.dv-donut.is-revealed .dv-donut__legend li:nth-child(2){transition-delay:980ms}
.dv-donut.is-revealed .dv-donut__legend li:nth-child(3){transition-delay:1060ms}
.dv-donut.is-revealed .dv-donut__legend li:nth-child(4){transition-delay:1140ms}
.dv-donut.is-revealed .dv-donut__legend li:nth-child(5){transition-delay:1220ms}
.dv-donut.is-revealed .dv-donut__legend li:nth-child(6){transition-delay:1300ms}
.dv-donut.is-revealed .dv-donut__legend li:nth-child(7){transition-delay:1380ms}
.dv-donut.is-revealed .dv-donut__legend li:nth-child(8){transition-delay:1460ms}
@media(max-width:760px){.dv-donut{grid-template-columns:1fr}}

/* Growth sparkline */
.dv-spark{padding:36px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}
.dv-spark__wrap{position:relative;margin-top:24px}
.dv-spark__svg{display:block;width:100%;height:240px}
.dv-spark__line{stroke-dasharray:1800;stroke-dashoffset:1800;filter:drop-shadow(0 4px 12px rgba(14,112,220,.5))}
.dv-spark__area{opacity:0;transform:translateY(8px)}
.dv-spark.is-revealed .dv-spark__line{animation:sparkDraw 2200ms cubic-bezier(.16,1,.3,1) forwards}
.dv-spark.is-revealed .dv-spark__area{animation:sparkFill 1400ms var(--ease-out) 800ms forwards}
@keyframes sparkDraw{to{stroke-dashoffset:0}}
@keyframes sparkFill{to{opacity:1;transform:translateY(0)}}
.dv-dot{opacity:0;transform-origin:center;transform:scale(0)}
.dv-spark.is-revealed .dv-dot{animation:dotPop 600ms cubic-bezier(.34,1.56,.64,1) forwards;animation-delay:calc(1800ms + var(--d))}
@keyframes dotPop{to{opacity:1;transform:scale(1)}}
.dv-spark__labels{position:absolute;inset:0;pointer-events:none}
.dv-spark__labels span{position:absolute;top:-8px;transform:translateX(-50%);font-family:var(--font-mono);font-size:10px;color:var(--accent-2);letter-spacing:.12em;opacity:0;transition:opacity 500ms var(--ease-out) 2400ms;white-space:nowrap}
.dv-spark__labels span i{display:block;font-family:var(--font-display);font-size:11px;color:var(--text-3);font-style:normal;letter-spacing:0;margin-top:2px}
.dv-spark.is-revealed .dv-spark__labels span{opacity:1}
.dv-spark__axis{display:flex;justify-content:space-between;margin-top:12px;font-family:var(--font-mono);font-size:11px;color:var(--text-3);letter-spacing:.1em;border-top:1px solid var(--border);padding-top:10px}

/* Software fluency grid */
.dv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.dv-cell{padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;transition:transform 400ms var(--ease-out),border-color 400ms var(--ease-out)}
.dv-cell::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--c1),transparent);opacity:.6}
.dv-cell:hover{transform:translateY(-3px);border-color:var(--border-strong)}
.dv-cell header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dv-cell__cat{font-family:var(--font-display);font-size:13px;color:var(--text);font-weight:600;letter-spacing:-.01em}
.dv-cell__badge{font-family:var(--font-mono);font-size:11px;color:var(--c2);background:rgba(14,112,220,.1);border:1px solid rgba(14,112,220,.25);padding:3px 8px;border-radius:999px;letter-spacing:.05em}
.dv-cell__track{display:block;height:6px;background:rgba(255,255,255,.04);border-radius:999px;overflow:hidden;border:1px solid var(--border)}
.dv-cell__fill{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--c1),var(--c2));border-radius:999px;box-shadow:0 0 12px rgba(14,112,220,.45);transition:width 1400ms cubic-bezier(.16,1,.3,1)}
.dv-grid.is-revealed .dv-cell__fill{width:calc(var(--avg) * 1%)}
.dv-grid.is-revealed .dv-cell:nth-child(2) .dv-cell__fill{transition-delay:120ms}
.dv-grid.is-revealed .dv-cell:nth-child(3) .dv-cell__fill{transition-delay:240ms}
.dv-grid.is-revealed .dv-cell:nth-child(4) .dv-cell__fill{transition-delay:360ms}
.dv-cell__tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.dv-cell__tags li{font-family:var(--font-mono);font-size:10.5px;color:var(--text-3);padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:rgba(255,255,255,.02);letter-spacing:.04em;opacity:0;transform:translateY(4px);transition:opacity 400ms var(--ease-out),transform 400ms var(--ease-out),color 200ms,border-color 200ms}
.dv-cell__tags li:hover{color:var(--c2);border-color:var(--c2)}
.dv-grid.is-revealed .dv-cell__tags li{opacity:1;transform:translateY(0)}
.dv-grid.is-revealed .dv-cell__tags li:nth-child(1){transition-delay:600ms}
.dv-grid.is-revealed .dv-cell__tags li:nth-child(2){transition-delay:680ms}
.dv-grid.is-revealed .dv-cell__tags li:nth-child(3){transition-delay:760ms}
.dv-grid.is-revealed .dv-cell__tags li:nth-child(4){transition-delay:840ms}
.dv-grid.is-revealed .dv-cell__tags li:nth-child(5){transition-delay:920ms}
@media(max-width:980px){.dv-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.dv-grid{grid-template-columns:1fr}}

/* =========================================================================
   HELPERS
   ========================================================================= */

.text-accent { color: var(--accent); }
.text-grad { background: var(--grad-aurora); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.divider { height: 1px; background: var(--border); margin: 60px 0; }

.container { max-width: 1240px; }
@media (min-width: 1400px) { .container { max-width: 1280px; } }

/* Utility for tag chips inline */
.chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  padding: 6px 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-2);
  letter-spacing: 0.04em;
}

/* Magnetic button helper */
.magnetic { display: inline-block; transition: transform 200ms var(--ease-out); }

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

/* Lock body scroll + hide floating navbar when mobile nav open */
body.nav-open { overflow: hidden; }
body.nav-open .site-nav {
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -10px);
}

/* Focus styles for keyboard navigation */
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}
.theme-btn:focus-visible {
  outline-offset: 4px;
  outline-color: var(--accent);
}
input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 0;
  border-color: var(--accent) !important;
  box-shadow: 0 0 0 3px rgba(14, 112, 220, 0.18) !important;
}

/* Lock body scroll when mobile nav is open */
body.nav-open { overflow: hidden; }

@media (max-width: 767px) {
  section { padding: 70px 0; }
  .innerpage-single-area { padding-top: 120px !important; }
  .hero-area { min-height: auto; padding: 120px 0 70px; }
}

/* =========================================================================
   STUNNING UI ELEVATIONS — added 2026-05-09
   ========================================================================= */

/* --- 1. CURSOR SPOTLIGHT (hero only) --- */
.cursor-spotlight {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background: radial-gradient(
    600px circle at var(--mx, 50%) var(--my, 50%),
    rgba(1, 120, 220, 0.18) 0%,
    rgba(124, 58, 237, 0.08) 25%,
    transparent 60%
  );
  opacity: 0;
  transition: opacity 600ms var(--ease-out);
  mix-blend-mode: screen;
}
[data-theme="light"] .cursor-spotlight,
:root:not([data-theme="dark"]) .cursor-spotlight {
  background: radial-gradient(
    600px circle at var(--mx, 50%) var(--my, 50%),
    rgba(1, 120, 220, 0.10) 0%,
    rgba(124, 58, 237, 0.05) 25%,
    transparent 60%
  );
  mix-blend-mode: multiply;
}
.cursor-spotlight.is-active { opacity: 1; }
@media (prefers-reduced-motion: reduce), (hover: none) {
  .cursor-spotlight { display: none; }
}

/* --- 2. BENTO VENTURES GRID --- */
.ventures-bento {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  grid-template-rows: auto auto;
  gap: 20px;
  margin-top: 40px;
}
.ventures-bento .bento-card {
  position: relative;
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: transform 400ms var(--ease-out), border-color 250ms var(--ease-out), box-shadow 400ms var(--ease-out);
  transform-style: preserve-3d;
  will-change: transform;
}
.ventures-bento .bento-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--bento-mx, 50%) var(--bento-my, 50%), var(--card-glow, rgba(1,120,220,0.10)), transparent 50%);
  opacity: 0;
  transition: opacity 400ms var(--ease-out);
  pointer-events: none;
}
.ventures-bento .bento-card:hover { border-color: var(--border-strong); box-shadow: var(--shadow-lg); }
.ventures-bento .bento-card:hover::before { opacity: 1; }

.ventures-bento .bento-featured {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
  --card-glow: rgba(1, 120, 220, 0.18);
  background: linear-gradient(155deg, var(--surface) 0%, color-mix(in srgb, var(--accent) 6%, var(--surface)) 100%);
  border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
}
.ventures-bento .bento-featured::after {
  content: '';
  position: absolute;
  top: -120px; right: -120px;
  width: 380px; height: 380px;
  background: radial-gradient(circle, var(--accent-glow), transparent 65%);
  pointer-events: none;
  opacity: 0.55;
}

.ventures-bento .bento-card .bento-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  padding: 6px 12px;
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent) 28%, transparent);
  border-radius: 999px;
  margin-bottom: 18px;
  position: relative;
  z-index: 1;
}
.ventures-bento .bento-tag .live-dot {
  width: 7px; height: 7px;
  background: var(--accent-4);
  border-radius: 50%;
  box-shadow: 0 0 0 0 var(--accent-4);
  animation: bentoPulse 1.8s var(--ease-out) infinite;
}
@keyframes bentoPulse {
  0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent-4) 70%, transparent); }
  70% { box-shadow: 0 0 0 8px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}
.ventures-bento .bento-card[data-tone="cash"] .bento-tag { color: var(--accent-4); background: color-mix(in srgb, var(--accent-4) 10%, transparent); border-color: color-mix(in srgb, var(--accent-4) 28%, transparent); }
.ventures-bento .bento-card[data-tone="ev"] .bento-tag { color: var(--accent-3); background: color-mix(in srgb, var(--accent-3) 10%, transparent); border-color: color-mix(in srgb, var(--accent-3) 28%, transparent); }

.ventures-bento .bento-card h3 {
  font-size: clamp(1.4rem, 2vw, 1.85rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 6px;
  color: var(--text);
  position: relative;
  z-index: 1;
}
.ventures-bento .bento-featured h3 { font-size: clamp(1.8rem, 2.6vw, 2.4rem); }
.ventures-bento .bento-card .bento-role {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--text-3);
  text-transform: uppercase;
  margin-bottom: 14px;
  display: block;
  position: relative;
  z-index: 1;
}
.ventures-bento .bento-card p {
  color: var(--text-2);
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 18px;
  position: relative;
  z-index: 1;
}
.ventures-bento .bento-featured p { font-size: 1rem; }

/* Featured KPI strip */
.bento-kpis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 22px;
  padding-top: 22px;
  border-top: 1px dashed var(--border);
  position: relative;
  z-index: 1;
}
.bento-kpi { display: flex; flex-direction: column; gap: 4px; }
.bento-kpi-num {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.02em;
  line-height: 1;
  background: linear-gradient(135deg, var(--accent), var(--accent-3));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.bento-kpi-lbl {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-3);
}

/* Featured CTAs */
.bento-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
  position: relative;
  z-index: 1;
}
.bento-mini-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  background: var(--accent);
  color: #fff;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: all 200ms var(--ease-out);
}
.bento-mini-cta:hover { background: var(--accent-2); color: #fff; transform: translateY(-1px); box-shadow: 0 8px 24px var(--accent-glow); }
.bento-mini-cta.is-ghost {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border-strong);
}
.bento-mini-cta.is-ghost:hover { background: var(--surface); border-color: var(--accent); color: var(--accent); }

/* Compact list inside small bento cards */
.bento-card .bento-stats-row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 12px;
  position: relative;
  z-index: 1;
}
.bento-card .bento-stat {
  flex: 1 1 auto;
  min-width: 0;
}
.bento-card .bento-stat-num {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.02em;
  display: block;
}
.bento-card .bento-stat-lbl {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-3);
}

@media (max-width: 991px) {
  .ventures-bento { grid-template-columns: 1fr; grid-template-rows: auto; }
  .ventures-bento .bento-featured { grid-column: 1 / -1; grid-row: auto; }
}

/* --- 3. MENTAL MODELS / "HOW I THINK" --- */
.mindset-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 50px;
}
.mindset-card {
  position: relative;
  padding: 28px 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  transition: all 350ms var(--ease-out);
  overflow: hidden;
}
.mindset-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  transform: translateX(-100%);
  transition: transform 600ms var(--ease-out);
}
.mindset-card:hover { transform: translateY(-4px); border-color: var(--border-strong); box-shadow: var(--shadow-md); }
.mindset-card:hover::before { transform: translateX(0); }
.mindset-num {
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-3);
  letter-spacing: 0.14em;
  display: block;
  margin-bottom: 16px;
}
.mindset-icon {
  width: 44px; height: 44px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 12%, transparent), color-mix(in srgb, var(--accent-3) 12%, transparent));
  border: 1px solid color-mix(in srgb, var(--accent) 25%, var(--border));
  border-radius: 12px;
  margin-bottom: 16px;
  font-size: 20px;
  color: var(--accent);
  transition: transform 400ms var(--ease-out);
}
.mindset-card:hover .mindset-icon { transform: scale(1.1) rotate(-4deg); }
.mindset-card h4 {
  font-size: 1.15rem;
  font-weight: 700;
  margin-bottom: 8px;
  letter-spacing: -0.01em;
  color: var(--text);
}
.mindset-card p {
  color: var(--text-2);
  font-size: 0.92rem;
  line-height: 1.55;
  margin: 0;
}
@media (max-width: 991px) { .mindset-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .mindset-grid { grid-template-columns: 1fr; } }

/* --- 4. 3D CARD TILT (applied by JS) --- */
[data-tilt-active] {
  transform: perspective(1000px) rotateX(var(--tx, 0deg)) rotateY(var(--ty, 0deg)) translateY(var(--lift, 0px));
  transition: transform 200ms var(--ease-out);
}
[data-tilt-active]::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(var(--shine-angle, 135deg), transparent 30%, rgba(255,255,255,var(--shine-opacity, 0)) 50%, transparent 70%);
  pointer-events: none;
  transition: opacity 200ms;
}

/* --- 5. PRESS / MEDIA STRIP (rolling marquee) --- */
/* NOTE: uses .credibility-marquee* prefix to avoid collision with .press-strip
   which is already used as a 4-col grid in portfolio.html */
.credibility-marquee {
  position: relative;
  padding: 48px 0;
  margin-top: 60px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent) 2%, transparent), transparent);
  overflow: hidden;
}
.credibility-marquee-label {
  text-align: center;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 28px;
}
.credibility-marquee-track {
  display: flex;
  gap: 60px;
  animation: pressScroll 36s linear infinite;
  width: max-content;
}
.credibility-marquee:hover .credibility-marquee-track { animation-play-state: paused; }
@keyframes pressScroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
.credibility-marquee-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 22px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--text-2);
  white-space: nowrap;
  transition: all 250ms var(--ease-out);
  flex-shrink: 0;
}
.credibility-marquee-item:hover {
  border-color: var(--accent);
  color: var(--accent);
  transform: translateY(-2px);
}
.credibility-marquee-item i[class*="ri-"] { font-size: 16px; color: var(--accent); }

/* --- 6. FLOATING "CURRENTLY BUILDING" PILL --- */
.now-building {
  position: fixed;
  bottom: 22px;
  left: 88px;
  z-index: 50;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px 10px 12px;
  background: color-mix(in srgb, var(--bg-page) 88%, transparent);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  border: 1px solid var(--border-strong);
  border-radius: 999px;
  text-decoration: none;
  color: var(--text);
  font-size: 13px;
  font-family: var(--font-mono);
  box-shadow: 0 12px 36px rgba(0,0,0,0.18);
  transform: translateY(20px);
  opacity: 0;
  transition: all 500ms var(--ease-out);
  max-width: calc(100vw - 44px);
}
.now-building.is-visible { transform: translateY(0); opacity: 1; }
.now-building:hover {
  border-color: var(--accent);
  color: var(--text);
  transform: translateY(-2px);
}
.now-building-pulse {
  position: relative;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--accent-4);
  flex-shrink: 0;
}
.now-building-pulse::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  background: var(--accent-4);
  opacity: 0.4;
  animation: nowPulse 1.6s var(--ease-out) infinite;
}
@keyframes nowPulse {
  0% { transform: scale(0.8); opacity: 0.5; }
  100% { transform: scale(2); opacity: 0; }
}
.now-building-text {
  display: flex;
  flex-direction: column;
  gap: 1px;
  font-size: 11px;
  line-height: 1.3;
}
.now-building-label {
  color: var(--text-3);
  font-size: 9px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.now-building-task {
  color: var(--text);
  font-size: 12px;
  letter-spacing: 0;
  font-family: var(--font-body);
  font-weight: 500;
}
.now-building-close {
  margin-left: 4px;
  background: transparent;
  border: none;
  color: var(--text-3);
  cursor: pointer;
  padding: 4px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  font-size: 14px;
  transition: all 150ms;
}
.now-building-close:hover { color: var(--text); background: var(--surface); }
@media (max-width: 575px) {
  .now-building {
    left: 12px; right: 12px; bottom: 14px;
    max-width: none;
    justify-content: flex-start;
  }
}

/* --- 7. JOURNEY TIMELINE RIBBON --- */
.journey-ribbon {
  position: relative;
  margin-top: 60px;
  padding: 40px 0 0;
}
.journey-track {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0;
  padding: 0 12px;
}
.journey-track::before {
  content: '';
  position: absolute;
  top: 24px;
  left: 12px; right: 12px;
  height: 2px;
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent-3) 50%, var(--accent-4) 100%);
  opacity: 0.35;
  border-radius: 1px;
}
.journey-track::after {
  content: '';
  position: absolute;
  top: 24px;
  left: 12px;
  height: 2px;
  width: var(--journey-progress, 0%);
  background: linear-gradient(90deg, var(--accent) 0%, var(--accent-3) 50%, var(--accent-4) 100%);
  border-radius: 1px;
  box-shadow: 0 0 12px var(--accent-glow);
  transition: width 1500ms var(--ease-out);
}
.journey-node {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  flex: 1;
  z-index: 1;
}
.journey-dot {
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--bg-page);
  border: 2px solid var(--accent);
  margin-top: 17px;
  position: relative;
  transition: all 300ms var(--ease-out);
  z-index: 2;
}
.journey-node:hover .journey-dot {
  transform: scale(1.4);
  background: var(--accent);
  box-shadow: 0 0 0 6px color-mix(in srgb, var(--accent) 18%, transparent);
}
.journey-node.is-milestone .journey-dot {
  width: 18px; height: 18px;
  background: var(--accent);
  margin-top: 15px;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 14%, transparent), 0 0 16px var(--accent-glow);
}
.journey-age {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--text-3);
  text-transform: uppercase;
}
.journey-node.is-milestone .journey-age { color: var(--accent); font-weight: 600; }
.journey-label {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-2);
  text-align: center;
  max-width: 110px;
  line-height: 1.35;
  transition: color 200ms;
}
.journey-node:hover .journey-label,
.journey-node.is-milestone .journey-label { color: var(--text); }
.journey-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 36px;
  padding: 18px 22px;
  border: 1px dashed var(--border);
  border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--surface) 50%, transparent);
}
.journey-meta-row {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.journey-meta-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-3);
}
.journey-meta-value {
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
}
.journey-meta-value strong { color: var(--accent); }
@media (max-width: 991px) {
  .journey-track { flex-direction: column; gap: 12px; padding: 0; }
  .journey-track::before, .journey-track::after { display: none; }
  .journey-node {
    flex-direction: row;
    width: 100%;
    align-items: center;
    gap: 14px;
    padding: 10px 0;
    border-bottom: 1px dashed var(--border);
  }
  .journey-node:last-child { border-bottom: none; }
  .journey-dot { margin-top: 0; flex-shrink: 0; }
  .journey-age { width: 60px; }
  .journey-label { text-align: left; max-width: none; }
}

/* Hide the ambient cursor-spotlight on touch devices */
@media (hover: none) {
  [data-tilt-active] { transform: none !important; }
}
