:root {
  color-scheme: dark;
  --page-ink: #edf2f7;
  --page-muted: #b7c5d2;
  --page-soft: #8fa5b8;
  --page-violet: #b884d1;
  --page-line: rgba(137, 166, 190, .28);
  --page-surface: #0d1826;
  --page-surface-deep: #070d17;
  --page-serif: Georgia, "Times New Roman", serif;
  --page-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

html { background: #070c14; scroll-behavior: smooth; overflow-anchor: none; }

body {
  min-width: 320px;
  margin: 0;
  color: var(--page-ink);
  background: #070c14;
  font-family: var(--page-sans);
}

a { color: inherit; }
button, input { font: inherit; }
img { display: block; max-width: 100%; }

.game-page { overflow: hidden; }

.game-hero {
  position: relative;
  min-height: clamp(530px, 64vw, 700px);
  display: grid;
  align-items: center;
  isolation: isolate;
  border-bottom: 1px solid var(--page-line);
  background: var(--page-surface-deep);
}

.game-hero::before {
  position: absolute;
  z-index: -2;
  inset: 0;
  background-image: var(--hero-image);
  background-position: var(--hero-position, 76% center);
  background-size: cover;
  content: "";
}

.game-hero::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(3, 8, 14, .99) 0%, rgba(3, 8, 14, .96) 35%, rgba(3, 8, 14, .62) 58%, rgba(3, 8, 14, .12) 100%),
    linear-gradient(180deg, rgba(8, 16, 27, .05), rgba(8, 16, 27, .4));
  content: "";
}

.hero-inner,
.page-section {
  width: min(1240px, calc(100% - clamp(40px, 8vw, 128px)));
  margin-inline: auto;
}

.hero-copy { width: min(680px, 58%); padding: clamp(70px, 9vw, 120px) 0; }

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 38px;
  color: #a6bacb;
  font-size: .82rem;
}

