/* site.css — Shared design system for Your Handy AI Guide */
/* Links to Google Fonts must be added per-page in <head> */

/* ====== Design Tokens ====== */
:root {
  --base:         #000000;
  --base-deep:    #000000;
  --base-warm:    #050505;
  --surface-1:    #0A0A0A;
  --surface-2:    #111111;
  --surface-3:    #181818;
  --ink-1:        #FFFFFF;
  --ink-2:        #EAEAEA;
  --ink-3:        #9C9C9C;
  --ink-4:        #8A8A8A;
  --rule:         rgba(255,255,255,0.10);
  --rule-strong:  rgba(255,255,255,0.18);
  --rule-soft:    rgba(255,255,255,0.06);
  --royal:        #1E6FE8;
  --royal-deep:   #1957C2;
  --royal-light:  #4189F0;
  --halo:         #5DA8FF;
  --halo-soft:    #7DBBFF;
  --halo-bright:  #A6D0FF;

  --serif: 'Fraunces', 'Times New Roman', serif;
  --sans:  'Geist', system-ui, -apple-system, sans-serif;
  --mono:  'JetBrains Mono', ui-monospace, monospace;

  --max:       1360px;
  --max-tight: 1040px;
  --max-prose: 680px;

  --ease-out:  cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* ====== Reset ====== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
body {
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.55;
  color: var(--ink-2);
  background: var(--base);
  font-feature-settings: 'ss01', 'cv01', 'cv02';
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

/* ====== Scroll Progress ====== */
.scroll-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--royal), var(--halo));
  z-index: 300;
  width: 0%;
  transition: width 80ms linear;
  box-shadow: 0 0 14px rgba(93,168,255,0.7);
}

/* ====== Typography ====== */
.eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--halo-soft);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.eyebrow .num { color: var(--halo); font-weight: 600; }
.eyebrow .pulse-dot {
  width: 6px; height: 6px;
  background: var(--halo);
  border-radius: 50%;
  position: relative;
  box-shadow: 0 0 8px var(--halo);
}
.eyebrow .pulse-dot::after {
  content: '';
  position: absolute; inset: -4px;
  border-radius: 50%;
  background: var(--halo);
  opacity: 0.4;
  animation: pulse 2s ease-out infinite;
}
@keyframes pulse {
  0% { transform: scale(0.8); opacity: 0.5; }
  100% { transform: scale(2.4); opacity: 0; }
}

h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.02;
  color: var(--ink-1);
  font-variation-settings: 'opsz' 36, 'SOFT' 0;
}
h1 { font-size: clamp(56px, 8vw, 120px); letter-spacing: -0.045em; }
h2 { font-size: clamp(40px, 5.6vw, 80px); letter-spacing: -0.035em; }
h3 { font-size: clamp(24px, 2.4vw, 34px); letter-spacing: -0.02em; line-height: 1.12; }
h4 { font-size: clamp(18px, 1.4vw, 22px); letter-spacing: -0.01em; line-height: 1.22; }

.lede {
  font-family: var(--serif);
  font-size: clamp(20px, 1.7vw, 26px);
  line-height: 1.4;
  color: var(--ink-2);
  font-weight: 600;
  font-variation-settings: 'opsz' 36;
  max-width: 40ch;
}
.body-l { font-size: 19px; line-height: 1.55; color: var(--ink-3); }
.body   { color: var(--ink-3); }
.micro  { font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-4); }

.italic-serif { font-style: italic; font-variation-settings: 'opsz' 144, 'SOFT' 100; }
.brand-emph {
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
  text-shadow: 0 0 24px rgba(93,168,255,0.35);
}

/* ====== Wordmark ====== */
.wordmark {
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: -0.02em;
  font-size: 22px;
  line-height: 1;
  color: var(--ink-1);
}
.wordmark .accent {
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
}

/* ====== Layout ====== */
.shell       { max-width: var(--max);        margin: 0 auto; padding: 0 40px; position: relative; z-index: 2; }
.shell-tight { max-width: var(--max-tight);  margin: 0 auto; padding: 0 40px; position: relative; z-index: 2; }
.shell-prose { max-width: var(--max-prose);  margin: 0 auto; padding: 0 40px; position: relative; z-index: 2; }

section           { padding: 120px 0; position: relative; }
section.compact   { padding: 80px 0; }
section.tight     { padding: 56px 0; }
section.hero-pad  { padding-top: 180px; }

/* ====== Buttons ====== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 44px;
  padding: 0 22px;
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.005em;
  cursor: pointer;
  transition: transform 280ms var(--ease-soft), background 220ms ease, color 220ms ease, box-shadow 280ms ease, border-color 220ms ease;
  border: 1px solid transparent;
  white-space: nowrap;
  position: relative;
  isolation: isolate;
}
.btn-primary {
  background: var(--royal);
  color: var(--ink-1);
  box-shadow: 0 1px 0 0 rgba(255,255,255,0.12) inset, 0 6px 24px rgba(30,111,232,0.32), 0 0 0 1px rgba(93,168,255,0.18);
}
.btn-primary::before {
  content: '';
  position: absolute; inset: -2px;
  border-radius: 999px;
  background: linear-gradient(120deg, var(--halo), var(--royal-light), var(--halo));
  background-size: 200% 200%;
  z-index: -1; opacity: 0;
  transition: opacity 320ms ease;
  filter: blur(8px);
  animation: shift 4s linear infinite;
}
.btn-primary:hover::before { opacity: 1; }
@keyframes shift {
  0%   { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}
.btn-primary:hover {
  background: var(--royal-light);
  transform: translateY(-1px);
  box-shadow: 0 1px 0 0 rgba(255,255,255,0.16) inset, 0 12px 40px rgba(30,111,232,0.50);
}
.btn-ghost {
  background: transparent;
  color: var(--ink-1);
  border-color: var(--rule-strong);
}
.btn-ghost:hover {
  border-color: var(--halo);
  background: rgba(93,168,255,0.06);
  transform: translateY(-1px);
  color: var(--halo-bright);
}
.btn-large { height: 54px; padding: 0 28px; font-size: 15px; }
.btn-arrow > .arr { display: inline-block; transition: transform 280ms var(--ease-out); }
.btn:hover .arr { transform: translateX(4px); }

/* ====== Nav ====== */
.nav-wrap {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  transition: background 320ms ease, backdrop-filter 320ms ease, border-color 320ms ease;
  border-bottom: 1px solid transparent;
}
.nav-wrap.scrolled {
  background: rgba(10, 14, 31, 0.72);
  backdrop-filter: saturate(160%) blur(22px);
  -webkit-backdrop-filter: saturate(160%) blur(22px);
  border-bottom-color: var(--rule);
}
.nav {
  max-width: var(--max);
  margin: 0 auto;
  padding: 18px 40px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 48px;
}
.nav-links {
  display: flex;
  gap: 36px;
  font-size: 14px;
  color: var(--ink-3);
  justify-content: center;
}
.nav-links a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 220ms ease;
}
.nav-links a:hover { color: var(--ink-1); }
.nav-links a::after {
  content: '';
  position: absolute;
  bottom: -7px; left: 0;
  width: 0; height: 1px;
  background: var(--halo);
  box-shadow: 0 0 8px var(--halo);
  transition: width 280ms var(--ease-out);
}
.nav-links a:hover::after { width: 100%; }
.nav-cta { display: flex; gap: 12px; align-items: center; }

/* ====== Nav Dropdowns ====== */
.nav-dropdown { position: relative; }
.nav-dropdown-trigger {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 400;
  color: var(--ink-3);
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px 0;
  transition: color 220ms ease;
}
.nav-dropdown-trigger:hover { color: var(--ink-1); }
.nav-dropdown-trigger .caret {
  font-size: 9px;
  opacity: 0.5;
  transition: transform 220ms ease;
}
.nav-dropdown.open .nav-dropdown-trigger { color: var(--ink-1); }
.nav-dropdown.open .caret { transform: rotate(180deg); opacity: 0.8; }

.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 16px);
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  min-width: 240px;
  background: rgba(10, 14, 31, 0.95);
  backdrop-filter: saturate(140%) blur(24px);
  -webkit-backdrop-filter: saturate(140%) blur(24px);
  border: 1px solid var(--rule-strong);
  border-radius: 14px;
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease, transform 200ms var(--ease-out);
  box-shadow: 0 24px 80px rgba(0,0,0,0.5), 0 0 0 1px rgba(93,168,255,0.06);
}
.nav-dropdown-menu::before {
  content: '';
  position: absolute;
  top: -5px; left: 50%;
  transform: translateX(-50%);
  width: 10px; height: 10px;
  background: rgba(10,14,31,0.95);
  border-top: 1px solid var(--rule-strong);
  border-left: 1px solid var(--rule-strong);
  rotate: 45deg;
  clip-path: polygon(0 0, 100% 0, 0 100%);
}
.nav-dropdown.open .nav-dropdown-menu {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown-menu a {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  transition: background 180ms ease, color 180ms ease;
}
.nav-dropdown-menu a::after { display: none; }
.nav-dropdown-menu a:hover {
  background: rgba(93,168,255,0.08);
  color: var(--ink-1);
}
.dd-text { display: flex; flex-direction: column; gap: 2px; }
.dd-text strong { font-size: 13px; font-weight: 500; color: var(--ink-2); display: block; }
.dd-text em     { font-size: 11px; font-style: normal; color: var(--ink-4); display: block; }
.nav-dropdown-menu a:hover .dd-text strong { color: var(--ink-1); }

/* ====== Nav Mobile Toggle (hamburger) ====== */
.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 32px; height: 32px;
  background: none; border: none; cursor: pointer; padding: 0; flex-shrink: 0;
}
.nav-toggle span {
  display: block; width: 100%; height: 2px;
  background: var(--ink-1);
  border-radius: 2px;
  transition: transform 220ms ease, opacity 220ms ease;
}
.nav-wrap.mobile-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-wrap.mobile-open .nav-toggle span:nth-child(2) { opacity: 0; }
.nav-wrap.mobile-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 900px) {
  .nav-toggle { display: flex; }

  .nav-wrap.mobile-open .nav-links.desktop-only {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: rgba(10, 14, 31, 0.97);
    backdrop-filter: saturate(140%) blur(24px);
    -webkit-backdrop-filter: saturate(140%) blur(24px);
    border-bottom: 1px solid var(--rule-strong);
    padding: 12px 24px 24px;
    max-height: calc(100vh - 64px);
    overflow-y: auto;
  }
  .nav-wrap.mobile-open .nav-links.desktop-only > a {
    width: 100%; padding: 13px 0; font-size: 15px;
    border-bottom: 1px solid var(--rule-soft);
  }
  .nav-wrap.mobile-open .nav-dropdown { width: 100%; }
  .nav-wrap.mobile-open .nav-dropdown-trigger {
    width: 100%; justify-content: space-between;
    padding: 13px 0; font-size: 15px;
    border-bottom: 1px solid var(--rule-soft);
  }
  .nav-wrap.mobile-open .nav-dropdown-menu { display: none; }
  .nav-wrap.mobile-open .nav-dropdown.open .nav-dropdown-menu {
    display: flex;
    position: static;
    transform: none;
    min-width: 0; width: 100%;
    background: transparent;
    backdrop-filter: none; -webkit-backdrop-filter: none;
    border: none; box-shadow: none;
    opacity: 1; pointer-events: auto;
    padding: 4px 0 8px 16px;
  }
  .nav-wrap.mobile-open .nav-dropdown-menu::before { display: none; }
}

/* ====== Reveal Animations ====== */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 700ms var(--ease-out), transform 700ms var(--ease-out);
}
.reveal.in { opacity: 1; transform: none; }
.reveal[data-delay="1"] { transition-delay: 80ms; }
.reveal[data-delay="2"] { transition-delay: 160ms; }
.reveal[data-delay="3"] { transition-delay: 240ms; }
.reveal[data-delay="4"] { transition-delay: 320ms; }

@keyframes fade-up {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes rise { to { transform: translateY(0); } }

/* ====== Page Hero (shared across inner pages) ====== */
.page-hero {
  padding-top: 180px;
  padding-bottom: 100px;
  position: relative;
  overflow: hidden;
  text-align: center;
}
.page-hero-mesh {
  position: absolute;
  inset: 0; z-index: 0;
  pointer-events: none;
}
.page-hero-mesh .blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
}
.page-hero-mesh .blob-1 {
  width: 700px; height: 700px;
  top: -200px; left: 50%;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(93,168,255,0.4), transparent 65%);
}
.page-hero-inner { position: relative; z-index: 2; }
.page-hero h1 {
  font-size: clamp(48px, 7vw, 100px);
  margin-top: 24px;
  animation: fade-up 900ms var(--ease-out) 100ms both;
}
.page-hero .page-hero-sub {
  margin-top: 24px;
  font-family: var(--serif);
  font-size: clamp(18px, 1.6vw, 24px);
  color: var(--ink-3);
  font-weight: 400;
  font-variation-settings: 'opsz' 36;
  max-width: 48ch;
  margin-left: auto;
  margin-right: auto;
  animation: fade-up 900ms var(--ease-out) 220ms both;
}
.page-hero .page-hero-ctas {
  margin-top: 40px;
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
  animation: fade-up 900ms var(--ease-out) 360ms both;
}

/* ====== Grid helpers ====== */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }

/* ====== Card ====== */
.card {
  background: var(--surface-1);
  border: 1px solid var(--rule);
  border-radius: 16px;
  padding: 28px;
  transition: border-color 260ms ease, transform 260ms var(--ease-soft), box-shadow 260ms ease;
}
.card:hover {
  border-color: rgba(93,168,255,0.28);
  transform: translateY(-2px);
  box-shadow: 0 16px 56px rgba(0,0,0,0.3), 0 0 0 1px rgba(93,168,255,0.1);
}
.card-icon {
  width: 44px; height: 44px;
  border-radius: 10px;
  background: rgba(93,168,255,0.1);
  border: 1px solid rgba(93,168,255,0.18);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
  font-size: 20px;
}
.card h4 { margin-bottom: 8px; }
.card p  { font-size: 16px; color: var(--ink-3); line-height: 1.5; }

/* Card title weight: redundant with the shared h1-h4 rule above as of 2026-07-21
   (that rule now uses the same weight 700 / opsz 36 sitewide, per Dylan's direct
   request that every heading read bold, not just card titles). Left in place
   as an explicit, harmless override so this selector list stays a stable anchor
   for anyone extending it. */
.card h4, .channel-card h4, .guide-card h4, .prompt-card h4, .featured-body h3, .uc-card h4, .topic-card h4, .course-card h3, .inside-card h4, .resource-card h4 {
  font-weight: 700;
  font-variation-settings: 'opsz' 36;
  letter-spacing: -0.01em;
}

