/* Screen-specific layout: splash, onboarding, hub, season, results, locker and the rest. */

/* ---- Splash ------------------------------------------------------------- */

.splash {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-6);
  min-height: 82vh;
  text-align: center;
}

.splash__cover {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-7) var(--space-5);
  border-radius: var(--radius-xl);
  border: 1px solid var(--surface-line-strong);
  background: linear-gradient(170deg, rgba(91, 58, 166, 0.5), rgba(21, 12, 36, 0.9));
  box-shadow: var(--shadow-lg);
  width: 100%;
}

.splash__crest {
  animation: crest-in var(--slow) var(--ease) both;
}

.splash__eyebrow,
.onboard__eyebrow,
.profile__eyebrow {
  font-size: var(--size-eyebrow);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--brass-300);
}

.splash__title {
  font-size: var(--size-display);
  letter-spacing: 0.02em;
}

.splash__tagline {
  color: var(--text-muted);
  font-size: var(--size-small);
  max-width: 30ch;
}

.splash__bar {
  width: 160px;
  height: 4px;
  border-radius: var(--radius-pill);
  background: rgba(21, 12, 36, 0.6);
  overflow: hidden;
}

.splash__bar span {
  display: block;
  width: 40%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--brass-500), var(--brass-300));
  animation: splash-slide 1.2s var(--ease) infinite;
}

.splash__status,
.splash__foot {
  font-size: var(--size-small);
  color: var(--text-muted);
}

@keyframes splash-slide {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(260%); }
}

@keyframes crest-in {
  from { opacity: 0; transform: scale(0.85) rotate(-4deg); }
  to { opacity: 1; transform: none; }
}

/* ---- Onboarding --------------------------------------------------------- */

.onboard,
.profile,
.offline {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--space-5) 0;
}

.onboard__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  text-align: center;
  min-height: 46vh;
  justify-content: center;
}

.onboard__title {
  font-size: var(--size-display);
  max-width: 16ch;
}

.onboard__text {
  color: var(--text-soft);
  max-width: 34ch;
}

.onboard__ladder {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: center;
  color: var(--text-muted);
}

.onboard__pitch {
  width: 100%;
  max-width: 280px;
  display: grid;
  grid-template-rows: 2fr 3fr 3fr;
  height: 200px;
  border-radius: var(--radius-md);
  overflow: hidden;
  border: 1px solid var(--surface-line);
  background: var(--meadow-700);
}

.onboard__pitch-zone {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--size-eyebrow);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(251, 243, 228, 0.7);
  border-bottom: 1px dashed rgba(251, 243, 228, 0.22);
  text-align: center;
  padding: 0 var(--space-3);
}

.onboard__pitch-zone[data-zone='final'] { background: rgba(201, 162, 39, 0.16); }
.onboard__pitch-zone[data-zone='build'] { border-bottom: none; }

.onboard__shape {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-3);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  background: var(--meadow-700);
  border: 1px solid var(--surface-line);
}

.onboard__dot {
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: var(--tile-sand);
}

.onboard__dot[data-kind='defender'] {
  background: var(--tile-slate);
  box-shadow: 0 0 0 2px rgba(226, 112, 90, 0.5);
}

.onboard__dots {
  display: flex;
  gap: 6px;
  justify-content: center;
}

.onboard__dotmark {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(251, 243, 228, 0.25);
  transition: background var(--fast) var(--ease), width var(--fast) var(--ease);
}

.onboard__dotmark[data-active='true'] {
  width: 22px;
  border-radius: var(--radius-pill);
  background: var(--brass-300);
}

.onboard__actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

/* ---- Profile setup ------------------------------------------------------ */

.profile__title {
  font-size: var(--size-display);
  text-align: center;
}

.profile__preview {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4);
  border-radius: var(--radius-lg);
  border: 1px solid var(--surface-line-strong);
  background: linear-gradient(160deg, rgba(91, 58, 166, 0.45), rgba(21, 12, 36, 0.9));
}

.profile__preview-text {
  display: flex;
  flex-direction: column;
}

.profile__preview-name {
  font-family: var(--font-display);
  font-size: var(--size-title);
}

