/* M24 presentation layer. Retains the approved mobile shell, Passport and game rules. */
.acr-game-page:has(.acr-game-shell[data-mode="selection"]) { padding-top: 1rem; }
.acr-game-page:has(.acr-game-shell[data-mode="selection"]) .acr-game-page__header { display: none; }
.acr-game-page .acr-game-shell[data-mode="selection"] {
    border: 1px solid #cbdeda;
    background: #edf4ee;
    overflow: visible;
}
.acr-game-page .acr-expedition-selector { background: #edf4ee; border-radius: inherit; }
.acr-game-page .acr-expedition-selector__intro {
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    align-items: center;
    gap: 0;
    padding: clamp(1.5rem, 4vw, 3rem);
    min-height: 25rem;
    border-radius: 1.4rem 1.4rem 0 0;
    background: radial-gradient(ellipse at 78% 38%, #15657c 0, transparent 65%), #082b46;
}
.acr-game-page .acr-expedition-selector__intro::before,
.acr-game-page .acr-expedition-selector__intro::after { display: none; }
.acr-game-page .acr-expedition-selector__intro-copy { grid-area: 1 / 1; min-width: 0; }
.acr-game-page .acr-game-identity { margin: 0 0 1.2rem; text-align: left; }
.acr-game-page .acr-game-identity__parent {
    display: block;
    color: #e1eee6;
    font-size: .82rem;
    line-height: 1.5;
    font-weight: 800;
    letter-spacing: .2em;
    text-transform: uppercase;
}
.acr-game-page .acr-game-identity__name {
    display: block;
    max-width: 10ch;
    margin-top: .6rem;
    font-size: clamp(2.65rem, 5.5vw, 4.8rem);
    font-weight: 900;
    letter-spacing: -.045em;
    line-height: .98;
    color: #ffe3a0;
    text-shadow: 0 4px 0 #153b46;
}
.acr-game-page .acr-expedition-selector__intro-copy > p { max-width: 36ch; font-size: .98rem; line-height: 1.6; }
.acr-game-page .acr-expedition-selector__intro .acr-expedition-selector__eyebrow {
    color: #97dfcc; font-size: .69rem; letter-spacing: .1em; margin-bottom: .65rem;
}
.acr-game-page .acr-expedition-hero { position: relative; grid-area: 1 / 2; min-width: 0; pointer-events: none; }
.acr-game-page .acr-expedition-hero svg { display: block; width: 100%; height: auto; overflow: visible; }
.acr-game-page .acr-expedition-hero__characters {
    position: absolute; bottom: 2%; left: 29%; display: flex; width: 45%; gap: 6%;
}
.acr-game-page .acr-expedition-hero__characters img {
    width: 47%; height: auto; border-radius: 50%; border: 4px solid #ffe3a0;
    box-shadow: 0 6px 0 #08384e;
}
.acr-game-page .acr-expedition-selector__steps {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0; padding: 1.2rem clamp(.75rem, 3vw, 2.5rem); gap: 1rem;
    background: #0b354c; list-style: none;
}
.acr-game-page .acr-expedition-selector__steps li {
    position: relative; display: grid; grid-template-columns: 2.2rem minmax(0, 1fr);
    column-gap: .65rem; row-gap: .15rem; align-items: center;
    min-height: 3.4rem; padding: .35rem 0; border: 0; border-radius: 0;
    background: none; color: #d4e7e9; box-shadow: none;
}
.acr-game-page .acr-expedition-selector__steps li:not(:last-child)::after {
    position: absolute; content: ""; top: 50%; right: -.75rem; width: .5rem;
    border-top: 2px dashed #699999;
}
.acr-game-page .acr-expedition-selector__steps b {
    grid-row: 1 / 3; display: grid; place-items: center; width: 2.2rem; height: 2.2rem;
    border: 1px solid #7796a2; border-radius: 50%; color: #d4e7e9; font-size: .95rem;
}
.acr-game-page .acr-expedition-selector__steps a {
    display: flex; align-items: center; min-height: 2.75rem; color: inherit;
    font-size: .82rem; line-height: 1.2; text-decoration: none; overflow-wrap: anywhere;
}
.acr-game-page .acr-expedition-selector__steps small { grid-column: 2; font-size: .68rem; font-weight: 500; }
.acr-game-page .acr-expedition-selector__steps li[aria-current="step"] { color: #ffe3a0; }
.acr-game-page .acr-expedition-selector__steps li[aria-current="step"] b { background: #ffe3a0; color: #082b46; border-color: #ffe3a0; }
.acr-game-page .acr-expedition-selector__steps li.is-complete b { background: #a4e4c7; color: #123e36; border-color: #a4e4c7; }
.acr-game-page .acr-expedition-selector__workspace { padding: clamp(1rem, 3vw, 2.5rem); gap: 1.6rem; }
.acr-game-page .acr-expedition-selector__choices { gap: 1rem; min-width: 0; }
.acr-game-page .acr-expedition-selector__briefing { grid-column: 1 / -1; margin-bottom: .35rem; }
.acr-game-page .acr-expedition-selector__briefing h2 { color: #123e46; font-size: clamp(1.45rem, 3vw, 1.9rem); font-weight: 850; margin: 0 0 .5rem; }
.acr-game-page .acr-expedition-selector__briefing p { color: #425d67; margin: 0; font-size: .92rem; }
.acr-game-page .acr-expedition-selector__field,
.acr-game-page .acr-expedition-selector__destinations,
.acr-game-page .acr-character-selector {
    background: #fffcf4; border: 1px solid #cbdad2; box-shadow: 0 4px 0 #dde7df; border-radius: 1rem;
}
.acr-game-page .acr-expedition-selector__field label,
.acr-game-page .acr-expedition-selector__destinations legend,
.acr-game-page .acr-character-selector legend { color: #123e46; font-weight: 850; }
.acr-game-page .acr-expedition-selector__step-label { color: #8e4622; font-size: .67rem; letter-spacing: .13em; }
.acr-game-page .acr-expedition-selector__step-label i { display: none; }
.acr-game-page .acr-expedition-selector__help { color: #526771; font-size: .86rem; line-height: 1.5; }
.acr-game-page .acr-expedition-selector select { border-color: #a9bfbf; background: #fff; color: #123e46; min-width: 0; max-width: 100%; }
.acr-game-page .acr-expedition-selector select:disabled { color: #637880; background: #edf1eb; }
.acr-game-page .acr-expedition-selector__destination { background: #fff; border-color: #cbdad2; box-shadow: none; }
.acr-game-page .acr-expedition-selector__destination:hover { border-color: #417666; background: #f2f8f0; }
.acr-game-page .acr-expedition-selector__destination:has(input:checked) { background: #eaf5df; border-color: #246957; box-shadow: inset 4px 0 0 #246957; }
.acr-game-page .acr-expedition-selector__destination-name { color: #153e46; }
.acr-game-page .acr-expedition-selector__destination-selected { color: #205b43; }
.acr-game-page .acr-expedition-selector__destination-details { color: #526771; }
.acr-game-page .acr-character-selector__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.acr-game-page .acr-character-card {
    grid-template-columns: minmax(0, 1fr); justify-items: center; align-content: start;
    gap: .65rem; padding: 1.25rem .65rem .9rem; min-height: 13.8rem; text-align: center;
    border: 2px solid #bacfc8; background: radial-gradient(ellipse at 50% 30%, #d6e9df, #f9fbf2 75%);
}
.acr-game-page .acr-character-card__preview { width: clamp(5rem, 12vw, 7.5rem); height: auto; aspect-ratio: 1; border: 3px solid #faf5df; box-shadow: 0 5px 0 #b5cabc; transform: none; }
.acr-game-page .acr-character-card__name { font-size: 1.15rem; }
.acr-game-page .acr-character-card__selected { grid-column: auto; justify-self: center; background: #205b43; }
.acr-game-page .acr-character-card:has(input:checked) { background: #ebf6df; border-color: #246957; box-shadow: inset 0 0 0 2px #246957, 0 5px 0 #c5d8ba; }
.acr-game-page .acr-expedition-summary {
    display: block; top: 1rem; padding: 1.5rem; border: 1px solid #cad7ca;
    border-top: 5px solid #bd8c36; background: #fffcf4; box-shadow: 0 6px 0 #d9e3d7;
}
.acr-game-page .acr-expedition-summary::after { display: none; }
.acr-game-page .acr-expedition-summary__icon { background: #123e46; font-size: 2rem; box-shadow: none; }
.acr-game-page .acr-expedition-summary__eyebrow { color: #8e4622; }
.acr-game-page .acr-expedition-summary h3 { font-size: 1.5rem; }
.acr-game-page .acr-expedition-audio { grid-column: 1 / -1; min-width: 0; border-top: 1px solid #b8cdc5; }
.acr-game-page .acr-expedition-audio summary { padding: 1rem .25rem; color: #425d67; cursor: pointer; font-size: .9rem; font-weight: 750; }
.acr-game-page .acr-expedition-audio .acr-audio-settings { background: #f6faf4; }
.acr-game-page .acr-expedition-selector__status { min-height: 0; margin: 0; padding: .25rem clamp(1rem, 3vw, 2.5rem); color: #7d3519; }
.acr-game-page .acr-expedition-selector__status:has([data-game-selection-status-copy]:empty) { display: none; }
.acr-game-page .acr-expedition-selector__footer {
    position: static; border-top: 1px solid #cbdad2; background: #e3ecdf;
    padding: 1.2rem clamp(1rem, 3vw, 2.5rem) 1.6rem; border-radius: 0 0 1.4rem 1.4rem;
}
.acr-game-page .acr-expedition-selector__footer .btn {
    min-height: 3.5rem; border-radius: .85rem; border: 2px solid #ecb953;
    background: #ffd577; color: #153e46; box-shadow: 0 5px 0 #ab742b;
    font-weight: 900; font-size: 1.05rem;
}
.acr-game-page .acr-expedition-selector__footer .btn:hover:not(:disabled) { background: #ffe5a2; color: #082b46; border-color: #ffd577; box-shadow: 0 5px 0 #ab742b; }
.acr-game-page .acr-expedition-selector__footer .btn:disabled { background: #d0ddcf; border-color: #b5c5b5; color: #526771; box-shadow: 0 3px 0 #bdcbbc; }
.acr-game-page .acr-expedition-selector[data-creating="true"] [data-game-start]::before {
    display: inline-block; content: ""; width: 1em; height: 1em; margin-right: .6em;
    vertical-align: -.1em; border: 2px solid currentColor; border-right-color: transparent;
    border-radius: 50%; animation: acr-game-spin .8s linear infinite;
}
.acr-game-page .acr-expedition-selector :is(a, button, input, select, summary, fieldset):focus-visible,
.acr-game-page .acr-character-card:has(input:focus-visible) { outline: 3px solid #b15b16; outline-offset: 4px; }
.acr-game-page .acr-expedition-selector__steps a:focus-visible { outline-color: #ffe3a0; }
.acr-game-page .acr-expedition-selector :is(select, fieldset) { scroll-margin-top: 6rem; }
.acr-game-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

@media (max-width: 61.99rem) {
    .acr-game-page .acr-expedition-selector__intro { min-height: 21rem; padding: 1.7rem; }
    .acr-game-page .acr-expedition-selector__workspace { grid-template-columns: minmax(0, 1fr); }
    .acr-game-page .acr-expedition-summary { position: static; }
}
@media (max-width: 47.99rem) {
    .acr-game-page:has(.acr-game-shell[data-mode="selection"]) { padding-top: 0; }
    .acr-game-page .acr-game-shell[data-mode="selection"], .acr-game-page .acr-expedition-selector { border-radius: 0; }
    .acr-game-page .acr-expedition-selector__intro { display: flex; flex-direction: column; min-height: 0; padding: 1.5rem max(1rem, env(safe-area-inset-left)) 1rem; border-radius: 0; }
    .acr-game-page .acr-expedition-selector__intro-copy { width: 100%; }
    .acr-game-page .acr-game-identity__name { font-size: clamp(2.7rem, 11vw, 4rem); max-width: none; }
    .acr-game-page .acr-game-identity__parent { font-size: .74rem; }
    .acr-game-page .acr-expedition-selector__intro-copy > p { max-width: 38ch; font-size: .89rem; }
    .acr-game-page .acr-expedition-hero { order: 2; width: min(100%, 24rem); margin: .25rem auto 0; max-height: 11rem; }
    .acr-game-page .acr-expedition-hero svg { height: 11rem; }
    .acr-game-page .acr-expedition-hero__characters { width: 33%; left: 35%; bottom: 0; }
    .acr-game-page .acr-passport { margin-top: .8rem; }
    .acr-game-page .acr-passport__open { width: auto; font-size: .85rem; padding: .45rem .85rem; }
    .acr-game-page .acr-expedition-selector__steps { gap: .5rem; padding: .8rem .75rem; }
    .acr-game-page .acr-expedition-selector__steps li { grid-template-columns: minmax(0, 1fr); justify-items: center; align-content: start; gap: .2rem; text-align: center; }
    .acr-game-page .acr-expedition-selector__steps b { grid-row: auto; width: 1.8rem; height: 1.8rem; font-size: .8rem; }
    .acr-game-page .acr-expedition-selector__steps a { font-size: .64rem; min-height: 2.75rem; }
    .acr-game-page .acr-expedition-selector__steps small { grid-column: 1; font-size: .6rem; }
    .acr-game-page .acr-expedition-selector__steps li:not(:last-child)::after { top: 1.2rem; right: -.6rem; width: .65rem; }
    .acr-game-page .acr-expedition-selector__workspace { padding: 1.2rem .8rem; }
    .acr-game-page .acr-character-selector { padding: 1rem .75rem; }
    .acr-game-page .acr-character-selector__cards { gap: .65rem; }
    .acr-game-page .acr-character-card { min-height: 12rem; padding: 1rem .4rem .75rem; }
    .acr-game-page .acr-character-card__selected { font-size: .64rem; }
    .acr-game-page .acr-expedition-selector__footer { border-radius: 0; gap: .75rem; }
}
/* CSS-pixel hit targets stay usable even when Phaser FIT shrinks its logical canvas. */
.acr-game-page .acr-touch-controls {
    --acr-touch-size: 52px;
    position: absolute; z-index: 20; pointer-events: none;
    --acr-touch-left: max(8px, env(safe-area-inset-left, 0px));
    --acr-touch-right: max(8px, env(safe-area-inset-right, 0px));
    --acr-touch-bottom: max(10px, env(safe-area-inset-bottom, 0px));
}
.acr-game-page .acr-touch-controls[hidden] { display: none; }
.acr-game-page .acr-touch-controls__button {
    position: absolute; display: grid; place-items: center;
    bottom: var(--acr-touch-bottom); width: var(--acr-touch-size); height: var(--acr-touch-size);
    padding: 0; border: 0; border-radius: 50%; background: transparent; color: white;
    pointer-events: auto; touch-action: none; user-select: none; -webkit-user-select: none;
    font: 800 25px/1 Arial, sans-serif;
}
.acr-game-page .acr-touch-controls__button::before {
    position: absolute; inset: 4px; content: ""; border-radius: 50%;
    background: rgba(7, 42, 61, .32); border: 2px solid rgba(255, 255, 255, .65);
    box-shadow: 0 1px 3px rgba(0, 20, 34, .3);
}
.acr-game-page .acr-touch-controls__button span { position: relative; opacity: .95; text-shadow: 0 1px 3px #071d37; }
.acr-game-page .acr-touch-controls__button[aria-pressed="true"]::before {
    background: rgba(7, 42, 61, .64); border-color: #ffe3a0; transform: scale(.92);
}
.acr-game-page .acr-touch-controls__button:focus-visible { outline: 3px solid #ffe3a0; outline-offset: 1px; }
.acr-game-page .acr-touch-controls__button--left { left: var(--acr-touch-left); }
.acr-game-page .acr-touch-controls__button--right { left: calc(var(--acr-touch-left) + var(--acr-touch-size) + 4px); }
.acr-game-page .acr-touch-controls__button--up { right: var(--acr-touch-right); bottom: calc(var(--acr-touch-bottom) + var(--acr-touch-size) + 4px); }
.acr-game-page .acr-touch-controls__button--down { right: var(--acr-touch-right); }
.acr-game-page .acr-game-root:has(.acr-touch-controls:not([hidden])[data-compact="true"]) .acr-game-audio-tools { top: max(24px, 18%); max-width: calc(100% - 104px); transform: none; }
.acr-game-page .acr-game-root:has(.acr-touch-controls:not([hidden])[data-compact="true"]) .acr-game-audio-tools__mute { flex-shrink: 0; }
.acr-game-page .acr-game-root:has(.acr-touch-controls:not([hidden])[data-compact="true"]) .acr-game-audio-tools__prompt { max-width: min(9rem, 45vw); min-width: 0; font-size: .68rem; }
.acr-game-page .acr-game-root:has(.acr-touch-controls:not([hidden])[data-compact="true"]) .acr-tourism-discovery-toast {
    width: calc(100% - 140px); padding: 6px 8px; border-width: 2px; font-size: 11px;
}
.acr-game-page .acr-game-root:has(.acr-touch-controls:not([hidden])[data-compact="true"]) .acr-tourism-discovery-toast span { font-size: 11px; }

@media (prefers-reduced-motion: reduce) {
    .acr-game-page .acr-expedition-selector *, .acr-game-page .acr-expedition-selector *::before {
        animation: none !important; transition: none !important; scroll-behavior: auto !important;
    }
}
