:root {
  --afe-navy: #0f172a;
  --afe-slate: #334155;
  --afe-muted: #64748b;
  --afe-blue: #2563eb;
  --afe-blue-dark: #1d4ed8;
  --afe-blue-soft: #eff6ff;
  --afe-sky: #93c5fd;
  --afe-border: #e2e8f0;
  --afe-border-strong: #cbd5e1;
  --afe-surface: #ffffff;
  --afe-surface-muted: #f8fafc;
  --afe-shadow-sm: 0 5px 16px rgba(15, 23, 42, 0.05);
  --afe-shadow-md: 0 10px 28px rgba(15, 23, 42, 0.07);
  --afe-shadow-lg: 0 18px 45px rgba(15, 23, 42, 0.11);
  --bs-primary: #2563eb;
  --bs-primary-rgb: 37, 99, 235;
  --bs-body-color: #334155;
  --bs-body-color-rgb: 51, 65, 85;
  --bs-secondary-color: #64748b;
}

html { scroll-behavior: smooth; }

body.public-shell {
  color: var(--afe-slate);
  background-color: #fff;
  background-image:
    linear-gradient(rgba(15, 23, 42, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15, 23, 42, 0.03) 1px, transparent 1px);
  background-size: 24px 24px;
  font-size: .96rem;
}

.public-shell main { overflow: hidden; }
.public-shell h1,
.public-shell h2,
.public-shell h3,
.public-shell h4,
.public-shell h5,
.public-shell h6 { color: var(--afe-navy); letter-spacing: -.018em; }
.public-shell a { color: var(--afe-blue); }
.public-shell .text-body-secondary,
.public-shell .text-muted { color: var(--afe-muted) !important; }
.public-shell .container-xxl { max-width: 1200px; }

.skip-link { position: absolute; z-index: 1100; background: #fff; padding: .75rem; }

.public-header {
  border-bottom: 1px solid var(--afe-border);
  box-shadow: 0 3px 12px rgba(15, 23, 42, .04);
  z-index: 1030;
}
.public-header .navbar { min-height: 68px; padding: .45rem 0; }
.public-header .navbar-brand { padding: 0; }
.public-header .navbar-brand img { display: block; height: 44px; width: auto; }
.public-header .navbar-toggler { border-color: var(--afe-border-strong); border-radius: .55rem; }
.public-header .navbar-toggler:focus { box-shadow: 0 0 0 .2rem rgba(37, 99, 235, .16); }
.public-header .nav-link {
  border-radius: .5rem;
  color: var(--afe-slate);
  font-size: .88rem;
  font-weight: 600;
  padding: .5rem .68rem !important;
  transition: background-color 150ms ease, color 150ms ease, transform 150ms ease;
}
.public-header .nav-link:hover,
.public-header .nav-link:focus { background: var(--afe-surface-muted); color: var(--afe-navy); transform: translateY(-1px); }
.public-header .nav-link.active { background: var(--afe-blue-soft); color: var(--afe-blue-dark); }
.public-nav-actions .dropdown-toggle { color: var(--afe-muted) !important; font-weight: 600; }
.public-login-link { color: var(--afe-slate) !important; font-weight: 600; text-decoration: none; }
.public-nav-cta { box-shadow: 0 5px 12px rgba(37, 99, 235, .2); }
.dropdown-menu { border-color: var(--afe-border); border-radius: .65rem; box-shadow: var(--afe-shadow-md); padding: .4rem; }
.dropdown-item { border-radius: .4rem; font-size: .88rem; }
.dropdown-item.active { background: var(--afe-blue); }

.btn {
  border-radius: .48rem;
  font-weight: 650;
  transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, color 150ms ease, transform 150ms ease;
}
.btn:hover { transform: translateY(-1px); }
.public-shell .btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--afe-blue);
  --bs-btn-border-color: var(--afe-blue);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--afe-blue-dark);
  --bs-btn-hover-border-color: var(--afe-blue-dark);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--afe-blue-dark);
  --bs-btn-active-border-color: var(--afe-blue-dark);
  color: #fff;
  box-shadow: 0 5px 13px rgba(37, 99, 235, .18);
}
.public-shell .btn-outline-primary {
  --bs-btn-color: var(--afe-blue-dark);
  --bs-btn-border-color: #93c5fd;
  --bs-btn-hover-bg: var(--afe-blue);
  --bs-btn-hover-border-color: var(--afe-blue);
}
.public-shell .btn-outline-dark {
  --bs-btn-color: var(--afe-slate);
  --bs-btn-border-color: var(--afe-border-strong);
  --bs-btn-hover-color: var(--afe-navy);
  --bs-btn-hover-bg: var(--afe-surface-muted);
  --bs-btn-hover-border-color: #94a3b8;
}
.btn-lg { border-radius: .6rem; font-size: .96rem; padding: .72rem 1rem; }

