@font-face {
  font-family:Anton;
  src:url('/fonts/anton-latin-400-normal.woff2') format('woff2');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:'DM Sans';
  src:url('/fonts/dm-sans-latin-wght-normal.woff2') format('woff2');
  font-weight:400 600;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:'Source Serif 4';
  src:url('/fonts/source-serif-4-latin-wght-normal.woff2') format('woff2');
  font-weight:400 600;
  font-style:normal;
  font-display:swap;
}

@font-face {
  font-family:'Source Serif 4';
  src:url('/fonts/source-serif-4-latin-400-italic.woff2') format('woff2');
  font-weight:400;
  font-style:italic;
  font-display:swap;
}

:root {
  --cobalt:#1645f5;
  --tomato:#f04a2d;
  --butter:#ffe46b;
  --paper:#fffdf7;
  --ink:#171a1f;
  --red:#b32e1b;
  --muted:#53565b;
  --rule:#d8d6cf;
  --control:#6b6b63;
  --gutter:clamp(1.25rem,3vw,3rem);
  --serif:'Source Serif 4',Georgia,serif;
  --ui:'DM Sans',Arial,sans-serif;
  --display:Anton,Impact,'Arial Narrow',sans-serif;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:1.5rem;
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--ui);
  font-size:1rem;
  line-height:1.6;
}

h1,h2,h3,p,figure {
  margin:0;
}

h1,h2,h3 {
  font-family:var(--serif);
  font-weight:600;
  line-height:1.08;
  text-wrap:balance;
}

h1 {
  font-size:clamp(2.5rem,5.7vw,5.5rem);
  letter-spacing:-.045em;
}

h2 {
  font-size:clamp(2rem,3vw,3rem);
  letter-spacing:-.035em;
}

a {
  color:inherit;
  text-underline-offset:.2em;
}

a:hover {
  color:var(--cobalt);
}

button,input,select {
  font:inherit;
}

button,a,input,select {
  touch-action:manipulation;
}

button {
  cursor:pointer;
}

button,input,select {
  border-radius:6px;
}

input,select {
  min-width:0;
  min-height:48px;
  background:var(--paper);
  color:var(--ink);
  border:1px solid var(--control);
}

input {
  padding:.75rem 1rem;
}

select {
  padding:.75rem 2.5rem .75rem 1rem;
}

button {
  min-height:44px;
}

img {
  display:block;
  max-width:100%;
  height:auto;
}

svg {
  display:block;
}

a,button,input,select {
  transition:color 160ms,background-color 160ms;
}

::selection {
  background:var(--butter);
  color:var(--ink);
}

:focus-visible {
  outline:3px solid var(--paper);
  outline-offset:2px;
  box-shadow:0 0 0 6px var(--ink);
}

[hidden] {
  display:none!important;
}

.container {
  width:min(calc(100% - 2 * var(--gutter)),1320px);
  margin-inline:auto;
}

.eyebrow {
  font-family:var(--ui);
  font-size:.875rem;
  font-weight:500;
  line-height:1.5;
  letter-spacing:.075em;
  text-transform:uppercase;
}

.metadata {
  font-family:var(--ui);
  font-size:.875rem;
  color:var(--muted);
  line-height:1.6;
}

.tomato {
  color:var(--tomato);
}

.skip-link {
  position:fixed;
  top:.75rem;
  left:.75rem;
  z-index:20;
  padding:.75rem 1rem;
  background:var(--cobalt);
  color:var(--paper);
  transform:translateY(-200%);
}

.skip-link:focus {
  transform:none;
}

.skip-link:hover {
  color:var(--paper);
}

main:focus {
  outline:0;
}

.topline {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:1.5rem 0 1rem;
  font-size:.875rem;
}

.topline strong {
  font-weight:500;
}

