:root {
  --gce-bg: #eef2ed;
  --gce-surface: #fafbf8;
  --gce-text: #19231e;
  --gce-muted: #5b6861;
  --gce-line: #bdc8c0;
  --gce-accent: #2d6848;
  --gce-soft: #dfe8e1;
  --gce-radius: 0;
  --gce-font: Arial, Helvetica, sans-serif;
  --gce-display: Georgia, "Times New Roman", serif;
}

.gce-kaltor {
  background: var(--gce-bg);
}

.kt2-header {
  background: var(--gce-surface);
}

.kt2-brand-row {
  position: relative;
  display: grid;
  min-height: 92px;
  place-items: center;
}

.kt2-brand {
  display: block;
  text-align: center;
  text-decoration: none;
}

.kt2-brand span {
  display: block;
  color: var(--gce-accent);
  font-family: var(--gce-display);
  font-size: 44px;
  font-weight: 700;
  line-height: 1;
}

.kt2-brand small {
  display: block;
  margin-top: 7px;
  color: var(--gce-muted);
  font-size: 11px;
  line-height: 1.2;
}

.kt2-menu-toggle {
  position: absolute;
  right: 0;
}

.kt2-nav-row {
  border-top: 1px solid var(--gce-line);
  border-bottom: 3px solid var(--gce-accent);
}

.kt2-nav ul {
  justify-content: center;
  gap: 34px;
}

.kt2-nav a {
  padding: 15px 0 13px;
  border: 0;
  color: var(--gce-text);
  font-size: 12px;
  font-weight: 700;
}

.kt2-nav a:hover,
.kt2-nav a[aria-current="page"] {
  color: var(--gce-accent);
  text-decoration: underline;
}

.kt2-opening {
  padding-top: 44px;
  padding-bottom: 62px;
}

.kt2-intro {
  max-width: 850px;
  margin-bottom: 34px;
}

.kt2-intro h1 {
  max-width: 760px;
  margin: 0;
  font-family: var(--gce-display);
  font-size: 50px;
  font-weight: 400;
  line-height: 1.06;
}

.kt2-intro p {
  max-width: 650px;
  margin: 16px 0 0;
  color: var(--gce-muted);
  font-size: 18px;
}

.kt2-opening-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.52fr) minmax(280px, 0.58fr);
  gap: 34px;
}

.gce-story-kt2-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
  align-items: start;
}

.gce-story-kt2-lead .gce-story-media {
  aspect-ratio: 4 / 3;
}

.gce-story-kt2-lead .gce-story-copy {
  padding: 6px 0 0 26px;
}

.gce-story-kt2-lead h2 {
  font-size: 34px;
  font-weight: 400;
}

.gce-story-kt2-lead p {
  font-size: 16px;
}

.kt2-opening-notes {
  padding-top: 15px;
  border-top: 6px solid var(--gce-accent);
}

.kt2-opening-notes > h2 {
  margin: 0 0 8px;
  font-family: var(--gce-display);
  font-size: 22px;
  font-weight: 400;
}

.kt2-opening-notes .gce-headline {
  grid-template-columns: 1fr;
  padding: 15px 0;
}

.kt2-opening-notes .gce-headline h2 {
  font-size: 19px;
  font-weight: 400;
}

.kt2-planning {
  padding-top: 58px;
  padding-bottom: 66px;
  border-top: 1px solid var(--gce-line);
}

.kt2-planning > header {
  max-width: 650px;
  margin-bottom: 30px;
}

.kt2-planning > header h2,
.kt2-focus h2,
.kt2-technical > header h2,
.kt2-dual > section > header h2 {
  margin: 0;
  font-family: var(--gce-display);
  font-size: 37px;
  font-weight: 400;
  line-height: 1.12;
}

.kt2-planning > header p,
.kt2-technical > header p {
  margin: 12px 0 0;
  color: var(--gce-muted);
  font-size: 15px;
}

.kt2-planning-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(390px, 0.95fr);
  gap: 34px;
}

.gce-story-kt2-plan-feature .gce-story-media {
  aspect-ratio: 16 / 10;
}

.gce-story-kt2-plan-feature h2 {
  font-size: 29px;
  font-weight: 400;
}

.kt2-plan-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.gce-story-kt2-plan-note {
  padding: 16px;
  border: 1px solid var(--gce-line);
  background: var(--gce-surface);
}

