:root {
  --journal-navy: #06162f;
  --journal-navy-soft: #0b2448;
  --journal-blue: #0758d8;
  --journal-blue-bright: #2d74ff;
  --journal-paper: #f7f9fc;
  --journal-ink: #0b1729;
  --journal-muted: #58687d;
  --journal-line: #cad6e5;
}

.blog-page {
  min-width: 0;
  color: var(--journal-ink);
  background: var(--journal-paper);
}

.blog-page .skip-link {
  position: fixed;
  z-index: 1000;
  top: 8px;
  left: 8px;
  translate: 0 -160%;
  padding: 10px 16px;
  color: #fff;
  background: var(--journal-blue);
  font-size: .75rem;
  font-weight: 700;
  text-decoration: none;
}

.blog-page .skip-link:focus-visible { translate: 0; }

.blog-page :where(a, button):focus-visible {
  outline: 3px solid #6da4ff;
  outline-offset: 4px;
}

.blog-page .archive-header {
  position: relative;
  z-index: 20;
  max-width: none;
  min-height: 76px;
  padding: 0 max(24px, calc((100vw - 1180px) / 2));
  color: #fff;
  background: var(--journal-navy);
  border: 0;
}

.blog-page .archive-header .brand {
  display: grid;
  gap: 3px;
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;
}

.blog-page .archive-header .brand span {
  font: 700 .98rem/1.1 var(--sans);
  letter-spacing: .13em;
}

.blog-page .archive-header .brand small {
  color: #adc8ec;
  font: 600 .48rem/1.1 var(--sans);
  letter-spacing: .17em;
}

.archive-nav {
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.4vw, 34px);
  margin-left: auto;
}

.archive-nav a {
  color: #dce9fa;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-decoration: none;
}

.archive-nav a:hover { color: #fff; }

.archive-nav .archive-nav-cta {
  padding: 11px 18px;
  color: #fff;
  background: var(--journal-blue);
}

.blog-page .archive-header > p {
  margin: 0 0 0 28px;
  padding-left: 28px;
  color: #84a9d9;
  border-left: 1px solid rgb(255 255 255 / .2);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .18em;
}

.blog-page .blog-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(300px, 38vw, 490px);
  padding: clamp(76px, 9vw, 118px) max(24px, calc((100vw - 1180px) / 2));
  color: #fff;
  background:
    linear-gradient(90deg, rgb(4 18 42 / .98) 0 48%, rgb(4 18 42 / .68)),
    url("assets/feature-ai-news-earth.png") center 52% / cover;
  border: 0;
}

.blog-page .blog-hero::after {
  content: "JOURNAL";
  position: absolute;
  z-index: -1;
  right: max(18px, calc((100vw - 1180px) / 2));
  bottom: -.2em;
  color: rgb(255 255 255 / .065);
  font: 700 clamp(5.2rem, 16vw, 13rem)/1 var(--serif);
  letter-spacing: .025em;
  pointer-events: none;
}

.blog-page .blog-hero .section-kicker {
  margin-bottom: 22px;
  color: #76a8f7;
  letter-spacing: .22em;
}

.blog-page .blog-hero h1 {
  max-width: 760px;
  margin: 0 0 24px;
  font: 600 clamp(2.8rem, 6vw, 5.4rem)/1.18 var(--serif);
  letter-spacing: .06em;
  text-wrap: balance;
}

.blog-page .blog-hero > p:last-child {
  max-width: 620px;
  margin: 0;
  color: #dce8f8;
  font-size: clamp(.85rem, 1.2vw, .98rem);
  line-height: 2;
  text-wrap: pretty;
}

.blog-page .blog-list-section {
  max-width: 1180px;
  padding: clamp(44px, 7vw, 88px) 24px clamp(72px, 9vw, 118px);
}

.blog-page .blog-list-section::before {
  content: "LATEST STORIES";
  display: block;
  margin: 0 0 20px;
  padding-bottom: 12px;
  color: var(--journal-blue);
  border-bottom: 1px solid var(--journal-navy);
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .2em;
}

.blog-page .blog-featured-card {
  position: relative;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 12px 32px;
  min-height: 340px;
  margin: 0 0 30px;
  padding: clamp(28px, 4.5vw, 56px);
  color: #fff;
  background:
    linear-gradient(90deg, rgb(3 17 40 / .97), rgb(4 28 65 / .9)),
    url("assets/feature-ai-agents-city.png") center / cover;
  border: 0;
}

