@font-face {
  font-family: Nord;
  src: url("/fonts/nord-light.woff2") format("woff2");
  font-weight: 300;
  font-display: swap;
}
@font-face {
  font-family: Nord;
  src: url("/fonts/nord-regular.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Grift;
  src: url("/fonts/grift-light.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: Grift;
  src: url("/fonts/grift-regular.woff2") format("woff2");
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: Grift;
  src: url("/fonts/grift-medium.woff2") format("woff2");
  font-weight: 600 700;
  font-display: swap;
}
:root {
  --paper: #fff;
  --ink: #000;
  --teal: #287c79;
  --accent: #48a9a6;
  --muted: #606060;
  --line: #dedede;
  --wash: #f4f5f5;
  --radius-image: 6px;
  --radius-panel: 6px;
  --radius-control: 4px;
  --sans: "Grift", Arial, Helvetica, sans-serif;
  --display: "Grift", Arial, sans-serif;
  --brand: "Nord", sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 24px;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 16px/1.6 var(--sans);
}
a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  color: var(--teal);
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline: 3px solid var(--teal);
  outline-offset: 5px;
}
button,
input,
select {
  font: inherit;
}
button,
summary {
  cursor: pointer;
}
img {
  display: block;
  max-width: 100%;
  height: auto;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1,
h2,
h3 {
  font-family: var(--display);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.035em;
}
h1 {
  font-size: clamp(2.6rem, 4.7vw, 4.5rem);
}
h2 {
  font-size: 2rem;
}
h3 {
  font-size: 1.75rem;
}
.shell {
  max-width: 1360px;
  width: calc(100% - 112px);
  margin-inline: auto;
}
.site-header {
  min-height: 108px;
  display: flex;
  align-items: center;
  gap: 42px;
  border-bottom: 1px solid var(--ink);
}
.masthead {
  display: block;
  font-family: var(--display);
  font-size: 2rem;
  letter-spacing: -0.09em;
  font-weight: 700;
  line-height: 0.95;
}
.masthead > span {
  display: block;
}
.mast-dot {
  color: var(--teal);
}
.desktop-nav {
  margin-left: auto;
  display: flex;
  gap: 30px;
  font-size: 14px;
}
.desktop-nav a:hover {
  text-decoration: underline;
  text-underline-offset: 6px;
}
.button {
  border-radius: var(--radius-control);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
  background: var(--teal);
  color: white;
  border: 1px solid var(--teal);
  padding: 13px 22px;
  font-size: 14px;
  transition: background 0.2s;
}
.button:hover {
  background: #133c31;
  color: #fff;
}
.button.secondary {
  background: transparent;
  color: var(--teal);
}
.header-subscribe {
  padding: 10px 18px;
}
.mobile-menu {
  display: none;
}
.eyebrow {
  font-size: 12px;
  letter-spacing: 0.13em;
  font-weight: 600;
  color: var(--teal);
  display: block;
  line-height: 1.6;
}
.intro {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 80px;
  padding: 44px 0 42px;
  align-items: end;
}
.intro h1 {
  font-size: clamp(2rem, 3.1vw, 3rem);
  margin-top: 14px;
}
.intro p {
  max-width: 390px;
  font-size: 15px;
  line-height: 1.7;
  color: var(--muted);
  padding-bottom: 3px;
}
.section-head {
  border-top: 1px solid var(--ink);
  padding: 16px 0 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.section-head h2 {
  font: 16px var(--sans);
  letter-spacing: 0;
  font-weight: 600;
}
.small {
  font-size: 12px;
  color: var(--muted);
}
.section-head > .small {
  letter-spacing: 0.08em;
}
.section-head > a {
  font-size: 14px;
}
.featured {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 34px;
}
.art-link {
  display: block;
  overflow: hidden;
  border-radius: var(--radius-image);
}
.art-link img {
  width: 100%;
  object-fit: cover;
  transition: transform 0.4s;
}
.art-link:hover img {
  transform: scale(1.02);
}
.lead .art-link {
  aspect-ratio: 1.82;
}
.card-kicker {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 11px;
  color: var(--teal);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-weight: 600;
}
.coming {
  font-size: 10px;
  color: var(--muted);
  white-space: nowrap;
  border: 1px solid var(--line);
  padding: 3px 7px;
}
.card-content {
  padding-top: 18px;
}
.lead h2 {
  font-size: clamp(2rem, 3.5vw, 3.4rem);
  margin: 14px 0 14px;
  max-width: 690px;
  line-height: 1.05;
}
.article-card p {
  font-size: 14px;
  color: var(--muted);
  line-height: 1.7;
}
.card-meta {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  color: var(--muted);
  margin-top: 21px;
}
.card-meta > a {
  margin-left: auto;
  color: var(--teal);
  font-size: 24px;
  line-height: 1;
}
.supporting {
  display: flex;
  flex-direction: column;
  gap: 28px;
  border-left: 1px solid var(--line);
  padding-left: 34px;
}
.supporting .article-card {
  display: grid;
  grid-template-columns: 1fr 145px;
  column-gap: 22px;
  border-bottom: 1px solid var(--line);
  padding-bottom: 26px;
}
.supporting .art-link {
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  margin-top: 38px;
  aspect-ratio: 1;
}
.supporting .art-link img {
  height: 100%;
  object-fit: cover;
}
.supporting .card-content {
  grid-row: 1;
  grid-column: 1;
  padding-top: 0;
}
.supporting .card-kicker {
  flex-wrap: wrap;
  gap: 8px;
}
.supporting h3 {
  font-size: 1.75rem;
  margin: 12px 0 10px;
}
.supporting .card-meta {
  margin-top: 16px;
}
.supporting .card-meta > a {
  display: none;
}
.supporting .article-card:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.agenda-note {
  border-radius: var(--radius-control);
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--wash);
  padding: 15px 18px;
  margin-top: 28px;
  font-size: 12px;
}
.status-dot {
  width: 6px;
  height: 6px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--teal);
}
.agenda-note p {
  color: var(--muted);
}
.agenda-note a {
  margin-left: auto;
  color: var(--teal);
  font-weight: 600;
}
.agenda-note a span {
  margin-left: 14px;
}
.section {
  margin-top: 65px;
}
.topic-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid var(--line);
}
.topic {
  padding: 4px 25px 30px;
  border-right: 1px solid var(--line);
}
.topic:first-child {
  padding-left: 0;
}
.topic:last-child {
  border-right: 0;
  padding-right: 0;
}
.topic-number {
  display: flex;
  justify-content: space-between;
  color: var(--teal);
  font-size: 12px;
  margin-bottom: 24px;
}
.topic-number > span {
  font-size: 22px;
  line-height: 1;
}
.topic h3 {
  font-size: 1.8rem;
  max-width: 230px;
  min-height: 64px;
}
.topic p {
  font-size: 13px;
  color: var(--muted);
  margin-top: 16px;
}
.topic:hover h3 {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.editor-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  border-top: 1px solid var(--ink);
  padding-top: 38px;
}
.editor-intro h2 {
  font-size: 3rem;
  margin-top: 16px;
}
.editor-intro > div > p {
  font-size: 17px;
  max-width: 550px;
  color: var(--muted);
}
.author {
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 24px 0;
}
.monogram {
  width: 45px;
  height: 45px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--wash);
  font: 18px var(--display);
  color: var(--teal);
  flex-shrink: 0;
}
.author strong {
  display: block;
  font-size: 14px;
  font-weight: 500;
}
.author span {
  display: block;
  font-size: 12px;
  color: var(--muted);
}
.text-link {
  font-size: 14px;
  color: var(--teal);
  border: 0;
  background: none;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 6px;
}
.invitation {
  margin-top: 55px;
  padding: 27px 0;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 25px;
}
.invitation > p:first-child {
  font: 1.4rem/1.4 var(--display);
}
.newsletter {
  border-radius: var(--radius-panel);
  margin: 40px 0 0;
  padding: 45px 42px;
  background: #f3f6f6;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 70px;
  align-items: center;
}
.newsletter h2 {
  font-size: 3.4rem;
  margin: 10px 0;
}
.newsletter > div > p {
  font-size: 14px;
  max-width: 370px;
  color: var(--muted);
}
.signup label {
  display: block;
  font-size: 13px;
  margin-bottom: 9px;
}
.input-row {
  display: flex;
  gap: 0;
}
.input-row input {
  width: 100%;
  min-width: 0;
  padding: 13px 16px;
  border: 1px solid #a4afa2;
  background: var(--paper);
  border-right: 0;
  color: var(--ink);
  border-radius: var(--radius-control) 0 0 var(--radius-control);
}
.input-row button {
  border-radius: 0 var(--radius-control) var(--radius-control) 0;
  background: var(--teal);
  border: 1px solid var(--teal);
  color: white;
  padding: 13px 19px;
  white-space: nowrap;
}
.input-row button:disabled {
  cursor: not-allowed;
  background: #4e695b;
  border-color: #4e695b;
}
.input-row input:disabled {
  opacity: 1;
  cursor: not-allowed;
}
.signup > p.small {
  font-size: 12px;
  line-height: 1.6;
  margin-top: 12px;
  max-width: none;
}
footer {
  padding: 44px 0 24px;
}
.footer-top {
  display: grid;
  grid-template-columns: 1fr 1fr 1.3fr;
  gap: 40px;
  align-items: start;
}
.footer-top > .masthead {
  font-size: 2rem;
}
.footer-top > p {
  font-size: 14px;
  color: var(--muted);
}
.footer-top nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 25px;
  font-size: 13px;
}
.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  margin-top: 42px;
  border-top: 1px solid var(--line);
  padding-top: 18px;
  font-size: 11px;
  color: var(--muted);
}
.page-intro {
  padding: 58px 0 48px;
}
.page-intro h1 {
  margin: 18px 0 22px;
  max-width: 900px;
}
.page-intro > p {
  font-size: 18px;
  max-width: 740px;
  color: var(--muted);
}
.page-intro > .button {
  margin-top: 24px;
}
.filters {
  display: flex;
  gap: 20px;
  align-items: end;
  padding: 25px;
  background: var(--wash);
  margin-bottom: 40px;
}
.filters > div:first-child {
  flex: 1;
}
.filters label {
  display: block;
  font-size: 12px;
  margin-bottom: 6px;
}
.filters input,
.filters select {
  border: 1px solid #a4afa2;
  border-radius: var(--radius-control);
  padding: 11px;
  background: var(--paper);
  max-width: 100%;
  width: 100%;
  color: var(--ink);
  font-size: 14px;
}
.filters > button {
  padding: 12px 0;
  white-space: nowrap;
}
.archive-note {
  max-width: 720px;
  font-size: 14px;
  color: var(--muted);
  margin-bottom: 26px;
}
.archive-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.archive-grid .article-card {
  border-bottom: 1px solid var(--line);
  padding-bottom: 25px;
}
.archive-grid h3 {
  font-size: 1.9rem;
  margin: 14px 0;
}
.archive-grid .card-kicker {
  align-items: start;
  flex-wrap: wrap;
}
.archive-grid .card-content {
  padding-top: 0;
}
.empty {
  border-radius: var(--radius-panel);
  padding: 55px;
  text-align: center;
  background: var(--wash);
}
.empty p {
  margin: 20px 0;
}
.sector-strip {
  display: flex;
  gap: 45px;
  padding: 35px 0;
  font-size: 16px;
  color: var(--teal);
}
.sector-strip > span:first-child {
  font-size: 12px;
  letter-spacing: 0.1em;
  align-self: center;
  margin-right: auto;
}
.prose-layout {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 60px;
  border-top: 1px solid var(--line);
  padding-top: 24px;
}
.prose-layout aside .author {
  margin-top: 12px;
}
.prose {
  max-width: 70ch;
}
.prose h2 {
  font-size: 2rem;
  margin: 36px 0 16px;
}
.prose h2:first-child {
  margin-top: 0;
}
.prose p {
  margin: 0 0 22px;
  font-size: 17px;
  line-height: 1.8;
}
.prose li {
  margin-bottom: 12px;
}
.prose a:not(.button) {
  color: var(--teal);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.prose table {
  border-collapse: collapse;
  width: 100%;
  display: block;
  overflow-x: auto;
}
.prose th,
.prose td {
  padding: 12px;
  border: 1px solid var(--line);
  text-align: left;
}
.prose blockquote {
  border-left: 3px solid var(--teal);
  margin: 28px 0;
  padding-left: 24px;
}
.prose img,
.prose iframe {
  max-width: 100%;
}
.prose .small {
  font-size: 13px;
}
.services-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--ink);
}
.services-grid section {
  padding: 32px 42px 32px 0;
}
.services-grid section + section {
  border-left: 1px solid var(--line);
  padding-left: 42px;
  padding-right: 0;
}
.services-grid h2 {
  font-size: 2.8rem;
  margin: 20px 0;
}
.services-grid p {
  color: var(--muted);
  max-width: 520px;
}
.services-grid ul {
  list-style: none;
  padding: 0;
  margin: 28px 0;
}
.services-grid li {
  border-bottom: 1px solid var(--line);
  padding: 12px 0;
  font-size: 15px;
}
.contact-panel {
  border-top: 1px solid var(--line);
  padding: 30px 0;
}
.owner-note {
  border-radius: var(--radius-control);
  margin-top: 30px;
  background: var(--wash);
  padding: 18px;
}
.owner-note summary {
  font-size: 13px;
}
.owner-note p {
  font-size: 14px;
  margin-top: 16px;
}
.article-heading {
  max-width: 950px;
  margin: 54px auto 32px;
  text-align: center;
}
.article-heading h1 {
  font-size: clamp(2.7rem, 5.5vw, 5rem);
  margin: 24px 0;
}
.draft-label {
  display: block;
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--muted);
  margin-top: 14px;
}
.dek {
  font-size: 19px;
  color: var(--muted);
  max-width: 700px;
  margin: auto;
}
.article-heading .author {
  justify-content: center;
  text-align: left;
}
.article-tags {
  display: flex;
  justify-content: center;
  gap: 9px;
  margin-top: 20px;
}
.article-tags span {
  font-size: 12px;
  border: 1px solid var(--line);
  padding: 3px 12px;
}
.article-cover {
  max-width: 850px;
  margin: 35px auto 45px;
}
.article-cover img {
  width: 100%;
  border-radius: var(--radius-image);
}
.article-cover figcaption {
  font-size: 12px;
  color: var(--muted);
  margin-top: 10px;
}
.article-body {
  margin: 40px auto;
}
.disclosure {
  border-radius: var(--radius-panel);
  background: var(--wash);
  padding: 24px;
  margin-top: 36px;
}
.disclosure strong {
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.disclosure p {
  font-size: 14px;
  margin: 12px 0 0;
}
.skip {
  position: absolute;
  top: -100px;
  background: var(--ink);
  color: white;
  padding: 12px;
  z-index: 10;
}
.skip:focus {
  top: 0;
}
[hidden] {
  display: none !important;
}
@media (min-width: 1500px) {
  .shell {
    width: calc(100% - 140px);
  }
}
@media (max-width: 1150px) {
  .shell {
    width: calc(100% - 64px);
  }
  .site-header {
    gap: 24px;
  }
  .desktop-nav {
    gap: 20px;
  }
  .intro {
    gap: 40px;
  }
  .featured {
    grid-template-columns: 1.4fr 1fr;
    gap: 25px;
  }
  .supporting {
    padding-left: 25px;
  }
  .supporting .article-card {
    grid-template-columns: 1fr;
  }
  .supporting .art-link {
    display: none;
  }
  .supporting h3 {
    font-size: 1.85rem;
  }
  .topic {
    padding-inline: 18px;
  }
  .topic h3 {
    font-size: 1.55rem;
  }
  .newsletter {
    gap: 35px;
    padding: 35px;
  }
  .filters {
    flex-wrap: wrap;
  }
  .filters > div:first-child {
    flex-basis: 100%;
  }
  .filters > div {
    flex: 1;
  }
  .filters > button {
    align-self: end;
  }
  .editor-intro {
    gap: 40px;
  }
}
@media (max-width: 760px) {
  .shell {
    width: calc(100% - 36px);
  }
  .site-header {
    min-height: 86px;
    gap: 16px;
  }
  .masthead {
    font-size: 1.6rem;
  }
  .desktop-nav {
    display: none;
  }
  .header-subscribe {
    margin-left: auto;
    font-size: 12px;
    padding: 9px 12px;
    gap: 12px;
  }
  .mobile-menu {
    display: block;
    position: relative;
    font-size: 14px;
  }
  .mobile-menu summary {
    padding: 12px 0;
    list-style: none;
  }
  .mobile-menu summary::after {
    content: " +";
    color: var(--teal);
  }
  .mobile-menu[open] summary::after {
    content: " −";
  }
  .mobile-menu nav {
    position: absolute;
    right: 0;
    top: 48px;
    width: 245px;
    background: var(--paper);
    border: 1px solid var(--line);
    padding: 18px;
    z-index: 5;
    box-shadow: 0 8px 22px #212e2810;
  }
  .mobile-menu nav a {
    display: block;
    padding: 12px 5px;
    border-bottom: 1px solid var(--line);
  }
  .intro {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 30px 0;
  }
  .intro h1 {
    font-size: 2.3rem;
  }
  .intro p {
    font-size: 14px;
    max-width: none;
  }
  .eyebrow {
    font-size: 10px;
  }
  .section-head {
    align-items: start;
    padding: 15px 0 20px;
  }
  .section-head .small {
    font-size: 10px;
    text-align: right;
    max-width: 150px;
  }
  .featured {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .lead h2 {
    font-size: 2.45rem;
  }
  .supporting {
    border-left: 0;
    padding-left: 0;
    border-top: 1px solid var(--line);
    padding-top: 25px;
    gap: 23px;
  }
  .supporting .article-card {
    grid-template-columns: 1fr 105px;
    gap: 18px;
  }
  .supporting .art-link {
    display: block;
    margin-top: 40px;
  }
  .supporting h3 {
    font-size: 1.55rem;
  }
  .supporting p {
    font-size: 13px;
  }
  .card-kicker {
    font-size: 10px;
  }
  .coming {
    font-size: 9px;
  }
  .agenda-note {
    flex-wrap: wrap;
    padding: 15px;
  }
  .agenda-note p {
    flex: 1;
  }
  .agenda-note a {
    margin-left: 16px;
    flex-basis: 100%;
  }
  .section {
    margin-top: 42px;
  }
  .topic-grid {
    grid-template-columns: 1fr 1fr;
  }
  .topic {
    padding: 15px 18px 24px !important;
    border-bottom: 1px solid var(--line);
  }
  .topic:nth-child(odd) {
    padding-left: 0 !important;
  }
  .topic:nth-child(even) {
    border-right: 0;
  }
  .topic h3 {
    font-size: 1.55rem;
    min-height: 58px;
  }
  .topic p {
    font-size: 12px;
  }
  .topic-number {
    margin-bottom: 18px;
  }
  .editor-intro {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-top: 26px;
  }
  .editor-intro h2 {
    font-size: 2.4rem;
  }
  .editor-intro > div > p {
    font-size: 16px;
  }
  .invitation {
    margin-top: 35px;
    flex-direction: column;
    align-items: start;
    gap: 18px;
  }
  .invitation > p:first-child {
    font-size: 1.3rem;
  }
  .newsletter {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 30px;
    padding: 26px 20px;
  }
  .newsletter h2 {
    font-size: 2.8rem;
  }
  .input-row input {
    padding: 12px;
    font-size: 14px;
  }
  .input-row button {
    font-size: 12px;
    padding: 12px;
  }
  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: 25px;
  }
  .footer-top > p {
    font-size: 12px;
  }
  .footer-top nav {
    grid-column: 1/-1;
    font-size: 13px;
  }
  .footer-bottom {
    flex-direction: column;
    gap: 10px;
    font-size: 11px;
    margin-top: 26px;
  }
  .page-intro {
    padding: 36px 0;
  }
  .page-intro h1 {
    font-size: 2.6rem;
  }
  .page-intro > p {
    font-size: 16px;
  }
  .filters {
    padding: 18px;
    gap: 14px;
  }
  .filters > div {
    min-width: 0;
    flex-basis: 40%;
  }
  .filters > button {
    flex-basis: 100%;
    text-align: left;
  }
  .archive-grid {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .archive-grid h3 {
    font-size: 1.9rem;
  }
  .sector-strip {
    gap: 18px;
    flex-wrap: wrap;
  }
  .sector-strip > span:first-child {
    flex-basis: 100%;
  }
  .prose-layout {
    grid-template-columns: 1fr;
    gap: 25px;
  }
  .prose p {
    font-size: 16px;
  }
  .services-grid {
    grid-template-columns: 1fr;
  }
  .services-grid section {
    padding: 28px 0 !important;
  }
  .services-grid section + section {
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .services-grid h2 {
    font-size: 2.3rem;
  }
  .article-heading {
    margin-top: 35px;
  }
  .article-heading h1 {
    font-size: 2.55rem;
  }
  .dek {
    font-size: 17px;
  }
  .article-cover {
    margin: 25px 0;
  }
  .article-body {
    margin-top: 30px;
  }
  .empty {
    padding: 30px 20px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
  }
}
.next-story {
  padding: 27px 0;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 12px 35px;
}
.next-story .eyebrow {
  grid-row: 1/3;
  align-self: center;
}
.next-story > a {
  font: 1.6rem/1.3 var(--display);
  display: flex;
  justify-content: space-between;
  gap: 20px;
}
.next-story > p {
  grid-column: 2;
  font-size: 13px;
  color: var(--muted);
}
@media (max-width: 760px) {
  .next-story {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .next-story .eyebrow {
    grid-row: auto;
  }
  .next-story > p {
    grid-column: 1;
  }
  .next-story > a {
    font-size: 1.4rem;
  }
}
.topic-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.topic h3 {
  overflow-wrap: break-word;
}
@media (max-width: 760px) {
  .topic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 400px) {
  .topic-grid {
    grid-template-columns: 1fr;
  }
  .topic {
    padding-left: 0 !important;
    padding-right: 0 !important;
    border-right: 0;
  }
  .topic h3 {
    min-height: 0;
    max-width: none;
  }
  .topic-number {
    margin-bottom: 12px;
  }
}

/* Hypify family: Nord identity, Grift editorial typography, white/black/turquoise. */
.masthead {
  font-family: var(--brand);
  font-weight: 300;
  font-size: 1.6rem;
  letter-spacing: -0.055em;
  line-height: 1.02;
  text-transform: uppercase;
  position: relative;
  padding-right: 12px;
}
.mast-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  background: var(--accent);
  margin-left: 6px;
  vertical-align: baseline;
}
h1,
h2,
h3 {
  font-weight: 500;
  letter-spacing: -0.035em;
}
.intro h1 {
  font-weight: 400;
  line-height: 1.12;
}
.button {
  background: #000;
  border-color: #000;
}
.button:hover {
  background: #287c79;
  border-color: #287c79;
}
.button.secondary {
  border-color: var(--line);
  color: #000;
}
.input-row button:disabled {
  background: #555;
  border-color: #555;
}
.eyebrow {
  color: #000;
  font-weight: 500;
}
.monogram {
  font-family: var(--brand);
  font-weight: 300;
  font-size: 15px;
  background: #f0f5f4;
}
@media (max-width: 760px) {
  .masthead {
    font-size: 1.1rem;
    padding-right: 0;
  }
  .mast-dot {
    width: 4px;
    height: 4px;
    margin-left: 4px;
  }
  .intro h1 {
    font-size: 2.2rem;
  }
  .lead h2 {
    font-size: 2.3rem;
  }
}
/* Utility Current identity and practical reading paths */
.publication-logo {
  width: 220px;
  height: auto;
  max-width: 100%;
}
.format-label {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-top: 13px;
  line-height: 1.5;
}
.text-link {
  font-weight: 500;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.text-link:hover {
  text-decoration-thickness: 2px;
}
.path-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid var(--line);
}
.path-card {
  padding: 20px 40px 35px 0;
}
.path-card + article {
  border-left: 1px solid var(--line);
  padding-left: 40px;
  padding-right: 0;
}
.path-card h3 {
  font-size: 2rem;
  margin: 18px 0 15px;
  max-width: 390px;
}
.path-card p {
  color: var(--muted);
  font-size: 16px;
  margin-bottom: 22px;
  max-width: 440px;
}
.series-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 35px;
  border-bottom: 1px solid var(--line);
  padding: 10px 0 30px;
}
.series-grid h3 {
  font-size: 1.8rem;
  margin: 16px 0;
}
.series-grid p {
  color: var(--muted);
  font-size: 15px;
}
.takeaways,
.application {
  border-radius: var(--radius-panel);
  border-top: 2px solid var(--ink);
  background: #f5f7f6;
  padding: 28px;
  margin: 30px 0;
}
.contents {
  margin: 30px 0;
  padding: 20px 0;
  border-block: 1px solid var(--line);
  font-size: 15px;
}
.contents ol {
  padding-left: 22px;
  margin-bottom: 0;
}
.sources,
.resources {
  margin: 38px 0;
  border-top: 1px solid var(--line);
  padding-top: 26px;
}
@media (max-width: 760px) {
  .publication-logo {
    width: 132px;
  }
  .site-header {
    gap: 10px;
  }
  .header-subscribe {
    gap: 0;
    padding: 10px;
    font-size: 12px;
  }
  .path-grid,
  .series-grid {
    grid-template-columns: 1fr;
  }
  .path-card,
  .path-card + article {
    padding: 24px 0;
    border-left: 0;
  }
  .path-card + article {
    border-top: 1px solid var(--line);
  }
  .path-card h3 {
    font-size: 1.8rem;
  }
  .series-grid {
    gap: 28px;
  }
  .takeaways,
  .application {
    padding: 22px;
  }
  .footer-top .publication-logo {
    width: 145px;
  }
}
.publication-lockup {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 220px;
}
.publication-lockup > img {
  width: 58px;
  height: 58px;
}
.publication-lockup > span {
  font-family: var(--display);
  font-size: 29px;
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.02;
}
@media (max-width: 760px) {
  .publication-lockup {
    gap: 9px;
    width: 135px;
  }
  .publication-lockup > img {
    width: 40px;
    height: 40px;
  }
  .publication-lockup > span {
    font-size: 20px;
  }
}

/* Balanced editorial type adapts to the available column width. */
h1,
h2,
h3 {
  text-wrap: balance;
}
p {
  text-wrap: pretty;
}
.eyebrow,
.card-kicker,
.format-label {
  text-transform: uppercase;
}
.intro h1 {
  font-size: clamp(1.85rem, 3.1vw, 3rem);
  max-width: 22ch;
  line-height: 1.16;
}
.author-photo {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  object-position: 50% 23%;
  flex-shrink: 0;
}
.publication-lockup {
  gap: 12px;
  width: 220px;
}
.publication-lockup > img {
  width: 48px;
  height: 44px;
}
.publication-lockup > span {
  line-height: 1;
}
.logo-utility,
.logo-current {
  display: block;
}
.logo-utility {
  font-size: 14px;
  letter-spacing: .19em;
  margin-bottom: 5px;
}
.logo-current {
  font-size: 27px;
  letter-spacing: -.055em;
}
@media (max-width: 760px) {
  .intro h1 {
    font-size: clamp(1.8rem, 7.5vw, 2.65rem);
    max-width: 24ch;
  }
  .lead h2,
  .page-intro h1,
  .article-heading h1 {
    font-size: clamp(1.85rem, 7.4vw, 2.7rem);
    line-height: 1.16;
  }
  .path-card h3,
  .editor-intro h2 {
    font-size: clamp(1.6rem, 6.5vw, 2.2rem);
    line-height: 1.18;
  }
  .publication-lockup {
    gap: 7px;
    width: 140px;
  }
  .publication-lockup > img {
    width: 31px;
    height: 31px;
  }
  .logo-utility {
    font-size: 10px;
    margin-bottom: 4px;
  }
  .logo-current {
    font-size: 19px;
  }
}

/* Spacious visual system: gradient illustrations and quiet modular surfaces. */
:root { --wash: #f6f7f8; --line: #e8e9eb; }
.site-header { border-bottom: 1px solid var(--line); padding-block: 28px; }
.intro { padding: 80px 0 64px; gap: 70px; align-items: center; }
.intro h1 { font-size: clamp(2.2rem, 4.2vw, 3.8rem); max-width: 22ch; }
.intro p { font-size: 17px; max-width: 440px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.section { margin-top: 88px; }
.section-head { border-top: 0; padding: 0 0 26px; gap: 20px; }
.section-head h2 { font-size: clamp(1.4rem, 2.5vw, 2rem); }
.featured { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.supporting { display: contents; }
.featured .article-card, .archive-grid .article-card { border: 1px solid var(--line); border-radius: var(--radius-panel); overflow: hidden; padding: 0; background: #fff; }
.featured .article-card { display: block; }
.featured .art-link, .archive-grid .art-link { margin: 0; aspect-ratio: 1.55; border-radius: 0; }
.featured .art-link img, .archive-grid .art-link img { height: 100%; object-fit: cover; }
.featured .card-content, .archive-grid .card-content { padding: 22px; }
.featured h2, .featured h3 { font-size: clamp(1.35rem, 2vw, 1.7rem); line-height: 1.2; margin: 14px 0; }
.featured .card-meta { margin-top: 24px; }
.agenda-note { margin-top: 20px; padding: 18px 22px; }
.path-grid { gap: 22px; border: 0; }
.path-card, .path-card + article { padding: 32px; border: 1px solid var(--line); border-radius: var(--radius-panel); background: var(--wash); }
.path-card h3 { max-width: 22ch; }
.topic-grid { gap: 16px; border: 0; }
.topic, .topic:first-child, .topic:last-child { padding: 26px; border: 1px solid var(--line); border-radius: var(--radius-panel); background: #f8f9fa; }
.topic-number { margin-bottom: 35px; }
.topic h3 { min-height: 0; font-size: 1.5rem; }
.topic:hover, .path-card:hover { border-color: #b8cfcd; }
.series-grid { gap: 22px; border: 0; padding: 0; }
.series-grid > article { padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-panel); }
.next-story { margin-top: 24px; border: 1px solid var(--line); padding: 28px; border-radius: var(--radius-panel); }
/* Keep editorial panels in the same soft gradient family as the illustrations. */
.path-card, .path-card + article, .topic, .topic:first-child, .topic:last-child, .series-grid > article, .next-story {
  background: radial-gradient(ellipse at 100% 100%, #65bfb0, transparent 75%), radial-gradient(ellipse at 10% 5%, #e0ebc3, transparent 65%), linear-gradient(125deg, #e6f2e9, #a9d9cb);
}
.path-card:nth-child(2), .topic:nth-child(2), .series-grid > article:nth-child(2), .next-story {
  background: radial-gradient(ellipse at 100% 100%, #7c9fdb, transparent 75%), radial-gradient(ellipse at 5% 0%, #d8e8f1, transparent 65%), linear-gradient(125deg, #e6eff8, #b7c8ee);
}
.topic:nth-child(3), .series-grid > article:nth-child(3) {
  background: radial-gradient(ellipse at 100% 100%, #af8bcf, transparent 75%), radial-gradient(ellipse at 0% 0%, #efdae4, transparent 65%), linear-gradient(125deg, #f0e5f4, #cdb2df);
}
.topic:nth-child(4) {
  background: radial-gradient(ellipse at 100% 100%, #dca26d, transparent 75%), radial-gradient(ellipse at 0% 0%, #f3e4b9, transparent 65%), linear-gradient(125deg, #f8ecd5, #e9c49e);
}
.newsletter { margin-top: 80px; background: radial-gradient(ellipse at 100% 100%, #c5e1df, transparent 65%), #f1f6f5; padding: 48px; }
.editor-intro { border-top: 0; padding-top: 72px; }
.page-intro { padding: 76px 0 56px; }
.filters { background: var(--wash); padding: 20px; border-radius: var(--radius-panel); }
.article-heading { padding-top: 72px; }
.article-cover { max-width: 100%; }
footer { border-top: 1px solid var(--line); }
@media (max-width: 1000px) {
  .topic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .featured { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .featured > .lead { grid-column: 1 / -1; }
  .featured > .lead .art-link { aspect-ratio: 2; }
}
@media (max-width: 760px) {
  .site-header { padding-block: 22px; }
  .intro { padding: 42px 0 44px; gap: 24px; }
  .intro h1 { font-size: clamp(1.8rem, 7.5vw, 2.65rem); }
  .intro p { font-size: 15px; }
  .hero-actions { margin-top: 22px; }
  .hero-actions .button { padding: 12px 16px; font-size: 13px; }
  .featured, .path-grid, .series-grid { grid-template-columns: 1fr; }
  .featured > .lead .art-link, .featured .art-link { aspect-ratio: 1.6; }
  .featured h2, .featured h3 { font-size: 1.6rem; }
  .section { margin-top: 52px; }
  .path-card, .path-card + article, .series-grid > article { padding: 24px; }
  .topic, .topic:first-child, .topic:last-child { padding: 20px; }
  .topic h3 { font-size: 1.2rem; }
  .newsletter { padding: 28px 22px; margin-top: 52px; }
  .newsletter h2 { font-size: 2.6rem; }
  .page-intro, .article-heading { padding-top: 42px; }
}
@media (max-width: 380px) {
  .topic-grid { grid-template-columns: 1fr; }
}

/* Selected identity: UC connectors with an editorial Georgia wordmark. */
.publication-lockup { width: 280px; gap: 12px; }
.publication-lockup > img { width: 44px; height: 44px; }
.publication-lockup > .serif-wordmark { font-family: Georgia, 'Times New Roman', serif; font-size: 29px; font-weight: 400; letter-spacing: -.045em; white-space: nowrap; line-height: 1.1; }
@media (max-width: 760px) {
  .publication-lockup { width: 145px; gap: 7px; }
  .publication-lockup > img { width: 30px; height: 30px; }
  .publication-lockup > .serif-wordmark { font-size: 20px; white-space: normal; max-width: 100px; }
}

/* A restrained forward rhythm in the publication name. */
.publication-lockup > .serif-wordmark {
  letter-spacing: -.025em;
  font-kerning: normal;
}
.serif-wordmark em { font-weight: 400; font-style: italic; }
@media (max-width: 760px) {
  .serif-wordmark > span, .serif-wordmark > em { display: block; }
}

/* Nord and Georgia stacked lockup with aligned word widths. */
.publication-lockup { width: 220px; }
.publication-lockup > .stacked-logo { width: 220px; height: auto; display: block; }
@media (max-width: 760px) {
  .publication-lockup { width: 145px; }
  .publication-lockup > .stacked-logo { width: 145px; height: auto; }
}

/* Fine static grain sits behind content, never over the letterforms. */
.path-card, .topic, .series-grid > article, .next-story, .newsletter, .art-link { position: relative; isolation: isolate; }
.path-card::before, .topic::before, .series-grid > article::before, .next-story::before, .newsletter::before, .art-link::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: url('/graphics/grain.svg') repeat; background-size: 160px 160px;
  opacity: .2; mix-blend-mode: multiply; z-index: -1;
}
.art-link::after { z-index: 1; opacity: .16; }
.newsletter { background: radial-gradient(ellipse at 100% 100%, #73bdb3, transparent 75%), linear-gradient(125deg, #e8f0dc, #b4dcd2); }

/* Flowing color artwork, framed by quiet white editorial cards. */
.path-card, .path-card + article, .topic, .topic:first-child, .topic:last-child, .series-grid > article { background: #fff; border-color: #dedfe2; }
.path-card, .path-card + article { padding-top: 178px; overflow: hidden; }
.path-card::before { inset: 0 0 auto; height: 140px; background: url('/graphics/field-jade.svg') center / cover; opacity: 1; mix-blend-mode: normal; z-index: -1; }
.path-card:nth-child(2)::before { background-image: url('/graphics/field-ocean.svg'); }
.topic::before, .series-grid > article::before { inset: 24px auto auto 24px; width: 36px; height: 36px; border-radius: 50%; background: url('/graphics/field-jade.svg') center / cover; opacity: 1; mix-blend-mode: normal; }
.topic:nth-child(2)::before, .series-grid > article:nth-child(2)::before { background-image: url('/graphics/field-ocean.svg'); }
.topic:nth-child(3)::before, .series-grid > article:nth-child(3)::before { background-image: url('/graphics/field-orchid.svg'); }
.topic:nth-child(4)::before { background-image: url('/graphics/field-solar.svg'); }
.topic-number { display: block; padding-left: 48px; line-height: 36px; margin-bottom: 28px; color: #666; }
.series-grid > article > .eyebrow { display: block; padding-left: 44px; min-height: 36px; line-height: 36px; }
.panel-button { display: inline-flex; align-items: center; border: 1px solid #dedfe2; border-radius: 6px; padding: 9px 14px; background: #fff; color: #151515; font-size: 13px; text-decoration: none; margin-top: 12px; box-shadow: 0 2px 4px #00000005; }
.panel-button:hover { background: #f5f6f7; border-color: #b5b8bc; }
.next-story, .newsletter { background: linear-gradient(90deg, #03172990, #03172925), url('/graphics/field-ocean.svg') center / cover; color: #fff; border: 0; }
.next-story::before, .newsletter::before { display: none; }
.next-story > p, .next-story .eyebrow, .next-story > a, .newsletter p, .newsletter .eyebrow { color: #fff; }
.next-story > a { text-decoration: none; }
.next-story > a:hover { text-decoration: underline; }
@media (max-width:760px) {
 .path-card, .path-card + article { padding-top: 154px; }
 .path-card::before { height: 122px; }
 .topic::before { top:20px; left:20px; }
 .next-story { padding:24px; }
}
.path-card:nth-child(2), .topic:nth-child(2), .topic:nth-child(3), .topic:nth-child(4), .series-grid > article:nth-child(2), .series-grid > article:nth-child(3) { background: #fff; }
.newsletter p, .newsletter .small, .newsletter .newsletter-note { color: #e8eff7; }

/* Original editorial diagrams replace decorative color-dot identifiers. */
.topic::before, .series-grid > article::before { display: none; }
.editorial-drawing { display: block; width: 58px; height: 58px; margin-bottom: 24px; color: #254a49; }
.series-grid > article > .eyebrow { padding-left: 0; min-height: 0; line-height: 1.5; }
.series-grid .editorial-drawing { margin-bottom: 20px; }
.topic:hover .editorial-drawing { color: #111; }

/* Editorial motion studies: continuity, alignment, and the flow of information. */
.editorial-drawing { width: 160px; height: 80px; max-width: 100%; margin: 0 0 26px; color: #183b3a; overflow: visible; }
.diagram-quiet { opacity: .22; }
.diagram-line { stroke-dasharray: 240; animation: current-draw 9s ease-in-out infinite; }
.diagram-second { opacity: .55; animation-delay: -4.5s; }
.diagram-node { fill: #fff; animation: current-breathe 6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.diagram-ring { animation: current-breathe 6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.diagram-traveler { fill: #183b3a; stroke: #fff; animation: current-travel 8s ease-in-out infinite; }
@keyframes current-draw { 0%, 100% { stroke-dashoffset: 0; opacity: .85; } 50% { stroke-dashoffset: 38; opacity: .45; } }
@keyframes current-breathe { 0%,100% { transform: scale(1); } 50% { transform: scale(1.2); } }
@keyframes current-travel { 0%,12% { transform: translateX(0); } 75%,100% { transform: translateX(136px); } }
@media (prefers-reduced-motion: reduce) { .editorial-drawing * { animation: none; } }

/* Color belongs to the information flow, rather than a separate badge. */
.editorial-drawing .diagram-line, .editorial-drawing .diagram-ring { stroke: var(--drawing-ink); }
.editorial-drawing .diagram-node { fill: var(--drawing-ink); stroke: #fff; }
.diagram-flow { fill: var(--drawing-ink); stroke: #fff; stroke-width: 1; offset-anchor: center; animation: current-flow 7s ease-in-out infinite; }
.editorial-drawing .diagram-traveler { fill: var(--drawing-ink); }
.editorial-drawing .diagram-ring { stroke-dasharray: 24 8; animation: current-orbit 12s linear infinite; }
@keyframes current-flow { 0%, 8% { offset-distance: 0%; opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } 95%, 100% { offset-distance: 100%; opacity: 0; } }
@keyframes current-orbit { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .editorial-drawing * { animation: none !important; } .diagram-flow { offset-distance: 50%; opacity: 1; } }
/* Resting illustrations stay still; interaction introduces restrained motion. */
.editorial-drawing .diagram-flow, .editorial-drawing .diagram-traveler { display: none; }
.editorial-drawing * { animation-play-state: paused; }
@media (hover: hover) and (pointer: fine) {
  .topic:hover .editorial-drawing *, .series-grid > article:hover .editorial-drawing * { animation-play-state: running; }
}
.topic:focus-visible .editorial-drawing *, .series-grid > article:focus-within .editorial-drawing * { animation-play-state: running; }
@media (prefers-reduced-motion: reduce) { .editorial-drawing * { animation: none !important; } }

/* Reading paths pair conceptual editorial imagery with colored copy panels. */
.path-card, .path-card + article { padding: 0; display: flex; flex-direction: column; }
.path-card::before { display: none; }
.path-editorial-image { display: block; width: 100%; height: auto; aspect-ratio: 1.8; object-fit: cover; }
.path-editorial-copy { flex: 1; padding: 32px; background: linear-gradient(115deg, #082f32cc, #063a3970), url('/graphics/field-jade.svg') center / cover; color: #fff; }
.path-card:nth-child(2) .path-editorial-copy { background: linear-gradient(115deg, #081e42cc, #13294d70), url('/graphics/field-ocean.svg') center / cover; }
.path-editorial-copy h3, .path-editorial-copy p, .path-editorial-copy .eyebrow { color: #fff; }
.path-editorial-copy .panel-button { color: #171717; }
@media(max-width:760px) { .path-card, .path-card + article { padding:0; } .path-editorial-copy { padding:24px; } }

/* Publication theme switch. */
html { color-scheme: light; }
.theme-toggle { flex: 0 0 38px; width:38px; height:38px; display:grid; place-items:center; padding:8px; border:1px solid transparent; border-radius:6px; background:transparent; color:var(--ink); cursor:pointer; transition:color .2s, box-shadow .2s, border-color .2s; }
.theme-toggle svg { width:22px; height:22px; grid-area:1/1; }
.theme-sun { display:none; }
.theme-toggle:hover, .theme-toggle:focus-visible { color:#00e6cf; border-color:#00e6cf70; box-shadow:0 0 18px #00e6cf50, inset 0 0 8px #00e6cf10; outline:none; }
html[data-theme="dark"] { color-scheme:dark; --paper:#101416; --ink:#edf2f1; --muted:#acb8b7; --wash:#1a2225; --line:#303b3f; --teal:#71d7cb; --accent:#71d7cb; }
[data-theme="dark"] .theme-moon { display:none; }
[data-theme="dark"] .theme-sun { display:block; }
[data-theme="dark"] .stacked-logo { filter:invert(1); }
[data-theme="dark"] .featured .article-card, [data-theme="dark"] .archive-grid .article-card,
[data-theme="dark"] .path-card, [data-theme="dark"] .topic, [data-theme="dark"] .series-grid > article { background:var(--wash); border-color:var(--line); }
[data-theme="dark"] .panel-button { background:#243034; color:var(--ink); border-color:#415256; }
[data-theme="dark"] .panel-button:hover { background:#304347; }
[data-theme="dark"] .path-editorial-copy .panel-button { background:#fff; color:#171717; }
[data-theme="dark"] .editorial-drawing { color:#b4d8d4; }
[data-theme="dark"] .diagram-node { stroke:var(--wash); }
[data-theme="dark"] .button { background:#e7efed; color:#101416; border-color:#e7efed; }
[data-theme="dark"] .button.secondary { background:transparent; color:var(--ink); border-color:var(--line); }
[data-theme="dark"] .filters, [data-theme="dark"] .agenda-note, [data-theme="dark"] .notice { background:var(--wash); color:var(--ink); }
[data-theme="dark"] .format-label, [data-theme="dark"] .coming { color:var(--muted); }
@media(max-width:760px) { .site-header { gap:12px; } .theme-toggle { margin-left:auto; flex-basis:34px; width:34px; height:34px; } }
[data-theme="dark"] .eyebrow { color:var(--muted); }
[data-theme="dark"] .path-editorial-copy .eyebrow, [data-theme="dark"] .next-story .eyebrow, [data-theme="dark"] .newsletter .eyebrow { color:#fff; }
[data-theme="dark"] .topic, [data-theme="dark"] .series-grid > article { background:var(--wash) !important; }

/* Global industry directories */
.directory-stats{display:flex;gap:28px;flex-wrap:wrap;margin:24px 0;color:var(--muted);font-size:14px}
.directory-stats strong{display:block;font-size:34px;line-height:1.2;color:var(--ink);font-weight:500}
.directory-featured,.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.event-card{border:1px solid var(--line);border-radius:var(--radius-panel);padding:24px;background:var(--paper);display:flex;flex-direction:column;min-width:0}
.event-card h3{font-size:25px;line-height:1.2;margin:12px 0}.event-card p{font-size:15px;line-height:1.55}.event-card .event-date{font-size:14px;color:var(--teal);font-weight:600;margin:16px 0 0}.event-location{color:var(--muted);margin-top:0}
.event-tags{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.event-tags span{font-size:12px;background:var(--wash);border:1px solid var(--line);padding:4px 9px;border-radius:20px}
.event-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:auto;padding-top:16px;font-size:13px}.event-links a{text-decoration:underline;text-underline-offset:4px}.event-card .small{font-size:12px;margin-bottom:0;color:var(--muted)}
.event-card .card-kicker{flex-wrap:wrap;gap:8px;font-size:11px}.event-status{display:inline-block;font-size:11px;letter-spacing:.04em;border:1px solid var(--line);border-radius:20px;padding:5px 9px}.status-confirmed{color:var(--teal)}.status-needs-review{color:var(--ink);background:var(--wash)}
.directory-tools{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.event-filters{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:16px;padding:24px;background:var(--wash);border:1px solid var(--line);border-radius:var(--radius-panel);margin:32px 0 16px}
.event-filters label{display:flex;flex-direction:column;gap:8px;font-size:13px}.event-filters input,.event-filters select{width:100%;min-width:0;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--paper);color:var(--ink);font:inherit}.event-filters button{align-self:end;min-height:44px}
.event-facts{display:grid;grid-template-columns:1fr 2fr;gap:14px 24px}.event-facts dt{color:var(--muted)}.event-facts dd{margin:0;overflow-wrap:anywhere}
.event-card[hidden],.event-group[hidden],#event-empty[hidden]{display:none!important}
@media(max-width:1000px){.directory-featured,.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.directory-featured,.event-grid{grid-template-columns:1fr}.event-filters{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px}.event-filters label:first-child{grid-column:1/-1}.event-card{padding:20px}.event-facts{grid-template-columns:1fr;gap:6px}.event-facts dd{margin-bottom:16px}.directory-stats{gap:20px}.directory-tools .button{width:100%;text-align:center}}
.conference-page-intro{padding-top:42px;padding-bottom:22px}.conference-page-intro h1{margin-top:18px}.conference-page-intro .directory-stats{margin-bottom:0}

/* Country-level conference explorer */
:root{--map-ocean-top:#f0f6f6;--map-ocean-bottom:#e6efef;--map-land:#dde5e4;--map-border:#fff;--map-active:#89bab4}
:root[data-theme="dark"]{--map-ocean-top:#152728;--map-ocean-bottom:#102021;--map-land:#2b3e3e;--map-border:#162728;--map-active:#397b74}
.conference-map{margin:30px 0 24px;border:1px solid var(--line);border-radius:var(--radius-panel);overflow:hidden;background:var(--paper)}
.conference-map>.section-head{padding:24px 24px 0;margin-bottom:12px}.conference-map h2{font-size:30px;margin:8px 0}.conference-map #map-instructions{padding:0 24px;margin-bottom:20px}
.map-controls{display:flex;gap:7px;flex-wrap:wrap}.map-controls button{background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-control);padding:10px 13px;font:inherit;font-size:13px;min-height:44px;cursor:pointer}.map-controls button:disabled{opacity:.5;cursor:default}
.map-viewport{overflow:hidden;background:var(--wash)}#conference-world-map{display:block;width:100%;height:auto;aspect-ratio:1000/460;touch-action:pan-y;cursor:grab}
#conference-world-map:active{cursor:grabbing}.map-graticule path{stroke:var(--map-border);stroke-width:.6;fill:none;opacity:.5}.map-country{fill:var(--map-land);stroke:var(--map-border);stroke-width:.65;vector-effect:non-scaling-stroke}.map-country.has-events{fill:var(--map-active);cursor:pointer}.map-country.has-events:hover,.map-country.selected{fill:var(--teal)}
.map-marker{cursor:pointer}.marker-hit{fill:transparent}.marker-dot{fill:var(--paper);stroke:var(--teal);stroke-width:1.5}.map-marker text{font:600 9px var(--sans);fill:var(--ink);pointer-events:none}.map-marker:hover .marker-dot,.map-marker[aria-pressed="true"] .marker-dot{fill:var(--ink);stroke:var(--paper)}.map-marker:hover text,.map-marker[aria-pressed="true"] text{fill:var(--paper)}.map-marker:focus{outline:none}.map-marker:focus-visible .marker-hit{stroke:var(--ink);stroke-width:2;stroke-dasharray:3 2}
.map-footer{padding:12px 24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.map-footer p{margin:0;font-size:13px}.map-footer .small{font-size:11px;color:var(--muted)}
@media(max-width:640px){.conference-map>.section-head{display:block;padding:18px 16px 0}.conference-map h2{font-size:24px}.map-controls{margin-top:14px}.conference-map #map-instructions{padding:0 16px}.map-footer{padding:14px 16px}.map-viewport{min-height:240px}#conference-world-map{min-height:240px;touch-action:pan-y}}
/* City-level globe and regional drill-down */
.globe-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px}.globe-map #conference-world-map{aspect-ratio:4/3;min-height:380px;touch-action:none}.globe-map .map-viewport{background:radial-gradient(ellipse at center,var(--map-ocean-top),var(--paper) 72%)}.globe-panel{border-left:1px solid var(--line);padding:24px;max-height:610px;overflow:auto}.globe-panel h3{margin:0 0 12px;font-size:23px}.globe-panel #map-selection{font-size:13px;color:var(--muted)}.globe-ocean{fill:var(--map-ocean-bottom);stroke:var(--map-border);stroke-width:1.5}.globe-grid{fill:none;stroke:var(--map-border);opacity:.4;stroke-width:.6}.globe-country{fill:var(--map-land);stroke:var(--map-border);stroke-width:.7;cursor:pointer}.globe-country.has-events{fill:var(--map-active)}.globe-country:hover{fill:var(--teal)}.globe-region{fill:transparent;stroke:var(--map-border);stroke-width:.75;cursor:pointer}.globe-region:hover,.globe-region.selected{fill:var(--map-active)}.globe-city{cursor:pointer}.globe-pin-hit{fill:transparent}.globe-pin{fill:var(--teal);stroke:var(--paper);stroke-width:2}.globe-city:hover .globe-pin,.globe-city:focus .globe-pin{fill:var(--ink);r:8}.globe-city-label{font-size:12px;fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:3px;pointer-events:none}.globe-destination{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);padding:10px 0;background:transparent;color:var(--ink);font:inherit;font-size:13px;cursor:pointer}.globe-destination:hover,.globe-destination.selected{color:var(--teal)}.globe-event-link{display:block;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.globe-event-link span{display:block;margin-top:5px;font-size:11px;color:var(--muted)}
@media(max-width:800px){.globe-layout{grid-template-columns:1fr}.globe-panel{border-left:0;border-top:1px solid var(--line);max-height:360px}.globe-map #conference-world-map{min-height:300px}.globe-city-label{font-size:15px}}

.globe-pin-leader{stroke:var(--teal);stroke-width:1;opacity:.8;pointer-events:none}.globe-pin-hit{pointer-events:none}.globe-city.selected .globe-pin{fill:var(--ink);r:8}.globe-panel #map-event-details:not(:empty){margin-bottom:20px}.globe-panel #map-destinations{border-top:1px solid var(--line)}

.event-history{padding:12px;border-left:2px solid var(--teal);background:var(--wash);font-size:12px;line-height:1.5;margin:14px 0}.event-history p{font-size:12px;margin:0 0 8px}.event-history a{font-size:12px}.status-unconfirmed{background:var(--wash);color:var(--ink)}

/* Association directory: restrained typography and the shared card system. */
.association-card-top{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.association-abbreviation{font-size:1.15rem;font-weight:600;color:var(--ink);letter-spacing:0}.association-card h3{overflow-wrap:anywhere;text-wrap:balance}.association-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.association-filters input,.association-filters select{width:100%;min-width:0}@media(max-width:700px){.association-filters{grid-template-columns:1fr}}

.association-tags{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.association-tags>span{border:1px solid var(--line);border-radius:5px;padding:4px 8px;font-size:12px;line-height:1.5}.association-tags a{text-decoration:none}.association-tags small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.prose .association-tags{display:grid;gap:10px}.prose .association-tags>span{padding:12px}.association-suppliers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 24px}.association-suppliers>a{padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none}.association-suppliers span{display:block;font-size:13px;color:var(--muted);margin-top:4px}.association-card .company-logo{margin:4px 0 0}.association-card-top{align-items:flex-start}@media(max-width:700px){.association-suppliers{grid-template-columns:1fr}}