.brand-row {
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.masthead {
  display:inline-flex;
  align-items:flex-start;
  font-family:var(--display);
  font-size:clamp(3rem,10.8vw,9.6rem);
  font-weight:400;
  line-height:1.2;
  letter-spacing:-.025em;
  text-decoration:none;
  color:var(--cobalt);
  white-space:nowrap;
}

.brand-dot {
  font-family:Arial,sans-serif;
  color:var(--tomato);
  font-size:.24em;
  line-height:1.5;
  margin-top:.2em;
  margin-left:.18em;
}

.site-nav {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:66px;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  margin-top:1rem;
}

.nav-primary,.nav-secondary {
  display:flex;
  align-items:center;
  gap:2rem;
}

.site-nav a {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  min-height:48px;
  text-decoration:none;
}

.site-nav a:hover,.site-nav a[aria-current] {
  text-decoration:underline;
  text-decoration-thickness:2px;
}

.nav-primary {
  font-weight:500;
}

.nav-secondary {
  font-size:.875rem;
}

.search-icon {
  width:21px;
  height:21px;
}

.menu-toggle {
  border:1px solid var(--ink);
  background:transparent;
  padding:.5rem .75rem;
  gap:.5rem;
  align-items:center;
}

.compact-header .topline {
  display:none;
}

.compact-header .brand-row {
  padding:1.5rem 0 0;
}

.compact-header .masthead {
  font-size:clamp(2rem,4vw,3.5rem);
}

.compact-header .site-nav {
  margin-top:1.5rem;
}

.subject-nav {
  display:flex;
  gap:1.5rem;
  flex-wrap:wrap;
  padding:.5rem 0;
  border-bottom:1px solid var(--rule);
}

.subject-nav a {
  padding:.5rem 0;
  text-decoration:none;
}

.subject-nav a:hover {
  text-decoration:underline;
}

.launch-hero {
  display:grid;
  grid-template-columns:1.65fr 1fr;
  gap:clamp(2rem,4vw,4rem);
  padding:2rem 0 0;
}

.hero-poster {
  padding:2rem 2.5rem 1.5rem;
  background:var(--butter);
  min-height:490px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
  overflow:hidden;
}

.poster-top,.poster-bottom {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  position:relative;
  z-index:1;
}

.poster-top {
  padding-bottom:1.5rem;
  border-bottom:1px solid var(--ink);
}

.poster-title {
  position:relative;
  padding:2rem 0 2.5rem;
}

.poster-title h1 {
  position:relative;
  z-index:1;
  font-size:clamp(4.5rem,7.6vw,7.4rem);
  font-weight:400;
  line-height:.96;
  letter-spacing:-.06em;
}

.poster-title em {
  font-weight:400;
}

.sun-mark {
  position:absolute;
  right:-.08em;
  top:50%;
  transform:translateY(-40%);
  color:var(--tomato);
  font-family:Georgia,serif;
  font-size:clamp(9rem,16vw,15rem);
  line-height:1;
  user-select:none;
}

.poster-bottom {
  align-items:center;
  border-top:1px solid var(--ink);
  padding-top:1rem;
  font-size:.875rem;
}

.poster-bottom span:last-child {
  font-size:.875rem;
  letter-spacing:.035em;
}

.hero-note {
  padding:1.25rem 0 .5rem;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.hero-note .eyebrow {
  color:var(--cobalt);
  font-size:.875rem;
  letter-spacing:.035em;
}

.small-dot {
  display:inline-block;
  width:8px;
  height:8px;
  margin-right:5px;
  background:var(--tomato);
  border-radius:50%;
}

.hero-note h2 {
  font-size:clamp(2.25rem,3.25vw,3.1rem);
  font-weight:400;
  line-height:1.1;
  margin:1.5rem 0;
}

.hero-note>p:not(.eyebrow) {
  max-width:40ch;
  margin-bottom:1rem;
  line-height:1.7;
}

.note-bottom {
  margin-top:auto;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1rem;
  padding-top:1rem;
}

.coming-label {
  display:inline-block;
  font-size:.875rem;
  line-height:1.5;
  padding:.4rem .75rem;
  border:1px solid var(--ink);
  border-radius:0;
  font-weight:500;
}

.text-link {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  min-height:44px;
  text-decoration:none;
  border-bottom:1px solid currentColor;
  font-weight:500;
  font-size:1rem;
  color:var(--cobalt);
}

.text-link span {
  font-size:1.25rem;
}

.text-link:hover {
  color:var(--ink);
}

.editorial-strip {
  margin:3rem 0 4rem;
  padding:1.75rem 0 2rem;
  border-top:1px solid var(--ink);
  border-bottom:1px solid var(--ink);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
}

.editorial-strip>.eyebrow {
  max-width:14ch;
}

.editorial-strip>p:last-child {
  font-family:var(--serif);
  font-size:clamp(1.4rem,2.5vw,2.3rem);
  font-weight:400;
  letter-spacing:-.025em;
}

.editorial-strip>p:last-child span {
  color:var(--tomato);
  margin:0 .25rem;
}

.guide-feature {
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
  margin-bottom:4rem;
}

.guide-mark {
  position:relative;
  background:var(--cobalt);
  color:var(--paper);
  padding:2rem 2.5rem;
  min-height:330px;
  overflow:hidden;
}

.guide-mark>span {
  display:block;
  letter-spacing:.08em;
  font-size:.875rem;
}

.guide-mark strong {
  display:block;
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(3.5rem,5.5vw,5rem);
  line-height:1.05;
  letter-spacing:-.01em;
  margin:1rem 0 1.5rem;
}

.guide-mark .guide-star {
  position:absolute;
  right:1.5rem;
  bottom:3.5rem;
  font-size:8rem;
  line-height:1;
  color:var(--butter);
  font-family:var(--ui);
  font-weight:400;
}

.guide-feature-copy {
  padding-block:1rem;
}

.guide-feature-copy .eyebrow {
  color:var(--cobalt);
  margin-bottom:1.5rem;
}

.guide-feature-copy h2 {
  font-weight:400;
  font-size:clamp(2rem,3.5vw,3.5rem);
}

.guide-feature-copy>p:not(.eyebrow) {
  max-width:47ch;
  margin:1.5rem 0;
}

.newsletter {
  background:var(--butter);
  display:grid;
  grid-template-columns:90px 1fr auto;
  gap:2rem;
  align-items:center;
  padding:2.5rem;
  margin-block:4rem;
}

.letter-icon {
  color:var(--cobalt);
  width:90px;
  transform:rotate(-8deg);
}

.newsletter .eyebrow {
  margin-bottom:.5rem;
}

.newsletter h2 {
  font-size:clamp(2rem,3vw,2.75rem);
  font-weight:400;
}

.newsletter h2+p {
  margin-top:.75rem;
}

.letter-action {
  max-width:210px;
  text-align:right;
}

.letter-action .metadata {
  margin-top:.75rem;
  color:var(--ink);
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:2rem;
  background:var(--cobalt);
  color:var(--paper);
  border:1px solid var(--cobalt);
  border-radius:6px;
  padding:.875rem 1.25rem;
  min-height:48px;
  text-decoration:none;
  font-weight:500;
}

.button:hover {
  background:var(--ink);
  border-color:var(--ink);
  color:var(--paper);
}

.site-footer {
  border-top:1px solid var(--ink);
  margin-top:4rem;
}

.footer-main {
  display:flex;
  justify-content:space-between;
  gap:3rem;
  padding-block:2.5rem;
}

.footer-brand {
  font-family:var(--display);
  font-size:2rem;
  letter-spacing:-.025em;
  color:var(--cobalt);
  text-decoration:none;
}

.footer-brand .tomato {
  font-family:Arial,sans-serif;
  font-size:.35em;
  vertical-align:top;
}

.footer-main p {
  font-family:var(--serif);
  font-size:1.125rem;
  margin-top:.25rem;
}

.footer-main nav {
  display:flex;
  align-items:flex-start;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:.5rem 2rem;
  max-width:60%;
}

.footer-main nav a {
  display:flex;
  align-items:center;
  min-height:44px;
  font-size:.875rem;
  text-decoration:none;
}

.footer-main nav a:hover {
  text-decoration:underline;
}

.footer-bottom {
  border-top:1px solid var(--rule);
  display:flex;
  justify-content:space-between;
  gap:1.5rem;
  padding-block:1.25rem;
  font-size:.875rem;
  color:var(--muted);
}

.page-intro {
  padding:4rem 0 3rem;
  border-bottom:1px solid var(--ink);
}

.page-intro .eyebrow {
  color:var(--cobalt);
  margin-bottom:1.5rem;
}

.page-intro>p:last-child:not(.eyebrow) {
  font-family:var(--serif);
  font-size:1.375rem;
  max-width:52ch;
  margin-top:1.5rem;
}

.guide-intro {
  background:var(--butter);
  padding:3rem;
  margin-top:2rem;
  border-bottom:none;
}

.filter-form {
  display:flex;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:1.5rem;
  padding:2rem 0;
  border-bottom:1px solid var(--rule);
}

.filter-form label:not(.filter-pills label) {
  display:block;
  font-size:.875rem;
  margin-bottom:.5rem;
  font-weight:500;
}

.search-field {
  flex:1 1 420px;
}

.search-input {
  display:flex;
  gap:.5rem;
}

.search-input input {
  flex:1;
}

.search-input button {
  padding:.75rem 1.25rem;
  background:var(--cobalt);
  color:var(--paper);
  border:1px solid var(--cobalt);
  white-space:nowrap;
}

.search-input button:hover {
  background:var(--ink);
  border-color:var(--ink);
}

.search-input button span {
  margin-left:1rem;
}

.destination-field {
  flex:1 1 200px;
}

.destination-field select {
  width:100%;
}

.topic-filters {
  border:0;
  margin:0;
  padding:0;
  flex:1 1 100%;
}

.topic-filters legend {
  font-size:.875rem;
  font-weight:500;
  margin-bottom:.75rem;
}

.filter-pills {
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
}

.filter-pills label {
  position:relative;
  cursor:pointer;
}

.filter-pills input {
  position:absolute;
  opacity:0;
  width:1px;
  height:1px;
  margin:0;
  min-height:0;
}

.filter-pills span {
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--control);
  border-radius:32px;
  padding:.6rem 1.25rem;
  min-height:44px;
  font-size:.875rem;
}

.filter-pills input:checked+span {
  background:var(--cobalt);
  color:var(--paper);
  border-color:var(--cobalt);
  text-decoration:underline;
  text-underline-offset:.25em;
}

.filter-pills input:focus-visible+span {
  outline:3px solid var(--paper);
  outline-offset:2px;
  box-shadow:0 0 0 6px var(--ink);
}

.filter-pills label:hover span {
  border-color:var(--cobalt);
}

.clear-filters {
  font-size:.875rem;
  min-height:44px;
  display:flex;
  align-items:center;
  color:var(--cobalt);
}

.result-count {
  padding:1.5rem 0;
  font-size:.875rem;
  color:var(--muted);
}

.empty-state {
  padding:3rem 1rem 4rem;
  text-align:center;
  border-block:1px solid var(--rule);
}

.empty-mark {
  display:block;
  font-size:4rem;
  color:var(--cobalt);
  line-height:1;
  margin-bottom:1.5rem;
}

.empty-state h2 {
  font-weight:400;
  font-size:clamp(1.75rem,3vw,2.75rem);
}

.empty-state p {
  max-width:49ch;
  margin:1rem auto 1.25rem;
}

.empty-state .text-link {
  margin-inline:.5rem;
}

.story-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:3rem 2rem;
}