/* ====== Tag / Pill ====== */
.tag {
  display: inline-block;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(93,168,255,0.1);
  color: var(--halo-soft);
  border: 1px solid rgba(93,168,255,0.18);
}

/* ====== Divider ====== */
.rule-line {
  height: 1px;
  background: var(--rule);
  margin: 0;
}

/* ====== Section head (reusable pattern) ====== */
.section-head {
  text-align: center;
  max-width: 680px;
  margin: 0 auto 64px;
}
.section-head h2 { margin-top: 20px; }
.section-head p  { margin-top: 20px; font-family: var(--serif); font-size: clamp(18px, 1.5vw, 22px); color: var(--ink-3); font-weight: 400; font-variation-settings: 'opsz' 36; }

/* ====== Newsletter inline form ====== */
.newsletter-form {
  display: flex;
  gap: 10px;
  max-width: 440px;
  margin-top: 32px;
}
.newsletter-form input[type="email"] {
  flex: 1;
  height: 44px;
  padding: 0 16px;
  background: var(--surface-2);
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 14px;
  color: var(--ink-1);
  outline: none;
  transition: border-color 220ms ease;
}
.newsletter-form input[type="email"]:focus { border-color: var(--halo); }
.newsletter-form input[type="email"]::placeholder { color: var(--ink-4); }

/* ====== Social icons ====== */
.social-icons {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 32px;
}
.social-icon {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border: 1px solid var(--rule);
  border-radius: 999px;
  font-size: 13px;
  color: var(--ink-3);
  transition: border-color 220ms ease, color 220ms ease, background 220ms ease;
}
.social-icon:hover {
  border-color: rgba(93,168,255,0.4);
  color: var(--ink-1);
  background: rgba(93,168,255,0.06);
}

/* ====== Footer ====== */
.footer {
  border-top: 1px solid var(--rule);
  padding: 80px 0 48px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 64px;
}
.footer-brand { display: flex; flex-direction: column; gap: 16px; }
.footer-brand .body { font-size: 14px; line-height: 1.6; max-width: 28ch; }
.footer-newsletter { display: flex; gap: 8px; margin-top: 4px; }
.footer-newsletter input[type="email"] {
  flex: 1;
  height: 38px;
  padding: 0 14px;
  background: var(--surface-2);
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 13px;
  color: var(--ink-1);
  outline: none;
  transition: border-color 220ms ease;
}
.footer-newsletter input:focus { border-color: var(--halo); }
.footer-newsletter input::placeholder { color: var(--ink-4); }
.footer-newsletter .btn { height: 38px; font-size: 13px; }

.footer-col { display: flex; flex-direction: column; gap: 16px; }
.footer-col h5 {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-4);
}
.footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.footer-col a { font-size: 14px; color: var(--ink-3); transition: color 200ms ease; }
.footer-col a:hover { color: var(--ink-1); }

.footer-base {
  padding-top: 32px;
  border-top: 1px solid var(--rule-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
  color: var(--ink-4);
}
.footer-base .social-row { display: flex; gap: 24px; }
.footer-base a { color: var(--ink-4); transition: color 200ms ease; }
.footer-base a:hover { color: var(--ink-1); }

/* ====== Mobile ====== */
.mobile-only { display: none; }
.desktop-only { display: flex; }

@media (max-width: 900px) {
  .shell, .shell-tight, .shell-prose { padding: 0 24px; }
  .nav { padding: 16px 24px; gap: 24px; }
  .nav-links.desktop-only { display: none; }
  .desktop-only { display: none; }
  .mobile-only { display: flex; }

  section { padding: 80px 0; }
  section.hero-pad { padding-top: 120px; }

  .grid-2 { grid-template-columns: 1fr; }
  .grid-3 { grid-template-columns: 1fr 1fr; }
  .grid-4 { grid-template-columns: 1fr 1fr; }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-base { flex-direction: column; gap: 16px; text-align: center; }

  .page-hero { padding-top: 130px; padding-bottom: 64px; }
}

@media (max-width: 600px) {
  .grid-3, .grid-4 { grid-template-columns: 1fr; }
  h2 { font-size: clamp(34px, 9vw, 52px); }
  .newsletter-form { flex-direction: column; }
  .social-icons { gap: 10px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
}


/* Homepage inline stylesheet consolidated 2026-08-14 */

:root {
  --base:         #000000;
  --base-deep:    #000000;
  --base-warm:    #050505;
  --surface-1:    #0A0A0A;
  --surface-2:    #111111;
  --surface-3:    #181818;
  --ink-1:        #FFFFFF;
  --ink-2:        #EAEAEA;
  --ink-3:        #9C9C9C;
  --ink-4:        #8A8A8A;
  --rule:         rgba(255,255,255,0.10);
  --rule-strong:  rgba(255,255,255,0.18);
  --rule-soft:    rgba(255,255,255,0.06);
  --royal:        #1E6FE8;
  --royal-deep:   #1957C2;
  --royal-light:  #4189F0;
  --halo:         #5DA8FF;
  --halo-soft:    #7DBBFF;
  --halo-bright:  #A6D0FF;

  --serif: 'Fraunces', 'Times New Roman', serif;
  --sans:  'Geist', system-ui, -apple-system, sans-serif;
  --mono:  'JetBrains Mono', ui-monospace, monospace;

  --max:    1360px;
  --max-tight: 1040px;
  --max-prose: 680px;

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft: cubic-bezier(0.2, 0.7, 0.2, 1);
}

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

html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

body {
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.55;
  color: var(--ink-2);
  background: var(--base);
  font-feature-settings: 'ss01', 'cv01', 'cv02';
  overflow-x: hidden;
  position: relative;
}

/* Grain + ambient glow removed, keeping the surface clean */

/* ====== Scroll Progress ====== */
.scroll-progress {
  position: fixed;
  top: 0; left: 0;
  height: 2px;
  background: linear-gradient(90deg, var(--royal), var(--halo));
  z-index: 300;
  width: 0%;
  transition: width 80ms linear;
  box-shadow: 0 0 14px rgba(93,168,255,0.7);
}

/* Cursor spotlight removed */
.cursor-light { display: none; }

/* ====== Typography ====== */
.eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--halo-soft);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.eyebrow .num {
  color: var(--halo);
  font-weight: 600;
}
.eyebrow .pulse-dot {
  width: 6px; height: 6px;
  background: var(--halo);
  border-radius: 50%;
  position: relative;
  box-shadow: 0 0 8px var(--halo);
}
.eyebrow .pulse-dot::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  background: var(--halo);
  opacity: 0.4;
  animation: pulse 2s ease-out infinite;
}
@keyframes pulse {
  0% { transform: scale(0.8); opacity: 0.5; }
  100% { transform: scale(2.4); opacity: 0; }
}

h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.02;
  color: var(--ink-1);
  font-variation-settings: 'opsz' 144, 'SOFT' 0;
}
h1 { font-size: clamp(64px, 10vw, 144px); letter-spacing: -0.045em; }
h2 { font-size: clamp(44px, 6.2vw, 88px); letter-spacing: -0.035em; }
h3 { font-size: clamp(26px, 2.6vw, 36px); letter-spacing: -0.02em; line-height: 1.12; }
h4 { font-size: clamp(20px, 1.5vw, 24px); letter-spacing: -0.01em; line-height: 1.22; }

/* ====== Card Titles, heavier weight than hero headlines (scoped override) ====== */
.path-card h3, .blog-card h4, .guide-card h4 {
  font-weight: 700;
  font-variation-settings: 'opsz' 36;
  letter-spacing: -0.01em;
}

.lede {
  font-family: var(--serif);
  font-size: clamp(22px, 1.8vw, 28px);
  line-height: 1.4;
  color: var(--ink-2);
  font-weight: 600;
  font-variation-settings: 'opsz' 36;
  max-width: 38ch;
}
.body-l { font-size: 19px; line-height: 1.55; color: var(--ink-3); }
.body { color: var(--ink-3); }
.micro {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-4);
}

.italic-serif {
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
}
.brand-emph {
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
  position: relative;
  display: inline-block;
  text-shadow: 0 0 24px rgba(93,168,255,0.35);
}

a { color: inherit; text-decoration: none; }

/* ====== Wordmark ====== */
.wordmark {
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: -0.02em;
  font-size: 22px;
  line-height: 1;
  color: var(--ink-1);
}
.wordmark .accent {
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
}

/* ====== Layout ====== */
.shell { max-width: var(--max); margin: 0 auto; padding: 0 40px; position: relative; z-index: 2; }
.shell-tight { max-width: var(--max-tight); margin: 0 auto; padding: 0 40px; position: relative; z-index: 2; }
.shell-prose { max-width: var(--max-prose); margin: 0 auto; padding: 0 40px; position: relative; z-index: 2; }

section { padding: 140px 0; position: relative; }
section.compact { padding: 80px 0; }
section.tight { padding: 56px 0; }

/* ====== Buttons ====== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 44px;
  padding: 0 22px;
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.005em;
  cursor: pointer;
  transition: transform 280ms var(--ease-soft), background 220ms ease, color 220ms ease, box-shadow 280ms ease, border-color 220ms ease;
  border: 1px solid transparent;
  white-space: nowrap;
  position: relative;
  isolation: isolate;
}
.btn-primary {
  background: var(--royal);
  color: var(--ink-1);
  box-shadow: 0 1px 0 0 rgba(255,255,255,0.12) inset, 0 6px 24px rgba(30,111,232,0.32), 0 0 0 1px rgba(93,168,255,0.18);
}
.btn-primary::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 999px;
  background: linear-gradient(120deg, var(--halo), var(--royal-light), var(--halo));
  background-size: 200% 200%;
  z-index: -1;
  opacity: 0;
  transition: opacity 320ms ease;
  filter: blur(8px);
  animation: shift 4s linear infinite;
}
.btn-primary:hover::before { opacity: 1; }
@keyframes shift {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}
.btn-primary:hover {
  background: var(--royal-light);
  transform: translateY(-1px);
  box-shadow: 0 1px 0 0 rgba(255,255,255,0.16) inset, 0 12px 40px rgba(30,111,232,0.50);
}
.btn-ghost {
  background: transparent;
  color: var(--ink-1);
  border-color: var(--rule-strong);
}
.btn-ghost:hover {
  border-color: var(--halo);
  background: rgba(93,168,255,0.06);
  transform: translateY(-1px);
  color: var(--halo-bright);
}
.btn-large { height: 54px; padding: 0 28px; font-size: 15px; }
.btn-arrow > .arr {
  display: inline-block;
  transition: transform 280ms var(--ease-out);
}
.btn:hover .arr { transform: translateX(4px); }

.mobile-only { display: none; }

/* ====== Section Marker (Left Rail) ====== */
.left-rail {
  position: fixed;
  left: 24px;
  top: 50%;
  transform: translateY(-50%) rotate(-90deg);
  transform-origin: left center;
  z-index: 80;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--halo);
  pointer-events: none;
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 12px;
  opacity: 0.7;
}
.left-rail::after {
  content: '';
  width: 80px;
  height: 1px;
  background: currentColor;
  opacity: 0.5;
}

/* ====== Nav ====== */
.nav-wrap {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  transition: background 320ms ease, backdrop-filter 320ms ease, border-color 320ms ease;
  border-bottom: 1px solid transparent;
}
.nav-wrap.scrolled {
  background: rgba(10, 14, 31, 0.72);
  backdrop-filter: saturate(160%) blur(22px);
  -webkit-backdrop-filter: saturate(160%) blur(22px);
  border-bottom-color: var(--rule);
}
.nav {
  max-width: var(--max);
  margin: 0 auto;
  padding: 18px 40px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 48px;
}
.nav-links {
  display: flex;
  gap: 36px;
  font-size: 14px;
  color: var(--ink-3);
  justify-content: center;
}
.nav-links a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: color 220ms ease;
}
.nav-links a:hover { color: var(--ink-1); }
.nav-links a::after {
  content: '';
  position: absolute;
  bottom: -7px; left: 0;
  width: 0; height: 1px;
  background: var(--halo);
  box-shadow: 0 0 8px var(--halo);
  transition: width 280ms var(--ease-out);
}
.nav-links a:hover::after { width: 100%; }
.nav-links .caret { font-size: 9px; opacity: 0.5; }

.nav-cta { display: flex; gap: 12px; align-items: center; }

/* ====== HERO ====== */
.hero {
  padding-top: 200px;
  padding-bottom: 140px;
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  display: flex;
  align-items: center;
}

.hero-mesh {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.hero-mesh .blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  will-change: transform;
}
.hero-mesh .blob-1 {
  width: 820px; height: 820px;
  top: -250px; right: -200px;
  background: radial-gradient(circle, rgba(93,168,255,0.55), transparent 65%);
  animation: drift1 22s ease-in-out infinite;
}
.hero-mesh .blob-2 {
  width: 700px; height: 700px;
  bottom: -200px; left: -150px;
  background: radial-gradient(circle, rgba(30,111,232,0.50), transparent 65%);
  animation: drift2 26s ease-in-out infinite;
}
.hero-mesh .blob-3 {
  width: 560px; height: 560px;
  top: 40%; left: 40%;
  background: radial-gradient(circle, rgba(166, 208, 255, 0.18), transparent 70%);
  animation: drift3 18s ease-in-out infinite;
}
@keyframes drift1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-80px, 100px) scale(1.12); }
}
@keyframes drift2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(100px, -80px) scale(0.92); }
}
@keyframes drift3 {
  0%, 100% { transform: translate(-50%, -50%) scale(1); }
  50% { transform: translate(-30%, -70%) scale(1.18); }
}

.hero-grid-bg {
  position: absolute;
  inset: -50% 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.07) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse 90% 70% at 50% 50%, black 40%, transparent 90%);
  -webkit-mask-image: radial-gradient(ellipse 90% 70% at 50% 50%, black 40%, transparent 90%);
  z-index: 0;
  pointer-events: none;
}

.hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 80px;
  align-items: center;
  width: 100%;
}

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 40px;
  padding: 8px 16px 8px 14px;
  border: 1px solid var(--rule);
  border-radius: 999px;
  background: rgba(93,168,255,0.06);
  backdrop-filter: blur(12px);
  opacity: 0;
  animation: fade-up 700ms var(--ease-out) 100ms forwards;
}

.hero-headline {
  font-size: clamp(64px, 10vw, 144px);
  font-weight: 400;
  line-height: 0.94;
  letter-spacing: -0.045em;
  margin-bottom: 40px;
  color: var(--ink-1);
}
.hero-headline .line { display: block; overflow: hidden; padding: 0.04em 0; }
.hero-headline .line .inner {
  display: block;
  transform: translateY(110%);
  animation: rise 1100ms var(--ease-out) forwards;
}
.hero-headline .line:nth-child(1) .inner { animation-delay: 200ms; }
.hero-headline .line:nth-child(2) .inner { animation-delay: 340ms; }
.hero-headline .line:nth-child(3) .inner { animation-delay: 480ms; }

