/* Frosty Peak ice fishing and shared mountain palette variants. */
.ice-fishing-scene {
    --mountain-background: #f2fcff;
    --mountain-border: #70bfcb;
    --mountain-ink: #245f68;
    --mountain-button: #f0ffff;
    --mountain-hover: #c9eef0;
    position: relative;
    height: 620px;
    min-height: 620px;
    gap: 10px;
}
.ice-fishing-pet-preview { position: absolute; right: 4px; bottom: 100px; z-index: 10; display: inline-block; pointer-events: none; }
.ice-fishing-pet-catch-wiggle { animation: ice-fishing-pet-catch-wiggle 0.45s ease-in-out; }
@keyframes ice-fishing-pet-catch-wiggle { 0%, 100% { translate: 0 0; rotate: 0deg; } 25% { translate: 0 -3px; rotate: -4deg; } 50% { translate: 0 0; rotate: 4deg; } 75% { translate: 0 -2px; rotate: -2deg; } }
.ice-fishing-pet-strong-shake { animation: ice-fishing-pet-strong-shake 0.55s ease-in-out infinite; }
.ice-fishing-pet-huge-shake { animation: ice-fishing-pet-huge-shake 0.28s ease-in-out infinite; }
.ice-fishing-pet-heavy-shake { animation: ice-fishing-pet-heavy-shake 0.12s linear 10; }
@keyframes ice-fishing-pet-strong-shake { 0%, 100% { translate: 0 0; rotate: 0deg; } 25% { translate: -2px 0; rotate: -2deg; } 75% { translate: 2px 0; rotate: 2deg; } }
@keyframes ice-fishing-pet-huge-shake { 0%, 100% { translate: 0 0; rotate: 0deg; } 25% { translate: -4px -1px; rotate: -5deg; } 75% { translate: 4px 1px; rotate: 5deg; } }
@keyframes ice-fishing-pet-heavy-shake { 0%, 100% { translate: 0 0; rotate: 0deg; } 25% { translate: -6px -2px; rotate: -8deg; } 75% { translate: 6px 2px; rotate: 8deg; } }
.ice-fishing-scene > :not(.ice-fishing-pet-preview) { position: relative; z-index: 1; }
.ice-fishing-status { display: flex; align-items: center; justify-content: center; width: min(100%, 560px); height: 44px; min-height: 44px; flex: 0 0 44px; margin: 50px 0 0; color: #245f68; font-weight: 700; }
.ice-fishing-wait-message { position: absolute; z-index: 1; top: 50%; left: 50%; width: min(220px, calc(100% - 160px)); margin: 0; transform: translate(-50%, -50%); color: #fff; font-size: .94em; font-style: italic; font-weight: 700; line-height: 1.4; text-align: center; pointer-events: none; }
.ice-fishing-display { display: flex; align-items: center; justify-content: center; position: relative; width: min(100%, 460px); height: 240px; flex: 0 0 240px; margin-top: 20px; overflow: visible; border-radius: 50%; background: #286390; box-shadow: inset 0 0 0 8px rgba(255,255,255,.08), 0 5px 12px rgba(18,55,91,.18); }
#ice-fishing-reel { position: absolute; z-index: 11; bottom: 14px; left: 50%; max-width: calc(100% - 32px); transform: translateX(-50%); }
#ice-fishing-wait { position: absolute; z-index: 2; top: 14px; left: 50%; max-width: calc(100% - 32px); transform: translateX(-50%); }
.ice-fishing-actions { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 48px; flex: 0 0 48px; margin-top: auto; }
.ice-fishing-actions > button { max-width: 100%; white-space: nowrap; }
.ice-fishing-result { position: absolute; inset: 0; transform: translateY(-8px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; overflow: hidden; padding: 12px 32px; border: 0; border-radius: 50%; background: transparent; color: #fff; line-height: 1.2; text-align: center; }
#ice-fishing-result { z-index: 1; }
.ice-fishing-result[hidden] { display: none; }
.ice-fishing-catch-image { font-size: 52px; line-height: 1; }
.ice-fishing-catch-image img { display: block; width: 88px; height: 88px; object-fit: contain; }
.ice-fishing-result-copy { width: min(220px, 100%); max-width: 100%; font-size: 12px; text-align: center; }
.ice-fishing-result-copy > * { display: block; margin: 2px auto; }
.ice-fishing-result-copy p { font-size: 12px; }
.ice-fishing-result-copy em { font-size: 11px; }
.ice-fishing-scene > .mountain-coming-soon { display: none; }

.mountain-frost-mid { --mountain-background: #e1edf4; --mountain-border: #7c9cb3; --mountain-ink: #37566e; }
.mountain-frost-summit { --mountain-background: #e6e4f5; --mountain-border: #9294c3; --mountain-ink: #50517e; }
.mountain-frost-summit[data-mountain-view="frost-summit"] { --mountain-background: #fff; }
.mountain-magma-base { --mountain-background: #fff0dc; --mountain-border: #cb9470; --mountain-ink: #80503a; --mountain-button: #fff8ed; --mountain-hover: #ffe0bd; }
.mountain-magma-mid { --mountain-background: #f2ded3; --mountain-border: #b8806c; --mountain-ink: #754638; --mountain-button: #fff2e8; --mountain-hover: #f7d3bd; }
.mountain-magma-summit { --mountain-background: #e7d7de; --mountain-border: #a57685; --mountain-ink: #673b50; --mountain-button: #fff0f3; --mountain-hover: #efd0dc; }
.mountain-magma-summit[data-mountain-view="magma-summit"] .mountain-scene-art { padding: 0; font-size: clamp(120px, 40vw, 240px); line-height: 1.15; }

/* Burning Summit egg placeholder; artwork can be swapped without changing the layout. */
.mountain-magma-summit .magma-mysterious-egg { display: flex; flex-direction: column; align-items: center; gap: 14px; width: 100%; max-width: 480px; min-width: 0; }
.magma-egg-display { position: relative; display: grid; place-items: center; width: min(100%, 320px); }
.magma-egg-art { display: block; width: min(72vw, 300px); height: auto; cursor: pointer; transform-origin: center bottom; }
.magma-egg-display.is-wiggling .magma-egg-art { animation: magma-egg-wiggle .55s ease-in-out; }
@keyframes magma-egg-wiggle { 0%, 100% { transform: rotate(0); } 20% { transform: rotate(-8deg); } 40% { transform: rotate(8deg); } 60% { transform: rotate(-6deg); } 80% { transform: rotate(5deg); } }
.magma-egg-sign { padding: 10px 16px; border: 3px solid #cb9470; border-radius: 12px; background: #fff8ed; color: #80503a; font-weight: 700; }

@media (max-width: 600px) {
    .ice-fishing-scene { height: 620px; min-height: 620px; }
    .ice-fishing-display { width: min(100%, 420px); height: 220px; flex-basis: 220px; }
    .ice-fishing-result { padding: 10px 24px; }
}
.mountain-frost-base { --mountain-background: #eaf8fc; }
.frozen-outfitters-scene,
.moko-scene { --mountain-background: #edfaff; --mountain-border: #8ab9d0; --mountain-ink: #365b74; --mountain-button: #f6fdff; --mountain-hover: #d8eef8; }
.moko-page-image { display: block; width: min(290px, 68vw); max-height: 290px; object-fit: contain; margin: -4px auto 0; transform-origin: 50% 75%; animation: moko-gentle-wiggle 1.6s ease-in-out infinite; }
@keyframes moko-gentle-wiggle { 0%, 100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-7px); } }
.frozen-outfitters-scene > .mountain-subtitle,
.moko-scene .frost-shop-area > p,
.moko-scene .frost-shop-area > h4 { text-align: center; }
.moko-scene .frost-shop-area > p { box-sizing: border-box; width: 100%; max-width: none; margin-inline: auto; }
.frost-shop-area { box-sizing: border-box; width: min(100%, 760px); margin: 10px auto 0; padding: 14px; border: 3px dotted #8ab9d0; border-radius: 16px; background: #f3fbff; color: #365b74; display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
.frozen-outfitters-shop-area { border-color: #80b7cc; background: #eaf8fc; }
.moko-curiosities-shop-area { border-color: #9294c3; background: #f0effb; }
.moko-buttons-shop-area { border-color: #8a9eb8; background: #edf4fb; }
.frost-shop-area > h4,
.frost-shop-area > p { margin: 0; }
.frost-shop-area .store-click-hint { margin: 0 auto !important; }
.frozen-outfitters-message,
#moko-shopkeeper-message,
#moko-curiosities-message,
#moko-sale-message { text-align: center; }
.frozen-outfitters-items,
.moko-curiosities-items,
.moko-button-items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; width: 100%; margin: 12px 0; }
.moko-curiosities-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.frozen-outfitter-card,
.moko-curiosity-card,
.moko-button-sale-card { position: relative; display: grid; justify-items: center; align-content: center; gap: 5px; min-width: 0; min-height: 142px; padding: 12px 9px; border: 2px dotted #8ab9d0; border-radius: 14px; background: #f8fdff; color: #365b74; text-align: center; overflow-wrap: anywhere; }
.frozen-outfitter-card:hover:not(:disabled),
.moko-curiosity-card:hover:not(:disabled),
.moko-button-sale-card:hover:not(:disabled) { background: #dff2fa; }
.frozen-outfitter-card,
.moko-curiosity-card,
.moko-button-sale-card { display: flex; flex-direction: column; align-items: center; justify-content: flex-start; }
.frozen-outfitter-card-main,
.moko-curiosity-card-main { display: grid; justify-items: center; gap: 5px; flex: 1; }
.moko-sale-card-main { display: grid; justify-items: center; align-content: start; gap: 5px; flex: 1; }
.frozen-outfitter-description,
.moko-curiosity-description { display: none; position: absolute; z-index: 2; inset: 8px; place-items: center; padding: 8px; border: 1px solid #8ab9d0; border-radius: 10px; background: #f3fbff; color: #365b74; line-height: 1.35; }
.frozen-outfitter-card:hover:not(:disabled) .frozen-outfitter-description,
.frozen-outfitter-card:focus-visible .frozen-outfitter-description,
.moko-curiosity-card:hover:not(:disabled) .moko-curiosity-description,
.moko-curiosity-card:focus-visible .moko-curiosity-description { display: grid; }
.frozen-outfitter-price,
.moko-curiosity-price,
.moko-sale-price { margin-top: auto; padding-top: 8px; }
.moko-sale-owned { display: block; font-size: 12px; }
.frozen-outfitter-card-main > *,
.moko-curiosity-card-main > *,
.moko-sale-card-main > * { display: block; text-align: center; }
.moko-card-icon,
.moko-sale-icon { font-size: 30px; line-height: 1; }
.moko-rarity,
.moko-curiosity-card small,
.frozen-outfitter-card small { font-size: 12px; }
.moko-selected-badge { position: absolute; z-index: 3; top: 5px; right: 6px; min-width: 22px; padding: 2px 5px; border-radius: 12px; background: #6f9fbd; color: white; font-size: 12px; font-weight: 800; }
.moko-selected-badge[hidden] { display: none; }
.frozen-outfitters-order,
.moko-order-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: auto; padding: 12px 14px; border: 2px dotted #8ab9d0; border-radius: 14px; background: #f8fdff; }
.frozen-outfitters-order p,
.moko-offer-summary p { margin: 0; font-weight: 800; text-align: center; }
.moko-offer-summary { display: grid; gap: 5px; min-width: 0; }
#moko-order-icons { display: flex; flex-wrap: wrap; gap: 3px; min-height: 26px; align-items: center; }
#moko-order-icons span { font-size: 23px; }
.moko-empty-selection { margin: 0; color: #637d8e; font-size: 13px; }
.moko-button-items > .moko-empty-selection { grid-column: 1 / -1; width: 100%; text-align: center; }
.moko-panel { width: min(100%, 760px); margin: 0 auto; }
.moko-panel[hidden],
.moko-talk-step[hidden],
.moko-owned-curiosity-topics[hidden],
.moko-memory-discovery[hidden] { display: none !important; }
#moko-main-page > p,
#moko-main-page > blockquote { box-sizing: border-box; width: min(100%, 620px); max-width: none; margin-inline: auto; text-align: center; }
#moko-main-page > .moko-main-actions { width: 100%; justify-content: center; align-items: center; margin: 12px auto; }
#moko-response-dialogue { box-sizing: border-box; width: min(100%, 620px); max-width: none; margin: 0 auto 12px; align-self: center; text-align: center; }
.moko-talk-step > [data-moko-talk-back],
.moko-talk-step > [data-moko-memory-return],
.moko-talk-step > [data-moko-main] { display: block; margin: 12px auto 0; }
.moko-talk-step > .moko-main-actions { margin: 14px auto; }
.moko-panel > p:not(.moko-dialogue) { text-align: center; }
.moko-panel blockquote,
.moko-dialogue,
.moko-memory-discovery,
.moko-memory-journal { padding: 14px; border: 2px dotted #8ab9d0; border-radius: 14px; background: rgba(248, 253, 255, .88); }
.moko-dialogue { min-height: 64px; display: grid; place-items: center; font-weight: 700; }
.moko-talk-step > .moko-dialogue { box-sizing: border-box; width: min(100%, 620px); max-width: none; margin: 0 auto; text-align: center; }
#moko-memory-journal { margin: 18px auto; }
.moko-main-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 12px 0; }
.moko-talk-topics,
.moko-owned-curiosity-topics { box-sizing: border-box; display: grid; gap: 10px; width: min(100%, 620px); margin: 12px auto; padding: 12px; border: 2px dotted #a4c4d4; border-radius: 14px; background: rgba(248, 253, 255, .65); }
.moko-topic-heading { margin: 0 !important; text-align: center; font-size: 16px !important; }
.moko-topic-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.moko-topic-choice { box-sizing: border-box; width: 100%; min-height: 50px; padding: 9px 10px !important; display: flex; align-items: center; justify-content: center; text-align: center; line-height: 1.3; }
.moko-no-owned-message { box-sizing: border-box; width: 100%; max-width: none; margin: 0; text-align: center; }
#moko-talk-home > [data-moko-main] { display: block; margin: 12px auto 0; }
.moko-memory-discovery { margin: 12px 0; text-align: center; }
.moko-memory-entry { margin: 7px 0; padding: 8px; border-bottom: 1px dashed #b5d1de; }
.moko-memory-entry p { margin: 4px 0 0; }
.moko-memory-unknown { color: #718795; }
.moko-buttons-navigation { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 14px; }
.moko-confirm-overlay[hidden] { display: none !important; }
.moko-confirm-overlay { position: fixed; z-index: 10020; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(31, 52, 68, .5); }
.moko-confirm-card { box-sizing: border-box; width: min(100%, 440px); padding: 20px; border: 3px dotted #759fba; border-radius: 18px; background: #f3fbff; color: #365b74; text-align: center; box-shadow: 0 10px 35px rgba(25, 48, 64, .3); }
.moko-confirm-card h4,
.moko-confirm-card p { margin: 0 0 12px; }
.moko-confirm-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }

@media (max-width: 600px) {
    .silent-summit-activities { grid-template-columns: minmax(0, 280px); grid-template-areas: "moko" "star" "snowflake"; min-height: 0; width: 100%; }
    .silent-summit-activities .silent-summit-moko-image { height: 220px; }
    .frozen-outfitters-items,
    .moko-curiosities-items,
    .moko-button-items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .frozen-outfitter-card,
    .moko-curiosity-card,
    .moko-button-sale-card { min-height: 128px; padding-inline: 6px; font-size: 13px; }
    .frozen-outfitters-order,
    .moko-order-footer { flex-direction: column; }
    .moko-topic-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .moko-page-image { animation: none; }
}