.story-card {
  border-bottom:1px solid var(--rule);
  padding-bottom:1.5rem;
  min-width:0;
  overflow-wrap:anywhere;
}

.card-image {
  display:block;
  margin-bottom:1rem;
}

.card-image img {
  width:100%;
  aspect-ratio:3/2;
  object-fit:cover;
}

.story-card .eyebrow {
  color:var(--cobalt);
  margin-bottom:.75rem;
}

.story-card .eyebrow span {
  margin-inline:.5rem;
}

.story-card h2 {
  font-size:1.875rem;
  font-weight:400;
}

.story-card h2 a {
  text-decoration:none;
}

.story-card h2 a:hover {
  text-decoration:underline;
}

.story-card h2+p {
  margin-top:.75rem;
}

.story-card .metadata {
  margin-top:1rem;
}

.pagination {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding-top:2rem;
}

.pagination a {
  min-height:44px;
  display:flex;
  align-items:center;
  color:var(--cobalt);
}

.section-block {
  margin-block:4rem;
}

.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  border-top:1px solid var(--ink);
  padding-top:1rem;
  margin-bottom:2rem;
}

.section-heading h2 {
  font-size:2rem;
  font-weight:400;
}

.published-lead {
  padding-top:2rem;
}

.published-lead.has-image {
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:2rem;
  align-items:center;
}

