/* Player reading sizes shared by the program and its Journey frame. */
:root{--player-text-main:20px;--player-text-body:18px;--player-text-caption:16px;--player-text-title:22px}
body.play-page,html.embedded-journey body{font-size:var(--player-text-body);line-height:1.55}
:where(body.play-page) :is(.splash-brand p),
:where(body.play-page) :is(.chat-title h1),
:where(body.play-page) :is(.bubble),
:where(body.play-page) :is(.notice h2),
:where(body.play-page) :is(.verify),
:where(body.play-page) :is(.post-name),
:where(body.play-page) :is(.post-text),
:where(body.play-page) :is(.request-message-label textarea),
:where(body.play-page) :is(.fixed-request-message),
:where(body.play-page) :is(.map-full header h2,.profile-nav h2),
:where(body.play-page) :is(.shared-map-summary b),
:where(body.play-page) :is(.call-log.failed-call>b),
:where(body.play-page) :is(.call-log.failed-call strong),
:where(body.play-page) :is(.search-form input),
:where(body.play-page) :is(.search-form button),
:where(body.play-page) :is(.search-person b),
:where(body.play-page) :is(.sound-sheet label),
:where(body.play-page) :is(.verify-sheet input),
:where(body.play-page) :is(.request-lines span),
:where(body.play-page) :is(.scene-photo span),
:where(body.play-page) :is(.message-link strong),
:where(body.play-page) :is(.transfer-form input),
:where(body.play-page) :is(.my-location b),
:where(body.play-page) :is(.factory-map-art b),
:where(body.play-page) :is(.route-card strong),
:where(body.play-page) :is(.answer-native),
:where(body.play-page) :is(.takeout-lines),
:where(body.play-page) :is(.avatar.city-avatar,.miniavatar.city-avatar),
:where(body.play-page) :is(.miniavatar.gray,.miniavatar.black,.miniavatar.archive-avatar,.miniavatar.flower,.miniavatar.me){font-size:var(--player-text-body,18px)}
:where(body.play-page) :is(.tabs button),
:where(body.play-page) :is(.top .sub),
:where(body.play-page) :is(.time,.preview),
:where(body.play-page) :is(.badge),
:where(body.play-page) :is(.online),
:where(body.play-page) :is(.stamp),
:where(body.play-page) :is(.miniavatar),
:where(body.play-page) :is(.speaker),
:where(body.play-page) :is(.system),
:where(body.play-page) :is(.file b),
:where(body.play-page) :is(.choice),
:where(body.play-page) :is(.notice p),
:where(body.play-page) :is(.typing),
:where(body.play-page) :is(.toast b),
:where(body.play-page) :is(.post-time),
:where(body.play-page) :is(.post-photo),
:where(body.play-page) :is(.profile-head p),
:where(body.play-page) :is(.profile-facts p),
:where(body.play-page) :is(.request-message-label),
:where(body.play-page) :is(.setting-note),
:where(body.play-page) :is(.sending),
:where(body.play-page) :is(.inputbar),
:where(body.play-page) :is(.plus-grid button span),
:where(body.play-page) :is(.ocean span),
:where(body.play-page) :is(.comment),
:where(body.play-page) :is(.shared-map-summary span),
:where(body.play-page) :is(.map-person-pin b),
:where(body.play-page) :is(.map-person-pin span),
:where(body.play-page) :is(.map-drag-tip),
:where(body.play-page) :is(.marker-name-label),
:where(body.play-page) :is(.marker-name-input),
:where(body.play-page) :is(.event-marker),
:where(body.play-page) :is(.event-marker small),
:where(body.play-page) :is(.inputbar .sendbtn),
:where(body.play-page) :is(.image-loading-card strong),
:where(body.play-page) :is(.image-loading-card small),
:where(body.play-page) :is(.search-results>p),
:where(body.play-page) :is(.search-person small),
:where(body.play-page) :is(.search-person em),
:where(body.play-page) :is(.verify-choices button),
:where(body.play-page) :is(.offline-label),
:where(body.play-page) :is(.account-note),
:where(body.play-page) :is(.scene-photo small),
:where(body.play-page) :is(.message-link>span),
:where(body.play-page) :is(.message-link small),
:where(body.play-page) :is(.call-log strong),
:where(body.play-page) :is(.call-log small),
:where(body.play-page) :is(.transfer-form label),
:where(body.play-page) :is(.profile-copy),
:where(body.play-page) :is(.history-link),
:where(body.play-page) :is(.my-location span),
:where(body.play-page) :is(.route-card span),
:where(body.play-page) :is(.live-transcript),
:where(body.play-page) :is(.native-call-top small),
:where(body.play-page) :is(.home-time small),
:where(body.play-page) :is(.home-icons span),
:where(body.play-page) :is(.final-ending span),
:where(body.play-page) :is(.final-ending p),
:where(body.play-page) :is(.final-ending button),
:where(body.play-page) :is(.link-card b),
:where(body.play-page) :is(.link-card small),
:where(body.play-page) :is(.wallet-hero p),
:where(body.play-page) :is(.transfer-card span),
:where(body.play-page) :is(.transfer-card p),
:where(body.play-page) :is(.transfer-card small),
:where(body.play-page) :is(.transfer-form>p),
:where(body.play-page) :is(.voice-bubble strong),
:where(body.play-page) :is(.voice-bubble small),
:where(body.play-page) :is(.voice-transcript){font-size:var(--player-text-caption,16px)}
:where(body.play-page) :is(.typing-title){font-size:var(--player-text-body,18px)!important}
:where(body.play-page) :is(.inputbar .inputtext){font-size:var(--player-text-caption,16px)!important}

