/* ---- RESET-ish ---- */
*,
*::before,
*::after { box-sizing: border-box; -webkit-font-smoothing: antialiased; }

body {
  margin: 0;
  background-color: #fff;
  color: #0a0a0a;
  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
  line-height: 1.4;
}

/* =======================
   Tokens & Theme
   ======================= */
:root{
  --bg-page: #ffffff;
  --bg-card: #ffffff;
  --text-primary: #0a0a0a;
  --text-dim: #4a4a4a;
  --stroke-soft: rgba(0,0,0,0.07);
  --stroke-faint: rgba(0,0,0,0.04);

  --accent-cyan: #6BA7DB;
  --accent-cyan-translucent: rgba(107,167,219,0.30);
  --accent-cyan-faint: rgba(107,167,219,0.10);

  /* Glass look */
  --topbar-bg-main: rgba(255,255,255,0.12);
  --topbar-bg-glow: rgba(255,255,255,0.28);
  --topbar-border: rgba(255,255,255,0.6);
  --topbar-outline: rgba(0,0,0,0.08);

  /* Animation */
  --ease-smooth: cubic-bezier(0.22,1,0.36,1);
  --dur-fast: 300ms;
  --dur-med: 400ms;

  /* Blur (smaller delta = smoother) */
  --topbar-blur-expanded: blur(8px);
  --topbar-blur-compact: blur(12px);

  /* Header sizing */
  --topbar-height-expanded: 7rem;
  --topbar-padY-expanded: 1.2rem;
  --topbar-padX-expanded-left: 2rem;
  --topbar-padX-expanded-right: 1.5rem;

  --topbar-height-compact: 4rem;  /* tweak this for compact height */
  --topbar-padY-compact: 0.6rem;
  --topbar-padX-compact: 1.2rem;    /* lower = logo/burger sit closer to edges */

  /* Logo/Burger sizes */
  --logo-size-expanded: 2.5rem;
  --logo-size-compact: 2rem;

  --burger-line-w-expanded: 2.5rem;
  --burger-line-w-compact: 2rem;
  --burger-line-gap-expanded: 0.7rem;
  --burger-line-gap-compact: 0.5rem;
  --burger-line-h-expanded: 4px;
  --burger-line-h-compact: 4px;

  /* Page offset derived from heights */
  --header-offset-expanded: calc(var(--topbar-height-expanded) + 4rem);
  --header-offset-compact:  calc(var(--topbar-height-compact)  + 2rem);
}

/* =======================
   Floating Top Bar
   ======================= */
.topbar{
  position: fixed;
  top: 0;
  inset-inline: 0;
  z-index: 1000;
  display: flex;
  justify-content: center;
  pointer-events: none;
  padding-top: 2rem;
}

/* Expanded (default) */
.topbar-inner{
  pointer-events: auto;
  position: relative;
  width: 97%;

  background-image:
    radial-gradient(circle at 20% 20%, var(--topbar-bg-glow) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(to bottom right, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0.05) 60%),
    var(--topbar-bg-main);
  background-blend-mode: screen, normal, normal;

  -webkit-backdrop-filter: var(--topbar-blur-expanded);
  backdrop-filter: var(--topbar-blur-expanded);

  border-radius: 0.75rem;
  border: 1px solid var(--topbar-outline);
  box-shadow:
    0 24px 60px -10px rgba(0,0,0,0.18),
    0 2px 4px rgba(0,0,0,0.12);

  display: flex;
  align-items: center;
  justify-content: space-between;

  padding-inline: var(--topbar-padX-expanded-left) var(--topbar-padX-expanded-right);
  padding-block: var(--topbar-padY-expanded);
  min-height: var(--topbar-height-expanded);

  gap: 2rem;

  transition:
    padding var(--dur-med) var(--ease-smooth),
    min-height var(--dur-med) var(--ease-smooth),
    width var(--dur-med) var(--ease-smooth),
    border-radius var(--dur-med) var(--ease-smooth),
    box-shadow var(--dur-med) var(--ease-smooth),
    backdrop-filter var(--dur-med) var(--ease-smooth),
    -webkit-backdrop-filter var(--dur-med) var(--ease-smooth);

  /* active expanded sizes */
  --logo-size: var(--logo-size-expanded);
  --burger-line-w: var(--burger-line-w-expanded);
  --burger-line-gap: var(--burger-line-gap-expanded);
  --burger-line-h: var(--burger-line-h-expanded);
}

