/* Progressive marketing theme 2025 */
:root {
  --color-bg:#04060d;
  --color-surface:rgba(12,18,33,0.82);
  --color-surface-alt:rgba(16,23,40,0.9);
  --color-glass:rgba(15,21,38,0.65);
  --color-border:rgba(255,255,255,0.08);
  --color-primary:#004AAD;
  --color-primary-soft:#3f78ff;
  --color-secondary:#E30613;
  --color-text:#f5f7ff;
  --color-muted:rgba(207,217,255,0.78);
  --shadow-lg:0 32px 90px rgba(3,14,37,0.6);
  --shadow-md:0 18px 40px rgba(3,14,37,0.45);
  --gradient-primary:linear-gradient(135deg,#004AAD 0%,#8F4CFF 48%,#E30613 100%);
  --radius-lg:32px;
  --radius-md:22px;
  --header-height:80px;
  font-family:'Inter',sans-serif;
  scroll-behavior:smooth;
}

*,
*::before,
*::after {
  box-sizing:border-box;
}

body {
  margin:0;
  min-height:100vh;
  color:var(--color-text);
  background:var(--color-bg);
  line-height:1.7;
  position:relative;
  overflow-x:hidden;
}

body::before,
body::after {
  content:"";
  position:fixed;
  z-index:-1;
  width:620px;
  height:620px;
  border-radius:50%;
  filter:blur(140px);
  opacity:0.45;
}

body::before {
  top:-260px;
  left:-220px;
  background:radial-gradient(circle,#1c4bff 0%, transparent 70%);
}

body::after {
  bottom:-320px;
  right:-220px;
  background:radial-gradient(circle,#ff3166 0%, transparent 75%);
}

a {
  color:#8fb2ff;
  text-decoration:none;
  transition:color 0.3s ease, transform 0.3s ease;
}

a:hover,
a:focus-visible {
  color:#ffffff;
  transform:translateY(-1px);
}

.container {
  width:min(1180px,92vw);
  margin:0 auto;
}

.site-header {
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(6,9,18,0.84);
  backdrop-filter:blur(28px) saturate(140%);
  border-bottom:1px solid rgba(255,255,255,0.07);
  box-shadow:0 24px 60px rgba(3,14,37,0.38);
  padding:18px 0;
}

.header-inner {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:28px;
}

.logo {
  font-weight:700;
  font-size:26px;
  letter-spacing:0.08em;
  color:#ffffff;
}

.main-nav {
  display:flex;
  align-items:center;
  gap:14px;
  justify-content:center;
  transition:transform 0.3s ease, opacity 0.3s ease;
}

.main-nav__link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 20px;
  border-radius:999px;
  color:var(--color-muted);
  background:linear-gradient(180deg,rgba(255,255,255,0.08), rgba(255,255,255,0.02));
  border:1px solid rgba(255,255,255,0.08);
  position:relative;
  transition:color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

.main-nav__link::after {
  content:"";
  position:absolute;
  inset:auto 18px -6px 18px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent 0%, rgba(79,133,255,0.8) 45%, rgba(227,6,19,0.8) 100%);
  opacity:0;
  transition:opacity 0.3s ease;
}

.main-nav__link:hover,
.main-nav__link:focus-visible {
  color:#ffffff;
  box-shadow:0 18px 32px rgba(0,74,173,0.4);
  transform:translateY(-2px);
}

.main-nav__link:hover::after,
.main-nav__link:focus-visible::after {
  opacity:1;
}

.header-cta {
  display:flex;
  align-items:center;
  gap:18px;
  justify-content:flex-end;
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 30px;
  border-radius:999px;
  font-weight:600;
  color:#ffffff;
  background:var(--gradient-primary);
  border:1px solid rgba(255,255,255,0.25);
  box-shadow:0 14px 34px rgba(0,74,173,0.35), 0 6px 18px rgba(227,6,19,0.25);
  transition:transform 0.35s ease, box-shadow 0.35s ease;
}

.btn:hover,
.btn:focus-visible {
  transform:translateY(-3px);
  box-shadow:0 20px 44px rgba(0,74,173,0.38);
}

.btn-outline {
  background:transparent;
  border:1px solid rgba(255,255,255,0.38);
  color:var(--color-text);
  box-shadow:none;
}

.btn-ghost {
  background:linear-gradient(135deg,rgba(227,6,19,0.18),rgba(255,255,255,0));
  border:1px solid rgba(227,6,19,0.34);
}

.nav-toggle {
  display:none;
  width:52px;
  height:52px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,0.18);
  background:var(--color-glass);
  backdrop-filter:blur(18px);
  position:relative;
  cursor:pointer;
  transition:background 0.3s ease, border 0.3s ease;
}

.nav-toggle__bar {
  display:block;
  width:24px;
  height:2px;
  margin:5px auto;
  background:#ffffff;
  border-radius:999px;
  transition:transform 0.35s ease, opacity 0.35s ease;
}

body.nav-open {
  overflow:hidden;
}

body.nav-open .nav-toggle__bar:nth-child(1) {
  transform:translateY(7px) rotate(45deg);
}

body.nav-open .nav-toggle__bar:nth-child(2) {
  opacity:0;
}

body.nav-open .nav-toggle__bar:nth-child(3) {
  transform:translateY(-7px) rotate(-45deg);
}

.nav-backdrop {
  position:fixed;
  inset:0;
  z-index:40;
  background:rgba(4,6,13,0.65);
  backdrop-filter:blur(18px);
  opacity:0;
  pointer-events:none;
  transition:opacity 0.35s ease;
}

body.nav-open .nav-backdrop {
  opacity:1;
  pointer-events:auto;
}

.hero {
  position:relative;
  padding:clamp(140px,18vw,210px) 0 120px;
  overflow:hidden;
  isolation:isolate;
}

.hero::before,
.hero::after {
  content:"";
  position:absolute;
  border-radius:50%;
  filter:blur(0);
  opacity:0.8;
  mix-blend-mode:screen;
}

.hero::before {
  width:520px;
  height:520px;
  top:-220px;
  left:-120px;
  background:radial-gradient(circle,#2565ff 0%, rgba(37,101,255,0) 70%);
  animation:float 18s ease-in-out infinite;
}

.hero::after {
  width:640px;
  height:640px;
  bottom:-260px;
  right:-220px;
  background:radial-gradient(circle,#ff3d81 0%, rgba(255,61,129,0) 70%);
  animation:float 20s ease-in-out infinite alternate;
}

.hero-inner {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(290px,1fr));
  align-items:center;
  gap:48px;
  position:relative;
  z-index:1;
}

.hero-content {
  position:relative;
  padding:32px;
  border-radius:var(--radius-md);
  background:linear-gradient(160deg,rgba(18,25,46,0.75) 0%, rgba(8,11,22,0.45) 100%);
  border:1px solid rgba(255,255,255,0.05);
  box-shadow:var(--shadow-md);
}

.hero-content::after {
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:inherit;
  background:linear-gradient(140deg,rgba(0,74,173,0.35),rgba(227,6,19,0.22));
  opacity:0.4;
  z-index:-1;
  filter:blur(30px);
}

.hero h1 {
  margin:0 0 18px;
  font-size:clamp(34px,4.5vw,52px);
  line-height:1.1;
}

.hero p {
  color:var(--color-muted);
  font-size:18px;
}

.hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:18px;
  margin-top:28px;
}

.hero-media {
  position:relative;
  display:flex;
  justify-content:center;
}

.hero-media::before {
  content:"";
  position:absolute;
  inset:-12%;
  border-radius:40%;
  background:radial-gradient(circle at center,rgba(79,133,255,0.35),transparent 70%);
  filter:blur(32px);
  animation:pulse 12s ease-in-out infinite;
}

.hero-media img {
  max-width:100%;
  border-radius:28px;
  border:1px solid rgba(255,255,255,0.12);
  box-shadow:var(--shadow-lg);
  opacity:0;
  transform:translateY(30px);
  transition:opacity 0.65s ease, transform 0.65s ease;
}

.hero-media img.is-loaded {
  opacity:1;
  transform:translateY(0);
}

.page-meta {
  display:flex;
  gap:22px;
  margin-top:-70px;
  padding:28px;
  border-radius:var(--radius-lg);
  background:linear-gradient(160deg,rgba(13,19,37,0.85) 0%, rgba(7,11,24,0.72) 100%);
  border:1px solid var(--color-border);
  box-shadow:0 28px 70px rgba(3,17,39,0.55);
  position:relative;
  z-index:2;
}

.meta-card {
  flex:1;
}

.meta-label {
  display:block;
  font-size:13px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:rgba(214,223,255,0.55);
}

.meta-value {
  font-size:20px;
  font-weight:600;
}

.content-area {
  margin-top:56px;
  padding:68px clamp(24px,6vw,64px) 96px;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  background:linear-gradient(180deg,rgba(9,13,24,0.92) 0%, rgba(6,9,18,0.94) 100%);
  box-shadow:0 -32px 90px rgba(3,14,37,0.55) inset;
}

.content-block {
  position:relative;
  margin-bottom:48px;
  padding:40px clamp(18px,4vw,32px);
  border-radius:var(--radius-md);
  background:var(--color-surface-alt);
  border:1px solid rgba(255,255,255,0.08);
  box-shadow:var(--shadow-md);
  opacity:0;
  transform:translateY(32px);
  transition:opacity 0.6s ease, transform 0.6s ease;
}

.content-block.visible {
  opacity:1;
  transform:translateY(0);
}

.content-block::before {
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  padding:1px;
  background:linear-gradient(120deg,rgba(79,133,255,0.45),rgba(227,6,19,0.3));
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
          mask-composite:exclude;
  opacity:0.5;
}

.content-block h2,
.content-block h3 {
  margin-top:0;
  margin-bottom:18px;
  color:#dce6ff;
}

.content-block p {
  color:var(--color-muted);
  margin:0 0 18px;
}

.link-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:18px;
  list-style:none;
  padding:0;
  margin:0;
}