@keyframes rise { to { transform: translateY(0); } }
@keyframes fade-up {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.hero-sub {
  max-width: 38ch;
  margin-bottom: 44px;
  opacity: 0;
  animation: fade-up 800ms var(--ease-out) 800ms forwards;
}

.hero-ctas {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  align-items: center;
  opacity: 0;
  animation: fade-up 800ms var(--ease-out) 950ms forwards;
}
.hero-micro {
  margin-top: 24px;
  opacity: 0;
  animation: fade-up 800ms var(--ease-out) 1100ms forwards;
}

.hero-portrait {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: 8px;
  overflow: hidden;
  background: linear-gradient(140deg, var(--surface-2) 0%, var(--surface-1) 100%);
  opacity: 0;
  animation: fade-up 1200ms var(--ease-out) 500ms forwards;
  isolation: isolate;
  border: 1px solid var(--rule);
}
.hero-portrait::before {
  content: '';
  position: absolute; inset: 0;
  background:
    linear-gradient(135deg, rgba(30,111,232,0.20), rgba(93,168,255,0.30) 60%, transparent),
    repeating-linear-gradient(45deg, transparent 0 28px, rgba(255,255,255,0.025) 28px 29px);
}
.hero-portrait::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid rgba(93,168,255,0.18);
  border-radius: 8px;
  pointer-events: none;
  z-index: 2;
}
.hero-portrait-tag {
  position: absolute;
  bottom: 18px; left: 18px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  color: rgba(255,255,255,0.55);
  text-transform: uppercase;
  z-index: 3;
}
.hero-portrait-fig {
  position: absolute;
  top: 18px; right: 18px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.20em;
  color: rgba(255,255,255,0.55);
  text-transform: uppercase;
  z-index: 3;
}
.hero-portrait-glow {
  position: absolute;
  inset: -50px;
  border-radius: 12px;
  background: radial-gradient(circle at 50% 50%, rgba(93,168,255,0.55), transparent 70%);
  filter: blur(50px);
  z-index: -1;
  opacity: 0.9;
}
.hero-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 18px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
  opacity: 0;
  animation: fade-up 800ms var(--ease-out) 900ms forwards;
}
.hero-meta .meta-rule {
  flex: 1;
  height: 1px;
  background: var(--rule);
  margin: 0 14px;
}
.hero-meta .live-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #29D17C;
  margin-right: 6px;
  position: relative;
  display: inline-block;
  box-shadow: 0 0 8px #29D17C;
}
.hero-meta .live-dot::after {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: #29D17C;
  opacity: 0.5;
  animation: pulse 2s ease-out infinite;
}

.scroll-prompt {
  position: absolute;
  bottom: 40px; left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--ink-4);
  opacity: 0;
  animation: fade-up 1000ms var(--ease-out) 1300ms forwards;
}
.scroll-prompt .scroll-bar {
  width: 1px; height: 40px;
  background: linear-gradient(180deg, transparent, var(--halo), transparent);
  background-size: 100% 200%;
  animation: scroll-shift 2.4s ease-in-out infinite;
}
@keyframes scroll-shift {
  0% { background-position: 0 -100%; }
  100% { background-position: 0 100%; }
}

/* ====== Marquee Ticker ====== */
.marquee {
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  overflow: hidden;
  position: relative;
  background: var(--base-warm);
}
.marquee::before, .marquee::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 120px;
  z-index: 2;
  pointer-events: none;
}
.marquee::before { left: 0; background: linear-gradient(90deg, var(--base-warm), transparent); }
.marquee::after { right: 0; background: linear-gradient(270deg, var(--base-warm), transparent); }
.marquee-track {
  display: flex;
  gap: 72px;
  padding: 26px 0;
  animation: marquee 40s linear infinite;
  width: max-content;
}
.marquee-track span {
  font-family: var(--serif);
  font-size: 30px;
  letter-spacing: -0.02em;
  color: var(--ink-2);
  font-variation-settings: 'opsz' 36;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 72px;
}
.marquee-track span::after {
  content: '✦';
  color: var(--halo);
  font-size: 14px;
  font-family: var(--sans);
  opacity: 0.7;
}
.marquee-track .italic {
  font-style: italic;
  color: var(--halo);
  font-variation-settings: 'opsz' 36, 'SOFT' 100;
}
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Section corner glows removed, kept structural classes for layout, no atmospheric haze */
.glow-tl::before, .glow-br::after, .glow-c::before { display: none; }

/* ====== Section Head ====== */
.section-head {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 40px;
  margin-bottom: 80px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--rule);
}
.section-head h2 { max-width: 18ch; }
.section-head .lede { text-align: right; max-width: 42ch; }

/* ====== Choose Your Path ====== */
.path-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.path-card {
  background: linear-gradient(180deg, var(--surface-1), var(--base-warm));
  border: 1px solid var(--rule);
  border-radius: 10px;
  padding: 40px 36px 36px;
  position: relative;
  overflow: hidden;
  transition: border-color 320ms ease, transform 380ms var(--ease-soft), box-shadow 380ms ease;
  display: flex;
  flex-direction: column;
  min-height: 360px;
  isolation: isolate;
}
.path-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at var(--mx, 50%) var(--my, 0%), rgba(93,168,255,0.20), transparent 50%);
  opacity: 0;
  transition: opacity 380ms ease;
  pointer-events: none;
  z-index: -1;
}
.path-card::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(93,168,255,0.4), transparent);
  opacity: 0;
  transition: opacity 380ms ease;
}
.path-card:hover {
  border-color: rgba(93,168,255,0.4);
  transform: translateY(-6px);
  box-shadow: 0 24px 48px -24px rgba(30,111,232,0.5), 0 0 60px -20px rgba(93,168,255,0.4);
}
.path-card:hover::before { opacity: 1; }
.path-card:hover::after { opacity: 1; }
.path-card .card-num {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--halo);
  margin-bottom: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.path-card .card-num .pill {
  font-size: 9px;
  padding: 3px 10px;
  border: 1px solid var(--rule);
  border-radius: 999px;
  color: var(--ink-3);
  letter-spacing: 0.18em;
  background: rgba(255,255,255,0.02);
}
.path-card h3 { margin-bottom: 18px; max-width: 14ch; color: var(--ink-1); }
.path-card .body { flex: 1; margin-bottom: 32px; font-size: 15px; max-width: 26ch; color: var(--ink-3); }
.path-card .ghost-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-1);
  align-self: flex-start;
  padding: 10px 0;
  border-bottom: 1px solid var(--rule-strong);
  transition: color 220ms ease, border-color 220ms ease, padding 280ms ease;
  position: relative;
}
.path-card .ghost-link .arr {
  display: inline-block;
  transition: transform 280ms var(--ease-out);
}
.path-card:hover .ghost-link {
  color: var(--halo);
  border-color: var(--halo);
  padding-right: 8px;
}
.path-card:hover .ghost-link .arr { transform: translateX(5px); }

/* ====== Lead Magnet ====== */
.magnet-section {
  position: relative;
  overflow: hidden;
  background: var(--base-warm);
}
.magnet-section .grid-overlay {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black, transparent 80%);
  z-index: 0;
  pointer-events: none;
}
.magnet {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 96px;
  align-items: center;
  position: relative;
  z-index: 1;
}
.magnet-copy h2 { margin-bottom: 32px; max-width: 14ch; }
.magnet-copy .lede { color: var(--ink-2); margin-bottom: 40px; max-width: 40ch; }
.magnet-bullets {
  list-style: none;
  display: grid;
  gap: 16px;
}
.magnet-bullets li {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ink-2);
  padding-left: 28px;
  position: relative;
  line-height: 1.7;
}
.magnet-bullets li::before {
  content: '';
  position: absolute;
  left: 0; top: 8px;
  width: 14px; height: 1px;
  background: var(--halo);
  box-shadow: 0 0 6px var(--halo);
}
.magnet-bullets li::after {
  content: '';
  position: absolute;
  left: 6px; top: 3px;
  width: 1px; height: 11px;
  background: var(--halo);
  box-shadow: 0 0 6px var(--halo);
}

.magnet-form {
  background: linear-gradient(180deg, var(--surface-2), var(--surface-1));
  color: var(--ink-1);
  border-radius: 14px;
  padding: 44px 40px;
  position: relative;
  border: 1px solid var(--rule-strong);
  box-shadow:
    0 30px 80px -20px rgba(0,0,0,0.6),
    0 0 100px -20px rgba(93,168,255,0.5);
}
.magnet-form::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: 14px;
  padding: 1px;
  background: linear-gradient(140deg, rgba(93,168,255,0.6), transparent 50%, rgba(30,111,232,0.4));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.magnet-form .form-eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--halo);
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.magnet-form .form-eyebrow::before {
  content: '';
  width: 24px; height: 1px;
  background: var(--halo);
  box-shadow: 0 0 6px var(--halo);
}
.magnet-form h4 { margin-bottom: 28px; font-family: var(--serif); font-size: 28px; color: var(--ink-1); }
.field { display: block; margin-bottom: 14px; }
.field input {
  width: 100%;
  height: 52px;
  padding: 0 18px;
  border: 1px solid var(--rule);
  border-radius: 8px;
  background: rgba(0,0,0,0.25);
  font-family: var(--sans);
  font-size: 15px;
  color: var(--ink-1);
  transition: border-color 220ms ease, box-shadow 220ms ease, background 220ms ease;
}
.field input::placeholder { color: var(--ink-4); }
.field input:focus {
  outline: none;
  border-color: var(--halo);
  background: rgba(93,168,255,0.06);
  box-shadow: 0 0 0 4px rgba(93,168,255,0.10);
}
.magnet-form .btn { width: 100%; margin-top: 12px; height: 52px; }
.form-foot {
  margin-top: 18px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.10em;
  color: var(--ink-4);
  text-align: center;
  display: flex;
  justify-content: center;
  gap: 12px;
}
.form-foot span::before {
  content: '·';
  margin-right: 12px;
  color: var(--halo);
}
.form-foot span:first-child::before { display: none; }

/* ====== Guidebook ====== */
.guidebook-filter {
  display: flex;
  gap: 8px;
  margin-bottom: 48px;
  flex-wrap: wrap;
}
.filter-pill {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 8px 14px;
  border: 1px solid var(--rule);
  border-radius: 999px;
  cursor: pointer;
  transition: all 220ms ease;
  color: var(--ink-3);
  background: transparent;
}
.filter-pill:hover { border-color: var(--halo); color: var(--ink-1); }
.filter-pill.active {
  background: var(--halo);
  color: var(--base);
  border-color: var(--halo);
  box-shadow: 0 0 16px rgba(93,168,255,0.5);
}
.guidebook-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--rule);
  border-left: 1px solid var(--rule);
}
.guide-card {
  padding: 40px 36px;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  background: var(--base);
  transition: background 280ms ease;
  position: relative;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  min-height: 280px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}
.guide-card::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 2px;
  background: linear-gradient(90deg, transparent, var(--halo), transparent);
  transition: left 700ms var(--ease-out);
  box-shadow: 0 0 12px var(--halo);
}
.guide-card:hover { background: var(--surface-1); }
.guide-card:hover::before { left: 100%; }
.guide-card .cat {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--halo);
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.guide-card .cat .level {
  color: var(--ink-4);
  letter-spacing: 0.14em;
}
.guide-card .cat .level::before {
  content: '·';
  margin-right: 14px;
  opacity: 0.5;
}
.guide-card h4 { font-family: var(--serif); margin-bottom: 12px; max-width: 22ch; line-height: 1.15; color: var(--ink-1); }
.guide-card .desc { font-size: 14px; color: var(--ink-3); flex: 1; max-width: 32ch; }
.guide-card .arrow {
  position: absolute;
  bottom: 36px; right: 36px;
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1px solid var(--rule);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--mono);
  font-size: 14px;
  color: var(--ink-3);
  transition: background 280ms ease, color 280ms ease, border-color 280ms ease, transform 380ms var(--ease-soft), box-shadow 380ms ease;
}
.guide-card:hover .arrow {
  background: var(--halo);
  color: var(--base);
  border-color: var(--halo);
  transform: translateX(3px) translateY(-3px);
  box-shadow: 0 8px 24px -8px rgba(93,168,255,0.7);
}
.guidebook-foot {
  margin-top: 64px;
  display: flex;
  justify-content: center;
}

/* ====== Community ====== */
.community {
  text-align: center;
  position: relative;
  overflow: hidden;
  background: var(--base-deep);
}
.community::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  width: 1400px; height: 1400px;
  background:
    radial-gradient(circle, rgba(93,168,255,0.28) 0%, rgba(30,111,232,0.18) 30%, transparent 60%);
  transform: translate(-50%, -40%);
  filter: blur(60px);
  pointer-events: none;
  z-index: 0;
}
.community::after {
  content: '';
  position: absolute;
  bottom: -200px; left: 50%;
  width: 900px; height: 900px;
  background: radial-gradient(circle, rgba(30,111,232,0.32), transparent 65%);
  transform: translate(-50%, 0);
  filter: blur(80px);
  pointer-events: none;
}
.community .shell-tight { position: relative; z-index: 2; }
.community .eyebrow { margin-bottom: 36px; }
.community h2 {
  margin: 0 auto 36px;
  max-width: 18ch;
  font-size: clamp(48px, 7vw, 96px);
}
.community .lede {
  margin: 0 auto 56px;
  max-width: 50ch;
  text-align: center;
  color: var(--ink-2);
}
.community-ctas {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}

.community-stats {
  margin-top: 120px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule-strong);
  border-radius: 10px;
  overflow: hidden;
  position: relative;
  z-index: 2;
  box-shadow: 0 0 80px -20px rgba(93,168,255,0.4);
}
.community-stats > div {
  background: rgba(10,14,31,0.7);
  backdrop-filter: blur(12px);
  padding: 36px 28px;
  text-align: left;
  transition: background 320ms ease;
}
.community-stats > div:hover {
  background: rgba(31,39,74,0.7);
}
.community-stats .stat-num {
  font-family: var(--serif);
  font-size: 56px;
  font-variation-settings: 'opsz' 144;
  font-weight: 400;
  color: var(--ink-1);
  letter-spacing: -0.04em;
  margin-bottom: 12px;
  line-height: 1;
}
.community-stats .stat-num em {
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
}
.community-stats .stat-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-4);
}