/* glossy highlight */
.topbar-inner::before{
  content: "";
  position: absolute;
  left: 0; right: 0; top: 0;
  height: 1px;
  border-radius: inherit;
  background: linear-gradient(to right,
    rgba(255,255,255,0) 0%,
    var(--topbar-border) 20%,
    var(--topbar-border) 80%,
    rgba(255,255,255,0) 100%);
  pointer-events: none;
  mix-blend-mode: screen;
  opacity: 0.7;
}

/* subtle texture */
.topbar-inner::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background-image: repeating-radial-gradient(
    circle at 0 0,
    rgba(255,255,255,0.3) 0px,
    rgba(255,255,255,0.3) 0.5px,
    rgba(0,0,0,0) 0.5px,
    rgba(0,0,0,0) 2px
  );
  opacity: 0.15;
  mix-blend-mode: soft-light;
  pointer-events: none;
  transition: opacity var(--dur-med) var(--ease-smooth);
}

/* Compact (after scroll) */
.topbar-inner.compact{
  min-height: var(--topbar-height-compact);
  padding-block: var(--topbar-padY-compact);
  padding-inline: var(--topbar-padX-compact) var(--topbar-padX-compact);
  border-radius: 0.6rem;
  width: 95%;

  box-shadow:
    0 18px 50px -12px rgba(0,0,0,0.20),
    0 2px 4px rgba(0,0,0,0.10);

  -webkit-backdrop-filter: var(--topbar-blur-compact);
  backdrop-filter: var(--topbar-blur-compact);

  justify-content: space-between;

  /* active compact sizes */
  --logo-size: var(--logo-size-compact);
  --burger-line-w: var(--burger-line-w-compact);
  --burger-line-gap: var(--burger-line-gap-compact);
  --burger-line-h: var(--burger-line-h-compact);
}
.topbar-inner.compact::after{ opacity: 0.12; }

/* Brand block */
.brand{
  display:flex; align-items:center; gap:1rem;
  font-weight:600; font-size:1.8rem; color:var(--text-primary);
  letter-spacing:-0.03em; white-space:nowrap; line-height:1;
  position:relative; z-index:1;
}

/* Logo image (no cyan border) */
.brand-mark{
  width:var(--logo-size); height:var(--logo-size);
  object-fit:contain; flex-shrink:0;
  transition: width var(--dur-fast) var(--ease-smooth),
              height var(--dur-fast) var(--ease-smooth),
              opacity var(--dur-fast) var(--ease-smooth);
}
#brandName{
  transition: opacity var(--dur-med) var(--ease-smooth) 40ms;
  will-change: opacity;
}

/* Burger (hit area fixed, lines resize) */
.burger{
  background:transparent; border:0; padding:1rem 1.2rem;
  border-radius:1rem; line-height:0; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-width:4.5rem; min-height:4.5rem; position:relative; z-index:1;
  gap:var(--burger-line-gap);
  transition: gap var(--dur-fast) var(--ease-smooth);
}
.burger:focus-visible{ outline:2px solid var(--accent-cyan); outline-offset:2px; }
.burger-line{
  width:var(--burger-line-w); height:var(--burger-line-h);
  border-radius:999px; background:#0a0a0a;
  transition:
    width var(--dur-fast) var(--ease-smooth),
    height var(--dur-fast) var(--ease-smooth);
}

/* =======================
   Page Frame & Sections
   ======================= */
.page-shell{
  min-height:100dvh; display:flex; flex-direction:column; background:var(--bg-page);
  background-image: radial-gradient(circle at 70% 30%, rgba(107,167,219,0.06) 0%, transparent 60%);
  background-repeat:no-repeat; background-size:cover;
  padding-inline:clamp(1rem,2vw,2rem);
  max-width:1400px; margin-inline:auto;

  /* offset below header - fixed to avoid layout shifts */
  padding-top: 11rem;
}

