@font-face {
  font-family:Inter;
  src:url('e3237528af752eed937e.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap
}

:root {
  --ink:#102538;
  --accent:#f36c39;
  --accent-dark:#bf451c;
  --muted:#536574;
  --line:#dce3e8;
  --slate:#cbd3da;
  --white:#fff;
  --radius:6px;
  --font:Inter,Arial,sans-serif
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:24px
}

body {
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:var(--font);
  -webkit-font-smoothing:antialiased
}

a {
  color:inherit;
  text-decoration:none
}

button,input {
  font:inherit
}

button,a {
  -webkit-tap-highlight-color:transparent
}

button {
  cursor:pointer
}

img {
  max-width:100%;
  display:block
}

a,button {
  touch-action:manipulation
}

a:focus-visible,button:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px;
  border-radius:2px
}

.wrap {
  width:min(1370px,calc(100% - 112px));
  margin-inline:auto
}

.accent {
  color:var(--accent)
}

.skip-link {
  position:fixed;
  top:8px;
  left:8px;
  transform:translateY(-180%);
  z-index:10;
  background:var(--ink);
  color:white;
  padding:12px
}

.skip-link:focus {
  transform:none
}

.header {
  min-height:84px;
  display:flex;
  align-items:center;
  gap:68px;
  border-bottom:1px solid var(--line)
}

.wordmark {
  font-weight:850;
  font-size:44px;
  letter-spacing:-2.5px;
  line-height:1;
  white-space:nowrap
}

.wordmark span {
  color:var(--accent)
}

.nav {
  display:flex;
  align-items:stretch;
  gap:38px;
  align-self:stretch
}

.nav a {
  position:relative;
  display:flex;
  align-items:center;
  font-size:16px;
  color:#354e62
}

.nav a:hover,.nav a.active {
  color:var(--ink)
}

.nav a.active {
  font-weight:600
}

.nav a.active:after {
  position:absolute;
  content:'';
  bottom:14px;
  height:2px;
  left:0;
  right:0;
  background:var(--accent)
}

.search-link {
  display:flex;
  align-items:center;
  gap:13px;
  margin-left:auto;
  font-size:16px
}

.search-link svg {
  width:23px;
  height:23px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6
}

.menu-toggle {
  display:none
}

.intro {
  display:grid;
  grid-template-columns:1.9fr 1fr;
  gap:46px;
  align-items:end;
  padding:40px 0 36px
}

.intro h1 {
  font-size:clamp(55px,6.45vw,96px);
  line-height:.99;
  letter-spacing:-5px;
  font-weight:800;
  margin:0
}

.intro h1>span {
  display:block
}

.intro p {
  font-size:28px;
  line-height:1.35;
  color:var(--muted);
  margin:0 0 12px;
  max-width:460px;
  letter-spacing:-.8px
}

.lead-layout {
  display:grid;
  grid-template-columns:1.96fr 1fr;
  gap:44px
}

.lead-story {
  position:relative;
  display:block;
  border-radius:var(--radius);
  overflow:hidden;
  min-width:0;
  min-height:510px;
  background:var(--ink);
  isolation:isolate
}

.lead-story img {
  width:100%;
  height:100%;
  position:absolute;
  inset:0;
  object-fit:cover;
  object-position:center 42%;
  transition:transform .5s
}

.lead-story:after {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 22%,rgba(5,22,35,.12) 43%,rgba(5,22,35,.92) 100%);
  z-index:0
}

.lead-story:hover img {
  transform:scale(1.025)
}

.lead-story:focus-visible {
  outline-offset:4px
}

.lead-story-content {
  position:absolute;
  z-index:1;
  left:28px;
  right:28px;
  bottom:30px;
  color:white
}

.category {
  color:var(--accent-dark);
  font-size:12px;
  font-weight:750;
  letter-spacing:1px;
  text-transform:uppercase
}

.lead-story .category {
  color:#ff9169;
  font-size:14px;
  letter-spacing:.5px
}

.lead-story h2 {
  text-wrap:balance;
  font-size:40px;
  line-height:1.16;
  letter-spacing:-1.3px;
  margin:11px 0 18px;
  font-weight:750;
  max-width:760px
}

.read-story {
  display:flex;
  align-items:center;
  gap:14px;
  font-size:16px
}

.arrow {
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  flex-shrink:0;
  vertical-align:middle;
  transition:transform .2s
}

.lead-story:hover .arrow,.text-link:hover .arrow,.topic-links a:hover .arrow {
  transform:translateX(4px)
}

.reading-list {
  padding-top:18px
}

.reading-list:before {
  display:block;
  content:'';
  background:var(--accent);
  width:54px;
  height:2px;
  margin-bottom:19px
}

