/* Four approved asset packages. Layout, type, progress and controls remain live. */
:root {
  --polish-paper: #fffaf0;
  --polish-gold: #e1b35c;
  --polish-shadow: 0 7px 0 #ae6a2420, 0 18px 36px #6c451513;
}
body.has-polish::before { display: none; }
.world-scenery {
  position: absolute;
  z-index: 0;
  inset: 0 0 auto;
  height: 1000px;
  overflow: hidden;
  pointer-events: none;
  background: linear-gradient(180deg, #fff9ec08 0%, #fff9ec14 26%, #fff9ecb0 56%, #fff9ec 93%), url('../assets/polish/backgrounds/candi.webp') center top / auto 900px no-repeat, url('../assets/polish/backgrounds/langit.webp') center top / cover;
}
body[data-page='gameplay'] .world-scenery { display: none; }
body.has-polish .site-header {
  border-color: #fff8dc;
  background: #fffaf2fa;
  box-shadow: 0 5px 0 #af75252b, 0 12px 28px #58401912;
}
.kit-icon { object-fit: contain; border-radius: 0 !important; }
body.has-polish .brand-mark { background: #ffecbb; border-color: #e7be70; }
body.has-polish .brand-mark .kit-icon { width: 30px; height: 30px; }
body.has-polish .brand strong { color: #9b410f; }
body.has-polish .desktop-nav { gap: 8px; }
body.has-polish .desktop-nav :is(a, button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 16px;
  min-height: 46px;
  border-radius: 16px;
  background: #fffdf5;
  border: 1.5px solid #ded0b0;
  box-shadow: 0 3px 0 #dac89f, inset 0 1px 0 #ffffff;
  color: #583a1b;
  font: 800 16px/1.2 var(--font-play);
  text-decoration: none;
  transition: transform 140ms ease, background 140ms ease, box-shadow 140ms ease, border-color 140ms ease;
}
body.has-polish .desktop-nav :is(a, button):hover {
  background: #fff4d2;
  border-color: #cb9e4d;
  color: #3b2006;
  transform: translateY(-2px);
  box-shadow: 0 5px 0 #cfb683;
}
body.has-polish .desktop-nav :is(a, button):active {
  transform: translateY(2px);
  box-shadow: 0 1px 0 #cfb683;
}
body.has-polish .desktop-nav :is([aria-current='page'], .active, .is-active) {
  background: linear-gradient(180deg, #ffd978, #f8ab28);
  border: 2px solid #b56c0b !important;
  color: #421f02 !important;
  box-shadow: 0 3px 0 #9c5a03, inset 0 2px 0 #fff8d6;
}
body.has-polish .desktop-nav .kit-icon { display: inline-block; width: 24px; height: 24px; flex-basis: 24px; }
body.has-polish .mobile-nav {
  gap: 6px;
  padding: 8px 10px;
  background: #fffcf4fc;
  border-color: #fff8e3;
}
body.has-polish .mobile-nav :is(a, button) {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 3px;
  min-height: 54px;
  padding: 6px 4px;
  border-radius: 16px;
  background: #fffdf6;
  border: 1.5px solid #e7d5b4;
  box-shadow: 0 2px 0 #dac49a;
  color: #634728;
  font: 800 11px/1.1 var(--font-body);
  text-decoration: none;
  transition: transform 140ms, background 140ms;
}
body.has-polish .mobile-nav :is(a, button):active {
  transform: translateY(2px);
  box-shadow: 0 1px 0 #dac49a;
}
body.has-polish .mobile-nav :is([aria-current='page'], .active, .is-active) {
  background: linear-gradient(180deg, #ffd779, #f7a927);
  border: 1.5px solid #b76e0c !important;
  color: #421f02 !important;
  box-shadow: 0 3px 0 #9e5a02, inset 0 2px 0 #fff9da;
}
body.has-polish .mobile-nav .kit-icon { width: 28px; height: 28px; flex-basis: 28px; }
body.has-polish .btn {
  --button-top: #fff7dc;
  --button-bottom: #f6d997;
  --button-border: #bb8740;
  --button-shadow: #c4954f;
  --button-ink: #4b2b16;
  border: 2px solid var(--button-border) !important;
  border-image: none;
  border-radius: 20px;
  padding: 11px 22px;
  min-height: 52px;
  background-color: var(--button-bottom);
  background-image: linear-gradient(180deg, var(--button-top), var(--button-bottom));
  box-shadow: 0 4px 0 var(--button-shadow), inset 0 1px 0 #ffffffaa, 0 6px 12px #6d451317;
  color: var(--button-ink) !important;
  text-shadow: 0 1px #ffffff38;
  filter: none;
  transition: transform 140ms ease, box-shadow 140ms ease, filter 140ms ease;
}
body.has-polish .btn-primary { --button-top: #ffd368; --button-bottom: #f28d1a; --button-border: #ad5b0c; --button-shadow: #c66a0e; --button-ink: #482205; }
body.has-polish .btn-green { --button-top: #9ae78b; --button-bottom: #46b96b; --button-border: #267644; --button-shadow: #26854c; --button-ink: #092711; }
body.has-polish .btn-quiet { --button-top: #fff9e9; --button-bottom: #f2e3be; --button-border: #cfb37f; --button-shadow: #d4bb87; }
body.has-polish .btn:hover:not(:disabled) { filter: brightness(1.05); transform: translateY(-2px); box-shadow: 0 6px 0 var(--button-shadow), inset 0 1px 0 #ffffffaa, 0 8px 14px #6d451322; }
body.has-polish .btn:active:not(:disabled) { filter: brightness(.97); transform: translateY(2px); box-shadow: 0 2px 0 var(--button-shadow); }
body.has-polish .btn:disabled { filter: saturate(.5); opacity: .72; transform: none; cursor: not-allowed; box-shadow: 0 2px 0 var(--button-shadow); }
body.has-polish .topic-card[data-topic='pandawa-lima'] .btn { --button-top: #d6afff; --button-bottom: #b276ec; --button-border: #754499; --button-shadow: #8951ae; --button-ink: #321445; }
body.has-polish .topic-card[data-topic='punakawan'] .btn { --button-top: #a2e4ff; --button-bottom: #49b3f3; --button-border: #2676b4; --button-shadow: #267db8; --button-ink: #092b4b; }
body.has-polish .text-link {
  min-height: 44px;
  padding: 9px 14px;
  border: 1.5px solid #c9b17a;
  border-radius: 14px;
  background: linear-gradient(#fffdf3, #f8e9c4);
  background-color: #f8e9c4;
  box-shadow: 0 3px 0 #d5be87;
  font-size: 14px;
  text-decoration: none;
}
body.has-polish .text-link:hover { background: #fff0bf; transform: translateY(-1px); box-shadow: 0 4px 0 #d5be87; }
body.has-polish .text-link:active { transform: translateY(2px); box-shadow: 0 1px 0 #d5be87; }
body.has-polish :is(.btn,.text-link,.icon-btn,.filter-btn,.story-tab,.answer-option,.character-row,.aksara-tabs button,.tray-filters button):focus-visible { outline: 3px solid #1659a4; outline-offset: 4px; }
body.has-polish .filter-tabs { gap: 7px; padding: 8px; }
body.has-polish .filter-btn { border: 1.5px solid #dbc28c; background: #fffaf0; box-shadow: 0 2px 0 #dfc58e; }
body.has-polish .filter-btn:hover { background: #fff1c8; }
body.has-polish .filter-btn[aria-pressed='true'] { border-color: #b47a1f; background: #ffd67b; box-shadow: inset 0 -3px #cf951f26, 0 2px 0 #d7a343; }
body.has-polish .aksara-tabs { gap: 10px; padding: 10px; background: #eadbb9; }
body.has-polish .aksara-tabs button { border: 1.5px solid #cfb580; background: #fffaf0; box-shadow: 0 3px 0 #ceb17b; }
body.has-polish .aksara-tabs button[aria-pressed='true'] { color: #17452b; border-color: #34835a; background: #daf2db; box-shadow: inset 0 -3px #64ad6c26, 0 3px 0 #79a879; }
body.has-polish .tray-filters button { border: 1.5px solid #d6b77d; background: #fff7e6; min-height: 44px; box-shadow: 0 2px 0 #d2b481; }
body.has-polish .tray-filters button[aria-pressed='true'] { border-color: #4b9363; background: #d9efd9; color: #214f30; }
body.has-polish .story-tab { background: #fffaf0; border-color: #d2b47a; }
body.has-polish .story-tab[aria-current='page'] { background: #ffe09b; border-color: #b17a2a; box-shadow: 0 4px 0 #d5a451; }
body.has-polish .section-heading > .text-link { max-width: none; min-width: 104px; flex-shrink: 0; font-size: 14px; }
body.has-polish .collection-greeting .text-link { margin-top: 8px; font-size: 13px; }
body.has-polish .catalog-toolbar > .text-link, body.has-polish .site-footer .text-link, body.has-polish .local-note .text-link { font-size: 13px; }
body.has-polish #modal .dialog-close { color: #78341e; border-color: #c89962; background: #fff0d2; box-shadow: 0 3px 0 #d4ad79; }
body.has-polish .story-quiz-options .btn.is-correct { --button-art: none; --button-top: #e1f7d8; --button-bottom: #b9e5aa; --button-border: #348348; --button-shadow: #73a863; --button-ink: #1a4f24; opacity: 1; filter: none; }
body.has-polish .story-quiz-options .btn.is-wrong { --button-art: none; --button-top: #fff0e6; --button-bottom: #f3c9b5; --button-border: #b75b3a; --button-shadow: #ca8b6f; --button-ink: #75361e; }
body.has-polish .page-intro h1 { color: #542608; text-shadow: 0 3px #fffcf4, 3px 0 #fffcf4, -3px 0 #fffcf4, 0 -3px #fffcf4; }
body.has-polish .page-intro p:not(.eyebrow) { color: #51432d; }
body.has-polish .page-intro .eyebrow { color: #325831; }
body.has-polish .welcome-hero { grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr); min-height: 515px; gap: 25px; padding-top: 32px; }
body.has-polish .hero-copy {
  padding: 27px 25px 24px;
  background: #fffaf0f0;
  border: 12px solid transparent;
  border-image: url('../assets/polish/ui/panels/panel_krem.svg') 65 fill / 24px / 0 stretch;
  border-radius: 36px;
  box-shadow: var(--polish-shadow);
}
body.has-polish .hero-copy h1 { font-size: clamp(49px, 5vw, 73px); color: #562b10; }
body.has-polish .hero-copy h1 span { color: #ae420f; }
body.has-polish .hero-subtitle { color: #3f5a36; font-size: 20px; margin-top: 19px !important; }
body.has-polish .hero-description { font-size: 14px; }
body.has-polish .hero-actions { gap: 10px; }
body.has-polish .hero-actions .btn { font-size: 19px; min-width: 0; padding: 2px 10px; }
body.has-polish .hero-actions .btn-primary { flex: 1; }
body.has-polish .hero-actions .btn-secondary { flex: 1; }
body.has-polish .hero-world { height: 453px; align-self: center; }
body.has-polish .hero-orbit { inset: 36px 0 22px; background: #ffffff69; border: 2px solid #fff5d0b3; box-shadow: inset 0 0 0 8px #fff8d64d; transform: rotate(-4deg); }
.hero-cast { position: absolute; z-index: 1; width: 100%; height: 245px; bottom: 130px; left: 0; }
.hero-cast .adventure-art { width: 100%; height: 100%; }
.hero-cast .group-illustration { filter: drop-shadow(0 5px 0 #ffeec299) drop-shadow(0 8px 7px #42422326); }
body.has-polish .hero-mascot { bottom: 7px; left: 6%; width: 76%; height: 247px; z-index: 3; }
body.has-polish .hero-mascot .mascot-boy { width: 62%; }
body.has-polish .hero-mascot .mascot-girl { width: 52%; }
body.has-polish .mascot-bubble { top: 0; right: 0; font-size: 23px; }
body.has-polish .hero-ground { bottom: 10px; background: #62844545; }
body.has-polish .hero-art-note { bottom: -16px; color: #3a512c; }
body.has-polish .spark-one { top: 4px; left: 3%; }
body.has-polish .spark-two { top: auto; bottom: 100px; right: 0; }
body.has-polish .home-adventures { padding: 31px 0 0; }
body.has-polish .home-adventures .section-heading { padding: 17px 22px; margin-bottom: 20px; background: #fffcf1ed; border: 1px solid #ecd59c; border-radius: 23px; }
body.has-polish .topic-mini-grid { gap: 22px; }
body.has-polish .topic-mini {
  grid-template-columns: 1fr 32px;
  grid-template-rows: 170px auto;
  align-items: center;
  gap: 13px;
  padding: 15px 20px 19px;
  background: linear-gradient(170deg, #fffdf5, var(--theme-pale));
  border: 2px solid #e5bd70;
  box-shadow: var(--polish-shadow);
  border-radius: 27px;
  text-align: left;
}
body.has-polish .topic-mini-art { grid-column: 1 / -1; height: 170px; padding: 0; transform: none; border: 0; background: transparent; }
body.has-polish .topic-mini .round-arrow { display: grid; background: #ffdf92; border-radius: 50%; width: 32px; height: 40px; }
body.has-polish .topic-mini h3 { font-size: 29px; }
body.has-polish .topic-mini-copy > span:last-child { font-size: 12px; }
.adventure-art { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }
.adventure-art .group-illustration { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; border-radius: 0; }
.glyph-fan { gap: 7px; padding: 15px 10px; }
.glyph-art-card { display: flex; align-items: center; justify-content: center; width: 31%; aspect-ratio: .85; max-height: 150px; padding: 12px; border: 3px solid #d7a353; border-radius: 18px; background: linear-gradient(145deg, #fffdf0, #ffe4a9); box-shadow: inset 0 0 0 3px #fffbdf, 0 5px 0 #b8873629; transform: rotate(-12deg) translateY(5px); }
.glyph-art-card:nth-child(2) { transform: rotate(2deg) translateY(-8px); }
.glyph-art-card:nth-child(3) { transform: rotate(12deg) translateY(6px); }
.glyph-art-card img { width: 100%; height: 100%; object-fit: contain; border-radius: 0; }
body.has-polish .storybook-callout {
  border-color: #d7b366;
  background: linear-gradient(90deg, #f7ffe8f0, #faffeeed 65%, #efffe759), url('../assets/polish/backgrounds/desa-jawa.webp') center / cover;
  box-shadow: var(--polish-shadow);
}
body.has-polish .catalog-intro { margin-top: 20px; min-height: 210px; border-radius: 30px; background: linear-gradient(90deg, #fffbefdd, #fffbefeb 62%, #fff9e677), url('../assets/polish/backgrounds/pegunungan.webp') center 48% / cover; border: 2px solid #fff1c8; }
body.has-polish .catalog-toolbar { margin-top: 22px; }
body.has-polish .topic-card { border: 2px solid #e4ba70; background: #fffbf2; box-shadow: var(--polish-shadow); padding: 13px; }
body.has-polish .topic-card-art { aspect-ratio: 1.48; padding: 25px 8px 52px; background: linear-gradient(180deg, #fef8dc70, var(--theme-soft)), url('../assets/polish/backgrounds/candi.webp') center / cover; border-color: #e6c58a; }
body.has-polish .topic-card-art > .adventure-art { position: relative; align-self: stretch; height: 100%; padding-bottom: 0; }
body.has-polish .topic-card-art .glyph-fan { padding: 4px 15px; }
body.has-polish .topic-type {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  left: 10px;
  bottom: 12px;
  max-width: 50%;
  background: #fffef8fa;
  border: 1.5px solid #dfcba5;
  border-radius: 99px;
  padding: 4px 10px;
  box-shadow: 0 2px 5px #5c3b161c;
  color: #4c3319;
  font: 800 12px/1.2 var(--font-play);
}
body.has-polish .source-board-peek { position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 70px; margin-top: 12px; padding: 9px 14px; background: linear-gradient(180deg, #fffdf4, #f7e8c3); border: 2px solid #ce9f4d; border-radius: 16px; box-shadow: 0 4px 0 #cba05c, 0 6px 12px #63401514; text-align: left; transform: none; cursor: pointer; transition: transform 160ms, box-shadow 160ms, background 160ms; }
body.has-polish .source-board-peek:hover { background: #fff1cc; border-color: #be8a30; transform: translateY(-2px); box-shadow: 0 6px 0 #cba05c, 0 8px 16px #63401520; }
body.has-polish .source-board-peek:active { transform: translateY(3px); box-shadow: 0 1px 0 #cba05c; }
body.has-polish .source-board-peek img { flex: 0 0 72px; width: 72px; height: 51px; object-fit: contain; border-radius: 5px; background: #fff9ea; }
body.has-polish .source-board-peek :is(> span, .peek-label) { position: static; flex: 1; min-width: 0; color: #61411e; font: 800 14px/1.35 var(--font-body); }
body.has-polish .peek-action-btn { display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 6px 13px; background: linear-gradient(180deg, #ffd779, #f7a927); border: 1.5px solid #b76e0c; border-radius: 12px; color: #421f02; font: 800 13px/1.1 var(--font-play); box-shadow: 0 2px 0 #9e5a02; white-space: nowrap; }
body.has-polish .topic-card-body { padding-top: 22px; }
body.has-polish .topic-title-row h2 { color: #60340e; }
body.has-polish .progress-track { background: #eadcba; box-shadow: inset 0 2px 2px #70481d1a; height: 11px; }
body.has-polish .progress-track > span { background: linear-gradient(90deg, #60c98c, #25834f); }
body.has-polish .theme-amber .progress-track > span { background: linear-gradient(90deg, #ffca51, #e28a0d); }
body.has-polish .theme-sky .progress-track > span { background: linear-gradient(90deg, #c593ed, #8950ba); }
.story-stage { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: center; gap: 25px; padding: 25px 36px; margin: 0 0 30px; min-height: 250px; background: linear-gradient(90deg, #fff9ecef 15%, #fff9ece3 44%, #fff9ec40), url('../assets/polish/backgrounds/hutan.webp') center 55% / cover; border: 2px solid #edcf91; border-radius: 30px; box-shadow: var(--polish-shadow); }
.story-stage h2 { max-width: 17ch; font-size: clamp(30px, 3vw, 42px); color: #6d350c; }
.story-stage p:not(.eyebrow) { font-size: 14px; max-width: 45ch; margin: 12px 0 0; color: #4e5435; }
.story-stage > .adventure-art { height: 235px; }
body.has-polish .story-book { border-color: #ddbb79; background: #fffdf4; }
body.has-polish .people-panel { background: #fffbef; border-color: #dfc28e; }
body.has-polish .character-row { grid-template-columns: 76px minmax(0, 1fr) 18px; min-height: 91px; border-color: #eeddb9 !important; }
body.has-polish .character-portrait { height: 78px; grid-template: minmax(0, 1fr) / minmax(0, 1fr); background: linear-gradient(#fff4d6, #f5dfa6); overflow: hidden; }
body.has-polish .character-portrait .illustrated-person { height: 100%; width: 100%; min-width: 0; min-height: 0; object-fit: contain; }
body.has-polish .collection-welcome { border: 2px solid #e7bc6e; background: linear-gradient(100deg, #fff0c5fa, #fffaf0e8), url('../assets/polish/backgrounds/awan.webp') center / cover; }
body.has-polish .collection-thumb { padding: 2px; border-color: #e4c589; background: var(--theme-pale); }
body.has-polish .collection-thumb .glyph-fan { gap: 0; padding: 5px 0; }
body.has-polish .collection-thumb .glyph-art-card { padding: 3px; border-width: 1px; border-radius: 5px; box-shadow: none; }
body.has-polish .badge-medallion { border-color: #b4914e; background: #e8e0c8; box-shadow: inset 0 0 0 5px #fffaf173; }
body.has-polish .badge-medallion > .kit-icon { width: 43px; height: 43px; filter: grayscale(1) opacity(.65); }
body.has-polish .collection-badge[data-earned='true'] .badge-medallion { background: #ffdc7d; border-color: #bf7b1b; box-shadow: inset 0 0 0 5px #fff1ad, 0 5px 0 #a9672329; }
body.has-polish .collection-badge[data-earned='true'] .badge-medallion > .kit-icon { filter: none; }
body.has-polish #modal { border-color: #d4a454; background: #fffbf0; box-shadow: inset 0 0 0 5px #fff5d3, 0 18px 90px #2b1c0b59; }
body.has-polish .site-footer { padding: 24px 20px 30px; border-radius: 20px 20px 0 0; border: 1px solid #e4c78e; border-bottom: 0; background: #fffcf3ed; margin-top: 22px; }
body.has-polish .game-progress-row, body.has-polish .puzzle-panel, body.has-polish .tray-panel, body.has-polish .aksara-activity { border-color: #d9b374; }
body.has-polish .puzzle-actions .btn, body.has-polish .puzzle-toolbar .btn { min-height: 44px; padding: 8px 12px; border-radius: 14px; }
@media (max-width: 1100px) {
  body.has-polish .desktop-nav .kit-icon { display: none; }
  body.has-polish .welcome-hero { gap: 15px; }
  body.has-polish .hero-copy { padding: 22px 16px; }
  body.has-polish .hero-copy h1 { font-size: 56px; }
  body.has-polish .hero-actions .btn { font-size: 17px; padding-inline: 4px; }
  body.has-polish .hero-world { height: 405px; }
  .hero-cast { height: 215px; bottom: 125px; }
  body.has-polish .hero-mascot { height: 220px; }
  body.has-polish .topic-mini { padding: 12px 15px 18px; grid-template-rows: 135px auto; }
  body.has-polish .topic-mini-art { height: 135px; }
  body.has-polish .topic-mini h3 { font-size: 26px; }
  body.has-polish .topic-type { font-size: 10px; }
  body.has-polish .source-board-peek { gap: 9px; padding: 8px 9px; }
  body.has-polish .source-board-peek img { flex-basis: 60px; width: 60px; height: 43px; }
  body.has-polish .source-board-peek > span { font-size: 13px; }
  body.has-polish .character-row { grid-template-columns: 59px minmax(0, 1fr) 16px; gap: 10px; }
  body.has-polish .character-portrait { height: 71px; }
}
@media (max-width: 850px) {
  body.has-polish .welcome-hero { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
  body.has-polish .hero-copy { padding: 20px 11px; border-image-width: 18px; border-width: 9px; }
  body.has-polish .hero-copy h1 { font-size: 44px; }
  body.has-polish .hero-subtitle { font-size: 17px; }
  body.has-polish .hero-actions .btn { flex: 1 1 100%; }
  body.has-polish .hero-world { height: 360px; }
  .hero-cast { height: 185px; bottom: 125px; }
  body.has-polish .hero-mascot { height: 205px; width: 90%; left: 0; }
  body.has-polish .topic-mini { grid-template-rows: 112px auto; grid-template-columns: minmax(0, 1fr); padding: 11px; gap: 10px; text-align: center; }
  body.has-polish .topic-mini-art { height: 112px; }
  body.has-polish .topic-mini .round-arrow { display: none; }
  body.has-polish .topic-mini h3 { font-size: 25px; }
  body.has-polish .topic-card-art { aspect-ratio: 1.15; padding-inline: 3px; }
  body.has-polish .topic-type { font-size: 11px; max-width: 43%; flex-direction: column; align-items: flex-start; }

  .story-stage { padding: 23px; gap: 18px; }
  .story-stage > .adventure-art { height: 190px; }
  body.has-polish .story-stage h2 { font-size: 32px; }
  body.has-polish .character-row { grid-template-columns: 48px minmax(0, 1fr) 14px; gap: 8px; }
  body.has-polish .character-portrait { height: 66px; }
  .glyph-art-card { border-width: 2px; padding: 7px; border-radius: 12px; }
}
@media (max-width: 620px) {
  .world-scenery { height: 1100px; background-size: auto, auto 800px, auto 900px; background-position: center, 36% top, center top; }
  body.has-polish .welcome-hero { display: flex; gap: 0; padding-top: 23px; }
  body.has-polish .hero-copy { padding: 23px 10px 20px; border-width: 10px; border-image-width: 23px; }
  body.has-polish .hero-copy h1 { font-size: clamp(43px, 10.7vw, 59px); }
  body.has-polish .hero-copy .eyebrow { font-size: 9px; }
  body.has-polish .hero-subtitle { font-size: 16px; margin-top: 15px !important; }
  body.has-polish .hero-actions { gap: 9px; margin-top: 18px; }
  body.has-polish .hero-actions .btn { flex: 1 1 100%; font-size: 20px; min-height: 56px; padding: 1px 12px; }
  body.has-polish .hero-copy .gentle-note { font-size: 9px; }
  body.has-polish .hero-world { width: 100%; height: 290px; margin-top: 15px; }
  .hero-cast { height: 173px; bottom: 83px; }
  body.has-polish .hero-mascot { width: 73%; height: 177px; left: 6%; bottom: 1px; }
  body.has-polish .hero-orbit { inset: 21px 0 10px; }
  body.has-polish .mascot-bubble { font-size: 18px; padding: 7px 12px; top: -3px; }
  body.has-polish .mascot-bubble span { font-size: 9px; }
  body.has-polish .spark-one { top: 2px; left: 4%; }
  body.has-polish .spark-two { bottom: 50px; right: 0; }
  body.has-polish .home-adventures { padding-top: 15px; }
  body.has-polish .home-adventures .section-heading { padding: 17px; align-items: center; }
  body.has-polish .home-adventures .section-heading h2 { font-size: 27px; }
  body.has-polish .home-adventures .section-heading .eyebrow { font-size: 7px; }
  body.has-polish .home-adventures .section-heading > .text-link { font-size: 12px; max-width: 104px; min-width: 104px; padding: 9px 10px; }
  body.has-polish .topic-mini-grid { gap: 18px; }
  body.has-polish .topic-mini { grid-template-columns: 128px minmax(0, 1fr) 26px; grid-template-rows: auto; gap: 12px; padding: 15px 11px; text-align: left; }
  body.has-polish .topic-mini-art { grid-column: auto; height: 112px; }
  body.has-polish .topic-mini h3 { font-size: 28px; }
  body.has-polish .topic-mini .round-arrow { display: grid; width: 27px; height: 36px; }
  body.has-polish .topic-mini-copy > span:last-child { font-size: 10px; }
  body.has-polish .topic-mini .glyph-fan { padding: 5px 0; gap: 1px; }
  body.has-polish .topic-mini .glyph-art-card { padding: 5px; border-width: 1px; border-radius: 8px; }
  body.has-polish .catalog-intro { margin-top: 22px; min-height: 0; padding: 25px 18px; }
  body.has-polish .catalog-intro h1 { font-size: 37px; }
  body.has-polish .topic-card-art { aspect-ratio: 1.55; padding: 19px 9px 55px; }
  body.has-polish .topic-type { font-size: 12px; flex-direction: row; align-items: center; bottom: 15px; left: 11px; }
  body.has-polish .source-board-peek { min-height: 70px; gap: 13px; padding: 9px 12px; }
  body.has-polish .source-board-peek img { flex-basis: 76px; width: 76px; height: 54px; }
  body.has-polish .source-board-peek > span { font-size: 14px; }
  body.has-polish .topic-card-art .glyph-fan { padding: 3px 32px; }
  body.has-polish .topic-card-body .btn { min-height: 56px; }
  .story-stage { grid-template-columns: 1fr; gap: 14px; padding: 24px 20px 17px; margin-bottom: 26px; background-position: 58% center; }
  .story-stage > .adventure-art { height: 186px; }
  body.has-polish .story-stage h2 { font-size: 35px; max-width: 17ch; }
  .story-stage p:not(.eyebrow) { font-size: 13px; }
  .story-stage .eyebrow { font-size: 8px; }
  body.has-polish .character-row { grid-template-columns: 72px minmax(0, 1fr) 18px; min-height: 94px; gap: 15px; padding: 9px 12px; }
  body.has-polish .character-portrait { height: 77px; }
  body.has-polish .collection-thumb .glyph-art-card { padding: 2px; border-radius: 3px; }
  body.has-polish .puzzle-actions .btn { padding: 8px 9px; min-height: 44px; }
  body.has-polish .puzzle-toolbar .btn { padding: 7px; font-size: 12px; }
  body.has-polish .puzzle-toolbar { flex-wrap: wrap; row-gap: 10px; }
  body.has-polish .text-link { padding: 8px 11px; font-size: 13px; }
  body.has-polish .collection-greeting .text-link { font-size: 12px; }
  body.has-polish .story-actions .btn { min-height: 54px; padding: 10px 14px; }
  body.has-polish .site-footer { padding-inline: 16px; }
}
@media (max-width: 375px) {
  body.has-polish .topic-mini { grid-template-columns: 111px minmax(0, 1fr) 23px; gap: 9px; }
  body.has-polish .topic-mini h3 { font-size: 26px; }
  body.has-polish .topic-mini .round-arrow { width: 24px; }
  body.has-polish .hero-copy h1 { font-size: 42px; }
  body.has-polish .hero-world { height: 270px; }
  .hero-cast { height: 162px; bottom: 79px; }
  body.has-polish .hero-mascot { height: 168px; }
  body.has-polish .puzzle-toolbar .btn { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  body.has-polish *, body.has-polish *::before, body.has-polish *::after { animation: none !important; transition: none !important; }
}
@media (forced-colors: active) {
  body.has-polish .btn { border: 2px solid ButtonText !important; border-image: none; background: ButtonFace; color: ButtonText !important; filter: none; }
  body.has-polish .hero-copy { border-image: none; background: Canvas; }
}