.published-lead .article-hero {
  margin:0;
}

.published-lead .article-hero img {
  aspect-ratio:4/3;
  object-fit:cover;
}

.lead-copy {
  padding-block:2rem;
  max-width:900px;
}

.lead-copy .eyebrow {
  color:var(--cobalt);
  margin-bottom:1rem;
}

.lead-copy h1 {
  font-size:clamp(2.75rem,4vw,4rem);
}

.lead-copy h1 a {
  text-decoration:none;
}

.lead-copy .standfirst {
  margin:1.5rem 0;
}

.article-opening {
  max-width:1000px;
  margin:3rem auto 2.5rem;
}

.article-opening.guide-intro {
  max-width:none;
}

.back-link {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  color:var(--cobalt);
  margin-bottom:1rem;
  text-decoration:none;
}

.article-opening>.eyebrow:not(.back-link) {
  color:var(--cobalt);
  margin-bottom:1rem;
}

.article-opening h1 {
  font-size:clamp(2.25rem,5vw,4.5rem);
  overflow-wrap:anywhere;
}

.standfirst {
  font-family:var(--serif);
  font-size:clamp(1.25rem,2vw,1.65rem);
  line-height:1.45;
  letter-spacing:-.015em;
}

.article-opening .standfirst {
  max-width:60ch;
  margin:1.5rem 0;
}

