/* Launch polish. Rajdhani is locally served under the bundled SIL OFL. */
@font-face {
  font-family: "Rajdhani";
  src: url("./assets/fonts/Rajdhani-SemiBold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
:root { --display: "Rajdhani", "Segoe UI", sans-serif; }
h1, h2, h3 { font-family: var(--display); font-weight: 600; }
.page-heading h1 { font-weight: 600; font-size: clamp(48px, 6vw, 86px); letter-spacing: -.025em; }
.intro-story h2 { font-size: clamp(38px, 4vw, 55px); letter-spacing: -.02em; }
.section-title h2 { font-size: clamp(32px, 3.3vw, 44px); letter-spacing: -.02em; }
.studio-cta h2 { font-size: clamp(40px, 4vw, 54px); letter-spacing: -.02em; }

/* Section names are the primary navigation cue, with a full-card link. */
.destination-card { display: flex; flex-direction: column; min-height: 285px; }
.destination-card h3 {
  margin: 28px 0 8px;
  font-size: clamp(32px, 2.8vw, 39px);
  line-height: 1.1;
  letter-spacing: .01em;
  text-transform: uppercase;
}
.destination-card .card-tagline { color: #e4ddeb; font-size: 13px; margin-bottom: 9px; }
.card-cta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 24px; color: var(--cyan); font: 10px/1.4 var(--mono); }
.destination-card .arrow { font-size: 24px; top: 19px; }
.destination-card:is(:hover, :focus-visible) h3 { color: #ffd8f3; text-shadow: 0 0 22px #eb70d33d; }
.destination-card:is(:hover, :focus-visible) .arrow { color: var(--cyan); }

/* Only opacity animates on a soft perimeter glow; no rapid flashing. */
.destination-card, .games-page .game-feature, .games-page .project { position: relative; isolation: isolate; }
.destination-card::after, .games-page .game-feature::after, .games-page .project::after {
  content: "";
  position: absolute;
  inset: -1px;
  border: 1px solid #c881e0;
  border-radius: inherit;
  box-shadow: 0 0 25px #c35bce35, inset 0 0 24px #b76bd912;
  pointer-events: none;
  opacity: 0;
}
.destination-card:is(:hover, :focus-visible)::after,
.games-page .game-feature:is(:hover, :focus-within)::after,
.games-page .project:is(:hover, :focus-within)::after {
  opacity: .8;
  animation: card-neon-breathe 1.8s ease-in-out infinite;
}
@keyframes card-neon-breathe { 0%, 100% { opacity: .4; } 50% { opacity: 1; } }
.games-page .game-feature h2 { font-size: clamp(44px, 4.3vw, 62px); letter-spacing: .015em; line-height: 1; }
.games-page .project h2 { font-size: clamp(33px, 3vw, 42px); line-height: 1.08; letter-spacing: 0; }
.games-page .project { overflow: visible; }
.games-page .project-update { margin-top: 22px; }
.games-page .game-feature { grid-template-columns: 1fr 1.05fr; gap: 35px; overflow: visible; }
.game-city { margin: 0; min-width: 0; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.game-city img { width: 100%; height: auto; border-radius: 5px; aspect-ratio: 4/3; object-fit: contain; background: #080b13; border: 1px solid #ae88c52e; }
.game-city figcaption { margin-top: 13px; color: #c1a8ce; font: 10px/1.7 var(--mono); }
.game-city figcaption span { display: block; color: #8897ad; font-size: 9px; margin-top: 4px; }

/* Display complete original fronts. Never stretch or crop the book jackets. */
.release-art.cover-display, .book-image.cover-display, .edition-cover.cover-display {
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(ellipse at 50% 35%, #3c28512b, transparent 68%), #0b0f1b;
}
.release-art.cover-display { height: 520px; padding: 30px; }
.release-art::after { display: none; }
.cover-display img { width: auto; height: 100%; max-width: 100%; object-fit: contain; object-position: center; filter: drop-shadow(0 15px 18px #0008); }
.release-copy h2 { font-size: clamp(46px, 4.3vw, 62px); letter-spacing: -.02em; }
.book-feature { grid-template-columns: .85fr 1.15fr; }
.book-feature .book-image { height: 520px; padding: 30px; }
.book-feature h2 { font-size: clamp(38px, 3.5vw, 50px); letter-spacing: -.02em; }
.book-grid .book-edition { padding: 0; overflow: hidden; display: flex; align-items: stretch; }
.edition-cover { height: 330px; padding: 24px; border-bottom: 1px solid var(--line); }
.edition-copy { padding: 27px; display: flex; flex-direction: column; flex: 1; }
.book-grid h2 { font-size: 33px; line-height: 1.1; letter-spacing: -.01em; }
.book-grid .edition-copy .text-link { margin-top: auto; align-self: flex-start; }
.book-grid .book-coming { padding: 32px 28px; justify-content: center; border-style: dashed; }
.book-coming .status-badge { margin-top: 0; }
.book-coming h2 { margin-top: 34px; font-size: 38px; }
.book-grid .book-coming .text-link { margin-top: 12px; }
.digital-note { display: flex; align-items: center; justify-content: space-between; gap: 35px; margin-top: 28px; }
.digital-note h2 { font-size: 35px; margin-bottom: 14px; }
.digital-note p:last-child { margin: 0; max-width: 730px; }
.digital-note .status-badge { flex-shrink: 0; }
.email-entry .email-link { font-size: 17px; color: #d6deed; overflow-wrap: anywhere; }
.email-entry .email-link:hover { color: var(--cyan); }

@media (max-width: 1100px) {
  .book-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .book-grid .book-coming { grid-column: 1/-1; min-height: 280px; }
  .book-coming h2 br { display: none; }
  .edition-cover { height: 360px; }
}
@media (max-width: 760px) {
  .page-heading h1 { font-size: clamp(43px, 10.8vw, 60px); letter-spacing: -.02em; }
  .intro-story h2 { font-size: 38px; }
  .section-title h2 { font-size: 34px; }
  .destination-card { min-height: 264px; padding: 20px 14px; }
  .destination-card h3 { font-size: clamp(23px, 6.5vw, 36px); margin-top: 32px; letter-spacing: 0; }
  .destination-card .card-tagline { font-size: 12px; line-height: 1.5; }
  .card-cta { font-size: 9px; gap: 6px; line-height: 1.6; }
  .destination-card .arrow { right: 15px; }
  .games-page .game-feature { grid-template-columns: 1fr; gap: 28px; }
  .games-page .game-feature h2 { font-size: 42px; }
  .games-page .project h2 { font-size: 36px; }
  .game-city figcaption { font-size: 9px; }
  .release-art.cover-display, .book-feature .book-image { height: 390px; padding: 24px; }
  .release-copy h2 { font-size: 46px; }
  .book-feature { grid-template-columns: 1fr; }
  .book-feature h2 { font-size: 36px; }
  .book-grid { grid-template-columns: 1fr; }
  .edition-cover { height: 385px; }
  .book-grid .edition-copy { padding: 25px; }
  .book-grid h2 { font-size: 34px; }
  .book-grid .book-coming { padding: 28px; }
  .book-grid .book-coming h2 { margin-top: 27px; }
  .digital-note { flex-direction: column; align-items: flex-start; gap: 24px; padding: 26px; }
  .digital-note h2 { font-size: 32px; }
  .email-entry .email-link { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .destination-card:is(:hover, :focus-visible)::after,
  .games-page .game-feature:is(:hover, :focus-within)::after,
  .games-page .project:is(:hover, :focus-within)::after { animation: none; opacity: .8; }
}