.breadcrumbs a { color: #c5d3df; text-decoration: none; }
.breadcrumbs a:hover, .breadcrumbs a:focus-visible { text-decoration: underline; text-underline-offset: 4px; }

.game-label {
  margin: 0 0 16px;
  color: var(--label-color, #b884d1);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

h1, h2, h3 { text-wrap: balance; }

h1 {
  max-width: 820px;
  margin: 0;
  font: 600 clamp(3rem, 6.5vw, 6.25rem)/.94 var(--page-serif);
  letter-spacing: -.035em;
}

.hero-summary {
  max-width: 700px;
  margin: 30px 0 0;
  color: #cad5df;
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.7;
}

.hero-status { margin: 22px 0 0; color: #d9e4ec; font-weight: 700; }
.hero-status[data-state="online"] { color: #8fc7b4; }

.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.button {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  padding: 12px 22px;
  border: 1px solid rgba(184, 132, 209, .72);
  background: rgba(122, 42, 138, .86);
  color: #fff;
  font-weight: 760;
  text-decoration: none;
}
.button:hover, .button:focus-visible { background: #9442a6; }
.button.secondary { border-color: rgba(173, 193, 210, .48); background: rgba(8, 16, 28, .7); }
.button.secondary:hover, .button.secondary:focus-visible { border-color: #cad6e1; background: #142437; }

.page-section { padding-block: clamp(64px, 8vw, 110px); }
.page-section + .page-section { border-top: 1px solid var(--page-line); }
.section-heading { max-width: 760px; margin-bottom: 36px; }
.section-heading p { margin: 0 0 10px; color: var(--page-violet); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.section-heading h2 { margin: 0; font: 600 clamp(2.15rem, 4.5vw, 4rem)/1 var(--page-serif); }
.section-heading span { display: block; margin-top: 15px; color: var(--page-muted); line-height: 1.7; }

.play-frame {
  width: min(100%, 1120px);
  aspect-ratio: 4 / 3;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid rgba(152, 178, 199, .36);
  background: #000;
  box-shadow: 0 28px 70px rgba(0, 0, 0, .38);
}
.play-frame iframe { width: 100%; height: 100%; border: 0; }
.tale-player {
  aspect-ratio: auto;
  height: clamp(1320px, 112vw, 1560px);
}
.oracle-player { aspect-ratio: 10 / 9; }

.overview-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(260px, .7fr); gap: clamp(42px, 7vw, 90px); }
.prose { color: var(--page-muted); font-size: 1rem; line-height: 1.82; }
.prose p { margin: 0 0 1.35em; }
.prose strong { color: var(--page-ink); }
.prose h3 { margin: 42px 0 12px; color: var(--page-ink); font: 600 1.55rem/1.2 var(--page-serif); }
.prose ul { padding-left: 20px; }

.game-facts { margin: 0; border-top: 1px solid var(--page-line); }
.game-facts div { padding: 17px 0; border-bottom: 1px solid var(--page-line); }
.game-facts dt { color: var(--page-soft); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.game-facts dd { margin: 7px 0 0; color: var(--page-ink); line-height: 1.55; }

.save-note { margin-top: 28px; padding: 22px 0; border-block: 1px solid var(--page-line); color: #c7d4df; line-height: 1.7; }
.save-note strong { color: #fff; }

.feature-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--page-line); border: 1px solid var(--page-line); }
.feature { min-height: 230px; padding: clamp(28px, 4vw, 48px); background: #0a1421; }
.feature h3 { margin: 0 0 16px; font: 600 1.55rem var(--page-serif); }
.feature p { margin: 0; color: var(--page-muted); line-height: 1.72; }

.manual-shelf {
  position: relative;
  min-height: 370px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 34px;
  padding: 34px clamp(26px, 5vw, 56px) 58px;
  border-top: 1px solid var(--page-line);
  background: linear-gradient(180deg, rgba(15, 29, 45, .42), rgba(7, 14, 24, .82));
}
.manual-shelf::after {
  position: absolute;
  right: 3%;
  bottom: 28px;
  left: 3%;
  height: 18px;
  border: 1px solid rgba(150, 132, 177, .46);
  background:
    linear-gradient(rgba(24, 32, 43, .12), rgba(8, 12, 18, .32)),
    url("assets/metal-texture.jpg") center / cover;
  box-shadow: 0 18px 26px rgba(0, 0, 0, .42), 0 1px 0 rgba(217, 203, 235, .16) inset;
  content: "";
}
.manual-volume, .manual-link { position: relative; z-index: 1; }
.manual-volume { width: 180px; display: grid; gap: 10px; padding: 0; border: 0; color: #dbe5ed; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.manual-volume img { width: 180px; height: 240px; object-fit: cover; border: 1px solid rgba(199, 214, 226, .34); box-shadow: 0 14px 28px rgba(0, 0, 0, .38); transition: transform 180ms ease, border-color 180ms ease; }
.manual-volume span { font-weight: 700; }
.manual-volume:hover img, .manual-volume:focus-visible img { border-color: #d6b0e1; transform: translateY(-4px); }
.manual-link { width: 180px; display: grid; gap: 10px; color: #dbe5ed; text-decoration: none; }
.manual-link img { width: 180px; height: 240px; object-fit: cover; border: 1px solid rgba(199, 214, 226, .34); box-shadow: 0 14px 28px rgba(0, 0, 0, .38); }
.manual-link span { font-weight: 700; }

.gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.gallery button { padding: 0; overflow: hidden; border: 1px solid var(--page-line); background: #08111d; cursor: zoom-in; }
.gallery img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .4s ease; }
.gallery button:hover img, .gallery button:focus-visible img { transform: scale(1.035); }

.image-viewer { width: min(1120px, calc(100% - 32px)); padding: 0; border: 1px solid rgba(188, 205, 219, .4); background: #050912; color: #fff; }
.image-viewer::backdrop { background: rgba(0, 0, 0, .88); }
.image-viewer img { width: 100%; max-height: 82vh; object-fit: contain; }
.image-viewer button { width: 100%; min-height: 48px; border: 0; border-top: 1px solid var(--page-line); background: #101c2b; color: #fff; font-weight: 700; cursor: pointer; }

.player-response { display: flex; align-items: center; justify-content: space-between; gap: clamp(34px, 7vw, 90px); }
.player-response > div:first-child { max-width: 720px; }
.response-heading { margin: 0 0 10px; color: var(--page-violet); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.player-response h2 { margin: 0; font: 600 clamp(2rem, 4vw, 3.65rem)/1.05 var(--page-serif); }
.response-actions { min-width: 290px; display: grid; gap: 10px; }
.response-actions button { min-height: 44px; padding: 10px 18px; border: 1px solid rgba(184, 132, 209, .72); background: #7c2a8a; color: #fff; font-weight: 760; cursor: pointer; }
.response-actions button:disabled { border-color: rgba(145, 166, 184, .34); background: #152130; color: #aab8c5; cursor: default; }
.share-destinations { display: flex; flex-wrap: wrap; gap: 6px 14px; padding-top: 4px; }
.share-destinations a, .share-destinations button { min-height: auto; padding: 6px 0; border: 0; border-bottom: 1px solid rgba(184, 132, 209, .65); background: transparent; color: #e9dfee; font-size: .84rem; font-weight: 700; text-decoration: none; }
.share-destinations a:hover, .share-destinations a:focus-visible, .share-destinations button:hover, .share-destinations button:focus-visible { color: #fff; border-color: #fff; }
.response-message { min-height: 1.4em; color: var(--page-muted); font-size: .82rem; line-height: 1.5; }

.mobile-game-notice { display: none; }

.shell-embedded body { background: transparent; }

@media (max-width: 980px) {
  .game-hero { align-items: end; padding-top: min(42vw, 330px); }
  .game-hero::before { background-position: var(--hero-position-tablet, center 18%); background-size: auto min(56vw, 480px); background-repeat: no-repeat; }
  .game-hero::after { background: linear-gradient(180deg, rgba(3, 8, 14, .08) 0, rgba(3, 8, 14, .5) 30%, rgba(3, 8, 14, .98) 58%, #03080e 100%); }
  .hero-copy { width: 100%; padding: 40px 0 72px; }
  .breadcrumbs { margin-bottom: 26px; }
  .overview-layout { grid-template-columns: 1fr; }
  .game-facts { display: grid; grid-template-columns: 1fr 1fr; }
  .game-facts div:nth-child(odd) { padding-right: 24px; }
  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .player-response { align-items: flex-start; flex-direction: column; }
  .response-actions { width: 100%; }
}

@media (max-width: 700px) {
  .game-page { display: none; }
  .mobile-game-notice {
    min-height: 100vh;
    display: grid;
    align-content: center;
    padding: 42px 24px;
    background:
      linear-gradient(rgba(4, 10, 19, .65), rgba(4, 10, 19, .96)),
      url("../assets/crossroads-fantasy.jpg") 68% top / auto 100% no-repeat;
  }
  .mobile-game-notice > div { width: min(100%, 560px); margin: 0 auto; }
  .mobile-game-notice p:first-child { color: #c6b6df; font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
  .mobile-game-notice h1 { margin: 10px 0 20px; font-size: clamp(2.6rem, 13vw, 4rem); }
  .mobile-game-notice p { color: #d3dce7; line-height: 1.72; }
  .mobile-actions { display: grid; gap: 12px; margin-top: 28px; }
  .mobile-playable .game-page { display: block; }
  .mobile-playable .mobile-game-notice { display: none; }
  .mobile-playable .game-hero { min-height: 520px; }
  .mobile-playable .hero-copy { width: 100%; padding: 64px 0; }
  .mobile-playable .play-frame { aspect-ratio: auto; height: 76vh; min-height: 620px; }
  .mobile-playable .tale-player { height: 1480px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .gallery img { transition: none; }
}

/* Space glass inside the site (approved 30 Sep 2026): the page opens up to the site's stars and every panel is the same dark glass. Only inside the site shell. */
html.shell-embedded {
  --sg-glass: linear-gradient(160deg, rgba(14, 20, 40, .78), rgba(6, 10, 22, .74));
  --sg-line: rgba(255, 236, 190, .12);
  --sg-radius: 22px;
  --sg-shadow: 0 24px 60px rgba(0, 0, 0, .35), inset 0 1px 0 rgba(255, 255, 255, .05);
}
html.shell-embedded,
html.shell-embedded body { background: transparent; }
html.shell-embedded .game-page .page-section { width: min(1320px, calc(100% - 48px)); margin: 26px auto; padding: clamp(24px, 3vw, 40px); background: var(--sg-glass); border: 1px solid var(--sg-line); border-radius: var(--sg-radius); box-shadow: var(--sg-shadow); box-sizing: border-box; }
html.shell-embedded .feature,
html.shell-embedded .gallery button { background: rgba(10, 18, 34, .55); }
html.shell-embedded .feature-list { background: var(--sg-line); }
