body .topbar:has(.park-nav) {
  display:flex;
  max-width:1180px;
  min-height:60px;
  padding:8px clamp(10px,3vw,24px);
  gap:10px;
}
.park-nav,.top-actions { display:flex; align-items:center; gap:7px; }
.park-control {
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  min-height:44px; padding:0 13px; border:1px solid #d9e8dc; border-radius:16px;
  background:#fffefa; color:#315e54; font-size:14px; font-weight:800;
  box-shadow:0 2px 0 #cfe0d5; white-space:nowrap;
}
.park-control[hidden] { display:none; }
.park-control svg,.park-result-actions svg { width:19px; height:19px; flex:none; }
.park-book-icon { width:21px; height:23px; object-fit:contain; }
.park-control:hover { background:#f0faf4; }
.park-sound { padding:0; width:44px; }
.park-sound[aria-pressed=false] { color:#8b635d; background:#fff3ec; }
.park-result-actions .capsule { display:inline-flex; align-items:center; justify-content:center; gap:7px; }
.game-header:has(.game-title:only-child) { display:block; }
.spot-player .game-header:has(.game-title:only-child) .game-title { margin-inline:3px; }
.hide-catalog-heading:has(h1:first-child) { display:block; }
.hide-catalog-heading h1 + p { margin-top:5px; }
.park-level-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; max-width:810px; margin:auto; }

.park-profile,.park-rewards { display:none; }
.park-home-page {
  --park-purple:#46257b;
  background:#eee6fa;
  color:var(--park-purple);
}
.park-home-page .topbar:has(.park-nav) {
  min-height:78px;
  max-width:1136px;
  padding:10px clamp(10px,2.8vw,32px);
  background:linear-gradient(115deg,#d3e6b7,#9ed8ff 65%,#c3e3ff);
}
.park-home-page .park-nav { display:none; }
.park-home-page .park-profile {
  display:flex;
  align-items:center;
  gap:8px;
  padding:3px 12px 3px 3px;
  border-radius:999px;
  background:#fffdf5;
  font-size:clamp(13px,2vw,19px);
  font-weight:900;
  white-space:nowrap;
  box-shadow:0 4px 10px #221a5150;
}
.park-profile img {
  width:clamp(32px,5vw,52px);
  height:auto;
  border-radius:50%;
}
.park-profile span span { color:#ef4f72; }
.park-home-page .park-control {
  min-height:44px;
  padding:0 10px;
  border:2px solid #fffaf8;
  border-radius:16px;
  color:var(--park-purple);
  background:linear-gradient(#fff,#eee6ff);
  box-shadow:0 3px 0 #3b5ea24a;
}
.park-home-page .park-rewards { display:inline-flex; }
.park-home-page .park-sound[aria-pressed=false] { background:#ffebe0; color:#8b4e3d; }
.park-home-page main {
  max-width:1136px;
  padding:0 0 clamp(62px,10vw,115px);
  background:url("assets/park/storybook-footer.webp") center bottom / 100% auto no-repeat,
    linear-gradient(#8dcffc 28%,#b4d479 55%,#eae3fa 67%,#fff4ee);
}
.park-visually-hidden {
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
}
.park-welcome-art { display:block; width:100%; height:auto; }

.park-games {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(8px,1.45vw,17px);
  padding:0 clamp(12px,3vw,34px) clamp(10px,1.7vw,19px);
}
.park-game {
  --tile:#c6a2ff;
  --tile-shadow:#9b70d6;
  --tile-ink:#46257b;
  position:relative;
  display:grid;
  align-content:start;
  min-width:0;
  padding:0 0 clamp(10px,1.65vw,19px);
  overflow:hidden;
  text-align:center;
  color:var(--tile-ink);
  border:3px solid #fff9e8;
  border-radius:clamp(16px,3.5vw,40px);
  background:linear-gradient(#fff6,#fff0 44%),var(--tile);
  box-shadow:inset 0 -7px 0 var(--tile-shadow),0 5px 8px #37451838;
  transition:transform .18s ease;
}
.park-game:hover { transform:translateY(-3px); }
.park-game-hide { --tile:#ffcc89; --tile-shadow:#df9d56; --tile-ink:#773416; }
.park-game-puzzle { --tile:#cbe68b; --tile-shadow:#9bb853; --tile-ink:#4a4c22; }
.park-game-stickers { --tile:#ffaec5; --tile-shadow:#df829f; --tile-ink:#772354; }
.park-game-art {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:2.04;
  object-fit:cover;
  mask-image:linear-gradient(black 84%,transparent);
}
.park-game-label { display:grid; gap:4px; padding:0 7px; }
.park-game-label strong {
  font-size:clamp(17px,2.7vw,31px);
  font-weight:950;
  paint-order:stroke fill;
  -webkit-text-stroke:3px #fff8ee;
}
.park-game-label small { font-size:clamp(12px,1.35vw,16px); line-height:1.35; font-weight:700; }
.park-game > svg { position:absolute; top:9px; right:9px; width:16px; height:16px; filter:drop-shadow(0 0 2px white); }

.park-adventure {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:clamp(122px,17.4vw,198px);
  margin:clamp(10px,2.4vw,27px) clamp(12px,3.5vw,40px) 0;
  padding:16px clamp(12px,2.45vw,28px) 16px 33%;
  border:4px solid #fffaf5;
  border-radius:clamp(22px,5vw,58px);
  color:#fffbee;
  background:
    linear-gradient(90deg,transparent 23%,#263e66 35%,#263e66 63%,transparent 77%),
    url("assets/park/storybook-banner.webp") left center / auto 100% no-repeat,
    url("assets/park/storybook-star.webp") 78% center / auto 100% no-repeat,
    #263e66;
  box-shadow:0 5px 22px #4b2c6540;
}
.park-adventure h2 {
  margin:0;
  font-size:clamp(23px,3.15vw,36px);
  line-height:1.2;
  font-weight:950;
  text-shadow:0 3px 0 #422165;
}
.park-adventure p { margin:7px 0 0; font-size:clamp(13px,1.6vw,18px); font-weight:650; }
.park-adventure-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  flex:none;
  min-height:48px;
  padding:0 clamp(10px,1.75vw,20px);
  border:3px solid #fff5cd;
  border-radius:999px;
  color:#6b3510;
  background:linear-gradient(#ffe788,#ffc83d);
  font-weight:900;
  box-shadow:0 4px 0 #b87322;
  white-space:nowrap;
}
.park-adventure-button:hover { background:#ffe69e; }
.park-adventure-button svg { width:17px; height:17px; }

.park-achievements {
  margin:clamp(14px,2vw,24px) clamp(12px,5vw,57px) 0;
  padding:clamp(12px,2.35vw,27px);
  border-radius:clamp(20px,3vw,36px);
  background:#fffbffac;
}
.park-achievements h2 { margin:0 0 10px; font-size:clamp(20px,2.6vw,29px); }
.park-achievements ul {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:clamp(8px,1.4vw,16px);
  padding:0;
  margin:0;
  list-style:none;
}
.park-achievements li {
  display:flex;
  align-items:center;
  gap:clamp(6px,1vw,12px);
  min-width:0;
  padding:clamp(7px,1.4vw,16px);
  border-radius:clamp(12px,2vw,24px);
  background:#fffaf8;
}
.park-achievements li div { display:grid; gap:3px; font-size:clamp(12px,1.6vw,17px); }
.park-achievements li div span { font-weight:800; }
.park-achievement-icon {
  display:grid;
  place-items:center;
  flex:none;
  border-radius:50%;
  width:1.6em;
  height:1.6em;
  font-size:clamp(18px,3.2vw,36px);
  background:#fff0d4;
}
.park-achievements li:nth-child(2) .park-achievement-icon { background:#e3efff; }
.park-achievements li:nth-child(3) .park-achievement-icon { background:#e9f4dc; }
.park-achievements li:nth-child(4) .park-achievement-icon { background:#fde6ed; }

@media(max-width:640px) {
  .park-home-page .topbar:has(.park-nav) { min-height:60px; }
  .park-games,.park-achievements ul { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .park-adventure {
    position:relative;
    display:grid;
    justify-items:start;
    gap:10px;
    padding-left:clamp(96px,33%,170px);
    background:linear-gradient(90deg,#263e6655,#282850f5 40%),
      url("assets/park/storybook-banner.webp") left center / auto 100% no-repeat #342654;
  }
  .park-adventure::before {
    content:"";
    position:absolute;
    top:50%;
    left:10px;
    width:clamp(68px,20vw,110px);
    aspect-ratio:1;
    transform:translateY(-50%);
    border:3px solid #fff0ba;
    border-radius:50%;
    background:url("assets/park/storybook-mascot.webp") center / cover;
    box-shadow:0 4px 12px #25144766;
  }
}
@media(max-width:350px) {
  .park-home-page .topbar:has(.park-nav) { gap:4px; padding-inline:7px; }
  .park-home-page .park-profile { gap:4px; padding-right:7px; font-size:12px; }
  .park-home-page .park-control { padding:0 6px; }
  .park-home-page .park-control svg,.park-home-page .park-book-icon { width:16px; }
  .park-home-page .top-actions { gap:4px; }
  .park-home-page .park-sound { width:36px; }
}
@media(max-width:485px) {
  .park-level-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(orientation:landscape) and (max-height:600px) {
  body .topbar:has(.park-nav) { min-height:48px; padding-block:3px; }
  .park-control { min-height:40px; }
  .cake-canvas { width:min(100%,max(140px,calc(100dvh - 242px))); }
}
