/* ============================================================
   ALGOBIT — software consultancy · cinematic rebuild v2
   Rhythm: deep navy bands against crisp white sections.
   Logo: pure typography (algobit_) — no icon, anywhere.
   ============================================================ */

:root{
  --bg: #F7FBF8;
  --bg-2: #EDF5F0;
  --panel: rgba(1, 179, 108, .05);
  --panel-solid: #ffffff;
  --line: rgba(1, 43, 29, .14);
  --line-soft: rgba(1, 43, 29, .08);
  --ink: #012B1D;
  --muted: #3D5A4B;
  --dim: #5E7A6C;

  /* navy band tokens */
  --navy-1: #012B1D;
  --navy-2: #023A28;
  --navy-ink: #EAF5EE;
  --navy-muted: #A9C6B6;
  --navy-dim: #7FA692;
  --navy-line: rgba(1, 179, 108, .18);
  --navy-line-soft: rgba(1, 179, 108, .10);

  --accent: #01B36C;
  --accent-2: #3FC98A;
  --accent-deep: #016B41;
  --accent-soft: rgba(1, 179, 108, .1);
  --steel: #7ADBA8;
  --pink: #FEB192;
  --pink-2: #FFC9AD;
  --pink-soft: rgba(254, 177, 146, .14);
  --pass: #14b981;
  --warn: #e8960c;

  --font-body: "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-disp: "Barlow Condensed", "Arial Narrow", sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --font-brand: "Space Grotesk", "Segoe UI", sans-serif;

  --r-lg: 20px;
  --r-md: 14px;

  --shell: 1140px;
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  --spring: cubic-bezier(.34, 1.56, .64, 1);
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }

