:root {
  --bg-top: #fff7db;
  --bg-bottom: #d8f3ff;
  --ink: #24324a;
  --muted: #5c6b82;
  --panel: rgba(255, 255, 255, 0.88);
  --line: rgba(36, 50, 74, 0.12);
  --brand: #ff7a59;
  --brand-deep: #ea5b3a;
  --teal: #2a9d8f;
  --sky-blue: #bce8ed;
  --sun-gold: #ffd978;
  --leaf-green: #79b98b;
  --shadow: 0 18px 0 rgba(69, 91, 79, 0.035), 0 26px 55px rgba(36, 50, 74, 0.13);
  --shadow-soft: 0 12px 30px rgba(36, 50, 74, 0.1);
}

html {
  font-size: 16px;
  min-height: 100%;
  scroll-behavior: smooth;
}

body {
  position: relative;
  isolation: isolate;
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  color: var(--ink);
  font-family: "Trebuchet MS", "Gill Sans", sans-serif;
  background:
    radial-gradient(circle at 10% 4%, rgba(255,255,255,.95) 0 5%, transparent 22%),
    radial-gradient(circle at 88% 11%, rgba(255,217,120,.52), transparent 19%),
    radial-gradient(ellipse at 48% 32%, rgba(255,255,255,.42), transparent 38%),
    linear-gradient(172deg, #fff7d8 0%, #f9efd1 25%, #dff2ea 60%, #c9eaf0 100%);
  background-attachment: fixed;
}

body::before,
body::after {
  position: fixed;
  z-index: -2;
  content: "";
  pointer-events: none;
}

body::before {
  inset: 0;
  opacity: .32;
  background:
    radial-gradient(circle, rgba(255,255,255,.95) 0 2px, transparent 2.8px) 8px 18px / 96px 96px,
    radial-gradient(circle, rgba(52,123,119,.28) 0 1.5px, transparent 2.4px) 42px 55px / 118px 118px;
  mask-image: linear-gradient(to bottom, black, transparent 74%);
}

body::after {
  right: -8vw;
  bottom: -125px;
  width: 48vw;
  height: 330px;
  border-radius: 50% 0 0 0;
  background:
    radial-gradient(ellipse at 72% 42%, rgba(255,255,255,.5) 0 12%, transparent 13%),
    linear-gradient(145deg, rgba(91,160,111,.3), rgba(39,128,132,.18));
  filter: blur(1px);
  box-shadow: -78vw 90px 0 rgba(94,168,129,.12);
}

a {
  color: inherit;
  text-decoration: none;
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
  box-shadow: 0 0 0 0.2rem rgba(42, 157, 143, 0.18);
}

.site-header {
  position: relative;
  z-index: 100;
  padding: 1rem 0 0;
}

.site-nav-shell {
  position: relative;
  max-width: 1420px;
  background:
    linear-gradient(110deg, rgba(255,250,240,.94), rgba(255,255,255,.96) 48%, rgba(234,250,245,.94));
  border: 2px solid rgba(49, 91, 87, 0.16);
  border-radius: 28px;
  box-shadow: 0 14px 0 rgba(42, 157, 143, 0.09), 0 24px 50px rgba(36, 50, 74, 0.13);
  padding: 0.8rem 1rem;
  backdrop-filter: blur(18px) saturate(1.15);
}

.site-nav-shell::before {
  position: absolute;
  inset: 5px;
  content: "";
  border: 1px dashed rgba(234, 91, 58, 0.22);
  border-radius: 21px;
  pointer-events: none;
}

.site-brand {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  color: var(--ink);
}

.brand-badge {
  display: inline-grid;
  place-items: center;
  width: 3rem;
  height: 3rem;
  border-radius: 1rem;
  background: linear-gradient(135deg, var(--brand), #ffca6c);
  color: white;
  font-family: "Palatino Linotype", "Book Antiqua", serif;
  font-size: 1.5rem;
  font-weight: 700;
  transform: rotate(-5deg);
  box-shadow: inset 0 -5px 0 rgba(154, 55, 31, 0.2), 0 7px 14px rgba(234, 91, 58, 0.2);
}

.site-brand strong,
.hero-copy h1,
.section-header h2,
.creature-card h3,
.hero-panel h2,
.world-card h2 {
  font-family: "Palatino Linotype", "Book Antiqua", serif;
}

.site-brand small {
  display: block;
  color: var(--muted);
}

.site-links {
  gap: 0.35rem;
  align-items: center;
}

.site-links .nav-link {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.68rem 0.78rem;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: var(--ink);
  font-weight: 700;
  white-space: nowrap;
  transition: transform 150ms ease, background 150ms ease, color 150ms ease;
}

.site-links .nav-link:hover {
  color: var(--ink);
  transform: translateY(-2px);
}

.site-links .nav-link span { color: var(--nav-accent, var(--brand)); font-size: 0.82rem; }
.site-links .nav-link:hover,
.site-links .nav-link.active { background: color-mix(in srgb, var(--nav-accent, var(--brand)) 15%, white); box-shadow: inset 0 -3px 0 color-mix(in srgb, var(--nav-accent, var(--brand)) 45%, white); }
.nav-link-world { --nav-accent: #ff7a59; }
.nav-link-pet { --nav-accent: #e85d91; }
.nav-link-quests { --nav-accent: #e8a317; }
.nav-link-shop { --nav-accent: #2a9d8f; }
.nav-link-arcade { --nav-accent: #3c83c6; }
.nav-link-finance { --nav-accent: #6c8c4c; }
.nav-link-town { --nav-accent: #9b6b9d; }

.site-nav-content {
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.petopia-menu {
  min-width: 255px;
  padding: 0.55rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 253, 247, 0.98);
  box-shadow: 0 18px 40px rgba(36, 50, 74, 0.18);
}

.petopia-menu .dropdown-item {
  padding: 0.65rem 0.75rem;
  border-radius: 12px;
}

.petopia-menu .dropdown-item:hover { background: #eef8f4; color: var(--ink); }
.petopia-menu strong,
.petopia-menu small { display: block; }
.petopia-menu small { margin-top: 0.1rem; color: var(--muted); font-size: 0.74rem; }

.nav-account,
.nav-auth-links {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.currency-strip,
.currency-board,
.minigame-actions {
  display: flex;
  gap: 0.75rem;
}

.currency-strip {
  align-items: center;
}

.nav-status {
  text-align: right;
  color: var(--muted);
}

.nav-status strong {
  display: block;
  color: var(--ink);
}

.nav-status a { display: block; color: var(--brand-deep); font-size: 0.78rem; font-weight: 800; }
.nav-status a:hover { text-decoration: underline; }
.trainer-menu{flex:0 0 auto}.trainer-menu-button{display:grid;min-width:126px;padding:.52rem .8rem;border:1px solid rgba(36,50,74,.14);border-radius:15px;background:linear-gradient(135deg,#fff,#eef7f3);color:var(--ink);line-height:1.1;text-align:left;box-shadow:0 5px 0 rgba(36,50,74,.07)}.trainer-menu-button span{color:var(--muted);font-size:.61rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.trainer-menu-button strong{max-width:130px;overflow:hidden;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.trainer-menu-button::after{position:absolute;top:50%;right:.65rem}.trainer-dropdown form{margin:0}.trainer-logout{width:100%;border:0;background:transparent;text-align:left}.trainer-logout:hover{background:#fff0ea;color:var(--ink)}

.page-shell {
  position: relative;
  z-index: 1;
  padding-top: 2.4rem;
  padding-bottom: 4rem;
}

.page-shell main {
  position: relative;
}

.page-shell main > section,
.page-shell main > .status-banner {
  animation: petopia-rise .48s cubic-bezier(.2,.75,.3,1) both;
}

.page-shell main > section:nth-child(2) { animation-delay: .05s; }
.page-shell main > section:nth-child(3) { animation-delay: .1s; }
.page-shell main > section:nth-child(4) { animation-delay: .15s; }

.page-shell main::before {
  position: absolute;
  top: 10rem;
  left: -8rem;
  z-index: -1;
  width: 180px;
  height: 180px;
  content: "";
  border: 22px solid rgba(255,255,255,.24);
  border-radius: 48% 52% 55% 45%;
  transform: rotate(18deg);
}

.hero-shell {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 1.5rem;
  align-items: stretch;
}

.hero-copy,
.hero-panel,
.world-card,
.creature-card {
  background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,253,246,.8));
  border: 1px solid rgba(255,255,255,.88);
  outline: 1px solid var(--line);
  border-radius: 28px;
  box-shadow: var(--shadow);
  backdrop-filter: blur(12px);
}

.hero-copy {
  padding: 2.5rem;
  position: relative;
  overflow: hidden;
}

.hero-copy::after {
  content: "";
  position: absolute;
  inset: auto -4rem -5rem auto;
  width: 12rem;
  height: 12rem;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 122, 89, 0.25), rgba(42, 157, 143, 0.1));
}

.eyebrow {
  display: inline-block;
  margin-bottom: 0.8rem;
  color: var(--brand-deep);
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.hero-copy h1 {
  max-width: 12ch;
  margin: 0;
  font-size: clamp(2.8rem, 5vw, 4.8rem);
  line-height: 0.95;
}

.hero-copy h1 span {
  color: var(--brand-deep);
}

.hero-text {
  max-width: 38rem;
  margin: 1.25rem 0 0;
  color: var(--muted);
  font-size: 1.05rem;
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 1.75rem;
}

.btn-petopia-primary,
.btn-petopia-secondary {
  padding: 0.9rem 1.3rem;
  border: 0;
  border-radius: 999px;
  font-weight: 800;
  box-shadow: 0 7px 0 rgba(36,50,74,.11), 0 12px 22px rgba(36,50,74,.1);
  transition: transform 140ms ease, box-shadow 140ms ease, filter 140ms ease;
}

.btn-petopia-primary {
  background: linear-gradient(135deg, var(--brand), var(--brand-deep));
  color: white;
  text-shadow: 0 1px 1px rgba(87,34,21,.18);
}

.btn-petopia-secondary {
  border: 1px solid rgba(36,50,74,.14);
  background: rgba(255, 255, 255, 0.7);
  color: var(--ink);
}

.btn-petopia-primary:hover,
.btn-petopia-secondary:hover {
  transform: translateY(-2px);
  box-shadow: 0 9px 0 rgba(36,50,74,.09), 0 16px 26px rgba(36,50,74,.13);
  filter: saturate(1.08);
}

.btn-petopia-primary:active,
.btn-petopia-secondary:active {
  transform: translateY(2px);
  box-shadow: 0 3px 0 rgba(36,50,74,.1);
}

.hero-panel {
  padding: 2rem;
}

.highlight-list {
  margin: 1rem 0 0;
  padding-left: 1.1rem;
  color: var(--muted);
}

.highlight-list li + li {
  margin-top: 0.75rem;
}

.currency-banner {
  margin-top: 1.5rem;
  padding: 1.1rem 1.2rem;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255, 209, 102, 0.3), rgba(255, 255, 255, 0.7));
}

.currency-label {
  display: block;
  color: var(--muted);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.currency-banner strong {
  display: block;
  margin-top: 0.3rem;
  font-size: 1.4rem;
}

.currency-banner p {
  margin: 0.5rem 0 0;
  color: var(--muted);
}

.world-grid,
.creature-grid {
  display: grid;
  gap: 1.25rem;
}

.world-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 1.5rem;
}

.currency-board {
  margin-top: 1.5rem;
  flex-wrap: wrap;
}

.home-currency-board {
  margin-top: 1.25rem;
}

.currency-chip,
.currency-pill,
.challenge-card {
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

.currency-chip {
  flex: 1 1 220px;
  padding: 1rem 1.1rem;
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.84);
}

.currency-chip p,
.currency-pill span,
.challenge-card p,
.reward-guide p {
  color: var(--muted);
}

.currency-chip strong {
  display: block;
  margin: 0.25rem 0;
  font-size: 1.5rem;
}

.currency-chip-standard {
  background: linear-gradient(135deg, rgba(255, 209, 102, 0.28), rgba(255, 255, 255, 0.92));
}

.currency-chip-premium {
  background: linear-gradient(135deg, rgba(205, 180, 219, 0.3), rgba(255, 255, 255, 0.92));
}

.currency-chip-game {
  background: linear-gradient(135deg, rgba(144, 224, 239, 0.32), rgba(255, 255, 255, 0.92));
}

.currency-pill {
  min-width: 108px;
  padding: 0.55rem 0.7rem;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.86);
  text-align: center;
}

.currency-pill strong {
  display: block;
}

.currency-pill-standard {
  background: linear-gradient(135deg, rgba(255, 209, 102, 0.3), rgba(255, 255, 255, 0.9));
}

.currency-pill-premium {
  background: linear-gradient(135deg, rgba(205, 180, 219, 0.32), rgba(255, 255, 255, 0.9));
}

.adoption-prompt,
.account-card,
.adopted-summary,
.status-banner {
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

.adoption-prompt {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
  padding: 1.5rem;
  border-radius: 28px;
  background: rgba(255, 253, 246, 0.82);
}

.world-card {
  padding: 1.4rem;
}

.world-card p,
.section-header p,
.creature-description,
.creature-meta dt,
.stat-row span {
  color: var(--muted);
}

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  margin: 3rem 0 1.25rem;
}

.section-header h2 {
  margin: 0.15rem 0 0;
  font-size: 2.4rem;
}

.section-header p {
  max-width: 34rem;
  margin: 0;
}

.creature-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.creature-card {
  padding: 1.4rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.82)),
    linear-gradient(135deg, var(--accent), rgba(255, 255, 255, 0) 60%);
}

.creature-portrait {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 220px;
  margin-bottom: 1rem;
  border-radius: 22px;
  background: transparent;
  overflow: hidden;
}

.creature-portrait .customizable-pet-art {
  width: min(100%, 320px);
  max-width: none;
  transform: scale(1.08);
}

.creature-portrait .equipped-pet-hat {
  position: absolute;
  top: -0.25rem;
  left: 50%;
  z-index: 2;
  width: 138px;
  max-width: none;
  height: 108px;
  object-fit: contain;
  transform: translateX(-50%);
  filter: drop-shadow(0 7px 5px rgba(36, 50, 74, 0.24));
  pointer-events: none;
}

.creature-portrait img {
  width: 100%;
  max-width: 280px;
  height: auto;
  display: block;
  filter: drop-shadow(0 16px 24px rgba(36, 50, 74, 0.16));
}

.creature-card-top,
.creature-meta,
.stat-row,
.footer-content {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.creature-species {
  display: inline-block;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.creature-card h3 {
  margin: 0.25rem 0 0;
  font-size: 1.7rem;
}

.element-pill {
  align-self: start;
  padding: 0.45rem 0.8rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.8);
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 800;
}

.creature-description {
  margin: 1rem 0 1.1rem;
}

.creature-meta {
  margin: 0 0 1.1rem;
}

.creature-meta div,
.stat-row div {
  flex: 1;
}

.creature-meta dt {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.creature-meta dd {
  margin: 0.3rem 0 0;
  font-weight: 700;
}

.stat-row {
  padding-top: 1rem;
  border-top: 1px dashed var(--line);
}

.stat-row strong {
  display: block;
  margin-top: 0.2rem;
}

.footer {
  padding: 0 0 2rem;
}

.footer-content {
  align-items: center;
  padding: 1rem 0;
  color: var(--muted);
}

.footer-content p {
  margin: 0;
}

.account-shell {
  display: grid;
  place-items: center;
  min-height: 65vh;
}

.account-card {
  width: min(100%, 640px);
  padding: 2rem;
  border: 1px solid rgba(255,255,255,.9);
  outline: 1px solid var(--line);
  border-radius: 28px;
  background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,253,247,.84));
  backdrop-filter: blur(14px);
}

.account-intro {
  color: var(--muted);
}

.account-form {
  display: grid;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.account-form label {
  font-weight: 700;
}

.account-form .form-control {
  border-radius: 14px;
  border: 1px solid var(--line);
  padding: 0.8rem 1rem;
  background: rgba(255,255,255,.82);
  box-shadow: inset 0 2px 4px rgba(36,50,74,.035);
}

.account-switch {
  margin-top: 1rem;
  color: var(--muted);
}

.account-switch a {
  color: var(--brand-deep);
  font-weight: 700;
}

.adoption-hero {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  margin-bottom: 1.5rem;
  overflow: hidden;
  padding: 1.6rem 1.75rem;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 28px;
  background:
    radial-gradient(circle at 88% 10%, rgba(255,209,102,.28), transparent 27%),
    linear-gradient(120deg, rgba(255,255,255,.78), rgba(234,248,239,.72));
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(10px);
}

.adoption-hero::before {
  position: absolute;
  top: -50px;
  right: 14%;
  width: 120px;
  height: 120px;
  content: "";
  border: 18px solid rgba(255,255,255,.34);
  transform: rotate(20deg);
}

.adoption-hero > * {
  position: relative;
  z-index: 1;
}

.adopted-summary {
  min-width: 260px;
  padding: 1rem 1.1rem;
  border-radius: 22px;
  background: linear-gradient(135deg, var(--accent), rgba(255, 255, 255, 0.86) 65%);
}

.adopted-summary p {
  margin: 0.4rem 0 0;
  color: var(--ink);
}

.adopted-summary .btn {
  margin-top: 0.9rem;
}

.adoption-host-card {
  display: grid;
  grid-template-columns: minmax(280px, .75fr) minmax(0, 1.25fr);
  gap: 1.25rem;
  margin-bottom: 1.5rem;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.86);
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(242,250,232,.86));
  box-shadow: var(--shadow);
}

.adoption-host-scene {
  position: relative;
  display: grid;
  min-height: 300px;
  align-items: end;
  justify-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 30%, rgba(255,238,165,.85), transparent 32%),
    linear-gradient(165deg, #c8ebd0, #f2dda5);
}

.host-sunburst {
  position: absolute;
  top: 26px;
  width: 155px;
  height: 155px;
  border: 4px solid rgba(255,255,255,.55);
  border-radius: 50%;
  box-shadow: 0 0 0 18px rgba(255,255,255,.12), 0 0 0 38px rgba(255,255,255,.08);
}

.adoption-host-scene img {
  position: relative;
  z-index: 1;
  width: min(84%, 260px);
  margin-bottom: 56px;
  filter: drop-shadow(0 16px 12px rgba(57,67,45,.2));
}

.adoption-host-desk {
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  padding: .85rem 1rem;
  border-top: 8px solid #7b5a3a;
  background: linear-gradient(#a9784c, #865d3e);
  color: white;
}

.adoption-host-desk span { font-size: .68rem; font-weight: 900; letter-spacing: .11em; }
.adoption-host-copy { align-self: center; padding: 1.5rem 1.5rem 1.5rem .25rem; }
.adoption-host-copy h2 { margin: 0; font-family: "Palatino Linotype", "Book Antiqua", serif; font-size: 2rem; }
.host-species { display: block; margin-top: .2rem; color: var(--muted); font-size: .75rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.adoption-host-copy blockquote { position: relative; margin: 1rem 0; padding: 1rem 1.1rem; border-left: 5px solid #e6a74b; border-radius: 7px 18px 18px 7px; background: #fff8dc; color: #654e31; font-family: "Palatino Linotype", "Book Antiqua", serif; font-size: 1.05rem; font-weight: 700; }
.adoption-host-copy > p { color: var(--muted); }
.host-tip { display: grid; grid-template-columns: auto 1fr; gap: .65rem; padding: .7rem; border-radius: 14px; background: rgba(42,157,143,.09); font-size: .78rem; }
.host-tip strong { color: #27786c; }

.status-banner {
  margin-bottom: 1.25rem;
  padding: 0.95rem 1.05rem 0.95rem 1.3rem;
  border-left: 5px solid var(--teal);
  border-radius: 8px 18px 18px 8px;
  background: linear-gradient(90deg, rgba(218,244,235,.96), rgba(255,255,255,.88));
  color: #315d52;
  font-weight: 800;
  backdrop-filter: blur(10px);
}

.form-control,
.form-select {
  border-color: rgba(36,50,74,.14);
  border-radius: 14px;
  background-color: rgba(255,255,255,.88);
}

.form-control:hover,
.form-select:hover {
  border-color: rgba(42,157,143,.35);
}

.creature-card,
.world-card,
.stock-card,
.player-listing-card,
.cup-card {
  transition: transform 180ms ease, box-shadow 180ms ease;
}

.creature-card:hover,
.world-card:hover,
.stock-card:hover,
.player-listing-card:hover,
.cup-card:not(.is-locked):hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 0 rgba(69,91,79,.035), 0 34px 60px rgba(36,50,74,.16);
}

@keyframes petopia-rise {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

.adopt-form {
  margin-top: 1rem;
}

.adopt-form .btn {
  width: 100%;
}

.pet-nickname-input {
  margin-bottom: 0.75rem;
}

.adoption-ceremony {
  position: relative;
  margin-top: 1.5rem;
  overflow: hidden;
}

.ceremony-preview {
  --accent: #ff7a59;
  position: relative;
  margin-top: 1rem;
  padding: 1.3rem;
  border-radius: 24px;
  background:
    radial-gradient(circle at top, rgba(255, 255, 255, 0.85), transparent 45%),
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 28%, white), rgba(255, 255, 255, 0.9) 70%);
  border: 1px solid var(--line);
}

.ceremony-preview-copy {
  position: relative;
  z-index: 1;
}

.ceremony-preview-portrait {
  display: grid;
  place-items: center;
  min-height: 180px;
  margin: 0.8rem 0 0.5rem;
}

.ceremony-preview-portrait img {
  width: 170px;
  max-width: 100%;
  height: auto;
  filter: drop-shadow(0 16px 24px rgba(36, 50, 74, 0.18));
}

.ceremony-preview strong {
  display: block;
  margin-top: 0.25rem;
  font-size: 1.5rem;
}

.ceremony-preview p {
  margin: 0.5rem 0 0;
  color: var(--muted);
}

.ceremony-form {
  margin-top: 1rem;
}

.ceremony-label {
  display: block;
  margin-bottom: 0.55rem;
  font-weight: 700;
}

.color-choice-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.color-choice-button {
  display: grid;
  gap: 0.45rem;
  justify-items: center;
  padding: 0.9rem 0.7rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  color: var(--ink);
  font-weight: 700;
}

.color-choice-button.is-selected {
  border-color: color-mix(in srgb, var(--accent) 50%, white);
  box-shadow: 0 16px 28px rgba(36, 50, 74, 0.12);
  transform: translateY(-2px);
}

.color-choice-swatch {
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: inset 0 0 0 4px rgba(255, 255, 255, 0.6);
}

.color-choice-button small,
.color-preview-chip small { color: var(--muted); font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.selected-element-preview { display: inline-flex; margin-top: .6rem; padding: .35rem .7rem; border-radius: 999px; background: color-mix(in srgb, var(--accent) 20%, white); font-size: .75rem; font-weight: 900; }
.rival-species { margin-top: .25rem; color: var(--muted); font-size: .7rem; font-weight: 700; }

.ceremony-adopt-button {
  width: 100%;
}

.ceremony-adopt-button:disabled {
  opacity: 0.65;
}

.ceremony-glitter {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.glitter-piece {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 3px;
  opacity: 0;
  animation: glitter-pop 1.1s ease-out forwards;
}

.adoption-card.is-selected {
  border-color: color-mix(in srgb, var(--accent) 55%, #ffffff);
  box-shadow: 0 24px 40px rgba(255, 122, 89, 0.2);
  transform: translateY(-4px);
}

.adoption-select-button {
  width: 100%;
  margin-top: 1rem;
}

.color-preview-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  margin-bottom: 1rem;
}

.color-preview-chip {
  display: grid;
  justify-items: center;
  gap: 0.3rem;
  padding: 0.55rem 0.35rem;
  border-radius: 16px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 14%, white), rgba(255, 255, 255, 0.88));
  border: 1px solid var(--line);
  text-align: center;
}

.color-preview-chip img {
  width: 52px;
  height: 52px;
  object-fit: contain;
}

.color-preview-chip span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
}

.rules-card {
  width: min(100%, 760px);
}

.rules-list {
  margin: 1rem 0 0;
  color: var(--muted);
}

.rules-list li + li {
  margin-top: 0.75rem;
}

.nav-button {
  padding: 0.7rem 1rem;
}

.minigame-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 1.25rem;
}

.minigame-pet-card,
.minigame-card {
  height: 100%;
}

.challenge-card {
  margin-top: 1rem;
  padding: 1rem 1.1rem;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(144, 224, 239, 0.18), rgba(255, 255, 255, 0.92));
}

.challenge-card strong {
  display: block;
  margin-top: 0.2rem;
  font-size: 1.4rem;
}

.minigame-actions {
  flex-wrap: wrap;
  margin-top: 1rem;
}

.minigame-actions .btn {
  flex: 1 1 180px;
}

.reward-guide {
  margin-top: 1rem;
}

.pet-profile-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 1.25rem;
}

.pet-profile-card h1 {
  margin: 0.25rem 0 0;
  font-size: 2rem;
  font-family: "Palatino Linotype", "Book Antiqua", serif;
}

.pet-profile-side {
  width: 100%;
}

.arcade-banner {
  margin-top: 1.5rem;
  background:
    radial-gradient(circle at top, rgba(255, 255, 255, 0.85), transparent 45%),
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 22%, white), rgba(255, 255, 255, 0.92) 70%);
}

