:root {
  --p01-gd-ink: #13101a;
  --p01-gd-paper: #f4f0e7;
  --p01-gd-acid: #c6ff17;
  --p01-gd-coral: #ff6258;
  --p01-gd-sky: #9fdcff;
  --p01-gd-violet: #281135;
}

.p01-gd-shell,
.p01-db-shell {
  width: min(1180px, calc(100% - 36px));
  margin: 0 auto;
  color: var(--p01-gd-ink);
}

.p01-gd-section {
  padding: 64px 0 58px;
  border-top: 1px solid rgba(19,16,26,.45);
}

.p01-gd-head {
  display: grid;
  grid-template-columns: 58px 1fr;
  align-items: end;
  gap: 16px;
  margin-bottom: 24px;
  border-bottom: 4px solid var(--p01-gd-ink);
}

.p01-gd-head > span {
  display: grid;
  place-items: center;
  min-height: 48px;
  font: 800 12px/1 sans-serif;
  background: var(--p01-gd-coral);
  color: #fff;
}

.p01-gd-head h2,
.p01-gd-wire h2,
.p01-gd-briefing-cta h2,
.p01-db-header h1 {
  margin: 0;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 900;
  letter-spacing: -.045em;
  text-transform: uppercase;
}

.p01-gd-head h2 { font-size: clamp(28px, 5vw, 56px); }

.p01-gd-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.p01-gd-card {
  min-width: 0;
  border: 1px solid rgba(19,16,26,.28);
  background: #fffdf7;
}

.p01-gd-card.is-lead {
  grid-column: span 2;
  grid-row: span 2;
}

.p01-gd-media {
  display: block;
  aspect-ratio: 16/10;
  overflow: hidden;
  background: var(--p01-gd-violet);
}

.p01-gd-card.is-lead .p01-gd-media { aspect-ratio: 16/9; }

.p01-gd-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.p01-gd-media:hover img { transform: scale(1.025); }

.p01-gd-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 20% 20%, var(--p01-gd-coral), transparent 28%),
    radial-gradient(circle at 80% 75%, var(--p01-gd-sky), transparent 31%),
    var(--p01-gd-violet);
}

.p01-gd-fallback b {
  font: 900 clamp(58px, 9vw, 128px)/1 Georgia, serif;
  color: #fff;
}

.p01-gd-copy { padding: 18px; }

.p01-gd-kicker,
.p01-gd-source,
.p01-gd-wire header span,
.p01-gd-briefing-cta span,
.p01-db-header > span,
.p01-gd-origin > span {
  font: 800 10px/1.2 Arial, Helvetica, sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.p01-gd-kicker {
  display: inline-block;
  padding: 5px 7px;
  margin-bottom: 10px;
  background: var(--p01-gd-acid);
}

.p01-gd-card h3 {
  margin: 0 0 10px;
  font: 800 20px/1.03 Georgia, 'Times New Roman', serif;
  letter-spacing: -.025em;
}

.p01-gd-card.is-lead h3 { font-size: clamp(28px, 4vw, 48px); }
.p01-gd-card h3 a { color: inherit; text-decoration: none; }
.p01-gd-card p { margin: 0 0 15px; font-size: 14px; line-height: 1.55; }

.p01-gd-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(19,16,26,.22);
  font: 700 9px/1.3 Arial, Helvetica, sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.p01-gd-source { color: #6d296e; }

.p01-gd-business {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  padding-left: max(18px, calc((100vw - 1180px)/2));
  padding-right: max(18px, calc((100vw - 1180px)/2));
  background: var(--p01-gd-violet);
  color: #fff;
  border-top: none;
}

.p01-gd-business .p01-gd-head { border-color: var(--p01-gd-acid); }
.p01-gd-business .p01-gd-card { color: var(--p01-gd-ink); }

.p01-gd-human .p01-gd-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.p01-gd-human .p01-gd-card.is-lead { grid-column: span 2; grid-row: span 1; }

.p01-gd-wire {
  margin: 18px 0 58px;
  padding: 24px;
  background: var(--p01-gd-ink);
  color: #fff;
  border-top: 8px solid var(--p01-gd-acid);
}

.p01-gd-wire header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 18px;
}

.p01-gd-wire h2 { font-size: clamp(24px, 4vw, 42px); }
.p01-gd-wire ol { margin: 0; padding: 0; list-style: none; }
.p01-gd-wire li {
  display: grid;
  grid-template-columns: minmax(120px, .4fr) minmax(0, 1.8fr) 60px;
  gap: 14px;
  align-items: baseline;
  padding: 12px 0;
  border-top: 1px solid rgba(255,255,255,.25);
}
.p01-gd-wire li span,
.p01-gd-wire li time { font: 800 9px/1.3 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.p01-gd-wire li span { color: var(--p01-gd-acid); }
.p01-gd-wire li a { color: #fff; text-decoration: none; font: 700 17px/1.25 Georgia, serif; }

.p01-gd-briefing-cta {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: center;
  margin: 0 0 70px;
  padding: 30px;
  background: var(--p01-gd-acid);
  border: 1px solid var(--p01-gd-ink);
}
.p01-gd-briefing-cta h2 { font-size: clamp(28px, 4vw, 48px); }
.p01-gd-briefing-cta p { margin: 8px 0 0; max-width: 720px; }
.p01-gd-briefing-cta > a {
  display: inline-block;
  padding: 14px 18px;
  color: #fff;
  background: var(--p01-gd-violet);
  text-decoration: none;
  font: 800 11px/1 Arial, sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.p01-db-shell { padding: 46px 0 80px; }
.p01-db-header { margin-bottom: 32px; padding-bottom: 22px; border-bottom: 7px solid var(--p01-gd-ink); }
.p01-db-header h1 { font-size: clamp(52px, 10vw, 118px); }
.p01-db-header p { margin: 8px 0 0; }
.p01-db-lead { margin-bottom: 22px; }
.p01-db-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.p01-db-empty { padding: 40px; border: 1px dashed var(--p01-gd-ink); }

.p01-gd-origin {
  margin: 0 0 26px;
  padding: 18px 20px;
  background: #efffba;
  border-left: 7px solid var(--p01-gd-violet);
}
.p01-gd-origin p { margin: 7px 0; }
.p01-gd-origin a { font-weight: 800; color: var(--p01-gd-violet); }

@media (max-width: 980px) {
  .p01-gd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p01-gd-human .p01-gd-grid,
  .p01-db-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .p01-gd-card.is-lead,
  .p01-gd-human .p01-gd-card.is-lead { grid-column: span 2; }
}

@media (max-width: 640px) {
  .p01-gd-shell,
  .p01-db-shell { width: min(100% - 24px, 1180px); }
  .p01-gd-section { padding: 42px 0; }
  .p01-gd-grid,
  .p01-gd-human .p01-gd-grid,
  .p01-db-grid { grid-template-columns: 1fr; }
  .p01-gd-card.is-lead,
  .p01-gd-human .p01-gd-card.is-lead { grid-column: auto; }
  .p01-gd-wire li { grid-template-columns: 1fr; gap: 5px; }
  .p01-gd-wire li time { display: none; }
  .p01-gd-briefing-cta { grid-template-columns: 1fr; }
  .p01-gd-business {
    padding-left: 12px;
    padding-right: 12px;
  }
}