.profile__preview-role {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.profile__section {
  font-size: 1.0625rem;
}

.profile__error {
  color: var(--ember-300);
  font-size: var(--size-small);
}

.crest-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
  gap: var(--space-3);
}

.crest-grid__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3);
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  background: var(--surface-muted);
  color: var(--text-soft);
  font-size: var(--size-small);
}

.crest-grid__item[data-selected='true'] {
  border-color: var(--brass-400);
  background: rgba(201, 162, 39, 0.14);
  color: var(--cream-100);
}

/* ---- Hub ---------------------------------------------------------------- */

.hub-head {
  padding-top: var(--space-2);
}

.hub-head__eyebrow {
  font-size: var(--size-eyebrow);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--brass-300);
}

.hub-head__title {
  font-size: var(--size-display);
}

.hub-head__meta {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.hub-profile__top {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.hub-profile__text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.hub-profile__name {
  font-family: var(--font-display);
  font-size: var(--size-lead);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.hub-profile__role {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.hub-next__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
}

.hub-next__eyebrow {
  font-size: var(--size-eyebrow);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brass-300);
}

.hub-next__title {
  font-size: var(--size-title);
}

.hub-next__detail {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.hub-next__index {
  font-family: var(--font-display);
  font-size: var(--size-lead);
  color: var(--text-muted);
}

.hub-next__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.hub-next__moves {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.mode-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-2);
}

.mode-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: var(--space-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  background: var(--surface-muted);
  color: var(--text);
  text-align: left;
  min-height: 108px;
  transition: background var(--fast) var(--ease), transform var(--fast) var(--ease);
}

.mode-card:hover {
  background: rgba(91, 58, 166, 0.28);
}

.mode-card:active {
  transform: scale(0.99);
}

.mode-card__icon {
  color: var(--brass-300);
}

.mode-card__label {
  font-weight: 650;
}

.mode-card__detail {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.mission-row {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: var(--space-3) 0;
  border-top: 1px solid var(--surface-line);
}

.mission-row:first-of-type {
  border-top: none;
}

.mission-row__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.mission-row__title {
  font-weight: 600;
}

.mission-row__count {
  font-size: var(--size-small);
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}

.mission-row__done {
  color: var(--meadow-300);
  display: inline-flex;
}

.mission-row__detail {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.hub-foot {
  text-align: center;
  font-size: var(--size-eyebrow);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding: var(--space-5) 0 var(--space-2);
}

/* ---- Season, chapters, levels ------------------------------------------- */

.season-summary__text {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.chapter-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.chapter-card {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  background: var(--surface-muted);
  color: var(--text);
  text-align: left;
  transition: background var(--fast) var(--ease), border-color var(--fast) var(--ease);
}

.chapter-card:hover:not(:disabled) {
  background: rgba(91, 58, 166, 0.26);
}

.chapter-card[data-locked='true'] {
  opacity: 0.5;
  cursor: not-allowed;
}

.chapter-card[data-complete='true'] {
  border-color: rgba(62, 158, 114, 0.5);
}

.chapter-card__number {
  font-family: var(--font-display);
  font-size: 1.5rem;
  color: var(--brass-300);
  min-width: 34px;
}

.chapter-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.chapter-card__name {
  font-weight: 650;
}

.chapter-card__opponent,
.chapter-card__locked {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.chapter-card__meta {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.chapter-card__stars {
  font-size: var(--size-small);
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}

.chapter-card__badge {
  color: var(--meadow-300);
  display: inline-flex;
}

.chapter-hero {
  padding: 0;
  overflow: hidden;
}

.chapter-hero__art {
  line-height: 0;
}

.chapter-hero__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-5);
}

.chapter-hero__venue {
  font-size: var(--size-eyebrow);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brass-300);
}

.chapter-hero__brief {
  color: var(--text-soft);
  font-size: var(--size-small);
}

.chapter-hero__shape {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--space-3);
  border-radius: var(--radius-sm);
  background: rgba(21, 12, 36, 0.42);
  border: 1px solid var(--surface-line);
}

.chapter-hero__shape-name {
  font-weight: 650;
  color: var(--cream-100);
}

.chapter-hero__shape-text {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.chapter-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-2);
  text-align: center;
}

.chapter-stats__item {
  padding: var(--space-3);
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  background: rgba(21, 12, 36, 0.32);
}

.chapter-stats__item strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1.125rem;
}

.chapter-stats__item span {
  font-size: var(--size-eyebrow);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.level-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.level-card {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  background: var(--surface-muted);
  color: var(--text);
  text-align: left;
}

.level-card[data-locked='true'] {
  opacity: 0.5;
}

.level-card[data-perfect='true'] {
  border-color: rgba(232, 206, 122, 0.55);
}

.level-card__index {
  width: 34px;
  height: 34px;
  flex: none;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(142, 107, 214, 0.2);
  font-family: var(--font-display);
  color: var(--brass-300);
}

.level-card__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.level-card__name {
  font-weight: 650;
}

.level-card__objective,
.level-card__locked {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.level-card__meta {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.level-card__score {
  font-size: var(--size-small);
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}

/* ---- Briefing ----------------------------------------------------------- */

.brief__eyebrow {
  font-size: var(--size-eyebrow);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brass-300);
}

.brief__title {
  font-size: var(--size-display);
}

.brief__text {
  color: var(--text-soft);
}

.brief__objective {
  display: flex;
  gap: var(--space-3);
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: rgba(21, 12, 36, 0.4);
  border: 1px solid var(--surface-line);
}

.brief__objective-icon {
  color: var(--brass-300);
  display: inline-flex;
  align-items: flex-start;
}

.brief__objective-label {
  display: block;
  font-weight: 650;
}

.brief__objective-rule {
  display: block;
  font-size: var(--size-small);
  color: var(--text-muted);
}

.brief__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-2);
  text-align: center;
}

.brief__stat strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1.125rem;
}