.gce-story-kt2-plan-note .gce-story-media {
  display: none;
}

.gce-story-kt2-plan-note h2 {
  font-size: 19px;
  font-weight: 400;
}

.gce-story-kt2-plan-note p {
  display: none;
}

.kt2-focus {
  padding: 60px 0 68px;
  border-top: 1px solid var(--gce-line);
  border-bottom: 1px solid var(--gce-line);
  background: var(--gce-soft);
}

.kt2-focus > .gce-wrap > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 26px;
}

.kt2-focus > .gce-wrap > header a {
  color: var(--gce-accent);
  font-size: 13px;
  font-weight: 700;
}

.kt2-focus-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(330px, 0.55fr);
  gap: 38px;
}

.gce-story-kt2-focus-lead {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.75fr);
  gap: 24px;
}

.gce-story-kt2-focus-lead .gce-story-media {
  aspect-ratio: 16 / 10;
}

.gce-story-kt2-focus-lead h2 {
  font-size: 30px;
  font-weight: 400;
}

.kt2-focus-list {
  border-top: 4px solid var(--gce-accent);
}

.kt2-focus-list .gce-headline {
  grid-template-columns: 1fr;
}

.kt2-focus-list .gce-headline h2 {
  font-size: 19px;
  font-weight: 400;
}

.kt2-technical {
  padding-top: 66px;
  padding-bottom: 72px;
}

.kt2-technical > header {
  max-width: 680px;
  margin-bottom: 30px;
}

.kt2-technical-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px;
}

.gce-story-kt2-tech-main {
  grid-column: span 7;
  grid-row: span 2;
}

.gce-story-kt2-tech-main .gce-story-media {
  aspect-ratio: 16 / 10;
}

.gce-story-kt2-tech-main h2 {
  font-size: 31px;
  font-weight: 400;
}

.gce-story-kt2-tech-small {
  grid-column: span 5;
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 15px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--gce-line);
}

.gce-story-kt2-tech-small .gce-story-media {
  aspect-ratio: 4 / 3;
}

.gce-story-kt2-tech-small h2 {
  font-size: 18px;
  font-weight: 400;
}

.gce-story-kt2-tech-small p,
.gce-story-kt2-tech-small .gce-kicker {
  display: none;
}

.gce-story-kt2-tech-small:nth-child(4),
.gce-story-kt2-tech-small:nth-child(5) {
  grid-column: span 6;
}

.kt2-dual {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 58px;
  padding-top: 62px;
  padding-bottom: 72px;
  border-top: 1px solid var(--gce-line);
}

.kt2-dual > section > header {
  margin-bottom: 20px;
  padding-top: 16px;
  border-top: 5px solid var(--gce-accent);
}

.kt2-dual > section > header h2 {
  font-size: 31px;
}

.kt2-dual > section > header a {
  text-decoration: none;
}

.gce-story-kt2-dual-lead .gce-story-media {
  aspect-ratio: 16 / 9;
}

.gce-story-kt2-dual-lead h2 {
  font-size: 25px;
  font-weight: 400;
}

.kt2-dual-list {
  margin-top: 18px;
}

.kt2-dual-list .gce-headline {
  grid-template-columns: 1fr;
}

.kt2-dual-list .gce-headline h2 {
  font-size: 18px;
  font-weight: 400;
}

.kt2-article {
  padding: 46px 0 74px;
}

.kt2-article-header {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: 56px;
  align-items: end;
  margin-bottom: 34px;
}

.kt2-article-header h1 {
  margin: 8px 0 0;
  font-family: var(--gce-display);
  font-size: 52px;
  font-weight: 400;
  line-height: 1.07;
  overflow-wrap: anywhere;
}

.kt2-article-header > p {
  margin: 0;
  color: var(--gce-muted);
  font-size: 19px;
  line-height: 1.55;
}

.kt2-article-hero {
  width: min(1060px, calc(100% - 48px));
  margin-top: 0;
  margin-bottom: 42px;
}

.kt2-article-hero img {
  width: 100%;
  height: min(36vw, 500px);
  object-fit: cover;
}

.kt2-article-body {
  width: min(720px, calc(100% - 48px));
  margin-right: auto;
  margin-left: auto;
}

.kt2-related {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 48px;
  padding-bottom: 76px;
}

.kt2-related > h2 {
  margin: 15px 0 0;
  font-family: var(--gce-display);
  font-size: 30px;
  font-weight: 400;
}