.constellation {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}
.constellation { --px: 0px; --py: 0px; }
.constellation .dot {
  position: absolute;
  width: 2px; height: 2px;
  background: var(--halo);
  border-radius: 50%;
  opacity: 0.6;
  animation: twinkle 3s ease-in-out infinite;
  transform: translate3d(calc(var(--px) * var(--depth, 0.5)), calc(var(--py) * var(--depth, 0.5)), 0);
  will-change: transform;
}
.constellation .dot.lg {
  width: 4px; height: 4px;
  box-shadow: 0 0 10px var(--halo), 0 0 20px var(--halo);
}
@keyframes twinkle {
  0%, 100% { opacity: 0.2; }
  50% { opacity: 0.95; }
}

/* ====== Latest Content ====== */
.feed {
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  position: relative;
  background: var(--base-warm);
}
.feed-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
}
.feed-item {
  padding: 44px 28px;
  text-align: left;
  border-right: 1px solid var(--rule);
  position: relative;
  transition: background 280ms ease;
  cursor: pointer;
  overflow: hidden;
}
.feed-item:last-child { border-right: none; }
.feed-item::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 100%, rgba(93,168,255,0.18), transparent 70%);
  opacity: 0;
  transition: opacity 320ms ease;
}
.feed-item:hover::before { opacity: 1; }
.feed-item .platform {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-4);
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  z-index: 1;
}
.feed-item .platform::before {
  content: '';
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--halo);
  opacity: 0.5;
  transition: opacity 280ms ease, box-shadow 280ms ease;
}
.feed-item:hover .platform::before { opacity: 1; box-shadow: 0 0 8px var(--halo); }
.feed-item .handle {
  font-family: var(--serif);
  font-size: 22px;
  font-variation-settings: 'opsz' 36;
  color: var(--ink-1);
  letter-spacing: -0.01em;
  margin-bottom: 8px;
  position: relative;
  z-index: 1;
}
.feed-item .action {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--halo);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  position: relative;
  z-index: 1;
}
.feed-item .action::after {
  content: '→';
  transition: transform 280ms var(--ease-out);
}
.feed-item:hover .action::after { transform: translateX(4px); }

/* ====== Newsletter ====== */
.newsletter {
  text-align: center;
  padding: 100px 0;
  position: relative;
  overflow: hidden;
}
.newsletter::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 900px; height: 500px;
  background: radial-gradient(ellipse, rgba(93,168,255,0.20), transparent 70%);
  transform: translate(-50%, -50%);
  filter: blur(70px);
  z-index: 0;
}
.newsletter .shell-prose { position: relative; z-index: 1; }
.newsletter .eyebrow { margin-bottom: 28px; }
.newsletter h2 { margin: 0 auto 18px; max-width: 22ch; }
.newsletter .body-l { margin: 0 auto 36px; max-width: 44ch; }
.newsletter-form {
  display: flex;
  gap: 8px;
  max-width: 480px;
  margin: 0 auto;
  position: relative;
  padding: 6px;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  box-shadow:
    0 12px 40px -12px rgba(30,111,232,0.4),
    0 0 60px -10px rgba(93,168,255,0.3);
}
.newsletter-form::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: 999px;
  padding: 1px;
  background: linear-gradient(120deg, rgba(93,168,255,0.5), transparent 50%, rgba(30,111,232,0.4));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.newsletter-form input {
  flex: 1;
  height: 48px;
  padding: 0 22px;
  border: none;
  background: transparent;
  font-family: var(--sans);
  font-size: 15px;
  color: var(--ink-1);
}
.newsletter-form input::placeholder { color: var(--ink-4); }
.newsletter-form input:focus { outline: none; }
.newsletter-form .btn { height: 48px; }
.newsletter-foot {
  margin-top: 22px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.10em;
  color: var(--ink-4);
}

/* ====== About ====== */
.about-section {
  background: var(--base-warm);
  position: relative;
  overflow: hidden;
}
.about-section::before {
  content: '';
  position: absolute;
  top: 30%; right: -300px;
  width: 800px; height: 800px;
  background: radial-gradient(circle, rgba(93,168,255,0.18), transparent 70%);
  filter: blur(100px);
  z-index: 0;
}
.about {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 96px;
  align-items: center;
  position: relative;
  z-index: 1;
}
.about-grid-v2 { display: grid; grid-template-columns: 0.95fr 1.15fr; gap: 80px; align-items: center; position: relative; z-index: 1; }
.about-copy-v2 h2 { text-align: left; margin-top: 24px; }
.about-copy-v2 .body-l:nth-of-type(2) { margin-top: 16px; }

.about-stage-v2 { position: relative; display: flex; align-items: center; justify-content: center; padding: 44px; }
.about-stage-v2::before {
  content: '';
  position: absolute; inset: -10%;
  background: radial-gradient(circle at 50% 50%, rgba(93,168,255,0.30), transparent 65%);
  filter: blur(60px);
  z-index: 0;
  animation: about-glow-pulse 6s ease-in-out infinite;
}
@keyframes about-glow-pulse {
  0%, 100% { opacity: 0.55; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1.06); }
}
.about-ring {
  position: absolute; inset: 4%;
  border-radius: 50%;
  z-index: 1;
  background: conic-gradient(from 0deg, transparent 0deg, rgba(93,168,255,0.6) 40deg, transparent 100deg, transparent 260deg, rgba(93,168,255,0.4) 320deg, transparent 360deg);
  -webkit-mask: radial-gradient(circle, transparent 63%, black 64%, black 67%, transparent 68%);
  mask: radial-gradient(circle, transparent 63%, black 64%, black 67%, transparent 68%);
  animation: about-ring-spin 16s linear infinite;
}
.about-ring-2 {
  position: absolute; inset: 0;
  border-radius: 50%;
  z-index: 1;
  border: 1px dashed rgba(93,168,255,0.28);
  animation: about-ring-spin-rev 26s linear infinite;
}
@keyframes about-ring-spin { to { transform: rotate(360deg); } }
@keyframes about-ring-spin-rev { to { transform: rotate(-360deg); } }
.about-node {
  position: absolute;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--halo);
  box-shadow: 0 0 14px 3px rgba(93,168,255,0.75);
  z-index: 2;
  animation: about-node-pulse 3.2s ease-in-out infinite;
}
.about-node.n1 { top: 8%; left: 10%; animation-delay: 0s; }
.about-node.n2 { top: 16%; right: 6%; animation-delay: 0.8s; }
.about-node.n3 { bottom: 12%; left: 4%; animation-delay: 1.6s; }
.about-node.n4 { bottom: 6%; right: 14%; animation-delay: 2.4s; }
@keyframes about-node-pulse {
  0%, 100% { opacity: 0.35; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
}
.about-photo-frame-v2 {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: 440px;
  aspect-ratio: 4 / 5;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid var(--rule-strong);
  box-shadow: 0 40px 100px -30px rgba(0,0,0,0.65), 0 0 0 1px rgba(93,168,255,0.08);
}
.about-photo-frame-v2 img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 900px) {
  .about-grid-v2 { grid-template-columns: 1fr; gap: 48px; }
  .about-copy-v2 h2 { text-align: center; max-width: none; }
  .about-copy-v2 p, .about-copy-v2 .about-sig { text-align: center; }
  .about-copy-v2 .btn { margin: 0 auto; display: inline-flex; }
  .about-stage-v2 { padding: 32px; }
  .about-photo-frame-v2 { max-width: 300px; margin: 0 auto; }
}
.about-portrait {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: 8px;
  isolation: isolate;
  background: var(--surface-1);
  border: 1px solid var(--rule);
}
.about-portrait::before {
  content: '';
  position: absolute; inset: 0;
  border-radius: inherit;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(30,111,232,0.18), rgba(93,168,255,0.30)),
    repeating-linear-gradient(135deg, transparent 0 24px, rgba(255,255,255,0.025) 24px 25px);
  transform-origin: center center;
  transform: scale(var(--zoom, 1));
  transition: transform 80ms linear;
}
.about-portrait::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1px solid rgba(93,168,255,0.2);
  border-radius: 8px;
  pointer-events: none;
}
.about-portrait .frame-tag {
  position: absolute;
  bottom: 16px; left: 16px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  color: rgba(255,255,255,0.55);
  text-transform: uppercase;
  z-index: 3;
}
.about-portrait .frame-num {
  position: absolute;
  top: 16px; right: 16px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.20em;
  color: rgba(255,255,255,0.55);
  text-transform: uppercase;
  z-index: 3;
}
.about-portrait .floating-stat {
  position: absolute;
  bottom: -32px; right: -32px;
  background: linear-gradient(180deg, var(--surface-2), var(--surface-1));
  color: var(--ink-1);
  padding: 24px 28px;
  border-radius: 10px;
  z-index: 4;
  border: 1px solid var(--rule-strong);
  box-shadow: 0 16px 40px -12px rgba(0,0,0,0.6), 0 0 40px -10px rgba(93,168,255,0.4);
  min-width: 220px;
}
.about-portrait .floating-stat .num {
  font-family: var(--serif);
  font-size: 36px;
  letter-spacing: -0.03em;
  line-height: 1;
  margin-bottom: 6px;
  color: var(--ink-1);
}
.about-portrait .floating-stat .num em {
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
}
.about-portrait .floating-stat .label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-4);
}
.about-copy h2 { margin-bottom: 32px; max-width: 16ch; }
.about-copy .body-l { max-width: 42ch; margin-bottom: 18px; }
.about-copy .body-l + .body-l { margin-bottom: 40px; }
.about-sig {
  font-family: var(--serif);
  font-style: italic;
  font-size: 32px;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
  color: var(--halo);
  margin-bottom: 36px;
  letter-spacing: -0.01em;
}

/* ====== Final CTA ====== */
.final-cta {
  text-align: center;
  padding: 200px 0 160px;
  position: relative;
  overflow: hidden;
  background: var(--base-deep);
}
.final-cta::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 1600px; height: 1600px;
  background:
    radial-gradient(circle, rgba(30,111,232,0.40) 0%, rgba(93,168,255,0.22) 30%, transparent 60%);
  transform: translate(-50%, -50%);
  filter: blur(40px);
  pointer-events: none;
}
.final-cta::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, black, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 50%, black, transparent 80%);
  pointer-events: none;
}
.final-cta .shell-tight { position: relative; z-index: 1; }
.final-cta h2 {
  font-size: clamp(64px, 11vw, 168px);
  letter-spacing: -0.05em;
  margin: 0 auto 56px;
  max-width: 14ch;
  line-height: 0.92;
}
.final-cta-ctas {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
.final-cta .micro {
  margin-top: 40px;
  display: flex;
  justify-content: center;
  gap: 14px;
}
.final-cta .micro span::before {
  content: '·';
  margin-right: 14px;
  color: var(--halo);
}
.final-cta .micro span:first-child::before { display: none; }

/* ====== Footer ====== */
.footer {
  background: var(--base-deep);
  color: var(--ink-2);
  padding: 120px 0 32px;
  border-top: 1px solid var(--rule);
  position: relative;
  overflow: hidden;
}
.footer::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  width: 1200px; height: 600px;
  background: radial-gradient(ellipse, rgba(30,111,232,0.20), transparent 70%);
  transform: translate(-50%, -50%);
  filter: blur(80px);
  pointer-events: none;
}
.footer .shell { position: relative; z-index: 1; }
.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr repeat(4, 1fr);
  gap: 64px;
  margin-bottom: 72px;
  padding-bottom: 56px;
  border-bottom: 1px solid var(--rule);
}
.footer-brand .wordmark { color: var(--ink-1); margin-bottom: 22px; display: inline-block; font-size: 24px; }
.footer-brand .wordmark .accent { color: var(--halo); }
.footer-brand .body { color: var(--ink-3); font-size: 14px; max-width: 32ch; margin-bottom: 28px; }
.footer-newsletter {
  display: flex;
  gap: 6px;
  max-width: 340px;
  padding: 4px;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
}
.footer-newsletter input {
  flex: 1;
  height: 38px;
  padding: 0 14px;
  background: transparent;
  border: none;
  color: var(--ink-1);
  font-family: var(--sans);
  font-size: 13px;
}
.footer-newsletter input::placeholder { color: var(--ink-4); }
.footer-newsletter input:focus { outline: none; }
.footer-newsletter .btn { height: 38px; padding: 0 16px; font-size: 12px; }

.footer-col h5 {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--halo);
  margin-bottom: 22px;
  font-weight: 500;
}
.footer-col ul { list-style: none; display: grid; gap: 12px; }
.footer-col a {
  color: var(--ink-3);
  font-size: 14px;
  transition: color 220ms ease;
}
.footer-col a:hover { color: var(--ink-1); }

.footer-base {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-4);
}
.social-row { display: flex; gap: 22px; }
.social-row a:hover { color: var(--halo); }

/* ====== Reveal on Scroll ====== */
.reveal {
  opacity: 0;
  transform: translateY(52px);
  transition: opacity 1100ms cubic-bezier(0.16, 1, 0.3, 1), transform 1100ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal[data-delay="1"] { transition-delay: 130ms; }
.reveal[data-delay="2"] { transition-delay: 260ms; }
.reveal[data-delay="3"] { transition-delay: 390ms; }
.reveal[data-delay="4"] { transition-delay: 520ms; }

/* ====== Elevation Layer, scroll zoom, 3D tilt, mesh parallax, breathing glow ====== */

/* Hero portrait, scroll zoom on the placeholder pattern (will translate to real photo zoom) */
.hero-portrait::before {
  transform-origin: center center;
  transform: scale(var(--zoom, 1));
  transition: transform 80ms linear;
}

/* Hero portrait, 3D tilt setup (perspective on parent, transform on portrait) */
.hero-right { perspective: 1400px; }
.hero-portrait {
  transform-style: preserve-3d;
  transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}
.hero-portrait.tilt {
  transform: rotateX(calc(var(--ty, 0) * 4deg)) rotateY(calc(var(--tx, 0) * -4deg));
}
.hero-portrait .hero-portrait-fig,
.hero-portrait .hero-portrait-tag {
  transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}
.hero-portrait.tilt .hero-portrait-fig,
.hero-portrait.tilt .hero-portrait-tag {
  transform: translateZ(28px);
}

/* Mesh blobs, cursor-driven parallax via CSS variables (composes with keyframe animation) */
.hero-mesh { --bx: 0px; --by: 0px; }
.hero-mesh .blob {
  transition: translate 1400ms cubic-bezier(0.16, 1, 0.3, 1);
}
.hero-mesh .blob-1 { translate: calc(var(--bx) * 0.30) calc(var(--by) * 0.30); }
.hero-mesh .blob-2 { translate: calc(var(--bx) * -0.50) calc(var(--by) * -0.50); }
.hero-mesh .blob-3 { translate: calc(var(--bx) * 0.75) calc(var(--by) * 0.75); }

/* Hero grid background, scroll parallax */
.hero-grid-bg { transition: transform 60ms linear; }

/* Breathing glow on hero magnet form */
.magnet-form { animation: glow-breathe-magnet 6s ease-in-out infinite; }
@keyframes glow-breathe-magnet {
  0%, 100% {
    box-shadow:
      0 30px 80px -20px rgba(0,0,0,0.6),
      0 0 90px -20px rgba(93,168,255,0.40);
  }
  50% {
    box-shadow:
      0 30px 80px -20px rgba(0,0,0,0.6),
      0 0 130px -10px rgba(93,168,255,0.62);
  }
}

/* Breathing glow on newsletter form */
.newsletter-form { animation: glow-breathe-news 7s ease-in-out infinite; }
@keyframes glow-breathe-news {
  0%, 100% {
    box-shadow:
      0 12px 40px -12px rgba(30,111,232,0.40),
      0 0 60px -10px rgba(93,168,255,0.30);
  }
  50% {
    box-shadow:
      0 12px 40px -12px rgba(30,111,232,0.50),
      0 0 90px -6px rgba(93,168,255,0.50);
  }
}

/* Refined micro, guide card arrow slingshot rotation */
.guide-card .arrow {
  transition: background 280ms ease, color 280ms ease, border-color 280ms ease, box-shadow 380ms ease, transform 520ms cubic-bezier(0.16, 1, 0.3, 1);
}
.guide-card:hover .arrow {
  transform: translateX(3px) translateY(-3px) rotate(-14deg);
}

/* Refined micro, path card ghost-link arrow rotation */
.path-card:hover .ghost-link .arr {
  transform: translateX(5px) rotate(-8deg);
}

/* Refined micro, feed item handle subtle slide */
.feed-item .handle { transition: transform 320ms cubic-bezier(0.16, 1, 0.3, 1); }
.feed-item:hover .handle { transform: translateX(4px); }

/* Refined micro, community stats glow on hover */
.community-stats > div { transition: background 320ms ease, box-shadow 320ms ease; }
.community-stats > div:hover {
  background: rgba(31,39,74,0.7);
  box-shadow: inset 0 0 60px -20px rgba(93,168,255,0.4);
}

/* Section soft divider, halo rule between consecutive dark moments */
.section-divider {
  height: 1px;
  background: var(--rule);
  position: relative;
  margin: 0;
}
.section-divider::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  width: 240px; height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, var(--halo), transparent);
  box-shadow: 0 0 12px var(--halo);
  opacity: 0.5;
}

