.redline-theme {
  --rl-ink: oklch(17% 0.015 245);
  --rl-deep: oklch(13% 0.014 245);
  --rl-surface: oklch(20% 0.014 245);
  --rl-paper: oklch(96% 0.016 85);
  --rl-sand: oklch(85% 0.059 78);
  --rl-muted: oklch(78% 0.02 83);
  background: var(--rl-ink);
  color: var(--rl-paper);
}

.redline-theme main { overflow: clip; }
.redline-theme .eyebrow { color: var(--rl-sand); }
.redline-theme h1,
.redline-theme h2,
.redline-theme p { margin-top: 0; }
.redline-theme h2 { color: var(--rl-paper); text-wrap: balance; }
.redline-theme p { text-wrap: pretty; }
.redline-theme .button {
  color: var(--rl-deep);
  background: var(--rl-sand);
  border: 1px solid var(--rl-sand);
}
.redline-theme .button:hover { background: var(--rl-paper); border-color: var(--rl-paper); }
.redline-theme .button--secondary {
  color: var(--rl-paper);
  background: transparent;
  border-color: oklch(96% 0.016 85 / 0.45);
}
.redline-theme .button--secondary:hover { background: oklch(96% 0.016 85 / 0.1); border-color: var(--rl-paper); }
.redline-theme .button:active { transform: translateY(1px); }
.redline-theme :is(a, button):focus-visible { outline: 3px solid var(--rl-sand); outline-offset: 5px; }
.redline-theme .text-link { color: var(--rl-paper); }
.rl-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem; }
.rl-actions .button { display: inline-flex; align-items: center; justify-content: center; gap: 1.25rem; min-height: 3.6rem; padding: 1.05rem 1.5rem; border-radius: 999px; font-size: 0.93rem; font-weight: 500; }
.rl-actions .button > span:last-child { font-size: 1.18em; }

.rl-hero { position: relative; isolation: isolate; min-height: 52rem; min-height: max(52rem, 100svh); background: var(--rl-deep); }
.rl-hero__image,
.rl-hero__veil { position: absolute; inset: 0; width: 100%; height: 100%; }
.rl-hero__image { z-index: -3; object-fit: cover; object-position: 62% 46%; }
.rl-hero__veil {
  z-index: -2;
  background: linear-gradient(90deg, oklch(12% 0.025 245 / 0.76), oklch(12% 0.025 245 / 0.35) 44%, transparent 76%), linear-gradient(0deg, var(--rl-ink) 0%, oklch(15% 0.02 245 / 0.43) 26%, transparent 60%, oklch(12% 0.025 245 / 0.18) 100%);
}
.rl-hero__inner { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: inherit; padding-top: 11rem; padding-bottom: 2.4rem; }
.rl-hero__copy { padding-bottom: clamp(4.5rem, 10vh, 8rem); }
.rl-hero__eyebrow { margin-bottom: 1.5rem; font-size: 0.78rem; letter-spacing: 0.13em; }
.rl-wordmark { margin-bottom: 1.35rem; font-size: clamp(5.2rem, 11.6vw, 11.6rem); font-weight: 700; line-height: 0.94; letter-spacing: -0.075em; color: var(--rl-paper); }
.rl-hero__headline { max-width: 35rem; margin-bottom: 2rem; font-size: clamp(1.35rem, 2.1vw, 1.8rem); font-weight: 400; line-height: 1.4; letter-spacing: -0.025em; color: var(--rl-paper); }
.rl-availability { margin: 1rem 0 0; color: oklch(88% 0.012 83); font-size: 0.77rem; line-height: 1.6; }
.redline-theme .rl-availability { margin-top: 1rem; }
.rl-trailer { gap: 0.75rem !important; }
.rl-play { width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 8px solid currentColor; }
.rl-hero__bottom { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; border-top: 1px solid oklch(90% 0.015 85 / 0.23); padding-top: 1.35rem; }
.rl-hero__details { display: flex; flex-wrap: wrap; gap: 1.7rem; margin: 0; font-size: 0.78rem; letter-spacing: 0.015em; color: var(--rl-muted); }
.rl-hero__details span + span::before { content: '·'; position: relative; left: -0.8rem; }
.rl-discover { display: inline-flex; min-height: 2.75rem; align-items: center; gap: 2rem; color: var(--rl-paper); font-size: 0.8rem; text-decoration: none; }
.rl-discover span { font-size: 1.3rem; transition: transform 200ms ease-out; }
.rl-discover:hover span { transform: translateY(4px); }