.arcade-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 1.5rem;
}

.arcade-card h2 {
  margin-top: 0.2rem;
}

.arcade-button {
  display: inline-block;
  margin-top: 1rem;
}

.shop-card h2 {
  margin-top: 0.3rem;
}

.shop-item-emoji {
  font-size: 2rem;
}

.arcade-leaderboard {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--line);
}

.leaderboard-list {
  margin: 0.8rem 0 0;
  padding-left: 1.2rem;
}

.leaderboard-list li {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  color: var(--muted);
}

.leaderboard-list li + li {
  margin-top: 0.6rem;
}

.leaderboard-list strong {
  color: var(--ink);
}

.likes-list {
  margin: 1rem 0 0;
  color: var(--muted);
}

.likes-list li + li {
  margin-top: 0.75rem;
}

.hat-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
  margin-top: 1rem;
}

.hat-card {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: #fffdf8;
  text-align: left;
  transition: border-color 160ms ease, transform 160ms ease;
}

.hat-card.is-equipped { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 10%, white); box-shadow: inset 4px 0 0 var(--accent); }
.hat-card:not(.is-equipped):hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--accent) 55%, white); }
.hat-card strong { display: block; }

.hat-card-visual {
  display: grid;
  width: 68px;
  height: 68px;
  place-items: center;
  border-radius: 15px;
  background: color-mix(in srgb, var(--accent) 14%, white);
}

.hat-token-large,
.pet-hat-badge {
  display: inline-grid;
  place-items: center;
  font-weight: 900;
  letter-spacing: 0.08em;
  border: 1px solid rgba(36, 50, 74, 0.12);
  box-shadow: var(--shadow);
}

.hat-token-large {
  width: 5rem;
  height: 5rem;
  margin-bottom: 1rem;
  border-radius: 22px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 68%, white), rgba(255, 255, 255, 0.94));
  color: var(--ink);
  font-size: 1.1rem;
}

.hat-card-image,
.hat-shop-image {
  display: block;
  width: 84px;
  height: 84px;
  object-fit: contain;
}

.hat-card-image { width: 58px; height: 58px; }
.hat-card-copy { min-width: 0; }
.hat-card-copy span { display: block; margin-top: 0.2rem; color: var(--muted); font-size: 0.74rem; }
.hat-equip-button { grid-column: 1 / -1; padding: 0.55rem; border: 0; border-radius: 12px; background: var(--ink); color: white; font-weight: 800; }
.hat-equip-button:disabled { background: color-mix(in srgb, var(--accent) 65%, var(--ink)); cursor: default; }
.wardrobe-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.wardrobe-heading h3 { margin: 0.15rem 0 0; }
.wardrobe-heading a { color: var(--brand-deep); font-size: 0.8rem; font-weight: 800; }
.wardrobe-remove { margin-top: 0.85rem; }

.hat-shop-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
}

.hat-shop-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--shadow);
}

.hat-shop-card.is-owned { border-color: color-mix(in srgb, var(--accent) 45%, white); }
.hat-shop-card.is-equipped { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent), var(--shadow); }

.hat-shop-image-frame {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 190px;
  background:
    radial-gradient(circle at top, rgba(255, 255, 255, 0.9), transparent 55%),
    linear-gradient(135deg, color-mix(in srgb, var(--accent) 25%, white), rgba(255, 255, 255, 0.94));
}

.hat-shop-image {
  width: 145px;
  height: 145px;
  filter: drop-shadow(0 14px 24px rgba(36, 50, 74, 0.16));
}

.hat-state-badge { position: absolute; top: 0.8rem; right: 0.8rem; padding: 0.32rem 0.6rem; border-radius: 999px; background: rgba(255,255,255,.9); color: var(--ink); font-size: .68rem; font-weight: 900; box-shadow: 0 5px 12px rgba(36,50,74,.12); }
.hat-shop-copy { flex: 1; padding: 1.1rem 1.1rem 0.75rem; }
.hat-shop-copy h2 { margin: 0.25rem 0 0.45rem; font-family: "Palatino Linotype", "Book Antiqua", serif; }
.hat-shop-copy p { margin: 0; color: var(--muted); }
.hat-price-row { display: grid; grid-template-columns: 1fr 1fr; margin: 0 1.1rem; border-block: 1px dashed var(--line); }
.hat-price-row span { padding: 0.7rem 0; }
.hat-price-row span + span { padding-left: 0.8rem; border-left: 1px dashed var(--line); }
.hat-price-row small, .hat-price-row strong { display: block; }
.hat-price-row small { color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.hat-price-row strong::after { content: " MS"; color: var(--muted); font-size: .7rem; }
.hat-shop-action { display: flex; align-items: center; gap: .6rem; padding: 1rem 1.1rem 1.1rem; }
.hat-shop-action > .btn, .hat-shop-action > button { flex: 1; }
.hat-shop-action form { flex: 0 0 auto; }

.pet-hat-badge {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 1;
  min-width: 4.25rem;
  min-height: 4.25rem;
  padding: 0.5rem;
  border-radius: 20px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 68%, white), rgba(255, 255, 255, 0.94));
  color: var(--ink);
}

.hunger-card {
  margin-top: 1rem;
}

.need-meter {
  position: relative;
  height: 16px;
  margin-top: 0.8rem;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(36, 50, 74, 0.08);
}

.need-meter span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ff7a59, #ffd166, #95d5b2);
}

.habitat-stage-card {
  width: 100%;
}

.pet-house {
  position: relative;
  margin-top: 1rem;
}

.pet-house-roof {
  width: min(88%, 720px);
  height: 90px;
  margin: 0 auto;
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent) 52%, #ffffff), #e76f51);
  border: 1px solid var(--line);
  border-bottom: none;
}

.pet-house-body {
  position: relative;
  min-height: 560px;
  padding: 1.5rem;
  border-radius: 28px;
  border: 1px solid var(--line);
  background:
    radial-gradient(circle at top, rgba(255, 255, 255, 0.88), transparent 28%),
    linear-gradient(180deg, rgba(255, 253, 246, 0.98), color-mix(in srgb, var(--accent) 14%, white));
  overflow: hidden;
}

.pet-house-body::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.35), transparent 25%, transparent 75%, rgba(255, 255, 255, 0.22)),
    repeating-linear-gradient(90deg, rgba(36, 50, 74, 0.03) 0 6px, transparent 6px 34px);
  pointer-events: none;
}

.pet-house-floor {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 120px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(164, 113, 72, 0.12)),
    repeating-linear-gradient(90deg, rgba(164, 113, 72, 0.22) 0 24px, rgba(255, 255, 255, 0.06) 24px 48px);
}

.pet-house-pet {
  position: absolute;
  left: 50%;
  bottom: 28px;
  z-index: 1;
  display: grid;
  justify-items: center;
  gap: 0.35rem;
  transform: translateX(-50%);
}

.pet-house-pet img {
  width: 150px;
  max-width: 42vw;
  height: auto;
  filter: drop-shadow(0 18px 26px rgba(36, 50, 74, 0.2));
}

.pet-house-pet strong {
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
}

.house-furniture,
.house-slot-marker {
  position: absolute;
  z-index: 2;
  width: 150px;
  padding: 0.8rem 0.75rem;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.9);
  box-shadow: var(--shadow);
  text-align: center;
}

.house-furniture {
  display: grid;
  justify-items: center;
  gap: 0.25rem;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 18%, white), rgba(255, 255, 255, 0.96));
}

.house-furniture span {
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1;
}

.house-furniture strong {
  font-size: 0.9rem;
}

.house-slot-marker {
  border-style: dashed;
  color: var(--muted);
  background: rgba(255, 255, 255, 0.62);
}

.house-slot-marker span {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.house-furniture-sky-shelf,
.house-slot-marker-sky-shelf {
  top: 26px;
  left: 50%;
  transform: translateX(-50%);
}

.house-furniture-left-wall,
.house-slot-marker-left-wall {
  top: 120px;
  left: 24px;
}

.house-furniture-center-floor,
.house-slot-marker-center-floor {
  left: 50%;
  bottom: 150px;
  transform: translateX(-50%);
}

.house-furniture-window-nook,
.house-slot-marker-window-nook {
  top: 170px;
  right: 24px;
}

.house-furniture-right-corner,
.house-slot-marker-right-corner {
  right: 32px;
  bottom: 148px;
}

.room-editor-card {
  margin-top: 1.25rem;
}

.house-editor-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
  margin-top: 1rem;
}

.house-editor {
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.82);
  overflow: hidden;
}

.house-editor-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.05rem;
  cursor: pointer;
  list-style: none;
}

.house-editor-summary::-webkit-details-marker {
  display: none;
}

.house-editor-status {
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
  background: rgba(36, 50, 74, 0.06);
  font-weight: 800;
}

.house-editor[open] .house-editor-status {
  background: rgba(255, 122, 89, 0.18);
}

.house-editor-form {
  display: grid;
  gap: 0.75rem;
  padding: 0 1.05rem 1rem;
}

.house-slot-select {
  margin-bottom: 0.1rem;
}

.habitat-stage {
  --accent: #ff7a59;
  margin-top: 1rem;
  padding: 1.2rem;
  border-radius: 28px;
  background:
    radial-gradient(circle at top, rgba(255, 255, 255, 0.88), transparent 35%),
    linear-gradient(180deg, color-mix(in srgb, var(--accent) 16%, white), rgba(255, 255, 255, 0.96) 70%);
  border: 1px solid var(--line);
}

.habitat-stage-pet {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.habitat-stage-pet img {
  width: 120px;
  height: auto;
  filter: drop-shadow(0 14px 22px rgba(36, 50, 74, 0.16));
}

.habitat-stage-pet strong {
  font-size: 1.4rem;
  font-family: "Palatino Linotype", "Book Antiqua", serif;
}

.habitat-furniture-scene {
  display: flex;
  flex-wrap: wrap;
  gap: 0.9rem;
  margin-top: 1.25rem;
  min-height: 120px;
}

.habitat-item-chip {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.8rem 0.95rem;
  border-radius: 18px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 20%, white), rgba(255, 255, 255, 0.95));
  border: 1px solid var(--line);
}

.habitat-item-chip span {
  font-size: 1.4rem;
}

.furniture-list {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}

.furniture-card {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: 1rem;
  border-radius: 20px;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, 0.82);
}

.star-sprint-shell {
  width: 100%;
}

.race-lane {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(144, 224, 239, 0.2), rgba(255, 255, 255, 0.85));
  border: 1px solid var(--line);
}

.race-track {
  position: relative;
  min-height: 150px;
  padding: 1rem 0 1rem 0;
  overflow: hidden;
}

.race-track::before,
.race-track::after {
  content: "";
  position: absolute;
  left: 0;
  right: 4rem;
  border-top: 2px dashed rgba(36, 50, 74, 0.2);
}

.race-track::before {
  top: 3rem;
}

.race-track::after {
  top: 6.9rem;
}

.race-runner {
  position: absolute;
  left: calc(0% - 2rem);
  width: 5rem;
  transition: left 0.08s linear;
}

.race-runner-player {
  top: 1.2rem;
}

.race-runner-rival {
  top: 5.1rem;
}

.runner-label {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--ink);
}

.runner-token {
  display: grid;
  place-items: center;
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 999px;
  background: white;
  border: 2px solid var(--line);
  box-shadow: var(--shadow);
  font-weight: 900;
}

.race-runner-player .runner-token {
  background: linear-gradient(135deg, rgba(255, 122, 89, 0.9), rgba(255, 202, 108, 0.9));
  color: white;
}

.race-runner-rival .runner-token {
  background: linear-gradient(135deg, rgba(144, 224, 239, 0.95), rgba(42, 157, 143, 0.75));
  color: white;
}

.race-finish {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  display: grid;
  place-items: center;
  width: 4rem;
  font-weight: 800;
  color: var(--ink);
  border-left: 3px solid rgba(36, 50, 74, 0.35);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.7)),
    repeating-linear-gradient(45deg, #ffffff 0 10px, #24324a 10px 20px);
}

.typing-stats {
  display: flex;
  gap: 0.75rem;
  margin-top: 1rem;
  flex-wrap: wrap;
}

.typing-prompt {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid var(--line);
}

.prompt-word {
  padding: 0.35rem 0.55rem;
  border-radius: 10px;
  background: rgba(36, 50, 74, 0.06);
  color: var(--ink);
}

.prompt-word.is-active {
  background: rgba(255, 122, 89, 0.18);
  outline: 2px solid rgba(234, 91, 58, 0.35);
}

.prompt-word.is-correct {
  background: rgba(149, 213, 178, 0.45);
}

.prompt-word.is-wrong {
  background: rgba(239, 71, 111, 0.22);
}

.typing-controls {
  margin-top: 1rem;
}

.typing-input {
  min-height: 56px;
  font-size: 1.05rem;
}

.race-submit-form {
  display: none;
}

.bounce-arena {
  position: relative;
  width: 100%;
  max-width: 520px;
  height: 300px;
  margin-top: 1rem;
  border-radius: 24px;
  border: 1px solid var(--line);
  background:
    radial-gradient(circle at top, rgba(255, 255, 255, 0.65), transparent 40%),
    linear-gradient(180deg, rgba(144, 224, 239, 0.35), rgba(255, 255, 255, 0.92));
  overflow: hidden;
}

.bounce-arena::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, transparent 0 48%, rgba(255, 255, 255, 0.35) 50%, transparent 52%),
    repeating-linear-gradient(180deg, transparent 0 34px, rgba(255, 255, 255, 0.16) 34px 36px);
  pointer-events: none;
}

.bounce-ball {
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, #ff7a59, #ffd166);
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.35);
}

.bounce-paddle {
  position: absolute;
  bottom: 10px;
  left: 0;
  width: 110px;
  height: 16px;
  border-radius: 999px;
  background: linear-gradient(135deg, #2a9d8f, #90e0ef);
  box-shadow: var(--shadow);
}

.care-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, 0.75fr);
  gap: 1.25rem;
  padding: 2rem;
  border: 1px solid var(--line);
  border-radius: 30px;
  background:
    radial-gradient(circle at top right, color-mix(in srgb, var(--accent) 32%, transparent), transparent 42%),
    rgba(255, 255, 255, 0.88);
  box-shadow: var(--shadow);
}

.care-hero-copy h1 {
  max-width: 15ch;
  margin: 0;
  font-family: "Palatino Linotype", "Book Antiqua", serif;
  font-size: clamp(2.3rem, 5vw, 4rem);
  line-height: 1;
}

.care-hero-copy > p {
  max-width: 38rem;
  margin: 1rem 0 0;
  color: var(--muted);
}

.care-progress-copy {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.5rem;
}

.care-progress-copy span {
  color: var(--muted);
}

.care-progress-track {
  height: 14px;
  margin-top: 0.7rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(36, 50, 74, 0.08);
}

.care-progress-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--brand), #ffd166, var(--teal));
  transition: width 0.35s ease;
}

.care-pet-stage {
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 290px;
  padding: 1rem;
  border-radius: 26px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.72), color-mix(in srgb, var(--accent) 16%, white));
}

.care-pet-stage img {
  width: min(240px, 100%);
  height: auto;
}

.care-pet-stage strong {
  margin-top: 0.5rem;
  font-size: 1.35rem;
}

.care-pet-stage span {
  color: var(--muted);
}

.care-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.25rem;
}

.care-stat-card {
  padding: 1.1rem;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.84);
  box-shadow: var(--shadow);
}

.care-stat-card > span,
.care-stat-card p {
  color: var(--muted);
}

.care-stat-card > strong {
  display: block;
  margin-top: 0.2rem;
  font-size: 1.25rem;
}

.care-stat-card p {
  margin: 0.55rem 0 0;
}

.need-meter-happy span {
  background: linear-gradient(90deg, #ff7a59, #ef476f);
}

.need-meter-energy span {
  background: linear-gradient(90deg, #90e0ef, #2a9d8f);
}

.care-stat-bond {
  background: linear-gradient(135deg, rgba(205, 180, 219, 0.3), rgba(255, 255, 255, 0.9));
}

.care-action-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 1.25rem;
}

.care-action-card {
  padding: 1.4rem;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--shadow);
}

.care-action-card.is-complete {
  background: linear-gradient(135deg, rgba(149, 213, 178, 0.28), rgba(255, 255, 255, 0.9));
}

.care-action-token {
  display: grid;
  place-items: center;
  width: 4.5rem;
  height: 4.5rem;
  margin-bottom: 1rem;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255, 122, 89, 0.18), rgba(255, 209, 102, 0.32));
  font-size: 0.85rem;
  font-weight: 900;
  letter-spacing: 0.06em;
}

.care-action-card h2 {
  margin: 0.3rem 0 0;
  font-family: "Palatino Linotype", "Book Antiqua", serif;
}

.care-action-card p {
  min-height: 3rem;
  color: var(--muted);
}

.care-action-effect {
  display: block;
  min-height: 2.8rem;
  margin-bottom: 1rem;
  color: var(--teal);
}

.care-action-card form,
.care-action-card .btn {
  width: 100%;
}

.quest-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
  gap: 1.25rem;
  padding: 2rem;
  border: 1px solid var(--line);
  border-radius: 30px;
  background:
    radial-gradient(circle at 12% 10%, rgba(255, 209, 102, 0.3), transparent 30%),
    rgba(255, 255, 255, 0.88);
  box-shadow: var(--shadow);
}

.quest-hero h1 {
  max-width: 16ch;
  margin: 0;
  font-family: "Palatino Linotype", "Book Antiqua", serif;
  font-size: clamp(2.4rem, 5vw, 4rem);
  line-height: 1;
}

.quest-hero > div > p {
  max-width: 42rem;
  margin: 1rem 0 0;
  color: var(--muted);
}

.quest-summary-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
  margin-top: 1.5rem;
}

.quest-summary-row div {
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.72);
}

.quest-summary-row span {
  display: block;
  color: var(--muted);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.quest-summary-row strong {
  display: block;
  margin-top: 0.2rem;
  font-size: 1.2rem;
}

.daily-star-card {
  display: grid;
  align-content: center;
  justify-items: center;
  padding: 1.4rem;
  border: 1px solid rgba(255, 209, 102, 0.48);
  border-radius: 26px;
  background: linear-gradient(145deg, rgba(255, 209, 102, 0.32), rgba(255, 255, 255, 0.92));
  text-align: center;
}

.daily-star-card.is-collected {
  background: linear-gradient(145deg, rgba(149, 213, 178, 0.35), rgba(255, 255, 255, 0.92));
}

.daily-star-token {
  display: grid;
  place-items: center;
  width: 5.2rem;
  height: 5.2rem;
  margin-bottom: 0.9rem;
  clip-path: polygon(50% 0%, 62% 34%, 98% 36%, 69% 57%, 79% 94%, 50% 72%, 21% 94%, 31% 57%, 2% 36%, 38% 34%);
  background: linear-gradient(135deg, #ffd166, #ff7a59);
  color: white;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.daily-star-card > strong {
  margin-top: 0.3rem;
  font-size: 1.3rem;
}

.daily-star-card p {
  color: var(--muted);
}

.daily-star-count {
  margin-bottom: 0.9rem;
  font-weight: 800;
}

.daily-star-card form,
.daily-star-card .btn {
  width: 100%;
}

.quest-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 1.25rem;
}

.quest-card {
  padding: 1.4rem;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.88);
  box-shadow: var(--shadow);
}

.quest-card.is-complete {
  border-color: rgba(42, 157, 143, 0.34);
  background: linear-gradient(135deg, rgba(149, 213, 178, 0.22), rgba(255, 255, 255, 0.92));
}

.quest-card.is-claimed {
  opacity: 0.78;
}

.quest-card-top,
.quest-progress-label,
.quest-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.8rem;
}

.quest-activity,
.quest-reward {
  padding: 0.4rem 0.65rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
}

.quest-activity {
  background: rgba(144, 224, 239, 0.25);
}

.quest-reward {
  background: rgba(255, 209, 102, 0.3);
}

.quest-card h2 {
  margin: 1rem 0 0;
  font-family: "Palatino Linotype", "Book Antiqua", serif;
}

.quest-card > p {
  min-height: 3rem;
  color: var(--muted);
}

.quest-progress-label {
  margin-top: 1.1rem;
  color: var(--muted);
}

.quest-progress-label strong {
  color: var(--ink);
}

.quest-progress-track {
  height: 12px;
  margin-top: 0.55rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(36, 50, 74, 0.08);
}

.quest-progress-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #90e0ef, #2a9d8f);
}

.quest-actions {
  margin-top: 1rem;
}

.quest-actions form,
.quest-actions .btn {
  width: 100%;
}

.finance-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: 1.25rem;
  padding: 2rem;
  border: 1px solid var(--line);
  border-radius: 30px;
  box-shadow: var(--shadow);
}

.bank-hero {
  grid-template-columns: minmax(310px, .78fr) minmax(480px, 1.22fr);
  background:
    radial-gradient(circle at 12% 10%, rgba(255, 209, 102, 0.34), transparent 32%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(149, 213, 178, 0.18));
}

.bank-landmark-scene {
  position: relative;
  min-height: 410px;
  overflow: hidden;
  border: 5px solid rgba(255,255,255,.9);
  border-radius: 28px;
  background: #dcead9;
  box-shadow: 0 18px 36px rgba(43,50,42,.2);
}

.bank-landmark-scene > img {
  width: 100%;
  height: 100%;
  min-height: 410px;
  object-fit: cover;
  object-position: center;
}

.bank-welcome-bubble {
  position: absolute;
  top: 1rem;
  right: 1rem;
  max-width: 235px;
  padding: .8rem 1rem;
  border: 2px solid #6f5a42;
  border-radius: 18px 18px 5px 18px;
  background: rgba(255,253,245,.95);
  box-shadow: 0 10px 24px rgba(50,43,35,.2);
}

.bank-welcome-bubble::after {
  position: absolute;
  right: 24px;
  bottom: -12px;
  width: 20px;
  height: 20px;
  border-right: 2px solid #6f5a42;
  border-bottom: 2px solid #6f5a42;
  background: #fffdf5;
  content: "";
  transform: rotate(45deg);
}

.bank-welcome-bubble span,.bank-welcome-bubble strong { display:block; }
.bank-welcome-bubble span { color:#708c55; font-size:.68rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.bank-welcome-bubble strong { color:#493a2d; font-family:"Palatino Linotype","Book Antiqua",serif; font-size:1.15rem; }
.bank-welcome-bubble p { margin:.25rem 0 0; color:#655c52; font-size:.78rem; line-height:1.35; }

.bank-vault-balance {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  min-width: 220px;
  padding: .75rem 1rem;
  border: 2px solid rgba(241,196,76,.9);
  border-radius: 18px;
  background: linear-gradient(145deg,rgba(38,69,61,.96),rgba(59,91,72,.96));
  color:white;
  box-shadow:0 10px 24px rgba(25,45,38,.3);
}
.bank-vault-balance span,.bank-vault-balance strong,.bank-vault-balance small { display:block; }
.bank-vault-balance span { color:#f9dd8b; font-size:.67rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.bank-vault-balance strong { margin:.1rem 0; font-size:1.8rem; line-height:1; }
.bank-vault-balance small { opacity:.82; }

.market-hero {
  background:
    radial-gradient(circle at 10% 10%, rgba(144, 224, 239, 0.32), transparent 34%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(205, 180, 219, 0.18));
}

.finance-hero h1 {
  max-width: 16ch;
  margin: 0;
  font-family: "Palatino Linotype", "Book Antiqua", serif;
  font-size: clamp(2.4rem, 5vw, 4rem);
  line-height: 1;
}

.finance-hero > div > p {
  max-width: 42rem;
  margin: 1rem 0 0;
  color: var(--muted);
}

.bank-vault-mark {
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 270px;
  padding: 1.5rem;
  border: 10px double rgba(36, 50, 74, 0.18);
  border-radius: 50%;
  background: radial-gradient(circle, #fffdf5 0 54%, #d9e2df 55% 64%, #f5f7f6 65%);
  text-align: center;
}

.bank-vault-mark > span {
  color: var(--muted);
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: 0.18em;
}

.bank-vault-mark strong {
  font-size: 2.8rem;
  line-height: 1;
}

.bank-vault-mark small {
  margin-top: 0.35rem;
  color: var(--muted);
}

.interest-banner {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.25rem;
  padding: 1rem 1.2rem;
  border: 1px solid rgba(42, 157, 143, 0.22);
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(149, 213, 178, 0.32), rgba(255, 255, 255, 0.88));
}

.interest-banner span {
  color: var(--muted);
}

.bank-balance-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.25rem;
}

.bank-balance-card {
  padding: 1.2rem;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: var(--shadow);
}

.bank-balance-card > strong {
  display: block;
  margin-top: 0.2rem;
  font-size: 2rem;
}

.bank-balance-card p {
  margin: 0.4rem 0 0;
  color: var(--muted);
}

.savings-balance-card {
  background: linear-gradient(135deg, rgba(149, 213, 178, 0.28), rgba(255, 255, 255, 0.9));
}

.interest-balance-card {
  background: linear-gradient(135deg, rgba(255, 209, 102, 0.28), rgba(255, 255, 255, 0.9));
}

.bank-transfer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
  margin-top: 1.25rem;
}

.bank-transfer-card {
  width: 100%;
}

.bank-transfer-form {
  display: grid;
  gap: 0.75rem;
  margin-top: 1rem;
}

.bank-transfer-form label {
  font-weight: 800;
}

.market-summary-card {
  display: grid;
  align-content: center;
  gap: 0.45rem;
  padding: 1.4rem;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: rgba(255, 255, 255, 0.82);
}

.market-summary-card > strong {
  font-size: 1.45rem;
}

.market-summary-card > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 0.55rem;
  border-top: 1px dashed var(--line);
}