.reading-list h2 {
  font-size:38px;
  line-height:1.12;
  letter-spacing:-1.5px;
  margin:0 0 18px;
  font-weight:750
}

.reading-list ol {
  list-style:none;
  padding:0;
  margin:0
}

.reading-list li+li {
  border-top:1px solid var(--line)
}

.reading-list a {
  display:grid;
  grid-template-columns:58px 1fr;
  gap:23px;
  padding:24px 0 27px
}

.rank {
  font-size:42px;
  line-height:1;
  color:var(--slate);
  font-weight:750;
  letter-spacing:-2px
}

.reading-story .category {
  display:block;
  margin:0 0 7px
}

.reading-story h3 {
  font-size:23px;
  line-height:1.32;
  letter-spacing:-.65px;
  font-weight:650;
  margin:0
}

.reading-list a:hover h3,.story:hover h3 {
  color:var(--accent-dark)
}

.perspectives {
  border-top:1px solid var(--line);
  margin-top:40px;
  padding-top:32px;
  padding-bottom:58px
}

.section-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px
}

.section-heading h2,.topics h2 {
  font-size:38px;
  line-height:1.18;
  letter-spacing:-1.4px;
  font-weight:750;
  margin:0
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-size:15px;
  white-space:nowrap
}

.text-link .arrow {
  color:var(--accent-dark)
}

.filters {
  display:flex;
  gap:36px;
  border-bottom:1px solid var(--line);
  margin:26px 0 24px
}

.filters button {
  position:relative;
  border:0;
  background:none;
  padding:0 2px 16px;
  font-size:15px;
  font-weight:550;
  color:var(--ink);
  white-space:nowrap
}

.filters button:hover {
  color:var(--accent-dark)
}

.filters button.selected {
  color:var(--accent-dark);
  font-weight:650
}

.filters button.selected:after {
  content:'';
  height:3px;
  position:absolute;
  bottom:-1px;
  background:var(--accent);
  left:0;
  right:0
}

.story-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:40px 28px
}

.story {
  min-width:0
}

.story-image {
  overflow:hidden;
  border-radius:var(--radius);
  aspect-ratio:1.78;
  background:#edf1f4
}

.story-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .4s
}

.story:hover .story-image img {
  transform:scale(1.035)
}

.story-meta {
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  color:var(--muted);
  font-size:11px;
  line-height:1.6;
  margin-top:16px;
  font-weight:550;
  text-transform:uppercase;
  letter-spacing:.2px
}

.story-meta>span+span:before,.story-meta time:before {
  content:'|';
  color:#9daab5;
  margin-right:12px;
  font-weight:400
}

.story h3 {
  font-size:24px;
  line-height:1.27;
  font-weight:700;
  letter-spacing:-.6px;
  margin:9px 0 0;
  transition:color .15s
}

.more-area {
  text-align:center;
  margin-top:38px
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:15px 24px;
  border-radius:4px;
  min-height:50px;
  font-size:16px;
  line-height:1.3;
  font-weight:550;
  transition:background .15s,color .15s
}

.button-outline {
  border:1px solid var(--accent-dark);
  background:transparent;
  color:var(--accent-dark)
}

.button-outline:hover {
  background:#fff4ef
}

.button[hidden] {
  display:none
}

#story-status {
  font-size:12px;
  color:var(--muted);
  margin:14px 0 0
}

.report-band {
  background:var(--ink);
  color:white;
  padding:44px 0
}

.report-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  align-items:center
}

.report-copy h2 {
  font-size:48px;
  line-height:1.07;
  letter-spacing:-1.8px;
  font-weight:750;
  margin:0 0 17px
}

.report-copy p {
  font-size:20px;
  line-height:1.5;
  max-width:540px;
  margin:0 0 22px;
  color:#d6e1e9
}

.button-solid {
  background:var(--accent);
  border:1px solid var(--accent);
  color:var(--ink);
  font-weight:650
}

.button-solid:hover {
  background:#ff8a5a
}

.report-story {
  display:block;
  min-width:0
}

.report-story img {
  width:100%;
  height:220px;
  object-fit:contain;
  background:#0d2034;
  border-radius:var(--radius)
}

.report-story h3 {
  font-size:23px;
  line-height:1.3;
  letter-spacing:-.5px;
  margin:14px 0 0;
  font-weight:650
}

.report-story:hover h3 {
  color:#ffad8b
}

.topics {
  padding-top:44px;
  padding-bottom:46px
}

.topics h2 {
  font-size:34px;
  margin-bottom:28px
}

.topic-links {
  display:flex;
  align-items:center
}

.topic-links a {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:7px 28px;
  flex:1;
  font-size:17px;
  font-weight:550;
  min-height:40px
}