.brief__stat span {
  font-size: 0.625rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.brief-shape__title,
.brief-ladder__title {
  font-size: var(--size-lead);
}

.brief-shape__text,
.brief-ladder__text,
.brief-shape__note {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.brief-shape__note {
  color: var(--ember-300);
}

.brief-ladder__row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
}

.brief-record__row {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;
  font-size: var(--size-small);
  color: var(--text-muted);
}

/* ---- Result and reward -------------------------------------------------- */

.result-hero {
  align-items: center;
  text-align: center;
}

.result-hero__eyebrow {
  font-size: var(--size-eyebrow);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brass-300);
}

.result-hero__title {
  font-size: var(--size-display);
}

.result-hero__miss {
  color: var(--text-muted);
  font-size: var(--size-small);
}

.result-hero__score {
  display: flex;
  align-items: baseline;
  gap: var(--space-2);
}

.result-hero__score strong {
  font-family: var(--font-display);
  font-size: var(--size-hero);
  color: var(--brass-300);
  font-variant-numeric: tabular-nums;
}

.result-hero__score span,
.result-hero__meta {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.result-hero__meta {
  display: flex;
  gap: var(--space-3);
  flex-wrap: wrap;
  justify-content: center;
}

.result-stats,
.stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-2);
}

.reward-card__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-3);
}

.reward-card__xp {
  font-family: var(--font-display);
  color: var(--brass-300);
}

.reward-card__none {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.reward-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.reward-row {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-2) var(--space-3);
  border-radius: var(--radius-sm);
  background: rgba(21, 12, 36, 0.4);
  font-size: var(--size-small);
  color: var(--text-soft);
}

.reward-row[data-tone='brass'] {
  border: 1px solid rgba(232, 206, 122, 0.4);
  color: var(--brass-300);
}

.reward-hero {
  align-items: center;
  text-align: center;
}

.reward-hero__icon {
  display: inline-flex;
  width: 62px;
  height: 62px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(201, 162, 39, 0.2);
  color: var(--brass-300);
}

.reward-hero p {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.reward-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: var(--space-3);
}

.reward-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  border: 1px solid rgba(232, 206, 122, 0.4);
  background: rgba(201, 162, 39, 0.1);
  text-align: center;
}

