/* Isolated welcome notice. Native modal inertness supplies the focus trap. */
html.odyssey-consent-pending { background: #090c10; }
html.odyssey-consent-pending body { visibility: hidden; }
html.odyssey-consent-open,
html.odyssey-consent-open body { overflow: hidden; }

dialog.odyssey-consent {
  --consent-ink: #f5f1e9;
  --consent-muted: #a6adb7;
  --consent-coral: #ff8666;
  --consent-line: #d5dfe824;
  position: fixed;
  inset: 0;
  width: min(570px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid #c8d5e535;
  border-radius: 22px;
  background: radial-gradient(ellipse at 20% 0, #ff86660a, transparent 52%), #11171e;
  color: var(--consent-ink);
  font-family: 'Avenir Next', Avenir, 'Segoe UI', Arial, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  text-align: left;
  box-shadow: 0 35px 140px #000a, 0 0 90px #ff866607, inset 0 1px #ffffff08;
  scrollbar-width: thin;
  scrollbar-color: #58606c #11171e;
  isolation: isolate;
}
dialog.odyssey-consent[open] { animation: odyssey-consent-arrive 420ms cubic-bezier(.18,.8,.3,1) both; }
dialog.odyssey-consent::backdrop { background: #03060bdb; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); animation: odyssey-consent-backdrop 300ms ease-out both; }
dialog.odyssey-consent,
dialog.odyssey-consent *,
dialog.odyssey-consent *::before,
dialog.odyssey-consent *::after { box-sizing: border-box; }
dialog.odyssey-consent .odyssey-consent-form { margin: 0; padding: 0; }
dialog.odyssey-consent .odyssey-consent-content { padding: 30px 36px 0; }
dialog.odyssey-consent .odyssey-consent-brand { position: relative; display: flex; align-items: center; gap: 14px; min-height: 58px; margin: 0 0 28px; isolation: isolate; }
dialog.odyssey-consent .odyssey-consent-orbit { position: absolute; left: -11px; top: -2px; z-index: -1; width: 64px; height: 64px; border: 1px solid #ff866626; border-radius: 50%; background: radial-gradient(circle, #ff866611, transparent 70%); transform: rotate(-25deg); }
dialog.odyssey-consent .odyssey-consent-orbit::after { content: ''; position: absolute; top: 8px; right: 8px; width: 4px; height: 4px; border-radius: 50%; background: var(--consent-coral); box-shadow: 0 0 14px #ff866680; }
dialog.odyssey-consent .odyssey-consent-symbol { display: block; width: 38px; height: 45px; margin: 0; object-fit: contain; animation: odyssey-consent-symbol 700ms cubic-bezier(.18,.8,.3,1) both; }
dialog.odyssey-consent .odyssey-consent-wordmark { color: var(--consent-ink); font-size: 27px; font-weight: 600; letter-spacing: -.065em; line-height: 1.2; }
dialog.odyssey-consent .odyssey-consent-wordmark > span { color: var(--consent-coral); }
dialog.odyssey-consent .odyssey-consent-eyebrow { margin: 0 0 14px; color: var(--consent-coral); font-size: 9px; font-weight: 600; letter-spacing: .13em; line-height: 1.6; text-transform: uppercase; }
dialog.odyssey-consent h2#odyssey-consent-title { max-width: none; margin: 0; padding: 0; color: var(--consent-ink); font-size: clamp(32px, 4.1vw, 45px); font-weight: 500; letter-spacing: -.055em; line-height: 1.1; text-wrap: balance; }
dialog.odyssey-consent #odyssey-consent-title:focus { outline: none; }
dialog.odyssey-consent #odyssey-consent-intro { margin: 18px 0 24px; color: #b4bdc9; font-size: 13px; line-height: 1.8; overflow-wrap: anywhere; }
dialog.odyssey-consent ul.odyssey-consent-policy { display: grid; gap: 0; list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--consent-line); }
dialog.odyssey-consent .odyssey-consent-policy li { display: flex; align-items: flex-start; gap: 14px; padding: 14px 0; margin: 0; border-bottom: 1px solid var(--consent-line); }
dialog.odyssey-consent .odyssey-consent-bullet { flex-shrink: 0; padding-top: 3px; width: 19px; color: #d69b86; font-size: 9px; font-weight: 500; line-height: 1.6; letter-spacing: .04em; }
dialog.odyssey-consent .odyssey-consent-policy strong { display: block; color: #eeeae4; font-size: 13px; font-weight: 550; line-height: 1.5; }
dialog.odyssey-consent .odyssey-consent-policy p { margin: 4px 0 0; color: var(--consent-muted); font-size: 12px; font-weight: 400; line-height: 1.75; overflow-wrap: anywhere; }
dialog.odyssey-consent .odyssey-consent-actions { padding: 23px 36px 25px; background: linear-gradient(180deg, transparent, #080d1330); }
dialog.odyssey-consent label.odyssey-consent-agreement { display: grid; grid-template-columns: 21px minmax(0, 1fr); align-items: start; gap: 13px; padding: 14px; margin: 0 0 17px; border: 1px solid #c4d2e426; border-radius: 10px; background: #080d1359; color: #c9d0d9; font-size: 12px; font-weight: 400; line-height: 1.75; cursor: pointer; transition: border-color 160ms, background 160ms; }
dialog.odyssey-consent label.odyssey-consent-agreement:has(input:checked) { border-color: #ff86665c; background: #ff866607; color: #e0dbd5; }
dialog.odyssey-consent input#odyssey-consent-agree { display: block; flex: 0 0 21px; width: 21px; height: 21px; min-width: 21px; min-height: 21px; padding: 0; margin: 2px 0 0; border-radius: 4px; accent-color: var(--consent-coral); cursor: pointer; }
dialog.odyssey-consent button.odyssey-consent-continue { display: flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; min-height: 49px; padding: 12px 18px; margin: 0; border: 1px solid var(--consent-coral); border-radius: 9px; background: var(--consent-coral); color: #211815; font: 600 13px/1.5 'Avenir Next', Avenir, 'Segoe UI', Arial, sans-serif; text-align: left; cursor: pointer; box-shadow: 0 6px 24px #ff86660c; transform: none; filter: none; transition: background 160ms, border-color 160ms, color 160ms; }
dialog.odyssey-consent button.odyssey-consent-continue > span:last-child { font-size: 22px; font-weight: 400; line-height: 1; }
dialog.odyssey-consent button.odyssey-consent-continue:hover:not(:disabled) { background: #ffa086; border-color: #ffa086; transform: none; filter: none; }
dialog.odyssey-consent button.odyssey-consent-continue:disabled { color: #8b95a3; background: #242c37; border-color: #d5dfe814; box-shadow: none; cursor: not-allowed; opacity: 1; }
dialog.odyssey-consent :is(input, button):focus-visible { outline: 3px solid #bccedf; outline-offset: 4px; }
dialog.odyssey-consent .odyssey-consent-footnote { margin: 13px 0 0; color: #8f9aa9; font-size: 9px; line-height: 1.65; text-align: center; letter-spacing: .035em; }
dialog.odyssey-consent.is-leaving { pointer-events: none; animation: odyssey-consent-leave 240ms cubic-bezier(.4,0,.8,.5) both; }
dialog.odyssey-consent.is-leaving::backdrop { animation: odyssey-consent-backdrop-leave 240ms ease-in both; }

/* A readable, closed entry state also exists when scripts are disabled. */
body:has(.odyssey-consent-noscript) > :not(noscript) { display: none !important; }
body:has(.odyssey-consent-noscript) { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; margin: 0; padding: 22px; background: #090c10; }
.odyssey-consent-noscript { max-width: 480px; padding: 32px; border: 1px solid #c8d5e535; border-radius: 18px; color: #f5f1e9; background: #11171e; font: 15px/1.8 'Avenir Next', Avenir, 'Segoe UI', Arial, sans-serif; }
.odyssey-consent-noscript::before { content: 'Welcome to Odyssey'; display: block; margin-bottom: 16px; color: #ff8666; font-size: 11px; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.odyssey-consent-noscript p { margin: 0; }

@keyframes odyssey-consent-arrive { from { opacity: 0; transform: translateY(16px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes odyssey-consent-symbol { from { opacity: 0; transform: translateY(8px) rotate(-18deg) scale(.8); } to { opacity: 1; transform: translateY(0) rotate(0) scale(1); } }
@keyframes odyssey-consent-backdrop { from { opacity: 0; } to { opacity: 1; } }
@keyframes odyssey-consent-leave { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(-8px) scale(.99); } }
@keyframes odyssey-consent-backdrop-leave { from { opacity: 1; } to { opacity: 0; } }

@media (max-width: 540px) {
  dialog.odyssey-consent { width: calc(100% - 22px); max-height: calc(100vh - 22px); max-height: calc(100dvh - 22px); border-radius: 17px; }
  dialog.odyssey-consent .odyssey-consent-content { padding: 24px 24px 0; }
  dialog.odyssey-consent .odyssey-consent-brand { min-height: 48px; margin-bottom: 24px; gap: 11px; }
  dialog.odyssey-consent .odyssey-consent-symbol { width: 31px; height: 38px; }
  dialog.odyssey-consent .odyssey-consent-orbit { left: -9px; top: -1px; width: 53px; height: 53px; }
  dialog.odyssey-consent .odyssey-consent-wordmark { font-size: 25px; }
  dialog.odyssey-consent .odyssey-consent-eyebrow { font-size: 8px; letter-spacing: .1em; }
  dialog.odyssey-consent h2#odyssey-consent-title { font-size: clamp(30px, 8.9vw, 39px); }
  dialog.odyssey-consent #odyssey-consent-intro { font-size: 12px; margin-block: 16px 21px; }
  dialog.odyssey-consent .odyssey-consent-policy li { gap: 11px; padding-block: 13px; }
  dialog.odyssey-consent .odyssey-consent-policy strong { font-size: 12px; }
  dialog.odyssey-consent .odyssey-consent-policy p { font-size: 11px; }
  dialog.odyssey-consent .odyssey-consent-actions { padding: 20px 24px 22px; }
  dialog.odyssey-consent label.odyssey-consent-agreement { padding: 12px; gap: 10px; font-size: 11px; }
  dialog.odyssey-consent button.odyssey-consent-continue { min-height: 48px; font-size: 12px; }
}
@media (max-width: 350px) {
  dialog.odyssey-consent .odyssey-consent-content { padding-inline: 20px; }
  dialog.odyssey-consent .odyssey-consent-actions { padding-inline: 20px; }
  dialog.odyssey-consent .odyssey-consent-eyebrow { max-width: 28ch; }
  dialog.odyssey-consent .odyssey-consent-policy li { gap: 9px; }
}
@media (max-height: 760px) and (min-width: 541px) {
  dialog.odyssey-consent .odyssey-consent-content { padding-top: 24px; }
  dialog.odyssey-consent .odyssey-consent-brand { margin-bottom: 19px; }
  dialog.odyssey-consent h2#odyssey-consent-title { font-size: 37px; }
  dialog.odyssey-consent #odyssey-consent-intro { margin-block: 15px 19px; }
  dialog.odyssey-consent .odyssey-consent-policy li { padding-block: 11px; }
  dialog.odyssey-consent .odyssey-consent-actions { padding-top: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  dialog.odyssey-consent,
  dialog.odyssey-consent::backdrop,
  dialog.odyssey-consent *,
  dialog.odyssey-consent *::before,
  dialog.odyssey-consent *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
