/* ─── Variables ──────────────────────────────────────────────────────────────── */
:root {
  --bg:        #111111;
  --bg-1:      #191919;
  --bg-2:      #212121;
  --bg-3:      #2c2c2c;
  --fg:        #f0f0f0;
  --fg-2:      #c8c8c8;
  --fg-muted:  #888;
  --fg-subtle: #4a4a4a;
  --accent:    #CC342D;
  --accent-d:  rgba(204,52,45,0.12);
  --accent-t:  #e04848;
  --border:    rgba(255,255,255,0.07);
  --border-s:  rgba(255,255,255,0.12);
  --mono:      ui-monospace,'JetBrains Mono','Fira Code','Menlo',monospace;
  --sans:      system-ui,-apple-system,'Segoe UI',sans-serif;
  --max:       1200px;
  --r:         4px;
  --r-md:      8px;
  --r-lg:      12px;
}

/* ─── Reset ──────────────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{cursor:pointer;border:none;background:none;font:inherit}
ul,ol{list-style:none}
pre,code{font-family:var(--mono)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* ─── Layout ─────────────────────────────────────────────────────────────────── */
.container{max-width:var(--max);margin:0 auto;padding:0 32px}

/* ─── Typography ─────────────────────────────────────────────────────────────── */
.section-headline{
  font-size:clamp(1.5rem,2.8vw,2.375rem);
  font-weight:700;
  letter-spacing:-0.025em;
  line-height:1.15;
  color:var(--fg)
}
.section-copy{font-size:.9375rem;color:var(--fg-muted);line-height:1.7;max-width:480px}
.section-label{
  font-family:var(--mono);
  font-size:.6875rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--accent-t);
  margin-bottom:10px
}
.text-accent{color:var(--accent-t)}

/* ─── Badges ─────────────────────────────────────────────────────────────────── */
.badge{
  display:inline-flex;align-items:center;
  font-size:.625rem;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;
  padding:2px 7px;border-radius:2px;border:1px solid
}
.badge--early{color:var(--accent-t);border-color:rgba(204,52,45,.35);background:rgba(204,52,45,.08)}
.badge--page{color:var(--accent-t);border-color:rgba(204,52,45,.35);background:rgba(204,52,45,.08)}
.badge--coming-soon{color:var(--fg-subtle);border-color:var(--border-s);background:transparent}

/* ─── Buttons ────────────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:7px;
  font-size:.9375rem;font-weight:600;
  padding:10px 22px;border-radius:var(--r-md);
  border:1px solid transparent;
  transition:background .12s,color .12s,border-color .12s;
  white-space:nowrap;cursor:pointer
}
.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn--primary:hover{background:#d63030;border-color:#d63030;color:#fff}
.btn--ghost{background:transparent;color:var(--fg-muted);border-color:var(--border-s)}
.btn--ghost:hover{color:var(--fg);border-color:var(--border-s)}
.btn--nav{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.8125rem;font-weight:500;
  padding:6px 13px;border-radius:var(--r);
  border:1px solid var(--border-s);color:var(--fg-muted);
  transition:color .12s,border-color .12s
}
.btn--nav:hover{color:var(--fg);border-color:var(--border-s)}

/* ─── Input ──────────────────────────────────────────────────────────────────── */
.input{
  background:var(--bg-2);border:1px solid var(--border-s);
  color:var(--fg);font-family:var(--sans);font-size:.9375rem;
  padding:10px 14px;border-radius:var(--r-md);width:100%;
  outline:none;transition:border-color .12s
}
.input::placeholder{color:var(--fg-subtle)}
.input:focus{border-color:var(--border-s)}
.input--error{border-color:var(--accent)!important}