.reward-item__art {
  line-height: 0;
}

.reward-item__name {
  font-weight: 650;
}

.reward-item__rule {
  font-size: var(--size-eyebrow);
  color: var(--text-muted);
}

/* ---- Modes -------------------------------------------------------------- */

.quick__stats,
.settings-save__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--space-2);
}

.quick__note,
.trials-intro p,
.training-intro p,
.missions-intro p {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.fixture {
  padding: 0;
  overflow: hidden;
}

.fixture__art {
  line-height: 0;
}

.fixture__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-5);
}

.fixture__eyebrow {
  font-size: var(--size-eyebrow);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--brass-300);
}

.fixture__title {
  font-size: var(--size-title);
}

.fixture__rule,
.fixture__shape {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.fixture__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-2);
  text-align: center;
}

.fixture__grid strong {
  display: block;
  font-family: var(--font-display);
  font-size: 1.125rem;
}

.fixture__grid span {
  font-size: 0.625rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.mission-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.mission-card__head h3 {
  font-size: var(--size-lead);
}

.mission-card p {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.mission-card__reward {
  font-size: var(--size-eyebrow);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--brass-300);
}

.daily-done__head {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--meadow-300);
}

.daily-done__stats {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  font-size: var(--size-small);
  color: var(--text-soft);
}

.daily-done p {
  font-size: var(--size-small);
  color: var(--text-muted);
}

/* ---- Locker and collections --------------------------------------------- */

.locker-hero {
  align-items: center;
  text-align: center;
}

.locker-hero__pair {
  display: flex;
  gap: var(--space-4);
}

.locker-hero__art {
  line-height: 0;
}

.locker-hero__name {
  display: block;
  font-family: var(--font-display);
  font-size: var(--size-title);
}

.locker-hero__detail {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.locker-hero__actions {
  display: flex;
  gap: var(--space-2);
  width: 100%;
}

.locker-hero__actions .btn {
  flex: 1;
}

.collect-head__note {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.collect-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: var(--space-3);
}

.collect-grid[data-columns='wide'] {
  grid-template-columns: 1fr;
}

.collect-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  background: var(--surface-muted);
  color: var(--text);
  text-align: center;
  transition: border-color var(--fast) var(--ease), background var(--fast) var(--ease);
}

.collect-item[data-owned='false'] {
  opacity: 0.55;
  cursor: not-allowed;
}

.collect-item[data-equipped='true'] {
  border-color: var(--brass-400);
  background: rgba(201, 162, 39, 0.14);
}

.collect-item__art {
  line-height: 0;
  width: 100%;
  display: flex;
  justify-content: center;
}

.collect-item__name {
  font-weight: 650;
}

.collect-item__state {
  font-size: var(--size-eyebrow);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.collect-item__lock {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  font-size: var(--size-eyebrow);
  color: var(--text-muted);
}

.collect-item__progress {
  color: var(--brass-300);
  font-variant-numeric: tabular-nums;
}

/* ---- Achievements, trophies, statistics, history ------------------------ */

.achieve-grid {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.achieve-item {
  display: flex;
  gap: var(--space-3);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  background: var(--surface-muted);
}

.achieve-item[data-earned='true'] {
  border-color: rgba(232, 206, 122, 0.45);
  background: rgba(201, 162, 39, 0.1);
}

.achieve-item__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  flex: none;
  border-radius: 50%;
  background: rgba(142, 107, 214, 0.18);
  color: var(--brass-300);
}

.achieve-item[data-earned='false'] .achieve-item__icon {
  color: var(--text-muted);
}

.achieve-item__body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.achieve-item__title {
  font-weight: 650;
}

.achieve-item__detail,
.achieve-item__date {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.trophy-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: var(--space-3);
}

.trophy-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  background: var(--surface-muted);
  text-align: center;
}

.trophy-item[data-earned='true'] {
  border-color: rgba(232, 206, 122, 0.5);
  background: rgba(201, 162, 39, 0.12);
}

.trophy-item[data-earned='false'] {
  opacity: 0.6;
}

.trophy-item__art {
  line-height: 0;
  color: var(--text-muted);
}