.article-byline {
  display:flex;
  gap:.5rem 1.5rem;
  flex-wrap:wrap;
  font-size:.875rem;
  border-top:1px solid var(--rule);
  padding-top:1.5rem;
}

.disclosure {
  border:1px solid var(--control);
  padding:1rem;
  margin-top:1.5rem;
  font-size:.875rem;
}

.article-hero {
  margin:2rem 0 3rem;
}

.article-hero img {
  width:100%;
}

.article-hero figcaption {
  font-size:.875rem;
  margin-top:.5rem;
  color:var(--muted);
}

.article-body {
  max-width:65ch;
  margin-inline:auto;
  font-family:var(--serif);
  font-size:clamp(1.125rem,1rem + .3vw,1.3125rem);
  line-height:1.65;
  overflow-wrap:anywhere;
}

.article-body>p {
  margin-bottom:1.5rem;
}

.article-body h2 {
  font-size:2rem;
  margin:2.5rem 0 1rem;
}

.article-body h3 {
  font-size:1.5rem;
  margin:2rem 0 1rem;
}

.article-body a {
  color:var(--cobalt);
}

.article-body ul,.article-body ol:not(.guide-stops) {
  padding-left:1.5rem;
  margin-block:1.5rem;
}

.article-body li {
  padding-left:.25rem;
  margin-bottom:.75rem;
}

.article-body blockquote {
  font-size:clamp(1.75rem,3vw,2.5rem);
  line-height:1.3;
  border-block:1px solid var(--ink);
  padding:2rem 0;
  margin:2.5rem 0;
  color:var(--cobalt);
  font-style:italic;
}

.article-body figure {
  margin:2rem 0;
}

.article-body figcaption {
  font-family:var(--ui);
  font-size:.875rem;
  margin-top:.5rem;
  color:var(--muted);
}

.image-pair {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
}

.article-body .image-pair figure {
  margin-block:0;
}

.fact-box {
  padding:1.5rem;
  background:var(--butter);
  font-family:var(--ui);
  font-size:1rem;
  margin-block:2rem;
}

.fact-box h3 {
  margin:0 0 .75rem;
}

.fact-box p {
  margin:0;
}

.checked-note {
  font-family:var(--ui);
  font-size:.875rem;
  border-block:1px solid var(--rule);
  padding:1rem 0;
}

.guide-stops {
  list-style:none;
  margin:2rem 0;
  padding:0;
}

.guide-stops>li {
  display:grid;
  grid-template-columns:3rem 1fr;
  gap:1rem;
  border-top:1px solid var(--ink);
  padding:1.5rem 0;
  margin:0;
}

.stop-number {
  font-family:var(--display);
  font-size:2.5rem;
  color:var(--cobalt);
  line-height:1;
}

.guide-stops h2 {
  margin:0 0 1rem;
}

.guide-stops .metadata {
  margin-top:1rem;
}