.kt2-related .gce-headline {
  grid-template-columns: 1fr;
}

.kt2-archive {
  padding-bottom: 80px;
}

.kt2-archive-header {
  max-width: 850px;
  padding-top: 48px;
  padding-bottom: 32px;
  margin-left: max(24px, calc((100% - var(--gce-max)) / 2));
}

.kt2-archive-header h1 {
  margin: 0;
  font-family: var(--gce-display);
  font-size: 52px;
  font-weight: 400;
  line-height: 1.08;
}

.kt2-archive-header p {
  max-width: 680px;
  color: var(--gce-muted);
}

.kt2-archive-list {
  border-top: 5px solid var(--gce-accent);
}

.gce-story-kt2-archive-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(320px, 0.7fr);
  gap: 30px;
  padding: 26px 0 34px;
  border-bottom: 1px solid var(--gce-line);
}

.gce-story-kt2-archive-lead .gce-story-media {
  aspect-ratio: 16 / 9;
}

.gce-story-kt2-archive-lead h2 {
  font-size: 34px;
  font-weight: 400;
}

.gce-story-kt2-archive-row {
  display: grid;
  grid-template-columns: 250px minmax(0, 1fr);
  gap: 26px;
  padding: 22px 0;
  border-bottom: 1px solid var(--gce-line);
}

.gce-story-kt2-archive-row .gce-story-media {
  aspect-ratio: 16 / 10;
}

.gce-story-kt2-archive-row h2 {
  font-size: 25px;
  font-weight: 400;
}

.gce-kaltor .gce-page-article {
  width: min(980px, calc(100% - 48px));
}

.gce-kaltor .gce-page-content .ed-legal > header {
  grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
  border-top-color: var(--gce-accent);
}

.kt2-page {
  min-height: 62vh;
  padding-bottom: 92px;
}

.kt2-page-layout {
  display: grid;
  grid-template-columns: 190px minmax(0, 850px);
  gap: 64px;
  padding-top: 48px;
  justify-content: start;
}

.kt2-page-rail {
  align-self: start;
  padding-top: 16px;
  border-top: 5px solid var(--gce-accent);
}

.kt2-page-rail span,
.kt2-page-rail strong {
  display: block;
}

.kt2-page-rail span {
  color: var(--gce-muted);
  font-size: 11px;
  font-weight: 700;
}

.kt2-page-rail strong {
  margin-top: 7px;
  font-family: var(--gce-display);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.2;
}

.kt2-page-copy > header h1 {
  margin: 0 0 34px;
  font-family: var(--gce-display);
  font-size: 49px;
  font-weight: 400;
  line-height: 1.08;
}

.kt2-page-copy .gce-page-content h1 {
  font-weight: 400;
}

.kt2-page-copy .gce-page-content h2,
.kt2-page-copy .gce-page-content h3 {
  font-weight: 400;
}

.kt2-error {
  display: grid;
  min-height: 62vh;
  grid-template-columns: minmax(210px, 0.45fr) minmax(0, 0.85fr);
  gap: 72px;
  padding-top: 82px;
  padding-bottom: 100px;
  align-items: start;
}

.kt2-error-code {
  color: var(--gce-accent);
  font-family: var(--gce-display);
  font-size: 112px;
  line-height: 0.8;
}

.kt2-error > div:last-child {
  max-width: 650px;
  padding-top: 4px;
}

.kt2-error > div:last-child > p:first-child {
  margin: 0 0 10px;
  color: var(--gce-accent);
  font-size: 12px;
  font-weight: 700;
}

.kt2-error h1 {
  margin: 0 0 18px;
  font-family: var(--gce-display);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.08;
}

.kt2-error h1 + p {
  color: var(--gce-muted);
}

.kt2-footer {
  border-top: 5px solid var(--gce-accent);
  background: var(--gce-surface);
}

.kt2-footer-main {
  display: grid;
  grid-template-columns: 220px minmax(280px, 1fr) auto;
  gap: 46px;
  align-items: start;
  padding-top: 42px;
  padding-bottom: 36px;
}

.kt2-footer-main > strong {
  color: var(--gce-accent);
  font-family: var(--gce-display);
  font-size: 42px;
  line-height: 1;
}

.kt2-footer-main > p {
  max-width: 440px;
  margin: 0;
  color: var(--gce-muted);
  font-size: 14px;
}