.link-grid a {
  display:block;
  padding:16px 18px;
  border-radius:18px;
  color:#e6ecff;
  background:linear-gradient(160deg,rgba(23,33,54,0.85),rgba(13,19,36,0.65));
  border:1px solid rgba(123,196,255,0.35);
  transition:transform 0.35s ease, box-shadow 0.35s ease;
}

.link-grid a:hover {
  transform:translateY(-4px);
  box-shadow:0 18px 38px rgba(0,74,173,0.45);
}

.cta-panel {
  margin-top:48px;
  padding:44px 24px;
  border-radius:28px;
  text-align:center;
  background:linear-gradient(135deg,rgba(227,6,19,0.18),rgba(0,74,173,0.25));
  border:1px solid rgba(227,6,19,0.24);
  box-shadow:0 24px 60px rgba(0,30,84,0.35);
}

.site-footer {
  margin-top:80px;
  background:rgba(5,7,15,0.95);
  border-top:1px solid rgba(255,255,255,0.07);
  padding:72px 0 28px;
}

.footer-inner {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:32px;
}

.footer-brand p {
  color:rgba(214,223,255,0.65);
  line-height:1.6;
}

.footer-link {
  display:block;
  margin-bottom:12px;
  color:rgba(214,223,255,0.7);
  transition:color 0.3s ease, transform 0.3s ease;
}