/* Hero Image Section */
.hero-image{
  width:96vw; 
  aspect-ratio: 1 / 1;
  margin-inline:auto;
  margin-bottom:3rem; 
  border-radius:1rem; 
  overflow:hidden;
  box-shadow: 0 40px 120px -20px rgba(0,0,0,0.12), 0 2px 4px rgba(0,0,0,0.06);
  border:1px solid var(--stroke-soft);
  will-change: auto;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
}
.hero-img{
  width:100%; 
  height:100%; 
  display:block; 
  object-fit:cover;
  object-position:center bottom;
}

/* Content Section */
.content-section{
  display:flex; flex-direction:column; gap:2rem; padding-bottom:3rem;
}
.content-copy{ max-width:42rem; margin-inline:auto; width:100%; }
.headline{
  font-size:clamp(2rem,1.2vw + 1.5rem,3rem); line-height:1.1; letter-spacing:-0.04em;
  font-weight:500; color:var(--text-primary); margin:0 0 1rem;
}
.lede{ font-size:1rem; line-height:1.4; max-width:36ch; color:var(--text-dim); margin:0 0 2rem; }

/* Actions */
.actions{ display:flex; flex-wrap:wrap; gap:0.75rem 1rem; margin-bottom:2rem; }
.button-primary{
  display:inline-block; background-color:var(--accent-cyan); color:#0a0a0a; font-weight:500;
  font-size:0.8rem; line-height:1.2; text-decoration:none; padding:0.7rem 1rem; border-radius:0.5rem;
  box-shadow: 0 8px 24px -4px var(--accent-cyan-translucent),
              0 0 30px var(--accent-cyan-faint),
              0 0 2px 1px rgba(107,167,219,0.4) inset;
  border:1px solid rgba(0,0,0,0.1);
}
.button-primary:focus-visible{ outline:2px solid var(--accent-cyan); outline-offset:2px; }
.button-ghost{
  display:inline-block; background:transparent; border-radius:0.5rem; border:1px solid var(--stroke-soft);
  color:var(--text-primary); font-weight:500; font-size:0.8rem; line-height:1.2; text-decoration:none; padding:0.7rem 1rem;
}
.button-ghost:hover{ background-color:rgba(0,0,0,0.03); }

/* Cred strip */
.cred-strip{
  display:flex; flex-wrap:wrap; align-items:flex-start; gap:1rem 1.5rem; padding:1rem 1rem;
  border:1px solid var(--stroke-soft); border-radius:0.75rem; background-color:var(--bg-card);
  box-shadow: 0 24px 60px -10px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);
  max-width:36rem;
}
.cred-item{ min-width:12rem; display:flex; align-items:flex-start; gap:0.5rem; }
.cred-accent{
  width:6px; height:6px; border-radius:999px; background-color:var(--accent-cyan);
  box-shadow: 0 0 6px var(--accent-cyan), 0 0 18px var(--accent-cyan-translucent);
  margin-top:0.4rem; flex-shrink:0;
}
.cred-text{ display:flex; flex-direction:column; }
.cred-label{ font-size:0.75rem; font-weight:500; color:var(--text-primary); line-height:1.3; }
.cred-sub{ font-size:0.7rem; color:var(--text-dim); line-height:1.3; }
.divider-vertical{
  width:1px; align-self:stretch; background-image:linear-gradient(to bottom,
    rgba(0,0,0,0) 0%, var(--stroke-soft) 40%, var(--stroke-soft) 60%, rgba(0,0,0,0) 100%);
}
@media (max-width:520px){ .divider-vertical{ display:none; } }