.blog-page .blog-featured-card::after {
  content: "FEATURED";
  position: absolute;
  right: 22px;
  bottom: 18px;
  color: rgb(255 255 255 / .14);
  font: 700 clamp(2.6rem, 7vw, 6rem)/1 var(--serif);
  letter-spacing: .04em;
  pointer-events: none;
}

.blog-page .blog-featured-card .section-kicker {
  grid-column: 1 / -1;
  color: #81aff4;
}

.blog-page .blog-featured-card time {
  align-self: start;
  color: #b8cbe5;
  font-size: .72rem;
  letter-spacing: .08em;
}

.blog-page .blog-featured-card .article-category {
  justify-self: start;
  color: #d7e8ff;
  border-color: #55769f;
  background: rgb(8 38 81 / .68);
}

.blog-page .blog-featured-card h2 {
  grid-column: 2;
  max-width: 850px;
  margin: 10px 0 0;
  font: 600 clamp(1.75rem, 3.5vw, 3.35rem)/1.45 var(--serif);
  text-wrap: balance;
}

.blog-page .blog-featured-card > p:not(.section-kicker) {
  grid-column: 2;
  max-width: 700px;
  color: #cbd9ea;
  font-size: .86rem;
  line-height: 1.95;
  text-wrap: pretty;
}

.blog-page .blog-featured-card .text-link {
  z-index: 1;
  grid-column: 2;
  justify-self: start;
  color: #fff;
}

.blog-page .blog-card-grid {
  counter-reset: journal-card;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  background: #fff;
  border-color: var(--journal-navy) var(--journal-line) var(--journal-line);
}

.blog-page .blog-card {
  counter-increment: journal-card;
  position: relative;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto 1fr;
  gap: 15px 14px;
  min-height: 330px;
  padding: 30px;
  background: #fff;
  border-color: var(--journal-line);
  transition: color .2s ease, background-color .2s ease;
}

.blog-page .blog-card::after {
  content: counter(journal-card, decimal-leading-zero);
  position: absolute;
  right: 22px;
  bottom: 14px;
  color: #d9e3ef;
  font: 600 2rem/1 var(--serif);
}

.blog-page .blog-card:hover {
  color: #fff;
  background: var(--journal-navy-soft);
}