.footer-link:hover,
.footer-link:focus-visible {
  color:#ffffff;
  transform:translateX(4px);
}

.footer-cta {
  display:flex;
  justify-content:flex-end;
  align-items:center;
}

.footer-bottom {
  margin-top:40px;
  padding-top:24px;
  text-align:center;
  color:rgba(214,223,255,0.55);
  border-top:1px solid rgba(255,255,255,0.08);
}

.nav-backdrop,
.header-cta,
.main-nav,
.nav-toggle {
  will-change:transform, opacity;
}

.lazy-placeholder {
  filter:blur(14px);
}

@keyframes float {
  0% { transform:translate3d(0,-12px,0) scale(1); }
  50% { transform:translate3d(8px,14px,0) scale(1.05); }
  100% { transform:translate3d(-6px,-10px,0) scale(1); }
}

@keyframes pulse {
  0% { opacity:0.4; transform:scale(0.92); }
  50% { opacity:0.7; transform:scale(1.05); }
  100% { opacity:0.4; transform:scale(0.92); }
}

@media (max-width:1200px) {
  .hero-content {
    padding:28px;
  }
}

@media (max-width:960px) {
  .main-nav {
    position:fixed;
    top:calc(var(--header-height) + 12px);
    left:clamp(16px,5vw,32px);
    right:clamp(16px,5vw,32px);
    flex-direction:column;
    align-items:stretch;
    padding:28px;
    background:linear-gradient(160deg,rgba(11,16,29,0.96),rgba(6,9,18,0.94));
    border-radius:24px;
    border:1px solid rgba(255,255,255,0.08);
    box-shadow:0 28px 70px rgba(3,14,37,0.6);
    transform:translateY(-140%);
    opacity:0;
    pointer-events:none;
  }

  body.nav-open .main-nav {
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }

  .main-nav__link {
    width:100%;
    justify-content:flex-start;
    padding:14px 16px;
  }

  .nav-toggle {
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  .header-cta {
    gap:12px;
  }

  .btn-ghost {
    padding:12px 20px;
  }

  .hero-inner {
    gap:36px;
  }

  .hero-content {
    padding:26px 24px;
  }

  .page-meta {
    flex-direction:column;
    align-items:stretch;
  }

  .footer-cta {
    justify-content:center;
  }
}

@media (max-width:600px) {
  .container {
    width:92vw;
  }

  .hero {
    padding:130px 0 90px;
  }

  .content-area {
    padding:56px 20px 80px;
  }
}

@media (prefers-reduced-motion:reduce) {
  *,
  *::before,
  *::after {
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}