.market-summary-card small {
  color: var(--muted);
}

.compact-section-header {
  margin-top: 2rem;
}

.portfolio-panel {
  margin-top: 1.25rem;
}

.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.portfolio-card {
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: var(--shadow);
}

.portfolio-card > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.portfolio-card > div:first-child span {
  color: var(--muted);
}

.portfolio-card dl {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
  margin: 1rem 0 0;
}

.portfolio-card dt,
.stock-price-row span {
  color: var(--muted);
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.portfolio-card dd {
  margin: 0.2rem 0 0;
  font-weight: 800;
}

.stock-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.stock-card {
  padding: 1.3rem;
  border: 1px solid var(--line);
  border-radius: 26px;
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--accent) 12%, white), rgba(255, 255, 255, 0.92));
  box-shadow: var(--shadow);
}

.stock-card-heading {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.stock-card-heading img {
  width: 76px;
  height: 76px;
  object-fit: contain;
  padding: 0.35rem;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.72);
}

.stock-symbol {
  color: var(--brand-deep);
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: 0.12em;
}

.stock-card h2 {
  margin: 0.15rem 0 0;
  font-family: "Palatino Linotype", "Book Antiqua", serif;
  font-size: 1.5rem;
}

.stock-card > p {
  min-height: 3rem;
  margin: 1rem 0;
  color: var(--muted);
}

.stock-price-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.7rem;
  padding: 0.9rem 0;
  border-top: 1px dashed var(--line);
  border-bottom: 1px dashed var(--line);
}

.stock-price-row strong {
  display: block;
  margin-top: 0.2rem;
}

.market-up {
  color: #238b6b !important;
}

.market-down {
  color: #c64058 !important;
}

.stock-order-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
}

.stock-order-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.55rem;
}

/* Freeform pet home editor */
.habitat-heading,
.room-card-header,
.room-actions,
.furniture-drawer-card,
.pantry-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.habitat-room-card,
.habitat-control-card {
  padding: 1.25rem;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.86);
  box-shadow: var(--shadow);
}

.room-card-header {
  margin-bottom: 1rem;
}

.room-card-header h2,
.habitat-control-card h2 {
  margin: 0;
}

.room-editor-hint,
.room-save-status {
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 700;
}

.drag-handle-mark {
  display: inline-grid;
  width: 1.75rem;
  height: 1.75rem;
  margin-right: 0.35rem;
  place-items: center;
  border-radius: 50%;
  background: var(--cream);
  color: var(--brand-deep);
}