/* ─── Nav ────────────────────────────────────────────────────────────────────── */
.site-header{
  position:sticky;top:0;z-index:100;
  background:rgba(17,17,17,.92);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border)
}
.site-nav{
  display:flex;align-items:center;
  justify-content:space-between;height:56px
}
.site-nav__logo{
  display:flex;align-items:center;gap:9px;
  font-size:.9375rem;font-weight:700;color:var(--fg);letter-spacing:-.01em
}
.site-nav__gem{color:var(--accent);flex-shrink:0}
.site-nav__center{display:flex;align-items:center;gap:4px}
.site-nav__link{
  font-size:.8125rem;font-weight:500;color:var(--fg-muted);
  padding:6px 10px;border-radius:var(--r);transition:color .12s
}
.site-nav__link:hover{color:var(--fg)}
.site-nav__link--active{color:var(--fg)}
.site-nav__right{display:flex;align-items:center;gap:10px}

/* ─── Hero ───────────────────────────────────────────────────────────────────── */
.hero{
  position:relative;overflow:hidden;
  padding:52px 0 64px
}
.hero__bg{position:absolute;inset:0;pointer-events:none;z-index:0}
.hero__bg-grid{
  position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,.02) 1px,transparent 1px);
  background-size:28px 28px
}
.hero__bg-glow{
  position:absolute;top:-120px;right:-80px;
  width:680px;height:680px;
  background:radial-gradient(ellipse at 60% 40%,rgba(204,52,45,.07) 0%,transparent 60%)
}
.hero__layout{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1fr 1fr;
  gap:52px;align-items:center
}
.hero__text{display:flex;flex-direction:column;gap:16px}
.hero__wordmark{display:flex;align-items:center;gap:10px}
.hero__wordmark-pkg{
  font-family:var(--mono);font-size:.8125rem;
  color:var(--fg-muted);letter-spacing:.02em
}
.hero__headline{
  font-size:clamp(2rem,3.6vw,3.125rem);
  font-weight:700;letter-spacing:-.03em;line-height:1.1;color:#fff;
  margin-top:4px
}
.hero__copy{
  font-size:.9375rem;color:var(--fg-muted);
  line-height:1.7;max-width:440px
}

/* ─── Install command ────────────────────────────────────────────────────────── */
.install-cmd{
  display:flex;align-items:center;gap:8px;
  background:var(--bg-1);border:1px solid var(--border-s);
  border-radius:var(--r-md);padding:10px 14px;
  max-width:fit-content
}
.install-cmd__prompt{font-family:var(--mono);font-size:.875rem;color:var(--accent-t);user-select:none}
.install-cmd__text{font-family:var(--mono);font-size:.875rem;color:var(--fg);white-space:nowrap}
.install-cmd__copy{
  display:inline-flex;align-items:center;gap:4px;
  font-size:.75rem;font-weight:500;
  color:var(--fg-subtle);padding:3px 8px;
  border:1px solid var(--border);border-radius:var(--r);
  transition:color .12s,border-color .12s
}
.install-cmd__copy:hover{color:var(--fg-muted);border-color:var(--border-s)}
.install-cmd__note{font-size:.8rem;color:var(--fg-subtle);margin-top:-4px}
.install-cmd__note a{color:var(--fg-muted);text-decoration:underline;text-underline-offset:2px}
.install-cmd__note a:hover{color:var(--fg)}

/* ─── Hero visual ────────────────────────────────────────────────────────────── */
.hero__visual{display:flex;flex-direction:column;gap:12px}

