/* Blog uses the shared FastVPS palette and reveal system. Loaded only on blog routes. */
body { background: #071225; color: var(--ink); }
#main { position: relative; isolation: isolate; }
#main::before {
  content: ""; position: absolute; z-index: -1; inset: 0 0 auto; height: 800px;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 85% 12%, rgba(11,118,255,.17), transparent 56%),
    radial-gradient(ellipse at 12% 35%, rgba(30,232,240,.055), transparent 48%),
    linear-gradient(180deg, rgba(4,12,31,.55), rgba(4,12,31,.86)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.045) 0 1px, transparent 1px 92px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.035) 0 1px, transparent 1px 92px);
  mask-image: linear-gradient(#000 65%, transparent);
}
body .editorial-hero { padding-top: 76px; padding-bottom: 52px; }
body .editorial-hero h1 { color: var(--ink); letter-spacing: -.025em; }
body .editorial-dot { color: var(--cyan); text-shadow: 0 0 32px rgba(30,232,240,.22); }
body :is(.editorial-hero,.editorial-library,.editorial-aside,.newsletter-inner) .eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  color: #9beef1; font-size: 14px; font-weight: 700; letter-spacing: 0;
}
body :is(.editorial-hero,.editorial-library,.newsletter-inner) .eyebrow::before {
  content: ""; flex: 0 0 42px; width: 42px; height: 2px; background: var(--cyan);
}
body .editorial-lead { color: #c5d4e8; }
body :is(.editorial-breadcrumb,.editorial-byline,.editorial-card-meta) { color: var(--muted); }
body :is(.editorial-byline,.editorial-library,.editorial-sources,.editorial-aside) { border-color: var(--line); }
body .editorial-pills span {
  border-color: var(--line); color: #c5d4e8; background: rgba(11,118,255,.07);
}
body .editorial-card {
  isolation: isolate; border-color: var(--line); border-radius: 10px;
  background: linear-gradient(135deg, rgba(11,118,255,.10), rgba(30,232,240,.025)), var(--panel);
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
  transition: translate .28s cubic-bezier(.2,.8,.2,1), border-color .28s ease, box-shadow .28s ease;
}
body .editorial-card-featured {
  border-color: rgba(30,232,240,.42);
  background: linear-gradient(135deg, rgba(11,118,255,.23), rgba(30,232,240,.08)), var(--panel);
}
body .editorial-card::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0;
  background: radial-gradient(340px circle at var(--editorial-pointer-x,50%) var(--editorial-pointer-y,35%), rgba(30,232,240,.14), transparent 72%);
  transition: opacity .3s ease;
}
body .editorial-card::after {
  content: ""; position: absolute; inset: 0 0 auto; height: 2px; pointer-events: none;
  background: linear-gradient(90deg, var(--blue), var(--cyan));
  transform: scaleX(0); transform-origin: left; transition: transform .35s ease;
}
body .editorial-card-meta span { color: var(--cyan); }
body .editorial-card-number { color: rgba(106,177,255,.08); }
body .editorial-card h2 a { color: var(--ink); transition: color .22s ease; }
body .editorial-card p { color: var(--muted); }
body :is(.editorial-read,.editorial-rss,.editorial-breadcrumb a,.editorial-prose a,.editorial-bottom a) {
  color: var(--cyan); transition: color .22s ease;
}
body .editorial-read { padding-top: 18px; border-top: 1px solid rgba(172,210,255,.12); }
body .editorial-read span { transition: translate .28s cubic-bezier(.2,.8,.2,1); }
body .editorial-library p { color: var(--muted); }
body .editorial-prose { color: #c5d4e8; }
body .editorial-prose h2 { color: var(--ink); }
body .editorial-prose li::marker { color: var(--cyan); }
body .editorial-prose a { text-underline-offset: 4px; }
body .editorial-aside nav a {
  padding-left: 12px; border-left: 2px solid transparent; color: var(--muted);
  transition: color .22s ease, border-color .22s ease, background-color .22s ease;
}
body .editorial-help {
  border-color: rgba(30,232,240,.3); border-radius: 10px;
  background: linear-gradient(135deg, rgba(11,118,255,.16), rgba(30,232,240,.065)), var(--panel);
}
body .editorial-help p { color: var(--muted); }
body .editorial-note { color: var(--muted); }
body .newsletter-section {
  border-color: var(--line);
  background: radial-gradient(ellipse at 0 0, rgba(11,118,255,.18), transparent 70%), rgba(5,18,42,.82);
}
body .newsletter-inner p, body .newsletter-form .newsletter-consent { color: var(--muted); }
body .newsletter-form label { color: #c5d4e8; }
body .newsletter-form input:is([type=email],[inputmode=numeric]) {
  border-color: var(--line); background: rgba(2,10,26,.66); color: var(--ink);
  transition: border-color .22s ease, box-shadow .22s ease;
}
body .newsletter-consent input { accent-color: var(--cyan); }
body .newsletter-security a { color: var(--cyan); }
body :is(#main,.newsletter-section) .button {
  min-height: 48px; font-weight: 750;
  transition: translate .22s ease, box-shadow .22s ease, border-color .22s ease, filter .22s ease;
}
body :is(#main,.newsletter-section) .button.primary { background: linear-gradient(90deg,#31f3ee,#4aa0ff); color: #031224; }
body :is(#main,.newsletter-section) .button.secondary { background: rgba(255,255,255,.055); border-color: var(--line); color: var(--ink); }
body :is(#main,.newsletter-section) :is(a,button,input):focus-visible { outline: 2px solid var(--cyan); outline-offset: 5px; }
body .editorial-card:focus-within { border-color: var(--cyan); box-shadow: 0 16px 36px rgba(0,0,0,.25), 0 0 28px rgba(30,232,240,.09); }
body .editorial-card:focus-within::before { opacity: 1; }
body .editorial-card:focus-within::after { transform: scaleX(1); }
body .editorial-card h2 a:focus-visible { color: var(--cyan); }
body .editorial-aside nav a:focus-visible { color: var(--cyan); border-left-color: var(--cyan); background: rgba(30,232,240,.045); }
body .newsletter-form input:focus-visible { border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(30,232,240,.10); }
html.fastvps-motion-ready [data-editorial-reveal][data-fastvps-reveal] {
  transition: opacity var(--fastvps-reveal-duration) cubic-bezier(.2,.8,.2,1), filter var(--fastvps-reveal-duration) cubic-bezier(.2,.8,.2,1), transform var(--fastvps-reveal-duration) cubic-bezier(.2,.8,.2,1), translate .28s ease, border-color .28s ease, box-shadow .28s ease;
  transition-delay: var(--fastvps-reveal-delay,0ms),var(--fastvps-reveal-delay,0ms),var(--fastvps-reveal-delay,0ms),0ms,0ms,0ms;
}
@media (hover:hover) and (pointer:fine) {
  body .editorial-card:hover { translate: 0 -6px; border-color: var(--cyan); box-shadow: 0 16px 36px rgba(0,0,0,.25), 0 0 28px rgba(30,232,240,.09); }
  body .editorial-card:hover::before { opacity: 1; }
  body .editorial-card:hover::after { transform: scaleX(1); }
  body .editorial-card:hover .editorial-read span { translate: 3px -3px; }
  body .editorial-card h2 a:hover { color: var(--cyan); }
  body :is(.editorial-read,.editorial-rss,.editorial-breadcrumb a,.editorial-prose a,.editorial-bottom a,.newsletter-security a):hover { color: #a7faff; }
  body .editorial-aside nav a:hover { color: var(--cyan); border-left-color: var(--cyan); background: rgba(30,232,240,.045); }
  body :is(#main,.newsletter-section) .button:not(:disabled):hover { translate: 0 -2px; border-color: var(--cyan); box-shadow: 0 8px 24px rgba(11,118,255,.18); }
}
@media (max-width:900px) { body .editorial-hero { padding-top: 48px; } }
/* Keep the newly expanded navigation clear of the logo at desktop widths. */
@media (min-width:1101px) {
  body .fastvps-site-header .nav-links { gap: 10px; font-size: 13px; }
}
@media (min-width:1101px) and (max-width:1240px) {
  body .fastvps-site-header .nav-links { gap: 7px; font-size: 12px; }
  body .fastvps-site-header .brand { width: 120px; flex-basis: 120px; }
  body .fastvps-site-header .nav-right { gap: 12px; }
}
@media (max-width:600px) {
  body .editorial-hero { padding-top: 38px; padding-bottom: 34px; }
  body .editorial-index-hero h1 { font-size: clamp(2.7rem,11vw,4rem); }
  body .editorial-card { border-radius: 8px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  body :is(.editorial-card,.editorial-read span), body .editorial-card::before, body .editorial-card::after,
  body :is(#main,.newsletter-section) :is(a,button,input) { transition: none; translate: none; }
  body .editorial-card:hover, body .editorial-card:hover .editorial-read span,
  body :is(#main,.newsletter-section) .button:not(:disabled):hover { translate: none; }
  html.fastvps-motion-ready [data-editorial-reveal][data-fastvps-reveal] { opacity: 1; filter: none; transform: none; transition: none; }
}