.stop-links {
  display:flex;
  gap:1.5rem;
  font-family:var(--ui);
  font-size:1rem;
  flex-wrap:wrap;
  margin-top:1rem;
}

.stop-links a {
  display:flex;
  align-items:center;
  min-height:44px;
}

.end-mark {
  color:var(--tomato);
  text-align:center;
  font-size:1.25rem;
  margin-top:3rem;
}

.about-intro h1 {
  font-weight:400;
  font-size:clamp(2.75rem,6vw,5.75rem);
}

.about-intro em {
  font-weight:400;
  color:var(--cobalt);
}

.about-body {
  display:grid;
  grid-template-columns:1fr 3fr;
  gap:4rem;
  padding-block:3rem;
}

.about-body>.eyebrow {
  color:var(--cobalt);
}

.about-body .article-body {
  margin-inline:0;
}

.policy-body {
  margin-block:3rem 4rem;
}

.not-found {
  padding-block:5rem;
}

.not-found .eyebrow {
  color:var(--cobalt);
  margin-bottom:1.5rem;
}

.not-found>p:not(.eyebrow) {
  max-width:48ch;
  margin:1.5rem 0;
}

.preview-banner {
  padding:.75rem 1rem;
  background:var(--ink);
  color:var(--paper);
  font-size:.875rem;
  text-align:center;
}

.notice {
  padding:1rem;
  background:var(--butter);
  margin-top:1rem;
}

.error-message {
  padding:1rem;
  border:1px solid var(--red);
  color:var(--red);
}

.error-message button {
  display:block;
  margin-top:1rem;
  padding:.5rem 1rem;
  border:1px solid var(--red);
  background:var(--paper);
  color:var(--red);
}

@media(min-width:1600px) {
  .masthead {
    font-size:9.6rem;
  }
}

@media(max-width:1100px) {
  .hero-poster {
    padding:1.5rem;
    min-height:460px;
  }
  .poster-title h1 {
    font-size:clamp(4rem,8vw,6.5rem);
  }
  .hero-note h2 {
    font-size:2.5rem;
  }
  .hero-note .eyebrow {
    max-width:24ch;
  }
  .sun-mark {
    right:-.2em;
    font-size:13rem;
  }
  .newsletter {
    grid-template-columns:70px 1fr;
    gap:1.5rem;
  }
  .letter-icon {
    width:70px;
  }
  .letter-action {
    grid-column:2;
    text-align:left;
    max-width:none;
    display:flex;
    align-items:center;
    gap:1rem;
  }
  .letter-action .metadata {
    margin:0;
  }
  .editorial-strip>p:last-child {
    font-size:1.75rem;
  }
  .guide-mark {
    padding:2rem;
  }
  .guide-mark .guide-star {
    font-size:7rem;
    right:1rem;
  }
}

@media(max-width:900px) {
  .topline>span:last-child {
    display:none;
  }
  .nav-primary,.nav-secondary {
    gap:1.25rem;
  }
  .launch-hero {
    grid-template-columns:1.35fr 1fr;
    gap:1.5rem;
  }
  .hero-poster {
    min-height:480px;
  }
  .poster-title h1 {
    font-size:4.75rem;
  }
  .sun-mark {
    font-size:9rem;
    top:64%;
    right:-.15em;
  }
  .poster-top {
    flex-wrap:wrap;
    gap:.25rem;
  }
  .poster-bottom {
    align-items:flex-start;
    flex-direction:column;
    gap:.25rem;
  }
  .hero-note h2 {
    font-size:2.125rem;
  }
  .hero-note>p:not(.eyebrow) {
    font-size:1rem;
  }
  .editorial-strip {
    align-items:flex-start;
    flex-direction:column;
    gap:1rem;
  }
  .editorial-strip>.eyebrow {
    max-width:none;
  }
  .editorial-strip>p:last-child {
    font-size:2rem;
  }
  .guide-feature {
    grid-template-columns:1fr 1fr;
    gap:2rem;
  }
  .story-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .published-lead.has-image {
    grid-template-columns:1fr;
  }
  .published-lead .lead-copy {
    padding-top:0;
  }
  .about-body {
    gap:2rem;
  }
}

