/* Transformers: Earth Wars — marketing site
   Breakpoints: 767 (phone), 834 (hamburger nav), 912, 1112, 1600+ */

@font-face {
  font-family: "Saira Condensed";
  font-weight: 400;
  font-display: swap;
  src: url("fonts/saira-condensed-latin-ext-400.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Saira Condensed";
  font-weight: 400;
  font-display: swap;
  src: url("fonts/saira-condensed-latin-400.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Saira Semi Condensed";
  font-weight: 700;
  font-display: swap;
  src: url("fonts/saira-semi-condensed-latin-ext-700.woff2") format("woff2");
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Saira Semi Condensed";
  font-weight: 700;
  font-display: swap;
  src: url("fonts/saira-semi-condensed-latin-700.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --font-body: "Helvetica Neue", Helvetica, Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --font-display-bold: "Saira Semi Condensed", "Arial Narrow", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --font-display: "Saira Condensed", "Arial Narrow", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  --accent: #05a3cf;
  --glow: #feb42d;
  --gutter: 10%;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  overflow-x: clip;
}

body {
  margin: 0;
  overflow-x: clip;
  background: #07080d;
  color: #fff;
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
}

img {
  max-width: 100%;
}

button {
  font: inherit;
  color: inherit;
}

a:focus-visible,
button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

/* ---- header ------------------------------------------------------------- */

.site-header {
  position: absolute;
  z-index: 20;
  top: 0;
  left: 0;
  display: grid;
  grid-template-columns: 1fr 3fr 1fr;
  width: 100%;
  animation: slide-down 1s ease-out;
}

.social {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
}
.social a {
  display: block;
  width: 30px;
  height: 30px;
  color: #fff;
  transition: color 0.2s;
}
.social svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentColor;
}
.social--header {
  align-items: center;
  padding: 8px 3px;
}
.social--header a {
  margin: 8.5px;
  width: 28px;
  height: 28px;
}
.social--header a:hover {
  color: #838383;
}

.nav {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  background: center / contain no-repeat;
  text-align: center;
  text-transform: uppercase;
}
.nav a {
  display: inline-block;
  margin-right: 30px;
  padding: 15px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0.2em;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s;
}
.nav a:last-child {
  margin-right: 0;
}
.nav a:hover {
  color: var(--accent);
}

/* Webstore call-to-action: the one highlighted control in the header. */
.webstore {
  justify-self: end;
  align-self: center;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-right: 16px;
  padding: 11px 18px 11px 14px;
  background: var(--glow);
  color: #14110a;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.16em;
  text-decoration: none;
  text-transform: uppercase;
  white-space: nowrap;
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
  transition: background 0.2s, transform 0.2s;
}
.webstore svg,
.nav__store svg {
  flex: none;
  width: 18px;
  height: 18px;
}
.webstore:hover {
  background: #ffc95a;
  transform: translateY(-1px);
}
.webstore:focus-visible {
  outline-color: #fff;
}
.nav .nav__store {
  display: none; /* desktop uses the header button; shown in the phone menu below */
}

.hamburger {
  display: none;
  position: absolute;
  z-index: 2;
  top: 6px;
  right: 8px;
  width: 44px;
  height: 44px;
  padding: 12px 9px;
  border: 0;
  background: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.hamburger span {
  display: block;
  height: 3px;
  margin-bottom: 6px;
  background: #fff;
  transition: transform 0.2s linear, opacity 0.2s linear;
}
.hamburger[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(9px) rotate(45deg);
}
.hamburger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}
.hamburger[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-9px) rotate(-45deg);
}

@media (min-width: 835px) and (max-width: 1120px) {
  .nav {
    height: 4vw;
    min-height: 44px;
  }
}
@media (max-width: 1200px) {
  .nav a {
    margin-right: 25px;
    padding: 17.5px 3px;
  }
}
@media (max-width: 912px) {
  .nav a {
    margin-right: 5px;
    padding-left: 1vw;
  }
}
@media (min-width: 1280px) {
  .nav {
    top: -4px;
    width: 61vw;
    margin-left: 3vw;
  }
}
@media (min-width: 1600px) {
  .nav {
    width: 39vw;
    margin-left: 11vw;
  }
}

@media (max-width: 1120px) {
  .webstore {
    margin-right: 10px;
    padding: 9px 13px 9px 10px;
    letter-spacing: 0.12em;
  }
}

@media (max-width: 834px) {
  .site-header {
    display: flex;
    align-items: center;
  }
  .webstore {
    margin-left: auto;
    margin-right: 60px; /* clears the menu button */
  }
  .nav .nav__store {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--glow);
  }
  .hamburger {
    display: block;
  }
  .nav {
    position: fixed;
    top: 0;
    right: 0;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    width: 50vw;
    height: 100vh;
    height: 100dvh;
    padding-top: 70px;
    background: rgba(0, 0, 0, 0.9) !important; /* overrides the inline desktop nav plate */
    visibility: hidden;
    transform: translateX(100%);
    transition: transform 0.35s, visibility 0s 0.35s;
  }
  .nav.is-open {
    visibility: visible;
    transform: none;
    transition: transform 0.35s;
  }
  .nav a {
    margin: 0;
    padding: 17.5px 7vw;
    font-size: 14px;
  }
}
@media (max-width: 767px) {
  .nav {
    width: 100vw;
  }
}
/* Phones: tighten the social icons so the webstore button always fits beside them. */
@media (max-width: 480px) {
  .social--header a {
    width: 24px;
    height: 24px;
    margin: 4px;
  }
  .webstore {
    font-size: 11px;
  }
}
@media (max-width: 340px) {
  .social--header {
    display: none; /* still available in the footer */
  }
}

