/* Gameplay is shown at its original ratio. Promotional artwork has its own layout. */
.hero-artwork { display: block; position: absolute; inset: 0; z-index: -2; background: #060a12; }
.hero-artwork .hero-art { position: static; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: 1; }
.hero::after { background: linear-gradient(90deg, #080a1099 0%, #080a1055 32%, transparent 70%), linear-gradient(0deg, #080a10, transparent 24%); }
.video-shell { width: 100%; min-height: 200px; }
.split > div { min-width: 0; }
@media (max-width: 800px) {
  .hero { min-height: 825px; }
  .hero-artwork .hero-art { object-fit: contain; object-position: center bottom; }
  .hero::after { background: linear-gradient(180deg, #080a10 0%, #080a10 38%, transparent 66%, #080a1040); }
  .hero-inner { padding-bottom: 290px; }
}
.gameplay-feature {
  display: flex;
  flex-direction: column;
  background: linear-gradient(150deg, #171c27, #0b0e16 70%);
  border-color: #30343f;
  border-radius: 22px;
  transition: border-color .25s, box-shadow .25s;
}
.gameplay-feature:hover { border-color: #655147; box-shadow: 0 14px 50px #0004; }
.gameplay-feature .feature-card-content { padding: 29px 28px 12px; flex: 1; }
.feature-index { display: flex; align-items: center; gap: 13px; margin-bottom: 25px; color: #b8bac4; font: 11px Consolas, monospace; text-transform: uppercase; letter-spacing: .15em; }
.feature-index > span { color: var(--accent); display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #5a3e32; border-radius: 50%; font-size: 12px; letter-spacing: 0; }
.gameplay-feature h3 { font-size: clamp(23px, 2.2vw, 30px); line-height: 1.13; max-width: 290px; }
.gameplay-feature p { color: #adb0bf; font-size: 14px; line-height: 1.75; }
.capture-link { --capture-glow: #568496; display: block; position: relative; color: #b7bcc9; cursor: zoom-in; }
.capture-stage { position: relative; display: flex; justify-content: center; align-items: center; height: 440px; padding: 25px 32px 19px; background: radial-gradient(ellipse at 50% 65%, color-mix(in srgb, var(--capture-glow) 20%, transparent), transparent 69%); }
.capture-stage .uncropped-capture { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; border: 1px solid #737c8266; border-radius: 7px; box-shadow: 0 17px 30px #0008; filter: none; }
.feature-combat .capture-link { --capture-glow: #42b08b; }
.feature-traversal .capture-link { --capture-glow: #31b9ab; }
.feature-atmosphere .capture-link { --capture-glow: #ad7cc0; }
.capture-action { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 17px 25px; border-top: 1px solid #ffffff0a; color: #aab0bf; font-size: 11px; }
.capture-action > :last-child { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #4b4543; border-radius: 50%; color: var(--accent); font-size: 17px; transition: background .2s; }
.capture-link:hover .capture-action { color: white; }
.capture-link:hover .capture-action > :last-child { background: #ff86521c; }
#features .feature-grid { gap: 23px; }
#features .tags { justify-content: center; gap: 15px; margin-top: 35px; }
#features .tag { border: 0; padding: 0; }
#features .tag + .tag::before { content: '·'; color: var(--accent); margin-right: 15px; }

.zones-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.zone-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; overflow: hidden; border: 1px solid #303641; border-radius: 20px; background: linear-gradient(135deg, #151a25, #0c1018); }
.zone-card .capture-link { min-width: 0; background: #070c1380; height: 100%; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid #ffffff08; }
.zone-card .capture-stage { height: 365px; padding: 23px 25px 12px; }
.zone-card .capture-action { padding: 12px 20px 17px; border: 0; }
.zone-copy { padding: 25px 27px; }
.zone-number { display: block; color: var(--accent); font: 600 13px Consolas, monospace; letter-spacing: .1em; margin-bottom: 40px; }
.zone-copy h3 { font-size: 28px; line-height: 1.15; margin-bottom: 16px; }
.zone-copy p { font-size: 14px; line-height: 1.75; margin-bottom: 25px; }
.zone-category { display: block; color: #848c9e; font: 9px/1.5 Consolas, monospace; letter-spacing: .12em; padding-top: 17px; border-top: 1px solid var(--line); }
.zone-1 .capture-link, .zone-2 .capture-link { --capture-glow: #aa72c1; }
.zone-3 .capture-link, .zone-4 .capture-link { --capture-glow: #d79758; }
.zone-5 .capture-link, .zone-6 .capture-link { --capture-glow: #4ea793; }

.flight-section { gap: 85px; }
.flight-art { margin: 0; overflow: hidden; border: 1px solid #383a42; border-radius: 24px; background: #070c16; position: relative; }
.flight-art > img { width: 100%; height: auto; object-fit: contain; }
.flight-art figcaption { padding: 19px 22px; display: flex; justify-content: space-between; gap: 20px; color: #9ca5b6; font: 9px/1.5 Consolas, monospace; letter-spacing: .12em; border-top: 1px solid #2d3544; }
.flight-art figcaption > :first-child { color: var(--accent); flex-shrink: 0; }
.steps { gap: 30px; }
.step { gap: 24px; grid-template-columns: 42px 1fr; }
.step::before { border-top: 0; background: #191923; width: 39px; height: 39px; border: 1px solid #4a3930; border-radius: 50%; display: grid; place-items: center; padding: 0; }
.step h3 { font-size: 22px; }
.step p { font-size: 15px; }
.gallery img { height: auto; aspect-ratio: auto; object-fit: contain; }
.gallery a { display: block; cursor: zoom-in; }
.gallery a:hover img { border-color: var(--accent); }
.expedition-panel { min-height: 440px; border-color: #3c3630; padding-block: 65px; }
.expedition-panel > img { object-fit: cover; object-position: center 60%; }
.expedition-panel::after { background: linear-gradient(90deg, #080c14ee, #080c14bb 37%, #080c1400 73%); }
.expedition-panel h2 { max-width: 550px; font-size: clamp(34px, 4vw, 47px); }
.expedition-panel p { max-width: 460px; }

.developer-section { border-top: 1px solid var(--line); background: radial-gradient(circle at 18% 45%, #482a2238, transparent 28%), linear-gradient(135deg, #0c0f17, #11131b 58%, #0b0d14); }
.developer-card { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.55fr); overflow: hidden; border: 1px solid #3b3943; border-radius: 24px; background: #0b0e16c7; box-shadow: 0 24px 70px #0004; }
.developer-profile { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: space-between; min-height: 390px; padding: 42px; overflow: hidden; border-right: 1px solid #37343c; background: radial-gradient(circle at 50% 28%, #693e303d, transparent 38%), #12151e; }
.developer-profile::before, .developer-profile::after { content: ''; position: absolute; z-index: -1; left: 50%; top: 36%; translate: -50% -50%; border: 1px solid #9a62483b; border-radius: 50%; }
.developer-profile::before { width: 245px; aspect-ratio: 1; }
.developer-profile::after { width: 325px; aspect-ratio: 1; border-color: #7d839126; }
.developer-emblem { display: grid; place-items: center; width: 112px; aspect-ratio: 1; margin-inline: auto; border: 1px solid #a56b516e; border-radius: 50%; background: linear-gradient(145deg, #27202a, #121620); color: var(--accent); font-size: 48px; font-weight: 750; letter-spacing: -.06em; box-shadow: 0 0 45px #ff86521a, inset 0 0 30px #ffffff08; }
.developer-emblem span { translate: -2px -1px; }
.developer-profile .eyebrow { margin-bottom: 11px; }
.developer-name { margin: 0 0 5px; color: var(--text); font-size: 25px; font-weight: 700; letter-spacing: -.025em; }
.developer-role { max-width: 240px; margin: 0; color: #9498a7; font: 10px/1.65 Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }
.developer-message { position: relative; margin: 0; padding: 55px clamp(38px, 5.5vw, 76px); }
.developer-quote { position: absolute; top: 29px; right: 44px; color: #ff86521c; font: 700 118px/1 Georgia, serif; }
.developer-message h2 { position: relative; margin-bottom: 25px; font-size: clamp(37px, 4vw, 52px); }
.developer-message > p { position: relative; max-width: 720px; color: #c5c5ce; font-size: 16px; line-height: 1.85; }
.developer-message > p + p { color: #f0eae6; font-weight: 600; }
.developer-message footer { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 33px; padding-top: 24px; border-top: 1px solid var(--line); }
.developer-signature { color: var(--accent); font: 12px/1.5 Consolas, monospace; letter-spacing: .08em; }
.developer-message .text-link { flex-shrink: 0; font-size: 12px; }

.story-hero { position: relative; background: #070d17; border-bottom: 1px solid #34313a; isolation: isolate; }
.story-hero-art { width: 100%; height: auto; display: block; }
.story-hero-copy { position: absolute; z-index: 1; left: 0; right: 0; top: 50%; transform: translateY(-53%); }
.story-hero h1 { font-size: clamp(45px, 5vw, 76px); max-width: 700px; line-height: 1.04; letter-spacing: -.05em; }
.story-hero h1 span { color: var(--accent); }
.story-hero-copy .eyebrow { font-size: 10px; }
.story-hero-copy p { max-width: 420px; font-size: 16px; color: #c0c3cd; line-height: 1.8; margin-top: 24px; }
.story-hero-copy .text-link { display: inline-block; margin-top: 7px; font-size: 13px; }
.story-hero-meta { position: absolute; bottom: 28px; left: 0; right: 0; display: flex; justify-content: space-between; gap: 16px; color: #bec1ca; font: 10px Consolas, monospace; letter-spacing: .14em; }
.story-hero-meta > :first-child { color: var(--accent); }
.chronicle-layout { display: grid; grid-template-columns: .85fr 1.4fr; gap: 110px; padding-top: 110px; }
.chronicle-intro { position: sticky; top: 135px; align-self: start; }
.chronicle-heading { color: var(--text); font-size: clamp(35px, 3.6vw, 49px); line-height: 1.13; font-weight: 750; letter-spacing: -.045em; margin-bottom: 25px; }
.chronicle-heading span { color: var(--accent); }
.chronicle-intro > p:not(.chronicle-heading) { max-width: 325px; font-size: 15px; }
.chronicle-intro .text-link { font-size: 13px; }
.story-timeline { width: 100%; padding-left: 40px; border-left-color: #473630; }
.story-timeline article { padding: 0 0 42px; margin-bottom: 36px; border-bottom: 1px solid var(--line); }
.story-timeline article:last-child { margin-bottom: 0; border: 0; padding-bottom: 0; }
.story-timeline article::before { left: -47px; }
.story-timeline h2 { font-size: 27px; line-height: 1.22; margin-bottom: 18px; }
.chapter-label { display: block; color: var(--accent); font: 10px Consolas, monospace; letter-spacing: .16em; margin-bottom: 18px; }
.story-timeline p { font-size: 15px; line-height: 1.9; }

.image-dialog { border: 1px solid #52545e; border-radius: 15px; background: #10141c; color: var(--text); padding: 20px; max-width: calc(100vw - 32px); max-height: calc(100dvh - 32px); overflow: auto; }
.image-dialog::backdrop { background: #03050aeb; backdrop-filter: blur(8px); }
.image-dialog-picture { display: block; max-width: min(100%, 1100px); width: auto; height: auto; max-height: calc(100dvh - 150px); object-fit: contain; margin: 0 auto; }
.image-dialog-close { display: grid; place-items: center; position: fixed; z-index: 2; right: 20px; top: 20px; width: 44px; height: 44px; border: 1px solid #777078; border-radius: 50%; background: #121720; color: white; font-size: 20px; }
.image-dialog p { margin: 16px 0 0; text-align: center; color: #c3c6d0; font-size: 13px; }
body:has(.image-dialog[open]) { overflow: hidden; }

@media (min-width: 1800px) {
  .story-hero { max-width: 2000px; margin-inline: auto; }
}
@media (max-width: 1100px) {
  .gameplay-feature .feature-card-content { padding: 24px 21px 10px; }
  .capture-stage { height: 390px; padding: 23px 24px 14px; }
  #features .feature-grid { gap: 15px; }
  .zone-copy { padding: 23px; }
  .zone-copy h3 { font-size: 24px; }
  .zone-card .capture-stage { height: 330px; padding-inline: 18px; }
  .zone-card .capture-action { padding-inline: 16px; font-size: 10px; }
  .zone-number { margin-bottom: 26px; }
  .flight-section { gap: 50px; }
  .chronicle-layout { gap: 60px; }
  .story-hero-copy p { max-width: 360px; font-size: 14px; }
  .story-hero .eyebrow { margin-bottom: 16px; }
}
@media (max-width: 850px) {
  #features .feature-grid { grid-template-columns: 1fr; gap: 25px; }
  .gameplay-feature { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
  .gameplay-feature .feature-card-content { padding: 30px; }
  .gameplay-feature h3 { font-size: 31px; }
  .gameplay-feature p { font-size: 15px; }
  .capture-stage { height: 370px; }
  .zones-grid { grid-template-columns: 1fr; }
  .zone-card { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
  .zone-card .capture-stage { height: 370px; }
  .zone-copy { padding: 35px; }
  .zone-copy h3 { font-size: 30px; }
  .zone-copy p { font-size: 15px; }
  .story-hero-copy { position: static; transform: none; padding-top: 55px; padding-bottom: 22px; }
  .story-hero-copy p { max-width: 520px; font-size: 16px; }
  .story-hero h1 { font-size: 58px; }
  .story-hero-art { margin-top: -10px; }
  .story-hero-meta { bottom: 20px; font-size: 9px; }
  .chronicle-layout { grid-template-columns: 1fr; gap: 50px; padding-top: 65px; }
  .chronicle-intro { position: static; }
  .chronicle-heading br { display: none; }
  .chronicle-heading { max-width: 580px; }
  .chronicle-intro > p:not(.chronicle-heading) { max-width: 560px; }
  .flight-art { max-width: 530px; margin-inline: auto; }
  .expedition-panel { padding: 40px; }
  .expedition-panel h2 { max-width: 430px; }
  .developer-card { grid-template-columns: 1fr; }
  .developer-profile { flex-direction: row; align-items: flex-end; min-height: 230px; border-right: 0; border-bottom: 1px solid #37343c; }
  .developer-profile::before, .developer-profile::after { left: 20%; top: 50%; }
  .developer-emblem { width: 94px; margin: 0; }
}
@media (max-width: 540px) {
  .gameplay-feature { display: flex; }
  .gameplay-feature .feature-card-content { padding: 26px 25px 8px; }
  .gameplay-feature h3 { font-size: 29px; }
  .feature-index { margin-bottom: 22px; }
  .capture-stage { height: 440px; padding: 24px 30px 16px; }
  #features .tags { display: grid; grid-template-columns: 1fr 1fr; text-align: center; gap: 14px; }
  #features .tag + .tag::before { display: none; }
  .zone-card { display: flex; flex-direction: column; align-items: stretch; }
  .zone-copy { order: -1; padding: 27px 26px 12px; }
  .zone-copy h3 { font-size: 29px; }
  .zone-copy p { margin-bottom: 15px; }
  .zone-number { margin-bottom: 19px; }
  .zone-category { display: none; }
  .zone-card .capture-link { background: transparent; border: 0; }
  .zone-card .capture-stage { height: 410px; padding: 10px 28px 12px; }
  .zone-card .capture-action { padding: 14px 25px 19px; font-size: 11px; }
  .flight-section { gap: 35px; }
  .flight-art figcaption { padding: 16px; font-size: 8px; gap: 12px; }
  .step { gap: 17px; }
  .step h3 { font-size: 21px; }
  .step p { font-size: 14px; }
  .story-hero h1 { font-size: clamp(39px, 10.5vw, 55px); }
  .story-hero-copy { padding-top: 45px; padding-bottom: 24px; }
  .story-hero-copy p { font-size: 15px; }
  .story-hero-art { margin-top: 0; }
  .story-hero-meta { position: static; padding-block: 18px; font-size: 8px; }
  .chronicle-heading { font-size: 39px; }
  .story-timeline { padding-left: 27px; }
  .story-timeline article::before { left: -34px; }
  .story-timeline h2 { font-size: 25px; }
  .story-timeline p { font-size: 14px; }
  .expedition-panel { padding: 32px 25px 185px; }
  .expedition-panel > img { object-fit: contain; object-position: center bottom; }
  .expedition-panel::after { background: linear-gradient(#080c14 15%, #080c14cc 47%, transparent 76%); }
  .expedition-panel h2 { font-size: 34px; }
  .developer-section { padding-block: 60px; }
  .developer-profile { align-items: flex-start; min-height: 280px; padding: 29px 25px; }
  .developer-profile::before, .developer-profile::after { left: 50%; top: 35%; }
  .developer-emblem { width: 82px; margin-inline: auto; font-size: 37px; }
  .developer-message { padding: 38px 25px 34px; }
  .developer-quote { top: 20px; right: 20px; font-size: 90px; }
  .developer-message h2 { margin-bottom: 20px; font-size: 36px; }
  .developer-message > p { font-size: 15px; line-height: 1.75; }
  .developer-message footer { align-items: flex-start; flex-direction: column; gap: 17px; }
  .image-dialog { padding: 12px; }
  .image-dialog-close { width: 39px; height: 39px; right: 12px; top: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .gameplay-feature, .capture-action > :last-child { transition: none; }
}

/* Four ships form a balanced 2 × 2 fleet on the Game page. */
#ships .fleet { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 540px) {
  #ships .fleet { grid-template-columns: 1fr; }
}

.new-levels-intro { align-items: center; }
.release-status { display: inline-flex; align-items: center; gap: 10px; margin-top: 13px; padding: 10px 14px; border: 1px solid #654132; border-radius: 999px; background: #211711; color: #f4eee9; font: 11px/1.4 Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; }
.release-status span { color: var(--accent); font-size: 9px; }
.level-showcase-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.level-card { min-width: 0; overflow: hidden; border: 1px solid #303641; border-radius: 22px; background: linear-gradient(145deg, #171c27, #0b0e16 72%); }
.level-card-copy { min-height: 190px; padding: 30px 31px 24px; }
.level-index { display: block; margin-bottom: 20px; color: var(--accent); font: 10px/1.4 Consolas, monospace; letter-spacing: .14em; }
.level-card h3 { margin-bottom: 13px; font-size: clamp(25px, 2.4vw, 32px); }
.level-card p { max-width: 470px; margin: 0; font-size: 14px; line-height: 1.75; }
.level-card .capture-link { border-top: 1px solid #ffffff0a; }
.level-card .capture-stage { height: 520px; }
.level-capture-1 { --capture-glow: #d88b45; }
.level-capture-2 { --capture-glow: #4fb27d; }
.level-capture-3 { --capture-glow: #50a995; }
.level-capture-4 { --capture-glow: #b77f45; }
@media (max-width: 680px) {
  .level-showcase-grid { grid-template-columns: 1fr; }
  .level-card-copy { min-height: 0; padding: 27px 26px 22px; }
  .level-card .capture-stage { height: 500px; }
}
/* Equally visible consent choices, with a readable notice at narrow widths. */
#cookie-banner {
  max-height: calc(100dvh - 110px);
  overflow-y: auto;
}
.cookie-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.cookie-buttons button,
.cookie-buttons .refuse,
.policy-actions button,
.policy-actions .refuse {
  min-height: 44px;
  background: #24232b;
  color: #f4f3ee;
  border: 1px solid #b68772;
}
.cookie-buttons button:hover,
.policy-actions button:hover {
  background: #3a2a25;
  border-color: var(--accent);
}
.cookie-buttons a {
  grid-column: 1 / -1;
  justify-self: start;
  margin: 0;
  padding: 5px 0;
  font-size: 12px;
}
.policy-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 440px;
}
.policy-actions [data-revoke-consent] { grid-column: 1 / -1; }
.legal-table-wrap caption {
  text-align: left;
  padding: 15px;
  color: var(--text);
  font-weight: 600;
}
html:not(.js) #cookie-banner,
html:not(.js) [data-cookie-settings],
html:not(.js) .policy-actions { display: none; }