.kt2-footer-main nav {
  display: grid;
  gap: 7px;
}

.kt2-footer-main nav a,
.kt2-footer-legal a {
  font-size: 13px;
}

.kt2-footer-legal {
  display: flex;
  padding-top: 17px;
  padding-bottom: 19px;
  border-top: 1px solid var(--gce-line);
  color: var(--gce-muted);
  font-size: 12px;
  gap: 22px;
}

.kt2-footer-legal span {
  margin-right: auto;
}

@media (max-width: 1100px) {
  .kt2-nav-row .gce-wrap {
    width: 100%;
  }

  .kt2-nav-row {
    border-top: 0;
  }

  .kt2-nav {
    width: min(var(--gce-max), calc(100% - 48px));
    margin: 0 auto;
  }

  .kt2-opening-grid,
  .kt2-focus-grid {
    grid-template-columns: 1fr;
  }

  .kt2-opening-notes,
  .kt2-focus-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
  }

  .kt2-opening-notes > h2 {
    grid-column: 1 / -1;
  }

  .kt2-planning-grid {
    grid-template-columns: 1fr;
  }

  .kt2-technical-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gce-story-kt2-tech-main,
  .gce-story-kt2-tech-small,
  .gce-story-kt2-tech-small:nth-child(4),
  .gce-story-kt2-tech-small:nth-child(5) {
    grid-column: auto;
    grid-row: auto;
  }

  .gce-story-kt2-tech-small {
    display: block;
  }

  .gce-story-kt2-tech-small .gce-story-copy {
    padding-top: 12px;
  }
}

@media (max-width: 760px) {
  .kt2-brand-row {
    min-height: 76px;
    place-items: start;
    align-items: center;
  }

  .kt2-brand {
    text-align: left;
  }

  .kt2-brand span {
    font-size: 35px;
  }

  .kt2-brand small {
    max-width: 310px;
    white-space: normal;
  }

  .kt2-menu-toggle {
    right: 0;
  }

  .kt2-nav {
    width: calc(100% - 32px);
  }

  .kt2-opening {
    padding-top: 34px;
    padding-bottom: 48px;
  }

  .kt2-intro h1 {
    font-size: 38px;
  }

  .kt2-intro p {
    font-size: 16px;
  }

  .gce-story-kt2-lead,
  .gce-story-kt2-focus-lead,
  .gce-story-kt2-archive-lead,
  .gce-story-kt2-archive-row {
    grid-template-columns: 1fr;
  }

  .gce-story-kt2-lead .gce-story-copy {
    padding: 18px 0 0;
  }

  .gce-story-kt2-lead h2 {
    font-size: 29px;
  }

  .kt2-opening-notes,
  .kt2-focus-list,
  .kt2-plan-list,
  .kt2-technical-grid,
  .kt2-dual {
    grid-template-columns: 1fr;
  }

  .kt2-planning,
  .kt2-focus,
  .kt2-technical,
  .kt2-dual {
    padding-top: 46px;
    padding-bottom: 50px;
  }

  .kt2-planning > header h2,
  .kt2-focus h2,
  .kt2-technical > header h2,
  .kt2-dual > section > header h2 {
    font-size: 31px;
  }

  .kt2-article-header {
    width: calc(100% - 32px);
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .kt2-article-header h1,
  .kt2-archive-header h1 {
    font-size: 38px;
  }

  .kt2-article-hero,
  .kt2-article-body,
  .kt2-archive-header {
    width: calc(100% - 32px);
  }

  .kt2-article-hero img {
    height: auto;
    aspect-ratio: 4 / 3;
  }

  .kt2-related {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .kt2-archive-header {
    margin-right: auto;
    margin-left: auto;
  }

  .kt2-footer-main {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .kt2-footer-legal {
    flex-wrap: wrap;
  }

  .kt2-footer-legal span {
    width: 100%;
  }

  .kt2-page-layout,
  .kt2-error {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .kt2-page-layout {
    padding-top: 38px;
  }

  .kt2-page-rail {
    max-width: 240px;
  }

  .kt2-page-copy > header h1,
  .kt2-error h1 {
    font-size: 38px;
  }

  .kt2-error {
    padding-top: 58px;
    padding-bottom: 74px;
  }

  .kt2-error-code {
    font-size: 78px;
  }
}

@media (max-width: 430px) {
  .kt2-brand small {
    display: none;
  }
}