/* will-change locks for performance */
.hero-portrait, .about-portrait::before, .hero-mesh .blob { will-change: transform, translate; }

/* ====== Path Cards, Refined Editorial ====== */
.path-grid { perspective: 1600px; }
.path-card {
  padding: 44px 40px 40px;
  min-height: 380px;
}
.path-card .card-num {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 44px;
}
.path-card .num-big {
  font-family: var(--serif);
  font-size: 88px;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
  font-style: italic;
  font-weight: 400;
  color: var(--halo);
  line-height: 0.85;
  letter-spacing: -0.05em;
  text-shadow: 0 0 40px rgba(93,168,255,0.45);
  display: block;
}
.path-card .pill {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  padding: 7px 12px;
  border: 1px solid var(--rule);
  border-radius: 999px;
  color: var(--ink-3);
  background: rgba(255,255,255,0.02);
  margin-top: 8px;
}
.path-card h3 {
  font-size: clamp(28px, 2.6vw, 36px);
  line-height: 1.08;
  margin-bottom: 14px;
  max-width: 16ch;
}
.path-card .body {
  font-size: 17px;
  line-height: 1.4;
  color: var(--ink-2);
  max-width: 28ch;
  margin-bottom: 36px;
}

/* ====== Card 3D Tilt (path + guide) ====== */
.guidebook-grid { perspective: 1600px; }
[data-tilt] {
  transform-style: preserve-3d;
  transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}
[data-tilt].tilt {
  transform:
    rotateX(calc(var(--ty, 0) * 4deg))
    rotateY(calc(var(--tx, 0) * -4deg))
    translateY(-6px);
}
[data-tilt] .card-num,
[data-tilt] h3,
[data-tilt] h4 {
  transition: transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}
[data-tilt].tilt .card-num,
[data-tilt].tilt h3,
[data-tilt].tilt h4 {
  transform: translateZ(28px);
}

/* ====== Section Headline Scale + Blur Reveal ====== */
.h2-rise {
  opacity: 0;
  transform: scale(1.08);
  filter: blur(8px);
  transform-origin: left center;
  transition:
    opacity 1100ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 1200ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 900ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, filter, opacity;
}
.h2-rise.in {
  opacity: 1;
  transform: scale(1);
  filter: blur(0);
}
.community .h2-rise,
.final-cta .h2-rise,
.newsletter .h2-rise {
  transform-origin: center center;
}

/* ====== Reveal Refinement, add subtle scale ====== */
.reveal {
  opacity: 0;
  transform: translateY(28px) scale(0.985);
}
.reveal.in {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* ====== Version Label (A vs B comparison) ====== */
.version-label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--halo);
  margin-bottom: 36px;
  display: flex;
  align-items: center;
  gap: 18px;
}
.version-label span {
  white-space: nowrap;
}
.version-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, var(--rule-strong), transparent);
}

/* ====== Path Card v1, restore original proportions ====== */
.path-card-v1 {
  padding: 40px 36px 36px;
  min-height: 360px;
}
.path-card-v1 .card-num-v1 {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--halo);
  text-transform: uppercase;
  margin-bottom: 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.path-card-v1 .card-num-v1 .pill {
  font-size: 9px;
  padding: 3px 10px;
  margin-top: 0;
  border: 1px solid var(--rule);
  border-radius: 999px;
  color: var(--ink-3);
  letter-spacing: 0.18em;
  background: rgba(255,255,255,0.02);
}
.path-card-v1 h3 {
  font-size: clamp(26px, 2.4vw, 32px);
  margin-bottom: 18px;
  max-width: 14ch;
  line-height: 1.1;
}
.path-card-v1 .body {
  font-size: 15px;
  max-width: 26ch;
  margin-bottom: 32px;
  color: var(--ink-3);
  line-height: 1.55;
}

/* ====== Blog Cards ====== */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 96px;
}
.blog-card {
  background: linear-gradient(180deg, var(--surface-1), var(--base-warm));
  border: 1px solid var(--rule);
  border-radius: 10px;
  padding: 32px 28px 24px;
  display: flex;
  flex-direction: column;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  transition: border-color 320ms ease, transform 380ms var(--ease-soft), box-shadow 380ms ease;
  min-height: 280px;
  position: relative;
  overflow: hidden;
}
.blog-card::before {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 1px;
  background: linear-gradient(90deg, transparent, var(--halo), transparent);
  transition: left 700ms var(--ease-out);
  box-shadow: 0 0 12px var(--halo);
}
.blog-card:hover {
  border-color: rgba(93,168,255,0.4);
  transform: translateY(-4px);
  box-shadow: 0 16px 36px -16px rgba(30,111,232,0.4);
}
.blog-card:hover::before { left: 100%; }
.blog-source {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--halo);
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.blog-source::before {
  content: '';
  width: 6px; height: 6px;
  background: var(--halo);
  border-radius: 50%;
  box-shadow: 0 0 8px var(--halo);
}
.blog-card h4 {
  font-family: var(--serif);
  font-size: 22px;
  line-height: 1.18;
  margin-bottom: 14px;
  color: var(--ink-1);
  max-width: 22ch;
}
.blog-excerpt {
  font-size: 14px;
  color: var(--ink-3);
  line-height: 1.5;
  flex: 1;
  margin-bottom: 24px;
  max-width: 32ch;
}
.blog-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-4);
  padding-top: 16px;
  border-top: 1px solid var(--rule);
}
.blog-meta .blog-read {
  color: var(--halo);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.blog-meta .blog-read::after {
  content: '→';
  transition: transform 280ms var(--ease-out);
}
.blog-card:hover .blog-read::after { transform: translateX(4px); }

/* ====== Connect Block ====== */
.connect-block {
  position: relative;
  text-align: center;
  padding: 56px 0 24px;
  border-top: 1px solid var(--rule);
}
.connect-block::before {
  content: '';
  position: absolute;
  top: -1px; left: 50%;
  width: 200px; height: 1px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, transparent, var(--halo), transparent);
  box-shadow: 0 0 10px var(--halo);
  opacity: 0.6;
}
.connect-head { margin-bottom: 56px; }
.connect-head .eyebrow {
  margin-bottom: 24px;
  justify-content: center;
}
.connect-head h3 {
  font-size: clamp(36px, 4.6vw, 60px);
  margin: 0 auto 18px;
  max-width: 18ch;
  letter-spacing: -0.025em;
  line-height: 1.05;
}
.connect-head .connect-sub {
  font-family: var(--serif);
  font-size: 19px;
  font-variation-settings: 'opsz' 36;
  font-weight: 600;
  color: var(--ink-2);
  max-width: 40ch;
  margin: 0 auto;
}

/* ====== Social Icons ====== */
.social-icons {
  display: flex;
  gap: 28px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  padding: 24px 0 64px;
}
.social-icon {
  width: 78px;
  height: 78px;
  border-radius: 50%;
  border: 1px solid var(--rule-strong);
  background: rgba(255,255,255,0.02);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-2);
  position: relative;
  cursor: pointer;
  animation: social-float 7s ease-in-out infinite;
  transition:
    transform 480ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 320ms ease,
    color 320ms ease,
    box-shadow 320ms ease,
    background 320ms ease;
  isolation: isolate;
}
.social-icon::before {
  content: '';
  position: absolute;
  inset: -10px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(93,168,255,0.34), transparent 70%);
  opacity: 0;
  transition: opacity 320ms ease;
  z-index: -1;
}
.social-icon::after {
  content: '';
  position: absolute;
  inset: 4px;
  border-radius: 50%;
  border: 1px solid rgba(93,168,255,0.0);
  transition: border-color 320ms ease;
  pointer-events: none;
}
.social-icon:hover {
  transform: translateY(-12px) scale(1.10);
  border-color: var(--halo);
  color: var(--halo);
  background: rgba(93,168,255,0.05);
  box-shadow: 0 12px 36px -8px rgba(93,168,255,0.45);
  animation-play-state: paused;
}
.social-icon:hover::before { opacity: 1; }
.social-icon:hover::after { border-color: rgba(93,168,255,0.20); }
.social-icon svg { display: block; transition: transform 480ms cubic-bezier(0.16, 1, 0.3, 1); }
.social-icon:hover svg { transform: scale(1.08); }
.social-icon .label {
  position: absolute;
  bottom: -28px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-4);
  opacity: 0;
  transition: opacity 320ms ease, color 320ms ease;
  white-space: nowrap;
}
.social-icon:hover .label { opacity: 1; color: var(--halo); }
.social-icon:nth-child(1) { animation-delay: 0s; }
.social-icon:nth-child(2) { animation-delay: -1.1s; }
.social-icon:nth-child(3) { animation-delay: -2.2s; }
.social-icon:nth-child(4) { animation-delay: -3.3s; }
.social-icon:nth-child(5) { animation-delay: -4.4s; }
.social-icon:nth-child(6) { animation-delay: -5.5s; }
@keyframes social-float {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -8px; }
}

/* ====== Nav Dropdowns ====== */
.nav-dropdown {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.nav-dropdown-trigger {
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--sans);
  font-size: 14px;
  color: var(--ink-3);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  transition: color 220ms ease;
  position: relative;
}
.nav-dropdown-trigger:hover,
.nav-dropdown.open .nav-dropdown-trigger { color: var(--ink-1); }
.nav-dropdown-trigger .caret {
  font-size: 9px;
  opacity: 0.65;
  color: var(--halo);
  transition: transform 240ms var(--ease-soft), opacity 220ms ease;
  display: inline-block;
}
.nav-dropdown.open .nav-dropdown-trigger .caret {
  transform: rotate(180deg);
  opacity: 0.85;
}
.nav-dropdown-trigger::after {
  content: '';
  position: absolute;
  bottom: -7px; left: 0;
  width: 0; height: 1px;
  background: var(--halo);
  box-shadow: 0 0 8px var(--halo);
  transition: width 280ms var(--ease-out);
}
.nav-dropdown-trigger:hover::after { width: 100%; }
.nav-dropdown.open .nav-dropdown-trigger::after { width: 100%; }

