/* Eight compact location cards; artwork paths live in game-data.json. */
.step-0 .stage { padding-top: 24px; padding-bottom: 28px; }
.step-0 .stage-heading { margin-bottom: 20px; flex-wrap: nowrap; align-items: center; }
.step-0 .stage-heading h1 { font-size: clamp(30px, 3vw, 40px); margin: 7px 0 8px; }
.step-0 .stage-heading > div:first-child { min-width: 0; }
.step-0 .stage-heading p { word-break: keep-all; line-height: 1.7; }
.step-0 .context-tools { display: flex; gap: 10px; width: auto; margin-left: auto; }
.hunt-place-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.hunt-place-card {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-end;
  width: 100%;
  padding: 16px;
  aspect-ratio: 4 / 3;
  min-width: 0;
  overflow: hidden;
  border-radius: 16px;
  border: 2px solid transparent;
  background: #27232f;
  color: #fff9f2;
  text-align: left;
  box-shadow: 0 8px 24px #0002;
  transition: box-shadow .18s;
}
.hunt-place-card:focus, .hunt-place-card:focus-visible { outline: none; }
.hunt-place-card:not(:disabled):focus .hunt-place-art, .hunt-place-card:not(:disabled):active .hunt-place-art { transform: scale(1.06); }
.hunt-place-art {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .3s ease;
}
.hunt-place-fallback { background: url('./assets/hunting-places.png') var(--place-x) var(--place-y) / 300% 200%; }
.hunt-place-card::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, #11101c30 0%, transparent 30%, #14121d9c 57%, #14121df5 88%); pointer-events: none; }
.hunt-place-copy { display: block; width: 100%; padding-top: 12px; text-shadow: 0 2px 12px #0007; }
.hunt-place-copy strong { display: block; font-size: clamp(20px, 1.8vw, 25px); font-weight: 900; letter-spacing: -.8px; line-height: 1.25; }
.hunt-place-copy small { display: block; margin-top: 6px; font-size: 12px; font-weight: 500; line-height: 1.5; color: #e8e2e9; word-break: keep-all; }
.my-profile-modal { max-width: 460px; padding: 38px 32px 30px; }
.my-profile-emblem { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 18px; background: #ff8bae16; color: var(--accent); margin-bottom: 22px; }
.my-profile-emblem .icon { width: 30px; height: 30px; }
.my-profile-modal h2 { font-size: 30px; margin: 10px 0 20px; }
.my-profile-facts { margin: 0 0 28px; }
.my-profile-facts > div { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.my-profile-facts dt { color: var(--muted); font-size: 13px; flex-shrink: 0; }
.my-profile-facts dd { margin: 0; font-size: 18px; font-weight: 800; text-align: right; overflow-wrap: anywhere; }
@media (hover: hover) {
  .hunt-place-card:not(:disabled):hover .hunt-place-art { transform: scale(1.06); }
}
@media (max-width: 1000px) {
  .step-0 .stage-heading { gap: 18px; }
  .hunt-place-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .hunt-place-card { padding: 14px; }
  .hunt-place-copy small { font-size: 11px; }
  .hunt-place-copy strong { font-size: 22px; }
}
@media (max-width: 680px) {
  .hunt-place-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hunt-place-copy small { min-height: 3em; }
}
@media (max-width: 540px) {
  .hunt-place-card { aspect-ratio: 4 / 5; }
  .step-0 .stage-heading { margin-bottom: 20px; }
  .step-0 .stage-heading h1 { font-size: clamp(27px, 7.6vw, 36px); }
  .step-0 .stage-heading { flex-direction: row; gap: 15px; }
  .hunt-place-grid { gap: 12px; }
  .hunt-place-card { padding: 12px; border-radius: 14px; }
  .hunt-place-copy { padding-top: 8px; }
  .hunt-place-copy strong { font-size: 18px; letter-spacing: -.5px; }
  .hunt-place-copy small { margin-top: 5px; }
  .my-profile-modal { padding: 30px 24px 24px; }
}
@media (min-width: 1001px) and (max-height: 800px) {
  .step-0 .stage { padding-top: 18px; }
  .step-0 .stage-heading { margin-bottom: 16px; }
  .hunt-place-card { aspect-ratio: auto; height: clamp(176px, calc((100dvh - 280px) / 2), 238px); }
}
@media (max-width: 360px) {
  .hunt-place-grid { gap: 9px; }
  .hunt-place-card { padding: 9px; }
  .hunt-place-copy strong { font-size: 17px; }
}