.topic-links a:first-child {
  padding-left:0;
  flex:1.3
}

.topic-links a:last-child {
  padding-right:0
}

.topic-links a+a {
  border-left:1px solid var(--line)
}

.topic-links .arrow {
  color:var(--accent-dark)
}

.footer {
  background:var(--ink);
  color:white;
  padding:30px 0 24px
}

.footer-main {
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:16px 26px
}

.footer .wordmark {
  font-size:32px;
  color:var(--accent);
  letter-spacing:-1.5px
}

.footer p {
  margin:0;
  font-size:14px;
  color:#e0e7ed
}

.footer nav {
  display:flex;
  gap:28px;
  font-size:13px
}

.footer nav a:hover {
  color:#ffad8b
}

.footer small {
  grid-column:1/-1;
  font-size:11px;
  color:#cfdae3;
  margin-top:2px
}

@media(min-width:1700px) {
  .intro h1 {
    font-size:100px
  }
  .lead-story {
    min-height:550px
  }
}

@media(max-width:1180px) {
  .wrap {
    width:calc(100% - 72px)
  }
  .header {
    gap:44px
  }
  .nav {
    gap:28px
  }
  .wordmark {
    font-size:38px
  }
  .intro h1 {
    font-size:72px;
    letter-spacing:-3.8px
  }
  .intro p {
    font-size:23px
  }
  .lead-layout {
    gap:30px;
    grid-template-columns:1.65fr 1fr
  }
  .lead-story {
    min-height:470px
  }
  .lead-story h2 {
    font-size:32px
  }
  .reading-list h2 {
    font-size:32px
  }
  .reading-list a {
    gap:12px;
    grid-template-columns:44px 1fr;
    padding:24px 0
  }
  .reading-story h3 {
    font-size:20px
  }
  .rank {
    font-size:36px
  }
  .report-layout {
    gap:40px
  }
  .topic-links a {
    font-size:15px;
    padding-inline:20px
  }
  .story h3 {
    font-size:21px
  }
  .story-meta {
    gap:7px;
    font-size:10px
  }
  .story-meta time:before,.story-meta>span+span:before {
    margin-right:7px
  }
}

@media(max-width:900px) {
  .wrap {
    width:calc(100% - 48px)
  }
  .header {
    gap:30px
  }
  .nav {
    gap:24px
  }
  .intro {
    grid-template-columns:1.6fr 1fr;
    gap:24px
  }
  .intro h1 {
    font-size:58px;
    letter-spacing:-3px
  }
  .intro p {
    font-size:19px
  }
  .lead-layout {
    grid-template-columns:1.55fr 1fr;
    gap:24px
  }
  .lead-story {
    min-height:435px
  }
  .lead-story-content {
    left:22px;
    right:22px;
    bottom:25px
  }
  .lead-story h2 {
    font-size:29px
  }
  .reading-list {
    padding-top:10px
  }
  .reading-list h2 {
    font-size:28px
  }
  .reading-list a {
    padding:18px 0;
    gap:10px;
    grid-template-columns:32px 1fr
  }
  .rank {
    font-size:29px
  }
  .reading-story h3 {
    font-size:18px
  }
  .category {
    font-size:11px
  }
  .story-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .section-heading h2 {
    font-size:34px
  }
  .filters {
    gap:30px;
    overflow-x:auto;
    padding-top:5px
  }
  .report-copy h2 {
    font-size:39px
  }
  .report-copy p {
    font-size:17px
  }
  .report-story h3 {
    font-size:20px
  }
  .topic-links {
    flex-wrap:wrap;
    gap:20px 0
  }
  .topic-links a,.topic-links a:first-child {
    flex:0 0 33.333%;
    padding-inline:16px
  }
  .topic-links a:nth-child(4) {
    border-left:0
  }
  .topics h2 {
    font-size:32px
  }
  .footer-main {
    grid-template-columns:auto 1fr
  }
  .footer nav {
    grid-column:1/-1;
    gap:28px;
    margin-top:8px
  }
}