/* Metrics row */
.meta-row{
  display:flex; flex-wrap:wrap; align-items:stretch; justify-content:flex-start;
  gap:1.5rem 2rem; border-top:1px solid var(--stroke-faint); border-bottom:1px solid var(--stroke-faint);
  padding-block:1.5rem; margin-top:2rem; font-size:0.75rem; line-height:1.3; color:var(--text-primary);
  max-width:42rem; margin-inline:auto; width:100%;
}
.meta-col{ display:flex; flex-direction:column; min-width:10rem; }
.meta-label{ font-size:0.7rem; font-weight:500; color:var(--text-dim); margin-bottom:0.4rem; }
.meta-value{ font-size:0.8rem; font-weight:500; display:flex; align-items:center; gap:0.4rem; }
.meta-unit{ font-size:0.6rem; color:var(--text-dim); font-weight:400; margin-left:0.25rem; }
.status-dot{
  width:6px; height:6px; border-radius:999px; background:var(--accent-cyan);
  box-shadow: 0 0 6px var(--accent-cyan), 0 0 18px var(--accent-cyan-translucent);
}
.meta-divider{
  width:1px; align-self:stretch; background-image:linear-gradient(to bottom,
    rgba(0,0,0,0) 0%, var(--stroke-soft) 40%, var(--stroke-soft) 60%, rgba(0,0,0,0) 100%);
}
@media (max-width:480px){ .meta-divider{ display:none; } }

/* Expanded Footer */
.footer-expanded{
  margin-top:auto; padding-top:4rem; padding-bottom:2rem;
  border-top:1px solid var(--stroke-soft);
}
.footer-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
  gap:2.5rem 2rem; margin-bottom:3rem;
}
@media (max-width:768px){
  .footer-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width:480px){
  .footer-grid{ grid-template-columns:1fr; }
}

/* Footer Column */
.footer-col{ display:flex; flex-direction:column; gap:1rem; }
.footer-col:first-child{ grid-column: span 1; }
@media (min-width:1024px){
  .footer-col:first-child{ grid-column: span 2; }
}

/* Footer Brand */
.footer-brand{
  display:flex; align-items:center; gap:0.5rem; margin-bottom:0.5rem;
}
.footer-logo{
  width:1.25rem; height:1.25rem; object-fit:contain;
}
.footer-brand-name{
  font-size:0.9rem; font-weight:600; color:var(--text-primary); letter-spacing:-0.03em;
}
.footer-tagline{
  font-size:0.75rem; line-height:1.5; color:var(--text-dim); margin:0;
  max-width:28ch;
}

/* Footer Headings */
.footer-heading{
  font-size:0.8rem; font-weight:600; color:var(--text-primary);
  margin:0 0 0.75rem; letter-spacing:-0.02em;
}

/* Footer Links */
.footer-links{
  list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:0.5rem;
}
.footer-links a{
  font-size:0.75rem; color:var(--text-dim); text-decoration:none;
  line-height:1.4; transition: color var(--dur-fast) var(--ease-smooth);
}
.footer-links a:hover{
  color:var(--text-primary);
}
.footer-links a:focus-visible{
  outline:2px solid var(--accent-cyan); outline-offset:2px; border-radius:0.25rem;
}

/* Footer Bottom */
.footer-bottom{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:1.5rem; padding-top:2rem; border-top:1px solid var(--stroke-faint);
  font-size:0.7rem;
}
.footer-legal{
  display:flex; flex-direction:column; gap:0.75rem; color:var(--text-dim);
}
.footer-legal small{
  line-height:1.4; letter-spacing:-0.02em;
}
.footer-legal-links{
  display:flex; flex-wrap:wrap; gap:0.5rem 1rem;
}
.footer-legal-links a{
  color:var(--text-dim); text-decoration:none;
  transition: color var(--dur-fast) var(--ease-smooth);
}
.footer-legal-links a:hover{
  color:var(--text-primary);
}
.footer-legal-links a:focus-visible{
  outline:2px solid var(--accent-cyan); outline-offset:2px; border-radius:0.25rem;
}

/* Footer Social */
.footer-social{
  display:flex; gap:1.5rem; flex-wrap:wrap;
}
.footer-social a{
  font-size:0.75rem; color:var(--text-dim); text-decoration:none;
  transition: color var(--dur-fast) var(--ease-smooth);
}
.footer-social a:hover{
  color:var(--text-primary);
}
.footer-social a:focus-visible{
  outline:2px solid var(--accent-cyan); outline-offset:2px; border-radius:0.25rem;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .topbar-inner, .topbar-inner::after, .brand-mark, #brandName, .burger, .burger-line, .page-shell {
    transition: none !important;
  }
}