.blog-page .blog-card:hover :where(time, p) { color: #cbd9ea; }
.blog-page .blog-card:hover .article-category { color: #fff; border-color: #6b8ab0; }
.blog-page .blog-card:hover::after { color: rgb(255 255 255 / .2); }

.blog-page .blog-card time {
  grid-column: 1;
  grid-row: 1;
  padding-top: 3px;
  color: var(--journal-muted);
  font-size: .7rem;
  letter-spacing: .07em;
}

.blog-page .blog-card .article-category {
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
}

.blog-page .blog-card h2 {
  grid-column: 1 / -1;
  grid-row: 2;
  margin: 0;
  font: 600 clamp(1.12rem, 1.8vw, 1.42rem)/1.65 var(--serif);
  text-wrap: balance;
}

.blog-page .blog-card p {
  grid-column: 1 / -1;
  grid-row: 3;
  max-width: 44rem;
  color: var(--journal-muted);
  font-size: .79rem;
  line-height: 1.85;
  text-wrap: pretty;
}

.blog-page .article-main {
  position: relative;
  max-width: none;
  padding: clamp(46px, 7vw, 86px) 24px clamp(72px, 9vw, 120px);
  background:
    linear-gradient(180deg, var(--journal-navy) 0 clamp(220px, 28vw, 360px), var(--journal-paper) clamp(220px, 28vw, 360px));
}

.blog-page .article-detail {
  max-width: 940px;
  margin: 0 auto;
  padding: clamp(28px, 6vw, 76px);
  background: #fff;
  border: 0;
  box-shadow: 0 18px 54px rgb(4 20 45 / .11);
}

.blog-page .article-breadcrumb {
  margin-bottom: 34px;
  padding-bottom: 16px;
  color: var(--journal-muted);
  border-bottom: 1px solid var(--journal-line);
  font-size: .7rem;
}

.blog-page .article-breadcrumb a { color: var(--journal-blue); }

.blog-page .article-meta {
  margin-bottom: 20px;
  color: var(--journal-muted);
  font-size: .7rem;
  letter-spacing: .04em;
}

.blog-page .article-detail > h1 {
  margin: 0 0 30px;
  font: 600 clamp(2rem, 3.7vw, 2.8rem)/1.48 var(--serif);
  letter-spacing: .025em;
  text-wrap: balance;
}

@media (min-width: 821px) {
  .blog-page .article-detail > h1.article-title-lines {
    font-size: clamp(2rem, 2.65vw, 2.1rem);
    line-height: 1.62;
    text-wrap: wrap;
  }

  .blog-page .article-title-lines > span { display: block; }
}

.blog-page .article-lead {
  margin-bottom: clamp(40px, 6vw, 64px);
  padding: 28px 0 34px;
  color: #273a54;
  border-top: 1px solid var(--journal-navy);
  border-bottom: 1px solid var(--journal-line);
  font-family: var(--serif);
  font-size: clamp(1rem, 1.6vw, 1.16rem);
  line-height: 2.1;
  text-wrap: pretty;
}

.blog-page .article-body {
  max-width: 43rem;
  margin-inline: auto;
  color: #253850;
  font-family: var(--sans);
  font-size: clamp(.98rem, .94rem + .16vw, 1.04rem);
  font-kerning: normal;
  line-break: strict;
  line-height: 2.15;
  overflow-wrap: anywhere;
  word-break: normal;
}

.blog-page .article-body h2 {
  position: relative;
  margin: clamp(3.5rem, 7vw, 5.25rem) 0 1.65rem;
  padding: 0 0 1.1rem 1.4rem;
  color: #0c1d34;
  border-bottom: 1px solid var(--journal-line);
  font: 600 clamp(1.42rem, 1.25rem + .65vw, 1.9rem)/1.55 var(--serif);
  letter-spacing: .025em;
  text-wrap: balance;
}

.blog-page .article-body h2::before {
  content: "";
  position: absolute;
  inset: .25em auto 18px 0;
  width: 4px;
  background: var(--journal-blue);
}

.blog-page .article-body h3 {
  margin: 2.75rem 0 1.1rem;
  padding-inline-start: .85rem;
  color: #142c4b;
  border-inline-start: 2px solid #8ab2ea;
  font: 600 clamp(1.15rem, 1.05rem + .35vw, 1.38rem)/1.65 var(--serif);
  letter-spacing: .02em;
  text-wrap: balance;
}

.blog-page .article-body p {
  margin: 0 0 1.75em;
  text-wrap: pretty;
}

.blog-page .article-body :is(h2, h3) + p {
  color: #152a46;
  font-size: 1.025em;
  font-weight: 500;
}

.blog-page .article-body :is(ul, ol) {
  display: grid;
  gap: .75rem;
  margin: 1.75rem 0 2.25rem;
  padding: 1.35rem 1.5rem 1.35rem 3rem;
  color: #18304f;
  background: #f2f6fc;
  border-top: 2px solid var(--journal-blue);
  border-bottom: 1px solid var(--journal-line);
}

.blog-page .article-body li {
  margin: 0;
  padding-inline-start: .3em;
  line-height: 1.9;
  text-wrap: pretty;
}

.blog-page .article-body li::marker {
  color: var(--journal-blue);
  font-weight: 700;
}

.blog-page .article-body blockquote {
  margin: 2.5rem 0;
  padding: 1.5rem clamp(1.25rem, 4vw, 2.25rem);
  color: #1a365b;
  background: #f7faff;
  border-inline-start: 4px solid var(--journal-blue);
  font-family: var(--serif);
  font-size: 1.06em;
  line-height: 2;
  text-wrap: pretty;
}

.blog-page .article-body a {
  color: var(--journal-blue);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: .08em;
  text-underline-offset: .22em;
}

.blog-page .article-body strong {
  color: #102c50;
  font-weight: 700;
}

.blog-page .article-body :is(figure, table, pre) {
  margin-block: 2.5rem;
}

.blog-page .article-body figure { margin-inline: 0; }

.blog-page .article-body img {
  display: block;
  max-width: 100%;
  height: auto;
}

.blog-page .article-body figcaption {
  margin-top: .75rem;
  color: var(--journal-muted);
  font-size: .75rem;
  line-height: 1.7;
}

.blog-page .article-body table {
  width: 100%;
  border-collapse: collapse;
  font-size: .88em;
  line-height: 1.75;
}

.blog-page .article-body :is(th, td) {
  padding: .8rem;
  border: 1px solid var(--journal-line);
  text-align: start;
  vertical-align: top;
}

.blog-page .article-body th { color: #132d4e; background: #eef4fc; }

.blog-page .article-body code {
  padding: .12em .34em;
  color: #12345d;
  background: #edf3fb;
  border-radius: 2px;
  font-size: .9em;
}

.blog-page .article-body pre {
  overflow-x: auto;
  padding: 1.25rem;
  color: #eaf2ff;
  background: var(--journal-navy);
  line-height: 1.75;
}

.blog-page .article-body pre code { padding: 0; color: inherit; background: transparent; }

.blog-page .article-body > :first-child { margin-top: 0; }
.blog-page .article-body > :last-child { margin-bottom: 0; }

.blog-page ::selection { color: #fff; background: #145ec7; }

.blog-page .article-nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  margin-top: clamp(50px, 8vw, 80px);
  padding-top: 1px;
  background: var(--journal-line);
  border: 0;
}

.blog-page .article-nav a {
  display: grid;
  place-items: center;
  min-height: 66px;
  padding: 14px;
  color: var(--journal-blue);
  background: #fff;
  font-size: .76rem;
  text-align: center;
}

.blog-page .article-nav a:hover { color: #fff; background: var(--journal-blue); }
.blog-page .article-nav a:only-child { grid-column: 1 / -1; }
.blog-page .article-nav a:nth-child(2):last-child { grid-column: 2 / -1; }

.blog-page .archive-footer {
  max-width: none;
  margin: 0;
  padding: 34px max(24px, calc((100vw - 1180px) / 2));
  color: #9fb5d1;
  background: var(--journal-navy);
  border: 0;
  font-size: .65rem;
  letter-spacing: .08em;
}

@media (max-width: 960px) {
  .blog-page .blog-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .blog-page .archive-header { min-height: 68px; }
  .archive-nav a:not(.archive-nav-cta) { display: none; }
  .blog-page .archive-header > p { display: none; }
  .blog-page .blog-featured-card { grid-template-columns: 1fr; }
  .blog-page .blog-featured-card h2,
  .blog-page .blog-featured-card > p:not(.section-kicker),
  .blog-page .blog-featured-card .text-link { grid-column: 1; }
  .blog-page .blog-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .blog-page .archive-header { padding-inline: 18px; }
  .archive-nav { gap: 0; }
  .archive-nav .archive-nav-cta { padding: 9px 12px; font-size: .62rem; }
  .blog-page .blog-hero { min-height: 330px; padding-inline: 22px; }
  .blog-page .blog-list-section { padding-inline: 14px; }
  .blog-page .blog-featured-card { min-height: 400px; padding: 26px 22px; }
  .blog-page .blog-featured-card h2 { font-size: 1.62rem; }
  .blog-page .blog-featured-card::after { font-size: 2.7rem; }
  .blog-page .blog-card-grid { grid-template-columns: 1fr; }
  .blog-page .blog-card { grid-template-columns: auto minmax(0, 1fr); min-height: 250px; padding: 24px 22px; }
  .blog-page .blog-card time { grid-column: 1; grid-row: 1; }
  .blog-page .blog-card .article-category { grid-column: 2; grid-row: 1; }
  .blog-page .blog-card :is(h2, p) { grid-column: 1 / -1; }
  .blog-page .blog-card h2 { grid-row: 2; }
  .blog-page .blog-card p { grid-row: 3; }
  .blog-page .article-main { padding-inline: 0; }
  .blog-page .article-detail { padding: 28px 22px 40px; box-shadow: none; }
  .blog-page .article-detail > h1 { font-size: clamp(1.75rem, 8.5vw, 2.25rem); }
  .blog-page .article-lead { padding-block: 1.4rem 1.65rem; font-size: 1rem; line-height: 2; }
  .blog-page .article-body { max-width: none; font-size: .98rem; line-height: 2.05; }
  .blog-page .article-body h2 { margin-top: 3.5rem; padding-inline-start: 1rem; }
  .blog-page .article-body :is(ul, ol) { margin-inline: -.35rem; padding: 1.15rem 1rem 1.15rem 2.55rem; }
  .blog-page .article-body blockquote { margin-inline: -.35rem; }
  .blog-page .article-nav { grid-template-columns: 1fr; }
  .blog-page .article-nav a,
  .blog-page .article-nav a:nth-child(2):last-child { grid-column: 1; }
}

@media print {
  .blog-page .archive-header,
  .blog-page .archive-footer,
  .blog-page .article-nav { display: none; }
  .blog-page .article-main { padding: 0; background: #fff; }
  .blog-page .article-detail { max-width: none; padding: 0; box-shadow: none; }
  .blog-page .article-body { max-width: none; color: #000; }
  .blog-page .article-body a { color: #000; }
}

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