:root {
  --ink:#101b33;
  --blue:#173f78;
  --red:#e54b38;
  --gold:#f2b84b;
  --cream:#f4f0e8;
  --paper:#fbfaf7;
  --line:#d9d5cc;
  --font-sans:"DM Sans",sans-serif;
  --font-display:"Oswald",sans-serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans)
}
a {
  color:inherit;
  text-decoration:none
}
img {
  max-width:100%;
  height:auto
}
.site-header {
  min-height:12.25rem;
  max-width:90rem;
  margin:auto;
  padding:0 4.5vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem
}
.brand {
  display:flex;
  align-items:center;
  gap:.8rem
}
.site-header>.brand {
  min-width:7.5rem;
  flex-direction:column;
  gap:.25rem;
  text-align:center
}
.brand-mark {
  width:7.5rem;
  height:10rem;
  display:grid;
  place-items:center;
  flex:0 0 7.5rem
}
.brand-mark img {
  width:7rem;
  height:9.5rem;
  object-fit:contain
}
.brand strong {
  display:block;
  font-size:.9rem;
  white-space:nowrap
}
.brand small {
  display:block;
  margin-top:.15rem;
  font-size:.625rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  opacity:.65
}
.site-header nav {
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:clamp(.65rem,1.3vw,1.35rem);
  font-size:.875rem;
  font-weight:700
}
.site-header nav a:hover,.nav-active {
  color:var(--red)
}
.header-actions {
  display:flex;
  flex-direction:column-reverse;
  gap:.5rem
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  min-height:3rem;
  padding:0 1.25rem;
  border:1px solid var(--ink);
  background:var(--ink);
  color:#fff;
  font-size:.75rem;
  font-weight:800
}
.button:hover {
  background:var(--red);
  border-color:var(--red)
}
.button.compact {
  min-height:2.75rem
}
.button.light {
  border-color:#fff;
  background:#fff;
  color:var(--ink)
}
.button.light:hover {
  border-color:var(--gold);
  background:var(--gold)
}
.font-controls {
  height:2.6875rem;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--line)
}
.font-controls button {
  width:2.375rem;
  height:2.5625rem;
  border:0;
  background:transparent;
  font-weight:800;
  cursor:pointer
}
.font-controls button:hover {
  background:var(--ink);
  color:#fff
}
.font-controls span {
  min-width:2.8rem;
  text-align:center;
  color:#68707d;
  font-size:.5625rem;
  font-weight:800
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:.65rem;
  font-size:.625rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase
}
.eyebrow span {
  width:2rem;
  border-top:2px solid var(--red)
}
.eyebrow.light span {
  border-color:var(--gold)
}
.newsletter-hero {
  min-height:42rem;
  padding:clamp(4rem,8vw,8rem) max(4.5vw,calc((100vw - 81.875rem)/2));
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(18rem,30rem);
  gap:clamp(3rem,8vw,8rem);
  align-items:center;
  background:var(--cream)
}
.newsletter-hero h1,.archive-hero h1 {
  margin:1.35rem 0 1.75rem;
  font:500 clamp(4.5rem,9vw,8rem)/.82 var(--font-display);
  letter-spacing:-.04em;
  text-transform:uppercase
}
.newsletter-hero h1 em,.archive-hero h1 em {
  color:var(--red);
  font-style:normal
}
.newsletter-hero>div>p:not(.eyebrow) {
  max-width:43rem;
  color:#5d6572;
  font-size:1.05rem;
  line-height:1.8
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:1.5rem;
  margin-top:2.25rem
}
.newsletter-primary-actions {
  margin-top:2.25rem;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.65rem
}
.newsletter-primary-link {
  min-height:5rem;
  padding:1rem 1.15rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  border:1px solid var(--ink);
  border-bottom:4px solid var(--gold);
  background:var(--ink);
  color:#fff;
  font-size:.78rem;
  font-weight:800;
  line-height:1.25;
  transition:background .18s ease,border-color .18s ease,transform .18s ease
}
.newsletter-primary-link>span {
  flex:0 0 auto;
  font-size:1.05rem
}
.newsletter-primary-link:hover,.newsletter-primary-link:focus-visible {
  border-color:var(--red);
  border-bottom-color:var(--gold);
  background:var(--red);
  outline:none;
  transform:translateY(-.18rem)
}
.text-link {
  font-size:.8rem;
  font-weight:800
}
.latest-cover,.mini-cover {
  position:relative;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:var(--blue);
  color:#fff;
  box-shadow:1.4rem 1.4rem 0 var(--gold)
}
.latest-cover {
  aspect-ratio:3/4;
  padding:2rem
}
.latest-cover:before,.mini-cover:before {
  content:"";
  position:absolute;
  inset:auto -25% 18% 18%;
  height:38%;
  border:clamp(1.25rem,3vw,3rem) solid rgba(255,255,255,.08);
  transform:rotate(-18deg)
}
.cover-kicker,.mini-cover>span {
  font-size:.65rem;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase
}
.latest-cover strong,.mini-cover strong {
  margin-top:auto;
  font:500 clamp(5rem,10vw,8rem)/.8 var(--font-display)
}
.latest-cover em,.mini-cover em {
  font:500 clamp(2.2rem,5vw,4rem)/1 var(--font-display);
  font-style:normal;
  text-transform:uppercase
}
.cover-lines {
  margin:1.5rem 0;
  border-top:1px solid rgba(255,255,255,.4);
  border-bottom:1px solid rgba(255,255,255,.4);
  height:1rem
}
.latest-cover small {
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase
}
.newsletter-about {
  padding:clamp(4rem,8vw,7rem) max(4.5vw,calc((100vw - 81.875rem)/2));
  display:grid;
  grid-template-columns:.6fr 1.25fr .55fr;
  gap:clamp(2rem,6vw,6rem);
  border-bottom:1px solid var(--line)
}
.section-label {
  display:flex;
  gap:1rem
}
.section-label>span {
  font:500 2.4rem var(--font-display);
  color:var(--red)
}
.section-label p {
  margin:.5rem 0;
  font-size:.7rem;
  font-weight:800;
  text-transform:uppercase
}
.newsletter-about h2,.year-browser h2,.archive-note h2 {
  margin:0;
  font:500 clamp(3rem,6vw,5rem)/.95 var(--font-display);
  text-transform:uppercase
}
.newsletter-about>div:nth-child(2)>p {
  color:#626a76;
  line-height:1.8
}
.newsletter-about aside {
  display:grid;
  align-content:start;
  gap:.25rem
}
.newsletter-about aside strong {
  margin-top:1rem;
  font:500 2rem var(--font-display)
}
.newsletter-about aside span {
  color:#747b86;
  font-size:.7rem;
  text-transform:uppercase
}
.latest-reader {
  padding:clamp(4rem,7vw,6rem) max(4.5vw,calc((100vw - 81.875rem)/2))
}
.reader-heading {
  display:flex;
  justify-content:space-between;
  gap:2rem;
  align-items:end;
  margin-bottom:2rem
}
.reader-heading h2 {
  margin:.8rem 0 0;
  font:500 clamp(2.8rem,5vw,4.5rem)/1 var(--font-display);
  text-transform:uppercase
}
.reader-heading>div:last-child {
  display:flex;
  gap:1.25rem;
  font-size:.75rem;
  font-weight:800
}
.latest-reader iframe,.pdf-reader iframe {
  width:100%;
  height:80vh;
  min-height:48rem;
  border:1px solid var(--line);
  background:#e4e5e7
}
.latest-newsletter-preview {
  position:relative;
  width:100%;
  height:80vh;
  min-height:48rem;
  padding:1.25rem;
  display:block;
  overflow:auto;
  border:1px solid var(--line);
  background:#e4e5e7;
  cursor:zoom-in
}
.latest-newsletter-page {
  width:100%;
  max-width:80rem;
  margin:0 auto;
  display:block;
  background:#fff;
  box-shadow:0 .5rem 2rem rgba(16,27,51,.18)
}
.latest-newsletter-page canvas {
  width:100%;
  height:auto;
  display:block
}
.newsletter-preview-status {
  position:absolute;
  z-index:1;
  top:1rem;
  left:50%;
  padding:.55rem .75rem;
  transform:translateX(-50%);
  background:#fff;
  color:#536075;
  box-shadow:0 .2rem .8rem rgba(16,27,51,.14);
  font-size:.8rem;
  font-weight:700
}
.latest-newsletter-preview.is-ready .newsletter-preview-status {
  display:none
}
.latest-newsletter-preview.is-error {
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer
}
.latest-newsletter-preview.is-error .latest-newsletter-page {
  display:none
}
.latest-newsletter-preview.is-error .newsletter-preview-status {
  position:static;
  transform:none;
  max-width:34rem;
  padding:1.25rem;
  color:#101b33;
  text-align:center
}
.latest-newsletter-preview:hover .latest-newsletter-page,
.latest-newsletter-preview:focus-visible .latest-newsletter-page {
  outline:.25rem solid #e29c2d;
  outline-offset:.25rem
}
.newsletter-preview-fallback {
  padding:2rem;
  border:1px solid var(--line);
  background:#e4e5e7;
  text-align:center
}
.newsletter-preview-fallback a {
  color:#101b33;
  font-weight:800;
  text-decoration:underline
}
.exchange-invitation {
  padding:clamp(4rem,7vw,6rem) max(4.5vw,calc((100vw - 81.875rem)/2));
  display:grid;
  grid-template-columns:.65fr 1.35fr auto;
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
  border-top:1px solid var(--line);
  background:var(--cream)
}
.exchange-invitation h2 {
  margin:.75rem 0 1rem;
  font:500 clamp(2.8rem,5vw,4.8rem)/.95 var(--font-display);
  text-transform:uppercase
}
.exchange-invitation>div:nth-child(2)>p:last-child {
  max-width:43rem;
  margin:0;
  color:#626a76;
  line-height:1.8
}
.delivery-note {
  padding:clamp(3rem,6vw,5rem) max(4.5vw,calc((100vw - 81.875rem)/2));
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:4vw;
  align-items:center;
  background:var(--ink);
  color:#fff
}
.delivery-note h2 {
  margin:.7rem 0 0;
  font:500 clamp(2.4rem,4vw,4rem)/1 var(--font-display);
  text-transform:uppercase
}
.delivery-note>p {
  line-height:1.7;
  color:#d4dae3
}
.archive-hero {
  padding:clamp(4rem,7vw,7rem) max(4.5vw,calc((100vw - 81.875rem)/2));
  display:grid;
  grid-template-columns:1fr .7fr;
  gap:7vw;
  align-items:end;
  background:var(--blue);
  color:#fff
}
.archive-hero h1 {
  font-size:clamp(4rem,8vw,7rem)
}
.archive-hero>p {
  color:#d2dbea;
  line-height:1.8
}
.breadcrumb-bar {
  min-height:4.2rem;
  padding:0 max(4.5vw,calc((100vw - 81.875rem)/2));
  display:flex;
  align-items:center;
  gap:.75rem;
  background:var(--ink);
  color:#fff;
  font-size:.68rem;
  font-weight:800;
  text-transform:uppercase
}
.breadcrumb-bar a:after {
  content:"/";
  margin-left:.75rem;
  color:#788298
}
.breadcrumb-bar a:hover {
  color:var(--gold)
}
.year-browser {
  padding:clamp(4rem,7vw,7rem) max(4.5vw,calc((100vw - 81.875rem)/2))
}
.year-browser-head {
  display:flex;
  justify-content:space-between;
  gap:3rem;
  align-items:end
}
.year-browser-head>div>p:last-child {
  color:#6b7280
}
.year-browser form {
  min-width:min(100%,23rem)
}
.year-browser label {
  display:block;
  margin-bottom:.5rem;
  font-size:.65rem;
  font-weight:800;
  text-transform:uppercase
}
.year-browser form>div {
  display:flex
}
.year-browser select {
  width:100%;
  min-height:3.25rem;
  padding:0 1rem;
  border:1px solid var(--ink);
  background:#fff;
  color:var(--ink);
  font:700 .85rem var(--font-sans)
}
.year-browser form button {
  min-width:4rem;
  border:0;
  background:var(--ink);
  color:#fff;
  font-weight:800;
  cursor:pointer
}
.year-browser form button:hover {
  background:var(--red)
}
.year-window {
  margin:3rem 0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  background:var(--ink)
}
.year-window>a,.year-window>span {
  min-height:8rem;
  padding:1.4rem;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  color:#fff;
  border-right:1px solid #3d465b
}
.year-window>a:last-child {
  border:0
}
.year-window a:hover {
  background:#26324a
}
.year-window .selected {
  background:var(--gold);
  color:var(--ink)
}
.year-window small {
  font-size:.6rem;
  font-weight:800;
  letter-spacing:.15em;
  text-transform:uppercase
}
.year-window strong {
  font:500 clamp(2.5rem,5vw,4.5rem) var(--font-display)
}
.issue-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(2rem,4vw,4rem)
}
.issue-card {
  display:grid;
  grid-template-columns:minmax(8rem,.8fr) 1fr;
  gap:1.4rem;
  align-items:center
}
.mini-cover {
  aspect-ratio:3/4;
  padding:1rem;
  box-shadow:.65rem .65rem 0 var(--gold)
}
.mini-cover strong {
  font-size:clamp(2.6rem,4vw,4rem)
}
.mini-cover em {
  font-size:clamp(1.25rem,2.2vw,2rem)
}
.mini-cover i {
  height:.5rem;
  margin-top:.8rem;
  border-top:1px solid rgba(255,255,255,.45);
  border-bottom:1px solid rgba(255,255,255,.45)
}
.cover-tone-2 {
  background:#315b50
}
.cover-tone-3 {
  background:#713d43
}
.cover-tone-4 {
  background:#4a496e
}
.issue-card>div>small {
  color:var(--red);
  font-size:.6rem;
  font-weight:800;
  text-transform:uppercase
}
.issue-card h3 {
  margin:.45rem 0 1rem;
  font:500 clamp(1.45rem,2.3vw,2.1rem)/1.05 var(--font-display);
  text-transform:uppercase
}
.issue-card p {
  margin:.55rem 0;
  font-size:.72rem;
  font-weight:800
}
.issue-card p a:hover {
  color:var(--red)
}
.archive-note {
  margin:0 max(4.5vw,calc((100vw - 81.875rem)/2)) 6rem;
  padding:3rem;
  display:grid;
  grid-template-columns:.7fr 1.3fr;
  gap:4rem;
  background:var(--cream)
}
.archive-note p {
  color:#626a76;
  line-height:1.8
}
.viewer-title {
  padding:3rem max(4.5vw,calc((100vw - 81.875rem)/2));
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:2rem;
  background:var(--blue);
  color:#fff
}
.viewer-title h1 {
  margin:.8rem 0 0;
  font:500 clamp(3rem,6vw,5.5rem)/.95 var(--font-display);
  text-transform:uppercase
}
.pdf-reader {
  padding:3rem max(4.5vw,calc((100vw - 81.875rem)/2)) 5rem
}
.pdf-reader p {
  font-size:.8rem
}
.pdf-reader p a {
  font-weight:800;
  text-decoration:underline
}
footer {
  min-height:19rem;
  padding:3.5rem max(4.5vw,calc((100vw - 81.875rem)/2));
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:3rem;
  align-items:center;
  border-top:1px solid var(--line)
}
.footer-brand .brand-mark {
  width:5rem;
  height:7rem;
  flex-basis:5rem
}
.footer-brand .brand-mark img {
  width:4.7rem;
  height:6.6rem
}
.footer-links {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:1.3rem;
  font-size:.72rem;
  font-weight:800
}
footer>p {
  text-align:right;
  color:#777e88;
  font-size:.68rem;
  line-height:1.7
}
@media(max-width:1000px) {
  .newsletter-primary-actions {
    grid-template-columns:1fr
  }
  .site-header {
    padding:1rem 1.25rem;
    flex-wrap:wrap
  }
  .site-header nav {
    order:3;
    width:100%;
    padding-bottom:1rem
  }
  .newsletter-hero {
    grid-template-columns:1fr minmax(16rem,22rem)
  }
  .newsletter-about {
    grid-template-columns:1fr 2fr
  }
  .newsletter-about aside {
    grid-column:2
  }
  .delivery-note {
    grid-template-columns:1fr 1fr
  }
  .exchange-invitation {
    grid-template-columns:.6fr 1.4fr
  }
  .exchange-invitation>.button {
    grid-column:2;
    justify-self:start
  }
  .delivery-note .button {
    grid-column:2
  }
  .issue-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media(max-width:700px) {
  .newsletter-hero,.archive-hero,.newsletter-about,.archive-note,.exchange-invitation {
    grid-template-columns:1fr
  }
  .newsletter-hero {
    padding-left:1.25rem;
    padding-right:1.25rem
  }
  .latest-cover {
    max-width:22rem
  }
  .hero-actions,.reader-heading,.year-browser-head,.viewer-title {
    align-items:flex-start;
    flex-direction:column
  }
  .newsletter-primary-link {
    min-height:4.25rem
  }
  .latest-reader iframe,.pdf-reader iframe {
    min-height:38rem
  }
  .latest-newsletter-preview {
    min-height:38rem;
    padding:.75rem
  }
  .delivery-note {
    grid-template-columns:1fr
  }
  .delivery-note .button {
    grid-column:auto
  }
  .exchange-invitation>.button {
    grid-column:auto
  }
  .year-window>a,.year-window>span {
    min-height:6rem;
    padding:.75rem
  }
  .issue-grid {
    grid-template-columns:1fr
  }
  .issue-card {
    grid-template-columns:minmax(7.5rem,10rem) 1fr
  }
  .archive-note {
    gap:1rem
  }
  footer {
    grid-template-columns:1fr;
    text-align:center
  }
  footer .brand {
    justify-content:center
  }
  footer>p {
    text-align:center
  }
  .breadcrumb-bar {
    overflow-x:auto;
    white-space:nowrap
  }
}
@media print {
  .site-header,.font-controls,.delivery-note,footer,.year-browser form {
    display:none!important
  }
  .archive-hero,.viewer-title {
    background:#fff;
    color:#000
  }
  .issue-grid {
    grid-template-columns:repeat(3,1fr)
  }
}