.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 22px);
  left: 50%;
  transform: translateX(-50%) translateY(-10px);
  background: rgba(7,11,27,0.97);
  backdrop-filter: saturate(180%) blur(28px);
  -webkit-backdrop-filter: saturate(180%) blur(28px);
  border: 1px solid var(--rule-strong);
  border-radius: 14px;
  padding: 10px;
  min-width: 248px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 200ms ease, transform 260ms var(--ease-out), visibility 200ms;
  box-shadow:
    0 28px 64px rgba(0,0,0,0.55),
    0 0 0 1px rgba(93,168,255,0.07),
    0 0 40px -10px rgba(93,168,255,0.20);
  z-index: 200;
  pointer-events: none;
}
.nav-dropdown.open .nav-dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
  pointer-events: auto;
}
/* small triangle pointer */
.nav-dropdown-menu::before {
  content: '';
  position: absolute;
  top: -6px; left: 50%;
  transform: translateX(-50%);
  width: 12px; height: 6px;
  background: var(--rule-strong);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
.nav-dropdown-menu::after {
  content: '';
  position: absolute;
  top: -5px; left: 50%;
  transform: translateX(-50%);
  width: 10px; height: 5px;
  background: rgba(7,11,27,0.97);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
.nav-dropdown-menu a {
  display: flex;
  align-items: flex-start;
  gap: 0;
  padding: 11px 14px;
  border-radius: 8px;
  text-decoration: none;
  transition: background 180ms ease;
  border-bottom: 1px solid var(--rule-soft);
}
.nav-dropdown-menu a:last-child { border-bottom: none; }
.nav-dropdown-menu a:hover { background: rgba(93,168,255,0.08); }
.nav-dropdown-menu .dd-text {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.nav-dropdown-menu .dd-text strong {
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 500;
  color: var(--ink-1);
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.nav-dropdown-menu .dd-text em {
  font-style: normal;
  font-family: var(--sans);
  font-size: 12px;
  color: var(--ink-4);
  line-height: 1.35;
}
.nav-dropdown-menu a:hover .dd-text strong { color: var(--halo-bright); }
.nav-dropdown-menu a:hover .dd-text em { color: var(--ink-3); }

/* ====== Nav Mobile Toggle (hamburger) ====== */
.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 32px; height: 32px;
  background: none; border: none; cursor: pointer; padding: 0; flex-shrink: 0;
}
.nav-toggle span {
  display: block; width: 100%; height: 2px;
  background: var(--ink-1);
  border-radius: 2px;
  transition: transform 220ms ease, opacity 220ms ease;
}
.nav-wrap.mobile-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-wrap.mobile-open .nav-toggle span:nth-child(2) { opacity: 0; }
.nav-wrap.mobile-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 920px) {
  .nav-toggle { display: flex; }

  .nav-wrap.mobile-open .nav-links.desktop-only {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    position: absolute;
    top: 100%; left: 0; right: 0;
    background: rgba(10, 14, 31, 0.97);
    backdrop-filter: saturate(140%) blur(24px);
    -webkit-backdrop-filter: saturate(140%) blur(24px);
    border-bottom: 1px solid var(--rule-strong);
    padding: 12px 24px 24px;
    max-height: calc(100vh - 64px);
    overflow-y: auto;
  }
  .nav-wrap.mobile-open .nav-links.desktop-only > a {
    width: 100%; padding: 13px 0; font-size: 15px;
    border-bottom: 1px solid var(--rule-soft);
  }
  .nav-wrap.mobile-open .nav-dropdown { width: 100%; }
  .nav-wrap.mobile-open .nav-dropdown-trigger {
    width: 100%; justify-content: space-between;
    padding: 13px 0; font-size: 15px;
    border-bottom: 1px solid var(--rule-soft);
  }
  .nav-wrap.mobile-open .nav-dropdown-menu { display: none; }
  .nav-wrap.mobile-open .nav-dropdown.open .nav-dropdown-menu {
    display: flex;
    position: static;
    transform: none;
    min-width: 0; width: 100%;
    background: transparent;
    backdrop-filter: none; -webkit-backdrop-filter: none;
    border: none; box-shadow: none;
    opacity: 1; pointer-events: auto;
    padding: 4px 0 8px 16px;
  }
  .nav-wrap.mobile-open .nav-dropdown-menu::before { display: none; }
}

/* ====== Responsive, blog + social ====== */
@media (max-width: 920px) {
  .blog-grid { grid-template-columns: 1fr; gap: 16px; margin-bottom: 64px; }
  .social-icons { gap: 18px; }
  .social-icon { width: 64px; height: 64px; }
  .version-label { margin-bottom: 28px; }
}

/* ====== Responsive ====== */
@media (max-width: 1180px) {
  .nav-links { gap: 24px; }
  .feed-grid { grid-template-columns: repeat(3, 1fr); }
  .feed-item:nth-child(3n) { border-right: none; }
  .feed-item:nth-child(n+4) { border-top: 1px solid var(--rule); }
  .left-rail { display: none; }
}

@media (max-width: 920px) {
  .desktop-only { display: none; }
  .mobile-only { display: inline-flex; }
  section { padding: 80px 0; }
  .hero { padding-top: 140px; padding-bottom: 80px; min-height: auto; }
  .hero-grid { grid-template-columns: 1fr; gap: 56px; }
  .hero-headline { font-size: clamp(56px, 13vw, 84px); }
  .scroll-prompt { display: none; }
  .section-head { grid-template-columns: 1fr; gap: 16px; }
  .section-head .lede { text-align: left; }
  .path-grid { grid-template-columns: 1fr; }
  .magnet { grid-template-columns: 1fr; gap: 56px; }
  .guidebook-grid { grid-template-columns: 1fr; border-left: none; }
  .guide-card { border-right: none; }
  .community-stats { grid-template-columns: repeat(2, 1fr); margin-top: 64px; }
  .feed-grid { grid-template-columns: repeat(2, 1fr); }
  .feed-item { border-right: 1px solid var(--rule); }
  .feed-item:nth-child(2n) { border-right: none; }
  .feed-item:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .about { grid-template-columns: 1fr; gap: 80px; }
  .about-portrait .floating-stat { right: 16px; bottom: -24px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .footer-brand { grid-column: 1 / -1; }
  .marquee-track span { font-size: 22px; gap: 56px; }
  .marquee-track { gap: 56px; }
  .nav { padding: 14px 22px; gap: 16px; grid-template-columns: auto auto; }
  .nav-cta .btn-large { display: none; }
  .shell, .shell-tight, .shell-prose { padding: 0 22px; }
  .footer-base { flex-direction: column; gap: 18px; align-items: flex-start; }
  .cursor-light { display: none; }
}

::selection { background: var(--halo); color: var(--base); }

/* ========== HERO TRANSLUCENT BOOK + FLOATING CARDS ========== */
.hero-portrait.hero-portrait-book {
  background: transparent;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  perspective: none;
  overflow: visible;
  position: relative;
}
.hero-portrait.hero-portrait-book::before,
.hero-portrait.hero-portrait-book::after { display: none; }

.holo-glow {
  position: absolute;
  inset: -8%;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(93,168,255,0.28), rgba(30,111,232,0.16) 40%, transparent 70%);
  filter: blur(60px);
  z-index: 0;
  pointer-events: none;
  animation: holo-glow-pulse 9s ease-in-out infinite;
}
@keyframes holo-glow-pulse {
  0%, 100% { opacity: 0.80; transform: scale(1); }
  50%     { opacity: 1.00; transform: scale(1.06); }
}

.holo-stage {
  position: relative;
  width: min(94%, 420px);
  aspect-ratio: 340 / 460;
  z-index: 2;
  animation: holo-rise 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.1s both;
}
@keyframes holo-rise {
  from { opacity: 0; transform: translateY(24px) scale(0.92); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

.holo-book {
  position: absolute;
  inset: 0;
  animation: holo-float 7s ease-in-out 1.5s infinite;
}
@keyframes holo-float {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-10px); }
}

.holo-cover {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(140deg,
      rgba(7,13,36,0.96) 0%,
      rgba(16,26,62,0.93) 50%,
      rgba(4,9,26,0.97) 100%);
  border: 1px solid rgba(93,168,255,0.45);
  border-radius: 3px 9px 9px 3px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  /* page-edge: blue glow lines + deep drop shadow for 3D angle */
  box-shadow:
    inset 0 0 80px rgba(93,168,255,0.22),
    1px  0 0 rgba(93,168,255,0.58),
    3px  0 0 rgba(93,168,255,0.42),
    5px  0 0 rgba(93,168,255,0.30),
    7px  0 0 rgba(93,168,255,0.22),
    9px  0 0 rgba(93,168,255,0.16),
    11px 0 0 rgba(93,168,255,0.10),
    20px 16px 56px rgba(0,0,0,0.72),
    0 0 130px rgba(93,168,255,0.38);
  overflow: hidden;
}

/* sheen sweep across the cover */
.holo-cover::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.07) 50%, transparent 70%);
  animation: holo-sheen 9s ease-in-out infinite;
}
@keyframes holo-sheen {
  0%, 100% { transform: translateX(-100%); opacity: 0; }
  45%     { opacity: 1; }
  55%     { opacity: 1; }
  100%   { transform: translateX(100%); opacity: 0; }
}

/* glowing spine line near left edge */
.holo-cover::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: 6px;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(93,168,255,0.55), transparent);
  box-shadow: 0 0 8px rgba(93,168,255,0.5);
}

.holo-cover-inner {
  position: absolute;
  inset: 26px 22px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  height: calc(100% - 52px);
  padding-top: 14%;
}

/* AI letterform with concentric halo rings */
.holo-mark-frame {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(120px, 20vw, 170px);
  height: clamp(120px, 20vw, 170px);
  margin: 0;
}
.holo-mark-frame::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid rgba(93,168,255,0.40);
  box-shadow:
    inset 0 0 36px rgba(93,168,255,0.10),
    0 0 32px rgba(93,168,255,0.30);
  animation: halo-ring-pulse 4s ease-in-out infinite;
}
.holo-mark-frame::after {
  content: '';
  position: absolute;
  inset: -14%;
  border-radius: 50%;
  border: 1px solid rgba(93,168,255,0.16);
  animation: halo-outer-pulse 4s ease-in-out infinite;
}
@keyframes halo-ring-pulse {
  0%, 100% { transform: scale(1);    opacity: 0.65; }
  50%     { transform: scale(1.04); opacity: 1.00; }
}
@keyframes halo-outer-pulse {
  0%, 100% { transform: scale(1);    opacity: 0.30; }
  50%     { transform: scale(1.10); opacity: 0.70; }
}

.holo-mark {
  position: relative;
  z-index: 2;
  font-family: var(--serif);
  font-size: clamp(64px, 11vw, 110px);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
  font-weight: 400;
  color: var(--halo);
  letter-spacing: -0.04em;
  line-height: 1;
  /* hard drop shadow for contrast against floating cards + halo bloom for mystery */
  text-shadow:
    0 3px 8px rgba(0,0,0,0.85),
    0 6px 20px rgba(0,0,0,0.55),
    0 0 24px rgba(93,168,255,0.70),
    0 0 48px rgba(93,168,255,0.50),
    0 0 80px rgba(93,168,255,0.30);
}

.holo-sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: 14px;
  color: rgba(255,255,255,0.72);
  font-weight: 400;
  font-variation-settings: 'opsz' 24, 'SOFT' 50;
  letter-spacing: 0.02em;
  margin-top: auto;
  margin-bottom: 8px;
  text-shadow:
    0 2px 6px rgba(0,0,0,0.6),
    0 0 8px rgba(93,168,255,0.20);
}
.holo-sub em {
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 24, 'SOFT' 100;
  text-shadow: 0 0 12px rgba(93,168,255,0.40);
}

/* ====== Brain-Synapse Connection Lines ====== */
.holo-connections {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  overflow: visible;
}
.conn {
  stroke: rgba(93,168,255,0.40);
  stroke-width: 1;
  stroke-dasharray: 2 4;
  stroke-linecap: round;
  fill: none;
  vector-effect: non-scaling-stroke;
  animation: conn-travel 5s linear infinite, conn-glow 3.5s ease-in-out infinite;
  filter: drop-shadow(0 0 3px rgba(93,168,255,0.50));
}
/* lines pulse on different cycles to feel like independent neural impulses */
.conn-1 { animation-duration: 5.0s, 3.5s; animation-delay:  0.0s,  0.0s; }
.conn-2 { animation-duration: 4.2s, 2.8s; animation-delay: -1.4s, -0.6s; }
.conn-3 { animation-duration: 6.0s, 4.2s; animation-delay: -2.6s, -1.4s; }
.conn-4 { animation-duration: 4.6s, 3.1s; animation-delay: -3.1s, -2.0s; }
.conn-5 { animation-duration: 5.4s, 3.8s; animation-delay: -4.0s, -2.6s; }
@keyframes conn-travel {
  to { stroke-dashoffset: -12; }
}
@keyframes conn-glow {
  0%, 100% { stroke: rgba(93,168,255,0.25); }
  50%     { stroke: rgba(93,168,255,0.85); }
}

/* convergence hub, soft glowing point where all lines meet */
.conn-hub {
  fill: rgba(93,168,255,0.85);
  filter:
    drop-shadow(0 0 4px rgba(93,168,255,0.9))
    drop-shadow(0 0 12px rgba(93,168,255,0.7))
    drop-shadow(0 0 24px rgba(93,168,255,0.4));
  transform-box: fill-box;
  transform-origin: center;
  animation: hub-pulse 3s ease-in-out infinite;
}
@keyframes hub-pulse {
  0%, 100% { transform: scale(0.85); opacity: 0.65; }
  50%     { transform: scale(1.30); opacity: 1.00; }
}

/* fc-tools position is set by the symmetric pentagon block above */

/* ====== Hero CTA, both ghost; one fills blue on hover, other shifts text blue ====== */
.btn-ghost-fill {
  background: transparent;
  color: var(--ink-1);
  border-color: var(--rule-strong);
  transition:
    transform 280ms var(--ease-soft),
    background 280ms ease,
    color 280ms ease,
    border-color 280ms ease,
    box-shadow 280ms ease;
}
.btn-ghost-fill:hover {
  background: var(--royal);
  color: var(--ink-1);
  border-color: var(--royal);
  box-shadow:
    0 1px 0 0 rgba(255,255,255,0.12) inset,
    0 6px 24px rgba(45,82,232,0.35),
    0 0 0 1px rgba(107,138,255,0.18);
  transform: translateY(-1px);
}

.btn-ghost-text {
  background: transparent;
  color: var(--ink-1);
  border-color: var(--rule-strong);
  transition:
    color 280ms ease,
    border-color 280ms ease,
    transform 280ms var(--ease-soft);
}
.btn-ghost-text:hover {
  color: var(--halo);
  border-color: var(--halo);
  background: transparent;
  transform: translateY(-1px);
}
.btn-ghost-text .arr { transition: transform 280ms var(--ease-out), color 280ms ease; }

/* ====== Hero Link, text only, not a button ====== */
.hero-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-2);
  padding: 14px 4px 14px 22px;
  position: relative;
  transition: color 320ms ease, gap 320ms cubic-bezier(0.16, 1, 0.3, 1);
}
.hero-link::after {
  content: '';
  position: absolute;
  left: 22px; bottom: 8px;
  width: 0; height: 1px;
  background: var(--halo);
  box-shadow: 0 0 8px var(--halo);
  transition: width 380ms cubic-bezier(0.16, 1, 0.3, 1);
}
.hero-link:hover {
  color: var(--halo);
  gap: 14px;
}
.hero-link:hover::after { width: calc(100% - 26px); }
.hero-link .arr { transition: transform 320ms cubic-bezier(0.16, 1, 0.3, 1); }
.hero-link:hover .arr { transform: translateX(4px); }

/* ====== Slogan Section, small subtitle + big headline + scroll reveal ====== */
.slogan-section {
  padding: 220px 0 200px;
  text-align: center;
  position: relative;
  overflow: hidden;
  background: var(--base);
}
.slogan-glow {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 55% at 50% 50%, rgba(93,168,255,0.10), transparent 75%);
  pointer-events: none;
  z-index: 0;
}
.slogan-section .shell-tight {
  position: relative;
  z-index: 2;
}

