/* Smooth scroll, film grain and the press section's 50/50 layout. */
body::after {
  content: "";
  position: fixed;
  inset: -50%;
  z-index: 9999;
  pointer-events: none;
  opacity: .03;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain 1s steps(6) infinite;
}
@keyframes grain {
  0%, 100% { transform: translate(0, 0); }
  20% { transform: translate(-5%, 3%); }
  40% { transform: translate(4%, -6%); }
  60% { transform: translate(-3%, 5%); }
  80% { transform: translate(6%, -2%); }
}

.press-cols { display: none; }
@media screen and (min-width: 992px) {
  .vw-pressholder { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
  .press-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; height: 100%; overflow: hidden; padding-right: 16px; }
  .press-col { height: 100%; }
  .press-track { display: flex; flex-direction: column; gap: 16px; will-change: transform; }
  .press-img { display: block; width: 100%; aspect-ratio: 740 / 1002; object-fit: cover; border-radius: 4px; background: var(--black); }
}

@media (prefers-reduced-motion: reduce) {
  body::after { animation: none; }
}

/* Roles slider: continuous drift, drag/swipe with momentum. */
.roles { overflow: hidden; cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.roles.is-dragging { cursor: grabbing; }
.roles-track { display: flex; will-change: transform; }
.roles-item { flex: 0 0 33.3333%; width: auto; }
@media screen and (max-width: 991px) { .roles-item { flex-basis: 50%; } }
@media screen and (max-width: 767px) { .roles-item { flex-basis: 85%; height: 480px; padding-right: 1rem; } }

/* Page transitions: native cross-page View Transitions; old page lifts out, new page settles in. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: page-out .3s cubic-bezier(.4, 0, 1, 1) both; }
::view-transition-new(root) { animation: page-in .55s cubic-bezier(.16, 1, .3, 1) .05s both; }
@keyframes page-out { to { opacity: 0; transform: translateY(-12px); filter: blur(2px); } }
@keyframes page-in { from { opacity: 0; transform: translateY(18px); } }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}

/* Press cards: image keeps its own 740x1002 shape at every width instead of stretching to a fixed card height. */
.newsitem, .newsitem-2 { min-height: 0 !important; }
.newsimage { flex: none; aspect-ratio: 740 / 1002; }

/* Mobile menu: full-screen black sheet, serif links in the hero's uppercase voice, drawn burger that folds into an X. */
@media screen and (max-width: 991px) {
  .navbar-v2 { transition: background-color .5s cubic-bezier(.16, 1, .3, 1); }
  .navbar-v2 .logo-v2, .navbar-v2 .menu-button { position: relative; z-index: 2; }
  .navbar-v2 .logo-v2 { transition: color .5s cubic-bezier(.16, 1, .3, 1); }

  .navbar-v2 .menu-button { width: 44px; height: 44px; padding: 0; background: transparent !important; cursor: pointer; }
  .navbar-v2 .menu-button .w-icon-nav-menu { display: none; }
  .navbar-v2 .menu-button::before, .navbar-v2 .menu-button::after {
    content: ""; position: absolute; left: 11px; width: 22px; height: 1.5px; background: var(--black);
    transition: transform .6s cubic-bezier(.16, 1, .3, 1), background-color .5s;
  }
  .navbar-v2 .menu-button::before { top: 18px; }
  .navbar-v2 .menu-button::after { top: 25px; transform: translateX(4.4px) scaleX(.6); }
  .navbar-v2 .menu-button:focus-visible { outline: 1px solid currentColor; outline-offset: 2px; }

  .navbar-v2 .nav-menu-2 {
    display: flex !important; position: fixed; inset: 0; z-index: 1; flex-direction: column; justify-content: flex-end; align-items: stretch; gap: 0; text-align: left;
    padding: 96px 1.5rem max(2.5rem, env(safe-area-inset-bottom)); background: var(--black); border: 0;
    visibility: hidden; clip-path: inset(0 0 100% 0);
    transition: clip-path .7s cubic-bezier(.76, 0, .24, 1), visibility 0s .7s;
  }
  .navbar-v2 .navlink-v2 {
    display: flex; align-items: center; gap: .75rem; margin: 0; padding: 1.1rem 0; border-radius: 0; border-bottom: 1px solid var(--strokeblack);
    color: var(--white); background: none !important; font-family: "JM 72 Book", "Times New Roman", serif; font-weight: 400;
    font-size: clamp(2rem, 9vw, 3rem); line-height: 1; letter-spacing: .01em; text-transform: uppercase;
    opacity: 0; transform: translateY(1.25rem); filter: blur(4px);
    transition: opacity .3s, transform .3s, filter .3s, color .2s;
  }
  .navbar-v2 .navlink-v2:first-child { border-top: 1px solid var(--strokeblack); }
  .navbar-v2 .navlink-v2.w--current::after { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--red); }
  .navbar-v2 .navlink-v2:focus-visible { outline: 1px solid var(--white); outline-offset: 4px; }

  html.menu-open .navbar-v2 { background-color: var(--black); }
  html.menu-open .navbar-v2 .logo-v2 { color: var(--white); }
  html.menu-open .navbar-v2 .menu-button::before { background: var(--white); transform: translateY(3.5px) rotate(45deg); }
  html.menu-open .navbar-v2 .menu-button::after { background: var(--white); transform: translateY(-3.5px) rotate(-45deg); }
  html.menu-open .navbar-v2 .nav-menu-2 { visibility: visible; clip-path: inset(0); transition: clip-path .8s cubic-bezier(.76, 0, .24, 1); }
  html.menu-open .navbar-v2 .navlink-v2 {
    opacity: 1; transform: none; filter: none;
    transition: opacity .8s cubic-bezier(.16, 1, .3, 1), transform .9s cubic-bezier(.16, 1, .3, 1), filter .8s, color .2s;
  }
  html.menu-open .navbar-v2 .navlink-v2:nth-child(1) { transition-delay: .3s; }
  html.menu-open .navbar-v2 .navlink-v2:nth-child(2) { transition-delay: .36s; }
  html.menu-open .navbar-v2 .navlink-v2:nth-child(3) { transition-delay: .42s; }
  html.menu-open .navbar-v2 .navlink-v2:nth-child(4) { transition-delay: .48s; }
  html.menu-open .navbar-v2 .navlink-v2:nth-child(5) { transition-delay: .54s; }
  html.menu-open .navbar-v2:has(.navlink-v2:active) .navlink-v2:not(:active) { color: #8a8a8a; }
}
@media (prefers-reduced-motion: reduce) {
  .navbar-v2 .nav-menu-2, .navbar-v2 .navlink-v2 { transition: none !important; filter: none !important; transform: none !important; }
}