/* ---- hero --------------------------------------------------------------- */

.hero {
  position: relative;
  overflow: hidden;
  min-height: 50vw;
  background: #05060f center / 140% no-repeat;
}
.hero__logo {
  display: flex;
  justify-content: center;
  padding: 6% 0;
}
.hero__logo img {
  width: 50vw;
  max-width: 692px;
}

/* Both character cut-outs are full-width transparent PNGs layered over the background. */
.hero__char {
  position: absolute;
  width: 100%;
  pointer-events: none;
}
.hero__char img {
  position: absolute;
  top: 0;
  width: 100%;
  max-width: none;
  transform: translateY(-200px);
}
.hero__char--left img {
  left: -2vw;
  animation: slide-in-left 1s ease-out;
}
.hero__char--right img {
  top: -1vw;
  right: -2vw;
  animation: slide-in-right 1s ease-out;
}

.hero__cta {
  position: absolute;
  top: 31%;
  width: 100%;
}
.hero__download {
  display: flex;
  justify-content: center;
}
.hero__download img {
  position: absolute;
  top: 12vw;
  width: 40%;
}
.hero__stores {
  position: relative;
  top: 23vw;
  display: flex;
  justify-content: center;
  gap: 15px;
  width: 30%;
  max-width: 540px;
  margin: 0 auto;
}
.store {
  display: block;
  transition: transform 0.2s;
}
.store:hover {
  transform: scale(1.04);
}
.store img {
  display: block;
  width: 100%;
}
.hero__stores .store {
  flex: 0 1 250px;
  min-width: 0;
}