.slogan-sub-small {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: var(--halo);
  margin-bottom: 44px;
  text-shadow: 0 0 12px rgba(93,168,255,0.40);
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
.slogan-sub-small em {
  font-family: var(--serif);
  font-style: italic;
  font-variation-settings: 'opsz' 24, 'SOFT' 100;
  text-transform: none;
  letter-spacing: -0.005em;
  font-size: 14px;
  color: var(--halo-bright);
  text-shadow: 0 0 14px rgba(93,168,255,0.55);
}
.slogan-section.in .slogan-sub-small {
  opacity: 1;
  transform: translateY(0);
}

.slogan-headline {
  font-family: var(--serif);
  font-size: clamp(56px, 9vw, 132px);
  font-weight: 400;
  letter-spacing: -0.045em;
  line-height: 0.96;
  color: var(--ink-1);
  font-variation-settings: 'opsz' 144;
  margin: 0 auto;
  max-width: 18ch;
}
.slogan-headline em {
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
  text-shadow:
    0 0 32px rgba(93,168,255,0.45),
    0 0 64px rgba(93,168,255,0.25);
}
.slogan-line {
  display: block;
  overflow: visible;
  clip-path: inset(0 -12% -0.4em -12%);
  padding: 0.04em 0;
}
.slogan-line .inner {
  display: block;
  transform: translateY(110%);
  filter: blur(10px);
  opacity: 0.5;
  transition:
    transform 1.4s cubic-bezier(0.16, 1, 0.3, 1),
    filter 1.0s cubic-bezier(0.16, 1, 0.3, 1),
    opacity 1.0s cubic-bezier(0.16, 1, 0.3, 1);
}
.slogan-line:nth-child(1) .inner { transition-delay: 0.20s; }
.slogan-line:nth-child(2) .inner { transition-delay: 0.40s; }
.slogan-line:nth-child(3) .inner { transition-delay: 0.60s; }
.slogan-section.in .slogan-line .inner {
  transform: translateY(0);
  filter: blur(0);
  opacity: 1;
}

/* ====== Reduce hero mesh hue, softer surround for clean buttons ====== */
.hero-mesh { opacity: 0.14 !important; }

/* ====== Slogan-as-hero (first section) ↔ Hero (second section) blend ====== */
.slogan-section.slogan-as-hero {
  /* clear the fixed nav and feel like the entrance */
  padding-top: 220px;
  padding-bottom: 200px;
  margin-top: 0;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  /* fade the bottom edge into the hero so the seam dissolves */
  -webkit-mask: linear-gradient(180deg, black 0%, black 92%, transparent 100%);
          mask: linear-gradient(180deg, black 0%, black 92%, transparent 100%);
}
.slogan-section.slogan-as-hero .shell-tight { width: 100%; }
.hero {
  /* hero is now the SECOND section, no bottom mask, just pull up to overlap the slogan fade */
  margin-top: -80px;
  padding-top: 220px;
}

/* ====== Typewriter slogan animation ====== */
.typewriter-wrap {
  display: inline-flex;
  align-items: baseline;
  position: relative;
}
.typewriter {
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
  text-shadow:
    0 0 32px rgba(93,168,255,0.55),
    0 0 64px rgba(93,168,255,0.30);
  display: inline-block;
  white-space: nowrap;
  min-width: 1ch;
}
.typewriter-cursor {
  display: inline-block;
  margin-left: 6px;
  color: var(--halo);
  font-style: italic;
  font-weight: 300;
  text-shadow: 0 0 14px var(--halo);
  animation: cursor-blink 0.75s step-end infinite;
}
@keyframes cursor-blink {
  0%, 50%   { opacity: 1; }
  51%, 100% { opacity: 0; }
}

/* ====== Section 003, Two-column + wide form ====== */
.magnet-v2 {
  display: flex;
  flex-direction: column;
  gap: 80px;
  position: relative;
  z-index: 1;
}
.magnet-row-cols {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 96px;
  align-items: center;
}
.magnet-image {
  display: flex;
  align-items: center;
  justify-content: center;
  perspective: 1800px;
  min-height: 420px;
  position: relative;
}
.guide-book-large {
  width: 280px;
  aspect-ratio: 280 / 396;
  position: relative;
  /* no rotation, no float, straight, clean, polished */
  transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
}
.guide-book-large:hover {
  transform: translateY(-6px) scale(1.02);
}
.guide-book-large .book-cover {
  /* clean cover, no page-edge stack since no 3D angle */
  box-shadow:
    inset 0 0 70px rgba(93,168,255,0.14),
    0 24px 60px rgba(0,0,0,0.55),
    0 0 90px rgba(93,168,255,0.30);
}
.guide-book-large .book-cover::before { display: none; }
.guide-book-large .book-cover::after {
  /* keep a subtle halo edge accent on the left */
  left: 8px;
}
.guide-book-large .book-cover-inner {
  position: absolute;
  inset: 36px 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  height: calc(100% - 72px);
}
.guide-book-large .book-title {
  font-family: var(--serif);
  font-size: 52px;
  line-height: 0.94;
  letter-spacing: -0.025em;
  font-weight: 500;
  color: var(--ink-1);
  font-variation-settings: 'opsz' 144;
  text-shadow: 0 2px 6px rgba(0,0,0,0.5);
  margin: 0;
}
.guide-book-large .book-title em {
  display: block;
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
  font-size: 1.10em;
  margin: 6px 0;
  text-shadow:
    0 0 28px rgba(93,168,255,0.55),
    0 2px 6px rgba(0,0,0,0.5);
}

.magnet-form-wide {
  background: linear-gradient(180deg, var(--surface-2), var(--surface-1));
  color: var(--ink-1);
  border-radius: 14px;
  padding: 44px 48px;
  position: relative;
  border: 1px solid var(--rule-strong);
  box-shadow:
    0 30px 80px -20px rgba(0,0,0,0.6),
    0 0 100px -20px rgba(93,168,255,0.45);
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.magnet-form-wide::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: 14px;
  padding: 1px;
  background: linear-gradient(140deg, rgba(93,168,255,0.6), transparent 50%, rgba(30,111,232,0.4));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}
.magnet-form-wide .form-eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--halo);
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
}
.magnet-form-wide .form-eyebrow::before {
  content: '';
  width: 24px; height: 1px;
  background: var(--halo);
  box-shadow: 0 0 6px var(--halo);
}
.magnet-form-wide h4 {
  font-family: var(--serif);
  font-size: 34px;
  margin: 0 0 6px 0;
  color: var(--ink-1);
}
.field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.field-row .field { margin-bottom: 0; }
.consent-row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  cursor: pointer;
  margin-top: 2px;
}
.consent-row input[type="checkbox"] {
  flex-shrink: 0;
  width: 18px; height: 18px;
  margin-top: 2px;
  appearance: none;
  -webkit-appearance: none;
  background: rgba(0,0,0,0.3);
  border: 1px solid var(--rule-strong);
  border-radius: 4px;
  cursor: pointer;
  position: relative;
  transition: border-color 220ms ease, background 220ms ease, box-shadow 220ms ease;
}
.consent-row input[type="checkbox"]:hover { border-color: var(--halo); }
.consent-row input[type="checkbox"]:checked {
  background: var(--royal);
  border-color: var(--royal);
  box-shadow: 0 0 12px rgba(93,168,255,0.5);
}
.consent-row input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  left: 5px; top: 1px;
  width: 5px; height: 9px;
  border: solid var(--ink-1);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.consent-row span {
  font-size: 12px;
  line-height: 1.5;
  color: var(--ink-3);
}
.consent-row span strong {
  color: var(--halo);
  font-weight: 600;
  letter-spacing: 0.05em;
}
.magnet-form-wide .btn { width: 100%; height: 54px; margin-top: 4px; }
.magnet-form-wide .form-foot {
  margin-top: 4px;
  display: flex;
  justify-content: center;
  gap: 12px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.10em;
  color: var(--ink-4);
}
.magnet-form-wide .form-foot span::before {
  content: '·';
  margin-right: 12px;
  color: var(--halo);
}
.magnet-form-wide .form-foot span:first-child::before { display: none; }

/* ====== Guidebook constellation, stars only behind cards, not header ====== */
#guides { position: relative; }
.guidebook-constellation {
  position: absolute !important;
  top: 320px;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 0;
  pointer-events: none;
}
#guides .shell { position: relative; z-index: 1; }
#guides .guidebook-grid,
#guides .guidebook-foot,
#guides .guidebook-filter,
#guides .section-head { position: relative; z-index: 1; }
.guidebook-constellation .dot { opacity: 0.85; }
#guides .guidebook-constellation {
  -webkit-mask: radial-gradient(circle 380px at var(--mx, -500px) var(--my, -500px), black 0%, black 38%, transparent 92%);
          mask: radial-gradient(circle 380px at var(--mx, -500px) var(--my, -500px), black 0%, black 38%, transparent 92%);
  transition: -webkit-mask 220ms linear, mask 220ms linear;
}

/* ====== Practitioner strip stars (very subtle cursor whisper) ====== */
.practitioner-strip { position: relative; overflow: hidden; }
.practitioner-strip .constellation {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.55;
  -webkit-mask: radial-gradient(circle 300px at var(--mx, -500px) var(--my, -500px),
    rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.50) 35%, rgba(0,0,0,0.15) 70%, transparent 100%);
          mask: radial-gradient(circle 300px at var(--mx, -500px) var(--my, -500px),
    rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.50) 35%, rgba(0,0,0,0.15) 70%, transparent 100%);
  transition: -webkit-mask 220ms linear, mask 220ms linear;
}
.practitioner-strip .constellation .dot {
  opacity: 0.45;
}
.practitioner-strip .constellation .dot.lg {
  width: 3px;
  height: 3px;
  box-shadow: 0 0 6px rgba(93,168,255,0.45);
}
.practitioner-strip .shell-tight { position: relative; z-index: 1; }

/* Guidebook bottom, no bridge glow (kept clean per request) */
#guides::after { display: none !important; }
/* Community keeps its original subtle hue, no extension upward */
.community { overflow: hidden; }

/* ====== About portrait, real headshot photo ====== */
.about-portrait { overflow: visible; isolation: isolate; }
.about-portrait::before { display: none !important; }
.about-portrait::after { z-index: 4; }
.about-portrait-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  z-index: 1;
  display: block;
}
.about-portrait .frame-num,
.about-portrait .frame-tag {
  z-index: 5;
  background: rgba(0,0,0,0.50);
  padding: 5px 10px;
  border-radius: 4px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: var(--ink-1);
}

/* ====== Mobile, reorder hero, hide floating cards ====== */
@media (max-width: 920px) {
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .hero-left  { order: 2; }
  .hero-right { order: 1; }

  .float-card { display: none; }
  .holo-connections { opacity: 0; }
  .holo-stage { width: min(72%, 280px); }
  .hero-portrait.hero-portrait-book { padding: 0; }

  .magnet-row-cols { grid-template-columns: 1fr; gap: 56px; }
  .magnet-image { min-height: 340px; }
  .guide-book-large { width: 220px; }
  .field-row { grid-template-columns: 1fr; gap: 10px; }
  .magnet-form-wide { padding: 32px 24px; }
}

/* ====== Mouse-radius Star Reveal, hero + slogan + newsletter ====== */
.hero .constellation,
.slogan-section .constellation,
.newsletter .constellation {
  /* stars only visible inside cursor radius, wider + stronger */
  -webkit-mask:
    radial-gradient(circle 460px at var(--mx, -500px) var(--my, -500px),
      black 0%, black 46%, transparent 96%);
          mask:
    radial-gradient(circle 460px at var(--mx, -500px) var(--my, -500px),
      black 0%, black 46%, transparent 96%);
  transition: -webkit-mask 220ms linear, mask 220ms linear;
}

/* boost star visibility inside the reveal radius */
.newsletter .constellation .dot { opacity: 0.95; }
.newsletter .constellation .dot.lg {
  width: 6px;
  height: 6px;
  box-shadow: 0 0 16px var(--halo), 0 0 34px var(--halo);
}

/* Hero (section 2) + Slogan-as-hero (section 1), strong star cursor reveal */
.hero .constellation,
.slogan-section .constellation {
  -webkit-mask: radial-gradient(circle 640px at var(--mx, -500px) var(--my, -500px),
    rgba(0,0,0,1.0) 0%, rgba(0,0,0,0.92) 38%, rgba(0,0,0,0.58) 72%, transparent 100%);
          mask: radial-gradient(circle 640px at var(--mx, -500px) var(--my, -500px),
    rgba(0,0,0,1.0) 0%, rgba(0,0,0,0.92) 38%, rgba(0,0,0,0.58) 72%, transparent 100%);
}
.hero .constellation .dot,
.slogan-section .constellation .dot {
  opacity: 0.92;
}
.hero .constellation .dot.lg,
.slogan-section .constellation .dot.lg {
  width: 6px;
  height: 6px;
  box-shadow: 0 0 22px rgba(93,168,255,0.95), 0 0 44px rgba(93,168,255,0.60);
}

/* Lock first slogan line, "Making AI practical for" never wraps */
.slogan-headline .slogan-line:first-child .inner { white-space: nowrap; }

/* Slogan-line padding, clear space for descenders (y, p, g) */
.slogan-line { padding: 0.10em 0 0.20em !important; }

/* Hero (section 2), two columns: headline left, brain right */
.hero .hero-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 64px;
  align-items: center;
}
@media (max-width: 920px) {
  .hero .hero-grid { grid-template-columns: 1fr; gap: 32px; }
}

/* Spline brain embed */
.brain-embed {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  max-width: 560px;
  margin-left: auto;
}
.brain-embed spline-viewer {
  display: block;
  width: 100%;
  height: 100%;
  background: transparent;
  --spline-watermark-display: none; /* hide Spline watermark when possible */
}
.brain-embed spline-viewer::part(logo) { display: none !important; }

/* Section 003, book + form stacked in right column */
.magnet-stack {
  display: flex;
  flex-direction: column;
  gap: 48px;
}
.magnet-image {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 480px;
  position: relative;
}
.magnet-image .hero-portrait.hero-portrait-book {
  width: 100%;
  max-width: 380px;
  aspect-ratio: 4 / 5;
}

/* Bigger book wordmark, sized to fit the larger book cover */
.holo-title {
  font-family: var(--serif);
  font-size: clamp(42px, 5.8vw, 66px);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.0;
  color: var(--ink-1);
  font-variation-settings: 'opsz' 144;
  text-align: center;
  margin: auto 0;
  text-shadow: 0 3px 10px rgba(0,0,0,0.8);
}
.holo-title span,
.holo-title em {
  display: block;
}
.holo-title em {
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 80;
  font-size: 1.22em;
  margin: 6px 0;
  letter-spacing: -0.020em;
  text-shadow:
    0 0 40px rgba(93,168,255,0.70),
    0 3px 8px rgba(0,0,0,0.7);
}
.magnet-image .holo-cover-inner {
  inset: 38px 30px;
  height: calc(100% - 76px);
  padding-top: 0;
  justify-content: center;
}

/* Section 003 mobile */
@media (max-width: 920px) {
  .magnet-stack { gap: 32px; }
  .magnet-image { min-height: 380px; }
  .magnet-image .hero-portrait.hero-portrait-book { max-width: 280px; }
}

