/* tuvodate.com redesign: look and motion. Loaded after site.css on every page except 404 and the badge check.
   Brand colours stay the same in light and dark mode on these pages. All motion needs html.tv-motion,
   which motion-boot.js only sets when the visitor hasn't asked to reduce motion. */
body.tv-fresh {
  color-scheme: light;
  --bg: #FFFFFF; --bg-soft: #F6F9FC; --surface: #FFFFFF; --text: #0A2A5E; --text-body: #4A5B78; --hint: #5F6E87;
  --border: #E8EEF5; --input-bg: #F6F9FC; --input-border: #77849B; --link: #1670A6; --coral-text: #E5432A; --focus: #0A2A5E;
  --card-coral: #FFE6E0; --card-sun: #FFF4C2; --card-sky: #E3F5FF; --mint-wash: #E7FAF5; --alert-bg: #FFE6E0;
  --ok: #0F7A55; --error: #C2351B; --btn-ink-bg: #0A2A5E; --btn-ink-fg: #FFFFFF; --step-bg: #0A2A5E; --step-fg: #FFFFFF;
  --switch-off: #77849B; --shadow: 0 8px 24px rgba(10, 42, 94, .18);
  --d: 0s;
  font-size: 16px; line-height: 24px; overflow-x: clip;
}
.tv-intro-on body.tv-fresh { --d: .72s; }
.tv-intro-on body.tv-long { --d: 1.12s; }
.tv-intro-on body.tv-nointro { --d: 0s; }
@media (prefers-reduced-motion: no-preference) { html.tv-motion { scroll-behavior: smooth; } }