@media(max-width:650px) {
  .wrap {
    width:calc(100% - 40px)
  }
  .header {
    min-height:76px;
    gap:22px;
    position:relative;
    flex-wrap:wrap
  }
  .wordmark {
    font-size:35px;
    letter-spacing:-1.8px
  }
  .menu-toggle {
    margin-left:auto;
    display:flex;
    flex-direction:column;
    gap:6px;
    width:30px;
    height:42px;
    justify-content:center;
    padding:5px;
    border:0;
    background:none;
    color:var(--ink)
  }
  .menu-toggle span {
    display:block;
    width:22px;
    height:1.5px;
    background:currentColor;
    transition:transform .2s
  }
  .menu-toggle[aria-expanded=true] span:first-child {
    transform:translateY(3.75px) rotate(45deg)
  }
  .menu-toggle[aria-expanded=true] span:last-child {
    transform:translateY(-3.75px) rotate(-45deg)
  }
  .search-link {
    margin-left:0;
    gap:0
  }
  .search-link span {
    display:none
  }
  .search-link svg {
    width:21px;
    height:21px
  }
  .nav {
    display:none;
    flex:0 0 100%;
    order:4;
    gap:0;
    padding:0 0 14px
  }
  .nav.open {
    display:flex;
    flex-direction:column;
    align-items:stretch
  }
  .nav a {
    padding:12px 0
  }
  .nav a.active:after {
    bottom:4px;
    width:35px;
    right:auto
  }
  .intro {
    display:block;
    padding:32px 0 25px
  }
  .intro h1 {
    font-size:clamp(43px,10.8vw,64px);
    line-height:1.03;
    letter-spacing:-2.5px
  }
  .intro p {
    font-size:18px;
    line-height:1.5;
    letter-spacing:-.3px;
    margin:20px 0 0;
    max-width:380px
  }
  .lead-layout {
    display:block
  }
  .lead-story {
    min-height:450px
  }
  .lead-story img {
    object-position:52% center
  }
  .lead-story-content {
    left:20px;
    right:20px;
    bottom:24px
  }
  .lead-story h2 {
    font-size:30px;
    line-height:1.16;
    letter-spacing:-.9px;
    margin-top:10px
  }
  .lead-story .category {
    font-size:12px
  }
  .read-story {
    font-size:14px
  }
  .reading-list {
    padding-top:30px
  }
  .reading-list:before {
    margin-bottom:14px;
    width:42px
  }
  .reading-list h2 {
    font-size:30px;
    letter-spacing:-1px;
    margin-bottom:5px
  }
  .reading-list a {
    grid-template-columns:40px 1fr;
    gap:14px;
    padding:22px 0
  }
  .rank {
    font-size:32px
  }
  .reading-story h3 {
    font-size:20px;
    line-height:1.3
  }
  .reading-story .category {
    font-size:10px
  }
  .perspectives {
    margin-top:12px;
    padding-top:28px;
    padding-bottom:35px
  }
  .section-heading {
    align-items:flex-start;
    gap:16px
  }
  .section-heading h2 {
    font-size:30px;
    letter-spacing:-1.2px
  }
  .section-heading .text-link {
    font-size:12px;
    gap:6px;
    padding-top:8px
  }
  .text-link .arrow {
    width:16px;
    height:16px
  }
  .filters {
    gap:26px;
    margin-top:22px;
    margin-bottom:22px;
    scrollbar-width:thin
  }
  .filters button {
    font-size:14px;
    padding-bottom:13px
  }
  .story-grid {
    grid-template-columns:1fr;
    gap:30px
  }
  .story h3 {
    font-size:23px;
    line-height:1.25;
    letter-spacing:-.6px
  }
  .story-meta {
    font-size:10px;
    margin-top:13px;
    gap:10px
  }
  .story-meta time:before,.story-meta>span+span:before {
    margin-right:10px
  }
  .more-area {
    margin-top:30px
  }
  .button {
    font-size:14px;
    padding:14px 22px;
    min-height:48px
  }
  .report-band {
    padding:35px 0
  }
  .report-layout {
    display:block
  }
  .report-copy h2 {
    font-size:42px;
    letter-spacing:-1.5px
  }
  .report-copy p {
    font-size:18px;
    margin-bottom:20px
  }
  .report-story {
    margin-top:30px
  }
  .report-story img {
    height:auto;
    max-height:250px;
    object-fit:contain
  }
  .report-story h3 {
    font-size:22px
  }
  .topics {
    padding-top:32px;
    padding-bottom:30px
  }
  .topics h2 {
    font-size:30px;
    letter-spacing:-1.2px;
    margin-bottom:18px
  }
  .topic-links {
    display:block
  }
  .topic-links a,.topic-links a:first-child,.topic-links a:last-child {
    padding:15px 0;
    min-height:52px;
    font-size:17px;
    border-left:0;
    border-bottom:1px solid var(--line)
  }
  .footer {
    padding:28px 0
  }
  .footer-main {
    display:flex;
    align-items:flex-start;
    flex-direction:column;
    gap:16px
  }
  .footer .wordmark {
    font-size:32px
  }
  .footer p {
    font-size:13px
  }
  .footer nav {
    gap:24px;
    font-size:12px;
    flex-wrap:wrap;
    margin-top:8px
  }
  .footer small {
    margin-top:5px
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important
  }
}

@media(max-width:380px) {
  .section-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:8px
  }
  .section-heading .text-link {
    padding-top:0
  }
}