/* Scroll prompt (slogan as hero), bouncing arrow */
.scroll-prompt-slogan {
  position: absolute;
  bottom: 48px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  z-index: 3;
}
.scroll-prompt-slogan span:first-child {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.scroll-arrow {
  display: inline-block;
  font-size: 16px;
  color: var(--halo);
  text-shadow: 0 0 10px rgba(93,168,255,0.55);
  animation: scroll-bounce 1.7s ease-in-out infinite;
}
@keyframes scroll-bounce {
  0%, 100% { transform: translateY(0); opacity: 0.5; }
  50%     { transform: translateY(8px); opacity: 1; }
}

.newsletter .constellation,
.slogan-section .constellation {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.newsletter .shell-prose { position: relative; z-index: 1; }

/* ====== Magnet Form Book (book inside the form) ====== */
.magnet-form-book {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 28px;
  padding: 12px 0 4px;
  perspective: 1600px;
}
.magnet-form-book .guide-book {
  width: 130px;
  aspect-ratio: 130 / 184;
  position: relative;
  transform-style: preserve-3d;
  transform: rotateY(-18deg) rotateX(-4deg);
  animation: gb-mini-float 9s ease-in-out infinite;
}
@keyframes gb-mini-float {
  0%, 100% { translate: 0 0; }
  50%     { translate: 0 -6px; }
}
.magnet-form-book .book-cover-inner {
  inset: 18px 16px;
  height: calc(100% - 36px);
}
.magnet-form-book .book-eyebrow { font-size: 7px; }
.magnet-form-book .book-title { font-size: 18px; }
.magnet-form-book .book-rule { width: 18px; margin-bottom: 8px; }
.magnet-form-book .book-sub { font-size: 8px; max-width: 16ch; }

/* ====== Floating Service Cards ====== */
.float-card {
  position: absolute;
  width: 180px;
  background: rgba(10,10,10,0.72);
  backdrop-filter: blur(22px) saturate(140%);
  -webkit-backdrop-filter: blur(22px) saturate(140%);
  border: 1px solid rgba(93,168,255,0.22);
  border-radius: 10px;
  padding: 13px 16px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  box-shadow:
    0 0 28px rgba(93,168,255,0.18),
    0 12px 32px rgba(0,0,0,0.5);
  z-index: 4;
  opacity: 0;
  text-decoration: none;
  cursor: pointer;
  white-space: normal;
  --depth: 0.9;
  transition:
    transform 480ms cubic-bezier(0.16, 1, 0.3, 1),
    border-color 320ms ease,
    box-shadow 320ms ease,
    background 320ms ease;
  isolation: isolate;
  pointer-events: auto;
  /* parallax displacement composes with hover transform */
  translate: calc(var(--cx, 0px) * var(--depth)) calc(var(--cy, 0px) * var(--depth));
}
.float-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 10px;
  background: linear-gradient(120deg, rgba(93,168,255,0.4), transparent 50%, rgba(30,111,232,0.3));
  opacity: 0;
  transition: opacity 320ms ease;
  z-index: -1;
  filter: blur(10px);
}
.float-card:hover {
  transform: translateY(-6px) scale(1.04);
  border-color: var(--halo);
  background: rgba(20,28,52,0.85);
  box-shadow:
    0 0 50px rgba(93,168,255,0.42),
    0 20px 40px rgba(0,0,0,0.6);
}
.float-card:hover::before { opacity: 1; }
.float-card:hover .fc-title { color: var(--halo-bright); }

.fc-eyebrow {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--halo);
  text-shadow: 0 0 10px rgba(93,168,255,0.42);
}
.fc-title {
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.18;
  letter-spacing: -0.01em;
  color: var(--ink-1);
  font-variation-settings: 'opsz' 36;
  transition: color 280ms ease;
}

/* symmetric pentagon placement, tight to the book */
.fc-tools      { top: 2%;     left: calc(50% - 90px); }   /* top-center */
.fc-newsletter { top: 30%;    right: -2%; }               /* upper-right */
.fc-community  { bottom: 10%; right: -2%; }               /* lower-right */
.fc-prompts    { bottom: 10%; left: -2%; }                /* lower-left */
.fc-courses    { top: 30%;    left: -2%; }                /* upper-left */

/* staggered entrance + independent gentle bobbing */
.fc-tools      { animation: card-appear 0.9s cubic-bezier(0.16,1,0.3,1) 0.7s forwards, card-bob 7.0s ease-in-out 1.7s infinite; }
.fc-courses    { animation: card-appear 0.9s cubic-bezier(0.16,1,0.3,1) 0.9s forwards, card-bob 8.2s ease-in-out 1.9s infinite; }
.fc-newsletter { animation: card-appear 0.9s cubic-bezier(0.16,1,0.3,1) 1.1s forwards, card-bob 9.0s ease-in-out 2.1s infinite; }
.fc-prompts    { animation: card-appear 0.9s cubic-bezier(0.16,1,0.3,1) 1.3s forwards, card-bob 7.6s ease-in-out 2.3s infinite; }
.fc-community  { animation: card-appear 0.9s cubic-bezier(0.16,1,0.3,1) 1.5s forwards, card-bob 8.5s ease-in-out 2.5s infinite; }

@keyframes card-appear {
  from { opacity: 0; transform: scale(0.84) translateY(10px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
@keyframes card-bob {
  0%, 100% { transform: translateY(0); }
  50%     { transform: translateY(-5px); }
}

/* ====== Practitioner Strip ====== */
/* ====== Start Here Intro Strip ====== */
.practitioner-strip { padding: 48px 0 80px; position: relative; }
.ps-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 96px;
  align-items: center;
  max-width: 960px;
  margin: 0 auto;
}
/* Photo, scale up + lift in, long cinematic ease */
.ps-left.reveal {
  opacity: 0;
  transform: translateY(48px) scale(0.93);
  transition: opacity 1000ms cubic-bezier(0.16,1,0.3,1),
              transform 1100ms cubic-bezier(0.16,1,0.3,1);
}
.ps-left.reveal.in {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.ps-left { position: relative; }
.ps-photo-wrap { position: relative; }
.ps-photo-wrap img { width: 100%; height: auto; display: block; border-radius: 14px; }

/* Right column: each child slides in from right, bigger travel distance */
.ps-right { display: flex; flex-direction: column; }
.ps-right .reveal {
  opacity: 0;
  transform: translateX(52px);
  transition: opacity 900ms cubic-bezier(0.16,1,0.3,1),
              transform 900ms cubic-bezier(0.16,1,0.3,1);
}
.ps-right .reveal.in  { opacity: 1; transform: translateX(0); }
.ps-right .reveal[data-delay="1"] { transition-delay: 180ms; }
.ps-right .reveal[data-delay="2"] { transition-delay: 340ms; }
.ps-right .reveal[data-delay="3"] { transition-delay: 500ms; }
.ps-right .reveal[data-delay="4"] { transition-delay: 660ms; }

/* Headline, large, premium, natural serif weight */
.ps-right h2 {
  font-size: clamp(34px, 3.8vw, 50px);
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin-top: 0;
}

/* Steps */
.ps-steps { display: flex; flex-direction: column; gap: 0; margin: 36px 0 44px; }
.ps-step {
  position: relative;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 20px 0 20px 0;
  border-bottom: 1px solid rgba(93,168,255,0.1);
  transition: background 300ms ease, transform 300ms cubic-bezier(0.16,1,0.3,1), padding-left 300ms cubic-bezier(0.16,1,0.3,1);
  cursor: default;
  border-radius: 4px;
  text-decoration: none;
}
.ps-steps .ps-step:first-child { border-top: 1px solid rgba(93,168,255,0.1); }

/* Left accent bar, slides down into view on hover */
.ps-step::before {
  content: '';
  position: absolute;
  left: -1px; top: 50%;
  width: 2px; height: 0;
  background: var(--halo);
  border-radius: 2px;
  transform: translateY(-50%);
  transition: height 300ms cubic-bezier(0.16,1,0.3,1);
}
.ps-step:hover::before { height: 60%; }
.ps-step:hover {
  background: rgba(93,168,255,0.04);
  padding-left: 16px;
  transform: translateX(4px);
}
.ps-step:hover .ps-step-num { opacity: 1; }

.ps-step-num {
  font-family: var(--mono);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--halo);
  opacity: 0.75;
  flex-shrink: 0;
  width: 30px;
  transition: opacity 280ms ease;
}
.ps-step-label {
  font-size: 17px;
  font-weight: 500;
  color: var(--ink-1);
  flex: 1;
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.ps-step-arr {
  font-size: 14px;
  color: var(--halo);
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity 260ms ease, transform 260ms cubic-bezier(0.16,1,0.3,1);
}
.ps-step:hover .ps-step-arr { opacity: 0.75; transform: translateX(0); }
.ps-right .btn { font-size: 13px; padding: 12px 22px; }

@media (max-width: 780px) {
  .ps-grid { grid-template-columns: 1fr; gap: 40px; max-width: 400px; }
  .ps-left.reveal  { transform: translateY(28px); }
  .ps-right .reveal { transform: translateY(28px); }
}

/* ====== Nav, bigger on entry, shrinks on scroll ====== */
.nav { padding: 30px 40px; transition: padding 380ms cubic-bezier(0.16, 1, 0.3, 1); }
.nav .wordmark {
  font-size: 40px;
  transition: font-size 380ms cubic-bezier(0.16, 1, 0.3, 1);
}
.nav-wrap.scrolled .nav { padding: 16px 40px; }
.nav-wrap.scrolled .nav .wordmark { font-size: 22px; }

/* ========== SECTION 003, Solid Guide Book ========== */
.guide-book-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  perspective: 1800px;
  margin: 0 auto 56px;
  width: 180px;
  aspect-ratio: 180 / 256;
  position: relative;
}
.guide-book {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  animation: gb-float 9s ease-in-out infinite;
}
@keyframes gb-float {
  0%, 100% { transform: rotateY(-18deg) rotateX(-4deg) translateY(0); }
  50%     { transform: rotateY(-22deg) rotateX(-6deg) translateY(-8px); }
}
.guide-book .book-cover {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #11162A 0%, #1F274A 45%, #0A0E1F 100%);
  border-radius: 3px 7px 7px 3px;
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow:
    1px 0 0 #E8E4D8, 2px 0 0 #DCD8CA, 3px 0 0 #E8E4D8, 4px 0 0 #DCD8CA,
    5px 0 0 #E8E4D8, 6px 0 0 #DCD8CA, 7px 0 0 #E8E4D8, 8px 0 0 #DCD8CA,
    9px 0 0 #E8E4D8, 10px 0 0 #DCD8CA, 11px 0 0 #E8E4D8, 12px 0 0 #DCD8CA,
    14px 8px 28px rgba(0,0,0,0.55),
    0 0 50px rgba(93,168,255,0.20);
  overflow: hidden;
}
.guide-book .book-cover::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
}
.guide-book .book-cover::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  left: 5px;
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(93,168,255,0.5), transparent);
  box-shadow: 0 0 6px rgba(93,168,255,0.4);
}
.guide-book .book-cover-inner {
  position: absolute;
  inset: 22px 18px;
  display: flex;
  flex-direction: column;
  height: calc(100% - 44px);
}
.guide-book .book-eyebrow {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.30em;
  color: var(--halo);
  text-transform: uppercase;
  text-shadow: 0 0 8px rgba(93,168,255,0.4);
}
.guide-book .book-title {
  font-family: var(--serif);
  font-size: 22px;
  line-height: 0.96;
  letter-spacing: -0.025em;
  color: #FFFFFF;
  font-weight: 400;
  margin: auto 0 8px;
  font-variation-settings: 'opsz' 144;
}
.guide-book .book-title em {
  color: var(--halo);
  font-style: italic;
  font-variation-settings: 'opsz' 144, 'SOFT' 100;
  text-shadow: 0 0 14px rgba(93,168,255,0.4);
}
.guide-book .book-rule {
  width: 22px;
  height: 1px;
  background: var(--halo);
  margin-bottom: 10px;
  box-shadow: 0 0 6px var(--halo);
}
.guide-book .book-sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: 9px;
  line-height: 1.4;
  color: rgba(255,255,255,0.62);
  font-weight: 300;
  font-variation-settings: 'opsz' 18, 'SOFT' 50;
  max-width: 18ch;
}
.guide-book .book-edition {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.28em;
  color: rgba(255,255,255,0.45);
  text-transform: uppercase;
  margin-top: auto;
}

@media (max-width: 920px) {
  .holo-stage { width: 220px; }
  .float-card { padding: 11px 14px; }
  .fc-title { font-size: 15px; }
  .float-card-1 { left: -8%; }
  .float-card-2 { right: -8%; }
  .float-card-3 { left: -8%; }
  .float-card-4 { right: -8%; }
  .guide-book-stage { width: 150px; margin-bottom: 40px; }
}

/* ====== Final Haze Cleanup, pure dark, no ambient gradients ====== */
.newsletter::before { display: none; }
.about-section::before { display: none; }
.footer::before { display: none; }
.magnet-section .grid-overlay { display: none; }
.final-cta::before { opacity: 0.55; }
.final-cta::after { display: none; }
.community::after { display: none; }
.eyebrow .pulse-dot::after { display: none; }
.feed-item .platform::before { display: none; }

/* ====== Speaking & Training homepage teaser ====== */
.speaking-cta-section { position: relative; padding: 60px 0 80px; overflow: hidden; background: #0A0A0A; }
.speaking-cta-grid { position: relative; z-index: 2; display: block; }
.speaking-cta-photo-strip { position: relative; height: 260px; border-radius: 16px; overflow: hidden; margin-bottom: 32px; }
.speaking-cta-photo-strip img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: center top; display: block; }
.speaking-cta-photo-strip::after { content: ''; position: absolute; inset: 0; background: rgba(10,10,10,0.45); }
.speaking-cta-copy h2 { text-align: left; margin: 18px 0 0; max-width: 16ch; }
.speaking-cta-copy p.body-l { margin: 18px 0 28px; max-width: 46ch; }
.speaking-cta-ctas { display: flex; gap: 14px; flex-wrap: wrap; }
@media (min-width: 900px) {
  .speaking-cta-section { padding: 0; min-height: 620px; display: flex; align-items: center; }
  .speaking-cta-section .shell { width: 100%; }
  .speaking-cta-fullbg {
    position: absolute; inset: 0; z-index: 0;
    background-image:
      linear-gradient(to right, rgba(10,10,10,0.42) 0%, rgba(10,10,10,0.5) 38%, rgba(10,10,10,0.88) 62%, #0A0A0A 82%),
      image-set(
        url('images/speaking-photo.webp') type('image/webp'),
        url('images/speaking-photo.jpg') type('image/jpeg')
      );
    background-repeat: no-repeat;
    background-size: contain;
    background-position: left center;
  }
  .speaking-cta-photo-strip { display: none; }
  .speaking-cta-grid { display: flex; justify-content: flex-end; }
  .speaking-cta-copy { max-width: 480px; }
}
@media (max-width: 900px) {
  .speaking-cta-copy h2 { text-align: center; max-width: none; }
  .speaking-cta-copy p.body-l { margin-left: auto; margin-right: auto; text-align: center; }
  .speaking-cta-ctas { justify-content: center; }
}