@media(max-width:767px) {
  .topline {
    padding:1rem 0 .75rem;
    font-size:.875rem;
  }
  .masthead {
    font-size:clamp(1.5rem,6.2vw,2.85rem);
    letter-spacing:-.025em;
  }
  .home-header .brand-row {
    padding:.25rem 0 .75rem;
  }
  .compact-header .brand-row {
    padding:1.25rem 0 .75rem;
  }
  .compact-header .masthead {
    font-size:clamp(1.5rem,6.2vw,2.85rem);
  }
  .menu-toggle:not([hidden]) {
    display:flex;
    font-size:.875rem;
    flex-shrink:0;
    min-height:44px;
  }
  .brand-row {
    gap:.75rem;
  }
  .site-nav,.compact-header .site-nav {
    margin-top:0;
    align-items:flex-start;
    flex-direction:column;
    gap:0;
    padding:.5rem 0;
    min-height:0;
  }
  .nav-primary,.nav-secondary {
    width:100%;
    justify-content:space-between;
    gap:.5rem;
    flex-wrap:wrap;
  }
  .nav-secondary {
    border-top:1px solid var(--rule);
  }
  .js .site-nav {
    display:none;
  }
  .js .site-nav.is-open {
    display:flex;
  }
  .site-header>.container {
    border-bottom:1px solid var(--ink);
  }
  .site-header .site-nav {
    border-bottom:0;
  }
  .subject-nav {
    gap:1rem;
  }
  .launch-hero {
    grid-template-columns:1fr;
    padding-top:1.5rem;
    gap:1rem;
  }
  .hero-poster {
    padding:1.5rem;
    min-height:400px;
  }
  .poster-top {
    flex-direction:row;
    gap:1rem;
  }
  .poster-top .eyebrow {
    font-size:.875rem;
    letter-spacing:.025em;
  }
  .poster-title {
    padding:2rem 0;
  }
  .poster-title h1 {
    font-size:clamp(4.25rem,14vw,6.5rem);
    line-height:.98;
  }
  .sun-mark {
    font-size:clamp(9rem,31vw,14rem);
    right:.025em;
    top:55%;
  }
  .poster-bottom {
    flex-direction:row;
    align-items:center;
  }
  .poster-bottom span:last-child {
    display:none;
  }
  .hero-note {
    padding:1.5rem .25rem .5rem;
  }
  .hero-note .eyebrow {
    max-width:none;
  }
  .hero-note h2 {
    font-size:2.5rem;
    margin-block:1rem;
  }
  .hero-note h2 br:last-child {
    display:none;
  }
  .hero-note>p:not(.eyebrow) {
    max-width:55ch;
  }
  .note-bottom {
    padding-top:.5rem;
    gap:.75rem;
  }
  .editorial-strip {
    margin:2rem 0 2.5rem;
    padding-block:1.5rem;
    gap:.75rem;
  }
  .editorial-strip>p:last-child {
    font-size:1.7rem;
    line-height:1.6;
  }
  .editorial-strip>p:last-child span {
    margin-inline:.1rem;
  }
  .guide-feature {
    grid-template-columns:1fr;
    gap:1.5rem;
    margin-bottom:2.5rem;
  }
  .guide-mark {
    min-height:270px;
    padding:1.5rem 2rem;
  }
  .guide-mark strong {
    font-size:4rem;
    margin-bottom:1rem;
  }
  .guide-mark .guide-star {
    right:2rem;
    bottom:2rem;
    font-size:8rem;
  }
  .guide-feature-copy {
    padding:0;
  }
  .guide-feature-copy .eyebrow {
    margin-bottom:1rem;
  }
  .guide-feature-copy h2 {
    font-size:2.5rem;
  }
  .guide-feature-copy>p:not(.eyebrow) {
    margin-block:1rem;
  }
  .newsletter {
    grid-template-columns:1fr;
    padding:1.5rem;
    gap:1rem;
    margin-block:2.5rem;
  }
  .letter-icon {
    width:64px;
    margin-bottom:.5rem;
  }
  .newsletter h2 {
    font-size:2.125rem;
  }
  .letter-action {
    grid-column:auto;
    display:block;
    margin-top:.5rem;
  }
  .letter-action .metadata {
    margin-top:.75rem;
  }
  .desktop-only {
    display:none;
  }
  .site-footer {
    margin-top:2.5rem;
  }
  .footer-main {
    flex-direction:column;
    gap:1rem;
    padding-block:2rem;
  }
  .footer-main nav {
    justify-content:flex-start;
    max-width:none;
    gap:.25rem 1.5rem;
  }
  .footer-brand {
    font-size:1.875rem;
  }
  .footer-bottom {
    flex-direction:column;
    gap:.25rem;
    font-size:.875rem;
  }
  .page-intro {
    padding:2.5rem 0 2rem;
  }
  .page-intro h1 {
    font-size:clamp(2.5rem,9vw,3.5rem);
  }
  .page-intro .eyebrow {
    margin-bottom:1rem;
  }
  .page-intro>p:last-child:not(.eyebrow) {
    font-size:1.25rem;
    margin-top:1rem;
  }
  .guide-intro {
    padding:1.5rem;
    margin-top:1.5rem;
  }
  .filter-form {
    gap:1rem;
    padding-block:1.5rem;
  }
  .search-field {
    flex-basis:100%;
  }
  .search-input {
    gap:.5rem;
  }
  .search-input button {
    padding:.75rem;
  }
  .search-input button span {
    display:none;
  }
  .destination-field {
    flex-basis:100%;
  }
  .empty-state {
    padding:2rem .25rem 3rem;
  }
  .story-grid {
    grid-template-columns:1fr;
    gap:2rem;
  }
  .story-card h2 {
    font-size:2rem;
  }
  .section-block {
    margin-block:2.5rem;
  }
  .section-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:.5rem;
  }
  .article-opening {
    margin-block:2rem;
  }
  .article-opening h1 {
    font-size:clamp(2.25rem,8vw,2.75rem);
  }
  .article-opening.guide-intro {
    padding:1.5rem;
  }
  .article-byline {
    padding-top:1rem;
    gap:.5rem 1rem;
  }
  .article-hero {
    margin-block:1.5rem 2rem;
  }
  .article-body h2 {
    font-size:1.75rem;
  }
  .article-body h3 {
    font-size:1.375rem;
  }
  .article-body blockquote {
    margin-block:2rem;
  }
  .image-pair {
    grid-template-columns:1fr;
  }
  .guide-stops>li {
    grid-template-columns:2rem 1fr;
    gap:.75rem;
  }
  .stop-number {
    font-size:2rem;
  }
  .about-intro h1 {
    font-size:clamp(2.5rem,8.5vw,3.5rem);
  }
  .about-body {
    grid-template-columns:1fr;
    gap:1.5rem;
    padding-top:2rem;
  }
  .about-body>.eyebrow br {
    display:none;
  }
  .not-found {
    padding-block:3rem;
  }
  .not-found h1 {
    font-size:2.75rem;
  }
  .pagination {
    font-size:.875rem;
    gap:.5rem;
  }
  .published-lead {
    padding-top:1.5rem;
  }
  .lead-copy h1 {
    font-size:2.5rem;
  }
}

