*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: var(--fs-body);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
::selection { background: var(--brand); color: #fff; }
/* v2 focus ring: a mint ring hugging the element inside a black one, so one of the two
   clears 3:1 on any surface (mint on black, black on pink / white / video) */
:focus-visible { outline: 2px solid var(--black); outline-offset: 2px; box-shadow: 0 0 0 2px var(--mint); }

/* ---------- type ---------- */
.display, .h2 {
  font-family: var(--font-display);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: -0.04em;
  line-height: 0.88;
  margin: 0;
}
.display { font-size: var(--fs-hero); font-weight: 900; }
.h2 { font-size: var(--fs-h2); line-height: 0.92; }
.serif {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 400;
  text-transform: none;
  letter-spacing: -0.01em;
}
.display .serif, .h2 .serif { color: var(--brand); }
.label {
  display: inline-block;
  font-size: var(--fs-small);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.label::before { content: "[\00a0"; }
.label::after { content: "\00a0]"; }
.muted { color: var(--muted); }


/* ---------- buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 0.6em;
  padding: 0.95em 1.6em;
  background: var(--brand); color: var(--bg);
  border-radius: 999px;
  font-size: 0.875rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  transition: background var(--dur) var(--ease), transform 0.3s var(--ease);
}
.btn:hover { background: var(--ink); color: var(--bg); }
.btn:active { transform: scale(0.97); }
.btn--ghost { background: transparent; border: 1px solid var(--line-strong); color: var(--ink); }
.btn--ghost:hover { background: var(--brand); border-color: var(--brand); color: var(--bg); }
.btn--link {
  padding: 0; background: none; border-radius: 0; color: var(--ink);
  border-bottom: 1px solid currentColor; padding-bottom: 2px;
}
.btn--link::after { content: "\2192"; transition: transform 0.3s var(--ease); }
.btn--link:hover { background: none; color: var(--brand); }
.btn--link:hover::after { transform: translateX(4px); }

/* ---------- marquee ---------- */
.marquee { overflow: hidden; white-space: nowrap; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee__track { display: inline-flex; gap: 4rem; animation: oms-marquee 40s linear infinite; padding-right: 4rem; }
.marquee:hover .marquee__track { animation-play-state: paused; }
@keyframes oms-marquee { to { transform: translateX(-50%); } }

/* ---------- media ---------- */
.media { position: relative; overflow: hidden; background: var(--bg-2); aspect-ratio: 16 / 9; }
.media > video, .media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.media > video { opacity: 0; transition: opacity 0.6s var(--ease); }
.media.is-playing > video { opacity: 1; }
.media--cover { aspect-ratio: auto; position: absolute; inset: 0; }

/* =====================================================================
   v2 chrome (MOTION.md) · header, menu, transitions, cursor, footer
   ===================================================================== */

/* ---------- brackets [ LABEL ] ---------- */
[data-brackets] { display: inline-flex; align-items: baseline; gap: 0.22em; white-space: nowrap; }
[data-brackets] .bracket-mark {
  display: inline-block;
  opacity: 0.68;
  transition: color 0.36s var(--ease), opacity 0.36s var(--ease), transform 0.48s cubic-bezier(0.16, 1, 0.3, 1);
}
[data-brackets] .bracket-label { display: inline-block; }
/* active marks stay #ff2c7d in the header: the reference does the same */
[data-brackets]:focus-visible .bracket-mark, .oms-nav [aria-current="page"] .bracket-mark { opacity: 1; color: #ff2c7d; }
[data-brackets]:focus-visible .bracket-mark:first-child, .oms-nav [aria-current="page"] .bracket-mark:first-child { transform: translateX(-0.34em); }
[data-brackets]:focus-visible .bracket-mark:last-child, .oms-nav [aria-current="page"] .bracket-mark:last-child { transform: translateX(0.34em); }
/* hover only where hover is real, so a tap never leaves brackets stuck open */
@media (hover: hover) {
  [data-brackets]:hover .bracket-mark { opacity: 1; color: #ff2c7d; }
  [data-brackets]:hover .bracket-mark:first-child { transform: translateX(-0.34em); }
  [data-brackets]:hover .bracket-mark:last-child { transform: translateX(0.34em); }
}

/* ---------- header ----------
   The wordmark blends in difference mode over the moving page; nav controls sample ink. */
.oms-header {
  position: fixed; inset: 0 0 auto 0; z-index: var(--z-header);
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem;
  padding: 10px 10px 0;
  color: #fff;
  pointer-events: none;
}
.oms-header .oms-nav__group, .oms-header .oms-menu-toggle { transition: none; }
/* (0,3,0) on purpose: beats page overrides such as body[data-page] .oms-logo */
.oms-header .oms-nav__group[data-ink="light"], .oms-header .oms-menu-toggle[data-ink="light"] { color: #fff; }
.oms-header .oms-nav__group[data-ink="dark"], .oms-header .oms-menu-toggle[data-ink="dark"] { color: var(--ink-on-light); }
.oms-header .oms-nav__group[data-ink] a { color: inherit; }
@media (hover: none), (pointer: coarse) {
  .oms-header {
    padding-top: calc(10px + env(safe-area-inset-top, 0px));
    padding-left: max(10px, env(safe-area-inset-left, 0px));
    padding-right: max(10px, env(safe-area-inset-right, 0px));
  }
}
.oms-header > * { pointer-events: auto; }
.oms-header :focus-visible { outline-color: currentColor; box-shadow: none; } /* follows the item's ink */

/* the reference crown logo is 152x42 desktop, 84x23 at <=991 */
.oms-logo { display: block; line-height: 0; }
.oms-logo__svg { display: block; height: 42px; width: auto; overflow: visible; }
/* the fixed header is its own stacking context, so a blend mode never reached the page behind it
   (wordmark stayed white on white). The wordmark takes the sampled ink like the nav does instead. */
.oms-logo__word { fill: #fff; }
.oms-header .oms-logo[data-ink="dark"] .oms-logo__word { fill: var(--ink-on-light); }
/* held until motion.js sets the intro's start state; fails open after 3s */
.oms-motion .oms-logo__svg:not(.is-ready) { visibility: hidden; animation: oms-logo-failopen 0s 3s forwards; }
@keyframes oms-logo-failopen { to { visibility: visible; } }

.oms-nav, .oms-menu-toggle {
  font-size: var(--fs-ui); font-weight: var(--ui-weight); letter-spacing: -0.035em; line-height: 1; text-transform: uppercase;
}
.oms-nav {
  display: flex; justify-content: space-between;
  width: min(730px, 56vw); margin-left: auto;
}
.oms-nav__group { display: flex; gap: 1.25rem; }
.oms-nav a { opacity: 1; transition: opacity 0.3s var(--ease); }
.oms-nav a:hover, .oms-nav a:focus-visible, .oms-nav a[aria-current="page"] { opacity: 1; }

.oms-menu-toggle, .oms-menu__close {
  position: relative; padding: 0;
  -webkit-tap-highlight-color: transparent; touch-action: manipulation;
}
/* The real controls are 44px tall; add only horizontal pointer reach. */
.oms-menu-toggle::after, .oms-menu__close::after { content: ""; position: absolute; inset: 0 -10px; }
.oms-menu-toggle {
  display: none;
  min-width: 44px; min-height: 44px; margin-top: -10px; padding-top: 10px;
  align-items: flex-start; justify-content: center;
}
@media (max-width: 991px) {
  .oms-logo__svg { height: 23px; }
  .oms-nav { display: none; }
  .oms-menu-toggle { display: inline-flex; }
}

/* ---------- menu (mobile): curtain -> links -> footer ---------- */
.oms-menu {
  position: fixed; inset: 0; z-index: var(--z-menu);
  display: flex; flex-direction: column; justify-content: space-between;
  height: 100svh; padding: 85px 10px 10px; overflow: hidden;
  background: var(--white); color: var(--ink-on-light);
  visibility: hidden; -webkit-clip-path: inset(0 0 100% 0); clip-path: inset(0 0 100% 0);
  backface-visibility: hidden; -webkit-backface-visibility: hidden;
}
.oms-menu.is-open { visibility: visible; -webkit-clip-path: inset(0); clip-path: inset(0); }
.oms-menu__close {
  position: absolute; top: 0; right: 10px;
  min-width: 44px; min-height: 44px; padding-top: 10px; padding-bottom: 22px;
  font-size: var(--fs-ui); font-weight: var(--ui-weight); letter-spacing: -0.035em; line-height: 1;
}
.oms-menu__links { display: flex; flex-direction: column; gap: 16px; }
.oms-menu__link {
  display: block; overflow: hidden;
  font-size: 46px; font-weight: 800; line-height: 0.9; letter-spacing: -0.03em; text-transform: uppercase;
}
.oms-menu__inner { display: block; padding-bottom: 0.04em; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.oms-menu__link:focus-visible .oms-menu__inner {
  font-family: var(--font-serif); font-style: italic; font-weight: 400; text-transform: none; letter-spacing: -0.02em;
}
@media (hover: hover) {
  .oms-menu__link:hover .oms-menu__inner {
    font-family: var(--font-serif); font-style: italic; font-weight: 400; text-transform: none; letter-spacing: -0.02em;
  }
}
.oms-menu__link[aria-current="page"] { color: var(--pink); }
.oms-menu__cta {
  display: flex; align-items: center; gap: 6px;
  width: calc(100% - 10px); padding: 10px 6px;
  background: var(--black); color: var(--white);
  font-size: var(--fs-ui); font-weight: var(--ui-weight); line-height: 1; letter-spacing: -0.03em; text-transform: uppercase;
}
.oms-menu__square { flex: 0 0 6px; height: 6px; background: var(--white); }
html.menu-is-open, html.menu-is-open body { overflow: hidden; }
@media (max-width: 767px) {
  html.menu-is-open, html.menu-is-open body { overscroll-behavior: none; }
  html.menu-is-open body { touch-action: none; }
}
@media (hover: none), (pointer: coarse) {
  .oms-menu {
    padding-left: max(10px, env(safe-area-inset-left, 0px));
    padding-right: max(10px, env(safe-area-inset-right, 0px));
    padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  }
  .oms-menu__close { top: calc(10px + env(safe-area-inset-top, 0px)); right: max(10px, env(safe-area-inset-right, 0px)); }
}

/* ---------- page transition: five bars, staggered bottom-up ---------- */
.oms-transition {
  position: fixed; inset: 0; z-index: var(--z-transition);
  width: 100vw; height: 100svh;
  display: flex; flex-direction: column;
  pointer-events: none; overflow: hidden;
}
/* touch: size the bars to the large viewport so a collapsing toolbar never uncovers a strip */
@media (hover: none), (pointer: coarse) {
  .oms-transition { height: 100vh; }
  @supports (height: 100lvh) { .oms-transition { height: 100lvh; } }
}
.oms-transition__line { flex: 1 0 auto; height: 20%; margin-block: -0.5px; background: var(--pink); will-change: transform; }
.oms-transition.is-covering, .oms-transition.is-leaving { pointer-events: all; }
.oms-transition.is-leaving .oms-transition__line { animation: oms-bar-in 0.6s cubic-bezier(0.4, 0, 0.2, 1) both; }
.oms-transition.is-entering .oms-transition__line { animation: oms-bar-out 0.6s cubic-bezier(0.4, 0, 0.2, 1) both; }
.oms-transition .oms-transition__line:nth-child(5) { animation-delay: 0s; }
.oms-transition .oms-transition__line:nth-child(4) { animation-delay: 0.06s; }
.oms-transition .oms-transition__line:nth-child(3) { animation-delay: 0.12s; }
.oms-transition .oms-transition__line:nth-child(2) { animation-delay: 0.18s; }
.oms-transition .oms-transition__line:nth-child(1) { animation-delay: 0.24s; }
@keyframes oms-bar-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes oms-bar-out { from { transform: translateX(0); } to { transform: translateX(-100%); } }

/* covers the first paint until site.js swaps in the real bars; fails open */
html:not(.oms-transition-ready) body::after {
  content: ""; position: fixed; inset: 0; z-index: var(--z-transition);
  background: var(--pink);
  animation: oms-cover-failsafe 0s linear 3s forwards;
}
@keyframes oms-cover-failsafe { to { visibility: hidden; } }

/* ---------- cursor: crosshair, four pink corners, label ---------- */
.oms-cursor {
  position: fixed; left: 0; top: 0; z-index: var(--z-cursor);
  width: 28px; height: 28px; margin: -14px 0 0 -14px;
  pointer-events: none; mix-blend-mode: difference;
  opacity: 0; transition: opacity 240ms var(--ease);
}
.oms-cursor.is-visible { opacity: 1; }
.oms-cursor__frame {
  position: absolute; left: 50%; top: 50%; width: 100%; height: 100%;
  transform: translate(-50%, -50%);
  transition: width 720ms cubic-bezier(0.16, 1, 0.3, 1), height 720ms cubic-bezier(0.16, 1, 0.3, 1), transform 720ms cubic-bezier(0.16, 1, 0.3, 1), opacity 280ms ease;
}
.oms-cursor.is-interactive .oms-cursor__frame { width: 52px; height: 32px; }
.oms-cursor.is-pressed .oms-cursor__frame { width: 44px; height: 28px; transition-duration: 180ms; }
.oms-cursor.is-suppressed .oms-cursor__frame { opacity: 0; transform: translate(-50%, -50%) scale(0.35); }
.oms-cursor__c {
  position: absolute; width: 6px; height: 6px; border: 1px solid #ff004d;
  transition: width 520ms cubic-bezier(0.16, 1, 0.3, 1), height 520ms cubic-bezier(0.16, 1, 0.3, 1), border-color 360ms ease,
    background-color 360ms ease, transform 620ms cubic-bezier(0.16, 1, 0.3, 1);
}
.oms-cursor__c.tl { top: 0; left: 0; }
.oms-cursor__c.tr { top: 0; right: 0; }
.oms-cursor__c.bl { bottom: 0; left: 0; }
.oms-cursor__c.br { bottom: 0; right: 0; }
.oms-cursor.is-interactive .oms-cursor__c { width: 8px; height: 8px; }
.oms-cursor.is-interactive .oms-cursor__c.tl { border-right-color: transparent; border-bottom-color: transparent; }
.oms-cursor.is-interactive .oms-cursor__c.tr { border-left-color: transparent; border-bottom-color: transparent; }
.oms-cursor.is-interactive .oms-cursor__c.bl { border-top-color: transparent; border-right-color: transparent; }
.oms-cursor.is-interactive .oms-cursor__c.br { border-top-color: transparent; border-left-color: transparent; }
.oms-cursor__l { position: absolute; background: #fff; transition: opacity 220ms ease, transform 520ms cubic-bezier(0.16, 1, 0.3, 1); }
.oms-cursor__l.v { width: 1px; height: 6px; left: 50%; transform: translateX(-50%); }
.oms-cursor__l.h { height: 1px; width: 6px; top: 50%; transform: translateY(-50%); }
.oms-cursor__l.t { top: 5px; }
.oms-cursor__l.b { bottom: 5px; }
.oms-cursor__l.l { left: 5px; }
.oms-cursor__l.r { right: 5px; }
.oms-cursor.is-interactive .oms-cursor__l { opacity: 0; }
.oms-cursor__label {
  position: absolute; right: 22px; top: -12px;
  white-space: pre; color: #fff;
  font-size: 12px; font-weight: 700; line-height: 1.2; letter-spacing: -0.02em; text-transform: uppercase;
  will-change: transform;
}
.oms-cursor__ch { display: inline-block; overflow: hidden; vertical-align: top; }
.oms-cursor__ch > span { display: block; transform: translateY(110%); transition: transform 0.65s var(--ease); }
.oms-cursor__ch:nth-child(odd) > span { transform: translateY(-110%); }
.oms-cursor__label.is-revealed .oms-cursor__ch > span { transform: none; }
@media (hover: none), (pointer: coarse) { .oms-cursor { display: none !important; } }
@media (prefers-reduced-motion: reduce) {
  .oms-cursor, .oms-cursor__frame, .oms-cursor__c, .oms-cursor__l, .oms-cursor__ch > span { transition: none !important; }
}

/* ---------- nav hover (BACK / NEXT): reference inline_14 ---------- */
[data-nav-hover] {
  --oms-hover-x: 0px; --oms-hover-y: 0px;
  position: relative; display: inline-flex; align-items: center; gap: 0.45em; overflow: hidden;
  transform: translate3d(calc(var(--oms-hover-x) * 0.34), calc(var(--oms-hover-y) * 0.34), 0);
  transition: transform 550ms cubic-bezier(0.16, 1, 0.3, 1), color 250ms ease;
  will-change: transform;
}
.oms-nav-hover__label { position: relative; z-index: 1; transition: transform 500ms cubic-bezier(0.16, 1, 0.3, 1); }
.oms-nav-hover__arrow {
  --oms-arrow-rest: 0deg;
  position: relative; z-index: 1; display: grid; place-items: center;
  width: 0; height: 1.35em; overflow: hidden;
  border: 1px solid transparent; border-radius: 50%;
  font-size: 0.8em; line-height: 1;
  opacity: 0; transform: scale(0.72) rotate(var(--oms-arrow-rest));
  transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1), width 600ms cubic-bezier(0.16, 1, 0.3, 1),
    opacity 280ms ease, border-color 280ms ease, background-color 280ms ease, color 280ms ease;
}
[data-nav-hover="back"] .oms-nav-hover__arrow { --oms-arrow-rest: 180deg; order: -1; }
.oms-nav-hover-on [data-nav-hover]:is(:hover, :focus-visible) .oms-nav-hover__label { transform: translate3d(0, -0.08em, 0); }
.oms-nav-hover-on [data-nav-hover]:is(:hover, :focus-visible) .oms-nav-hover__arrow {
  width: 1.35em; opacity: 1; color: #000; border-color: currentColor; background: #fff;
  transform: scale(1) rotate(var(--oms-arrow-rest));
}
.oms-nav-hover-on [data-nav-hover]:focus-visible { outline: 1px solid currentColor; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce), (hover: none) {
  [data-nav-hover], .oms-nav-hover__label, .oms-nav-hover__arrow { transition-duration: 0.01ms !important; }
  [data-nav-hover] { transform: none; }
}

/* ---------- reveal / split ---------- */
html.oms-motion [data-reveal] { visibility: hidden; }
.oms-line-mask { padding-bottom: 0.08em; margin-bottom: -0.08em; }

/* ---------- stair: stepped block wipe ---------- */
html.oms-motion [data-stair]:not(.is-stair-done):not([data-stair-manual]) { visibility: hidden; }
.oms-stair { position: absolute; inset: 0; z-index: 5; pointer-events: none; visibility: visible; }
.oms-stair-line { position: relative; }
.oms-stair-mask {
  position: absolute; left: 0; right: 0; display: block; visibility: visible;
  transform: scaleX(0); transform-origin: right center; will-change: transform;
}
.oms-stair-line > .oms-stair-mask { top: -1px; bottom: -1px; }

/* ---------- blobs: animated blurred pink background ---------- */
.oms-blob-host { isolation: isolate; overflow: hidden; background-color: var(--pink-base); }
.oms-blobs { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.oms-blobs::after {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: radial-gradient(circle at center, transparent 30%, var(--vignette) 130%);
}
.oms-blob {
  position: absolute; display: block;
  border-radius: 43% 57% 65% 35% / 55% 45% 61% 39%;
  opacity: 0.85; will-change: transform; backface-visibility: hidden;
  animation: oms-drift 25s ease-in-out infinite alternate;
}
/* Two independently phased fields: dark upper-left, light lower-right. */
.oms-blob:nth-child(1) { width: 66vw; height: 92vh; top: -7vh; left: -5vw; background: var(--blob-2); filter: blur(60px); animation: oms-drift-dark 18s ease-in-out infinite alternate; }
.oms-blob:nth-child(2) { width: 64vw; height: 80vh; bottom: -18vh; right: -8vw; background: var(--blob-1); filter: blur(55px); animation: oms-drift-light 13s ease-in-out infinite alternate; }
.is-blob-paused .oms-blob { animation-play-state: paused; }
@keyframes oms-drift-dark {
  0% { transform: translate3d(0, 0, 0) scale(.9) rotate(-12deg); }
  50% { transform: translate3d(16vw, 12vh, 0) scale(1.15) rotate(35deg); }
  100% { transform: translate3d(-8vw, 22vh, 0) scale(.95) rotate(80deg); }
}
@keyframes oms-drift-light {
  0% { transform: translate3d(0, 0, 0) scale(1.05) rotate(15deg); }
  50% { transform: translate3d(-20vw, -12vh, 0) scale(1.25) rotate(-30deg); }
  100% { transform: translate3d(6vw, -28vh, 0) scale(.85) rotate(-75deg); }
}
@media (hover: none), (pointer: coarse) {
  .oms-blob:nth-child(n) {
    --mobile-blob-color: var(--blob-2);
    background: radial-gradient(ellipse at center, var(--mobile-blob-color) 12%, transparent 72%);
    border-radius: 0; filter: none;
  }
  .oms-blob:nth-child(2) { --mobile-blob-color: var(--blob-1); }
}
@media (prefers-reduced-motion: reduce) { .oms-blob { animation: none !important; } }

/* ---------- dither: B/W halftone dot screen ---------- */
.oms-dither > img, .oms-dither > video { filter: grayscale(1) contrast(1.15); }
.oms-dither::after {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background-image: conic-gradient(from 0deg, #000 90deg, transparent 90deg);
  background-size: 5px 5px;
  mix-blend-mode: multiply; opacity: 0.55;
}

/* ---------- footer (white) ---------- */
.oms-footer {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: 45% minmax(0, 1fr);
  min-height: 100svh;
  background: var(--white); color: var(--ink-on-light);
}
.oms-footer__media { position: relative; isolation: isolate; overflow: hidden; min-height: 100svh; background: #e9e6e1; }
.oms-footer__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.6s var(--ease); }
.oms-footer__slide.is-active { opacity: 1; }
.oms-footer__slide > img, .oms-footer__slide > video,
.oms-footer__thumb > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.oms-footer__slide > video { opacity: 0; transition: opacity 0.6s var(--ease); }
.oms-footer__slide.is-playing > video { opacity: 1; }
html.oms-motion .oms-footer__slide { transition: none; }

.oms-footer__card {
  position: absolute; top: 10px; left: 10px; z-index: 3;
  display: flex; gap: 4px; width: 276px; height: 90px; padding: 2px;
  background: var(--white); color: var(--ink-on-light);
}
.oms-footer__thumb { position: relative; flex: 0 0 96px; overflow: hidden; background: #ddd; }
.oms-footer__card-body { display: flex; flex-direction: column; justify-content: space-between; padding-top: 1px; }
.oms-footer__card strong { font-size: 19px; font-weight: 800; line-height: 0.95; letter-spacing: -0.06em; text-transform: uppercase; }
.oms-footer__card-body > span { word-spacing: 0.12em; font-size: 11px; font-weight: 700; line-height: 1.5; letter-spacing: -0.04em; }
.oms-footer__card:hover strong { color: var(--pink); }

.oms-footer__body { display: flex; flex-direction: column; min-width: 0; padding: 38px 10px 10px; }
.oms-footer__title {
  margin: 0; max-width: 11ch;
  font-size: clamp(44px, 6.67vw, 128px); font-weight: 800; line-height: 0.85; letter-spacing: -0.03em; text-transform: uppercase;
}
.oms-footer__title .serif { color: inherit; text-transform: uppercase; letter-spacing: -0.03em; padding-right: 0.06em; }
.oms-footer__info { margin-top: auto; padding-top: 48px; }
.oms-footer__row {
  display: flex; justify-content: space-between; gap: 1rem;
  padding-bottom: 20px; border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  font-size: var(--fs-ui); font-weight: var(--ui-weight); letter-spacing: -0.04em;
}
.oms-footer__address {
  display: grid; gap: 4px; margin-top: 34px;
  font-style: normal; font-size: var(--fs-ui); font-weight: var(--ui-weight); line-height: 1.5; word-spacing: 0.12em; letter-spacing: -0.04em; text-transform: uppercase;
}
.oms-footer__address a:hover, .oms-footer__bottom a:hover { color: var(--pink); }
.oms-footer__social {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin-top: 28px;
  font-size: var(--fs-ui); font-weight: var(--ui-weight); letter-spacing: -0.035em; text-transform: uppercase;
}
.oms-footer__social [data-brackets] .bracket-mark { opacity: 0.45; }
.oms-footer__nav { display: none; }
.oms-footer__bottom {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 1rem;
  margin-top: clamp(48px, 12vh, 150px);
  font-size: var(--fs-ui); font-weight: var(--ui-weight); line-height: 0.96; letter-spacing: -0.04em;
}
/* <=991: the reference stacks the copy over a half-height video (column-reverse),
   docks the say-hi card on the video's top edge and the legal row, white, on its bottom edge */
@media (max-width: 991px) {
  .oms-footer { display: flex; flex-direction: column; }
  .oms-footer__body { order: 1; flex: 1 0 auto; min-height: 50svh; }
  .oms-footer__media { order: 2; flex: 0 0 50svh; height: 50svh; min-height: 0; }
  .oms-footer__title { max-width: 8em; font-size: 46px; }
  .oms-footer__info { padding-top: 24px; }
  .oms-footer__row { padding-bottom: 1rem; }
  .oms-footer__address { margin-top: 1rem; }
  .oms-footer__social { margin-top: 20px; }
  .oms-footer__nav {
    display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1rem; margin-top: 28px;
    font-size: var(--fs-ui); font-weight: var(--ui-weight); line-height: 1; letter-spacing: -0.035em; text-transform: uppercase;
  }
  .oms-footer__card {
    top: auto; bottom: calc(50svh - 134px); left: 10px;
    width: calc(100% - 20px); height: 124px;
  }
  .oms-footer__thumb { flex: 0 0 35%; }
  .oms-footer__card-body { flex: 1; min-width: 0; padding: 4px 4px 2px; }
  .oms-footer__bottom {
    position: absolute; z-index: 3; left: 0; right: 0; bottom: 10px;
    margin: 0; padding-inline: 10px;
    color: var(--white);
  }
  .oms-footer__bottom a:hover { color: var(--mint); }
}
@media (hover: none), (pointer: coarse) {
  .oms-footer__body { padding-left: max(10px, env(safe-area-inset-left, 0px)); padding-right: max(10px, env(safe-area-inset-right, 0px)); }
}
@media (max-width: 991px) and (hover: none), (max-width: 991px) and (pointer: coarse) {
  .oms-footer__bottom { bottom: max(10px, env(safe-area-inset-bottom, 0px)); }
}

/* Extend touch reach without moving the reference's small header/footer type.
   The transparent boxes participate in hit testing, not document layout. */
@media (hover: none), (pointer: coarse) {
  .oms-header .oms-logo,
  .oms-header .oms-nav a,
  .oms-footer__address a,
  .oms-footer__social a,
  .oms-footer__nav a,
  .oms-footer__bottom a { position: relative; }
  .oms-header .oms-logo::after,
  .oms-header .oms-nav a::after,
  .oms-footer__address a::after,
  .oms-footer__social a::after,
  .oms-footer__nav a::after,
  .oms-footer__bottom a::after {
    content: ""; position: absolute;
    left: 50%; top: 50%; width: 100%; height: 100%;
    min-width: 44px; min-height: 44px;
    transform: translate(-50%, -50%);
  }
  /* Closely set contact/nav rows share reach; keep every label above all hit boxes. */
  .oms-footer__address, .oms-footer__nav { isolation: isolate; }
  .oms-footer__address a::after, .oms-footer__nav a::after { z-index: -1; }
  /* Keep the legal targets inside the footer's clipped bottom edge. */
  .oms-footer__bottom a::after { top: auto; bottom: 0; transform: translateX(-50%); }
}

/* ---------- ?placeholders ---------- */
.oms-show-placeholders [data-placeholder] { outline: 1px dashed var(--mint) !important; outline-offset: 2px; }

/* ---------- motion safety ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
  .marquee__track { animation: none; }
}


/* Shared accessible text and first-tab bypass. */
.oms-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.oms-skip{position:fixed;top:8px;left:8px;z-index:10002;padding:10px;background:#fff;color:#000;transform:translateY(-160%)}
.oms-skip:focus{transform:none}
.oms-line,.oms-stair-line{display:block}
.oms-header .oms-nav__group[data-ink="dark"] a{opacity:1}
.oms-header .oms-nav__group[data-ink="dark"] .bracket-mark{color:inherit;opacity:1}