/* ─── Code window ────────────────────────────────────────────────────────────── */
.code-window{
  background:#0c0c0c;border:1px solid var(--border-s);
  border-radius:var(--r-lg);overflow:hidden;
  box-shadow:0 24px 64px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.04)
}
.code-window__chrome{
  display:flex;align-items:center;gap:6px;
  padding:9px 14px;background:#161616;border-bottom:1px solid var(--border)
}
.code-window__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.code-window__dot--red{background:#ff5f57}
.code-window__dot--yellow{background:#febc2e}
.code-window__dot--green{background:#28c840}
.code-window__filename{font-family:var(--mono);font-size:.7rem;color:var(--fg-muted);margin-left:4px}
.code-window__body{padding:16px 20px}
.code-window__pre{margin:0}
.code-window__pre code{display:block;font-size:.8rem;line-height:1.8;color:var(--fg);white-space:pre}

/* ─── Terminal window ────────────────────────────────────────────────────────── */
.terminal-window{
  background:#0a0a0a;border:1px solid var(--border);
  border-radius:var(--r-lg);overflow:hidden;
  box-shadow:0 12px 40px rgba(0,0,0,.4)
}
.terminal-window__chrome{
  display:flex;align-items:center;gap:7px;
  padding:8px 14px;background:#141414;border-bottom:1px solid var(--border)
}
.terminal-window__title{font-family:var(--mono);font-size:.6rem;color:var(--fg-subtle);letter-spacing:.08em;text-transform:uppercase}
.terminal-window__body{padding:14px 20px}
.terminal-window__pre code{display:block;font-size:.8rem;line-height:1.8;color:var(--fg);white-space:pre}

/* ─── Syntax tokens ──────────────────────────────────────────────────────────── */
.tok-key{color:#7ecbff}
.tok-str{color:#98c379}
.tok-ver{color:var(--fg-subtle)}
.tok-prompt{color:var(--accent-t)}
.tok-ok{color:#4caf84}
.tok-dim{color:var(--fg-subtle)}

/* ─── Subscription form ──────────────────────────────────────────────────────── */
.subscription-form__row{display:flex;gap:8px;flex-wrap:wrap}
.subscription-form__field{flex:1;min-width:200px}
.subscription-form__submit{flex-shrink:0}
.subscription-form__error{margin-top:7px;font-size:.8rem;color:var(--accent-t)}

/* ─── Subscription success ───────────────────────────────────────────────────── */
.subscription-success{
  display:flex;align-items:flex-start;gap:12px;
  padding:14px 18px;
  background:rgba(76,175,132,.06);border:1px solid rgba(76,175,132,.22);
  border-radius:var(--r-md)
}
.subscription-success__icon{color:#4caf84;flex-shrink:0;margin-top:2px}
.subscription-success__headline{font-weight:600;font-size:.9375rem}
.subscription-success__copy{font-size:.875rem;color:var(--fg-muted);margin-top:2px}

/* ─── Section base ───────────────────────────────────────────────────────────── */
.section{padding:64px 0;border-top:1px solid var(--border)}

/* ─── Tools section ──────────────────────────────────────────────────────────── */
.tools-section{padding:40px 0;border-top:1px solid var(--border)}
.tools-section__inner{
  display:grid;grid-template-columns:1fr auto 1fr;
  gap:32px;align-items:flex-start
}
.tools-group__header{
  display:flex;align-items:center;gap:8px;
  margin-bottom:16px
}
.tools-group__status{
  font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--fg-subtle)
}
.tools-group__dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--fg-subtle);flex-shrink:0
}
.tools-group__dot--live{background:#4caf84;box-shadow:0 0 6px rgba(76,175,132,.5)}
.tools-grid{display:flex;flex-wrap:wrap;gap:8px}
.tool-chip{
  display:flex;align-items:center;gap:8px;
  padding:7px 12px;
  background:var(--bg-1);border:1px solid var(--border-s);
  border-radius:var(--r-md);
  transition:border-color .12s
}
.tool-chip:hover{border-color:var(--border-s)}
.tool-chip__icon{width:18px;height:18px;border-radius:3px;object-fit:contain;flex-shrink:0}
.tool-chip__name{font-size:.8125rem;color:var(--fg-2);font-weight:500}
.tool-chip--soon{opacity:.4}
.tools-divider{width:1px;background:var(--border-s);margin-top:32px}

/* ─── Blog section ───────────────────────────────────────────────────────────── */
.blog-section__inner{
  display:grid;grid-template-columns:1fr 1fr;
  gap:56px;align-items:center
}
.blog-section__text{display:flex;flex-direction:column;gap:14px}
.timeline-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.timeline-card{
  background:var(--bg-1);border:1px solid var(--border-s);
  border-radius:var(--r-lg);padding:22px 20px;
  display:flex;flex-direction:column;gap:7px
}
.timeline-card--accent{
  border-color:rgba(204,52,45,.25);
  background:linear-gradient(145deg,rgba(204,52,45,.06) 0%,var(--bg-1) 55%)
}
.timeline-card__year{font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;color:var(--fg-subtle)}
.timeline-card__year--accent{color:var(--accent-t)}
.timeline-card__title{font-size:.8125rem;font-weight:600;color:var(--fg);line-height:1.35}
.timeline-card__flow{display:flex;flex-direction:column;gap:3px;margin-top:4px}
.timeline-card__arrow{color:var(--fg-subtle);font-size:.8rem;line-height:1}
.timeline-card__step{font-size:.8rem;color:var(--fg-muted)}
.timeline-card__result{font-size:.875rem;font-weight:600;margin-top:2px}

/* ─── How it works ───────────────────────────────────────────────────────────── */
.how-section__inner{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:flex-start}
.how-section__text{display:flex;flex-direction:column;gap:18px}
.how-steps{display:flex;flex-direction:column}
.how-steps__item{
  display:flex;align-items:flex-start;gap:14px;
  padding:12px 0;border-bottom:1px solid var(--border);
  font-size:.875rem;color:var(--fg-muted)
}
.how-steps__item:last-child{border-bottom:none}
.how-steps__item strong{color:var(--fg)}
.how-steps__num{
  flex-shrink:0;width:20px;height:20px;border-radius:50%;
  background:var(--accent-d);border:1px solid rgba(204,52,45,.25);
  color:var(--accent-t);font-family:var(--mono);font-size:.625rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;margin-top:3px
}

/* ─── Code panel (tabbed) ────────────────────────────────────────────────────── */
.code-panel{
  background:#0c0c0c;border:1px solid var(--border-s);
  border-radius:var(--r-lg);overflow:hidden;
  box-shadow:0 16px 48px rgba(0,0,0,.4)
}
.code-panel__tabs{display:flex;border-bottom:1px solid var(--border);background:#161616}
.code-panel__tab{
  display:flex;align-items:center;gap:6px;
  padding:8px 16px;font-family:var(--mono);font-size:.7rem;
  color:var(--fg-subtle);cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-1px;
  transition:color .12s;user-select:none
}
.code-panel__tab:hover{color:var(--fg-muted)}
.code-panel__view--b{display:none}
#ht-skillfile:checked~.code-panel .code-panel__view--a,
#ht-terminal:checked~.code-panel .code-panel__view--b,
#rt-skillfile:checked~.code-panel .code-panel__view--a,
#rt-terminal:checked~.code-panel .code-panel__view--b,
#rut-toml:checked~.code-panel .code-panel__view--a,
#rut-md:checked~.code-panel .code-panel__view--b{display:block}
#ht-skillfile:checked~.code-panel .code-panel__view--b,
#ht-terminal:checked~.code-panel .code-panel__view--a,
#rt-skillfile:checked~.code-panel .code-panel__view--b,
#rt-terminal:checked~.code-panel .code-panel__view--a,
#rut-toml:checked~.code-panel .code-panel__view--b,
#rut-md:checked~.code-panel .code-panel__view--a{display:none}
#ht-skillfile:checked~.code-panel [for="ht-skillfile"],
#ht-terminal:checked~.code-panel [for="ht-terminal"],
#rt-skillfile:checked~.code-panel [for="rt-skillfile"],
#rt-terminal:checked~.code-panel [for="rt-terminal"],
#rut-toml:checked~.code-panel [for="rut-toml"],
#rut-md:checked~.code-panel [for="rut-md"]{color:var(--fg);border-bottom-color:var(--accent)}
.code-panel__pre code{display:block;padding:18px 20px;font-size:.8rem;line-height:1.8;color:var(--fg);white-space:pre;overflow-x:auto}

/* ─── Concept section ────────────────────────────────────────────────────────── */
.concept-section__inner{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:flex-start}
.concept-section__text{display:flex;flex-direction:column;gap:24px}
.concept-compare{
  display:flex;flex-direction:column;gap:0;
  border:1px solid var(--border-s);border-radius:var(--r-lg);overflow:hidden
}
.concept-item{padding:16px 20px;background:var(--bg-1)}
.concept-item--accent{
  background:linear-gradient(135deg,rgba(204,52,45,.06) 0%,var(--bg-1) 60%);
  border-top:1px solid var(--border)
}
.concept-item__label{font-family:var(--mono);font-size:.65rem;color:var(--fg-subtle);letter-spacing:.06em;margin-bottom:3px}
.concept-item--accent .concept-item__label{color:var(--accent-t)}
.concept-item__desc{font-size:.9375rem;color:var(--fg)}
.concept-item__desc em{font-style:normal;font-weight:600}
.props-grid{display:flex;flex-direction:column;border:1px solid var(--border-s);border-radius:var(--r-lg);overflow:hidden}
.props-grid__item{
  display:grid;grid-template-columns:10px 1fr;grid-template-rows:auto auto;
  gap:0 10px;padding:14px 18px;background:var(--bg-1);border-bottom:1px solid var(--border)
}
.props-grid__item:last-child{border-bottom:none}
.props-grid__bullet{
  grid-row:1/3;width:4px;height:4px;border-radius:50%;
  background:var(--accent);margin-top:8px;flex-shrink:0
}
.props-grid__item strong{font-size:.8125rem;color:var(--fg);display:block}
.props-grid__item span{font-size:.75rem;color:var(--fg-muted);margin-top:1px}

/* ─── Roadmap ────────────────────────────────────────────────────────────────── */
.roadmap-section__header{display:flex;flex-direction:column;gap:10px;margin-bottom:32px}
.roadmap-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
  gap:1px;background:var(--border);border:1px solid var(--border-s);
  border-radius:var(--r-lg);overflow:hidden
}
.roadmap-item{background:var(--bg-1);padding:18px 20px}
.roadmap-item__name{font-size:.875rem;font-weight:600;color:var(--fg);margin-bottom:3px}
.roadmap-item__desc{font-size:.75rem;color:var(--fg-muted);line-height:1.5}

/* ─── CTA section ────────────────────────────────────────────────────────────── */
.cta-section__inner{display:flex;flex-direction:column;gap:14px;max-width:520px}
.cta-section__headline{
  font-size:clamp(1.625rem,3.2vw,2.5rem);
  font-weight:700;letter-spacing:-.025em;line-height:1.15;color:var(--fg)
}
.cta-section__copy{font-size:.9375rem;color:var(--fg-muted)}

/* ─── Pain points (For Rails) ────────────────────────────────────────────────── */
.pain-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:12px;margin-top:36px
}
.pain-card{
  background:var(--bg-1);border:1px solid var(--border-s);
  border-radius:var(--r-lg);padding:22px 20px;
  display:flex;flex-direction:column;gap:10px
}
.pain-card__icon{
  width:32px;height:32px;border-radius:var(--r-md);
  background:var(--accent-d);border:1px solid rgba(204,52,45,.2);
  color:var(--accent-t);display:flex;align-items:center;justify-content:center
}
.pain-card__title{font-size:.9375rem;font-weight:600;color:var(--fg);line-height:1.3}
.pain-card__copy{font-size:.8125rem;color:var(--fg-muted);line-height:1.6}

/* ─── Skills catalog (For Rails) ─────────────────────────────────────────────── */
.skills-catalog{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:12px;margin-top:36px
}
.skill-card{
  background:var(--bg-1);border:1px solid var(--border-s);
  border-radius:var(--r-lg);padding:20px 18px;
  display:flex;flex-direction:column;gap:8px
}
.skill-card__name{font-family:var(--mono);font-size:.8125rem;color:var(--fg)}
.skill-card__desc{font-size:.8125rem;color:var(--fg-muted);line-height:1.55;flex:1}
.skill-card__status{
  font-family:var(--mono);font-size:.65rem;letter-spacing:.06em;
  text-transform:uppercase;color:#4caf84;margin-top:4px
}
.skill-card__status--soon,
.skill-card__status--example{color:var(--fg-subtle)}

/* ─── Audience cards (For Ruby) ──────────────────────────────────────────────── */
.audience-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:12px;margin-top:36px
}
.audience-card{
  background:var(--bg-1);border:1px solid var(--border-s);
  border-radius:var(--r-lg);padding:22px 20px;
  display:flex;flex-direction:column;gap:12px
}
.audience-card__icon{
  width:32px;height:32px;border-radius:var(--r-md);
  background:var(--accent-d);border:1px solid rgba(204,52,45,.2);
  color:var(--accent-t);display:flex;align-items:center;justify-content:center
}
.audience-card__title{font-size:.9375rem;font-weight:600;color:var(--fg)}
.audience-card__copy{font-size:.8125rem;color:var(--fg-muted);line-height:1.6;flex:1}
.audience-card__snippet{
  display:block;background:#0c0c0c;border:1px solid var(--border);
  border-radius:var(--r);padding:10px 12px;
  font-size:.75rem;line-height:1.7;white-space:pre;overflow-x:auto
}

/* ─── Footer ─────────────────────────────────────────────────────────────────── */
.site-footer{border-top:1px solid var(--border);padding:28px 0}
.site-footer__inner{
  display:flex;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:14px
}
.site-footer__brand{display:flex;align-items:center;gap:14px}
.site-footer__logo{
  display:flex;align-items:center;gap:7px;
  font-size:.875rem;font-weight:700;color:var(--fg)
}
.site-footer__logo svg{color:var(--accent)}
.site-footer__tag{font-size:.8rem;color:var(--fg-subtle)}
.site-footer__links{display:flex;gap:16px}
.site-footer__links a{font-size:.875rem;color:var(--fg-muted);transition:color .12s}
.site-footer__links a:hover{color:var(--fg)}
.site-footer__copy{font-size:.8rem;color:var(--fg-subtle)}

/* ─── Responsive ─────────────────────────────────────────────────────────────── */
@media(max-width:900px){
  .hero__layout{grid-template-columns:1fr;gap:40px}
  .hero__visual{order:-1}
  .terminal-window{display:none}
  .pain-grid,.skills-catalog,.audience-grid{grid-template-columns:1fr 1fr}
  .blog-section__inner{grid-template-columns:1fr;gap:36px}
  .how-section__inner{grid-template-columns:1fr;gap:36px}
  .concept-section__inner{grid-template-columns:1fr;gap:36px}
  .tools-section__inner{grid-template-columns:1fr;gap:0}
  .tools-divider{width:auto;height:1px;margin:24px 0}
}
@media(max-width:600px){
  .container{padding:0 20px}
  .hero{padding:36px 0 48px}
  .section{padding:48px 0}
  .tools-section{padding:32px 0}
  .site-nav__center{display:none}
  .timeline-compare{grid-template-columns:1fr}
  .pain-grid,.skills-catalog,.audience-grid{grid-template-columns:1fr}
  .subscription-form__row{flex-direction:column}
  .site-footer__inner{flex-direction:column;align-items:flex-start}
  .install-cmd{flex-wrap:wrap}
}