.rl-intro { padding-block: clamp(6rem, 11vw, 10.5rem) clamp(6.5rem, 11vw, 11rem); }
.rl-intro__grid { display: grid; grid-template-columns: 1.1fr 0.8fr; column-gap: 9%; align-items: end; }
.rl-intro__grid > .eyebrow { grid-column: 1 / -1; margin-bottom: 2.6rem; }
.rl-intro h2 { margin-bottom: 0; font-size: clamp(2.6rem, 5.2vw, 5rem); line-height: 1.08; font-weight: 500; letter-spacing: -0.055em; }
.rl-intro__body { padding-bottom: 0.1rem; }
.rl-intro__body p { max-width: 44ch; margin-bottom: 1.2rem; font-size: clamp(1rem, 1.15vw, 1.12rem); line-height: 1.75; color: var(--rl-muted); }
.rl-intro__body p:first-child { color: var(--rl-paper); }
.rl-intro__body p:last-child { margin-bottom: 0; }

.rl-scene { position: relative; isolation: isolate; min-height: 43rem; min-height: clamp(43rem, 90svh, 62rem); background: var(--rl-deep); }
.rl-scene__image,
.rl-scene__veil { position: absolute; inset: 0; width: 100%; height: 100%; }
.rl-scene__image { z-index: -3; object-fit: cover; }
.rl-scene__veil { z-index: -2; background: linear-gradient(90deg, oklch(12% 0.02 245 / 0.9), oklch(12% 0.02 245 / 0.46) 39%, transparent 75%), linear-gradient(0deg, var(--rl-ink), transparent 30%, transparent 80%, oklch(17% 0.015 245 / 0.55)); }
.rl-scene__inner { display: flex; align-items: center; min-height: inherit; padding-block: 6rem; }
.rl-scene__copy { max-width: 34rem; }
.rl-chapter { display: flex; align-items: baseline; gap: 0.8rem; margin-bottom: 2.2rem; color: var(--rl-sand); font-size: 0.85rem; font-weight: 500; }
.rl-chapter > span { font-size: 0.69rem; font-variant-numeric: tabular-nums; opacity: 0.65; }
.rl-scene h2,
.rl-combat h2 { margin-bottom: 1.9rem; font-size: clamp(3rem, 5.9vw, 6rem); font-weight: 500; line-height: 1.04; letter-spacing: -0.055em; }
.rl-scene__copy > p:last-child { max-width: 36ch; margin-bottom: 0; color: var(--rl-paper); font-size: 1.04rem; line-height: 1.8; }
.rl-scene--boats .rl-scene__image { object-position: 67% 50%; }
.rl-scene--seas { min-height: clamp(42rem, 88svh, 61rem); }
.rl-scene--seas .rl-scene__image { object-position: 39% 50%; }
.rl-scene--seas .rl-scene__inner { justify-content: flex-end; }
.rl-scene--seas .rl-scene__copy { width: 36%; max-width: 32rem; }
.rl-scene--seas .rl-scene__veil { background: linear-gradient(270deg, oklch(12% 0.02 245 / 0.92), oklch(12% 0.02 245 / 0.55) 32%, transparent 78%), linear-gradient(0deg, var(--rl-ink), transparent 35%, transparent 80%, oklch(17% 0.015 245 / 0.7)); }

.rl-combat { padding-block: clamp(6rem, 10vw, 10rem); background: var(--rl-ink); }
.rl-combat__grid { display: grid; grid-template-columns: 1.4fr 0.8fr; align-items: center; gap: 8%; }
.rl-combat__art { position: relative; min-width: 0; margin-left: -6%; }
.rl-combat__image { display: block; width: 113%; max-width: none; height: auto; mix-blend-mode: lighten; }
.rl-art-caption { margin: 1.5rem 0 0 6%; color: var(--rl-muted); font-size: 0.73rem; }
.rl-combat__copy { position: relative; }
.rl-combat__copy > p:not(.rl-chapter) { max-width: 36ch; margin-bottom: 2.5rem; color: var(--rl-muted); font-size: 1.04rem; line-height: 1.8; }
.rl-combat__signature { display: block; padding-top: 1.25rem; border-top: 1px solid oklch(90% 0.015 85 / 0.22); color: var(--rl-sand); font-size: 0.84rem; }