.hero-section {
  background:
    radial-gradient(circle at 86% 12%, rgba(59, 130, 246, .15), transparent 29%),
    radial-gradient(circle at 7% 76%, rgba(14, 165, 233, .07), transparent 24%),
    rgba(255, 255, 255, .92);
  border-bottom: 1px solid var(--afe-border);
  position: relative;
}
.hero-section::after {
  background: linear-gradient(90deg, var(--afe-blue), #38bdf8);
  bottom: -1px;
  content: "";
  height: 3px;
  left: 0;
  position: absolute;
  width: min(34vw, 430px);
}
.hero-container { padding-bottom: 5rem; padding-top: 5rem; }
.hero-kicker {
  align-items: center;
  background: rgba(239, 246, 255, .88);
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  color: var(--afe-blue-dark);
  display: inline-flex;
  font-size: .74rem;
  font-weight: 750;
  gap: .5rem;
  letter-spacing: .035em;
  padding: .38rem .7rem;
  text-transform: uppercase;
}
.hero-kicker-dot { background: #22c55e; border: 2px solid #dcfce7; border-radius: 50%; box-shadow: 0 0 0 2px rgba(34, 197, 94, .18); height: .48rem; width: .48rem; }
.hero-section h1 { font-size: clamp(2.4rem, 5.5vw, 4.65rem); letter-spacing: -.055em; line-height: .99; max-width: 780px; }
.hero-section .lead { font-size: clamp(1.05rem, 1.8vw, 1.22rem); line-height: 1.65; max-width: 680px; }
.hero-trust-row { color: var(--afe-muted); display: flex; flex-wrap: wrap; font-size: .76rem; font-weight: 650; gap: .65rem 1.2rem; margin-top: 1.4rem; }
.hero-trust-row span { align-items: center; display: inline-flex; gap: .4rem; }
.hero-trust-row i { align-items: center; background: #dcfce7; border-radius: 50%; color: #15803d; display: inline-flex; font-size: .55rem; height: 1.1rem; justify-content: center; width: 1.1rem; }
.hero-output {
  background: #fff;
  border: 1px solid var(--afe-border-strong);
  border-radius: .8rem;
  box-shadow: var(--afe-shadow-lg);
  overflow: hidden;
  position: relative;
  transform: rotate(1deg);
}
.hero-window-bar { align-items: center; background: #f8fafc; border-bottom: 1px solid var(--afe-border); display: flex; gap: .38rem; min-height: 36px; padding: 0 .8rem; }
.hero-window-bar > span { background: #cbd5e1; border-radius: 50%; height: .48rem; width: .48rem; }
.hero-window-bar > span:first-child { background: #fda4af; }
.hero-window-bar > span:nth-child(2) { background: #fcd34d; }
.hero-window-bar > span:nth-child(3) { background: #86efac; }
.hero-window-bar small { color: #94a3b8; font-size: .65rem; font-weight: 700; letter-spacing: .06em; margin-left: auto; text-transform: uppercase; }
.hero-output img { aspect-ratio: 689 / 512; display: block; object-fit: contain; width: 100%; }
.hero-output figcaption { background: #fff; border-top: 1px solid var(--afe-border); font-size: .72rem; }

.page-section { padding-bottom: 4.5rem; padding-top: 4.5rem; }
.page-heading {
  background: radial-gradient(circle at top right, rgba(59, 130, 246, .13), transparent 38%), #fff;
  border: 1px solid var(--afe-border);
  border-radius: .8rem;
  box-shadow: var(--afe-shadow-md);
  margin-bottom: 2rem;
  max-width: 800px;
  overflow: hidden;
  padding: clamp(1.4rem, 3.8vw, 2.25rem);
  position: relative;
}
.page-heading::before { background: var(--afe-blue); content: ""; height: 4px; inset: 0 0 auto; position: absolute; }
.page-heading.text-center { max-width: 850px; }
.page-heading h1 { font-size: clamp(2rem, 4.5vw, 3.25rem); font-weight: 700; letter-spacing: -.045em; margin-top: .5rem; }
.page-heading p { color: var(--afe-muted); font-size: 1.05rem; line-height: 1.65; margin-bottom: 0; }
.eyebrow { color: var(--afe-blue); font-size: .72rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.section-link { align-items: center; display: inline-flex; font-size: .84rem; font-weight: 700; gap: .45rem; text-decoration: none; }
.section-link i { transition: transform 150ms ease; }
.section-link:hover i { transform: translateX(3px); }

.card,
.technical-panel,
.demo-shell {
  background: rgba(255, 255, 255, .96);
  border: 1px solid var(--afe-border);
  border-radius: .72rem;
  box-shadow: var(--afe-shadow-sm);
}
.card { overflow: hidden; transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.card:hover { border-color: var(--afe-border-strong); box-shadow: 0 10px 24px rgba(15, 23, 42, .09); }
.card-body { padding: 1.3rem; }
.product-card { position: relative; }
.product-card::before { background: var(--afe-blue); content: ""; height: 4px; inset: 0 0 auto; position: absolute; z-index: 1; }
.product-card:hover { border-color: #93c5fd; transform: translateY(-2px); }
.public-feature-card .card-body { display: flex; flex-direction: column; padding: 1.4rem; }
.public-feature-card .card-action { font-size: .82rem; font-weight: 700; margin-top: auto; text-decoration: none; }
.feature-check-list { list-style: none; padding-left: 0; }
.feature-check-list li { color: var(--afe-muted); padding-left: 1.35rem; position: relative; }
.feature-check-list li + li { margin-top: .45rem; }
.feature-check-list li::before { color: #16a34a; content: "\f00c"; font-family: "Font Awesome 5 Free"; font-size: .65rem; font-weight: 900; left: 0; position: absolute; top: .16rem; }
.tool-icon {
  align-items: center;
  background: var(--afe-blue-soft);
  border: 1px solid #dbeafe;
  border-radius: .62rem;
  color: var(--afe-blue);
  display: flex;
  flex: 0 0 2.55rem;
  font-size: 1.05rem;
  height: 2.55rem;
  justify-content: center;
  width: 2.55rem;
}
.technical-panel { padding: 1.4rem; transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease; }
.technical-panel:hover { border-color: var(--afe-border-strong); box-shadow: 0 9px 22px rgba(15, 23, 42, .08); }
.technical-panel > i:first-child { align-items: center; background: var(--afe-blue-soft); border-radius: .58rem; display: flex; height: 2.4rem; justify-content: center; width: 2.4rem; }
.technical-list dt, .technical-list dd { padding-bottom: .35rem; padding-top: .35rem; }
.technical-list dd { color: var(--afe-muted); }

.showcase-panel,
.cta-panel {
  align-items: center;
  background: radial-gradient(circle at top right, rgba(59, 130, 246, .1), transparent 34%), rgba(255, 255, 255, .96);
  border: 1px solid var(--afe-border);
  border-radius: .8rem;
  box-shadow: var(--afe-shadow-md);
  display: flex;
  gap: 1.3rem;
}
.showcase-icon { align-items: center; background: var(--afe-navy); border-radius: .75rem; color: #fff; display: flex; flex: 0 0 3.3rem; height: 3.3rem; justify-content: center; }
.cta-panel { border-color: #bfdbfe; position: relative; }
.cta-panel::before { background: linear-gradient(#2563eb, #38bdf8); border-radius: .8rem 0 0 .8rem; content: ""; inset: 0 auto 0 0; position: absolute; width: 4px; }
.benefits-strip { background: rgba(248, 250, 252, .94); border-bottom: 1px solid var(--afe-border); border-top: 1px solid var(--afe-border); }
.benefit-item { align-items: flex-start; display: flex; gap: .75rem; }
.benefit-icon { align-items: center; background: var(--afe-blue-soft); border: 1px solid #dbeafe; border-radius: .55rem; color: var(--afe-blue); display: flex; flex: 0 0 2.3rem; height: 2.3rem; justify-content: center; }

.page-section > .row.align-items-end:first-child,
.page-section > .row.align-items-center:first-child {
  background: radial-gradient(circle at top right, rgba(59, 130, 246, .12), transparent 35%), #fff;
  border: 1px solid var(--afe-border);
  border-radius: .8rem;
  box-shadow: var(--afe-shadow-md);
  margin-left: 0;
  margin-right: 0;
  padding: clamp(1rem, 3vw, 1.8rem);
}
.product-hero { background: var(--afe-surface-muted); border-color: var(--afe-border) !important; border-radius: .7rem !important; max-height: 370px; object-fit: contain; width: 100%; }
.output-preview { background: var(--afe-surface-muted); height: 170px; object-fit: cover; width: 100%; }
.article-thumb { background: var(--afe-surface-muted); height: 185px; object-fit: cover; }
.article-hero { background: var(--afe-surface-muted); border-color: var(--afe-border) !important; border-radius: .7rem !important; max-height: 430px; object-fit: cover; width: 100%; }
.article-aside { top: 5.5rem; }
.team-photo { aspect-ratio: 1 / 1; background: var(--afe-surface-muted); object-fit: cover; width: 100%; }
.badge.text-bg-light { background: #f8fafc !important; border-color: var(--afe-border) !important; color: #475569 !important; }
.badge.text-bg-primary { background: var(--afe-blue) !important; }

.demo-shell { padding: 1.5rem; }
.demo-interface { background: #f8fafc; border: 1px solid var(--afe-border-strong); border-radius: .6rem; min-height: 270px; }
.demo-highlight { outline: 3px solid rgba(37, 99, 235, .2); outline-offset: 2px; }
.result-cell { background: #fff; border: 1px solid var(--afe-border); border-radius: .5rem; display: flex; flex-direction: column; gap: .35rem; padding: 1rem; }
.result-cell small { color: var(--afe-muted); }
.progress { background: #e2e8f0; border-radius: 999px; height: .65rem; }
.progress-bar { background: var(--afe-blue); }
.form-control, .form-select, .input-group-text { border-color: var(--afe-border-strong); border-radius: .48rem; }
.form-control:focus, .form-select:focus { border-color: #93c5fd; box-shadow: 0 0 0 .2rem rgba(37, 99, 235, .14); }

.public-footer {
  background: radial-gradient(circle at 15% 0%, rgba(59, 130, 246, .08), transparent 28%), linear-gradient(90deg, #f8fafc, #fff 50%, #f8fafc);
  border-top: 1px solid #dbe3ec;
  box-shadow: 0 -4px 16px rgba(15, 23, 42, .035);
  color: var(--afe-muted);
  padding: .75rem 0;
}
.public-footer-inner { align-items: center; display: flex; justify-content: center; }
.public-footer-brand { align-items: center; display: flex; gap: .55rem; }
.public-footer-brand strong { color: var(--afe-slate); display: block; font-size: .8rem; line-height: 1.1; }
.public-footer-brand span:not(.public-footer-mark) { color: #94a3b8; display: block; font-size: .68rem; margin-top: .15rem; white-space: nowrap; }
.public-footer-mark { align-items: center; background: linear-gradient(135deg, #eff6ff, #dbeafe); border: 1px solid #bfdbfe; border-radius: .48rem; color: var(--afe-blue); display: flex; height: 1.9rem; justify-content: center; width: 1.9rem; }
.public-footer-links { display: flex; flex-wrap: wrap; gap: .2rem; justify-content: center; width: 100%; }
.public-footer-links a { align-items: center; border-radius: .45rem; color: var(--afe-muted); display: inline-flex; font-size: .72rem; gap: .35rem; padding: .36rem .5rem; text-decoration: none; transition: background-color 150ms ease, color 150ms ease, transform 150ms ease; }
.public-footer-links a i { color: #94a3b8; text-align: center; width: .9rem; }
.public-footer-links a:hover { background: var(--afe-blue-soft); color: var(--afe-blue-dark); transform: translateY(-1px); }
.public-footer-links a:hover i { color: var(--afe-blue); }
.public-footer-links .public-footer-support:hover { background: #fff7ed; color: #c2410c; }
.public-footer-links .public-footer-support:hover i { color: #ea580c; }

@media (max-width: 991.98px) {
  .public-header .navbar { min-height: 62px; }
  .public-header .navbar-collapse { border-top: 1px solid var(--afe-border); margin-top: .55rem; padding-bottom: .65rem; padding-top: .75rem; }
  .public-header .navbar-nav { gap: .15rem; }
  .public-nav-actions { border-top: 1px solid var(--afe-border); margin-top: .6rem; padding-top: .75rem; }
  .hero-container { padding-bottom: 3.5rem; padding-top: 3.5rem; }
  .hero-output { transform: none; }
  .page-section { padding-bottom: 3rem; padding-top: 3rem; }
  .article-aside { position: static !important; }
  .showcase-panel { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 767.98px) {
  .hero-section h1 { font-size: clamp(2.25rem, 12vw, 3.3rem); }
  .hero-trust-row { align-items: flex-start; flex-direction: column; }
  .page-heading { padding: 1.35rem; }
  .public-footer-links { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