@media (min-width: 1600px) {
  .hero__char img {
    width: 85%;
    top: 1vw;
  }
  .hero__char--left img {
    left: -2vw;
  }
  .hero__download img {
    top: 14vw;
    width: 29%;
  }
  .hero__stores .store {
    flex-basis: 280px;
  }
}
@media (min-width: 1800px) {
  .hero__cta {
    top: 28%;
  }
}
@media (max-width: 1024px) {
  .hero__char--left img {
    top: 5vw;
    left: -1vw;
  }
  .hero__char--right img {
    top: 4vw;
  }
}
@media (max-width: 991px) {
  .hero__logo img {
    width: 70vw;
    max-width: 100%;
  }
}
@media (max-width: 912px) {
  .hero {
    min-height: 62vw;
  }
  .hero__download img {
    width: 60%;
  }
  .hero__stores {
    top: 30vw;
    width: 62%;
  }
}
@media (max-width: 767px) {
  .hero {
    min-height: 120vw;
    padding-top: 7vw;
  }
  .hero__logo img {
    width: 90%;
    padding-top: 2%;
  }
  .hero__char {
    top: 42vw;
    transform: scale(1.5);
  }
  .hero__char--left {
    left: 6vw;
  }
  .hero__char--right {
    right: -1vw;
  }
  .hero__char--left img {
    top: 40vw;
    left: -2vw;
  }
  .hero__char--right img {
    top: 40vw;
    right: -2vw;
  }
  .hero__download img {
    top: 24vw;
    width: 85%;
  }
  .hero__stores {
    top: 54vw;
  }
}
@media (max-width: 540px) {
  .hero__stores {
    top: 55vw;
    width: 70%;
  }
}
@media (max-width: 426px) {
  .hero__char--left {
    left: 9vw;
  }
  .hero__char--left img,
  .hero__char--right img {
    right: 1vw;
  }
  .hero__stores {
    top: 60vw;
  }
}
@media (max-width: 360px) {
  .hero__char--left img,
  .hero__char--right img {
    top: 44vw;
  }
}

/* ---- video -------------------------------------------------------------- */

.video {
  position: relative;
  overflow: hidden;
  min-height: 55vw;
}
.video__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.video__content {
  position: relative;
  padding: 7vw var(--gutter) 0;
}
.video__heading {
  width: 73%;
  margin: 0.67em 0 0.1rem;
  font-family: var(--font-display-bold);
  font-size: 5.20833vw;
  font-weight: 700;
  line-height: 0.91;
  letter-spacing: 0.075em;
  text-transform: uppercase;
  text-wrap: balance;
}
.video__text {
  margin: 7px 0 9px;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.15;
}
.video__thumb {
  position: relative;
  display: block;
  width: 310px;
  max-width: 100%;
  margin-top: 0.6rem;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.video__poster {
  display: block;
  width: 100%;
}
.video__play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 42%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
}
.video__circle,
.video__triangle {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.35s linear;
}
.video__triangle {
  transform: scale(0.55);
}
.video__pulse {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 0 var(--glow);
  transition: all 0.7s linear;
}
.video__thumb:hover .video__circle,
.video__thumb:focus-visible .video__circle {
  transform: scale(0.9);
}
.video__thumb:hover .video__pulse,
.video__thumb:focus-visible .video__pulse {
  opacity: 0;
  transform: scale(1.5);
  box-shadow: 0 0 50px var(--glow);
}

@media (max-width: 1112px) {
  .video__heading {
    width: 100%;
    font-size: 64px;
  }
}
@media (max-width: 912px) {
  .video__content {
    padding-top: 2vw;
  }
}
@media (max-width: 834px) {
  .video__text {
    font-size: 15px;
  }
}
@media (max-width: 767px) {
  .video {
    min-height: 119vw;
  }
  .video__bg {
    object-position: 35% 0;
  }
  .video__content {
    padding-top: 6vw;
  }
  .video__heading {
    width: 84%;
    font-size: 8vw;
  }
}
@media (max-width: 540px) {
  .video__thumb {
    width: 247px;
  }
}
@media (max-width: 420px) {
  .video__thumb {
    width: 184px;
  }
}
@media (max-width: 320px) {
  .video__thumb {
    width: 130px;
  }
}

/* ---- video modal -------------------------------------------------------- */

.modal {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 4vw;
  background: rgba(0, 0, 0, 0.88);
}
.modal__frame {
  position: relative;
  width: min(100%, 1100px, 150vh);
  aspect-ratio: 16 / 9;
  background: #000;
  box-shadow: 0 0 40px rgba(0, 0, 0, 0.8);
}
.modal__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.modal__close {
  position: absolute;
  top: -44px;
  right: -4px;
  width: 40px;
  height: 40px;
  border: 0;
  background: none;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
}
.modal__close:hover {
  color: var(--accent);
}

/* ---- carousels ---------------------------------------------------------- */