.trophy-item__title {
  font-weight: 650;
}

.trophy-item__detail {
  font-size: var(--size-eyebrow);
  color: var(--text-muted);
}

.chapter-stat {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: var(--space-3);
  border-radius: var(--radius-md);
  background: rgba(21, 12, 36, 0.3);
  border: 1px solid var(--surface-line);
}

.chapter-stat__head {
  display: flex;
  justify-content: space-between;
  gap: var(--space-3);
  font-size: var(--size-small);
}

.chapter-stat__value {
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}

.history-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.history-row {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  border: 1px solid var(--surface-line);
  background: var(--surface-muted);
}

.history-row[data-completed='false'] {
  opacity: 0.7;
}

.history-row__main {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.history-row__name {
  font-weight: 650;
}

.history-row__meta {
  font-size: var(--size-small);
  color: var(--text-muted);
  text-transform: capitalize;
}

.history-row__side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}

.history-row__score {
  font-size: var(--size-small);
  color: var(--brass-300);
  font-variant-numeric: tabular-nums;
}

.history-row__date {
  font-size: var(--size-eyebrow);
  color: var(--text-muted);
}

.history-row__perfect {
  position: absolute;
  top: 6px;
  left: 6px;
  color: var(--brass-300);
}

/* ---- Settings, rules, credits, offline ---------------------------------- */

.settings-profile__row {
  display: flex;
  gap: var(--space-2);
}

.settings-profile__row .btn {
  flex: 1;
}

.settings-save__note,
.settings-version,
.audio-note p,
.access-note li,
.credits-card p,
.credits-hero p {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.settings-version {
  text-align: center;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: var(--size-eyebrow);
  padding-top: var(--space-4);
}

.access-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.rules-ladder__row {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}

.rules-ladder__item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.rules-ladder__item--blocker {
  padding-top: var(--space-3);
  border-top: 1px dashed var(--surface-line);
}

.rules-ladder__text {
  font-size: var(--size-small);
  color: var(--text-soft);
}

.rule-card {
  flex-direction: row;
  align-items: flex-start;
  gap: var(--space-3);
}

.rule-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: var(--radius-sm);
  background: rgba(142, 107, 214, 0.18);
  color: var(--brass-300);
}

.rule-card__body h3 {
  font-size: var(--size-lead);
  margin-bottom: 4px;
}

.rule-card__body p {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.rules-controls__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  font-size: var(--size-small);
  color: var(--text-muted);
}

.shape-row {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--space-3);
  border-radius: var(--radius-sm);
  background: rgba(21, 12, 36, 0.3);
  border: 1px solid var(--surface-line);
}

.shape-row__name {
  font-weight: 650;
}

.shape-row__text {
  font-size: var(--size-small);
  color: var(--text-muted);
}

.credits-hero h2 {
  font-size: var(--size-display);
}

.credits-card h3 {
  font-size: var(--size-lead);
  margin-bottom: 4px;
}

.offline {
  align-items: center;
  text-align: center;
}

.offline__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  background: rgba(226, 112, 90, 0.14);
  color: var(--ember-300);
}

.offline__title {
  font-size: var(--size-display);
}

.offline__text {
  color: var(--text-muted);
  font-size: var(--size-small);
  max-width: 36ch;
}

.offline__status {
  font-size: var(--size-small);
  color: var(--ember-300);
}

.offline__resume {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-md);
  border: 1px dashed var(--surface-line);
  width: 100%;
}

.offline__resume-label {
  font-size: var(--size-eyebrow);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-muted);
}

.offline__resume-value {
  font-weight: 650;
}

.offline .btn {
  width: 100%;
}

/* ---- Responsive --------------------------------------------------------- */

@media (min-width: 560px) {
  .result-stats,
  .stats-grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .mode-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (max-width: 360px) {
  :root {
    --size-display: 1.625rem;
    --size-hero: 2rem;
  }

  .mode-grid {
    grid-template-columns: 1fr;
  }

  .brief__grid,
  .fixture__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-height: 860px) and (min-width: 480px) {
  .board {
    width: calc(min(100%, 460px) * var(--board-scale));
  }
}