@media(max-width:359px) {
  .hero-poster {
    padding:1.25rem;
    min-height:365px;
  }
  .poster-top {
    flex-direction:column;
    gap:.25rem;
  }
  .poster-title h1 {
    font-size:4rem;
  }
  .sun-mark {
    font-size:7rem;
    right:-.15em;
    top:63%;
  }
  .hero-note h2 {
    font-size:2.25rem;
  }
  .guide-mark .guide-star {
    font-size:6rem;
    right:1rem;
  }
  .guide-mark {
    padding-inline:1.5rem;
  }
  .guide-feature-copy h2 {
    font-size:2.25rem;
  }
  .menu-toggle {
    padding:.4rem .5rem;
  }
  .menu-toggle span {
    display:none;
  }
  .brand-row {
    gap:.25rem;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*::before,*::after {
    transition:none!important;
    animation:none!important;
  }
}

@media print {
  .site-nav,.subject-nav,.newsletter,.menu-toggle,.site-footer,.back-link {
    display:none!important;
  }
  .container {
    width:100%;
  }
  .masthead,.compact-header .masthead {
    font-size:2rem;
  }
  .article-body {
    font-size:12pt;
    max-width:none;
  }
  .article-opening h1 {
    font-size:30pt;
  }
  body {
    background:white;
    color:black;
  }
  .article-hero {
    break-inside:avoid;
  }
}
