/* The swimming companion has one viewport layer and no scene attachments. */
.companion-enabled .beast-dock img,
.companion-enabled #timeline .winch-guide img,
.companion-enabled #buybot-promo .station-host img,
.companion-enabled .anchor-beast { visibility: hidden; }
.beast-companion {
    position: fixed; inset: 0 auto auto 0; z-index: 35; width: 104px; height: 104px;
    padding: 0; margin: 0; border: 0; background: none; box-shadow: none;
    border-radius: 50%; transform-origin: 50% 50%; cursor: pointer;
    touch-action: manipulation; -webkit-tap-highlight-color: transparent;
    will-change: transform; overflow: visible;
}
.beast-companion[hidden] { display: none; }
.beast-companion:focus-visible { outline: 2px solid #e5c6ff; outline-offset: 1px; }
.swimmer-body, .swimmer-crop { position: absolute; inset: 0; pointer-events: none; }
.swimmer-body { transform-origin: 50% 50%; }
.swimmer-crop { overflow: hidden; }
.swimmer-crop img { position: absolute; inset: 0 auto auto 0; display: block; max-width: none; width: 600%; height: 400%; pointer-events: none; animation: none!important; }
.swimmer-bubbles { position: absolute; inset: 0; pointer-events: none; }
.swimmer-bubbles i {
    position: absolute; left: 49%; top: 57%; width: 8px; height: 8px; opacity: 0;
    border: 1px solid #d7bbff; border-radius: 50%;
    background: radial-gradient(circle at 30% 25%,#fff 0 7%,transparent 12%),radial-gradient(circle at 70% 75%,#a579d84d,transparent 60%);
}
.swimmer-bubbles i:nth-child(2n) { width: 5px; height: 5px; }
.swimmer-bubbles i:nth-child(3n) { width: 11px; height: 11px; }
@media (max-width: 1199px) {
    /* Share the existing water margin between both banks. The reading width
       stays unchanged, including when Beast changes sides or follows the chain. */
    .swimmer-layout #main-content > section:not(.hero) { width: calc(100% - 48px); margin-left: 24px; margin-right: 24px; }
}
@media (max-width: 650px) {
    .swimmer-layout #main-content > section:not(.hero) { width: calc(100% - 40px); margin-left: 20px; margin-right: 20px; }
    .swimmer-layout #about .cabin-welcome { padding-right: 16px; }
}
@media (max-width: 360px) {
    .swimmer-layout #cinema .cinema-programme-heading { padding-top: 36px; padding-bottom: 44px; }
    .swimmer-layout .journey-title-name { font-size: 30px; }
    .swimmer-layout #buybot-promo .station-heading { padding-top: 49px; }
    .swimmer-layout #buybot-promo .station-branding { height: 82px; }
    .swimmer-layout #buybot-promo .station-scene { margin-bottom: 40px; }
    .swimmer-layout #buybot-promo .station-makers { padding-top: 38px; padding-bottom: 46px; }
}
.motion-paused .beast-companion { display: none!important; }
@media (prefers-reduced-motion: reduce) { .beast-companion { display: none!important; } }
@media print { .beast-companion { display: none!important; } .companion-enabled .beast-dock img,.companion-enabled .anchor-beast { visibility: visible!important; } }