.tv-g-sky { background: var(--sky); color: var(--ink); }
.tv-g-ink { background: var(--ink); color: var(--white); }
.tv-g-white { background: var(--white); color: var(--ink); }
.tv-g-wash { background: #FFE6E0; color: var(--ink); }
.tv-g-sun { background: var(--sun); color: var(--ink); }
.tv-g-coral { background: var(--coral); color: var(--ink); }

/* Menu */
.tv-fresh .wrap, .tv-fresh .h-wrap { max-width: 1312px; padding-left: clamp(24px, 3vw, 32px); padding-right: clamp(24px, 3vw, 32px); }
.tv-fresh .top { position: relative; background: transparent; border-bottom: 0; backdrop-filter: none; -webkit-backdrop-filter: none; }
.tv-fresh .top-in { min-height: 84px; }
.tv-fresh .brand img { height: 30px; width: auto; }
.tv-fresh .brand sup { color: inherit; }
.tv-fresh .top .nav a { color: inherit; font-weight: 500; }
.tv-fresh .top .nav a:hover, .tv-fresh .top .nav a[aria-current="page"], .tv-fresh .top .nav a.is-active { background: rgba(10, 42, 94, .1); color: inherit; }
.tv-g-ink .top .nav a:hover, .tv-g-ink .top .nav a[aria-current="page"], .tv-g-ink .top .nav a.is-active { background: rgba(255, 255, 255, .14); }
.tv-fresh .top { color: var(--ink); }
.tv-g-ink .top { color: var(--white); }
.tv-fresh .top .lang { color: inherit; border-color: currentColor; }
.tv-fresh .top .btn { background: var(--ink); color: var(--white); }
.tv-g-ink .top .btn { background: var(--white); color: var(--ink); }
.tv-fresh .top .btn[aria-current="page"] { box-shadow: none; }
.tv-fresh .menu summary { background: rgba(10, 42, 94, .1); }
.tv-fresh .menu summary span { background: var(--ink); }
.tv-g-ink .menu summary { background: var(--ink-2); }
.tv-g-ink .menu summary span { background: var(--white); }

/* Type and layout */
.tv-wrapx { max-width: 1312px; margin: 0 auto; padding-left: clamp(24px, 3vw, 32px); padding-right: clamp(24px, 3vw, 32px); }
.tv-sec { padding-top: clamp(56px, 7vw, 96px); padding-bottom: clamp(56px, 7vw, 96px); }
.tv-hero { position: relative; padding-top: clamp(32px, 5vw, 64px); padding-bottom: clamp(72px, 9vw, 128px); }
.tv-hero-short { padding-bottom: clamp(40px, 6vw, 72px); }
.tv-sheet { position: relative; border-radius: 48px 48px 0 0; }
.tv-over { margin-top: -48px; }
.tv-under { padding-bottom: 48px; }
.tv-d { margin: 0; font-family: var(--display); font-weight: 800; }
.tv-xl { font-size: clamp(44px, 8.2vw, 118px); line-height: 1.08; letter-spacing: -.04em; }
.tv-xxl { font-size: clamp(50px, 8.8vw, 126px); line-height: 1.1; letter-spacing: -.04em; }
.tv-fr-xl { font-size: clamp(36px, 5.9vw, 84px); }
.tv-l { font-size: clamp(36px, 5.2vw, 74px); line-height: 1.05; letter-spacing: -.04em; }
.tv-m { font-size: clamp(30px, 3.8vw, 52px); line-height: 1.1; letter-spacing: -.03em; }
.tv-s { font-size: 22px; line-height: 1.18; letter-spacing: -.4px; }
.tv-h1p { font-size: clamp(32px, 4.9vw, 70px); line-height: 1.14; letter-spacing: -.04em; }
.tv-statement { font-size: clamp(28px, 4vw, 56px); line-height: 1.12; letter-spacing: -.03em; max-width: 1040px; }
.tv-eyebrow { margin: 0; font-size: 14px; line-height: 20px; font-weight: 700; }
.tv-lead { margin: 0; font-size: clamp(18px, 1.6vw, 21px); line-height: 1.45; font-weight: 500; max-width: 600px; }
.tv-sub { margin: 0; font-size: clamp(20px, 2vw, 26px); line-height: 1.3; font-weight: 500; }
.tv-fine { margin: 0; font-size: 13px; line-height: 19px; }
.tv-mute { color: #4A5B78; }
.tv-soft { color: #C9D6EA; }
.tv-soft a, a.tv-soft { color: #C9D6EA; }
.tv-sun { color: var(--sun); }
.tv-skyt { color: var(--sky); }
.tv-coralt { color: var(--coral); }
.tv-stack { display: flex; flex-direction: column; gap: 16px; }
.tv-gap8 { gap: 8px; } .tv-gap24 { gap: 24px; }
.tv-mb { margin-bottom: clamp(28px, 3.4vw, 40px); }
.tv-mt { margin-top: clamp(28px, 3.4vw, 40px); }
.tv-mtl { margin-top: clamp(56px, 7vw, 88px); }
.tv-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.tv-between { justify-content: space-between; }
.tv-center { text-align: center; }
.tv-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 48px; align-items: center; }
.tv-top { align-items: start; }
.tv-grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 12px; }
.tv-grid3w { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 12px; }
.tv-grid4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); gap: 12px; }
.tv-steps3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); gap: 32px; margin: 0; padding: 0; list-style: none; }
.tv-steps3 .tv-num { font-family: var(--display); font-weight: 800; font-size: 56px; line-height: 1; }
.tv-tile { display: flex; flex-direction: column; gap: 10px; min-height: 220px; padding: 28px; border-radius: 28px; justify-content: flex-end; color: var(--ink); }
.tv-tile-top { justify-content: space-between; gap: 32px; }
.tv-tile p { margin: 0; }
.tv-tile a { color: inherit; overflow-wrap: anywhere; }
.tv-tile.tv-g-ink { color: var(--white); }
.tv-tile.tv-g-ink p:not(.tv-sun) { color: #C9D6EA; }
.tv-tile-s { min-height: 170px; }
.tv-card { border-radius: 28px; background: var(--white); color: var(--ink); box-shadow: 0 8px 24px rgba(10, 42, 94, .14); }
.tv-pad { padding: clamp(24px, 3vw, 32px); }
.tv-clip { overflow: hidden; }
.tv-chip { display: inline-flex; align-items: center; min-height: 28px; padding: 3px 12px; border-radius: 999px; font-size: 13px; line-height: 18px; font-weight: 700; background: #E3F5FF; color: var(--ink); }
.tv-chip-coral { background: var(--coral); }
.tv-chip-sun { background: var(--sun); }
.tv-chip-photo { position: absolute; left: 12px; bottom: 12px; padding: 3px 10px; border-radius: 999px; background: rgba(6, 26, 58, .78); color: var(--white); font-size: 12px; line-height: 18px; font-weight: 700; margin: 0; }
.tv-chip-top { top: 12px; bottom: auto; }
.tv-photo-home .tv-profile-photo .tv-chip-photo, .tv-fresh .tv-know .tv-profile-photo .tv-chip-photo { color: var(--white); }
.tv-chip-right { left: auto; right: 12px; }

.tv-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 56px; padding: 8px 28px; border-radius: 999px; border: 2px solid transparent; font-family: var(--sans); font-weight: 700; font-size: 16px; line-height: 20px; text-decoration: none; cursor: pointer; }
.tv-cta-ink, .tv-cta-ink:hover { background: var(--ink); color: var(--white); }
.tv-cta-coral, .tv-cta-coral:hover { background: var(--coral); color: var(--ink); }
.tv-cta-line, .tv-cta-line:hover { background: transparent; color: var(--ink); border-color: var(--ink); }
.tv-cta-sky, .tv-cta-sky:hover { background: transparent; color: var(--white); border-color: var(--sky); }
.tv-self { align-self: flex-start; }

/* Headline pill: the words stay on the left line, the pill hangs out to the left */
.tv-wm, .tv-w, .tv-pill-tx { display: inline-block; }
.tv-pill { position: relative; display: inline-block; white-space: nowrap; margin: .05em 0 0 -.3em; padding: 0 .3em .05em; color: var(--ink); }
.tv-pill-bg { position: absolute; inset: 0; border-radius: 999px; background: var(--sun); }
.tv-pill-tx { position: relative; }
.tv-ring { position: absolute; right: -340px; top: 30px; width: 620px; height: 620px; pointer-events: none; }
.tv-ring i { display: block; width: 100%; height: 100%; border-radius: 50%; border: 44px solid var(--coral); }
.tv-ring-sm { right: -300px; top: -20px; width: 520px; height: 520px; }
.tv-ring-sm i, .tv-ring-sky i { border-color: var(--sky); }
.tv-ring-close { right: -180px; top: -160px; width: 560px; height: 560px; }
.tv-relz { position: relative; }
@media (max-width: 1180px) { .tv-ring { display: none; } }

/* Tickets */
.tv-ticket { position: relative; background: var(--white); color: var(--ink); border-radius: 28px; overflow: hidden; transform: rotate(2deg); box-shadow: 0 8px 24px rgba(10, 42, 94, .2); }
.tv-ticket-col { width: 100%; max-width: 440px; justify-self: center; position: relative; }
.tv-perfo { position: relative; height: 0; border-top: 2px dashed #E8EEF5; }
.tv-perfo i { position: absolute; top: -13px; width: 24px; height: 24px; border-radius: 50%; background: var(--sky); }
.tv-perfo i:first-child { left: -13px; } .tv-perfo i:last-child { right: -13px; }
.tv-perfo-ink i { background: var(--ink); }
.tv-tk-body { padding: 18px 28px 24px; display: flex; flex-direction: column; gap: 6px; }
.tv-tk-photo { position: relative; aspect-ratio: 16 / 10; }
.tv-tk-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.tv-roster { margin: 0; padding: 18px 28px 24px; list-style: none; display: flex; flex-direction: column; gap: 14px; }
.tv-roster li { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tv-roster span.who { display: flex; flex-direction: column; min-width: 0; }
.tv-roster small { font-size: 14px; line-height: 20px; color: #4A5B78; }
@media (max-width: 900px) { .tv-ticket { transform: none; } }

/* Wallet of passes */
.tv-wallet { display: flex; flex-direction: column; }
.tv-pass { position: relative; border-radius: 28px; overflow: hidden; color: var(--ink); box-shadow: 0 -8px 20px rgba(6, 26, 58, .24); }
.tv-pass + .tv-pass { margin-top: -28px; }
.tv-c-sky { background: var(--sky); } .tv-c-sun { background: var(--sun); } .tv-c-coral { background: var(--coral); }
.tv-c-mint { background: #E7FAF5; } .tv-c-white { background: var(--white); } .tv-c-wash { background: #E3F5FF; }
.tv-c-blank { background: #14356F; color: var(--white); border: 2px dashed var(--sky); }
.tv-pass h2, .tv-pass h3 { margin: 0; }
.tv-pass-head { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px 50px; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; font-family: var(--display); font-weight: 800; font-size: clamp(18px, 1.7vw, 22px); line-height: 1.2; letter-spacing: -.4px; }
.tv-pass-head:focus-visible { outline: 3px solid currentColor; outline-offset: -6px; }
.tv-pass:last-child .tv-pass-head { padding-bottom: 22px; }
.tv-pass.is-open .tv-pass-head { padding-bottom: 16px; }
.tv-plus { flex: none; position: relative; width: 20px; height: 20px; }
.tv-plus::before { content: ""; position: absolute; left: 0; top: 9px; width: 20px; height: 2.5px; border-radius: 2px; background: currentColor; }
.tv-plus::after { content: ""; position: absolute; left: 9px; top: 0; width: 2.5px; height: 20px; border-radius: 2px; background: currentColor; }
.tv-pass.is-open .tv-plus { transform: rotate(45deg); }
.tv-pass-body { display: grid; grid-template-rows: 1fr; }
.tv-js .tv-pass-body { grid-template-rows: 0fr; visibility: hidden; }
.tv-js .tv-pass.is-open .tv-pass-body { grid-template-rows: 1fr; visibility: visible; }
.tv-pass-in { min-height: 0; overflow: hidden; }
.tv-pass-stack { padding: 20px 24px 52px; display: flex; flex-direction: column; gap: 16px; }
.tv-pass-stack p { margin: 0; }
.tv-pass:last-child .tv-pass-stack { padding-bottom: 24px; }
.tv-perf { position: relative; height: 0; opacity: 0; }
.tv-pass.is-open .tv-perf { opacity: 1; }
.tv-perf-line { position: absolute; left: 0; right: 0; top: 0; border-top: 2px dashed currentColor; }
.tv-notch { position: absolute; top: -12px; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); }
.tv-notch-l { left: -13px; } .tv-notch-r { right: -13px; }
.tv-fields { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(130px, 100%), 1fr)); gap: 12px 20px; }
.tv-fields dt { font-size: 12px; line-height: 16px; font-weight: 700; }
.tv-fields dd { margin: 2px 0 0; font-size: 15px; line-height: 21px; font-weight: 500; }
.tv-pass .tv-apply { align-self: flex-start; min-height: 50px; padding: 8px 24px; background: var(--ink); color: var(--white); }
.tv-c-blank .tv-apply { background: var(--white); color: var(--ink); }
.tv-sticky { position: sticky; top: 24px; }
@media (max-width: 980px) { .tv-sticky { position: static; } }
.tv-note { margin: 8px 0 0; padding: 20px 24px; border-radius: 28px; background: #14356F; color: #C9D6EA; font-size: 15px; line-height: 23px; }
.tv-note b { color: var(--sun); }

/* Example cards */
.tv-fan { --fan: 1; display: flex; justify-content: center; }
.tv-card3 { position: relative; flex: 0 1 clamp(170px, 19vw, 250px); margin: 0 -8px; transform: translate3d(calc(var(--dx) * (1 - var(--fan))), calc(var(--dy) * var(--fan)), 0) rotate(calc(var(--rot) * var(--fan))); }
.tv-card3:nth-child(1) { --dx: 192%; --dy: 44px; --rot: -9deg; z-index: 1; }
.tv-card3:nth-child(2) { --dx: 96%; --dy: 11px; --rot: -4.5deg; z-index: 2; }
.tv-card3:nth-child(3) { --dx: 0%; --dy: 0px; --rot: 0deg; z-index: 5; }
.tv-card3:nth-child(4) { --dx: -96%; --dy: 11px; --rot: 4.5deg; z-index: 3; }
.tv-card3:nth-child(5) { --dx: -192%; --dy: 44px; --rot: 9deg; z-index: 4; }
.tv-card3-in { position: relative; aspect-ratio: 3 / 4; border-radius: 28px; overflow: hidden; box-shadow: 0 8px 24px rgba(6, 26, 58, .45); }
.tv-card3 img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.tv-card3 .tv-chip-photo { font-size: 11px; line-height: 17px; left: 10px; top: 10px; bottom: auto; padding: 2px 9px; }
.tv-card3 figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 40px 16px 16px; background: linear-gradient(to top, rgba(10, 42, 94, .9), rgba(10, 42, 94, 0)); display: flex; flex-direction: column; color: var(--white); }
.tv-card3 figcaption strong { font-size: 18px; line-height: 24px; }
.tv-card3 figcaption span { font-size: 13px; line-height: 18px; }
.tv-fan-sec { padding: clamp(56px, 7vw, 96px) 0 clamp(72px, 8vw, 120px); }
.tv-fan-note { margin: 56px auto 0; padding: 0 24px; max-width: 720px; text-align: center; font-size: 14px; line-height: 20px; color: #C9D6EA; }
@media (max-width: 820px) {
  .tv-fan { justify-content: flex-start; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; padding: 0 24px 8px; scrollbar-width: none; }
  .tv-card3 { flex: 0 0 min(70vw, 260px); margin: 0; transform: none; scroll-snap-align: center; }
}

/* Sticky feature cards */
.tv-sticks { display: flex; flex-direction: column; gap: 24px; }
.tv-stick { position: sticky; top: 24px; border-radius: 28px; overflow: hidden; color: var(--ink); box-shadow: 0 -8px 24px rgba(6, 26, 58, .3); transform-origin: top center; }
.tv-stick:nth-child(2) { top: 40px; } .tv-stick:nth-child(3) { top: 56px; }
.tv-stick-in { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); }
.tv-stick-t { padding: clamp(28px, 4vw, 48px); display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.tv-stick-t p { margin: 0; }
.tv-stick-q { padding: clamp(28px, 4vw, 48px); min-height: 300px; display: flex; align-items: center; }
.tv-stick-photo { position: relative; min-height: 360px; overflow: hidden; }
.tv-stick-photo img { position: absolute; left: 0; top: -8%; width: 100%; height: 116%; object-fit: cover; display: block; }
.tv-quote { width: 100%; padding: 18px 20px; border-radius: 14px; background: var(--white); color: var(--ink); box-shadow: 0 8px 24px rgba(10, 42, 94, .14); }
.tv-quote p { margin: 0; }
.tv-quote .a { font-size: 12px; line-height: 16px; font-weight: 700; }
.tv-quote .b { margin-top: 4px; font-size: 18px; line-height: 25px; font-weight: 700; }
.tv-quote .c { margin-top: 6px; font-size: 12px; line-height: 18px; color: #4A5B78; }
.tv-stick-photo .tv-quote { position: absolute; left: 20px; right: 20px; bottom: 20px; width: auto; }
.tv-seam { position: absolute; top: 0; bottom: 0; left: 50%; border-left: 2px dashed rgba(10, 42, 94, .32); }
@media (max-width: 860px) { .tv-seam { display: none; } .tv-stick, .tv-stick:nth-child(2), .tv-stick:nth-child(3) { position: relative; top: auto; } }

/* Know why */
.tv-know { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: 32px; align-items: center; }
.tv-know h3 { margin: 0; }
.tv-know p { margin: 0; color: #4A5B78; }
.tv-profile { justify-self: center; width: 100%; max-width: 380px; border-radius: 28px; overflow: hidden; background: var(--white); box-shadow: 0 8px 24px rgba(10, 42, 94, .12); }
.tv-profile-photo { position: relative; aspect-ratio: 4 / 3.6; overflow: hidden; }
.tv-profile-photo img { position: absolute; left: 0; top: -8%; width: 100%; height: 116%; object-fit: cover; object-position: center 22%; display: block; }
.tv-profile-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 10px; font-size: 14px; line-height: 20px; }
.tv-hypeq { padding: 10px 12px; border-radius: 14px; background: #FFE6E0; color: var(--ink) !important; }

/* Map */
.tv-map { --p: 1; position: relative; aspect-ratio: 8 / 7; border-radius: 28px; overflow: hidden; background: #14356F; }
.tv-map-light { background: #F6F9FC; }
.tv-map svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.tv-route { stroke-dasharray: 1 1; stroke-dashoffset: calc(1 - var(--p)); }
.tv-g-you { transform: translate(calc(var(--p) * 208px), calc(var(--p) * 200px)); }
.tv-g-them { transform: translate(calc(var(--p) * -208px), calc(var(--p) * -200px)); }
.tv-map .tv-chip { position: absolute; margin: 0; background: var(--ink); color: var(--white); }
.tv-map-light .tv-chip { background: var(--white); color: var(--ink); }
.tv-pin-you { left: 7%; top: 5%; } .tv-pin-them { right: 7%; bottom: 5%; }
.tv-spot { position: absolute; left: 6%; top: 62%; width: min(56%, 280px); padding: 12px 16px; border-radius: 14px; background: var(--white); color: var(--ink); box-shadow: 0 8px 24px rgba(6, 26, 58, .4); }
.tv-spot p { margin: 0; }
.tv-spot .a { font-size: 12px; line-height: 16px; font-weight: 700; color: #4A5B78; }
.tv-spot .b { margin-top: 2px; font-size: 16px; line-height: 22px; font-weight: 700; }
.tv-spot .c { margin-top: 2px; font-size: 13px; line-height: 18px; color: #4A5B78; }
.tv-spot-ink { width: auto; padding: 10px 18px; background: var(--ink); color: var(--white); font-weight: 700; }

.tv-photo { position: relative; aspect-ratio: 3 / 2; border-radius: 28px; overflow: hidden; transform: rotate(-1.5deg); box-shadow: 0 8px 24px rgba(10, 42, 94, .2); }
.tv-photo img { position: absolute; left: 0; top: -8%; width: 100%; height: 116%; object-fit: cover; display: block; }
.tv-track { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); gap: 3px; border-radius: 28px; overflow: hidden; }
.tv-track li { display: flex; flex-direction: column; gap: 8px; padding: 24px; background: #E3F5FF; color: var(--ink); }
.tv-track li.now { background: var(--sun); }
.tv-track li.next { background: #F6F9FC; }
.tv-track .st { display: flex; align-items: center; gap: 8px; font-size: 13px; line-height: 18px; font-weight: 700; }
.tv-track b { font-size: 18px; line-height: 24px; }
.tv-track .x { color: #4A5B78; }
.tv-track .now .x { color: var(--ink); }
.tv-dot { position: relative; width: 8px; height: 8px; border-radius: 50%; background: var(--ink); }
.tv-lines { position: relative; margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 20px; }
.tv-lines::before { content: ""; position: absolute; left: 21px; top: 22px; bottom: 22px; width: 2px; background: var(--ink); }
.tv-lines li { position: relative; display: flex; gap: 16px; }
.tv-lines .n { flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--ink); color: var(--white); display: flex; align-items: center; justify-content: center; font-weight: 700; }
.tv-lines .t { display: flex; flex-direction: column; }
.tv-lines b { font-size: 18px; line-height: 24px; }
.tv-qr { flex: none; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px; border-radius: 28px; background: var(--white); color: var(--ink); }
.tv-qr img { width: 160px; height: 160px; display: block; }
.tv-qr p { margin: 0; font-size: 14px; line-height: 20px; font-weight: 700; }
.tv-closer { position: relative; overflow: hidden; }
.tv-closer-t { flex: 1 1 560px; display: flex; flex-direction: column; align-items: flex-start; gap: 28px; }
.tv-closer-h { font-size: clamp(36px, 6vw, 84px); line-height: 1.04; letter-spacing: -.04em; }

/* Ticker */
.tv-marq { overflow: hidden; background: #061A3A; color: var(--white); padding: clamp(28px, 4vw, 48px) 0 0; }
.tv-marq-track { display: flex; width: max-content; }
.tv-marq span { flex: none; display: flex; align-items: center; gap: clamp(20px, 3vw, 40px); padding-right: clamp(20px, 3vw, 40px); font-family: var(--display); font-weight: 800; font-size: clamp(36px, 6vw, 84px); line-height: 1.15; letter-spacing: -.04em; white-space: nowrap; }
.tv-marq svg { flex: none; width: 1.1em; height: .68em; }
.tv-fresh .foot { background: #061A3A; }

/* Forms */
.tv-fresh .form label { color: var(--ink); }
.tv-fresh .btn { min-height: 56px; }
.tv-fresh .btn-sm { min-height: 44px; }
.tv-form-top { padding: clamp(24px, 3vw, 32px); }
.tv-form-stub { padding: 20px clamp(24px, 3vw, 32px) clamp(24px, 3vw, 32px); display: flex; flex-direction: column; gap: 14px; }
.tv-form-card .form { margin: 0; max-width: none; display: block; }
.tv-form-top.tv-stack label { display: flex; flex-direction: column; gap: 6px; }
.tv-fresh .fine { color: #4A5B78; }

/* Legal */
.tv-progress-bar { position: fixed; left: 0; right: 0; top: 0; height: 5px; z-index: 60; pointer-events: none; }
.tv-progress { height: 100%; background: var(--coral); transform: scaleX(0); transform-origin: left center; }
.tv-legal { display: flex; flex-wrap: wrap; gap: 32px 56px; align-items: flex-start; padding-top: clamp(24px, 3vw, 40px); padding-bottom: clamp(56px, 7vw, 88px); }
.tv-legal nav { flex: 1 1 220px; max-width: 300px; display: flex; flex-wrap: wrap; gap: 8px; }
.tv-legal nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border-radius: 999px; border: 2px solid var(--ink); color: var(--ink); font-weight: 700; font-size: 14px; line-height: 18px; text-decoration: none; }
.tv-legal nav a[aria-current="page"] { background: var(--ink); color: var(--white); }
.tv-legal article { flex: 999 1 560px; min-width: 0; max-width: 760px; }
.tv-legal article section { margin-top: 26px; }
.tv-legal article h2 { font-family: var(--display); font-weight: 800; font-size: 22px; line-height: 1.18; letter-spacing: -.4px; margin: 0 0 10px; }
.tv-legal article p { margin: 0 0 12px; color: #4A5B78; }
.tv-legal .updated { margin-top: 12px; color: #4A5B78; }
.tv-legal .tv-lead { margin-top: 20px; color: var(--ink); max-width: none; }

.tv-alert { margin: 0; padding: 18px 24px; border-radius: 16px; background: var(--coral); color: var(--ink); font-weight: 700; font-size: 18px; line-height: 26px; }
.tv-panel { padding: 32px; border-radius: 28px; color: var(--ink); }
.tv-panel ol { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; }
.tv-panel p { margin: 0; }
.tv-panel .tv-cta { margin-top: auto; }
.tv-notice { min-height: 62vh; display: flex; align-items: center; justify-content: center; padding-top: 32px; padding-bottom: 72px; }
.tv-notice-card { width: 100%; max-width: 560px; padding: clamp(28px, 4vw, 44px); gap: 18px; }
.tv-notice-card p { margin: 0; font-size: 18px; line-height: 27px; color: #4A5B78; }
.tv-meet { position: relative; width: 124px; height: 72px; }
.tv-meet i { position: absolute; top: 0; width: 72px; height: 72px; border-radius: 50%; border: 10px solid var(--sky); }
.tv-meet i:first-child { left: 0; }
.tv-meet i:last-child { right: 0; border-color: var(--coral); }

/* Join the beta */
.tv-beta h1 { margin-bottom: 4px; }
.tv-beta .beta-wrap { max-width: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 20px; }
.tv-beta .beta-form, .tv-beta .beta-done { background: var(--white); color: var(--ink); border-radius: 28px; padding: clamp(24px, 3vw, 32px); box-shadow: 0 8px 24px rgba(10, 42, 94, .14); margin: 0; max-width: none; }
.tv-beta .beta-q { color: var(--ink); font-family: var(--display); font-weight: 800; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.18; letter-spacing: -.5px; }
.tv-beta .beta-q span { color: inherit; }
.tv-beta .beta-input { background: #F6F9FC; color: var(--ink); border: 1px solid #77849B; border-radius: 16px; }
.tv-beta .beta-help, .tv-beta .beta-enter, .tv-beta .note, .tv-beta .lead-dark { color: #4A5B78; }
.tv-beta .beta-top { color: var(--ink); }
.tv-beta .eyebrow { color: var(--ink); }
.tv-beta-rings { --left: 4; position: relative; height: 190px; background: var(--ink); overflow: hidden; }
.tv-beta-rings i { position: absolute; left: 50%; top: 50%; width: 112px; height: 112px; margin-top: -56px; border-radius: 50%; border: 16px solid var(--sky); }
.tv-beta-rings i:first-child { margin-left: -80px; transform: translateX(calc(var(--left) * -22px)); }
.tv-beta-rings i:last-child { margin-left: -32px; border-color: var(--coral); transform: translateX(calc(var(--left) * 22px)); }
.tv-beta .beta-steps { margin: 0; padding: 20px 28px 24px; }

/* Cities, Hype, partners: the same screens as before, on the new colours */
.tv-city #c-title span { display: inline-block; margin-left: -.3em; padding: 0 .3em .05em; border-radius: 999px; background: var(--sun); color: var(--ink); }
.tv-city .eyebrow, .tv-city .lead { color: inherit; }
.tv-city .display { font-family: var(--display); color: var(--ink); }
.tv-city-body .city-grid > div:not(.ink-card) { background: var(--white); color: var(--ink); border-radius: 28px; padding: clamp(24px, 3vw, 32px); }
.tv-city-body .ink-card { background: #14356F; border-radius: 28px; }
.tv-city-body .center, .tv-city-body .center .h2 { color: var(--white); }
.tv-hype .hype-in { max-width: 640px; }
.tv-hype #hype-form, .tv-hype #hype-done { background: var(--white); border-radius: 28px; padding: clamp(24px, 3vw, 32px); box-shadow: 0 8px 24px rgba(10, 42, 94, .14); }
.tv-partners .pt-side h1 span { display: inline-block; margin-left: -.3em; padding: 0 .3em .05em; border-radius: 999px; background: var(--sun); color: var(--ink); }

/* ---------- Motion ---------- */
.tv-intro { display: none; }
.tv-intro-on .tv-intro { display: block; position: fixed; left: 0; right: 0; top: 0; height: 100vh; z-index: 100; background: var(--ink); border-radius: 0 0 48px 48px; pointer-events: none; animation: tv-lift .55s cubic-bezier(.76, 0, .24, 1) .58s both; }
.tv-intro i { position: absolute; top: min(42vh, 340px); left: 50%; width: clamp(84px, 11vw, 132px); height: clamp(84px, 11vw, 132px); border-radius: 50%; border: clamp(12px, 1.6vw, 18px) solid var(--sky); }
.tv-intro i:nth-child(1), .tv-intro i:nth-child(3) { margin-left: clamp(-108px, -9.2vw, -70px); animation: tv-from-l .5s cubic-bezier(.34, 1.45, .64, 1) both; }
.tv-intro i:nth-child(2) { margin-left: clamp(-24px, -2vw, -14px); border-color: var(--coral); animation: tv-from-r .5s cubic-bezier(.34, 1.45, .64, 1) both; }
.tv-intro i:nth-child(3) { clip-path: inset(0 0 52% 0); }
.tv-long .tv-intro { animation-duration: .68s; animation-delay: 1.02s; }
.tv-long .tv-intro i { width: clamp(104px, 15vw, 172px); height: clamp(104px, 15vw, 172px); border-width: clamp(14px, 2vw, 22px); animation-duration: .72s; animation-delay: .1s; }
.tv-long .tv-intro i:nth-child(1), .tv-long .tv-intro i:nth-child(3) { margin-left: clamp(-140px, -12.2vw, -85px); }
.tv-long .tv-intro i:nth-child(2) { margin-left: clamp(-32px, -2.8vw, -20px); }

.tv-motion .tv-wm { overflow: hidden; vertical-align: top; padding: .04em .05em .17em 0; margin: -.04em -.05em -.17em 0; }
.tv-motion .tv-w { animation: tv-up .8s cubic-bezier(.16, 1, .3, 1) both; animation-delay: var(--d); }
.tv-motion .tv-wm:nth-of-type(2) .tv-w { animation-delay: calc(var(--d) + .06s); }
.tv-motion .tv-wm:nth-of-type(3) .tv-w { animation-delay: calc(var(--d) + .12s); }
.tv-motion .tv-wm:nth-of-type(4) .tv-w { animation-delay: calc(var(--d) + .18s); }
.tv-motion .tv-wm:nth-of-type(5) .tv-w { animation-delay: calc(var(--d) + .24s); }
.tv-motion .tv-wm:nth-of-type(6) .tv-w { animation-delay: calc(var(--d) + .3s); }
.tv-motion .tv-pill-bg { transform-origin: left center; animation: tv-wipe .55s cubic-bezier(.76, 0, .24, 1) calc(var(--d) + .3s) both; }
.tv-motion .tv-pill-tx { animation: tv-tx .45s cubic-bezier(.16, 1, .3, 1) calc(var(--d) + .5s) both; }
.tv-motion .tv-hf { animation: tv-fade-up .7s cubic-bezier(.16, 1, .3, 1) calc(var(--d) + .6s) both; }
.tv-motion .tv-hf0 { animation: tv-fade-up .7s cubic-bezier(.16, 1, .3, 1) var(--d) both; }
.tv-motion .tv-ring i { animation: tv-ring .95s cubic-bezier(.16, 1, .3, 1) var(--d) both; }
.tv-motion .tv-ring-close i { animation: none; }
.tv-motion .tv-par-a { transform: translate3d(0, calc(var(--sy, 0) * .16px), 0); }
.tv-motion .tv-par-b { transform: translate3d(0, calc(var(--sy, 0) * .07px), 0); }
.tv-motion .tv-par-r { transform: translate3d(calc(var(--sy, 0) * -.2px), calc(var(--sy, 0) * .1px), 0); }
.tv-motion .tv-drop { animation: tv-drop 1s cubic-bezier(.34, 1.3, .64, 1) calc(var(--d) + .22s) both; }
.tv-motion .tv-float { animation: tv-float 6s ease-in-out calc(var(--d) + 1.6s) infinite; }
.tv-motion .tv-row-in { animation: tv-fade-up .55s cubic-bezier(.16, 1, .3, 1) calc(var(--d) + .75s) both; }
.tv-motion .tv-badge { animation: tv-pop .5s cubic-bezier(.34, 1.56, .64, 1) calc(var(--d) + .9s) both; }

.d1 { transition-delay: 80ms; } .d2 { transition-delay: 160ms; } .d3 { transition-delay: 240ms; } .d4 { transition-delay: 320ms; } .d5 { transition-delay: 400ms; } .d6 { transition-delay: 480ms; }
.tv-armed .tv-reveal:not(.is-in) { opacity: 0; transform: translateY(30px); }
.tv-motion .tv-reveal.is-in { transition: opacity .75s cubic-bezier(.16, 1, .3, 1), transform .85s cubic-bezier(.16, 1, .3, 1); }
.tv-armed .tv-reveal-x:not(.is-in) { opacity: 0; transform: translateX(-46px); }
.tv-armed .tv-reveal-xr:not(.is-in) { opacity: 0; transform: translateX(46px); }
.tv-motion .tv-reveal-x.is-in, .tv-motion .tv-reveal-xr.is-in { transition: opacity .6s ease, transform .8s cubic-bezier(.16, 1, .3, 1); }
.tv-armed .tv-reveal-p:not(.is-in) { opacity: 0; transform: scale(.82) rotate(-3deg); }
.tv-motion .tv-reveal-p.is-in { transition: opacity .4s ease, transform .75s cubic-bezier(.34, 1.56, .64, 1); }
.tv-motion .tv-hover:hover { transform: translateY(-8px) rotate(-1deg); transition: transform .25s ease !important; transition-delay: 0s !important; }
.tv-motion .tv-reveal.is-in .tv-ic { animation: tv-pop .6s cubic-bezier(.34, 1.56, .64, 1) both; }
.tv-ic { display: flex; flex-grow: 1; }
.tv-motion .tv-card3-in { transition: transform .3s cubic-bezier(.34, 1.56, .64, 1); }
.tv-motion .tv-card3-in:hover { transform: translateY(-14px); }
.tv-armed .tv-lines:not(.is-in)::before { transform: scaleY(0); }
.tv-motion .tv-lines::before { transform-origin: top center; transition: transform 1.1s cubic-bezier(.65, 0, .35, 1) .1s; }
.tv-motion .tv-dot::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--ink); animation: tv-ping 1.8s ease-out infinite; }

.tv-motion .tv-pass { transition: transform .95s cubic-bezier(.16, 1, .3, 1), opacity .5s ease; }
.tv-pass:nth-child(2) { transition-delay: 85ms; } .tv-pass:nth-child(3) { transition-delay: 170ms; } .tv-pass:nth-child(4) { transition-delay: 255ms; }
.tv-pass:nth-child(5) { transition-delay: 340ms; } .tv-pass:nth-child(6) { transition-delay: 425ms; } .tv-pass:nth-child(7) { transition-delay: 510ms; }
.tv-armed .tv-wallet:not(.is-in) .tv-pass { opacity: 0; transform: translateY(170px) rotate(-5deg); }
.tv-armed .tv-wallet:not(.is-in) .tv-pass:nth-child(even) { transform: translateY(170px) rotate(4deg); }
.tv-motion .tv-wallet.is-settled .tv-pass { transition-delay: 0s !important; transition-duration: .28s; }
.tv-motion .tv-wallet.is-settled .tv-pass:not(.is-open):hover { transform: translateY(-12px); }
.tv-motion .tv-pass-head { transition: padding .5s cubic-bezier(.22, 1, .36, 1); }
.tv-motion .tv-plus { transition: transform .4s cubic-bezier(.34, 1.56, .64, 1); }
.tv-motion .tv-pass-body { transition: grid-template-rows .55s cubic-bezier(.22, 1, .36, 1), visibility 0s linear .55s; }
.tv-motion .tv-pass.is-open .tv-pass-body { transition: grid-template-rows .55s cubic-bezier(.22, 1, .36, 1), visibility 0s; }
.tv-motion .tv-pass.is-open .tv-pass-stack > * { animation: tv-fade-up .5s cubic-bezier(.16, 1, .3, 1) .1s both; }
.tv-motion .tv-pass.is-open .tv-perf-line { transform-origin: left center; animation: tv-wipe .55s cubic-bezier(.65, 0, .35, 1) both; }
.tv-motion .tv-pass.is-open .tv-notch { animation: tv-pop .45s cubic-bezier(.34, 1.56, .64, 1) .1s both; }

.tv-armed .tv-map:not(.is-met) .tv-spot { opacity: 0; transform: translateY(16px) scale(.8); }
.tv-motion .tv-spot { transform-origin: left top; transition: opacity .3s ease, transform .6s cubic-bezier(.34, 1.56, .64, 1); }
.tv-motion .tv-btn { transition: transform .22s cubic-bezier(.34, 1.56, .64, 1); }
.tv-motion .tv-btn:hover { transform: translateY(-2px) scale(1.03); }
.tv-motion .tv-btn:active { transform: scale(.97); }
.tv-motion .tv-marq-track { animation: tv-marq 34s linear infinite; }
.tv-motion .tv-marq:hover .tv-marq-track { animation-play-state: paused; }
.tv-motion .tv-meet i:first-child { animation: tv-from-l-s .75s cubic-bezier(.34, 1.45, .64, 1) calc(var(--d) + .4s) both; }
.tv-motion .tv-meet i:last-child { animation: tv-from-r-s .75s cubic-bezier(.34, 1.45, .64, 1) calc(var(--d) + .4s) both; }
.tv-motion .tv-beta-rings i { transition: transform .7s cubic-bezier(.34, 1.3, .64, 1); }
.tv-motion .tv-flash { animation: tv-flash 1.1s ease .55s both; }
.tv-motion .tv-form-top, .tv-motion .tv-form-stub, .tv-motion .tv-form-perf { transition: opacity .42s ease, transform .5s cubic-bezier(.5, 0, .9, .4); }
.tv-sending .tv-form-top { opacity: 0; transform: translateY(-14px); }
.tv-sending .tv-form-perf { opacity: 0; }
.tv-sending .tv-form-stub { opacity: 0; transform: translateY(90px) rotate(7deg); }

@keyframes tv-lift { 0% { transform: translateY(0); visibility: visible; } 99% { visibility: visible; } 100% { transform: translateY(-104%); visibility: hidden; } }
@keyframes tv-from-l { from { transform: translateX(-70vw); } to { transform: translateX(0); } }
@keyframes tv-from-r { from { transform: translateX(70vw); } to { transform: translateX(0); } }
@keyframes tv-from-l-s { from { transform: translateX(-90px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes tv-from-r-s { from { transform: translateX(90px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes tv-up { from { transform: translateY(118%); } to { transform: translateY(0); } }
@keyframes tv-wipe { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes tv-tx { from { opacity: 0; transform: translateX(-.28em); } to { opacity: 1; transform: translateX(0); } }
@keyframes tv-fade-up { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@keyframes tv-ring { from { opacity: 0; transform: translateX(360px); } to { opacity: 1; transform: translateX(0); } }
@keyframes tv-drop { from { opacity: 0; transform: translateY(-92vh) rotate(-16deg); } 18% { opacity: 1; } to { opacity: 1; transform: translateY(0) rotate(0); } }
@keyframes tv-float { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-9px) rotate(.7deg); } }
@keyframes tv-pop { from { opacity: 0; transform: scale(.3); } to { opacity: 1; transform: scale(1); } }
@keyframes tv-ping { from { transform: scale(1); opacity: .55; } to { transform: scale(3.1); opacity: 0; } }
@keyframes tv-marq { to { transform: translateX(-50%); } }
@keyframes tv-flash { 0%, 100% { box-shadow: 0 0 0 0 rgba(255, 217, 61, 0); } 35% { box-shadow: 0 0 0 6px var(--sun); } }

/* Small layout helpers */
.tv-m0 { margin-top: 0; margin-bottom: 0; }
.tv-pb { padding-bottom: clamp(56px, 7vw, 96px); }
.tv-pb-s { padding-bottom: 32px; }
.tv-gapt { margin-top: 32px; }
.tv-mb12 { margin-bottom: 12px; }
.tv-gap6 { gap: 6px; } .tv-gap32 { gap: 32px; }
.tv-narrow { max-width: 920px; margin: 0 auto; width: 100%; }
.tv-plain { margin: 0; padding: 0; list-style: none; }
.tv-small { font-size: 14px; line-height: 21px; }
.tv-eyebrowxs { font-size: 12px; line-height: 16px; font-weight: 700; margin: 0; }
.tv-tk-name { font-size: 24px; line-height: 1.2; letter-spacing: -.4px; }
.tv-tk-line { margin: 0; font-size: 14px; line-height: 20px; }
.tv-tk-perk { margin: 8px 0 0; }
.tv-tk-head { padding: 22px 28px 16px; display: flex; flex-direction: column; gap: 6px; }
.tv-tk-h { font-size: 20px; line-height: 1.2; letter-spacing: -.4px; }
.tv-stick-h { font-size: clamp(28px, 3.4vw, 46px); line-height: 1.08; letter-spacing: -.03em; }
.tv-stick-lead { font-size: 18px; line-height: 27px; font-weight: 500; }
.tv-know-h { font-size: clamp(30px, 4.2vw, 60px); line-height: 1.08; letter-spacing: -.03em; }
.tv-know-t { font-size: 20px; line-height: 1.2; letter-spacing: -.4px; }
.tv-profile-name { font-size: 20px; line-height: 26px; }
.tv-profile-body p { margin: 0; color: #4A5B78; }
.tv-map-h { font-size: clamp(32px, 4.4vw, 62px); line-height: 1.06; letter-spacing: -.03em; }
.tv-safe-h { font-size: clamp(30px, 4vw, 56px); line-height: 1.1; letter-spacing: -.03em; max-width: 900px; }
.tv-tile-h { font-size: 26px; line-height: 1.15; letter-spacing: -.5px; }
.tv-inklink { color: var(--ink); }
.tv-inklink:hover { color: var(--ink); }
section.tv-g-ink a:not(.tv-cta):not(.btn) { color: var(--white); }
section.tv-g-ink .tv-card a:not(.tv-cta), section.tv-g-ink .tv-pass a:not(.tv-cta) { color: var(--ink); }
.tv-grid2w { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); gap: 12px; }
.tv-hero-grid { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); }
@media (max-width: 980px) { .tv-hero-grid { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 1100px) { .tv-span2 { grid-column: span 2; } }
.tv-count { display: inline-block; }
.tv-fresh main { overflow-x: clip; }
.tv-city .eyebrow { align-self: flex-start; }
.tv-wm { white-space: nowrap; }
.tv-roster .tv-chip { flex: none; white-space: nowrap; }
.tv-city-body .city-grid > div:not(.ink-card) a:not(.btn) { color: var(--link); }
.tv-city-body .card-rings { display: none; }
.tv-fresh #how { padding: 0 clamp(24px, 3vw, 32px) clamp(56px, 7vw, 96px); }
.tv-fresh #safety { padding: 0; }

/* Home: the photo hero with the five cards, with an entrance on top */
.tv-cards-wrap { position: relative; z-index: 3; display: flow-root; padding-bottom: 96px; }
.tv-photo-home #how { padding-top: clamp(56px, 7vw, 96px); }
.tv-motion .tv-photo-home .h-hero-img { animation: tv-hero-zoom 1.9s cubic-bezier(.16, 1, .3, 1) var(--d) both; }
.tv-motion .tv-photo-home .h-hero .eyebrow { animation: tv-fade-up .7s cubic-bezier(.16, 1, .3, 1) var(--d) both; }
.tv-motion .tv-photo-home .h-display { animation: tv-rise-big .9s cubic-bezier(.16, 1, .3, 1) calc(var(--d) + .08s) both; }
.tv-motion .tv-photo-home .h-hero-btns { animation: tv-fade-up .7s cubic-bezier(.16, 1, .3, 1) calc(var(--d) + .3s) both; }
.tv-motion .tv-photo-home .h-card { animation: tv-card-in .85s cubic-bezier(.34, 1.3, .64, 1) calc(var(--d) + .4s) backwards; }
.tv-motion .tv-photo-home .h-card:nth-child(1) { animation-delay: calc(var(--d) + .5s); }
.tv-motion .tv-photo-home .h-card:nth-child(2) { animation-delay: calc(var(--d) + .44s); }
.tv-motion .tv-photo-home .h-card:nth-child(4) { animation-delay: calc(var(--d) + .44s); }
.tv-motion .tv-photo-home .h-card:nth-child(5) { animation-delay: calc(var(--d) + .5s); }
@keyframes tv-hero-zoom { from { scale: 1.08; } to { scale: 1; } }
@keyframes tv-rise-big { from { opacity: 0; translate: 0 34px; } to { opacity: 1; translate: 0 0; } }
@keyframes tv-card-in { from { opacity: 0; translate: 0 150px; } to { opacity: 1; translate: 0 0; } }
.tv-cards-wrap + .tv-sheet { z-index: 4; }
/* The five cards react to the mouse, to a click or tap, and to scrolling on a phone (motion.js sets the numbers). */
.tv-motion .tv-photo-home .h-card {
  --r: 0deg; --y: 0px; --s: 1; --rx: 0deg; --ry: 0deg; --px: 0px;
  transform: perspective(900px) translateY(var(--y)) rotate(var(--r)) rotateX(var(--rx)) rotateY(var(--ry)) scale(var(--s));
  translate: var(--px) 0;
  transition: transform .5s cubic-bezier(.34, 1.56, .64, 1), translate .45s cubic-bezier(.34, 1.56, .64, 1), box-shadow .3s;
  cursor: pointer; -webkit-tap-highlight-color: transparent; touch-action: pan-y;
}
.tv-motion .tv-photo-home .h-card:nth-child(1) { --r: -5deg; --y: 18px; }
.tv-motion .tv-photo-home .h-card:nth-child(2) { --r: -2.5deg; }
.tv-motion .tv-photo-home .h-card:nth-child(3) { --y: -10px; }
.tv-motion .tv-photo-home .h-card:nth-child(4) { --r: 2.5deg; }
.tv-motion .tv-photo-home .h-card:nth-child(5) { --r: 5deg; --y: 18px; }
.tv-motion .tv-photo-home .h-card img { transform: translate(var(--ix, 0px), var(--iy, 0px)) scale(1.1); transition: transform .3s; }
.tv-motion .tv-photo-home .h-card:focus-visible { outline: 3px solid var(--sky); outline-offset: 4px; }
.tv-motion .tv-photo-home .h-card.is-hot { --r: 0deg !important; --y: -14px !important; --s: 1.06 !important; z-index: 2; box-shadow: 0 22px 44px rgba(10, 42, 94, .32); transition: transform .16s ease-out, translate .45s cubic-bezier(.34, 1.56, .64, 1), box-shadow .3s; }
.tv-motion .tv-photo-home .h-card.is-up { --r: 0deg !important; --y: -26px !important; --s: 1.15 !important; z-index: 5; box-shadow: 0 30px 60px rgba(10, 42, 94, .4); }
.tv-motion .tv-photo-home .h-cards-row.tv-slide { justify-content: flex-start; align-self: flex-start; width: max-content; padding-inline: 16px; }
.tv-motion .tv-photo-home .h-cards-row.tv-slide .h-card { transition-property: translate, box-shadow; }
.tv-motion .tv-photo-home .h-cards-row.tv-slide .h-card.is-up { transition-property: transform, translate, box-shadow; }
.tv-motion .tv-photo-home .h-cards-row.tv-ease { transition: transform .5s cubic-bezier(.16, 1, .3, 1); }
/* Without motion, a phone can still swipe through all five cards. */
@media (max-width: 1060px) {
  html:not(.tv-motion) .tv-photo-home .h-cards-row { justify-content: flex-start; overflow-x: auto; padding-inline: 16px; padding-block: 30px; }
}
.tv-photo-home .h-hero-img { object-position: 60% 0%; }
@media (min-width: 861px) {
  /* The photo starts at the very top of the page, behind the menu bar. */
  .tv-photo-home .h-hero { margin-top: -84px; min-height: clamp(620px, 62vw, 874px); }
  .tv-photo-home .invite:not([hidden]) + .h-hero { margin-top: 0; }
  .tv-photo-home .h-hero::before { background: linear-gradient(to bottom, rgba(10,42,94,.62) 0%, rgba(10,42,94,0) 18%), linear-gradient(to top, rgba(10,42,94,.92) 0%, rgba(10,42,94,.5) 28%, rgba(10,42,94,0) 52%); }
}
@media (max-width: 760px) {
  /* Narrow screens: the photo sits at the top and fades out, so both faces fit. */
  .tv-photo-home .h-hero-img {
    height: 66%; bottom: auto; object-position: 81% 0%;
    -webkit-mask-image: linear-gradient(to bottom, #000 62%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 62%, transparent 100%);
  }
}