.carousel {
  position: relative;
  overflow: hidden;
  touch-action: pan-y;
  user-select: none;
  -webkit-user-select: none;
}
.carousel__viewport {
  overflow: hidden;
}
.carousel__track {
  display: flex;
  transition: transform 0.5s ease;
  will-change: transform;
}
.carousel__track.is-dragging {
  transition: none;
  cursor: grabbing;
}
.slide {
  position: relative;
  flex: 0 0 100%;
  min-height: 62vw;
  overflow: hidden;
}
.slide__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  -webkit-user-drag: none;
}
.slide__text {
  position: absolute;
  z-index: 1;
  inset: 0 0 auto 0;
  padding-right: 4%;
}
.slide__title {
  max-width: 100%;
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: 90px;
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: 0.075em;
  text-transform: uppercase;
  overflow-wrap: break-word; /* no-JS fallback; main.js shrinks long words to fit */
  text-wrap: balance;
}
.slide__desc {
  width: 347px;
  max-width: 100%;
  margin: 0;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.5;
}

/* Text placement per slide: each illustration leaves a different area clear. */
.carousel1-s1 .slide__text { top: 5rem; padding-top: 9%; padding-left: 58%; }
.carousel1-s2 .slide__text { top: 2rem; padding-top: 9%; padding-left: 57%; }
.carousel1-s3 .slide__text { top: 3rem; padding-top: 8%; padding-left: 10%; padding-right: 50%; }
.carousel2-s1 .slide__text { top: 2rem; padding-top: 8%; padding-left: 10%; padding-right: 50%; }
.carousel2-s2 .slide__text { top: 2rem; padding-top: 17%; padding-left: 11%; padding-right: 50%; }
.carousel2-s3 .slide__text { top: 9rem; padding-left: 10%; padding-right: 50%; }

.carousel__arrow {
  position: absolute;
  z-index: 2;
  top: 50%;
  width: 56px;
  height: 56px;
  padding: 0;
  border: 0;
  background: none;
  opacity: 0;
  cursor: pointer;
  transform: translateY(-50%);
  transition: opacity 0.35s, margin 0.35s;
}
.carousel__arrow svg {
  display: block;
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.6));
}
.carousel__arrow--prev {
  left: 12px;
}
.carousel__arrow--next {
  right: 12px;
}
.carousel:hover .carousel__arrow,
.carousel__arrow:focus-visible {
  opacity: 1;
}
.carousel__arrow--prev:hover {
  margin-left: -8px;
}
.carousel__arrow--next:hover {
  margin-right: -8px;
}