body{
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img, svg{ display: block; }
a{ color: inherit; }
b, strong{ font-weight: 600; }

::selection{ background: rgba(1, 179, 108, .25); color: inherit; }
.band-dark ::selection{ color: #fff; }

:focus-visible{
  outline: 2px solid var(--accent-2);
  outline-offset: 3px;
  border-radius: 4px;
}

.sr-only{
  position: absolute; width: 1px; height: 1px;
  clip-path: inset(50%); overflow: hidden; white-space: nowrap;
}
.skip{
  position: fixed; top: -60px; left: 16px; z-index: 200;
  background: var(--accent); color: #fff; font-weight: 600;
  padding: 10px 16px; border-radius: 8px; text-decoration: none;
  transition: top .2s var(--ease-out);
}
.skip:focus{ top: 12px; }

.shell{ width: min(var(--shell), 100% - 48px); margin-inline: auto; }

::-webkit-scrollbar{ width: 10px; }
::-webkit-scrollbar-thumb{ background: #B9D6C6; border-radius: 8px; border: 2px solid var(--bg); }
::-webkit-scrollbar-track{ background: var(--bg); }

/* ============================ bands ============================ */
.band-dark{
  position: relative;
  background: linear-gradient(180deg, var(--navy-1), var(--navy-2) 55%, var(--navy-1));
  color: var(--navy-ink);
}
.band-tint{ background: var(--bg-2); }

/* ============================ progress ============================ */
.progress{
  position: fixed; inset: 0 0 auto 0; height: 2px; z-index: 120;
  background: transparent; pointer-events: none;
}
.progress span{
  display: block; height: 100%; width: 100%;
  transform: scaleX(0); transform-origin: 0 50%;
  background: linear-gradient(90deg, var(--accent-deep), var(--accent) 55%, var(--pink));
  box-shadow: 0 0 12px rgba(1, 179, 108, .6);
}

/* ============================ cursor ============================ */
.cursor-dot, .cursor-ring{
  position: fixed; top: 0; left: 0; z-index: 300; pointer-events: none;
  border-radius: 50%; opacity: 0;
}
.cursor-dot{
  width: 6px; height: 6px; margin: -3px 0 0 -3px; background: var(--accent-2);
  transition: opacity .25s;
}
.cursor-ring{
  width: 34px; height: 34px; margin: -17px 0 0 -17px;
  border: 1.5px solid rgba(1, 179, 108, .65);
  transition: width .25s var(--ease-out), height .25s var(--ease-out),
              margin .25s var(--ease-out), opacity .25s, border-color .25s;
}
.cursor-ring.is-active{
  width: 58px; height: 58px; margin: -29px 0 0 -29px;
  border-color: rgba(1, 179, 108, .95);
  background: rgba(1, 179, 108, .08);
}
body.has-cursor .cursor-dot, body.has-cursor .cursor-ring{ opacity: 1; }
body.has-cursor, body.has-cursor a, body.has-cursor button{ cursor: none; }
@media (hover: none), (pointer: coarse){ .cursor-dot, .cursor-ring{ display: none; } }

/* ============================ header ============================ */
.site-header{
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  padding: 18px 0;
  transition: padding .35s var(--ease-out), background .35s, border-color .35s, box-shadow .35s;
  border-bottom: 1px solid transparent;
}
.site-header.scrolled{
  padding: 10px 0;
  background: rgba(247, 251, 248, .82);
  -webkit-backdrop-filter: blur(16px) saturate(1.4);
  backdrop-filter: blur(16px) saturate(1.4);
  border-bottom-color: var(--line-soft);
  box-shadow: 0 10px 34px -22px rgba(1, 43, 29, .35);
}
.header-inner{ display: flex; align-items: center; justify-content: space-between; gap: 24px; }

.logo{ display: inline-flex; align-items: baseline; text-decoration: none; }
.logo-word{
  font-family: var(--font-brand); font-weight: 700; font-size: 23px;
  letter-spacing: -.035em; color: var(--ink); line-height: 1;
}
.logo-cursor{
  color: var(--pink); font-weight: 600;
  text-shadow: 0 0 12px rgba(254, 177, 146, .55);
  animation: caret 1.1s steps(1) infinite;
}
@keyframes caret{ 50%{ opacity: 0; } }
.site-header:not(.scrolled) .logo-word{ color: #fff; }

.site-nav{ display: flex; align-items: center; gap: 28px; }
.site-nav > a:not(.btn){
  position: relative; text-decoration: none; color: var(--muted);
  font-size: 15px; font-weight: 500; padding: 4px 0;
  transition: color .25s;
}
.site-nav > a:not(.btn)::after{
  content: ""; position: absolute; left: 0; bottom: 0; height: 2px; width: 100%;
  background: linear-gradient(90deg, var(--accent-deep), var(--accent));
  border-radius: 2px; transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .3s var(--ease-out);
}
.site-nav > a:not(.btn):hover{ color: var(--ink); }
.site-nav > a:not(.btn):hover::after,
.site-nav > a.is-active::after{ transform: scaleX(1); }
.site-nav > a.is-active{ color: var(--ink); }

/* over the dark hero, before any scrolling */
.site-header:not(.scrolled) .site-nav > a:not(.btn){ color: rgba(234, 245, 238, .72); }
.site-header:not(.scrolled) .site-nav > a:not(.btn):hover,
.site-header:not(.scrolled) .site-nav > a.is-active{ color: #fff; }

.nav-toggle{
  display: none; align-items: center; gap: 10px;
  background: none; border: 1px solid var(--line); color: var(--ink);
  font: inherit; font-size: 14px; font-weight: 600;
  padding: 8px 14px; border-radius: 10px;
}
.site-header:not(.scrolled) .nav-toggle{ color: #fff; border-color: rgba(255, 255, 255, .3); }
.nav-toggle-box{ display: grid; gap: 4px; }
.nav-toggle-box span{ width: 16px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .3s var(--ease-out); }
body.nav-open .nav-toggle-box span:first-child{ transform: translateY(3px) rotate(45deg); }
body.nav-open .nav-toggle-box span:last-child{ transform: translateY(-3px) rotate(-45deg); }

/* ============================ buttons ============================ */
.btn{
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; border: 0; border-radius: 12px;
  font: 600 16px/1 var(--font-body); letter-spacing: .01em;
  padding: 15px 26px; text-decoration: none; white-space: nowrap;
  transition: transform .25s var(--spring), box-shadow .3s, background .3s, border-color .3s;
  will-change: transform;
}
.btn-primary{
  color: #fff;
  background: linear-gradient(120deg, #0FC97E, var(--accent) 42%, #E8946A 100%);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, .28) inset,
    0 10px 30px -10px rgba(1, 179, 108, .55),
    0 6px 24px -12px rgba(254, 177, 146, .5);
}
.btn-primary:hover{ transform: translateY(-2px); box-shadow: 0 1px 0 rgba(255,255,255,.28) inset, 0 16px 42px -12px rgba(1, 179, 108, .7), 0 10px 34px -12px rgba(254, 177, 146, .65); }
.btn-primary:active{ transform: translateY(0) scale(.98); }
.btn-ghost{
  color: var(--ink); background: #fff;
  border: 1px solid var(--line);
  box-shadow: 0 8px 24px -18px rgba(1, 43, 29, .5);
}
.btn-ghost:hover{ border-color: rgba(1, 179, 108, .55); background: rgba(1, 179, 108, .05); transform: translateY(-2px); }
.band-dark .btn-ghost{
  color: var(--navy-ink); background: rgba(122, 219, 168, .07);
  border: 1px solid var(--navy-line);
  box-shadow: none;
}
.band-dark .btn-ghost:hover{ border-color: rgba(63, 201, 138, .55); background: rgba(63, 201, 138, .1); }
.btn-sm{ padding: 10px 18px; font-size: 14px; border-radius: 10px; }

.btn-ghost-sm{
  display: inline-flex; align-items: center; gap: 7px;
  font: 500 13px var(--font-mono); color: var(--steel);
  border: 1px solid rgba(122, 219, 168, .35); border-radius: 9px;
  padding: 8px 13px; background: rgba(1, 179, 108, .08);
  transition: border-color .3s, background .3s;
}
.btn-ghost-sm:hover{ border-color: rgba(122, 219, 168, .7); background: rgba(1, 179, 108, .16); }
.btn-ghost-sm svg{ width: 14px; height: 14px; }

/* ============================ hero ============================ */
.hero{ position: relative; overflow: clip; padding: 168px 0 40px; }

.hero-bg{ position: absolute; inset: 0; pointer-events: none; }
.sub-bg{ z-index: 0; overflow: clip; }
.band-dark > .shell{ position: relative; z-index: 1; }

.spotlight{
  position: absolute; inset: 0;
  background: radial-gradient(560px circle at var(--mx, 70%) var(--my, 30%),
    rgba(63, 201, 138, .13), rgba(254, 177, 146, .06) 40%, transparent 68%);
  transition: opacity .4s;
}

.orb{ position: absolute; border-radius: 50%; opacity: .8; will-change: transform; }
.orb-1{ width: 620px; height: 620px; top: -200px; right: -140px; background: radial-gradient(circle, rgba(1,179,108,.34), rgba(1,179,108,.1) 45%, transparent 70%); animation: orb-drift 18s ease-in-out infinite alternate; }
.orb-2{ width: 560px; height: 560px; bottom: -200px; left: -160px; background: radial-gradient(circle, rgba(254,177,146,.22), rgba(254,177,146,.07) 45%, transparent 70%); animation: orb-drift 22s ease-in-out infinite alternate-reverse; }
.orb-3{ width: 420px; height: 420px; top: 30%; left: 42%; background: radial-gradient(circle, rgba(63,201,138,.2), rgba(63,201,138,.06) 45%, transparent 70%); animation: orb-drift 26s ease-in-out infinite alternate; }
@keyframes orb-drift{ from{ transform: translate3d(0,0,0) scale(1); } to{ transform: translate3d(40px, -30px, 0) scale(1.12); } }

.noise{
  position: absolute; inset: 0; opacity: .5; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.meteors span{
  position: absolute; top: 0; left: 0;
  width: 2px; height: 2px; border-radius: 50%;
  background: rgba(160, 235, 200, .9);
  box-shadow: 0 0 0 1px rgba(160, 235, 200, .15);
  animation: meteor 9s linear infinite;
  animation-delay: var(--md, 0s);
  opacity: 0;
}
.meteors span::before{
  content: ""; position: absolute; top: 50%; right: 0;
  height: 1.5px; width: 130px;
  transform: translateY(-50%) rotate(35deg); transform-origin: right center;
  background: linear-gradient(270deg, rgba(63, 201, 138, .8), transparent);
}
.meteors span:nth-child(1){ --md: 0s;   left: 12%; animation-duration: 8s; }
.meteors span:nth-child(2){ --md: 2.4s; left: 32%; animation-duration: 11s; }
.meteors span:nth-child(3){ --md: 4.8s; left: 55%; animation-duration: 9.5s; }
.meteors span:nth-child(4){ --md: 1.2s; left: 72%; animation-duration: 12s; }
.meteors span:nth-child(5){ --md: 6s;   left: 88%; animation-duration: 8.6s; }
.meteors span:nth-child(6){ --md: 7.4s; left: 45%; animation-duration: 10.4s; }
.meteors span:nth-child(even){ background: rgba(255, 200, 165, .9); box-shadow: 0 0 0 1px rgba(254, 177, 146, .2); }
.meteors span:nth-child(even)::before{ background: linear-gradient(270deg, rgba(254, 177, 146, .8), transparent); }
@keyframes meteor{
  0%{ transform: translate3d(0, 0, 0) rotate(215deg) translateX(0); opacity: 1; }
  4%{ opacity: 1; }
  60%{ opacity: 0; }
  100%{ transform: translate3d(-520px, 420px, 0) rotate(215deg) translateX(0); opacity: 0; }
}

.hero-inner{
  display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
  align-items: center; gap: 56px;
}

/* chips + kicker */
.chip, .kicker{
  display: inline-flex; align-items: center; gap: 9px;
  font: 600 12.5px/1 var(--font-mono); letter-spacing: .16em; text-transform: uppercase;
  color: var(--muted);
  border: 1px solid var(--line); border-radius: 999px;
  padding: 9px 16px; background: #fff;
  box-shadow: 0 6px 20px -14px rgba(1, 43, 29, .4);
}
.chip-dot, .kicker-dot{
  width: 6px; height: 6px; border-radius: 50%; background: var(--pink);
  box-shadow: 0 0 10px rgba(254, 177, 146, .7);
  animation: blink 2.4s ease-in-out infinite;
}
@keyframes blink{ 0%,100%{ opacity: 1; } 50%{ opacity: .35; } }

.band-dark .kicker{
  color: var(--navy-muted); background: rgba(122, 219, 168, .05);
  border-color: var(--navy-line); box-shadow: none;
}
.band-dark .kicker-dot{ background: var(--pink-2); box-shadow: 0 0 12px rgba(255, 201, 173, .8); }

.chip-shine{
  position: relative; overflow: hidden;
  color: #DFF5E9; border-color: rgba(63, 201, 138, .4);
  background: rgba(122, 219, 168, .06);
  box-shadow: none;
}
.chip-shine::after{
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(110deg, transparent 30%, rgba(223, 245, 233, .22) 50%, transparent 70%);
  background-size: 220% 100%;
  animation: shine 3.4s linear infinite;
}
@keyframes shine{ to{ background-position: -220% 0; } }

/* headline */
.hero-title{
  margin: 26px 0 20px;
  font-family: var(--font-disp); font-weight: 700;
  font-size: clamp(50px, 6.4vw, 84px);
  line-height: .96; letter-spacing: .005em;
}
.hero-title .line{ display: block; overflow: hidden; padding-bottom: .06em; margin-bottom: -.06em; }
.line-inner{ display: inline-block; transform: translateY(112%); }
.hero-title .line-inner{
  animation: line-rise 1s var(--ease-out) forwards;
  animation-delay: var(--d, 0s);
}
@keyframes line-rise{ to{ transform: translateY(0); } }

.grad-text{
  font-style: normal;
  background: linear-gradient(100deg, var(--accent-deep), var(--accent) 45%, var(--pink));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.grad-shine{
  font-style: normal;
  background: linear-gradient(110deg, var(--accent-deep) 15%, var(--accent) 40%, var(--pink) 75%);
  background-size: 200% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: shine-text 4.5s linear infinite;
}
@keyframes shine-text{ to{ background-position: -200% 0; } }

.band-dark .grad-text{
  background: linear-gradient(100deg, #7ADBA8, #DFF5E9 40%, var(--pink-2));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.band-dark .grad-shine{
  background: linear-gradient(110deg, #3FC98A 15%, #DFF5E9 40%, var(--pink-2) 75%);
  background-size: 200% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

.lead{ font-size: 20px; color: var(--ink); margin: 0 0 12px; max-width: 34em; }
.hero-note{ color: var(--muted); font-size: 16.5px; margin: 0 0 30px; max-width: 36em; }
.hero-note strong, .lead strong{ color: var(--accent-deep); font-weight: 600; }

.hero .lead{ color: var(--navy-ink); }
.hero .hero-note{ color: var(--navy-muted); }
.hero .hero-note strong{ color: #8FE0B8; }

.hero-cta{ display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

.hero-alt{ display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 26px; }
.walkthrough{
  display: inline-flex; align-items: center; gap: 9px;
  color: var(--accent-deep); text-decoration: none; font-weight: 600; font-size: 15px;
  border-bottom: 1px dashed rgba(1, 179, 108, .55); padding-bottom: 2px;
  transition: color .25s, border-color .25s;
}
.walkthrough svg{ width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.walkthrough:hover{ color: var(--accent); border-color: var(--accent); }
.free-note{ font-size: 13.5px; color: var(--dim); max-width: 30em; }

.hero .walkthrough{ color: var(--steel); border-bottom-color: rgba(122, 219, 168, .5); }
.hero .walkthrough:hover{ color: #DFF5E9; border-color: #DFF5E9; }
.hero .free-note{ color: var(--navy-dim); }

/* ============================ code editor ============================ */
.hero-visual{ position: relative; perspective: 1200px; }
.editor{
  position: relative; border-radius: var(--r-lg);
  background: linear-gradient(180deg, #013424, #011F15);
  border: 1px solid rgba(122, 219, 168, .22);
  box-shadow: 0 60px 110px -40px rgba(0, 0, 0, .7), 0 24px 50px -30px rgba(0, 0, 0, .6);
  padding: 0 18px 12px;
  transform-style: preserve-3d;
  will-change: transform;
}
.editor::before{
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: radial-gradient(420px circle at var(--gx, 30%) var(--gy, 0%), rgba(255,255,255,.08), transparent 45%);
  opacity: 0; transition: opacity .4s;
}
.editor:hover::before{ opacity: 1; }

@keyframes border-beam-spin{ to{ --beam-angle: 360deg; } }
@property --beam-angle{ syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.border-beam::after{
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none;
  padding: 1.5px;
  background: conic-gradient(from var(--beam-angle),
    transparent 0deg, transparent 288deg, rgba(63, 201, 138, .95) 312deg, var(--pink) 334deg, #FFE3D2 348deg, transparent 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: border-beam-spin 5.5s linear infinite;
}

.mockup-chrome{
  display: flex; align-items: center; gap: 6px;
  padding: 14px 2px 12px; border-bottom: 1px solid rgba(122, 219, 168, .12); margin-bottom: 14px;
}
.mockup-chrome span{ width: 9px; height: 9px; border-radius: 50%; background: #1C5240; }
.mockup-chrome span:first-child{ background: #ff5f57; }
.mockup-chrome span:nth-child(2){ background: #febc2e; }
.mockup-chrome span:nth-child(3){ background: #28c840; }
.mockup-url{
  margin-left: 10px; font: 500 11.5px var(--font-mono); color: #7FA692;
  background: rgba(122, 219, 168, .1); border-radius: 6px; padding: 4px 12px;
}

.editor-body{ padding: 12px 0 10px; font: 400 13px/1.85 var(--font-mono); overflow-x: auto; }
.cl{
  display: flex; gap: 14px; white-space: pre; min-height: 24px;
  transition: background .2s;
}
.cl.active{ background: rgba(122, 219, 168, .07); border-radius: 4px; }
.ln{ width: 20px; text-align: right; color: #2E6B52; flex: none; user-select: none; }
.code{ color: #DCEFE4; }
.tk-k{ color: #3FC98A; }
.tk-s{ color: #c3e88d; }
.tk-f{ color: #ffcb6b; }
.tk-c{ color: #5E8A74; font-style: italic; }
.tk-p{ color: #8FC9B0; }
.tk-n{ color: #f78c6c; }
.code-caret{
  display: inline-block; width: 8px; height: 14px; background: #3FC98A;
  vertical-align: -2px; animation: caret 1s steps(1) infinite;
}
.editor-status{
  display: flex; gap: 18px; flex-wrap: wrap;
  border-top: 1px solid rgba(122, 219, 168, .12);
  padding-top: 10px;
  font: 500 11.5px var(--font-mono); color: var(--navy-dim);
}
.es-ok{ color: #6fe3b4; margin-left: auto; }

/* floating chips */
.float-chips{ position: absolute; inset: 0; pointer-events: none; }
.float-chip{
  position: absolute; display: inline-flex; align-items: center; gap: 8px;
  font: 600 12.5px var(--font-mono); color: #d9f7ea;
  background: rgba(1, 31, 21, .94); border: 1px solid rgba(20, 185, 129, .4);
  border-radius: 999px; padding: 9px 14px;
  box-shadow: 0 18px 40px -12px rgba(0, 0, 0, .6);
  animation: float 6s ease-in-out infinite;
}
.float-chip svg{ width: 14px; height: 14px; fill: none; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.ic-pass{ stroke: #35e0a2; }
.ic-warn{ stroke: #ffc266; }
.fc-1{ top: -9%; left: -6%; animation-delay: 0s; }
.fc-2{ top: 38%; right: -12%; animation-delay: 1.6s; }
.fc-3{ bottom: -12%; left: 8%; border-color: rgba(232, 150, 12, .5); color: #ffe9c2; animation-delay: 3s; }
@keyframes float{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-11px); } }

.mockup-glow{
  position: absolute; inset: auto 8% -12%; height: 90px; z-index: -1;
  background: radial-gradient(50% 100% at 50% 0%, rgba(1, 179, 108, .45), transparent 75%);
  filter: blur(24px);
}

/* ============================ index line (stats / results) ============ */
.stats{
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;
  margin-top: 84px; padding: 26px 30px;
  background: rgba(122, 219, 168, .05);
  border: 1px solid var(--navy-line); border-radius: var(--r-lg);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.index-line{ display: flex; flex-wrap: wrap; align-items: center; row-gap: 20px; margin-top: 84px; }
.il-item{
  display: flex; align-items: baseline; gap: 12px;
  padding-right: 30px; margin-right: 30px;
  border-right: 1px solid var(--navy-line);
}
.il-item:last-child{ border-right: 0; margin-right: 0; padding-right: 0; }
.il-num{
  display: flex; align-items: baseline; gap: 4px;
  font-family: var(--font-disp); font-weight: 700; font-size: 46px; line-height: 1;
}
.il-num b{
  background: linear-gradient(120deg, #fff, #8FE0B8 70%, var(--pink-2));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.il-num i{ font-style: normal; font-size: 20px; color: var(--pink-2); }
.il-label{ max-width: 15em; font-size: 13.5px; line-height: 1.45; color: var(--navy-muted); }

/* ============================ marquee ============================ */
.marquee{
  position: relative; overflow: hidden;
  border-block: 1px solid var(--line-soft);
  background: var(--bg-2);
  padding: 18px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.marquee-track{ display: flex; width: max-content; animation: marquee 32s linear infinite; }
.marquee:hover .marquee-track{ animation-play-state: paused; }
.marquee-run{ display: inline-flex; align-items: center; }
.marquee-run b{
  font: 600 14px var(--font-mono); letter-spacing: .2em; text-transform: uppercase;
  color: #2E5C46; padding: 0 22px; white-space: nowrap;
}
.marquee-run i{ color: var(--pink); font-style: normal; font-size: 12px; }
@keyframes marquee{ to{ transform: translateX(-50%); } }

/* ============================ sections ============================ */
.section{ position: relative; padding: 110px 0; }
.section-head{ max-width: 700px; margin-bottom: 56px; }
.section-head.left{ margin-bottom: 0; }
.section-title{
  margin: 18px 0 16px;
  font-family: var(--font-disp); font-weight: 700;
  font-size: clamp(38px, 4.6vw, 58px); line-height: 1.02;
}
.section-sub{ color: var(--muted); font-size: 18px; margin: 0; }
.band-dark .section-sub{ color: var(--navy-muted); }

/* services index list */
.svc-list{ list-style: none; margin: 0; padding: 0; }
.svc-row{
  display: grid; grid-template-columns: 72px 1.05fr .95fr; gap: 28px; align-items: center;
  padding: 30px 22px; position: relative;
  border-top: 1px solid var(--line-soft);
  transition: background .3s;
}
.svc-row:last-child{ border-bottom: 1px solid var(--line-soft); }
.svc-row::before{
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
  background: linear-gradient(180deg, var(--accent), var(--pink));
  transform: scaleY(0); transform-origin: 50% 0;
  transition: transform .35s var(--ease-out);
}
.svc-row:hover{ background: rgba(1, 179, 108, .05); }
.svc-row:hover::before{ transform: scaleY(1); }
.svc-num{
  font: 600 13px var(--font-mono); letter-spacing: .12em; color: var(--dim);
  transition: color .3s;
}
.svc-row:hover .svc-num{ color: var(--pink); }
.svc-main{ display: grid; gap: 7px; }
.svc-main h3{
  margin: 0; font-family: var(--font-disp); font-weight: 700;
  font-size: clamp(26px, 2.8vw, 34px); line-height: 1; letter-spacing: .015em;
  transition: color .3s;
}
.svc-row:hover .svc-main h3{ color: var(--accent); }
.svc-tags{ margin: 0; font: 600 11.5px var(--font-mono); letter-spacing: .14em; text-transform: uppercase; color: var(--dim); }
.svc-desc{ margin: 0; color: var(--muted); font-size: 16px; line-height: 1.6; }

@media (max-width: 900px){
  .svc-row{ grid-template-columns: 48px 1fr; grid-template-rows: auto auto; gap: 10px 18px; padding: 24px 14px; }
  .svc-desc{ grid-column: 2; }
  .svc-main h3{ font-size: 26px; }
}

/* ============================ process ============================ */
.how-grid{ display: grid; grid-template-columns: .9fr 1.1fr; gap: 72px; align-items: start; }
.how-sticky{ position: sticky; top: 120px; }
.how-meter{
  height: 3px; border-radius: 3px; background: rgba(1, 43, 29, .12);
  overflow: hidden; margin-top: 34px;
}
.how-meter span{
  display: block; height: 100%; width: 100%;
  background: linear-gradient(90deg, var(--accent-deep), var(--accent) 60%, var(--pink));
  transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .2s linear;
  box-shadow: 0 0 12px rgba(1, 179, 108, .55);
}
.how-pct{ margin: 12px 0 0; }

.steps{ list-style: none; margin: 0; padding: 0; position: relative; display: grid; gap: 46px; }
.steps::before{
  content: ""; position: absolute; left: 33px; top: 10px; bottom: 10px; width: 2px;
  background: rgba(1, 43, 29, .12);
}
.steps::after{
  content: ""; position: absolute; left: 33px; top: 10px; width: 2px;
  height: calc((100% - 20px) * var(--how-fill, 0) / 100);
  background: linear-gradient(180deg, var(--accent-deep), var(--accent) 60%, var(--pink));
  box-shadow: 0 0 14px rgba(1, 179, 108, .5);
}
.step{ position: relative; padding-left: 96px; }
.step-num{
  position: absolute; left: 0; top: 4px; z-index: 1;
  width: 68px; height: 68px; border-radius: 18px;
  display: grid; place-items: center;
  font: 700 22px var(--font-mono); color: var(--dim);
  background: #fff; border: 1px solid var(--line);
  box-shadow: 0 14px 34px -26px rgba(1, 43, 29, .5);
  transition: color .4s, border-color .4s, box-shadow .4s, background .4s, transform .4s var(--spring);
}
.step.is-active .step-num{
  color: #fff; background: linear-gradient(150deg, #0FC97E, var(--accent-deep));
  border-color: rgba(1, 179, 108, .8);
  box-shadow: 0 0 0 6px rgba(1, 179, 108, .12), 0 0 34px -6px rgba(1, 179, 108, .55);
  transform: scale(1.04);
}
.step-body{ display: grid; gap: 12px; }
.step-body h3{
  margin: 0; font-family: var(--font-disp); font-weight: 700;
  font-size: 32px; line-height: 1; letter-spacing: .01em;
  transition: color .4s;
}
.step.is-active .step-body h3{ color: var(--accent); }
.step-body p{ margin: 0; color: var(--muted); font-size: 16.5px; line-height: 1.7; max-width: 44em; }
.step-body .step-note{ font: 500 13px/1.6 var(--font-mono); color: var(--pass); }

/* ============================ case study ============================ */
.story-grid{ display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: start; margin-bottom: 52px; }
.story-copy p{ color: var(--navy-muted); font-size: 17px; line-height: 1.7; margin: 0 0 16px; }
.story-copy p strong{ color: #8FE0B8; }
.story-lede{ font-size: 19.5px !important; color: var(--navy-ink) !important; }

.pain-leads{ margin-top: 26px; display: grid; gap: 14px; }
.pain-leads p{ margin: 0; color: var(--navy-muted); font-size: 16px; line-height: 1.65; }
.pain-leads b{ color: var(--navy-ink); font-weight: 600; }

#product .index-line{ margin-top: 34px; }

.pilot-card{
  background: linear-gradient(180deg, rgba(122, 219, 168, .1), rgba(122, 219, 168, .04));
  border: 1px solid var(--navy-line); border-radius: var(--r-lg);
  padding: 28px 26px 24px;
}
.pilot-title{ font-family: var(--font-disp); font-weight: 700; font-size: 27px; color: #fff; margin: 0 0 8px; }
.pilot-copy{ color: var(--navy-muted); font-size: 15.5px; margin: 0 0 20px; line-height: 1.6; }

.pilot-form{
  display: flex; gap: 10px; padding: 6px;
  background: rgba(1, 20, 14, .5);
  border: 1px solid var(--navy-line); border-radius: 16px;
  transition: border-color .3s, box-shadow .3s;
}
.pilot-form:focus-within{
  border-color: rgba(122, 219, 168, .6);
  box-shadow: 0 0 0 4px rgba(1, 179, 108, .15);
}
.pilot-form input[type=email]{
  flex: 1; min-width: 0; background: transparent; border: 0; outline: 0;
  color: #fff; font: 500 15px var(--font-body); padding: 10px 14px;
}
.pilot-form input[type=email]::placeholder{ color: var(--navy-dim); }
.form-note{ min-height: 22px; margin: 10px 4px 0; font-size: 14px; color: var(--navy-muted); }
.form-note .form-success{ color: #6fe3b4; font-weight: 600; }
.form-note a{ color: var(--steel); }
.pilot-card .walkthrough{ margin-top: 16px; color: var(--steel); border-bottom-color: rgba(122, 219, 168, .5); }
.pilot-card .walkthrough:hover{ color: #DFF5E9; border-color: #DFF5E9; }

/* ---------------- contact form (join band) ---------------- */
.contact-form{
  position: relative; width: min(680px, 100%); margin-top: 30px; text-align: left;
}
.cf-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cf-field{ display: flex; flex-direction: column; gap: 7px; }
.cf-field.cf-wide{ grid-column: 1 / -1; }
.cf-label{
  font: 600 11px var(--font-mono); letter-spacing: .12em;
  text-transform: uppercase; color: var(--navy-dim);
}
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form textarea{
  width: 100%; background: rgba(1, 20, 14, .5); border: 1px solid var(--navy-line);
  border-radius: 12px; padding: 12px 15px; color: #fff; outline: 0;
  font: 500 15px var(--font-body);
  transition: border-color .25s, box-shadow .25s, background .25s;
}
.contact-form input::placeholder, .contact-form textarea::placeholder{ color: var(--navy-dim); }
.contact-form input:focus, .contact-form textarea:focus{
  border-color: rgba(122, 219, 168, .6); box-shadow: 0 0 0 4px rgba(1, 179, 108, .15);
}
.contact-form textarea{ resize: vertical; min-height: 110px; line-height: 1.55; }
.cf-gotcha{
  position: absolute; left: -6000px; top: -6000px; width: 1px; height: 1px;
  overflow: hidden; opacity: 0; pointer-events: none;
}
.cf-actions{
  display: flex; align-items: center; justify-content: center;
  gap: 22px; flex-wrap: wrap; margin-top: 20px;
}
.contact-form .walkthrough{ color: var(--steel); border-bottom-color: rgba(122, 219, 168, .5); }
.contact-form .walkthrough:hover{ color: #DFF5E9; border-color: #DFF5E9; }
.contact-form .form-note{ text-align: center; margin-top: 14px; }
@media (max-width: 640px){
  .cf-grid{ grid-template-columns: 1fr; }
}

.app-frame{
  position: relative; border-radius: 22px;
  background: linear-gradient(180deg, #023426, #011F15);
  border: 1px solid rgba(122, 219, 168, .2);
  box-shadow: 0 70px 130px -50px rgba(0, 0, 0, .8), 0 30px 60px -40px rgba(0, 0, 0, .6);
  padding: 0 26px 26px;
  transform-style: preserve-3d;
  overflow-x: auto;
}
.app-cols{ display: grid; grid-template-columns: 1.05fr .95fr; gap: 30px; padding-top: 18px; }
.app-col-head{
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-bottom: 14px; flex-wrap: wrap;
}
.app-col-head > span{ font: 600 13px var(--font-mono); letter-spacing: .1em; text-transform: uppercase; color: #7FA692; }
.tag{
  font: 600 11.5px var(--font-mono); letter-spacing: .12em; text-transform: uppercase;
  color: #7FA692; background: rgba(122, 219, 168, .08);
  border: 1px solid rgba(122, 219, 168, .25); border-radius: 999px; padding: 5px 12px;
}
.app-frame .tag{ color: var(--steel); background: rgba(122, 219, 168, .08); border-color: rgba(122, 219, 168, .3); }
.tag-accent{ color: #B96A2C !important; background: rgba(254, 177, 146, .12) !important; border-color: rgba(254, 177, 146, .45) !important; }
.app-frame .tag-accent{ color: var(--accent-2) !important; background: rgba(63, 201, 138, .1) !important; border-color: rgba(63, 201, 138, .4) !important; }
.band-dark .bento-top .tag{ color: var(--steel); background: rgba(122, 219, 168, .08); border-color: rgba(122, 219, 168, .3); }
.band-dark .bento-top .tag-accent{ color: var(--pink-2) !important; background: rgba(254, 177, 146, .14) !important; border-color: rgba(255, 201, 173, .5) !important; }

.mini-table{ width: 100%; border-collapse: collapse; font-size: 14.5px; }
.mini-table th{
  text-align: left; font: 600 11px var(--font-mono); letter-spacing: .12em; text-transform: uppercase;
  color: #7FA692; padding: 8px 10px; border-bottom: 1px solid rgba(122, 219, 168, .14);
}
.mini-table td{ padding: 11px 10px; border-bottom: 1px solid rgba(122, 219, 168, .14); color: #C9E2D4; }
.mini-table td:first-child{ color: #fff; font-weight: 600; }
.mini-table tr{ transition: background .3s; }
.mini-table tbody tr:hover{ background: rgba(1, 179, 108, .08); }
.mini-table th:nth-child(n+3), .mini-table td:nth-child(n+3){ font-family: var(--font-mono); font-size: 13.5px; }
.mini-table.tall td{ padding: 14px 10px; }

.app-cta{ display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

.checks{ list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 12px; }
.check{
  display: flex; gap: 14px; align-items: flex-start;
  border: 1px solid rgba(122, 219, 168, .14); border-radius: var(--r-md);
  padding: 14px 16px; background: rgba(1, 179, 108, .06);
  opacity: .35; transform: translateX(-8px);
  transition: opacity .5s var(--ease-out), transform .5s var(--ease-out), border-color .5s, background .5s;
  position: relative; overflow: hidden;
}
.check::after{
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg, transparent 30%, rgba(122, 219, 168, .12) 50%, transparent 70%);
  transform: translateX(-100%);
}
.check.is-scanning::after{ animation: scan 1.1s linear infinite; }
@keyframes scan{ to{ transform: translateX(100%); } }
.check.is-done{
  opacity: 1; transform: translateX(0);
  border-color: rgba(20, 185, 129, .4); background: rgba(20, 185, 129, .06);
}
.check.is-warned{
  opacity: 1; transform: translateX(0);
  border-color: rgba(232, 150, 12, .5); background: rgba(232, 150, 12, .07);
  animation: warn-glow 2.6s ease-in-out infinite;
}
@keyframes warn-glow{ 0%,100%{ box-shadow: 0 0 0 0 rgba(232,150,12,.12); } 50%{ box-shadow: 0 0 26px -6px rgba(232,150,12,.4); } }
.check-ic{
  flex: none; width: 30px; height: 30px; border-radius: 9px;
  display: grid; place-items: center; margin-top: 2px;
  background: rgba(122, 219, 168, .1); border: 1px solid rgba(122, 219, 168, .2);
  transition: background .4s, border-color .4s, transform .4s var(--spring);
}
.check-ic svg{ width: 16px; height: 16px; fill: none; stroke: #7FA692; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; transition: stroke .4s; }
.check.is-done .check-ic{ background: rgba(20, 185, 129, .16); border-color: rgba(20, 185, 129, .45); transform: scale(1.06); }
.check.is-done .check-ic svg{ stroke: #35e0a2; }
.check.is-warned .check-ic{ background: rgba(232, 150, 12, .14); border-color: rgba(232, 150, 12, .5); }
.check.is-warned .check-ic svg{ stroke: #ffc266; }
.check-body{ display: grid; gap: 3px; }
.check-body b{ font-size: 15.5px; color: #fff; }
.check-body span{ color: #A9CDBB; font-size: 14.5px; line-height: 1.55; }
.caption{ text-align: center; color: var(--dim); font-size: 13.5px; margin: 26px 0 0; font-family: var(--font-mono); }
.band-dark .caption{ color: var(--navy-dim); }

/* ============================ bento ============================ */
.why-list{ list-style: none; margin: 0; padding: 0; }
.why-row{
  display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center;
  padding: 26px 0; border-top: 1px solid var(--line-soft);
}
.why-row .svc-main h3{ font-size: clamp(26px, 2.6vw, 32px); }
.why-row .svc-tags{ color: var(--pink); }
.why-cta{ border-top: 1px solid var(--line-soft); padding-top: 36px; }
.why-cta p{ margin: 0; font-size: clamp(20px, 2.4vw, 28px); font-weight: 600; line-height: 1.35; }
.why-cta a{ text-decoration: none; color: var(--ink); }
.why-cta .arrow{ width: 30px; height: 30px; vertical-align: -6px; margin-left: 8px; }
.why-cta a:hover .arrow{ transform: translateX(8px); }
.arrow{ width: 26px; height: 26px; fill: none; stroke: var(--accent); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .35s var(--ease-out); display: inline-block; vertical-align: -4px; }

/* ============================ founder ============================ */
.founder{ position: relative; max-width: 820px; margin: 0; }
.founder blockquote{ margin: 26px 0 0; position: relative; }
.founder blockquote::before{
  content: "\201C"; position: absolute; top: -38px; left: -14px;
  font: 700 130px/1 var(--font-disp); color: rgba(254, 177, 146, .22);
  pointer-events: none;
}
.founder blockquote p{ color: var(--muted); font-size: 18px; line-height: 1.75; margin: 0 0 18px; }
.founder blockquote p:first-child{ font-size: 24px; line-height: 1.5; color: var(--ink); }
.letter-foot{
  display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap;
  margin-top: 30px; padding-top: 26px; border-top: 1px solid var(--line-soft);
}
.sig{ font-family: var(--font-mono); font-size: 13px; color: var(--dim); letter-spacing: .06em; }

/* ============================ faq ============================ */
.faq-grid{ display: grid; grid-template-columns: .8fr 1.2fr; gap: 64px; align-items: start; }
.faq-list{ display: grid; gap: 14px; }
.faq-item{
  border: 1px solid var(--line); border-radius: var(--r-md);
  background: #fff;
  box-shadow: 0 16px 40px -36px rgba(1, 43, 29, .5);
  overflow: hidden; transition: border-color .3s, background .3s;
}
.faq-item[open]{ border-color: rgba(1, 179, 108, .5); background: rgba(1, 179, 108, .05); }
.faq-item summary{
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding: 20px 24px; font-weight: 600; font-size: 17px;
}
.faq-item summary::-webkit-details-marker{ display: none; }
.faq-ic{ position: relative; flex: none; width: 12px; height: 12px; transition: transform .35s var(--ease-out); }
.faq-ic::before, .faq-ic::after{
  content: ""; position: absolute; inset: 0; margin: auto; background: var(--accent); border-radius: 2px;
}
.faq-ic::after{ transform: rotate(90deg); }
.faq-item[open] .faq-ic{ transform: rotate(45deg); }
.faq-body{ padding: 0 24px 22px; }
.faq-body p{ margin: 0; color: var(--muted); font-size: 16px; max-width: 60em; }

/* ============================ final cta (dark) ============================ */
.join{ padding: 150px 0 140px; overflow: clip; text-align: center; }
.join-inner{ display: grid; justify-items: center; }
.join-title{
  margin: 0 0 22px;
  font-family: var(--font-disp); font-weight: 700;
  font-size: clamp(46px, 6.6vw, 84px); line-height: .98;
}
.join-title .line{ display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.join-title.in .line-inner{ animation: line-rise 1s var(--ease-out) forwards; }
.join-title.in .line:nth-child(2) .line-inner{ animation-delay: .14s; }
.join .section-sub{ max-width: 40em; }
.join-cta{ display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: center; margin-top: 34px; }
.join-alt{ margin-top: 22px; font: 500 13px var(--font-mono); color: var(--navy-dim); }

.beam{
  position: absolute; top: -20%; height: 140%; width: 480px; z-index: 0;
  background: linear-gradient(180deg, transparent, rgba(1, 179, 108, .16) 30%, rgba(63, 201, 138, .26) 50%, rgba(1, 179, 108, .16) 70%, transparent);
  filter: blur(20px);
  animation: beam-sweep 7s ease-in-out infinite alternate;
}
.beam-1{ left: 12%; transform: rotate(24deg); }
.beam-2{ right: 12%; transform: rotate(-24deg); animation-delay: 2.8s; background: linear-gradient(180deg, transparent, rgba(254, 177, 146, .15) 30%, rgba(255, 201, 173, .25) 50%, rgba(254, 177, 146, .15) 70%, transparent); }
@keyframes beam-sweep{ from{ opacity: .35; } to{ opacity: 1; } }

/* ============================ footer (navy) ============================ */
.site-footer{
  background: #01150E;
  color: #A9CDBB;
  padding: 64px 0 40px;
  border-top: 1px solid rgba(122, 219, 168, .1);
}
.site-footer .logo-word{ color: #fff; }
.foot-grid{ display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 40px; }
.foot-brand p{ color: #7FA692; font-size: 15px; margin: 16px 0 0; max-width: 26em; }
.foot-col{ display: grid; gap: 10px; align-content: start; }
.foot-col b{ font: 600 12px var(--font-mono); letter-spacing: .16em; text-transform: uppercase; color: #5E8471; margin-bottom: 6px; }
.foot-col a{ color: #A9CDBB; text-decoration: none; font-size: 15px; transition: color .25s; }
.foot-col a:hover{ color: #3FC98A; }
.foot-col span{ color: #A9CDBB; font-size: 15px; }
.foot-legal{
  margin-top: 48px; padding-top: 26px; border-top: 1px solid rgba(122, 219, 168, .14);
  display: grid; gap: 12px;
}
.foot-legal p{ margin: 0; color: #4E7562; font-size: 13px; line-height: 1.6; }

/* ============================ reveals ============================ */
.reveal{
  opacity: 0; transform: translateY(26px);
  filter: blur(6px);
  transition: opacity .9s var(--ease-out), transform .9s var(--ease-out), filter .9s var(--ease-out);
  transition-delay: var(--d, 0s);
}
.reveal.in{ opacity: 1; transform: translateY(0); filter: blur(0); }

.reveal-load{ opacity: 0; animation: reveal-load 1s var(--ease-out) forwards; animation-delay: var(--d, 0s); }
@keyframes reveal-load{ from{ opacity: 0; transform: translateY(24px); filter: blur(8px); } to{ opacity: 1; transform: translateY(0); filter: blur(0); } }

/* ============================ responsive ============================ */
@media (max-width: 1080px){
  .hero-inner{ grid-template-columns: 1fr; gap: 64px; }
  .hero-copy{ max-width: 640px; }
  .hero-visual{ max-width: 640px; }
  .fc-1{ left: 0; } .fc-2{ right: 0; }
  .site-nav{ gap: 18px; }
  .site-nav > a:not(.btn){ font-size: 14px; }
  .how-grid{ grid-template-columns: 1fr; gap: 48px; }
  .how-sticky{ position: static; }
  .faq-grid{ grid-template-columns: 1fr; gap: 40px; }
  .app-cols{ grid-template-columns: 1fr; }
  .story-grid{ grid-template-columns: 1fr; }
}

@media (max-width: 760px){
  body{ font-size: 16px; }
  .section{ padding: 80px 0; }
  .hero{ padding-top: 140px; }
  .grid-3{ grid-template-columns: 1fr; }
  .index-line{ display: grid; gap: 16px; margin-top: 64px; }
  .il-item{ border-right: 0; border-left: 2px solid var(--navy-line); padding: 2px 0 2px 16px; margin: 0; }
  .founder blockquote::before{ display: none; }
  .float-chip{ display: none; }
  .steps::before, .steps::after{ left: 24px; }
  .step{ padding-left: 68px; }
  .step-num{ width: 52px; height: 52px; border-radius: 14px; font-size: 17px; }
  .bento{ grid-template-columns: 1fr; }
  .bento-wide{ grid-column: span 1; flex-direction: column; align-items: flex-start; }
  .join{ padding: 110px 0 100px; }
  .why-row{ grid-template-columns: 1fr; gap: 10px; padding: 22px 0; }
  .editor-body{ font-size: 11.5px; }
  .cl{ gap: 8px; }
  .ln{ width: 16px; }
  .foot-grid{ grid-template-columns: 1fr; gap: 30px; }

  .nav-toggle{ display: inline-flex; }
  .site-nav{
    position: fixed; inset: 0; z-index: -1;
    display: grid; place-content: center; gap: 30px; text-align: center;
    background: rgba(1, 19, 13, .97);
    -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
    opacity: 0; pointer-events: none;
    transition: opacity .35s var(--ease-out);
  }
  body.nav-open .site-nav{ opacity: 1; pointer-events: auto; }
  .site-nav > a:not(.btn){ font-size: 24px; font-family: var(--font-disp); letter-spacing: .04em; color: #CFE9DA; }
  .site-nav > a:not(.btn):hover{ color: #fff; }
  body.nav-open{ overflow: hidden; }
}

@media (max-width: 480px){
  .shell{ width: calc(100% - 36px); }
  .pilot-form{ flex-direction: column; }
  .pilot-form .btn{ width: 100%; }
  .hero-title{ font-size: clamp(44px, 13vw, 60px); }
  .mini-table{ font-size: 13px; }
  .app-frame{ padding: 0 16px 18px; }
  .metrics{ grid-template-columns: 1fr; }
  .editor-body{ font-size: 10.5px; }
  .mockup-url{ display: none; }
}

/* ============================ reduced motion ============================ */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  .line-inner{ transform: none; }
  .reveal, .reveal-load{ opacity: 1; transform: none; filter: none; }
  .check{ opacity: 1; transform: none; }
  .marquee-track{ animation: none; }
  .cursor-dot, .cursor-ring{ display: none; }
}