.rl-roleplay { padding-top: clamp(6rem, 10vw, 10rem); }
.rl-roleplay__header { position: relative; z-index: 1; }
.rl-roleplay h2 { max-width: 65rem; margin-bottom: 0; font-size: clamp(2.6rem, 5.2vw, 5rem); line-height: 1.12; font-weight: 500; letter-spacing: -0.05em; }
.rl-roleplay__world { position: relative; isolation: isolate; min-height: 44rem; margin-top: -0.6rem; }
.rl-roleplay__image,
.rl-roleplay__veil { position: absolute; inset: 0; height: 100%; width: 100%; }
.rl-roleplay__image { z-index: -3; object-fit: cover; object-position: 30% 47%; }
.rl-roleplay__veil { z-index: -2; background: linear-gradient(0deg, var(--rl-ink), transparent 36%, transparent 70%, var(--rl-ink)), linear-gradient(270deg, oklch(12% 0.02 245 / 0.88), oklch(12% 0.02 245 / 0.62) 29%, transparent 75%); }
.rl-roleplay__inner { display: flex; align-items: center; justify-content: flex-end; min-height: inherit; padding-block: 7rem 5rem; }
.rl-roleplay__copy { width: 36%; max-width: 31rem; }
.rl-roleplay__copy > p:first-child { max-width: 36ch; font-size: 1.15rem; line-height: 1.75; }
.rl-roleplay__access { display: grid; gap: 0.6rem; padding-block: 1.7rem; margin-block: 2rem 1.1rem; border-top: 1px solid oklch(90% 0.015 85 / 0.25); border-bottom: 1px solid oklch(90% 0.015 85 / 0.25); }
.rl-roleplay__access strong { color: var(--rl-sand); font-size: 1.3rem; font-weight: 500; }
.rl-roleplay__access span { color: var(--rl-muted); font-size: 0.87rem; line-height: 1.6; }
.rl-roleplay__copy .text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 3rem; font-size: 0.87rem; }

.rl-gallery { padding-block: clamp(4.5rem, 8vw, 8rem) clamp(6rem, 10vw, 10rem); }
.rl-gallery__heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 3rem; margin-bottom: 3rem; }
.rl-gallery__heading .eyebrow { margin-bottom: 1.1rem; }
.rl-gallery__heading h2 { margin-bottom: 0; font-size: clamp(2.3rem, 4.3vw, 4rem); font-weight: 500; line-height: 1.1; letter-spacing: -0.05em; }
.rl-gallery__heading > p { flex-shrink: 0; margin: 0 0 0.15rem; color: var(--rl-muted); font-size: 0.87rem; line-height: 1.8; }
.rl-gallery__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(0.6rem, 1.4vw, 1.25rem); }
.rl-gallery__item { position: relative; overflow: hidden; display: block; grid-column: span 5; height: clamp(14rem, 26vw, 25rem); background: var(--rl-surface); text-decoration: none; }
.rl-gallery__item--1,
.rl-gallery__item--4 { grid-column: span 7; }
.rl-gallery__image { display: block; height: 100%; width: 100%; object-fit: cover; transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), filter 350ms ease-out; }
.rl-gallery__item::after { content: ''; position: absolute; inset: 50% 0 0; background: linear-gradient(transparent, oklch(13% 0.014 245 / 0.62)); pointer-events: none; }
.rl-gallery__zoom { position: absolute; z-index: 1; right: 1.25rem; bottom: 1.1rem; display: flex; align-items: center; gap: 1.3rem; color: var(--rl-paper); font-size: 0.78rem; }
.rl-gallery__zoom > span { font-size: 1.6rem; line-height: 1; }
.rl-gallery__item:hover .rl-gallery__image { transform: scale(1.035); filter: brightness(1.06); }
.rl-gallery__item:focus-visible { outline-offset: 5px; z-index: 2; }

.rl-community { padding-top: clamp(5rem, 8vw, 8rem); border-top: 1px solid oklch(90% 0.015 85 / 0.15); background: var(--rl-deep); }
.rl-community__grid { display: grid; grid-template-columns: 1fr 0.95fr; align-items: center; gap: 8%; }
.rl-community .eyebrow { margin-bottom: 2rem; }
.rl-community h2 { margin-bottom: 0; font-size: clamp(3rem, 5.7vw, 5.5rem); font-weight: 500; letter-spacing: -0.055em; line-height: 1.08; }
.rl-community__body > p:first-child { max-width: 39ch; margin-bottom: 1.8rem; color: var(--rl-paper); font-size: 1.15rem; line-height: 1.7; }
.rl-community .rl-actions { gap: 0.7rem; }
.rl-community .button { gap: 1rem; padding-inline: 1.1rem; font-size: 0.85rem; }
.rl-community__note { max-width: 57ch; margin: 1.3rem 0 0; color: var(--rl-muted); font-size: 0.75rem; line-height: 1.75; }
.rl-community__closing { display: flex; align-items: baseline; justify-content: space-between; gap: 2rem; padding-top: clamp(5rem, 10vw, 9rem); padding-bottom: 2.5rem; color: oklch(70% 0.025 83); }
.rl-community__closing > span:first-child { color: oklch(31% 0.02 245); font-size: clamp(4.5rem, 11vw, 11rem); line-height: 1; letter-spacing: -0.065em; font-weight: 700; }
.rl-community__closing > span:last-child { color: var(--rl-muted); font-size: 0.77rem; }