.carousel__dots {
  position: absolute;
  z-index: 2;
  bottom: 13px;
  left: 0;
  display: flex;
  justify-content: center;
  width: 100%;
}
.carousel__dots button {
  width: 30px;
  height: 20px;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.carousel__dots button::before {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  margin: 0 auto;
  border-radius: 50%;
  background: #000;
  opacity: 0.25;
  transition: opacity 0.2s, background 0.2s;
}
.carousel__dots button:hover::before {
  opacity: 0.6;
}
.carousel__dots button[aria-current="true"]::before {
  background: #fff;
  opacity: 0.85;
}

@media (min-width: 1300px) {
  .carousel2-s3 .slide__text { padding-top: 15%; }
}
@media (min-width: 1792px) {
  .carousel1-s1 .slide__text { padding-top: 8%; }
  .slide__desc { width: 469px; }
}
@media (max-width: 1112px) {
  .slide__title { font-size: 58px; }
  .slide__desc { width: 290px; font-size: 15px; }
  .carousel1-s1 .slide__text { padding-top: 0; }
  .carousel1-s2 .slide__text { top: 3rem; padding-top: 8%; }
  .carousel1-s3 .slide__text { padding-top: 7%; }
}
@media (max-width: 834px) {
  .carousel1-s2 .slide__text { top: 0; }
  .carousel1-s3 .slide__text { padding-top: 0; }
}
@media (max-width: 768px) {
  .carousel2-s1 .slide__text { padding-top: 3%; }
  .carousel2-s3 .slide__text { top: 4rem; }
}
@media (max-width: 767px) {
  .slide { min-height: 119vw; }
  .slide__title { font-size: 7vw; }
  .slide__desc { width: auto; font-size: 3.5vw; }
  .carousel__arrow { display: none; }
  .carousel1-s1 .slide__text { padding-top: 50%; padding-left: 54%; }
  .carousel1-s2 .slide__text { padding-left: 51%; }
  .carousel1-s3 .slide__text,
  .carousel2-s1 .slide__text,
  .carousel2-s3 .slide__text { padding-right: 46%; }
  .carousel2-s2 .slide__text { padding-top: 38%; padding-left: 54%; padding-right: 4%; }
}
@media (max-width: 440px) {
  .carousel1-s1 .slide__text { padding-top: 41%; padding-left: 51%; }
}

/* Japanese and Korean: no tracking-heavy caps; keep words together. */
.lang-ja .slide__title,
.lang-ko .slide__title,
.lang-ja .video__heading,
.lang-ko .video__heading {
  letter-spacing: 0.02em;
  font-weight: 700;
  line-height: 1.2;
}
.lang-ja .slide__title,
.lang-ko .slide__title {
  font-size: 64px;
}
.lang-ko .slide__title,
.lang-ko .slide__desc,
.lang-ko .video__heading {
  word-break: keep-all;
}
.lang-ja .video__heading,
.lang-ja .slide__title {
  word-break: auto-phrase; /* break between phrases where supported */
  line-break: strict;
}
.lang-ja .video__heading,
.lang-ko .video__heading {
  font-size: 4.4vw;
}
@media (max-width: 1112px) {
  .lang-ja .slide__title,
  .lang-ko .slide__title { font-size: 44px; }
}
@media (max-width: 1112px) {
  .lang-ja .video__heading,
  .lang-ko .video__heading { font-size: 52px; }
}
@media (max-width: 767px) {
  .lang-ja .slide__title,
  .lang-ko .slide__title { font-size: 6vw; }
  .lang-ja .video__heading,
  .lang-ko .video__heading { font-size: 7vw; }
}

/* ---- footer ------------------------------------------------------------- */

.footer {
  position: relative;
  overflow: hidden;
  padding: 75px 20px 80px;
  background: #0b0b0b center / cover no-repeat;
  text-align: center;
}
.footer__heading {
  margin: 0 0 0.83em;
  font-family: var(--font-display-bold);
  font-size: 60px;
  font-weight: 700;
  line-height: 54.6px;
  text-transform: uppercase;
}
.footer__stores .store {
  width: 170px;
  margin: 0 auto 41px;
}
.footer__partners {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 30px;
  margin: 0 0 40px;
  padding: 0;
  list-style: none;
}
/* Logos have very different proportions; cap both dimensions so wide ones stay legible. */
.footer__partners img {
  display: block;
  width: auto;
  height: auto;
  max-width: 120px;
  max-height: 64px;
}
.social--footer {
  justify-content: center;
  margin-bottom: 35px;
}
.social--footer a {
  margin: 14px;
}
.social--footer a:hover {
  color: var(--accent);
}
.footer__links {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin: 0 0 32px;
  padding: 0;
  list-style: none;
}
.footer__links a {
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-decoration: none;
  text-transform: uppercase;
}
.footer__links a:hover {
  color: var(--accent);
}
.footer__legal {
  margin: 0;
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.025em;
}

@media (max-width: 767px) {
  .footer__heading {
    font-size: 45px;
  }
  .footer__stores .store {
    width: 113px;
  }
  .footer__partners {
    gap: 22px;
  }
  .footer__partners img {
    max-width: 96px;
    max-height: 52px;
  }
}

/* ---- worldwide / 404 ---------------------------------------------------- */

.worldwide {
  min-height: 100vh;
  padding: 1.5em 20px 60px;
  background: #07080d center / cover no-repeat;
}
.worldwide__logo {
  display: block;
  width: min(360px, 70vw);
  margin: 1rem auto 0;
}
.worldwide__logo img {
  display: block;
  width: 100%;
}
.worldwide__regions {
  display: flex;
  justify-content: center;
  padding: 30px 0;
}
.region {
  width: 16vw;
  min-width: 170px;
  padding: 0 25px;
  border-right: 1px solid #d0d2d6;
}
.region:last-child {
  border-right: 0;
}
.region h2 {
  margin: 0 0 4px;
  padding-left: 3px;
  font-family: var(--font-display-bold);
  font-size: 1.3em;
  font-weight: 700;
  text-transform: uppercase;
}
.region ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.region a {
  display: block;
  padding: 8px 3px;
  border-bottom: 1px solid #b0b0b0;
  color: #fff;
  text-decoration: none;
}
.region a:hover,
.region a:focus-visible {
  background: #d80004;
}
.notfound {
  text-align: center;
}
.notfound h1 {
  margin: 8vh 0 1rem;
  font-family: var(--font-display-bold);
  font-size: clamp(36px, 6vw, 64px);
  text-transform: uppercase;
  letter-spacing: 0.075em;
}
.notfound__home {
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-size: 12px;
}

@media (max-width: 767px) {
  .worldwide__regions {
    flex-direction: column;
    align-items: center;
    gap: 30px;
  }
  .region {
    width: min(23rem, 90vw);
    border-right: 0;
    padding: 0;
  }
  .region h2 {
    font-size: 2.1rem;
  }
  .region a {
    font-size: 22px;
  }
}

/* ---- privacy / terms ---------------------------------------------------- */

.legal-header {
  padding: 24px 20px 8px;
  text-align: center;
}
.legal-header__logo {
  display: inline-block;
  width: min(240px, 60vw);
}
.legal-header__logo img {
  display: block;
  width: 100%;
}
.legal {
  padding: 0 20px 48px;
}
.legal__body {
  max-width: 760px;
  margin: 0 auto;
  color: #d9dbe0;
  font-size: 16px;
  line-height: 1.65;
}
.legal__body h1,
.legal__body h2,
.legal__body h3 {
  color: #fff;
  font-family: var(--font-display-bold);
  font-weight: 700;
  line-height: 1.2;
}
.legal__body h1 {
  margin: 24px 0 4px;
  font-size: clamp(34px, 6vw, 52px);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.legal__body h2 {
  margin: 48px 0 12px;
  padding-top: 16px;
  border-top: 1px solid #2a2d38;
  font-size: 26px;
  scroll-margin-top: 16px;
}
.legal__body h3 {
  margin: 28px 0 8px;
  font-size: 19px;
}
.legal__body a {
  color: var(--accent);
  overflow-wrap: anywhere;
}
.legal__body strong {
  color: #fff;
}
.legal__body ul,
.legal__body ol {
  padding-left: 1.4em;
}
.legal__body li + li {
  margin-top: 6px;
}
.legal__meta {
  margin-top: 0;
  color: #9a9ea8;
  font-size: 14px;
}
.legal__notice {
  padding: 14px 18px;
  border-left: 3px solid var(--glow);
  background: #13151d;
}
.legal__toc {
  margin: 28px 0;
  padding: 16px 20px;
  background: #13151d;
  font-size: 15px;
}
.legal__toc ol {
  margin: 0;
  columns: 2;
  column-gap: 32px;
}
.legal__toc li + li {
  margin-top: 4px;
}
.legal__table {
  overflow-x: auto;
}
.legal__body table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}
.legal__body th,
.legal__body td {
  padding: 10px 12px;
  border-bottom: 1px solid #2a2d38;
  text-align: left;
  vertical-align: top;
}
.legal__body th {
  color: #fff;
}
/* Unconfirmed facts in the draft text. Kept visible so reviewers can find them. */
.legal__body mark.todo {
  padding: 1px 4px;
  border-radius: 3px;
  background: #fde68a;
  color: #3b2a00;
}
.legal-footer {
  padding: 32px 20px 40px;
  border-top: 1px solid #2a2d38;
  text-align: center;
}

@media (max-width: 767px) {
  .legal__body {
    font-size: 15px;
  }
  .legal__body h2 {
    font-size: 22px;
  }
  .legal__toc ol {
    columns: 1;
  }
}

/* ---- motion ------------------------------------------------------------- */

@keyframes slide-down {
  from { transform: translateY(-100%); }
  to { transform: none; }
}
@keyframes slide-in-left {
  from { transform: translate(-100%); }
  to { transform: translateY(-200px); }
}
@keyframes slide-in-right {
  from { transform: translate(100%); }
  to { transform: translateY(-200px); }
}

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