.interactive-pet-room {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  isolation: isolate;
  border: 2px solid #dbcaa8;
  border-radius: 24px;
  background:
    repeating-linear-gradient(90deg, transparent 0 70px, rgba(112, 83, 51, 0.055) 71px 75px),
    linear-gradient(#fffaf0 0 70%, #d6a76f 70% 100%);
  box-shadow: inset 0 0 60px rgba(108, 74, 40, 0.1);
  touch-action: none;
}

.room-ceiling-beam,
.room-wall-trim,
.room-floor,
.room-window {
  position: absolute;
  pointer-events: none;
}

.room-ceiling-beam {
  inset: 0 0 auto;
  height: 18px;
  background: #9d623c;
}

.room-wall-trim {
  inset: 66% 0 auto;
  height: 22px;
  border-block: 3px solid #9e7048;
  background: #eed7ad;
}

.room-floor {
  inset: 70% 0 0;
  z-index: -1;
  background: repeating-linear-gradient(105deg, #d7a96e 0 54px, #c7945c 55px 59px);
}

.room-window {
  top: 11%;
  left: 50%;
  width: 25%;
  height: 32%;
  overflow: hidden;
  transform: translateX(-50%);
  border: 12px solid #f1d9ae;
  border-radius: 48% 48% 10px 10px;
  background: linear-gradient(#8fd8ee, #fff5c5);
  box-shadow: 0 10px 20px rgba(68, 53, 36, 0.15);
}

.room-window-cross::before,
.room-window-cross::after {
  position: absolute;
  content: "";
  background: #f1d9ae;
}

.room-window-cross::before { inset: 0 47%; }
.room-window-cross::after { inset: 48% 0; }

.draggable-room-item {
  position: absolute;
  z-index: 4;
  width: clamp(92px, 14vw, 160px);
  padding: 0;
  transform: translate(-50%, -50%);
  border: 0;
  background: transparent;
  cursor: grab;
  touch-action: none;
  user-select: none;
  filter: drop-shadow(0 12px 10px rgba(57, 39, 25, 0.2));
  transition: filter 160ms ease, transform 160ms ease;
}

.draggable-room-item img {
  display: block;
  width: 100%;
  max-height: 150px;
  object-fit: contain;
  pointer-events: none;
}

.draggable-room-item span {
  position: absolute;
  left: 50%;
  bottom: -1rem;
  padding: 0.25rem 0.55rem;
  transform: translateX(-50%);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: var(--ink);
  font-size: 0.72rem;
  font-weight: 800;
  opacity: 0;
  white-space: nowrap;
  transition: opacity 150ms ease;
}

.draggable-room-item:hover span,
.draggable-room-item:focus-visible span { opacity: 1; }
.draggable-room-item:focus-visible { outline: 4px solid #f4b942; outline-offset: 4px; }
.draggable-room-item.is-dragging { z-index: 20; cursor: grabbing; filter: drop-shadow(0 20px 14px rgba(57, 39, 25, 0.28)); transform: translate(-50%, -50%) scale(1.06); }
.room-item-berry-rug { z-index: 1; width: clamp(150px, 24vw, 275px); }
.room-item-petal-screen { z-index: 2; width: clamp(120px, 18vw, 205px); }
.room-item-moon-mobile { width: clamp(80px, 11vw, 125px); }
.room-item-twig-stool { width: clamp(75px, 10vw, 110px); }

.room-pet {
  position: absolute;
  left: 50%;
  bottom: 7%;
  z-index: 6;
  display: grid;
  justify-items: center;
  transform: translateX(-50%);
  pointer-events: none;
}

.room-pet img { width: clamp(115px, 17vw, 185px); height: 160px; object-fit: contain; filter: drop-shadow(0 16px 12px rgba(53, 39, 29, 0.22)); }
.room-pet strong { margin-top: -0.25rem; padding: 0.4rem 0.85rem; border-radius: 999px; background: white; box-shadow: 0 5px 16px rgba(51, 39, 29, 0.14); }
.empty-room-message { position: absolute; inset: 45% 20% auto; z-index: 3; padding: 1rem; border: 2px dashed #c9b58e; border-radius: 18px; background: rgba(255,255,255,.72); text-align: center; }
.room-save-status.is-saving { color: #9a6917; }
.room-save-status.is-error { color: #b33842; }
.room-position-form { display: none; }
.room-actions { margin-top: 0.85rem; }

.habitat-control-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: 1.25rem; margin-top: 1.25rem; }
.furniture-drawer-grid,
.pantry-grid { display: grid; gap: 0.8rem; }
.furniture-drawer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.furniture-drawer-card,
.pantry-card { padding: 0.85rem; border: 1px solid var(--line); border-radius: 18px; background: #fffdf8; }
.furniture-drawer-card.is-placed { background: #f3f7ef; }
.furniture-drawer-preview { flex: 0 0 82px; display: grid; width: 82px; height: 72px; place-items: center; border-radius: 14px; background: color-mix(in srgb, var(--accent) 13%, white); }
.furniture-drawer-preview img { width: 72px; height: 62px; object-fit: contain; }
.furniture-drawer-copy { flex: 1; min-width: 0; }
.furniture-drawer-copy strong,
.furniture-drawer-copy span { display: block; }
.furniture-drawer-copy span { color: var(--muted); font-size: .78rem; }
.pantry-token { font-size: 1.8rem; }

.furniture-shop-image-frame {
  display: grid;
  width: 100%;
  height: 170px;
  margin-bottom: 1rem;
  place-items: center;
  border-radius: 20px;
  background: linear-gradient(145deg, color-mix(in srgb, var(--accent) 16%, white), #fffdf8);
}

.furniture-shop-image-frame img { width: 80%; height: 145px; object-fit: contain; filter: drop-shadow(0 10px 8px rgba(55, 40, 28, .17)); }

.daily-food-counter {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.15rem;
  margin-bottom: 1.25rem;
  padding: 1.15rem 1.3rem;
  border: 2px solid color-mix(in srgb, var(--accent) 45%, white);
  border-radius: 24px;
  background: linear-gradient(120deg, color-mix(in srgb, var(--accent) 17%, white), rgba(255,255,255,.9));
  box-shadow: var(--shadow);
}

.daily-food-counter h2,
.daily-food-counter p { margin: 0; }
.daily-food-counter p { color: var(--muted); }
.daily-food-icon { display: grid; width: 72px; height: 72px; place-items: center; border-radius: 20px; background: white; font-size: 2rem; box-shadow: 0 8px 18px rgba(36,50,74,.12); }

.finance-history-panel {
  margin-top: 1.5rem;
  padding: 1.3rem;
  border: 1px solid var(--line);
  border-radius: 26px;
  background: rgba(255,255,255,.88);
  box-shadow: var(--shadow);
}

.bank-teller-scene {
  position: relative;
  display: grid;
  min-height: 320px;
  align-content: end;
  justify-items: center;
  overflow: hidden;
  border: 1px solid rgba(36, 50, 74, 0.12);
  border-radius: 28px;
  background:
    radial-gradient(circle at 50% 28%, rgba(255, 228, 151, .65), transparent 38%),
    linear-gradient(160deg, #dff1e8, #f9e8bd);
}

.bank-teller-scene::before {
  position: absolute;
  inset: 0;
  content: "";
  background: repeating-linear-gradient(90deg, transparent 0 52px, rgba(74, 99, 80, .06) 53px 56px);
  pointer-events: none;
}

.bank-teller-scene img {
  position: relative;
  z-index: 1;
  width: 210px;
  margin-bottom: 52px;
  filter: drop-shadow(0 14px 12px rgba(43, 50, 42, .2));
}

.bank-teller-speech {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 2;
  max-width: 210px;
  padding: .7rem .85rem;
  border: 2px solid #6f5a42;
  border-radius: 16px 16px 4px 16px;
  background: #fffdf5;
  box-shadow: 0 8px 18px rgba(50, 43, 35, .14);
}

.bank-teller-speech span,
.bank-teller-speech strong { display: block; }
.bank-teller-speech span { color: var(--muted); font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.bank-teller-speech strong { color: #5d462f; }
.bank-teller-speech p { margin: .25rem 0 0; color: var(--muted); font-size: .76rem; }

.bank-teller-desk {
  position: absolute;
  inset: auto 0 0;
  z-index: 3;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  padding: .8rem 1rem;
  border-top: 8px solid #785037;
  background: linear-gradient(#a8734d, #855a3e);
  color: white;
  text-align: left;
}

.bank-teller-desk span { grid-row: 1 / 3; font-size: .72rem; font-weight: 900; letter-spacing: .1em; }
.bank-teller-desk strong { font-size: 1.45rem; line-height: 1; text-align: right; }
.bank-teller-desk small { opacity: .8; text-align: right; }

.finance-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 18px; }
.finance-history-table { width: 100%; border-collapse: collapse; white-space: nowrap; }
.finance-history-table th { padding: .75rem 1rem; background: #f4f1e9; color: var(--muted); font-size: .72rem; letter-spacing: .07em; text-align: left; text-transform: uppercase; }
.finance-history-table td { padding: .85rem 1rem; border-top: 1px solid var(--line); }
.finance-history-table tbody tr:hover { background: rgba(42,157,143,.045); }
.history-type { display: inline-block; min-width: 72px; padding: .28rem .55rem; border-radius: 999px; font-size: .7rem; font-weight: 900; text-align: center; text-transform: uppercase; }
.history-deposit, .history-buy { background: #dff4ec; color: #21715a; }
.history-withdrawal, .history-sell { background: #ffe8df; color: #a84a32; }
.history-interest { background: #fff2bf; color: #866219; }
.empty-history { margin: 0; padding: 1rem; border: 2px dashed var(--line); border-radius: 16px; color: var(--muted); text-align: center; }

.battle-hero {
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  gap: 1.25rem;
  align-items: center;
  padding: 2rem;
  border-radius: 30px;
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.65), transparent 24%),
    linear-gradient(125deg, #ffe3a6, #f18b72 55%, #bf5564);
  box-shadow: var(--shadow);
}

.battle-hero h1 { max-width: 12ch; margin: 0; font-family: "Palatino Linotype", "Book Antiqua", serif; font-size: clamp(2.5rem, 5vw, 4.6rem); line-height: .94; }
.battle-hero p { max-width: 42rem; margin: 1rem 0 0; color: #653f43; font-weight: 700; }
.battle-pet-card { display: flex; align-items: center; gap: .8rem; padding: 1rem; border: 2px solid rgba(255,255,255,.55); border-radius: 24px; background: rgba(255,255,255,.78); }
.battle-pet-card img { width: 150px; height: 130px; object-fit: contain; filter: drop-shadow(0 10px 10px rgba(70,39,39,.2)); }
.battle-pet-card span, .battle-pet-card strong, .battle-pet-card small { display: block; }
.battle-pet-card span { color: var(--muted); font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.battle-pet-card strong { font-size: 1.3rem; }

.battle-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: .8rem; margin: 1.25rem 0; }
.battle-level-strip,.pet-level-card { padding: .85rem 1rem; border:1px solid var(--line); border-radius:18px; background:linear-gradient(120deg,#eef8f2,#fff8db); }
.battle-level-strip { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.8rem; margin:-.35rem 0 1.25rem; }
.battle-level-strip div:first-child span,.battle-level-strip div:first-child strong { display:block; }
.battle-level-strip small { color:var(--muted); font-weight:800; }
.pet-xp-meter { height:12px; overflow:hidden; border-radius:999px; background:rgba(36,50,74,.09); }
.pet-xp-meter span,.pet-xp-meter i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#48a88a,#72c8bc,#f0c75b); }
.pet-level-card { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:1rem; margin:1rem 0; }
.pet-level-card > div:first-child { display:grid; width:64px; height:64px; place-items:center; align-content:center; border-radius:50%; background:var(--ink); color:white; }
.pet-level-card > div:first-child span,.pet-level-card > div:first-child strong { display:block; line-height:1; }
.pet-level-card > div:first-child strong { font-size:1.5rem; }
.pet-level-progress > span { display:block; margin-bottom:.35rem; color:var(--muted); font-size:.75rem; font-weight:800; }
.battle-summary div { padding: 1rem; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.88); text-align: center; }
.battle-summary span, .battle-summary strong { display: block; }
.battle-summary span { color: var(--muted); font-size: .72rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.battle-summary strong { margin-top: .2rem; font-size: 1.6rem; }

.tournament-result { padding: 1.3rem; border: 2px solid #d48773; border-radius: 28px; background: #fff9f2; box-shadow: var(--shadow); }
.tournament-result.is-champion { border-color: #e4b13f; background: linear-gradient(145deg, #fffdf4, #fff1b9); }
.result-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.result-heading h2, .result-heading p { margin: 0; }
.result-trophy { display: grid; width: 70px; height: 70px; place-items: center; border-radius: 50%; background: #f0b946; color: #684617; box-shadow: inset 0 -7px 0 rgba(116,73,15,.2); }
.battle-bracket { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.2rem; }
.bracket-match { padding: .9rem; border: 1px solid var(--line); border-radius: 18px; background: white; }
.bracket-match > span { color: var(--muted); font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.bracket-match > div { display: grid; grid-template-columns: 32px 1fr auto; align-items: center; gap: .35rem; margin-top: .55rem; }
.bracket-match > div:first-of-type { grid-template-columns: 1fr auto; }
.bracket-match img { width: 32px; height: 32px; object-fit: contain; }
.bracket-match small { display: block; margin-top: .55rem; padding-top: .45rem; border-top: 1px dashed var(--line); font-weight: 900; }
.bracket-match.is-win small { color: #24805f; }
.bracket-match.is-loss small { color: #b44747; }
.tournament-bracket-reveal { margin: 1.25rem 0; padding: 1.25rem; overflow: hidden; border: 2px solid #d9b258; border-radius: 28px; background: linear-gradient(135deg, #fff8d9, #fffdf5); box-shadow: var(--shadow); animation: bracket-reveal .65s cubic-bezier(.2,.8,.2,1) both; }
.tournament-bracket-reveal h2, .tournament-bracket-reveal p { margin: 0; }
.active-bracket .bracket-match { opacity: .7; }
.active-bracket .bracket-match.is-current { border: 2px solid #df9f2f; background: #fff9df; opacity: 1; box-shadow: 0 8px 22px rgba(140,91,18,.16); animation: current-match-pulse 1.8s ease-in-out infinite; }
.active-bracket .bracket-match.is-win { opacity: 1; }

.cup-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.15rem; }
.cup-card { position: relative; overflow: hidden; padding: 1.25rem; border: 2px solid color-mix(in srgb, var(--accent) 45%, white); border-radius: 26px; background: linear-gradient(155deg, color-mix(in srgb, var(--accent) 14%, white), white); box-shadow: var(--shadow); }
.cup-card.is-locked { filter: grayscale(.65); opacity: .72; }
.cup-mark { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: 1rem; }
.cup-mark span { font-family: "Palatino Linotype", "Book Antiqua", serif; font-size: 1.25rem; font-weight: 900; }
.cup-mark strong { padding: .3rem .55rem; border-radius: 999px; background: color-mix(in srgb, var(--accent) 18%, white); font-size: .7rem; text-transform: uppercase; }
.cup-card h2 { margin: .2rem 0 .5rem; font-family: "Palatino Linotype", "Book Antiqua", serif; }
.cup-card > p { min-height: 3rem; color: var(--muted); }
.cup-card dl { display: grid; grid-template-columns: repeat(3, 1fr); margin: 1rem 0; padding-block: .7rem; border-block: 1px dashed var(--line); }
.cup-card dt { color: var(--muted); font-size: .65rem; text-transform: uppercase; }
.cup-card dd { margin: .15rem 0 0; font-weight: 900; }
.cup-entry-form { display: grid; gap: .65rem; }
.cup-entry-form label { font-size: .75rem; font-weight: 900; }
.cup-lock-note { min-height: 0 !important; margin: 1rem 0 0; padding: .75rem; border-radius: 14px; background: rgba(36,50,74,.08); font-weight: 800; text-align: center; }

.active-battle { margin: 1.25rem 0; padding: 1.35rem; border: 2px solid #50667c; border-radius: 30px; background: linear-gradient(150deg, #f8fbff, color-mix(in srgb, var(--opponent-accent) 12%, white)); box-shadow: var(--shadow); }
.battle-round-title { text-align: center; }
.battle-round-title h2 { margin: 0; font-family: "Palatino Linotype", "Book Antiqua", serif; font-size: 2rem; }
.battle-stage { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; max-width: 850px; margin: 1rem auto; }
.battle-fighter { display: grid; justify-items: center; padding: 1rem; border-radius: 24px; background: rgba(255,255,255,.78); }
.battle-fighter img { width: min(100%, 260px); height: 190px; object-fit: contain; filter: drop-shadow(0 14px 12px rgba(36,50,74,.2)); }
.player-attacks .battle-fighter:first-child img { animation: player-lunge .6s cubic-bezier(.2,.8,.2,1); }
.player-attacks .battle-fighter.opponent img { animation: battle-hit .55s .16s ease; }
.opponent-attacks .battle-fighter.opponent img { animation: opponent-lunge .6s cubic-bezier(.2,.8,.2,1); }
.opponent-attacks .battle-fighter:first-child img { animation: battle-hit .55s .16s ease; }
.battle-clash .battle-fighter:first-child img { animation: player-lunge .55s ease; }
.battle-clash .battle-fighter.opponent img { animation: opponent-lunge .55s ease; }
.fighter-name { display: flex; align-items: center; justify-content: space-between; gap: .7rem; width: 100%; }
.type-badge { padding: .25rem .55rem; border-radius: 999px; background: #e9edf2; font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.type-fire { background: #ffd9ce; color: #a43e2f; }
.type-water { background: #d7efff; color: #276c9b; }
.type-nature { background: #ddf2d8; color: #3e7643; }
.type-air { background: #e5f7f7; color: #397779; }
.type-earth { background: #eadcc9; color: #725537; }
.type-light { background: #fff0b8; color: #80651f; }
.battle-health { width: 100%; height: 14px; margin-top: .65rem; overflow: hidden; border-radius: 999px; background: #eadeda; box-shadow: inset 0 2px 4px rgba(36,50,74,.12); }
.battle-health span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #ef665c, #f0c84e, #60bb7b); transition: width .3s ease; }
.battle-fighter small { width: 100%; margin-top: .25rem; color: var(--muted); text-align: right; }
.battle-versus { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 50%; background: var(--ink); color: white; font-family: "Palatino Linotype", "Book Antiqua", serif; font-weight: 900; transform: rotate(-6deg); }
.battle-versus { position: relative; }
.battle-impact { position: absolute; color: #ffd85e; font-size: 3.8rem; opacity: 0; pointer-events: none; }
.player-attacks .battle-impact, .opponent-attacks .battle-impact, .battle-clash .battle-impact { animation: battle-impact .55s .12s ease-out; }
.battle-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; max-width: 760px; margin: 0 auto; }
.battle-actions button { width: 100%; padding: .85rem; border: 2px solid #d4b179; border-radius: 18px; background: linear-gradient(#fff9e8, #f5dfb0); color: var(--ink); box-shadow: inset 0 -5px 0 rgba(125,85,39,.13); transition: transform 140ms ease; }
.battle-actions button:hover { transform: translateY(-3px); }
.battle-actions b, .battle-actions span, .battle-actions small { display: block; }
.battle-actions b { font-size: 1.1rem; }
.battle-actions span { margin-top: .15rem; font-weight: 800; }
.battle-actions small { color: var(--muted); }
.type-chart { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem 1rem; margin: 1rem auto 0; padding: .75rem; border-radius: 15px; background: rgba(36,50,74,.06); font-size: .78rem; }
.type-chart small { width: 100%; color: var(--muted); text-align: center; }
.battle-log { max-width: 850px; margin: 1rem auto 0; padding-top: 1rem; border-top: 1px dashed var(--line); }
.battle-log h3 { font-size: 1rem; }
.battle-log p { display: grid; grid-template-columns: 120px 120px 1fr; gap: .65rem; margin: .4rem 0; padding: .55rem .7rem; border-radius: 12px; background: white; font-size: .78rem; }
.battle-log p span { color: var(--muted); }
.turn-win { border-left: 4px solid #55a97a; }
.turn-loss { border-left: 4px solid #d45b5b; }
.turn-draw { border-left: 4px solid #d4a94d; }

@keyframes bracket-reveal { from { opacity: 0; transform: translateY(-14px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes current-match-pulse { 50% { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(140,91,18,.24); } }
@keyframes player-lunge { 45% { transform: translateX(34px) rotate(4deg) scale(1.06); } }
@keyframes opponent-lunge { 45% { transform: translateX(-34px) rotate(-4deg) scale(1.06); } }
@keyframes battle-hit { 30%, 70% { transform: translateX(-8px); filter: brightness(1.35) drop-shadow(0 0 16px #ff796d); } 50% { transform: translateX(9px); } }
@keyframes battle-impact { 35% { opacity: 1; transform: scale(.7) rotate(20deg); } 100% { opacity: 0; transform: scale(1.6) rotate(70deg); } }

@media (prefers-reduced-motion: reduce) {
  .tournament-bracket-reveal, .active-bracket .bracket-match.is-current, .battle-fighter img, .battle-impact { animation: none !important; }
}

.discovery-form { display: none; }
.discovery-toast { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 1080; display: flex; width: min(390px, calc(100vw - 2rem)); gap: .85rem; padding: 1rem; border: 2px solid color-mix(in srgb, var(--accent) 55%, white); border-radius: 22px; background: rgba(255,253,247,.97); box-shadow: 0 22px 55px rgba(36,50,74,.24); opacity: 0; transform: translateY(30px); pointer-events: none; transition: opacity .25s ease, transform .25s ease; }
.discovery-toast.is-visible { opacity: 1; transform: translateY(0); }
.discovery-toast > span, .found-item-token { display: grid; place-items: center; border-radius: 16px; background: color-mix(in srgb, var(--accent) 20%, white); color: var(--ink); font-weight: 900; }
.discovery-toast > span { flex: 0 0 64px; height: 64px; }
.discovery-toast small, .discovery-toast strong { display: block; }
.discovery-toast small { color: var(--brand-deep); font-weight: 900; text-transform: uppercase; }
.discovery-toast p { margin: .2rem 0 0; color: var(--muted); font-size: .78rem; }

.marketplace-hero { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; padding: 2rem; border-radius: 30px; background: linear-gradient(125deg, #dff3e9, #fff2c7); box-shadow: var(--shadow); }
.marketplace-hero h1 { margin: 0; font-family: "Palatino Linotype", "Book Antiqua", serif; font-size: clamp(2.5rem, 5vw, 4rem); line-height: .95; }
.market-wallet { display: grid; width: 150px; height: 150px; place-items: center; align-content: center; border-radius: 50%; background: #fffdf5; box-shadow: inset 0 -10px 0 rgba(42,157,143,.12), 0 12px 25px rgba(36,50,74,.13); }
.market-wallet span, .market-wallet strong, .market-wallet small { display: block; }
.market-wallet strong { font-size: 2rem; }
.market-search-card { margin: 1.2rem 0; padding: 1rem; border: 1px solid var(--line); border-radius: 20px; background: rgba(255,255,255,.86); }
.market-search-card form { display: grid; grid-template-columns: minmax(220px,1fr) auto auto; align-items: center; gap: .75rem; }
.market-search-card p { margin: .7rem 0 0; color: var(--muted); font-size: .8rem; }
.player-listing-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.player-listing-card { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--line); border-radius: 22px; background: linear-gradient(150deg, color-mix(in srgb,var(--accent) 10%,white),white); box-shadow: var(--shadow); }
.listing-pet-greeter { display:flex; align-items:center; gap:.6rem; margin:-.25rem -.25rem .8rem; padding:.65rem; border-radius:16px; background:linear-gradient(120deg,rgba(255,255,255,.92),color-mix(in srgb,var(--accent) 12%,white)); }
.listing-pet-greeter img { flex:0 0 74px; width:74px; height:68px; object-fit:contain; filter:drop-shadow(0 7px 6px rgba(36,50,74,.14)); }
.listing-pet-greeter strong { display:block; color:var(--brand-deep); font-size:.78rem; }
.listing-pet-greeter blockquote { margin:.1rem 0 0; color:#63584b; font-family:"Palatino Linotype","Book Antiqua",serif; font-size:.78rem; line-height:1.25; }
.found-item-token { width: 64px; height: 64px; margin-bottom: .7rem; }
.listing-copy { flex: 1; }
.listing-copy span { color: var(--muted); font-size: .7rem; font-weight: 900; text-transform: uppercase; }
.listing-copy h3 { margin: .15rem 0; }
.listing-copy p { color: var(--muted); font-size: .82rem; }
.seller-row, .listing-price { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .65rem 0; border-top: 1px dashed var(--line); }
.seller-row small, .seller-row strong { display: block; }
.seller-row button { border: 0; background: none; color: #e5a72d; font-size: 1.5rem; }
.listing-price strong { color: var(--brand-deep); }
.punch-card { margin-bottom: .7rem; padding: .6rem; border-radius: 13px; background: #f5f0e3; }
.punch-card > span, .punch-card small { display: block; color: var(--muted); font-size: .67rem; font-weight: 800; text-transform: uppercase; }
.punch-card div { display: flex; gap: .3rem; margin: .35rem 0; }
.punch-card i { width: 18px; height: 18px; border: 2px solid #c8b68e; border-radius: 50%; }
.punch-card i.punched { border-color: #2a9d8f; background: #2a9d8f; }
.shop-inventory-grid { display: grid; gap: .7rem; }
.shop-inventory-grid > article { display: grid; grid-template-columns: auto 1fr minmax(360px,.8fr); align-items: center; gap: .8rem; padding: .8rem; border: 1px solid var(--line); border-radius: 18px; background: white; }
.shop-inventory-grid strong, .shop-inventory-grid span { display: block; }
.shop-inventory-grid span { color: var(--muted); }
.shop-inventory-grid form { display: grid; grid-template-columns: 80px 110px auto; gap: .5rem; }
.market-utility-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1rem; margin: 1.2rem 0; }
.player-shop-sign, .daily-kitchen-card { display: grid; align-items: center; gap: 1rem; padding: 1.1rem; border: 1px solid var(--line); border-radius: 22px; background: rgba(255,255,255,.9); box-shadow: var(--shadow); }
.player-shop-sign { grid-template-columns: 1fr minmax(260px,.7fr); }
.player-shop-sign h2, .player-shop-sign p, .daily-kitchen-card h2, .daily-kitchen-card p { margin: 0; }
.player-shop-sign p, .daily-kitchen-card p { color: var(--muted); }
.player-shop-sign form { display: grid; gap: .55rem; }
.shop-customize-form label { color:var(--muted); font-size:.72rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.shop-customize-form textarea { resize:vertical; }
.owner-shop-preview { display:flex; align-items:center; gap:.8rem; }
.owner-shop-preview img { flex:0 0 125px; width:125px; height:115px; object-fit:contain; filter:drop-shadow(0 10px 8px rgba(36,50,74,.16)); }
.owner-shop-preview blockquote { margin:.35rem 0 .15rem; color:#6b543b; font-family:"Palatino Linotype","Book Antiqua",serif; font-weight:700; }
.owner-shop-preview small { color:var(--muted); font-weight:800; }
.daily-kitchen-card { grid-template-columns: auto 1fr; background: linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,white),white); }
.daily-kitchen-card form { grid-column: 1 / -1; }
.daily-kitchen-card button { width: 100%; }
.listing-shop-name { margin: .35rem 0; color: var(--brand-deep); font-size: .78rem; font-weight: 900; }
.battle-hunger-warning { display: flex; justify-content: center; gap: 1rem; max-width: 720px; margin: .75rem auto; padding: .65rem; border-radius: 14px; background: #e7f3e7; color: #376244; font-size: .78rem; }
.battle-hunger-warning.is-low { background: #ffe1d7; color: #934433; }
.shop-tier-panel { display: grid; grid-template-columns: 1fr 34px 1fr 34px 1fr; align-items: center; gap: .35rem; margin: 0 0 1.2rem; padding: 1rem; border: 1px solid var(--line); border-radius: 22px; background: rgba(255,255,255,.88); box-shadow: var(--shadow); }
.shop-tier-step { display: grid; gap: .15rem; padding: .8rem; border: 2px dashed #c9c4b8; border-radius: 16px; color: var(--muted); }
.shop-tier-step.is-owned { border-style: solid; border-color: #2a9d8f; background: #e6f5ef; color: var(--ink); }
.shop-tier-step span { font-size: .68rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.shop-tier-step b { color: var(--brand-deep); }
.shop-tier-path { height: 4px; background: repeating-linear-gradient(90deg,#d1ae62 0 7px,transparent 8px 12px); }
.shop-tier-panel form, .max-shop-label { grid-column: 1 / -1; margin-top: .65rem; text-align: center; }
.shop-sales-panel { margin: 0 0 1.25rem; padding: 1.2rem; border: 1px solid var(--line); border-radius: 24px; background: rgba(255,255,255,.9); box-shadow: var(--shadow); }
.shop-sales-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.shop-sales-heading h2,.shop-sales-heading p { margin: 0; }
.shop-sales-heading p { color: var(--muted); }
.pending-profit { display: grid; min-width: 155px; padding: .8rem 1rem; border-radius: 18px; background: linear-gradient(135deg,#e5f5ed,#fff4c9); text-align: right; }
.pending-profit span,.pending-profit strong,.pending-profit small { display:block; }
.pending-profit span,.pending-profit small { color:var(--muted); font-size:.7rem; font-weight:800; text-transform:uppercase; }
.pending-profit strong { font-size:1.7rem; }
.sales-select-bar { display:flex; align-items:center; gap:.75rem; margin-bottom:.75rem; }
.sales-select-bar > span { flex:1; color:var(--muted); font-weight:800; }
.shop-sales-table input[type="checkbox"] { width:20px; height:20px; accent-color:var(--teal); }
.shop-sales-table tr.is-collected { opacity:.58; }
.sale-status { display:inline-block; padding:.28rem .55rem; border-radius:999px; font-size:.67rem; font-weight:900; text-transform:uppercase; }
.sale-status.is-pending { background:#fff0ba; color:#7e5b14; }
.sale-status.is-paid { background:#dfe7e3; color:#586762; }

.world-map-hero { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; padding: 1.5rem 1.8rem; border-radius: 28px; background: linear-gradient(120deg,#fff4c8,#dff4ec); box-shadow: var(--shadow); }
.world-map-hero h1 { max-width: 16ch; margin: 0; font-family: "Palatino Linotype","Book Antiqua",serif; font-size: clamp(2.5rem,5vw,4rem); line-height: .95; }
.world-map-hero p { max-width: 40rem; color: var(--muted); }
.map-compass { display: grid; flex: 0 0 100px; height: 100px; place-items: center; align-content: center; border: 3px solid #816640; border-radius: 50%; background: #fffdf5; color: #816640; box-shadow: inset 0 0 0 6px #ead7a9; }
.map-compass span,.map-compass strong,.map-compass small { display:block; line-height:1; }
.map-compass strong { font-size:2rem; }

.petopia-world-map { position: relative; min-height: 790px; aspect-ratio: 1.64; overflow: hidden; border: 8px solid #d0a968; border-radius: 38px; background:#6ba66b url('/images/locations/petopia-world-map.png') center/cover no-repeat;
  box-shadow: inset 0 0 70px rgba(39,55,34,.18),var(--shadow);
}
.petopia-world-map::after { position:absolute; inset:0; content:""; background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(30,48,31,.05)); pointer-events:none; }
.petopia-world-map > .map-cloud,.petopia-world-map > .map-river,.petopia-world-map > .map-path { display:none; }
.map-river { position:absolute; left:44%; top:-8%; width:90px; height:118%; border-inline:8px solid rgba(73,137,153,.28); background:#79c3d1; transform:rotate(10deg); box-shadow:inset 10px 0 18px rgba(255,255,255,.25); }
.map-cloud { position:absolute; z-index:1; width:120px; height:35px; border-radius:999px; background:rgba(255,255,255,.72); box-shadow:35px -15px 0 5px rgba(255,255,255,.72),65px 0 0 rgba(255,255,255,.72); }
.map-cloud-one { top:8%; left:8%; }.map-cloud-two { top:48%; right:13%; transform:scale(.7); }
.map-path { position:absolute; z-index:1; height:8px; border-radius:999px; background:repeating-linear-gradient(90deg,#b88f55 0 13px,transparent 14px 21px); transform-origin:left center; }
.map-path-one { left:19%; top:48%; width:57%; transform:rotate(-8deg); }.map-path-two { left:35%; top:62%; width:42%; transform:rotate(22deg); }
.map-landmark { position:absolute; z-index:3; display:flex; width:245px; gap:.7rem; align-items:center; padding:.75rem; border:3px solid #fff; border-radius:20px; background:rgba(255,253,245,.94); box-shadow:0 9px 0 rgba(99,72,43,.15),0 18px 30px rgba(55,67,55,.18); transition:transform 160ms ease,box-shadow 160ms ease; }
.map-landmark:hover { transform:translateY(-6px) rotate(-1deg); box-shadow:0 14px 0 rgba(99,72,43,.12),0 24px 34px rgba(55,67,55,.22); }
.map-landmark small,.map-landmark strong { display:block; }.map-landmark small { color:var(--muted); font-size:.65rem; font-weight:900; text-transform:uppercase; }.map-landmark strong { font-family:"Palatino Linotype","Book Antiqua",serif; font-size:1.05rem; }.map-landmark p { margin:.1rem 0 0; color:var(--muted); font-size:.7rem; line-height:1.25; }
.landmark-art { display:grid; flex:0 0 62px; height:62px; place-items:center; border-radius:18px; color:white; font-size:.72rem; font-weight:900; box-shadow:inset 0 -7px 0 rgba(0,0,0,.12); }
.arena-art{background:#c95757}.market-art{background:#e59b44}.kitchen-art{background:#e07055}.arcade-art{background:#4a89c4}.bank-art{background:#708c55}.home-art{background:#9b755d}.adoption-art{background:#b8739d}.cave-art{background:#65558f}
.landmark-arena{top:7%;right:8%}.landmark-market{top:35%;left:37%}.landmark-kitchen{top:52%;left:8%}.landmark-arcade{bottom:7%;right:8%}.landmark-bank{top:18%;left:7%}.landmark-home{bottom:8%;left:30%}.landmark-adoption{top:63%;right:31%}.landmark-cave{top:39%;right:5%}
.map-region-label { position:absolute; z-index:2; padding:.25rem .55rem; border:1px solid rgba(255,255,255,.38); border-radius:999px; background:rgba(34,55,40,.42); color:rgba(255,255,255,.9); font-family:"Palatino Linotype","Book Antiqua",serif; font-size:1rem; font-weight:900; letter-spacing:.12em; text-shadow:0 2px 5px rgba(0,0,0,.35); text-transform:uppercase; transform:rotate(-4deg); backdrop-filter:blur(3px); }.region-sky{top:3%;left:48%}.region-meadow{bottom:25%;left:4%}.region-coast{bottom:2%;right:34%}
.map-legend { display:flex; gap:1rem; align-items:center; margin-top:1rem; padding:1rem 1.2rem; border:1px solid var(--line); border-radius:18px; background:rgba(255,255,255,.82); }.map-legend strong{white-space:nowrap}.map-legend p{margin:0;color:var(--muted)}

.trainer-profile-hero { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:2rem; border-radius:30px; background:linear-gradient(125deg,#ffe0a8,#eab09a 50%,#b8dedd); box-shadow:var(--shadow); }
.trainer-profile-hero h1 { margin:0; font-family:"Palatino Linotype","Book Antiqua",serif; font-size:clamp(2.7rem,6vw,4.8rem); line-height:.95; }
.trainer-profile-hero p { margin:.5rem 0 0; color:#615354; font-weight:800; }
.trainer-rank-mark { display:grid; min-width:190px; padding:1rem; border:2px solid rgba(255,255,255,.65); border-radius:22px; background:rgba(255,255,255,.72); text-align:right; }
.trainer-rank-mark span,.trainer-rank-mark small { color:var(--muted); font-size:.72rem; font-weight:800; text-transform:uppercase; }.trainer-rank-mark strong{font-size:1.65rem}
.trainer-profile-grid,.profile-collection-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1rem; }
.trainer-pet-showcase,.trainer-record-card,.profile-collection-grid>article { padding:1.2rem; border:1px solid var(--line); border-radius:24px; background:rgba(255,255,255,.9); box-shadow:var(--shadow); }
.trainer-pet-showcase { display:flex; align-items:center; gap:1rem; background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 15%,white),white); }
.trainer-pet-showcase img { width:210px; height:180px; object-fit:contain; filter:drop-shadow(0 14px 12px rgba(36,50,74,.18)); }
.trainer-pet-showcase h2 { margin:.2rem 0 0; font-family:"Palatino Linotype","Book Antiqua",serif; }
.public-level { display:flex; gap:.6rem; align-items:center; margin-top:.7rem; padding:.5rem .7rem; border-radius:12px; background:rgba(36,50,74,.06); }.public-level span{color:var(--muted);font-size:.75rem}
.trainer-stat-grid { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; margin-top:1rem; }.trainer-stat-grid div{padding:.9rem;border-radius:16px;background:#f5f3ea}.trainer-stat-grid strong,.trainer-stat-grid span{display:block}.trainer-stat-grid strong{font-size:1.7rem}.trainer-stat-grid span{color:var(--muted);font-size:.75rem}
.profile-collection-grid h2 { margin:.1rem 0 1rem; }
.achievement-cloud { display:flex; flex-wrap:wrap; gap:.55rem; }.achievement-cloud span{padding:.5rem .7rem;border-radius:999px;background:linear-gradient(135deg,#fff0b5,#f7d48e);color:#76531e;font-size:.75rem;font-weight:900}
.public-cup-list { display:grid; gap:.55rem; }.public-cup-list>div{display:grid;grid-template-columns:1fr 1fr auto;gap:.5rem;padding:.65rem;border-left:5px solid var(--accent);border-radius:10px;background:#f7f5ed}.public-cup-list b{color:var(--brand-deep)}

.arcade-card-pairs { --accent: #e8a6c4; }
.arcade-card-comet { --accent: #74b7d8; }

.pairs-board {
  display: grid;
  grid-template-columns: repeat(4, minmax(60px, 1fr));
  gap: 0.75rem;
  max-width: 540px;
  margin: 1.25rem auto;
  perspective: 900px;
}

.pair-card {
  position: relative;
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  border-radius: 18px;
  background: #294963;
  color: white;
  box-shadow: inset 0 -6px 0 rgba(0, 0, 0, 0.16), 0 8px 15px rgba(36, 50, 74, 0.16);
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  font-weight: 900;
  transition: transform 220ms ease, background 220ms ease;
}

.pair-card:hover { transform: translateY(-3px); }
.pair-card .pair-face { display: none; }
.pair-card.is-flipped,
.pair-card.is-matched { transform: rotateY(180deg); background: linear-gradient(145deg, #fff5bf, #ffd166); color: #7d5520; }
.pair-card.is-flipped .pair-back,
.pair-card.is-matched .pair-back { display: none; }
.pair-card.is-flipped .pair-face,
.pair-card.is-matched .pair-face { display: inline; transform: rotateY(180deg); }
.pair-card.is-matched { background: linear-gradient(145deg, #d9f7e8, #8dd9bb); opacity: 0.72; }

.comet-field {
  position: relative;
  min-height: 390px;
  margin: 1.25rem 0;
  overflow: hidden;
  border: 3px solid #416987;
  border-radius: 26px;
  background:
    radial-gradient(circle at 18% 24%, white 0 2px, transparent 3px),
    radial-gradient(circle at 72% 18%, #ffe9a6 0 2px, transparent 3px),
    radial-gradient(circle at 82% 71%, white 0 2px, transparent 3px),
    linear-gradient(155deg, #18324f, #315a75 65%, #487d84);
  box-shadow: inset 0 0 50px rgba(3, 17, 35, 0.42);
}

.comet-field > p { position: absolute; inset: 45% 1rem auto; margin: 0; color: white; font-weight: 800; text-align: center; }
.comet-target { position: absolute; display: grid; width: 58px; height: 58px; place-items: center; border: 0; border-radius: 50%; background: #ffd166; color: white; font-size: 2rem; box-shadow: 0 0 0 8px rgba(255, 209, 102, .16), 0 0 30px #ffd166; animation: comet-pop 850ms ease-out forwards; }
.comet-target.is-storm { background: #718096; box-shadow: 0 0 0 8px rgba(113, 128, 150, .2); }

@keyframes comet-pop {
  0% { opacity: 0; transform: scale(.35) rotate(-20deg); }
  20%, 72% { opacity: 1; transform: scale(1) rotate(0); }
  100% { opacity: 0; transform: scale(.55) rotate(20deg); }
}

@keyframes glitter-pop {
  0% {
    opacity: 0;
    transform: translateY(0) scale(0.6) rotate(0deg);
  }

  25% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: translateY(90px) scale(0.8) rotate(200deg);
  }
}

@media (max-width: 1399.98px) {
  .site-nav-content { padding-top: 1rem; }
  .site-links { align-items: stretch; gap: 0.25rem; }
  .site-links .nav-link { width: 100%; justify-content: flex-start; padding-inline: 1rem; }
  .site-links .dropdown-menu { position: static; margin: 0.25rem 0 0.5rem; box-shadow: none; }
  .nav-account { justify-content: space-between; margin-top: 0.85rem; padding: 0.85rem; border-radius: 18px; background: rgba(42, 157, 143, 0.08); }
  .trainer-menu-button strong{max-width:220px}.trainer-dropdown{position:static!important;transform:none!important;margin-top:.4rem!important}
}

@media (max-width: 991.98px) {
  .hero-shell,
  .world-grid,
  .creature-grid,
  .minigame-layout,
  .pet-profile-shell,
  .arcade-grid,
  .care-hero,
  .care-action-grid,
  .quest-hero,
  .quest-grid,
  .finance-hero,
  .bank-transfer-grid,
  .stock-grid {
    grid-template-columns: 1fr;
  }

  .bank-balance-grid,
  .portfolio-grid {
    grid-template-columns: 1fr;
  }

  .care-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .section-header {
    display: block;
  }

  .adoption-hero,
  .adoption-prompt,
  .currency-board {
    flex-direction: column;
    align-items: start;
  }

  .furniture-card {
    flex-direction: column;
    align-items: start;
  }

  .color-choice-row,
  .color-preview-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hat-card {
    flex-direction: column;
    align-items: start;
  }

  .pet-house-body {
    min-height: auto;
    padding-bottom: 9rem;
  }

  .house-furniture,
  .house-slot-marker {
    position: static;
    width: 100%;
    margin-top: 1rem;
    transform: none;
  }

  .house-editor-grid {
    grid-template-columns: 1fr;
  }

  .pet-house-pet {
    position: static;
    margin-top: 1rem;
    transform: none;
  }

  .pet-house-floor,
  .pet-house-roof {
    display: none;
  }

  .typing-stats {
    flex-direction: column;
  }

  .nav-status {
    margin-top: 1rem;
    text-align: left;
  }

  .habitat-control-grid { grid-template-columns: 1fr; }
  .hat-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .battle-hero,
  .cup-grid { grid-template-columns: 1fr; }
  .battle-bracket { grid-template-columns: 1fr; }
  .trainer-profile-grid,.profile-collection-grid { grid-template-columns:1fr; }
  .adoption-host-card { grid-template-columns: 1fr; }
  .adoption-host-copy { padding: 1.25rem; }
  .adoption-host-scene { min-height: 280px; }
  .player-listing-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .shop-inventory-grid > article { grid-template-columns: auto 1fr; }
  .shop-inventory-grid form { grid-column: 1 / -1; }
  .market-utility-grid { grid-template-columns: 1fr; }
  .shop-tier-panel { grid-template-columns: 1fr; }
  .shop-tier-path { width: 4px; height: 20px; margin: auto; }
  .petopia-world-map { display:grid; grid-template-columns:1fr; gap:.8rem; min-height:0; aspect-ratio:auto; padding:1rem; background:linear-gradient(rgba(225,241,226,.88),rgba(247,237,199,.9)),url('/images/locations/petopia-world-map.png') center/cover; }
  .map-landmark { position:relative; inset:auto; width:100%; }
  .map-cloud,.map-river,.map-path,.map-region-label { display:none; }
  .world-map-hero { align-items:flex-start; }
  .battle-level-strip { grid-template-columns:1fr; }
  .shop-sales-heading { align-items:flex-start; flex-direction:column; }
  .pending-profit { width:100%; text-align:left; }
}

@media (max-width: 767.98px) {
  .page-shell {
    padding-top: 1.25rem;
    padding-bottom: 2.5rem;
  }

  body {
    background-attachment: scroll;
  }

  body::after {
    width: 75vw;
    opacity: .65;
  }

  .adoption-hero {
    padding: 1.25rem;
  }

  .hero-copy,
  .hero-panel,
  .world-card,
  .creature-card {
    padding: 1.25rem;
    border-radius: 22px;
  }

  .hero-copy h1 {
    max-width: none;
    font-size: 2.5rem;
  }

  .currency-strip,
  .nav-account,
  .nav-auth-links,
  .minigame-actions,
  .creature-card-top,
  .creature-meta,
  .stat-row,
  .footer-content {
    flex-direction: column;
  }

  .care-hero {
    padding: 1.25rem;
  }

  .care-stat-grid {
    grid-template-columns: 1fr;
  }

  .care-progress-copy {
    display: block;
  }

  .care-progress-copy span {
    display: block;
    margin-top: 0.35rem;
  }

  .quest-hero {
    padding: 1.25rem;
  }

  .quest-summary-row {
    grid-template-columns: 1fr;
  }

  .quest-card-top {
    align-items: flex-start;
    flex-direction: column;
  }

  .finance-hero {
    padding: 1.25rem;
  }

  .interest-banner,
  .portfolio-card > div:first-child {
    flex-direction: column;
  }

  .portfolio-card dl,
  .stock-price-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stock-order-grid {
    grid-template-columns: 1fr;
  }

  .interactive-pet-room { min-height: 420px; }
  .room-card-header,
  .habitat-heading,
  .room-actions { align-items: flex-start; flex-direction: column; }
  .furniture-drawer-grid { grid-template-columns: 1fr; }
  .draggable-room-item { width: 92px; }
  .room-item-berry-rug { width: 145px; }
  .room-item-petal-screen { width: 115px; }
  .room-pet img { width: 110px; height: 125px; }
  .pairs-board { grid-template-columns: repeat(3, minmax(58px, 1fr)); gap: .55rem; }
  .comet-field { min-height: 330px; }
  .hat-shop-grid,
  .hat-list { grid-template-columns: 1fr; }
  .wardrobe-heading { align-items: flex-start; flex-direction: column; }
  .daily-food-counter { grid-template-columns: auto 1fr; }
  .daily-food-counter form { grid-column: 1 / -1; }
  .daily-food-counter button { width: 100%; }
  .bank-teller-speech { top: .7rem; right: .7rem; max-width: 180px; }
  .bank-teller-scene img { width: 180px; transform: translateX(-35px); }
  .bank-landmark-scene,
  .bank-landmark-scene > img { min-height: 350px; }
  .bank-landmark-scene > img { object-position: 58% center; }
  .bank-welcome-bubble { top: .65rem; right: .65rem; max-width: 185px; padding: .65rem .75rem; }
  .bank-welcome-bubble p { font-size: .7rem; }
  .bank-vault-balance { left: .65rem; bottom: .65rem; min-width: 190px; }
  .battle-summary { grid-template-columns: 1fr; }
  .battle-hero { padding: 1.25rem; }
  .battle-pet-card img { width: 110px; height: 100px; }
  .battle-stage { grid-template-columns: 1fr; }
  .battle-versus { margin: -1rem auto; z-index: 2; }
  .battle-actions { grid-template-columns: 1fr; }
  .battle-log p { grid-template-columns: 1fr 1fr; }
  .battle-log p { grid-template-columns: 1fr; }
  .marketplace-hero { grid-template-columns: 1fr; }
  .market-wallet { width: 110px; height: 110px; }
  .market-search-card form, .player-listing-grid { grid-template-columns: 1fr; }
  .shop-inventory-grid form { grid-template-columns: 1fr; }
  .player-shop-sign { grid-template-columns: 1fr; }
  .owner-shop-preview { align-items:flex-start; flex-direction:column; }
  .battle-hunger-warning { align-items: flex-start; flex-direction: column; gap: .2rem; }
  .sales-select-bar { align-items:stretch; flex-direction:column; }
  .sales-select-bar > span { order:-1; }
  .trainer-profile-hero,.trainer-pet-showcase { align-items:flex-start; flex-direction:column; }
  .trainer-rank-mark { width:100%; text-align:left; }
  .trainer-pet-showcase img { width:170px; height:145px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .page-shell main > section,
  .page-shell main > .status-banner {
    animation: none;
  }
  .creature-card,
  .world-card,
  .stock-card,
  .player-listing-card,
  .cup-card,
  .btn-petopia-primary,
  .btn-petopia-secondary {
    transition: none;
  }
}
.collection-progress-card { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:1.4rem 1.6rem; margin:1rem 0 1.5rem; border:1px solid rgba(95,75,135,.18); border-radius:22px; background:linear-gradient(135deg,#fffaf0,#f4efff); box-shadow:0 12px 30px rgba(70,48,105,.08); }
.collection-progress-card h2 { margin:.2rem 0; }
.collection-progress-card p { margin:0; color:#665f72; }
.collection-progress-card progress { width:min(320px,35vw); height:18px; accent-color:#8b6fc0; }
@media (max-width:700px) { .collection-progress-card { align-items:stretch; flex-direction:column; } .collection-progress-card progress { width:100%; } }

/* Illustrated inventory art */
.item-art { display:block; flex:0 0 auto; width:84px; aspect-ratio:1; background-repeat:no-repeat; background-position:center; background-size:contain; }
.item-art-small { width:58px; }
.item-art-large { width:132px; margin:.2rem auto .8rem; }
.item-art-hat { width:min(210px,80%); margin:auto; }
.daily-food-counter .item-art, .daily-kitchen-card .item-art { width:92px; }
.discovery-toast .item-art { width:68px; }
.equipped-pet-hat.item-art { position:absolute; z-index:3; width:42%; height:42%; top:-2%; left:29%; }

.item-berry-biscuit,.item-moon-milk,.item-moss-crunch,.item-sun-pie,.item-bubble-stew,
.item-star-feast,.item-honey-petal,.item-starfruit-sorbet,.item-acorn-dumpling,.item-cloud-cake {
    background-image:url('/images/item-sprites/foods.png'); background-size:500% 200%;
}
.item-berry-biscuit { background-position:0 0; }
.item-moon-milk { background-position:25% 0; }
.item-moss-crunch { background-position:50% 0; }
.item-sun-pie { background-position:75% 0; }
.item-bubble-stew { background-position:100% 0; }
.item-star-feast { background-position:0 100%; }
.item-honey-petal { background-position:25% 100%; }
.item-starfruit-sorbet { background-position:50% 100%; }
.item-acorn-dumpling { background-position:75% 100%; }
.item-cloud-cake { background-position:100% 100%; }

.item-starlit-shell,.item-ember-berry,.item-cloud-ribbon,.item-moss-button,.item-moon-marble,
.item-river-charm,.item-sunscale,.item-storm-feather,.item-velvet-acorn,.item-prism-pebble {
    background-image:url('/images/item-sprites/world-finds.png'); background-size:500% 200%;
}
.item-starlit-shell { background-position:0 0; }
.item-ember-berry { background-position:25% 0; }
.item-cloud-ribbon { background-position:50% 0; }
.item-moss-button { background-position:75% 0; }
.item-moon-marble { background-position:100% 0; }
.item-river-charm { background-position:0 100%; }
.item-sunscale { background-position:25% 100%; }
.item-storm-feather { background-position:50% 100%; }
.item-velvet-acorn { background-position:75% 100%; }
.item-prism-pebble { background-position:100% 100%; }

.item-daisy-bonnet,.item-sailor-cap,.item-mushroom-beret,.item-aviator-goggles {
    background-image:url('/images/item-sprites/collectible-hats.png'); background-size:400% 100%;
}
.item-daisy-bonnet { background-position:0 50%; }
.item-sailor-cap { background-position:33.333% 50%; }
.item-mushroom-beret { background-position:66.667% 50%; }
.item-aviator-goggles { background-position:100% 50%; }

.item-top-hat { background-image:url('/images/hats/top-hat.svg'); }
.item-sun-hat { background-image:url('/images/hats/sun-hat.svg'); }
.item-berry-cap { background-image:url('/images/hats/berry-cap.svg'); }
.item-moon-crown { background-image:url('/images/hats/moon-crown.svg'); }
.item-storm-visor { background-image:url('/images/hats/storm-visor.svg'); }
.item-moss-hood { background-image:url('/images/hats/moss-hood.svg'); }

/* Moonwhisper Caverns */
.cave-hero{position:relative;min-height:390px;overflow:hidden;border:6px solid #c7a867;border-radius:32px;background:#17243a;box-shadow:var(--shadow)}
.cave-hero>img{width:100%;height:100%;min-height:390px;object-fit:cover;object-position:center}.cave-hero::after{position:absolute;inset:0;content:"";background:linear-gradient(90deg,rgba(10,17,31,.8),rgba(10,17,31,.06) 65%);pointer-events:none}
.cave-hero-copy{position:absolute;left:clamp(1.25rem,4vw,3rem);bottom:clamp(1.25rem,4vw,2.5rem);z-index:1;max-width:520px;color:white;text-shadow:0 2px 12px rgba(0,0,0,.5)}.cave-hero-copy .eyebrow{color:#dfd2ff}.cave-hero-copy h1{margin:.2rem 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(2.5rem,6vw,4.5rem);line-height:.95}.cave-hero-copy p{margin:.65rem 0 0;font-size:1.05rem}
.cave-trail{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin:1rem 0;padding:.7rem 1rem;border-radius:16px;background:#eef0f6;font-size:.78rem;text-transform:capitalize}.cave-trail a{color:#56477e;font-weight:900;text-decoration:none}.cave-trail span{color:#9b91b6}
.cave-room{position:relative;overflow:hidden;padding:clamp(1.25rem,3vw,2rem);border:1px solid #c9c1dd;border-radius:28px;background:linear-gradient(145deg,#faf9ff,#eef4f5);box-shadow:var(--shadow)}.cave-room::before{position:absolute;top:-70px;right:-40px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(151,123,210,.2),transparent 70%);content:""}.cave-room-story{position:relative;max-width:760px}.cave-room-story h2{margin:.15rem 0 .55rem;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(2rem,4vw,3rem)}.cave-room-story p{color:var(--muted);font-size:1rem;line-height:1.65}
.cave-room-scene{position:relative;min-height:340px;overflow:hidden;border-radius:22px;background:#17243a}.cave-room-scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:cave-scene-breathe 12s ease-in-out infinite alternate}.cave-room-scene>span{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,18,32,.88),rgba(11,18,32,.22) 68%,transparent)}.cave-room-scene .cave-room-story{position:absolute;z-index:2;left:clamp(1rem,4vw,2.4rem);bottom:clamp(1rem,4vw,2rem);max-width:650px;color:white;text-shadow:0 2px 12px rgba(0,0,0,.7)}.cave-room-scene .cave-room-story p{margin-bottom:0;color:#f0edf7}.cave-room-scene .eyebrow{color:#f4d77d}
.cave-choice-grid{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-top:1.4rem}.cave-choice{display:grid;grid-template-columns:54px 1fr;gap:.15rem .8rem;padding:1rem;border:2px solid #d5cee7;border-radius:20px;background:white;color:var(--ink);text-decoration:none;box-shadow:0 10px 24px rgba(36,50,74,.08);transition:transform .16s ease,box-shadow .16s ease}.cave-choice:hover{color:var(--ink);transform:translateY(-4px);box-shadow:0 16px 30px rgba(36,50,74,.15)}.cave-choice-icon{grid-row:1/4;width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 35% 30%,white 0 7%,#d8c7ff 9% 28%,#6d59a2 65%);box-shadow:0 0 18px rgba(119,89,183,.35)}.cave-choice-amber .cave-choice-icon{background:radial-gradient(circle at 35% 30%,white 0 7%,#ffd87a 9% 28%,#ba6e32 65%)}.cave-choice-river .cave-choice-icon{background:radial-gradient(circle at 35% 30%,white 0 7%,#a7efff 9% 28%,#367fa1 65%)}.cave-choice-moss .cave-choice-icon{background:radial-gradient(circle at 35% 30%,white 0 7%,#bfe79a 9% 28%,#52794b 65%)}.cave-choice strong,.cave-choice small,.cave-choice b{display:block}.cave-choice small{color:var(--muted)}.cave-choice b{margin-top:.35rem;color:#65558f;font-size:.78rem}
.cave-choice{position:relative;display:block;min-height:245px;overflow:hidden;padding:0;border-color:#c9c1dd;background:#17243a}.cave-choice>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease,filter .35s ease}.cave-choice::after{position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(9,15,27,.93));content:""}.cave-choice-copy{position:absolute;z-index:2;right:0;bottom:0;left:0;padding:1rem;color:white;text-shadow:0 2px 8px rgba(0,0,0,.8)}.cave-choice-copy strong{font-size:1.12rem}.cave-choice-copy small{color:#edf1f7}.cave-choice-copy b{color:#ffe184}.cave-choice:hover>img{transform:scale(1.07);filter:saturate(1.12) brightness(1.06)}
@keyframes cave-scene-breathe{to{transform:scale(1.035)}}
.cave-ending-card{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.25rem;margin-top:1.4rem;padding:1.25rem;border:2px solid #d7bd67;border-radius:24px;background:linear-gradient(135deg,#fff9df,#f2ecff)}.cave-ending-card h3{margin:.15rem 0;font-size:1.5rem}.cave-ending-card p{margin:0;color:var(--muted)}.cave-ending-card span{color:#7c6324;font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.cave-ending-actions{margin-top:1rem}
@media(max-width:700px){.cave-hero,.cave-hero>img{min-height:330px}.cave-hero>img{object-position:58% center}.cave-room{padding:.75rem}.cave-room-scene{min-height:390px}.cave-room-scene>span{background:linear-gradient(0deg,rgba(11,18,32,.92),rgba(11,18,32,.08) 75%)}.cave-choice-grid{grid-template-columns:1fr}.cave-ending-card{grid-template-columns:1fr;text-align:center}.cave-ending-card form,.cave-ending-card button{width:100%}}
@media(prefers-reduced-motion:reduce){.cave-room-scene>img{animation:none}.cave-choice>img{transition:none}}

/* Places, residents, and travel routes */
.place-arrival{position:relative;display:grid;grid-template-columns:minmax(280px,1.25fr) 150px minmax(280px,1fr);align-items:end;min-height:280px;overflow:hidden;margin:1rem 0 1.5rem;border:1px solid rgba(36,50,74,.14);border-radius:28px;background:#f7f1df;box-shadow:var(--shadow)}
.place-scene{position:absolute;inset:0 42% 0 0;overflow:hidden;background:linear-gradient(#8cd8dd 0 45%,#f6d789 46% 100%)}
.place-scene::before{position:absolute;inset:18% 8% 18%;border-radius:22px 22px 5px 5px;background:#3f6077;box-shadow:inset 0 0 0 8px rgba(255,255,255,.18);content:""}
.place-scene::after{position:absolute;top:8%;left:12%;width:76%;height:18%;border-radius:50% 50% 12px 12px;background:#ffd35a;content:""}
.place-npc{position:relative;z-index:2;grid-column:2;width:170px;max-height:230px;object-fit:contain;filter:drop-shadow(0 18px 14px rgba(36,50,74,.22));transform:translateX(-18px)}
.place-dialogue{position:relative;z-index:1;grid-column:3;align-self:stretch;padding:1.5rem 1.6rem;background:rgba(255,255,255,.94);box-shadow:-16px 0 35px rgba(36,50,74,.08)}
.place-dialogue h2{margin:.2rem 0 .45rem;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:2rem}.place-dialogue blockquote{margin:.7rem 0;padding:.8rem 1rem;border-left:4px solid #ef7654;border-radius:0 12px 12px 0;background:#fff5db;font-weight:800;line-height:1.45}.place-dialogue p{margin:0;color:var(--muted);line-height:1.55}
.scene-sign,.arena-banner{position:absolute;z-index:2;top:11%;left:28%;padding:.25rem .8rem;border-radius:8px;background:#ffdd59;color:#27364b;font-size:.75rem;font-weight:1000;letter-spacing:.12em}.scene-machine{position:absolute;z-index:2;bottom:16%;width:22%;height:46%;border:6px solid #23384a;border-radius:18px 18px 8px 8px;background:linear-gradient(#50d6e4 0 48%,#ef6d59 49%)}.scene-machine::after{position:absolute;right:18%;bottom:16%;width:10px;height:10px;border-radius:50%;background:#ffdd59;box-shadow:-18px 0 #f7f2d4;content:""}.machine-one{left:14%}.machine-two{left:55%;filter:hue-rotate(75deg)}.scene-floor{position:absolute;inset:auto 0 0;height:20%;background:repeating-linear-gradient(90deg,#3c5270 0 44px,#49607f 45px 88px)}
.place-arena .place-scene{background:linear-gradient(#87cfe4 0 48%,#e8ba6c 49%)}.place-arena .place-scene::before{inset:30% 5% 8%;border-radius:80% 80% 15px 15px;background:#ad6151}.place-arena .place-scene::after{top:0;left:48%;width:5%;height:55%;border-radius:0;background:#fff0b0}.arena-ring{position:absolute;z-index:2;bottom:8%;left:25%;width:52%;height:26%;border:8px solid #f9e7ad;border-radius:50%;background:#c97d58}.arena-stand{position:absolute;z-index:1;bottom:12%;width:24%;height:36%;border-radius:50% 50% 0 0;background:repeating-linear-gradient(#515d84 0 12px,#f1c66c 13px 24px)}.stand-left{left:3%}.stand-right{right:3%}
.place-market .place-scene{background:linear-gradient(#9cd9c4 0 55%,#d59b67 56%)}.place-market .place-scene::before{inset:24% 8% 8%;background:#fff1cf}.market-awning{position:absolute;z-index:2;top:24%;width:34%;height:18%;border-radius:8px;background:repeating-linear-gradient(90deg,#ed6a55 0 18px,#fff3d6 19px 36px)}.awning-one{left:9%}.awning-two{right:9%;filter:hue-rotate(105deg)}.market-lantern{position:absolute;z-index:3;top:10%;width:18px;height:30px;border-radius:6px;background:#ffd85b;box-shadow:0 0 18px #ffd85b}.lantern-one{left:20%}.lantern-two{right:20%}
.place-home .place-scene{background:linear-gradient(#8fd2dc 0 55%,#84ad62 56%)}.place-home .place-scene::before{inset:24% 18% 8%;background:#f5d59f}.place-home .place-scene::after{top:8%;left:12%;width:76%;height:38%;border-radius:50% 50% 0 0;background:#d8654e;clip-path:polygon(50% 0,100% 100%,0 100%)}.home-window,.home-door{position:absolute;z-index:2;bottom:12%;background:#6dbac4;border:6px solid #fff1ce}.home-window{left:29%;width:19%;height:30%}.home-door{left:57%;width:17%;height:42%;background:#7a543f}.home-shrub{position:absolute;z-index:3;bottom:4%;width:18%;height:20%;border-radius:50%;background:#4f8154}.shrub-one{left:8%}.shrub-two{right:7%}
.destination-nav{display:grid;grid-template-columns:190px 1fr;gap:1rem;align-items:center;margin:1.5rem 0;padding:1rem;border:1px solid rgba(36,50,74,.12);border-radius:24px;background:linear-gradient(135deg,#fffdf7,#eef7f3);box-shadow:0 12px 28px rgba(36,50,74,.07)}.destination-nav-heading{padding:.3rem .6rem}.destination-nav-heading strong{display:block;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:1.35rem}.destination-nav-track{display:flex;gap:.6rem;overflow-x:auto;padding:.2rem .15rem .45rem;scroll-snap-type:x proximity}.destination-link{flex:0 0 150px;padding:.7rem .8rem;border:1px solid #d8dce0;border-radius:15px;background:white;color:var(--ink);text-decoration:none;scroll-snap-align:start}.destination-link:hover{color:var(--ink);border-color:#ef7654;transform:translateY(-2px)}.destination-link span,.destination-link small{display:block}.destination-link span{font-weight:900}.destination-link small{margin-top:.15rem;color:var(--muted);font-size:.72rem}.destination-link.is-current{border-color:#24324a;background:#24324a;color:white}.destination-link.is-current small{color:#dbe5ef}
.landmark-art{position:relative;overflow:visible}.landmark-art i{position:absolute;left:50%;bottom:14px;width:38px;height:34px;transform:translateX(-50%);border:4px solid #fff;border-radius:5px;background:currentColor;box-shadow:0 4px 0 rgba(36,50,74,.22)}.landmark-art i::before{position:absolute;left:-7px;top:-17px;width:44px;height:22px;background:#fff;clip-path:polygon(50% 0,100% 100%,0 100%);content:""}.landmark-art i::after{position:absolute;left:13px;bottom:0;width:9px;height:18px;border-radius:3px 3px 0 0;background:#fff;content:""}.cave-art i{border-radius:50% 50% 4px 4px;background:#37435c}.cave-art i::before{display:none}.arena-art i::after{left:5px;width:20px;height:5px;bottom:12px;box-shadow:0 10px #fff}.kitchen-art i::after{left:9px;width:12px;height:12px;border-radius:50%;box-shadow:0 -8px 0 -3px #fff}
@media(max-width:900px){.place-arrival{grid-template-columns:1fr 110px;min-height:420px;align-items:end}.place-scene{inset:0 0 42%}.place-npc{grid-column:2;width:130px;transform:none}.place-dialogue{grid-column:1/-1;grid-row:2;padding:1.2rem}.destination-nav{grid-template-columns:1fr}.destination-nav-heading{display:flex;align-items:center;justify-content:space-between}.destination-nav-heading strong{font-size:1.15rem}}
@media(max-width:600px){.place-arrival{display:block;min-height:0;padding-top:210px}.place-scene{height:230px}.place-npc{position:absolute;z-index:3;top:60px;right:4%;width:120px;height:150px}.place-dialogue{padding:1.1rem}.place-dialogue h2{font-size:1.65rem}.place-dialogue blockquote{font-size:.9rem}.destination-nav{margin-inline:-.25rem;padding:.75rem}.destination-nav-track{margin-right:-.75rem}.destination-link{flex-basis:138px}.petopia-world-map{margin-inline:-.5rem}.map-landmark{min-height:100px}.map-landmark p{display:none}.item-art{max-width:76px}.item-art-large{max-width:118px}}

/* Intentional regional exploration */
.region-travel-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1rem 0 1.5rem}.region-travel-card{position:relative;min-height:210px;overflow:hidden;padding:1.2rem;border:1px solid rgba(36,50,74,.15);border-radius:24px;background:linear-gradient(155deg,#edf8d9,#79ad67);color:#1f382a;text-decoration:none;box-shadow:0 12px 26px rgba(36,50,74,.1);transition:transform .18s ease,box-shadow .18s ease}.region-travel-card::before,.region-travel-card::after{position:absolute;z-index:0;border-radius:50%;content:""}.region-travel-card::before{right:-30px;bottom:-45px;width:170px;height:140px;background:rgba(255,255,255,.28)}.region-travel-card::after{right:35px;bottom:22px;width:55px;height:85px;border-radius:50% 50% 12px 12px;background:rgba(36,50,74,.18)}.region-travel-card>*{position:relative;z-index:1;display:block}.region-travel-card span{font-size:.68rem;font-weight:1000;letter-spacing:.09em;text-transform:uppercase}.region-travel-card strong{margin:.45rem 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:1.55rem}.region-travel-card p{max-width:180px;font-size:.88rem}.region-travel-card b{position:absolute;bottom:1rem;font-size:.78rem;text-transform:uppercase}.region-travel-card:hover{color:#1f382a;transform:translateY(-5px);box-shadow:0 18px 32px rgba(36,50,74,.16)}.region-coast-card{background:linear-gradient(155deg,#dff9ff,#67b9cf);color:#173b4a}.region-moss-card{background:linear-gradient(155deg,#e8e0bd,#4f7954);color:#183424}.region-peaks-card{background:linear-gradient(155deg,#f5efff,#8e9ac7);color:#27304e}
.explore-hero{position:relative;min-height:330px;overflow:hidden;border:1px solid rgba(36,50,74,.15);border-radius:30px;background:#9bd7be;box-shadow:var(--shadow)}.explore-landscape{position:absolute;inset:0;background:linear-gradient(#8fd7df 0 58%,#83b968 59%)}.explore-sun{position:absolute;top:35px;right:12%;width:72px;height:72px;border-radius:50%;background:#ffe481;box-shadow:0 0 45px rgba(255,228,129,.8)}.explore-hill{position:absolute;bottom:-65px;width:65%;height:220px;border-radius:50% 50% 0 0;background:#63965d}.hill-one{left:-12%;transform:rotate(6deg)}.hill-two{right:-16%;background:#729f73;transform:rotate(-8deg)}.explore-path{position:absolute;bottom:-10px;left:41%;width:20%;height:62%;background:#e5c790;clip-path:polygon(42% 0,58% 0,100% 100%,0 100%)}.region-coast .explore-landscape{background:linear-gradient(#87d5e2 0 45%,#48abc4 46% 72%,#f0d18e 73%)}.region-mosswood .explore-landscape{background:linear-gradient(#789c80,#294f43)}.region-mosswood .explore-landscape::after{position:absolute;inset:0;background:radial-gradient(circle at 20% 65%,#e9d86b 0 3px,transparent 4px),radial-gradient(circle at 70% 45%,#e9d86b 0 3px,transparent 4px),radial-gradient(circle at 83% 72%,#e9d86b 0 3px,transparent 4px);content:""}.region-peaks .explore-landscape{background:linear-gradient(#829ed1 0 55%,#e7edf8 56%)}.region-peaks .explore-hill{background:#7583a2;clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0}.explore-hero-copy{position:absolute;z-index:2;left:clamp(1.2rem,4vw,2.5rem);bottom:clamp(1.2rem,4vw,2.2rem);max-width:530px;padding:1rem 1.2rem;border-radius:18px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px)}.explore-hero-copy h1{margin:.1rem 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(2.4rem,6vw,4.3rem);line-height:1}.explore-hero-copy p{margin:.4rem 0 0}.explore-conditions{position:absolute;z-index:2;top:1rem;right:1rem;display:flex;gap:.5rem}.explore-conditions span{min-width:110px;padding:.65rem .8rem;border-radius:14px;background:rgba(36,50,74,.88);color:white}.explore-conditions small,.explore-conditions strong{display:block}.explore-conditions small{color:#ced9e4;font-size:.65rem;text-transform:uppercase}.region-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem;margin:1rem 0}.region-tabs a{padding:.75rem 1rem;border:1px solid #d7dadd;border-radius:16px;background:white;color:var(--ink);text-decoration:none}.region-tabs span,.region-tabs small{display:block}.region-tabs span{font-weight:1000}.region-tabs small{color:var(--muted)}.region-tabs a.is-current{border-color:#24324a;background:#24324a;color:white}.region-tabs a.is-current small{color:#d7e0e8}
.exploration-loop{display:grid;grid-template-columns:1.5fr 1fr;gap:1rem;margin:1rem 0}.region-guide-card,.expedition-energy-card{display:flex;align-items:center;gap:1.2rem;padding:1.3rem;border:1px solid rgba(36,50,74,.13);border-radius:24px;background:#fff;box-shadow:0 10px 26px rgba(36,50,74,.07)}.region-guide-card img{width:125px;height:125px;object-fit:contain;filter:drop-shadow(0 12px 12px rgba(36,50,74,.15))}.region-guide-card h2{margin:.15rem 0}.region-guide-card blockquote{margin:.55rem 0 0;color:var(--muted);font-weight:700}.expedition-energy-card{display:block;background:linear-gradient(135deg,#fff9dc,#f0f7e9)}.expedition-energy-card>strong{display:block;font-size:2rem}.explore-energy-pips{display:flex;gap:.38rem;margin:.55rem 0}.explore-energy-pips i{width:27px;height:12px;border-radius:10px;background:#d8d9d0}.explore-energy-pips i.is-full{background:#ef7654;box-shadow:0 0 10px rgba(239,118,84,.35)}.expedition-energy-card p{color:var(--muted);font-size:.82rem}
.discovery-reveal{position:relative;display:grid;grid-template-columns:170px 1fr;align-items:center;gap:1.3rem;overflow:hidden;margin:1rem 0;padding:1.4rem;border:3px solid #78ad70;border-radius:28px;background:linear-gradient(135deg,#f5ffe8,#fff);box-shadow:0 18px 40px rgba(36,50,74,.12);animation:discovery-arrive .55s cubic-bezier(.2,.8,.2,1)}.discovery-reveal.rarity-rare{border-color:#4d9ed0;background:linear-gradient(135deg,#e8f8ff,#f5f0ff);box-shadow:0 0 32px rgba(77,158,208,.3)}.discovery-reveal.rarity-legendary{border-color:#e2aa37;background:linear-gradient(135deg,#fff3b5,#fff,#eee5ff);box-shadow:0 0 40px rgba(226,170,55,.4)}.discovery-reveal h2{margin:.15rem 0;font-size:2rem}.discovery-reveal span{font-size:.72rem;font-weight:1000;letter-spacing:.08em;text-transform:uppercase}.discovery-burst{position:absolute;left:23px;width:125px;height:125px;background:repeating-conic-gradient(from 0deg,rgba(255,210,72,.65) 0 7deg,transparent 8deg 18deg);animation:discovery-spin 9s linear infinite}.discovery-reveal .item-art{position:relative;z-index:1}.collection-journal{margin:2rem 0}.journal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.journal-entry{padding:1rem;border:1px solid #d9dce0;border-radius:20px;background:white}.journal-entry .item-art{margin:auto}.journal-entry span{display:block;margin-top:.45rem;color:var(--muted);font-size:.68rem;font-weight:900;text-transform:uppercase}.journal-entry h3{margin:.15rem 0;font-size:1rem}.journal-entry p{margin:0;color:var(--muted);font-size:.78rem}.journal-entry.is-unknown .item-art{filter:grayscale(1) brightness(0);opacity:.18}.journal-entry.is-unknown{background:#f1f1ed;border-style:dashed}@keyframes discovery-arrive{from{opacity:0;transform:translateY(25px) scale(.94)}to{opacity:1;transform:none}}@keyframes discovery-spin{to{transform:rotate(360deg)}}
@media(max-width:900px){.region-travel-grid,.journal-grid{grid-template-columns:repeat(2,1fr)}.exploration-loop{grid-template-columns:1fr;min-width:0}.exploration-loop>*{min-width:0}.explore-hero{min-height:380px;max-width:100%}.explore-hero-copy{right:1rem}.explore-conditions{left:1rem;right:auto}.region-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.region-tabs a{min-width:0;width:100%}}
@media(max-width:600px){.region-travel-grid{grid-template-columns:1fr 1fr;gap:.65rem}.region-travel-card{min-height:190px;padding:.9rem}.region-travel-card strong{font-size:1.25rem}.region-travel-card p{font-size:.76rem}.explore-hero{min-height:410px;margin-inline:0}.explore-conditions{right:.6rem;left:.6rem;justify-content:space-between}.explore-conditions span{min-width:0;flex:1}.region-tabs{gap:.5rem}.region-tabs a{grid-template-columns:30px minmax(0,1fr);padding:.65rem}.region-tabs b{font-size:1.15rem}.region-tabs small{font-size:.68rem}.region-guide-card{align-items:flex-start;gap:.6rem}.region-guide-card>div{min-width:0}.region-guide-card img{width:88px;height:100px}.region-guide-card blockquote{overflow-wrap:anywhere}.discovery-reveal{grid-template-columns:1fr;text-align:center}.discovery-burst{left:50%;transform:translateX(-50%)}.discovery-reveal .hero-actions{justify-content:center}.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.journal-entry{min-width:0;padding:.75rem}.journal-entry .item-art{width:64px}}

/* Living pet profile */
.living-pet-portrait{overflow:visible!important;padding-bottom:3.8rem}.living-pet-portrait .customizable-pet-art{position:relative;z-index:2;transform-origin:50% 80%}.pet-speech-bubble{position:absolute;z-index:6;right:.7rem;bottom:.55rem;left:.7rem;padding:.65rem .8rem;border:1px solid rgba(36,50,74,.14);border-radius:15px;background:white;color:var(--ink);font-size:.82rem;font-weight:800;text-align:center;box-shadow:0 8px 18px rgba(36,50,74,.12)}.pet-speech-bubble::before{position:absolute;top:-10px;left:55%;border-width:0 10px 11px;border-style:solid;border-color:transparent transparent white;content:""}.reaction-favorite .customizable-pet-art,.reaction-love .customizable-pet-art{animation:pet-happy .65s ease 2}.reaction-liked .customizable-pet-art,.reaction-dress .customizable-pet-art{animation:pet-proud .8s ease}.reaction-disliked .customizable-pet-art{animation:pet-nope .45s ease 2}.reaction-zoom .customizable-pet-art{animation:pet-zoom .7s ease}.reaction-curious .customizable-pet-art{animation:pet-tilt .8s ease}.pet-wearable{position:absolute;z-index:4;pointer-events:none}.wearable-glasses{top:39%;left:34%;width:33%;height:13%;border:5px solid #31536e;border-radius:50%;box-shadow:26px 0 0 -5px #f4d85c,26px 0 0 0 #31536e}.wearable-glasses::after{position:absolute;top:40%;left:100%;width:28px;height:4px;background:#31536e;content:""}.wearable-scarf{z-index:3;top:64%;left:33%;width:36%;height:13%;border-radius:50%;border-bottom:13px solid #e85d63;transform:rotate(-3deg)}.wearable-scarf::after{position:absolute;top:70%;right:4%;width:15px;height:46px;border-radius:5px;background:#e85d63;transform:rotate(-14deg);content:""}.wearable-badge{top:68%;right:30%;display:grid;width:34px;height:34px;place-items:center;border:4px solid #fff3bd;border-radius:50%;background:#e9ae38;color:white;box-shadow:0 4px 9px rgba(36,50,74,.25)}
.pet-needs-panel{padding:1rem;border-radius:18px;background:#f4f7f3}.profile-need{display:grid;grid-template-columns:90px 32px 1fr;align-items:center;gap:.5rem;margin-top:.5rem}.profile-need>span{font-size:.76rem;font-weight:900}.profile-need>strong{font-size:.75rem}.profile-need .need-meter{height:9px}.profile-need .need-meter i{display:block;height:100%;border-radius:inherit;background:#ef7654}.need-meter-happy i,.need-meter-happy span{background:#ed7caa!important}.need-meter-energy i,.need-meter-energy span{background:#6aafd0!important}.need-meter-clean i,.need-meter-clean span{background:#73c9b1!important}
.friendship-card{margin:1rem 0;padding:1rem;border:1px solid #eccb81;border-radius:18px;background:linear-gradient(135deg,#fff8d8,#fff0e8)}.friendship-card h2{margin:.1rem 0}.friendship-card p{margin:.2rem 0;color:var(--muted)}.friendship-track{height:12px;margin:.65rem 0;border-radius:12px;background:#eadfc8;overflow:hidden}.friendship-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ef7654,#e49bc1,#8d7bc0)}.friendship-card ul{display:flex;flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none}.friendship-card li{padding:.28rem .5rem;border-radius:20px;background:#dfddd7;color:#807c75;font-size:.67rem;font-weight:900}.friendship-card li.is-unlocked{background:#fff;color:#8c5c29;box-shadow:0 3px 8px rgba(90,65,32,.12)}
.pet-toy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin-top:.7rem}.pet-toy{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.7rem;border:1px solid #dddfe2;border-radius:16px;background:white;text-align:center}.pet-toy>span{display:block;width:52px;height:52px}.toy-ball>span{border-radius:50%;background:radial-gradient(circle at 32% 28%,#fff 0 8%,#f3ca51 9% 25%,#e86563 26% 55%,#5a82b1 56%);box-shadow:0 5px 0 rgba(36,50,74,.12)}.toy-puzzle>span{border-radius:12px;background:linear-gradient(135deg,#76baa5 50%,#f0c55a 51%);box-shadow:inset 0 0 0 7px white,0 5px 0 rgba(36,50,74,.12)}.toy-cuddle>span{position:relative}.toy-cuddle>span::before,.toy-cuddle>span::after{position:absolute;top:10px;width:30px;height:43px;border-radius:30px 30px 8px;background:#ed8c9e;content:""}.toy-cuddle>span::before{left:7px;transform:rotate(-45deg);transform-origin:0 100%}.toy-cuddle>span::after{right:7px;transform:rotate(45deg);transform-origin:100% 100%}.pet-toy small{min-height:32px;color:var(--muted);font-size:.66rem}.pet-toy button{width:100%;padding:.4rem}
.profile-pantry{display:grid;gap:.45rem}.profile-food{display:grid;grid-template-columns:55px 1fr auto;align-items:center;gap:.55rem;padding:.5rem;border:1px solid #dde0e2;border-radius:14px;background:white}.profile-food>span strong,.profile-food>span small{display:block}.profile-food>span small{color:var(--muted);font-size:.68rem}.profile-food.is-favorite{border-color:#edb957;background:#fffaf0}.profile-food.is-disliked{border-style:dashed;opacity:.8}.accessory-row{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:.65rem;padding:.55rem 0;border-bottom:1px solid #e1e1de}.accessory-row:last-child{border:0}.accessory-row div strong,.accessory-row div small{display:block}.accessory-row div small{color:var(--muted)}.accessory-row.is-locked{filter:grayscale(1);opacity:.5}.accessory-preview{position:relative;display:block;width:48px;height:42px}.preview-glasses::before{position:absolute;top:12px;left:2px;width:17px;height:17px;border:4px solid #31536e;border-radius:50%;box-shadow:22px 0 0 -4px #f4d85c,22px 0 0 0 #31536e;content:""}.preview-scarf{border-bottom:11px solid #e85d63;border-radius:50%}.preview-badge{display:grid;place-items:center;border-radius:50%;background:#e9ae38}.preview-badge::after{color:white;content:"★"}
@keyframes pet-happy{50%{transform:translateY(-12px) rotate(3deg)}}@keyframes pet-proud{50%{transform:scale(1.06)}}@keyframes pet-nope{25%{transform:translateX(-7px) rotate(-3deg)}75%{transform:translateX(7px) rotate(3deg)}}@keyframes pet-zoom{50%{transform:translateX(22px) rotate(5deg)}}@keyframes pet-tilt{50%{transform:rotate(-8deg)}}
@media(max-width:700px){.pet-toy-grid{grid-template-columns:1fr}.pet-toy{display:grid;grid-template-columns:52px 1fr auto;text-align:left}.pet-toy>span{grid-row:1/3}.pet-toy small{min-height:0}.profile-food{grid-template-columns:48px 1fr}.profile-food button{grid-column:1/-1;width:100%}.living-pet-portrait{padding-bottom:4.4rem}.pet-speech-bubble{font-size:.76rem}}

/* Marketplace economy */
.owner-shop-preview,.player-listing-card{position:relative}.shop-theme-lantern{--shop-sign:#e3ad44;--shop-sign-ink:#46351c}.shop-theme-meadow{--shop-sign:#7fb36d;--shop-sign-ink:#193b28}.shop-theme-coast{--shop-sign:#58b5c8;--shop-sign-ink:#173a4a}.shop-theme-royal{--shop-sign:#7c6bab;--shop-sign-ink:#fff}.owner-shop-preview::before,.player-listing-card::before{position:absolute;z-index:2;top:-9px;right:18px;padding:.25rem .65rem;border:3px solid white;border-radius:7px;background:var(--shop-sign,#e3ad44);color:var(--shop-sign-ink,#46351c);box-shadow:0 4px 10px rgba(36,50,74,.18);content:"OPEN";font-size:.62rem;font-weight:1000;letter-spacing:.12em}.owner-shop-preview::before{content:"WELCOME"}.npc-merchant-panel{margin:1.25rem 0;padding:1.25rem;border:1px solid #dacb9e;border-radius:28px;background:linear-gradient(145deg,#fff9dc,#f1ead5);box-shadow:var(--shadow)}.npc-merchant-host{display:grid;grid-template-columns:135px 1fr;align-items:center;gap:1.2rem}.npc-merchant-host img{width:135px;height:135px;object-fit:contain;filter:drop-shadow(0 12px 12px rgba(36,50,74,.16))}.npc-merchant-host h2{margin:.15rem 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:2rem}.npc-merchant-host blockquote{margin:.45rem 0;font-weight:800}.npc-merchant-host p{margin:0;color:var(--muted)}.npc-offer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1rem}.npc-offer-grid article{display:grid;grid-template-columns:75px 1fr;align-items:center;gap:.25rem .8rem;padding:1rem;border:2px solid #b7b1a0;border-radius:20px;background:white}.npc-offer-grid .item-art{grid-row:1/6;width:75px}.npc-offer-grid span{font-size:.65rem;font-weight:900;text-transform:uppercase}.npc-offer-grid strong{font-size:1.05rem}.npc-offer-grid p{margin:0;color:var(--muted);font-size:.76rem}.npc-offer-grid form{margin-top:.35rem}.npc-offer-grid .rarity-border-uncommon{border-color:#73a66a}.npc-offer-grid .rarity-border-rare{border-color:#4d9ed0;box-shadow:0 0 18px rgba(77,158,208,.15)}.npc-offer-grid .rarity-border-legendary{border-color:#dfaa36;box-shadow:0 0 22px rgba(223,170,54,.22)}
.market-filter-form{display:grid!important;grid-template-columns:2fr repeat(4,1fr);gap:.65rem;align-items:center}.market-filter-form label{grid-column:1/3}.item-price-history{display:grid;grid-template-columns:1fr auto;gap:.1rem .5rem;margin:.55rem 0;padding:.55rem .65rem;border-radius:12px;background:#eef4f5;font-size:.72rem}.item-price-history span{font-weight:900}.item-price-history small{grid-column:1/-1;color:var(--muted)}.item-price-history.is-empty{background:#f3f1eb}.partial-buy-form{display:grid;grid-template-columns:95px 1fr;align-items:end;gap:.5rem}.partial-buy-form label{font-size:.7rem;font-weight:900}.partial-buy-form input{margin-top:.2rem}.market-down{color:#b14b47;font-weight:900}.shop-inventory-grid article>div small{display:block;color:var(--muted);font-size:.68rem}
@media(max-width:1000px){.npc-offer-grid{grid-template-columns:1fr}.market-filter-form{grid-template-columns:repeat(2,1fr)}.market-filter-form label{grid-column:auto}}
@media(max-width:600px){.npc-merchant-host{grid-template-columns:90px 1fr}.npc-merchant-host img{width:90px;height:100px}.npc-merchant-host h2{font-size:1.45rem}.npc-merchant-host p{grid-column:1/-1}.market-filter-form{grid-template-columns:1fr}.market-filter-form>*{width:100%;grid-column:auto!important}.partial-buy-form{grid-template-columns:90px 1fr}.npc-offer-grid article{grid-template-columns:65px 1fr}.npc-offer-grid .item-art{width:65px}.shop-sales-table{min-width:920px}}

/* Main story campaign */
.world-story-callout{position:relative;display:grid;grid-template-columns:85px 1fr auto;align-items:center;gap:1rem;overflow:hidden;margin:1rem 0;padding:1rem 1.25rem;border:2px solid #d2b75f;border-radius:24px;background:linear-gradient(120deg,#202c48,#4d436d);color:white;text-decoration:none;box-shadow:0 14px 32px rgba(36,50,74,.2)}.world-story-callout:hover{color:white;transform:translateY(-3px)}.world-story-callout h2{margin:.1rem 0;font-family:"Palatino Linotype","Book Antiqua",serif}.world-story-callout p{margin:0;color:#e6e3ef}.world-story-callout>strong{padding:.65rem .9rem;border-radius:14px;background:#f0c657;color:#293247}.story-callout-light{width:70px;height:70px;border:4px solid #f8e6a1;border-radius:50%;background:radial-gradient(circle,#fff 0 8%,#f3ce62 10% 25%,#83a8d5 27% 42%,transparent 44%);box-shadow:0 0 28px #e9c45d;animation:story-pulse 2.4s ease-in-out infinite}.story-opening-hero{position:relative;min-height:440px;overflow:hidden;border:1px solid #67617b;border-radius:32px;background:#18233d;box-shadow:var(--shadow)}.story-sky{position:absolute;inset:0;background:radial-gradient(circle at 50% 115%,#a4774a 0 12%,#344263 38%,#111a31 75%)}.story-sky::before{position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,#fff 0 1px,transparent 2px),radial-gradient(circle at 75% 30%,#fff 0 1px,transparent 2px),radial-gradient(circle at 42% 14%,#fff 0 2px,transparent 3px),radial-gradient(circle at 88% 12%,#fff 0 1px,transparent 2px);background-size:170px 150px;content:""}.story-sky i{position:absolute;top:-15%;width:8px;height:75%;border-radius:50%;background:linear-gradient(transparent,#9be0ff,#fff3a8,transparent);filter:blur(2px);transform:rotate(18deg);box-shadow:0 0 24px #8acbe3}.story-sky i:nth-child(1){left:25%}.story-sky i:nth-child(2){left:56%;height:90%;transform:rotate(-11deg)}.story-sky i:nth-child(3){left:78%;height:68%;transform:rotate(28deg)}.story-sky span{position:absolute;right:11%;bottom:-25px;width:260px;height:160px;background:#283149;clip-path:polygon(50% 0,100% 100%,0 100%)}.story-opening-copy{position:relative;z-index:2;max-width:720px;padding:clamp(2rem,6vw,4rem);color:white}.story-opening-copy .eyebrow{color:#f4d67b}.story-opening-copy h1{margin:.2rem 0 .7rem;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(3rem,7vw,5.5rem);line-height:.9}.story-opening-copy p{font-size:1.08rem;line-height:1.65;color:#e2e5ec}.story-key-count{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.story-key-count>*{padding:.45rem .75rem;border:1px solid rgba(255,255,255,.25);border-radius:20px;background:rgba(255,255,255,.09)}
.story-roadmap{display:grid;gap:1.2rem;margin:1.5rem 0}.story-chapter{position:relative;display:grid;grid-template-columns:130px 150px 1fr;align-items:center;gap:1rem;overflow:hidden;padding:1.25rem;border:2px solid #d2d3d5;border-radius:28px;background:#faf9f4;box-shadow:0 12px 26px rgba(36,50,74,.08)}.story-chapter::before{position:absolute;inset:0 auto 0 0;width:10px;background:#83aa70;content:""}.story-chapter.chapter-tide::before{background:#58aeca}.story-chapter.chapter-root::before{background:#557551}.story-chapter.chapter-wind::before{background:#8298c7}.story-chapter.chapter-vault::before{background:#d3a53b}.story-chapter.is-locked{filter:saturate(.65)}.story-chapter.is-ready{border-color:#e0b94b;box-shadow:0 0 28px rgba(224,185,75,.22)}.story-chapter.is-complete{border-color:#77aa70;background:linear-gradient(135deg,#f6ffed,#fff)}.story-chapter>img{width:145px;height:145px;object-fit:contain;filter:drop-shadow(0 12px 12px rgba(36,50,74,.16))}.story-key-art{display:grid;place-items:center;text-align:center}.story-key-art span{position:relative;display:block;width:54px;height:95px;border:8px solid #a99460;border-radius:50% 50% 12px 12px;background:linear-gradient(90deg,#f4d67a,#c29139);box-shadow:0 8px 0 #78633e}.story-key-art span::after{position:absolute;right:-25px;bottom:-22px;width:55px;height:20px;border-bottom:13px solid #c99c44;box-shadow:20px 8px 0 -5px #c99c44;content:""}.story-key-art b{margin-top:1.7rem;font-size:.65rem;letter-spacing:.08em}.story-chapter-copy h2{margin:.1rem 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:2rem}.story-chapter-copy h3{margin:0;color:#7c6b4a;font-size:.82rem;text-transform:uppercase}.story-chapter-copy blockquote{margin:.65rem 0;color:var(--muted);font-weight:700;line-height:1.5}.story-objective{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .8rem;border-radius:14px;background:#ecece6}.story-objective span{font-weight:900}.chapter-complete-stamp{align-self:center;padding:.5rem .8rem;border:2px solid #61965d;border-radius:8px;color:#497846;text-transform:uppercase;transform:rotate(-2deg)}.item-vault-sigil{border-radius:50%;background-image:radial-gradient(circle,#fff 0 6%,#f5d66c 8% 22%,#5e77a7 24% 38%,#d5a942 40% 48%,transparent 50%);filter:drop-shadow(0 0 12px rgba(224,178,64,.55))}
@keyframes story-pulse{50%{transform:scale(1.08);box-shadow:0 0 42px #e9c45d}}
@media(max-width:850px){.story-chapter{grid-template-columns:95px 110px 1fr}.story-chapter>img{width:110px;height:120px}.story-chapter-copy h2{font-size:1.55rem}.world-story-callout{grid-template-columns:60px 1fr}.world-story-callout>strong{grid-column:1/-1;text-align:center}.story-callout-light{width:55px;height:55px}}
@media(max-width:600px){.story-opening-hero{min-height:500px;margin-inline:-.5rem}.story-opening-copy{padding:2rem 1.3rem}.story-chapter{grid-template-columns:80px 1fr;padding:1rem}.story-chapter>img{width:95px;height:105px}.story-key-art{grid-row:1}.story-key-art span{width:42px;height:68px}.story-chapter-copy{grid-column:1/-1}.story-objective{flex-direction:column;gap:.25rem}.story-chapter .hero-actions,.story-chapter .hero-actions form,.story-chapter .hero-actions button,.story-chapter .hero-actions a{width:100%}.world-story-callout{margin-inline:-.25rem;padding:.85rem}.world-story-callout p{font-size:.82rem}}
.story-mission-ribbon{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;margin:1rem 0;padding:.7rem 1rem;border:1px solid #d7bd67;border-radius:16px;background:linear-gradient(90deg,#fff5c9,#f4efff);color:var(--ink);text-decoration:none}.story-mission-ribbon:hover{color:var(--ink);transform:translateY(-2px)}.story-mission-ribbon span{font-size:.65rem;font-weight:1000;letter-spacing:.08em;text-transform:uppercase}.story-mission-ribbon strong{font-family:"Palatino Linotype","Book Antiqua",serif}.story-mission-ribbon b{color:#6d558f;font-size:.75rem;text-transform:uppercase}@media(max-width:600px){.story-mission-ribbon{grid-template-columns:1fr}.story-mission-ribbon b{justify-self:start}}

/* Community and seasons */
.community-hero{display:grid;grid-template-columns:1fr 280px;gap:1.2rem;align-items:center;padding:clamp(1.4rem,4vw,2.5rem);border:1px solid #d5b95f;border-radius:30px;background:linear-gradient(130deg,#fff2af,#f1a968 50%,#7764a2);box-shadow:var(--shadow)}.community-hero h1{margin:.15rem 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(2.6rem,6vw,4.6rem);line-height:.95}.community-hero p{max-width:680px}.community-hero aside{padding:1rem;border:2px solid rgba(255,255,255,.75);border-radius:20px;background:rgba(36,50,74,.85);color:white}.community-hero aside>*{display:block}.community-hero aside span,.community-hero aside small{color:#e5dff1;font-size:.7rem;text-transform:uppercase}.season-dashboard,.community-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.season-dashboard>article,.community-panel{padding:1.25rem;border:1px solid rgba(36,50,74,.13);border-radius:24px;background:white;box-shadow:0 10px 26px rgba(36,50,74,.07)}.seasonal-cup-card{background:linear-gradient(135deg,#fff6c8,#f5dd87)!important}.season-collection-card{background:linear-gradient(135deg,#eef4ff,#f5efff)!important}.season-item-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin:.75rem 0}.season-item-row>div{padding:.45rem;border:1px dashed #bbb8c3;border-radius:14px;text-align:center}.season-item-row .item-art{width:58px;margin:auto;filter:grayscale(1) brightness(0);opacity:.18}.season-item-row .is-found{border-style:solid;background:white}.season-item-row .is-found .item-art{filter:none;opacity:1}.season-item-row small{display:block;font-size:.63rem}.community-ranking{display:grid;max-height:550px;overflow:auto}.community-ranking a{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:.6rem;padding:.65rem;border-bottom:1px solid #e2e3e4;color:var(--ink);text-decoration:none}.community-ranking a:hover{background:#f5f6f2}.community-ranking span strong,.community-ranking span small{display:block}.community-ranking span small{color:var(--muted)}.community-ranking em{font-size:.7rem}.community-inline-form{display:flex;gap:.5rem}.friend-list{display:grid;gap:.4rem;margin-top:.8rem}.friend-list a{display:flex;justify-content:space-between;padding:.6rem .7rem;border-radius:12px;background:#f1f5f2;color:var(--ink);text-decoration:none}.friend-list a span{color:var(--muted);font-size:.75rem}.trade-builder{display:grid;grid-template-columns:1.3fr 1.5fr .6fr 1fr auto;gap:.55rem}.trade-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.trade-offer{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:.5rem;margin:.45rem 0;padding:.6rem;border:1px solid #dedfe1;border-radius:14px}.trade-offer>div:nth-child(2) strong,.trade-offer>div:nth-child(2) span{display:block}.trade-offer>div:nth-child(2) span{color:var(--muted);font-size:.72rem}.trade-offer form{display:flex;gap:.3rem}.trade-accepted{border-color:#74a970;background:#f2faee}.trade-declined{opacity:.55}.club-ranking{display:grid}.club-ranking>div{display:grid;grid-template-columns:1fr auto auto;gap:.7rem;padding:.6rem;border-bottom:1px solid #e1e2df}.club-ranking span{color:var(--muted)}.achievement-board{display:grid;grid-template-columns:260px 1fr;gap:1rem;align-items:center;margin:1rem 0}.achievement-milestones{display:flex;flex-wrap:wrap;gap:.45rem}.achievement-milestones span{padding:.45rem .7rem;border-radius:20px;background:linear-gradient(135deg,#fff1b9,#eadff6);font-size:.72rem;font-weight:900}.market-event-banner{display:flex;align-items:center;gap:1rem;margin:1rem 0;padding:.7rem 1rem;border:1px solid #d5b55d;border-radius:16px;background:#fff5c9}.market-event-banner span{font-size:.66rem;font-weight:1000;text-transform:uppercase}.market-event-banner p{margin:0;color:var(--muted)}.battle-actions{grid-template-columns:repeat(5,1fr)!important}.battle-actions .battle-tactic{background:linear-gradient(145deg,#edf4ff,#e7e0f5);border-color:#8a79b2}
@media(max-width:950px){.community-hero{grid-template-columns:1fr}.trade-builder{grid-template-columns:repeat(2,1fr)}.trade-builder button{grid-column:1/-1}.battle-actions{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:650px){.season-dashboard,.community-grid,.trade-columns{grid-template-columns:1fr}.season-item-row{grid-template-columns:repeat(2,1fr)}.community-inline-form,.trade-builder{display:grid;grid-template-columns:1fr}.trade-offer{grid-template-columns:48px 1fr}.trade-offer>form,.trade-offer>b{grid-column:1/-1}.trade-offer form button{flex:1}.achievement-board{grid-template-columns:1fr}.club-ranking>div{grid-template-columns:1fr}.community-ranking a{grid-template-columns:32px 1fr}.community-ranking em{grid-column:2}.market-event-banner{align-items:flex-start;flex-direction:column;gap:.2rem}.battle-actions{grid-template-columns:1fr 1fr!important}}

/* Club hall */
.club-hall-hero{display:grid;grid-template-columns:130px 1fr 220px;align-items:center;gap:1.4rem;padding:2rem;border:1px solid #c9aa61;border-radius:30px;background:linear-gradient(135deg,#fff3c7,#e8d3a4 56%,#86a88a);box-shadow:var(--shadow)}.club-banner-mark{display:grid;width:115px;height:145px;place-items:center;background:#516f67;clip-path:polygon(0 0,100% 0,100% 82%,50% 100%,0 82%);filter:drop-shadow(0 10px 8px rgba(36,50,74,.2))}.club-banner-mark span{display:grid;width:65px;height:65px;place-items:center;border:5px solid #edce78;border-radius:50%;color:#fff4c2;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:2.5rem}.club-hall-hero h1{margin:.1rem 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(2.8rem,6vw,4.8rem);line-height:.95}.club-hall-hero blockquote{margin:.6rem 0;font-weight:800}.club-hall-hero aside{padding:1rem;border:2px solid rgba(255,255,255,.75);border-radius:18px;background:#273c46;color:white}.club-hall-hero aside>*{display:block}.club-hall-hero aside strong{font-size:2rem}.club-hall-hero aside span,.club-hall-hero aside small{color:#d8e8df;font-size:.7rem;text-transform:uppercase}.club-announcement{display:grid;grid-template-columns:170px 1fr;align-items:center;gap:1rem;margin:1rem 0;padding:.8rem 1rem;border:1px solid #d9bd70;border-radius:16px;background:#fff8dd}.club-announcement span{font-size:.7rem;font-weight:1000;text-transform:uppercase}.club-announcement p{margin:0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:1.1rem}.club-dashboard,.club-founder-panel{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1rem 0}.club-deposit-form{display:flex;gap:.5rem}.club-member-list{display:grid;max-height:340px;overflow:auto}.club-member-list a{display:grid;grid-template-columns:70px 1fr;gap:.2rem .6rem;padding:.6rem;border-bottom:1px solid #e1e2df;color:var(--ink);text-decoration:none}.club-member-list a>span{grid-row:1/3;align-self:center;padding:.25rem;border-radius:12px;background:#e1e4df;font-size:.62rem;font-weight:900;text-align:center}.club-member-list .founder-mark{background:#f3d980}.club-member-list small{color:var(--muted)}.club-founder-panel{padding:1.25rem;border:2px solid #d2b560;border-radius:24px;background:linear-gradient(135deg,#fffaf0,#f3ede0)}.club-founder-panel form{display:grid;gap:.65rem}.club-founder-panel label{font-weight:900}.club-founder-panel label>*{margin-top:.25rem}.club-ledger{margin:1rem 0;padding:1.25rem;border:1px solid rgba(36,50,74,.13);border-radius:24px;background:white;box-shadow:0 10px 26px rgba(36,50,74,.07)}

/* The Petopia Gazette */
.gazette-masthead{margin-bottom:1rem;padding:1rem 0 .65rem;border-top:7px double #263148;border-bottom:7px double #263148;text-align:center}.gazette-masthead>span{font-size:.65rem;font-weight:1000;letter-spacing:.16em;text-transform:uppercase}.gazette-masthead h1{margin:.1rem 0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,8vw,6.4rem);font-weight:900;letter-spacing:-.06em;line-height:.9}.gazette-masthead>div{display:flex;justify-content:space-between;border-top:1px solid #263148;padding-top:.4rem;font-family:Georgia,"Times New Roman",serif;font-size:.75rem;text-transform:uppercase}.gazette-lead{display:grid;grid-template-columns:1.1fr 1fr;gap:1.5rem;padding-bottom:1.3rem;border-bottom:4px solid #263148}.gazette-lead h2,.gazette-columns h2,.gazette-bottom h2{margin:.2rem 0;font-family:Georgia,"Times New Roman",serif;font-weight:900;line-height:1}.gazette-lead h2{font-size:clamp(2.6rem,6vw,5rem);letter-spacing:-.04em}.gazette-lead p,.gazette-columns p,.gazette-bottom p{font-family:Georgia,"Times New Roman",serif;line-height:1.55}.gazette-deck{font-size:1.2rem;font-weight:700}.gazette-kicker{display:block;color:#9c3e35;font-size:.66rem;font-weight:1000;letter-spacing:.12em;text-transform:uppercase}.gazette-aurora{position:relative;min-height:430px;overflow:hidden;background:radial-gradient(circle at 50% 110%,#d3a864 0 15%,#354766 38%,#141e34 72%)}.gazette-aurora::before{position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,white 0 1px,transparent 2px),radial-gradient(circle at 70% 28%,white 0 1px,transparent 2px);background-size:120px 90px;content:""}.gazette-aurora i{position:absolute;top:-10%;left:28%;width:10px;height:80%;border-radius:50%;background:linear-gradient(transparent,#8ddbea,#f5d76d,transparent);filter:blur(4px);transform:rotate(18deg);box-shadow:0 0 32px #86c7df}.gazette-aurora i:nth-child(2){left:64%;height:95%;transform:rotate(-12deg)}.gazette-aurora span{position:absolute;right:12%;bottom:-5%;width:55%;height:55%;background:#28344c;clip-path:polygon(50% 0,100% 100%,0 100%)}.gazette-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:1.3rem;margin:1.2rem 0;padding-bottom:1.2rem;border-bottom:2px solid #263148}.gazette-columns article+article{padding-left:1.3rem;border-left:1px solid #858585}.gazette-columns h2{font-size:2rem}.gazette-bottom{display:grid;grid-template-columns:1fr 1fr .7fr;gap:1.2rem}.gazette-bottom article+article,.gazette-bottom aside{padding-left:1.2rem;border-left:1px solid #858585}.gazette-bottom aside{padding:1rem;background:#ece9df;font-family:Georgia,"Times New Roman",serif}.gazette-bottom aside strong{font-size:1.2rem}.gazette-lead a,.gazette-columns a,.gazette-bottom a{color:#8e302b;font-family:Georgia,"Times New Roman",serif;font-weight:900}
@media(max-width:850px){.club-hall-hero{grid-template-columns:100px 1fr}.club-hall-hero aside{grid-column:1/-1}.gazette-lead{grid-template-columns:1fr}.gazette-columns{grid-template-columns:1fr 1fr}.gazette-columns article+article{padding-left:0;border-left:0}.gazette-columns article:nth-child(3){grid-column:1/-1;padding-top:1rem;border-top:1px solid #858585}.gazette-bottom{grid-template-columns:1fr 1fr}.gazette-bottom aside{grid-column:1/-1;padding-left:1rem;border-left:0}}
@media(max-width:600px){.club-hall-hero{grid-template-columns:75px 1fr;padding:1rem}.club-banner-mark{width:70px;height:100px}.club-banner-mark span{width:45px;height:45px;font-size:1.7rem}.club-dashboard,.club-founder-panel{grid-template-columns:1fr}.club-announcement{grid-template-columns:1fr;gap:.25rem}.club-deposit-form{display:grid}.gazette-masthead h1{font-size:3rem}.gazette-masthead>div{gap:.5rem;font-size:.6rem}.gazette-lead h2{font-size:2.7rem}.gazette-aurora{min-height:290px}.gazette-columns,.gazette-bottom{grid-template-columns:1fr}.gazette-columns article,.gazette-columns article:nth-child(3),.gazette-bottom article+article,.gazette-bottom aside{grid-column:auto;padding:1rem 0 0;border-top:1px solid #858585;border-left:0}}

/* Petopia Post */
.mail-hero{display:grid;grid-template-columns:150px 1fr 200px;align-items:center;gap:1.3rem;padding:1.5rem;border:1px solid #bd9b63;border-radius:28px;background:linear-gradient(135deg,#fff2cf,#e8c888 55%,#78a9ac);box-shadow:var(--shadow)}.mail-hero h1{margin:.15rem 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(2.5rem,6vw,4.5rem);line-height:.95}.mail-hero p{margin:.5rem 0 0}.mail-hero aside{padding:1rem;border:2px solid rgba(255,255,255,.7);border-radius:18px;background:#2f5260;color:white}.mail-hero aside>*{display:block}.mail-hero aside strong{font-size:2.2rem}.mail-hero aside span,.mail-hero aside small{color:#d7e9ea;font-size:.7rem;text-transform:uppercase}.mail-postbox{position:relative;width:125px;height:140px;margin:auto;border:8px solid #eee0b5;border-radius:55px 55px 12px 12px;background:#d85f51;box-shadow:0 12px 0 #69473c}.mail-postbox::before{position:absolute;top:30px;left:20px;width:70px;height:13px;border-radius:8px;background:#663d38;content:""}.mail-postbox::after{position:absolute;bottom:-48px;left:48px;width:28px;height:48px;background:#69473c;content:""}.mail-postbox span{position:absolute;top:58px;left:29px;padding:.25rem .5rem;border-radius:5px;background:#fff1c6;font-size:.65rem;font-weight:1000}.mail-postbox span::after{content:"POST"}.mail-layout{display:grid;grid-template-columns:330px 1fr;gap:1rem;margin:1rem 0}.mail-sidebar{display:grid;align-content:start;gap:.8rem}.mail-sidebar nav{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.mail-sidebar nav a{display:flex;justify-content:space-between;padding:.7rem .8rem;border:1px solid #dadbdb;border-radius:14px;background:white;color:var(--ink);font-weight:900;text-decoration:none}.mail-sidebar nav a.is-current{background:#2f5260;color:white}.mail-compose{display:grid;gap:.6rem;padding:1rem;border:1px solid #d8c89d;border-radius:20px;background:#fffaf0}.mail-compose label{font-size:.72rem;font-weight:900}.mail-compose label>*{margin-top:.2rem}.mail-compose fieldset{padding:.65rem;border:1px solid #d9d5ca;border-radius:14px}.mail-compose legend{float:none;width:auto;margin:0;font-size:.72rem;font-weight:1000}.mail-compose fieldset>div{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.4rem}.mail-content{display:grid;grid-template-columns:minmax(240px,320px) 1fr;min-height:650px;overflow:hidden;border:1px solid #d9dada;border-radius:22px;background:white;box-shadow:0 10px 26px rgba(36,50,74,.07)}.mail-list{border-right:1px solid #ddd}.mail-list-heading{display:flex;justify-content:space-between;padding:.8rem;border-bottom:1px solid #ddd;background:#f2f3ef}.mail-list-item{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:.55rem;padding:.7rem;border-bottom:1px solid #e4e5e5;color:var(--ink);text-decoration:none}.mail-list-item:hover,.mail-list-item.is-open{color:var(--ink);background:#fff4d7}.mail-list-item.is-unread{border-left:5px solid #d85f51;background:#fffaf4}.mail-list-item h3{margin:.05rem 0;font-size:.85rem}.mail-list-item small{color:var(--muted);font-size:.65rem}.mail-avatar{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:#6e999c;color:white;font-weight:1000}.attachment-mark{padding:.2rem .35rem;border-radius:6px;background:#f0ce67;font-size:.55rem}.open-letter{padding:1.2rem}.open-letter>header{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.8rem;border-bottom:1px solid #d8d7d2}.open-letter h2{margin:.1rem 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:2rem}.open-letter header p{margin:0;color:var(--muted);font-size:.72rem}.letter-paper{min-height:260px;padding:1.4rem .5rem;background:repeating-linear-gradient(transparent 0 30px,#dbe4e5 31px);font-family:Georgia,"Times New Roman",serif;font-size:1rem;line-height:31px;white-space:pre-wrap}.letter-paper p{margin:0}.mail-attachments{display:grid;grid-template-columns:1fr auto;gap:.7rem;margin-top:1rem;padding:1rem;border:2px dashed #d1a843;border-radius:18px;background:#fff7d8}.mail-attachments>span{grid-column:1/-1}.mail-attachments>div{display:flex;align-items:center;gap:.7rem}.mail-attachments .item-art{width:65px}.mail-attachments.is-claimed{filter:grayscale(.5);opacity:.7}.mail-empty-reader{display:grid;align-content:center;justify-items:center;padding:2rem;color:var(--muted);text-align:center}.mail-empty-reader>span{display:grid;width:95px;height:70px;place-items:center;border:5px solid #d5b95f;background:#fff7d5;color:#7a6330;font-weight:1000;transform:rotate(-4deg)}
@media(max-width:1050px){.mail-layout{grid-template-columns:280px 1fr}.mail-content{grid-template-columns:240px 1fr}.mail-hero{grid-template-columns:110px 1fr}.mail-hero aside{grid-column:1/-1}.mail-postbox{transform:scale(.78)}}
@media(max-width:760px){.mail-layout{grid-template-columns:1fr}.mail-sidebar{grid-template-columns:1fr}.mail-compose{order:2}.mail-content{grid-template-columns:1fr;min-height:0}.mail-list{max-height:370px;overflow:auto;border-right:0;border-bottom:1px solid #ddd}.open-letter{min-height:430px}.mail-hero{grid-template-columns:80px 1fr;padding:1rem}.mail-postbox{left:-15px;transform:scale(.62)}.mail-hero h1{font-size:2.5rem}}
@media(max-width:480px){.mail-hero{display:block}.mail-postbox{display:none}.mail-attachments{grid-template-columns:1fr}.mail-attachments form,.mail-attachments button{width:100%}.open-letter>header{align-items:flex-start;flex-direction:column}.mail-compose fieldset>div{grid-template-columns:1fr}}
@media(max-width:767.98px){.nav-account{align-items:stretch}.nav-account .currency-strip{display:grid;grid-template-columns:1fr 1fr;width:100%}.nav-account .currency-pill{min-width:0}.trainer-menu,.trainer-menu-button,.trainer-dropdown{width:100%}.trainer-menu-button strong{max-width:calc(100% - 30px)}}

/* Creature-relative wearable fitting */
.pet-avatar-stage{--hat-left:50%;--hat-top:-3%;--hat-width:46%;position:relative;display:grid;width:min(100%,320px);aspect-ratio:320/220;place-items:center;transform-origin:50% 80%}.pet-avatar-stage .customizable-pet-art{width:100%;max-width:none;transform:scale(1.08)}.pet-avatar-stage .equipped-pet-hat{position:absolute;top:var(--hat-top);left:var(--hat-left);z-index:5;width:var(--hat-width);height:48%;max-width:none;object-fit:contain;transform:translateX(-50%);filter:drop-shadow(0 7px 5px rgba(36,50,74,.24));pointer-events:none}.pet-avatar-stage .equipped-pet-hat.item-art{top:var(--hat-top);left:var(--hat-left);width:var(--hat-width);height:48%;background-repeat:no-repeat;transform:translateX(-50%)}
.pet-avatar-stage.wearing-top-hat{--hat-top:-14%;--hat-width:38%}.pet-avatar-stage.wearing-sun-hat{--hat-top:-4%;--hat-width:56%}.pet-avatar-stage.wearing-berry-cap{--hat-top:-2%;--hat-width:39%}.pet-avatar-stage.wearing-moon-crown{--hat-top:-13%;--hat-width:35%}.pet-avatar-stage.wearing-storm-visor{--hat-top:3%;--hat-width:39%}.pet-avatar-stage.wearing-moss-hood{--hat-top:-1%;--hat-width:50%}.pet-avatar-stage.wearing-daisy-bonnet{--hat-top:-7%;--hat-width:62%}.pet-avatar-stage.wearing-sailor-cap{--hat-top:-6%;--hat-width:50%}.pet-avatar-stage.wearing-mushroom-beret{--hat-top:-7%;--hat-width:57%}.pet-avatar-stage.wearing-aviator-goggles{--hat-top:0%;--hat-width:50%}
.pet-avatar-stage.pet-species-zaplet,.pet-avatar-stage.pet-species-lunacress{--hat-top:5%}.pet-avatar-stage.pet-species-emberwhisp{--hat-top:0%}.pet-avatar-stage.pet-species-glimmerjaw{--hat-top:2%}.pet-avatar-stage.pet-species-veloroo{--hat-top:-1%}.pet-avatar-stage.pet-species-zaplet.wearing-sailor-cap,.pet-avatar-stage.pet-species-lunacress.wearing-sailor-cap{--hat-top:2%}.pet-avatar-stage.pet-species-pebblit.wearing-sailor-cap{--hat-top:-7%}
.pet-avatar-stage .pet-wearable{position:absolute}.pet-avatar-stage .wearable-glasses{top:39%;left:34%}.pet-avatar-stage .wearable-scarf{top:64%;left:33%}.pet-avatar-stage .wearable-badge{top:68%;right:30%}.reaction-favorite .pet-avatar-stage,.reaction-love .pet-avatar-stage{animation:pet-happy .65s ease 2}.reaction-liked .pet-avatar-stage,.reaction-dress .pet-avatar-stage{animation:pet-proud .8s ease}.reaction-disliked .pet-avatar-stage{animation:pet-nope .45s ease 2}.reaction-zoom .pet-avatar-stage{animation:pet-zoom .7s ease}.reaction-curious .pet-avatar-stage{animation:pet-tilt .8s ease}.reaction-favorite .customizable-pet-art,.reaction-love .customizable-pet-art,.reaction-liked .customizable-pet-art,.reaction-dress .customizable-pet-art,.reaction-disliked .customizable-pet-art,.reaction-zoom .customizable-pet-art,.reaction-curious .customizable-pet-art{animation:none}

/* Shared polish for dense gameplay screens. */
.admin-hero{padding:clamp(1.4rem,4vw,2.5rem);border-radius:28px;background:linear-gradient(130deg,#24324a,#436a73 60%,#efb85c);color:white;box-shadow:var(--shadow)}.admin-hero h1{margin:.2rem 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(2.5rem,6vw,4.5rem)}
.admin-stat-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.7rem;margin:1rem 0}.admin-stat-grid article{padding:1rem;border:1px solid var(--line);border-radius:18px;background:white}.admin-stat-grid strong,.admin-stat-grid span{display:block}.admin-stat-grid strong{font-size:1.45rem}.admin-stat-grid span{color:var(--muted);font-size:.7rem}.admin-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.admin-tool-grid form{display:grid;gap:.7rem}.admin-tool-grid label{font-size:.72rem;font-weight:900}.admin-tool-grid input{margin-top:.25rem}
.hat-list>*,.shop-inventory-grid>article,.inventory-grid>*{min-width:0}.hat-list img,.inventory-grid img{object-fit:contain}.interactive-pet-room{overflow:hidden}.battle-actions button{min-width:0;white-space:normal}
@media(max-width:900px){.admin-stat-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.admin-stat-grid{grid-template-columns:1fr 1fr}.admin-tool-grid{grid-template-columns:1fr}.site-nav-shell{padding-inline:.75rem}.site-nav-content{max-height:calc(100vh - 76px);overflow-y:auto}.interactive-pet-room{min-height:390px}.room-inventory,.hat-list,.shop-inventory-grid{max-width:100%;overflow:hidden}.battle-actions button{padding:.75rem .5rem}.item-art{flex:0 0 auto}}

/* Illustrated regional expeditions */
.explore-hero{min-height:410px;border:3px solid rgba(255,255,255,.85);isolation:isolate}.explore-landscape{background-image:linear-gradient(90deg,rgba(20,35,42,.24),transparent 58%),var(--region-art);background-position:center;background-size:cover;transform:scale(1.015);transition:transform 8s ease}.explore-hero:hover .explore-landscape{transform:scale(1.045)}.explore-landscape::before{position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(16,31,39,.32));content:""}.explore-atmosphere{position:absolute;inset:0;background:radial-gradient(circle at 18% 24%,rgba(255,255,255,.65) 0 2px,transparent 3px),radial-gradient(circle at 76% 36%,rgba(255,236,146,.8) 0 2px,transparent 3px);background-size:95px 80px,130px 110px;opacity:.6;animation:region-drift 12s linear infinite}.region-coast .explore-atmosphere{background-image:radial-gradient(ellipse at 30% 80%,rgba(255,255,255,.65) 0 2px,transparent 4px)}.region-mosswood .explore-atmosphere{filter:hue-rotate(35deg);opacity:.8}.region-peaks .explore-atmosphere{background-image:linear-gradient(110deg,transparent 45%,rgba(255,255,255,.35) 50%,transparent 55%);animation-duration:8s}.explore-hero-copy{border:1px solid rgba(255,255,255,.9);background:rgba(255,253,245,.9);box-shadow:0 18px 45px rgba(23,40,48,.22)}.explore-conditions span{border:1px solid rgba(255,255,255,.25);box-shadow:0 8px 25px rgba(20,35,42,.18)}
.region-tabs a{position:relative;display:grid;grid-template-columns:38px 1fr;overflow:hidden;box-shadow:0 7px 18px rgba(36,50,74,.08);transition:transform .18s ease,box-shadow .18s ease}.region-tabs a:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(36,50,74,.14)}.region-tabs b{grid-row:1/3;align-self:center;font-size:1.45rem}.region-tabs span,.region-tabs small{grid-column:2}.region-tabs a::after{position:absolute;right:-18px;bottom:-28px;width:68px;height:68px;border-radius:50%;background:var(--tab-glow,#91c788);opacity:.24;content:""}.region-tab-coast{--tab-glow:#4bb6d1}.region-tab-mosswood{--tab-glow:#557b54}.region-tab-peaks{--tab-glow:#9c8dcc}.region-guide-card{background:linear-gradient(135deg,#fff,#f4f6ed)}.region-guide-card img{padding:.4rem;border-radius:50%;background:radial-gradient(circle,#fff 35%,#e7efdc 36% 70%,transparent 71%)}
.region-tabs a{grid-template-columns:76px minmax(0,1fr);min-height:76px;padding:.45rem}.region-tabs a>img{grid-row:1/3;width:68px;height:68px;border-radius:12px;object-fit:cover}.region-tabs a>span,.region-tabs a>small{align-self:end;padding-inline:.35rem}.region-tabs a>small{align-self:start}.region-tabs a.is-current>img{outline:3px solid rgba(255,255,255,.75);outline-offset:-5px}
.region-travel-card>img{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.region-travel-card::before{z-index:1;inset:0;width:auto;height:auto;border-radius:0;background:linear-gradient(90deg,rgba(13,31,36,.82),rgba(13,31,36,.35) 72%,rgba(13,31,36,.12))}.region-travel-card::after{display:none}.region-travel-card>*:not(img){z-index:2;color:white;text-shadow:0 2px 8px rgba(0,0,0,.65)}.region-travel-card p{color:white}.region-travel-card:hover>img{transform:scale(1.06)}.region-travel-card:hover,.region-coast-card:hover{color:white}
.discovery-reveal:focus{outline:4px solid color-mix(in srgb,#ef7654 70%,white);outline-offset:5px}.discovery-reveal::after{position:absolute;inset:0;z-index:3;border:2px solid rgba(255,255,255,.65);border-radius:24px;pointer-events:none;content:""}.rarity-legendary .item-art{animation:item-float 1.5s ease-in-out infinite alternate}.rarity-rare .item-art{animation:item-float 2s ease-in-out infinite alternate}@keyframes item-float{to{transform:translateY(-8px) rotate(2deg)}}@keyframes region-drift{to{background-position:95px 80px,130px 110px}}
@media(max-width:600px){.explore-hero{min-height:440px}.explore-landscape{background-position:58% center}.region-coast .explore-landscape{background-position:center center}.explore-hero-copy{bottom:.8rem;left:.8rem;right:.8rem}.discovery-reveal{scroll-margin-block:80px}}
@media(prefers-reduced-motion:reduce){.explore-landscape,.explore-atmosphere,.discovery-reveal,.discovery-reveal .item-art{animation:none!important;transition:none!important}}

/* Explicit navigation affordance for expandable sections. */
.site-links .dropdown-toggle::after{display:none}.nav-dropdown-cue{position:relative;display:grid!important;width:20px;height:20px;margin-left:.15rem;place-items:center;border:1px solid color-mix(in srgb,var(--nav-accent,var(--brand)) 35%,white);border-radius:50%;background:color-mix(in srgb,var(--nav-accent,var(--brand)) 12%,white);transition:transform .2s ease,background .2s ease}.nav-dropdown-cue::before{width:6px;height:6px;margin-top:-3px;border-right:2px solid var(--nav-accent,var(--brand));border-bottom:2px solid var(--nav-accent,var(--brand));content:"";transform:rotate(45deg)}.site-links .dropdown-toggle[aria-expanded="true"] .nav-dropdown-cue{background:var(--nav-accent,var(--brand));transform:rotate(180deg)}.site-links .dropdown-toggle[aria-expanded="true"] .nav-dropdown-cue::before{border-color:white}.site-links .nav-item.dropdown{position:relative}.site-links .nav-item.dropdown::after{position:absolute;right:10px;bottom:-2px;left:10px;height:3px;border-radius:3px;background:var(--nav-accent,var(--brand));content:"";opacity:0;transform:scaleX(.4);transition:opacity .2s ease,transform .2s ease}.site-links .nav-item.dropdown:has(.dropdown-toggle[aria-expanded="true"])::after{opacity:1;transform:scaleX(1)}
@media(max-width:1399.98px){.site-links .nav-dropdown-cue{margin-left:auto}.site-links .nav-item.dropdown::after{right:1rem;left:1rem}}
@media(prefers-reduced-motion:reduce){.nav-dropdown-cue,.site-links .nav-item.dropdown::after{transition:none}}

/* Mobile navigation control remains visible without Bootstrap's image-based icon. */
.site-toggler{display:inline-flex!important;width:auto!important;min-width:112px;height:44px;padding:.4rem .55rem .4rem .75rem!important;align-items:center;justify-content:space-between;gap:.55rem;border:1.5px solid #34445b!important;border-radius:999px!important;background:rgba(255,253,247,.88)!important;color:#24324a!important;box-shadow:0 5px 14px rgba(36,50,74,.12);font-weight:900;line-height:1}.site-toggler-copy{display:block;flex:0 0 auto;font-size:.7rem;letter-spacing:.09em;text-transform:uppercase}.site-toggler-icon{display:flex;flex:0 0 28px;width:28px;height:28px;padding:6px;align-items:stretch;justify-content:center;flex-direction:column;gap:3px;border-radius:50%;background:#24324a}.site-toggler-icon i{display:block;width:100%;height:2px;flex:0 0 2px;border-radius:2px;background:#fff;transform-origin:center;transition:transform .2s ease,opacity .15s ease}.site-toggler[aria-expanded="true"]{background:#24324a!important;color:white!important;box-shadow:0 5px 14px rgba(36,50,74,.18)}.site-toggler[aria-expanded="true"] .site-toggler-icon{background:#ef7654}.site-toggler[aria-expanded="true"] .site-toggler-icon i:first-child{transform:translateY(5px) rotate(45deg)}.site-toggler[aria-expanded="true"] .site-toggler-icon i:nth-child(2){opacity:0}.site-toggler[aria-expanded="true"] .site-toggler-icon i:last-child{transform:translateY(-5px) rotate(-45deg)}.site-toggler:focus{box-shadow:0 0 0 3px rgba(239,118,84,.24)!important}.site-toggler:hover{background:#fff!important;transform:translateY(-1px)}.site-toggler[aria-expanded="true"]:hover{background:#24324a!important}
@media(max-width:480px){.site-toggler{min-width:54px;padding:.45rem!important}.site-toggler-copy{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}}
@media(prefers-reduced-motion:reduce){.site-toggler,.site-toggler-icon i{transition:none!important}}

/* Starfall Arcade card tables */
.game-night-hero{display:grid;grid-template-columns:1fr 190px;align-items:center;gap:1rem;overflow:hidden;padding:clamp(1.5rem,4vw,2.6rem);border:3px solid #f1d47c;border-radius:30px;background:radial-gradient(circle at 75% 20%,rgba(255,218,99,.25),transparent 22%),linear-gradient(135deg,#182f3d,#315765 58%,#b75e47);color:white;box-shadow:var(--shadow)}.game-night-hero h1{margin:.15rem 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(2.7rem,6vw,4.8rem);line-height:.95}.game-night-hero p{max-width:680px;margin:.6rem 0 0;color:#eaf1ec}.game-night-hero aside{padding:1rem;border:2px solid rgba(255,255,255,.55);border-radius:20px;background:rgba(11,27,36,.55);text-align:center}.game-night-hero aside span,.game-night-hero aside strong{display:block}.game-night-hero aside strong{font-size:2rem;color:#ffe083}.monty-hero{background:radial-gradient(circle at 72% 25%,rgba(255,225,117,.28),transparent 20%),linear-gradient(135deg,#273450,#695280 60%,#d87756)}
.card-table,.monty-table{margin:1rem 0;padding:clamp(1rem,3vw,2rem);border:8px solid #7b4e32;border-radius:34px;background:radial-gradient(circle at center,#2f856e,#17604f);box-shadow:inset 0 0 0 3px #d5a65c,0 18px 45px rgba(36,50,74,.2);color:white}.card-table>header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.card-table h2{margin:.1rem 0}.table-rules{padding:.55rem .8rem;border-radius:20px;background:rgba(12,53,45,.55);font-size:.72rem;font-weight:900}.empty-card-table{display:grid;min-height:400px;align-content:center;justify-items:center;text-align:center}.empty-card-table>span{display:grid;width:105px;height:105px;place-items:center;border:4px solid #efcd6c;border-radius:50%;background:#26384b;color:#ffe38a;font-family:Georgia,serif;font-size:3rem}.empty-card-table p{color:#d9eee5}.blackjack-hand{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:1rem;min-height:190px}.hand-label span,.hand-label strong{display:block}.hand-label span{font-size:.7rem;font-weight:900;text-transform:uppercase}.hand-label strong{font-size:2.2rem;color:#ffe187}.playing-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem}.playing-card{display:grid;width:92px;aspect-ratio:2/3;align-content:space-between;padding:.65rem;border:3px solid #f8eed7;border-radius:12px;background:#fffaf0;color:#26384b;box-shadow:0 9px 0 rgba(12,45,38,.28);animation:card-deal .35s ease both}.playing-card b{font-family:Georgia,serif;font-size:1.55rem}.playing-card span{font-size:2rem;text-align:center}.playing-card.is-hidden{place-items:center;background:repeating-linear-gradient(45deg,#31566a 0 8px,#efc55c 9px 12px);color:white}.table-divider{display:flex;align-items:center;gap:.7rem;color:#d9eee5}.table-divider::before,.table-divider::after{height:1px;flex:1;background:rgba(255,255,255,.25);content:""}.table-divider span{font-size:.7rem;font-weight:1000}.card-game-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1rem}.game-result{margin:1rem auto;padding:.85rem 1rem;border:2px solid #ffdf76;border-radius:16px;background:#fff6c9;color:#55451b;font-weight:1000;text-align:center;box-shadow:0 0 30px rgba(255,222,103,.35)}.game-result.is-win{animation:result-pop .55s cubic-bezier(.2,.9,.2,1)}
.monty-table{background:radial-gradient(circle at center,#5d4777,#34294e)}.monty-host{display:flex;align-items:center;justify-content:center;gap:1rem}.monty-host img{width:110px;height:100px;object-fit:contain;filter:drop-shadow(0 10px 10px rgba(0,0,0,.2))}.monty-host blockquote{max-width:520px;margin:0;padding:1rem;border-radius:18px;background:rgba(255,255,255,.12)}.monty-cards{display:grid;grid-template-columns:repeat(3,minmax(130px,190px));justify-content:center;gap:clamp(.7rem,3vw,2rem);margin:2rem 0}.monty-cards form{display:contents}.monty-card{position:relative;aspect-ratio:2/3;border:4px solid #f3d36d;border-radius:18px;background:linear-gradient(145deg,#dc6c54,#8d3f61);box-shadow:0 13px 0 #251d38,0 20px 30px rgba(0,0,0,.2);color:white;transition:transform .2s ease}.monty-card:not(:disabled):hover{transform:translateY(-10px) rotate(1deg)}.monty-card.is-chosen{outline:5px solid white;outline-offset:5px}.monty-card-back,.monty-card-face{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;font-size:3.3rem}.monty-card small{display:block;margin-top:.7rem;font-size:.7rem;font-weight:1000;text-transform:uppercase}.monty-card-face{background:#fff9dc;color:#564769;animation:card-flip .55s ease both}.is-shuffling .monty-card:nth-child(2){animation:monty-shuffle .8s ease .12s}.is-shuffling form:nth-child(3) .monty-card{animation:monty-shuffle .8s ease .25s}.arcade-card-blackjack{background:linear-gradient(145deg,#f7f3de,#dcefe6)}.arcade-card-monty{background:linear-gradient(145deg,#f7e8df,#e8dcf1)}
@keyframes card-deal{from{opacity:0;transform:translateY(-25px) rotate(-5deg)}}@keyframes card-flip{from{transform:rotateY(90deg)}to{transform:none}}@keyframes monty-shuffle{50%{transform:translateX(35%) rotate(7deg)}}@keyframes result-pop{from{opacity:0;transform:scale(.85)}to{transform:none}}
@media(max-width:650px){.game-night-hero{grid-template-columns:1fr}.game-night-hero aside{text-align:left}.blackjack-hand{grid-template-columns:1fr}.hand-label{text-align:center}.playing-card{width:70px}.monty-host{align-items:flex-start}.monty-host img{width:80px}.monty-cards{grid-template-columns:repeat(3,1fr);gap:.45rem}.monty-card{border-width:2px}.monty-card-back,.monty-card-face{font-size:2rem}.monty-card small{font-size:.55rem}.card-table,.monty-table{margin-inline:-.5rem;border-width:5px}}
@media(prefers-reduced-motion:reduce){.playing-card,.monty-card,.monty-card-face,.game-result{animation:none!important;transition:none!important}}

.ceremony-creature-select{border:2px solid color-mix(in srgb,var(--accent,#ff7a59) 35%,#d8dce0);border-radius:14px;background-color:#fffdf7;font-weight:800}.ceremony-creature-select:focus{border-color:var(--accent,#ff7a59);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent,#ff7a59) 16%,transparent)}

/* Creature scenes, square portrait normalization, and wearable anchor map. */
.creature-card{--scene-sky:#dff3ec;--scene-horizon:#a8d99b;--scene-ground:#7ebd70}.creature-card.creature-species-pebblit{--scene-sky:#f7dfac;--scene-horizon:#dca76d;--scene-ground:#9d7455}.creature-card.creature-species-fizzlet{--scene-sky:#fff0a9;--scene-horizon:#efbd55;--scene-ground:#7a6b7e}.creature-card.creature-species-mallowgleam{--scene-sky:#dff8f6;--scene-horizon:#b8e2e1;--scene-ground:#89c8a5}.creature-card.creature-species-bramblefin{--scene-sky:#c8f0eb;--scene-horizon:#78c8c2;--scene-ground:#3f9281}.creature-card.creature-species-emberwhisp{--scene-sky:#ffe0ad;--scene-horizon:#ef9661;--scene-ground:#9b5549}.creature-card.creature-species-tuffoodle{--scene-sky:#e8efba;--scene-horizon:#a8c774;--scene-ground:#668258}.creature-card.creature-species-lunacress{--scene-sky:#ddd8fa;--scene-horizon:#9f90d4;--scene-ground:#5c5588}.creature-card.creature-species-glimmerjaw{--scene-sky:#c6f3ef;--scene-horizon:#62c3c3;--scene-ground:#297987}.creature-card.creature-species-zaplet{--scene-sky:#d9efff;--scene-horizon:#8dc8ed;--scene-ground:#627eb0}.creature-card.creature-species-veloroo{--scene-sky:#e5f6c9;--scene-horizon:#a8d77a;--scene-ground:#6eaa66}
.creature-portrait{isolation:isolate;min-height:280px;border:2px solid rgba(255,255,255,.85);background:linear-gradient(180deg,var(--scene-sky) 0 58%,var(--scene-horizon) 59% 70%,var(--scene-ground) 71%);box-shadow:inset 0 -28px 45px rgba(34,64,54,.12)}.creature-portrait::before{position:absolute;z-index:0;right:-8%;bottom:18%;left:-8%;height:35%;border-radius:50% 50% 0 0;background:color-mix(in srgb,var(--scene-ground) 72%,white);content:"";transform:rotate(-3deg)}.creature-portrait::after{position:absolute;z-index:0;top:12%;left:9%;width:72px;height:25px;border-radius:999px;background:rgba(255,255,255,.58);box-shadow:42px 12px 0 -5px rgba(255,255,255,.48),170px 40px 0 -7px rgba(255,255,255,.42);content:""}.creature-portrait>img,.creature-portrait .pet-avatar-stage{position:relative;z-index:2}.creature-portrait>img{width:min(90%,300px);height:260px;object-fit:contain;object-position:center bottom}.adoption-card .color-preview-row img{object-fit:contain}.living-pet-portrait{min-height:390px;padding:1.2rem 1rem 4.5rem}.living-pet-portrait::before{bottom:12%}
.pet-avatar-stage{--head-x:50%;--head-y:4%;--head-w:38%;--face-left:35%;--face-top:35%;--glasses-w:25%;--neck-left:34%;--neck-top:61%;--neck-w:34%;width:min(100%,310px);aspect-ratio:1;place-items:center}.pet-avatar-stage .customizable-pet-art{width:100%;height:100%;object-fit:contain;object-position:center;transform:none}.pet-avatar-stage .equipped-pet-hat,.pet-avatar-stage .equipped-pet-hat.item-art,.room-pet-stage .equipped-pet-hat,.room-pet-stage .equipped-pet-hat.item-art{top:var(--head-y);left:var(--head-x);width:var(--head-w);height:32%;object-fit:contain;background-repeat:no-repeat;transform:translateX(-50%) scale(var(--hat-scale,1));transform-origin:50% 75%}.wearing-top-hat{--hat-scale:.9}.wearing-sun-hat{--hat-scale:1.35}.wearing-berry-cap{--hat-scale:.95}.wearing-moon-crown{--hat-scale:.9}.wearing-storm-visor{--hat-scale:1}.wearing-moss-hood{--hat-scale:1.22}.wearing-daisy-bonnet{--hat-scale:1.38}.wearing-sailor-cap{--hat-scale:1.1}.wearing-mushroom-beret{--hat-scale:1.25}.wearing-aviator-goggles{--hat-scale:1.1}
.pet-avatar-stage.pet-species-pebblit,.room-pet.pet-species-pebblit{--head-x:50%;--head-y:8%;--head-w:37%;--face-left:36%;--face-top:37%;--neck-left:35%;--neck-top:62%}.pet-avatar-stage.pet-species-fizzlet,.room-pet.pet-species-fizzlet{--head-x:72%;--head-y:3%;--head-w:32%;--face-left:65%;--face-top:36%;--glasses-w:23%;--neck-left:61%;--neck-top:58%;--neck-w:29%}.pet-avatar-stage.pet-species-mallowgleam,.room-pet.pet-species-mallowgleam{--head-x:61%;--head-y:8%;--head-w:37%;--face-left:52%;--face-top:38%;--glasses-w:25%;--neck-left:51%;--neck-top:57%;--neck-w:31%}.pet-avatar-stage.pet-species-bramblefin,.room-pet.pet-species-bramblefin{--head-x:40%;--head-y:7%;--head-w:36%;--face-left:29%;--face-top:35%;--glasses-w:25%;--neck-left:30%;--neck-top:54%;--neck-w:29%}.pet-avatar-stage.pet-species-emberwhisp,.room-pet.pet-species-emberwhisp{--head-x:55%;--head-y:5%;--head-w:37%;--face-left:45%;--face-top:35%;--glasses-w:25%;--neck-left:43%;--neck-top:56%;--neck-w:29%}.pet-avatar-stage.pet-species-tuffoodle,.room-pet.pet-species-tuffoodle{--head-x:68%;--head-y:6%;--head-w:34%;--face-left:58%;--face-top:36%;--glasses-w:23%;--neck-left:53%;--neck-top:56%;--neck-w:29%}.pet-avatar-stage.pet-species-lunacress,.room-pet.pet-species-lunacress{--head-x:65%;--head-y:1%;--head-w:31%;--face-left:55%;--face-top:32%;--glasses-w:23%;--neck-left:51%;--neck-top:52%;--neck-w:28%}.pet-avatar-stage.pet-species-glimmerjaw,.room-pet.pet-species-glimmerjaw{--head-x:62%;--head-y:7%;--head-w:37%;--face-left:51%;--face-top:35%;--glasses-w:24%;--neck-left:47%;--neck-top:55%;--neck-w:31%}.pet-avatar-stage.pet-species-zaplet,.room-pet.pet-species-zaplet{--head-x:40%;--head-y:7%;--head-w:34%;--face-left:29%;--face-top:38%;--glasses-w:24%;--neck-left:28%;--neck-top:57%;--neck-w:29%}.pet-avatar-stage.pet-species-veloroo,.room-pet.pet-species-veloroo{--head-x:49%;--head-y:2%;--head-w:32%;--face-left:39%;--face-top:30%;--glasses-w:23%;--neck-left:36%;--neck-top:47%;--neck-w:27%}
.pet-avatar-stage .wearable-glasses,.room-pet-stage .wearable-glasses{top:var(--face-top);left:var(--face-left);width:var(--glasses-w);transform-origin:left center}.pet-avatar-stage .wearable-scarf,.room-pet-stage .wearable-scarf{top:var(--neck-top);left:var(--neck-left);width:var(--neck-w)}.pet-avatar-stage .wearable-badge,.room-pet-stage .wearable-badge{top:calc(var(--neck-top) + 8%);right:auto;left:calc(var(--neck-left) + var(--neck-w) - 5%)}
.room-pet{bottom:4%;width:clamp(145px,20vw,220px)}.room-pet-stage{position:relative;width:100%;aspect-ratio:1}.room-pet-stage .room-pet-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom}.room-pet-stage .equipped-pet-hat{position:absolute;z-index:5;max-width:none;filter:drop-shadow(0 5px 4px rgba(36,50,74,.22))}.room-pet-stage .pet-wearable{position:absolute;z-index:6;transform:scale(.72);transform-origin:left top}.room-pet>strong{position:relative;z-index:7;margin-top:-.65rem}.room-pet img{max-width:none}.room-pet-stage .equipped-pet-hat.item-art{position:absolute}
@media(max-width:650px){.creature-portrait{min-height:235px}.creature-portrait>img{height:220px}.living-pet-portrait{min-height:345px}.room-pet{width:135px;bottom:5%}.room-pet-stage .pet-wearable{transform:scale(.58)}}

/* Developer story and global footer */
.developer-hero{position:relative;display:grid;grid-template-columns:minmax(190px,270px) 1fr;align-items:center;gap:clamp(1.4rem,5vw,4rem);overflow:hidden;padding:clamp(1.5rem,5vw,4rem);border:3px solid #f0cf70;border-radius:34px;background:radial-gradient(circle at 78% 12%,rgba(255,221,111,.3),transparent 24%),linear-gradient(135deg,#20324c,#3c6870 62%,#d76f55);color:white;box-shadow:var(--shadow)}.developer-hero::before{position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.16) 1.5px,transparent 1.6px);background-size:28px 28px;content:"";mask-image:linear-gradient(90deg,transparent,#000)}.developer-portrait{position:relative;display:grid;width:min(100%,245px);aspect-ratio:1;place-items:center;border:8px solid rgba(255,255,255,.82);border-radius:42% 58% 55% 45%;background:linear-gradient(145deg,#f5c65b,#ef7654);box-shadow:0 24px 45px rgba(16,32,48,.3);transform:rotate(-3deg)}.developer-portrait::before,.developer-portrait::after{position:absolute;width:35%;height:35%;border:5px solid rgba(255,255,255,.28);border-radius:50%;content:""}.developer-portrait::before{top:9%;right:10%}.developer-portrait::after{bottom:8%;left:8%}.developer-portrait span{position:relative;z-index:1;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(3.2rem,7vw,5.5rem);font-weight:900;text-shadow:0 6px 0 rgba(110,48,45,.25)}.developer-portrait i{position:absolute;right:-10px;bottom:18%;width:44px;height:44px;border:5px solid white;border-radius:50%;background:#7bbc82;box-shadow:0 7px 0 rgba(25,47,54,.2)}.developer-intro{position:relative;z-index:2;max-width:760px}.developer-intro .eyebrow{color:#ffe18c}.developer-intro h1{margin:.2rem 0 .8rem;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(3rem,7vw,5.8rem);line-height:.9}.developer-lead{max-width:690px;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.6;color:#edf5f2}.developer-linkedin{display:inline-flex;align-items:center;gap:.65rem;margin-top:.6rem;padding:.8rem 1.1rem;border:2px solid white;border-radius:999px;background:white;color:#26374d;font-weight:1000;text-decoration:none;box-shadow:0 8px 0 rgba(20,39,51,.22);transition:transform .18s ease,box-shadow .18s ease}.developer-linkedin:hover{color:#26374d;transform:translateY(-3px);box-shadow:0 11px 0 rgba(20,39,51,.22)}.developer-linkedin span{display:grid;width:25px;height:25px;place-items:center;border-radius:50%;background:#0a66c2;color:white}.developer-sparkles i{position:absolute;color:#ffe28c;font-style:normal}.developer-sparkles i:first-child{top:11%;left:4%;font-size:1.8rem}.developer-sparkles i:nth-child(2){right:5%;bottom:12%;font-size:2.4rem}.developer-sparkles i:last-child{top:16%;right:28%;font-size:1.15rem}.developer-story-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr);gap:1rem;margin:1rem 0}.developer-story,.developer-details{padding:clamp(1.3rem,4vw,2.4rem);border:1px solid var(--line);border-radius:28px;background:#fffdf7;box-shadow:0 12px 28px rgba(36,50,74,.08)}.developer-story h2,.developer-values h2{margin:.15rem 0 .8rem;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:clamp(2rem,4vw,3.2rem)}.developer-story p{max-width:800px;line-height:1.75;color:var(--muted)}.developer-details{background:linear-gradient(155deg,#edf5e8,#fff9df)}.developer-details dl{display:grid;gap:.65rem;margin:.8rem 0 0}.developer-details dl div{padding:.75rem;border-bottom:1px solid rgba(36,50,74,.12)}.developer-details dl div:last-child{border:0}.developer-details dt{font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.developer-details dd{margin:.1rem 0 0;font-family:"Palatino Linotype","Book Antiqua",serif;font-size:1.15rem;font-weight:900;color:#26374d}.developer-values{margin:1rem 0 2rem;padding:clamp(1.3rem,4vw,2.4rem);border-radius:28px;background:#f1ead9}.developer-values>div{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.developer-values article{padding:1.2rem;border:1px solid #ded4bd;border-radius:20px;background:#fffdf8}.developer-values article>span{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;background:#ef7654;color:white;font-size:1.2rem;font-weight:1000;box-shadow:0 5px 0 #c95442}.developer-values h3{margin:.85rem 0 .35rem;font-size:1rem}.developer-values p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.55}.site-footer{margin-top:2rem;border-top:1px solid #d9d4c7;background:#f5f0e5}.site-footer-inner{display:flex;min-height:130px;padding-block:1.5rem;align-items:center;justify-content:space-between;gap:1.5rem}.site-footer-brand{display:flex;align-items:center;gap:.75rem}.site-footer-brand>span:last-child{display:grid}.site-footer-brand strong{font-family:"Palatino Linotype","Book Antiqua",serif;font-size:1.15rem;color:#26374d}.site-footer-brand small{color:var(--muted)}.site-footer nav{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem}.site-footer nav a{color:#43556b;font-size:.76rem;font-weight:900;text-decoration:none}.site-footer nav a:hover{color:#d85f4a;text-decoration:underline}
@media(max-width:720px){.developer-hero{grid-template-columns:1fr;text-align:center}.developer-portrait{width:150px;margin:auto}.developer-intro h1{font-size:3rem}.developer-linkedin{justify-content:center}.developer-story-grid{grid-template-columns:1fr}.developer-values>div{grid-template-columns:1fr}.site-footer-inner{align-items:flex-start;flex-direction:column}.site-footer nav{flex-direction:column}.site-footer-brand small{max-width:220px}}@media(prefers-reduced-motion:reduce){.developer-linkedin{transition:none}}