/* Reading content and controls retain the existing flow and viewport anchors. */
:is(body.play-page,html.embedded-journey body) :is(.msg .bubble,.voice-transcript,.runtime-choices .choice,.contact-moment-post p,.article-body p,.post-text,.live-transcript,.self-help-stage p,.faq-a,.route-detail-description,.route-detail-feature,.initial-npc-comments p){font-size:var(--player-text-main);line-height:1.6;overflow-wrap:anywhere}
.play-page .top h1,.play-page .chat-title h1,.play-page .page-top h1,.topbar #page-title,.route-detail-section-title{font-size:var(--player-text-title);line-height:1.4}
.play-page .inputbar{height:auto;min-height:64px;align-items:center}
.play-page .inputbar .chat-text-input{height:46px;min-height:46px;font-size:var(--player-text-main);line-height:1.4}
.play-page .inputbar .sendbtn{width:auto;min-width:64px;height:44px;line-height:44px;font-size:var(--player-text-body);padding:0 10px}
.play-page .composer:has(.runtime-choices) .inputbar .sendbtn{width:64px;padding:0}
.play-page .runtime-choices .choice{min-height:48px}
.play-page .rowmain,.play-page .rowline,.play-page .name{min-width:0}
.play-page .rowline{align-items:baseline;gap:8px}.play-page .time{flex:none;white-space:nowrap}
.play-page .row .time{font-size:var(--player-text-caption)}.play-page .row .name{font-size:var(--player-text-body)}
.play-page .plus-grid button{min-height:78px}.play-page .plus-grid button span{line-height:1.4}
.play-page .me-menu-group button,.play-page .settings-group button{min-height:58px;height:auto}
.play-page .badge{min-width:22px;min-height:22px;line-height:22px;padding:0 5px}
.play-page .modern-tabs button,.play-page .modern-tabs button b{font-size:var(--player-text-caption);line-height:1.3}
.journey-menu .journey-menu-label,.sheet-actions button,.primary,.secondary,.faq-q,.gift-player-dialog button,.gift-feedback-form button{font-size:var(--player-text-body)}
.journey-menu .journey-menu-label{line-height:1.35}.journey-menu .journey-menu-item{min-height:78px}
.route-detail-start{align-items:start}.route-detail-start dt{white-space:nowrap}.route-detail-start dd{min-width:0;overflow-wrap:anywhere;line-height:1.55}
.registration-route-price .route-price{gap:6px}.registration-route-price .route-current-price{font-size:22px}.registration-route-price .route-sale-label,.registration-route-price .route-original-price{font-size:var(--player-text-caption)}
.registration-route{grid-template-columns:minmax(0,1fr) auto;gap:12px}.registration-route-name{font-size:var(--player-text-body)}
.gift-player-dialog input,.profile-edit-form input{font-size:var(--player-text-body);line-height:1.5;min-height:46px}
.gift-player-dialog textarea{font-size:var(--player-text-body);line-height:1.5}
.gift-player-dialog label,.gift-feedback-field>span{line-height:1.5}
.cw-auth .program-auth-error{min-height:24px}.cw-auth .cw-auth-field input{line-height:1.45}
@media(max-width:359px){.journey-menu .journey-menu-item{gap:5px;padding-left:8px;padding-right:8px}.registration-route{grid-template-columns:minmax(0,1fr)}.registration-route-price{justify-self:end}.route-detail-info{gap:6px}.route-detail-metric{padding:12px 5px}.route-detail-metric dd{font-size:var(--player-text-body)}.route-detail-metric dt{font-size:var(--player-text-caption)}}

@media(max-width:359px){.gift-address-fields{grid-template-columns:minmax(0,1fr)}.gift-address-fields>label{grid-column:1/-1}}
