/* ============================================================
   Cygenix — fluid interaction layer (Apple-style motion & materials)
   Loaded last; refines the template without changing its layout.
   ============================================================ */
:root {
  --spring: linear(0, 0.009, 0.035 2.1%, 0.141 4.4%, 0.723 15.5%, 0.938 20.7%, 1.017 24.3%, 1.043 27.5%, 1.042 31.1%, 1.017 38.9%, 0.996 48.7%, 1.001 70%, 1);
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  --press: 90ms;
  --settle: 420ms;
}

body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -webkit-tap-highlight-color: transparent;
}

/* Large type tracks tighter, like Apple's display sizes */
h1, h2 { letter-spacing: -0.025em; }
h3, h4 { letter-spacing: -0.015em; }

/* ---------- Navbar: translucent material once it floats over content ---------- */
.navbar {
  transition: background-color .3s var(--ease-out), box-shadow .3s var(--ease-out), padding .3s var(--ease-out);
}
.is-sticky .navbar {
  background: rgba(39, 48, 83, .78);
  -webkit-backdrop-filter: blur(20px) saturate(170%);
  backdrop-filter: blur(20px) saturate(170%);
  box-shadow: 0 1px 0 rgba(255,255,255,.06) inset, 0 8px 28px -14px rgba(16,20,35,.45);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .is-sticky .navbar { background: var(--navbar-bg-color); }
}

.navbar-nav .nav-link { transition: color .2s var(--ease-out); }

/* ---------- Buttons: respond on press, spring back on release ---------- */
.custom-btn,
.navbar-nav .nav-link.custom-btn,
.custom-form button[type="submit"] {
  touch-action: manipulation;
  transition:
    transform var(--settle) var(--spring),
    background-color .2s var(--ease-out),
    color .2s var(--ease-out),
    box-shadow .3s var(--ease-out) !important;
}
.custom-btn:hover,
.navbar-nav .nav-link.custom-btn:hover,
.custom-form button[type="submit"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px -12px rgba(13,110,253,.55) !important;
}
.custom-btn:active,
.navbar-nav .nav-link.custom-btn:active,
.custom-form button[type="submit"]:active {
  transform: scale(.97);
  box-shadow: none !important;
  transition-duration: var(--press) !important;
  transition-timing-function: ease-out !important;
}

/* ---------- Tabs & cards: gentle lift, instant press ---------- */
.nav-tabs .nav-link {
  transition: background-color .2s var(--ease-out), transform var(--settle) var(--spring) !important;
}
.nav-tabs .nav-link:active { transform: scale(.985); transition-duration: var(--press) !important; }

.speakers-info,
.schedule-image,
.venue-thumb {
  transition: transform var(--settle) var(--spring), box-shadow .35s var(--ease-out);
}
@media (hover: hover) {
  .speakers-info:hover,
  .venue-thumb:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 36px -22px rgba(16,20,35,.35) !important;
  }
}

/* ---------- Mobile menu: grow from the navbar instead of a plain slide ---------- */
@media (max-width: 991px) {
  .navbar-collapse.show,
  .navbar-collapse.collapsing {
    transform-origin: top center;
  }
  .navbar-collapse.show { animation: menu-in var(--settle) var(--spring) both; }
  @keyframes menu-in {
    from { opacity: 0; transform: translateY(-6px) scale(.985); }
    to   { opacity: 1; transform: none; }
  }
}

/* ---------- Accessibility ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation: none !important;
    transition-property: opacity, color, background-color, border-color !important;
    transition-duration: 160ms !important;
  }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  .is-sticky .navbar { background: var(--navbar-bg-color); -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* ============================================================
   Round 2 — brand refinement (2026-10-08)
   ============================================================ */
:root {
  --cx-navy: #1F2747;
  --cx-accent: #0A9BBE;      /* deeper, calmer cyan than the template's #0dcaf0 */
  --primary-color: var(--cx-accent);
  --secondary-color: var(--cx-navy);
}

/* Template's underlined cyan "highlight word" → quiet accent, no underline */
u.text-info { text-decoration: none; color: inherit !important; }
h2 { letter-spacing: -0.03em; }
.about h2, .speakers h2, #section_process h2, #section_partners h2, #section_customers h2, .schedule h2 {
  font-size: clamp(30px, 3.6vw, 44px);
}

/* ---------- Hero: left-aligned statement over a deeper, calmer overlay ---------- */
.hero { height: auto; min-height: min(86vh, 760px); display: flex; align-items: flex-end; }
.hero > .container { position: relative; z-index: 2; width: 100%; padding-bottom: clamp(56px, 9vh, 110px); }
section.hero#section_1::after {
  background:
    linear-gradient(90deg, rgba(20,26,50,.94) 0%, rgba(20,26,50,.78) 45%, rgba(20,26,50,.42) 100%),
    linear-gradient(180deg, rgba(20,26,50,.2) 0%, rgba(20,26,50,0) 40%, rgba(20,26,50,.85) 100%) !important;
  z-index: 1;
}
.cx-hero { position: static; transform: none; text-align: left; max-width: 760px; }
.cx-eyebrow {
  font-family: var(--font-mono, 'IBM Plex Mono', monospace);
  font-size: 12px; letter-spacing: .16em; text-transform: uppercase;
  color: #7FD6EA; margin: 0 0 18px; display: flex; align-items: center; gap: 12px;
}
.cx-eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--cx-accent); }
.hero .cx-hero h1 {
  text-transform: none; text-shadow: none;
  font-size: clamp(38px, 5.4vw, 68px); line-height: 1.02; letter-spacing: -0.035em;
  font-weight: 700; margin: 0 0 20px; text-wrap: balance;
}
.cx-lede { color: rgba(255,255,255,.78); font-size: clamp(16px, 1.4vw, 19px); line-height: 1.6; max-width: 56ch; margin: 0 0 30px; }
.cx-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.cx-actions .custom-btn { background: var(--cx-accent); color: #fff; padding: 14px 24px; }
.cx-actions .custom-btn:hover { background: #0B87A6; color: #fff; }
.cx-actions .cx-btn-ghost { background: transparent; border: 1px solid rgba(255,255,255,.45); }
.cx-actions .cx-btn-ghost:hover { background: #fff; color: var(--cx-navy); border-color: #fff; }

/* Buttons sitewide: navy primary, accent on hover */
.custom-btn { background: var(--cx-navy); }
.custom-btn:hover { background: var(--cx-accent); }
.custom-border-btn { border-width: 1px; }

@media (max-width: 767px) {
  .hero { min-height: 78vh; }
  section.hero#section_1::after { background: linear-gradient(180deg, rgba(20,26,50,.6) 0%, rgba(20,26,50,.94) 70%) !important; }
}