@media (min-width: 1800px) {
  .rl-hero__image { object-position: 50% 46%; }
  .rl-scene--boats .rl-scene__image { object-position: 50% 52%; }
  .rl-hero__veil { background: linear-gradient(90deg, oklch(12% 0.025 245 / 0.81), oklch(12% 0.025 245 / 0.3) 52%, transparent 81%), linear-gradient(0deg, var(--rl-ink), transparent 61%); }
}

@media (max-width: 1050px) {
  .rl-hero { min-height: max(48rem, 100svh); }
  .rl-hero__inner { padding-top: 10rem; }
  .rl-hero__image { object-position: 62% 50%; }
  .rl-intro__grid { column-gap: 7%; grid-template-columns: 1fr 0.9fr; }
  .rl-scene--seas .rl-scene__copy,
  .rl-roleplay__copy { width: 42%; }
  .rl-combat__grid { grid-template-columns: 1.05fr 0.9fr; gap: 8%; }
  .rl-community__grid { grid-template-columns: 1fr 1fr; gap: 5%; }
  .rl-gallery__heading { align-items: flex-start; }
  .rl-gallery__heading > p { max-width: 25ch; flex-shrink: 1; }
  .rl-gallery__heading > p br { display: none; }
}

@media (max-width: 720px) {
  .rl-hero { min-height: max(48rem, 100svh); }
  .rl-hero__inner { padding-top: 18rem; padding-bottom: 1.5rem; }
  .rl-hero__copy { padding-bottom: 3.5rem; }
  .rl-hero__image { object-position: 63% top; }
  .rl-hero__veil { background: linear-gradient(0deg, var(--rl-ink), oklch(13% 0.02 245 / 0.84) 27%, oklch(13% 0.02 245 / 0.5) 49%, transparent 79%), linear-gradient(90deg, oklch(13% 0.02 245 / 0.2), transparent); }
  .rl-wordmark { margin-bottom: 1.4rem; font-size: clamp(5rem, 18vw, 8rem); }
  .rl-hero__eyebrow { margin-bottom: 1.15rem; font-size: 0.69rem; letter-spacing: 0.095em; }
  .rl-hero__headline { font-size: clamp(1.22rem, 3.7vw, 1.55rem); margin-bottom: 1.8rem; }
  .rl-hero .rl-actions { gap: 0.75rem; }
  .rl-hero .rl-actions .button { min-height: 3.5rem; }
  .rl-availability { max-width: 37ch; font-size: 0.72rem; }
  .rl-hero__bottom { gap: 1rem; align-items: flex-start; }
  .rl-hero__details { gap: 1rem; max-width: 13rem; font-size: 0.7rem; }
  .rl-hero__details span + span::before { left: -0.45rem; }
  .rl-discover { gap: 0.8rem; min-height: 2rem; font-size: 0.72rem; white-space: nowrap; }
  .rl-intro { padding-block: 5rem 5.5rem; }
  .rl-intro__grid { grid-template-columns: 1fr; }
  .rl-intro__grid > .eyebrow { margin-bottom: 1.75rem; }
  .rl-intro h2 { font-size: clamp(2.7rem, 8.5vw, 4rem); }
  .rl-intro__body { margin-top: 2rem; }
  .rl-intro__body p { max-width: 51ch; font-size: 1rem; }
  .rl-scene { min-height: 48rem; }
  .rl-scene__inner { align-items: flex-end; padding-block: 21rem 4rem; }
  .rl-scene__copy { max-width: 30rem; }
  .rl-chapter { margin-bottom: 1.4rem; font-size: 0.78rem; }
  .rl-scene h2,
  .rl-combat h2 { font-size: clamp(3.2rem, 9.5vw, 4.3rem); margin-bottom: 1.5rem; }
  .rl-scene__copy > p:last-child { max-width: 42ch; font-size: 1rem; line-height: 1.75; }
  .rl-scene--boats .rl-scene__image { object-position: 63% 8%; }
  .rl-scene__veil { background: linear-gradient(0deg, var(--rl-ink), oklch(13% 0.02 245 / 0.88) 33%, oklch(13% 0.02 245 / 0.37) 67%, transparent); }
  .rl-combat { padding-block: 3.5rem 5rem; }
  .rl-combat__grid { grid-template-columns: 1fr; gap: 2.7rem; }
  .rl-combat__art { margin-left: -5%; margin-right: -5%; }
  .rl-combat__image { width: 100%; }
  .rl-art-caption { margin-top: 0.5rem; margin-left: 5%; font-size: 0.68rem; }
  .rl-combat h2 br { display: none; }
  .rl-combat h2 { max-width: 8ch; }
  .rl-combat__copy > p:not(.rl-chapter) { max-width: 43ch; margin-bottom: 1.75rem; font-size: 1rem; }
  .rl-combat__signature { max-width: 28rem; }
  .rl-scene--seas { min-height: 44rem; }
  .rl-scene--seas .rl-scene__image { object-position: 41% 15%; }
  .rl-scene--seas .rl-scene__inner { justify-content: flex-start; padding-top: 21rem; }
  .rl-scene--seas .rl-scene__copy { width: 100%; max-width: 30rem; }
  .rl-scene--seas .rl-scene__veil { background: linear-gradient(0deg, var(--rl-ink), oklch(13% 0.02 245 / 0.87) 29%, oklch(13% 0.02 245 / 0.3) 64%, transparent); }
  .rl-roleplay { padding-top: 5rem; }
  .rl-roleplay h2 { max-width: 15ch; font-size: clamp(2.5rem, 7.6vw, 3.8rem); }
  .rl-roleplay h2 br { display: none; }
  .rl-roleplay__world { min-height: 49rem; margin-top: 1.5rem; }
  .rl-roleplay__image { object-position: 39% top; }
  .rl-roleplay__veil { background: linear-gradient(0deg, var(--rl-ink), oklch(13% 0.02 245 / 0.9) 26%, oklch(13% 0.02 245 / 0.3) 63%, transparent 82%, var(--rl-ink)); }
  .rl-roleplay__inner { justify-content: flex-start; align-items: flex-end; padding-block: 23rem 3rem; }
  .rl-roleplay__copy { width: 100%; max-width: 31rem; }
  .rl-roleplay__copy > p:first-child { max-width: 45ch; font-size: 1.06rem; }
  .rl-roleplay__access { margin-top: 1.65rem; }
  .rl-gallery { padding-block: 4rem 5rem; }
  .rl-gallery__heading { flex-direction: column; gap: 1.3rem; margin-bottom: 2rem; }
  .rl-gallery__heading h2 { max-width: 11ch; font-size: clamp(2.5rem, 8.5vw, 3.7rem); }
  .rl-gallery__heading > p { max-width: 40ch; font-size: 0.8rem; }
  .rl-gallery__item { grid-column: 1 / -1; height: auto; aspect-ratio: 1.6; }
  .rl-gallery__zoom { right: 1rem; bottom: 0.9rem; }
  .rl-community { padding-top: 4rem; }
  .rl-community__grid { grid-template-columns: 1fr; gap: 2.3rem; }
  .rl-community .eyebrow { margin-bottom: 1.5rem; }
  .rl-community h2 { font-size: clamp(3rem, 9.5vw, 4.5rem); }
  .rl-community__body > p:first-child { max-width: 42ch; font-size: 1.07rem; }
  .rl-community__note { max-width: 50ch; }
  .rl-community__closing { flex-direction: column; align-items: flex-start; gap: 1.25rem; padding-top: 4rem; padding-bottom: 2.8rem; }
  .rl-community__closing > span:first-child { font-size: clamp(5.5rem, 21vw, 9rem); }
}

@media (max-width: 400px) {
  .rl-hero .rl-actions { align-items: stretch; flex-direction: column; }
  .rl-hero .rl-actions .button { justify-content: center; width: 100%; }
  .rl-hero__inner { padding-top: 15.5rem; }
  .rl-hero__bottom { flex-direction: column; gap: 0.7rem; }
  .rl-hero__details { max-width: none; }
  .rl-discover { justify-content: space-between; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .redline-theme *,
  .redline-theme *::before,
  .redline-theme *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .rl-gallery__item:hover .rl-gallery__image,
  .rl-discover:hover span { transform: none; }
}
