/* Shared UI v2 surfaces: the same dark/gold vocabulary on every player page.
   Loaded only with the mobile UI flag; desktop gets its own navigation and workspace. */
.ui-mobile-v2 { --shell: 68.75rem; --sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; font-size: .9375rem; }
.ui-mobile-v2::before { background: radial-gradient(circle at 82% 8%, rgba(212,168,63,.09), transparent 28rem); }
.ui-mobile-v2:has(.home-guest-v2)::before { background: radial-gradient(circle at 50% 0%, rgba(212,168,63,.14), transparent 26rem); }
.header-login { display: none; }
.login-v2 { min-height: 0; padding-block: 2rem 2.5rem; }
.login-v2 .auth-panel { display: grid; gap: 1.125rem; width: min(100%,24rem); padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.login-v2 .auth-panel > * { margin: 0; }
.login-v2 .login-mark { justify-self: center; width: 64px; height: 64px; }
.login-v2 h1 { text-align: center; }
.login-v2 .form-stack { gap: .75rem; }
.login-v2 .field { gap: .375rem; }
.login-v2 .field label, .login-v2 .label-row a { font-size: .8125rem; }
.login-v2 .label-row { flex-wrap: wrap; }
.login-v2 .form-stack > .button { margin-top: .375rem; border-radius: 12px; }
.login-v2 .mobile-password { gap: 0; border: 1px solid var(--border); border-radius: 10px; background: var(--field); }
.login-v2 .mobile-password input { border: 0; background: transparent; }
.login-v2 .mobile-password button { min-width: 44px; min-height: 44px; padding: .5rem; border: 0; background: transparent; box-shadow: none; color: var(--muted); font-size: .8125rem; }
.login-v2 .auth-alternate, .login-v2 .login-guest { text-align: center; font-size: .875rem; }
.login-v2 .auth-alternate a, .login-v2 .login-guest a { display: inline-flex; align-items: center; min-height: 44px; }
.login-v2 .login-guest { margin-top: -.75rem; }
.login-v2 .login-guest a { color: var(--muted); text-decoration: none; }
.ui-mobile-v2 .analytics-consent-actions .button { min-height: 44px; padding: .6rem; font-size: .8125rem; font-weight: 600; line-height: 1.3; }
.ui-mobile-v2 .analytics-consent-copy { gap: .25rem; }
.ui-mobile-v2 .analytics-consent-copy p { margin: 0; }
.ui-mobile-v2 .page-heading { gap: .75rem; margin-bottom: 1.25rem; }
.ui-mobile-v2 :is(.page-heading, .auth-panel, .legal-header, .error-page) h1 { font: 500 1.625rem/1.2 var(--serif); letter-spacing: -.02em; overflow-wrap: anywhere; }
.ui-mobile-v2 :is(.legal-page, .contact-page, .support-page, .error-page) { padding-block: 1rem 2rem; }
.ui-mobile-v2 :is(.legal-header, .legal-section) { padding-block: 1rem; }
.ui-mobile-v2 :is(.legal-section, .legal-callout, .contact-gate) h2 { font: 500 1.25rem/1.3 var(--serif); }
.ui-mobile-v2 .legal-header .lead { font-size: 1rem; }
.ui-mobile-v2 .auth-panel { box-shadow: none; }
.ui-mobile-v2 .auth-panel h1 { margin-top: 0; }
.auth-recovery { min-height: 0; padding-block: 1.5rem 2.5rem; }
.auth-recovery .auth-panel { display: grid; gap: 1rem; width: min(100%,34rem); padding: 1.25rem; border-radius: .85rem; }
.auth-recovery .auth-panel > * { margin: 0; }
.auth-recovery .auth-panel > p { color: var(--muted); font-size: .9375rem; }
.auth-recovery .auth-message { text-align: left; }
.auth-recovery .message-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: .75rem; color: var(--gold-light); background: rgba(212,168,63,.09); font-size: 1.5rem; }
.auth-resend { min-width: 0; border-top: 1px solid var(--border-soft); padding-top: .5rem; }
.auth-resend > summary { min-height: var(--tap); padding-block: .75rem; cursor: pointer; color: var(--gold-light); font-weight: 600; }
.auth-resend > p { color: var(--muted); font-size: .875rem; }
.guide-access-v2 { min-height: 0; padding-block: 1.5rem 2.5rem; }
.guide-access-v2 .guide-access-panel { width: min(100%,34rem); padding: 1.25rem; border: 1px solid var(--border-soft); border-radius: .85rem; background: var(--bg-elevated); }
.guide-access-v2 .guide-access-panel h1 { font: 500 1.625rem/1.2 var(--serif); }
.guide-access-v2 .eyebrow { margin: 0; }
.guide-access-v2 .guide-access-form-block { padding-top: 1rem; }
.guide-access-v2 .guide-access-form-block > p { color: var(--muted); font-size: .9375rem; }
.ui-mobile-v2 .nav-menu-desktop-label { display: none; }
.ui-mobile-v2 .header-inner > .more-navigation > summary > .nav-menu-mobile-label { font-size: .7rem; }
.ui-mobile-v2 .navigation-group a { min-height: var(--tap); }
.account-layout { display: grid; gap: 1.25rem; align-items: start; }
.account-navigation { display: flex; gap: .35rem; max-width: 100%; overflow-x: auto; padding-bottom: .5rem; scrollbar-width: thin; scroll-behavior: auto; }
.account-navigation a { flex-shrink: 0; display: flex; align-items: center; min-height: var(--tap); padding: .55rem .8rem; border: 1px solid var(--border-soft); border-radius: var(--radius-sm); color: var(--muted); text-decoration: none; font-size: .875rem; }
.account-navigation a[aria-current] { color: var(--gold-light); border-color: var(--gold-dark); background: rgba(212,168,63,.08); }
.account-workspace { min-width: 0; }
.account-workspace > .shell { width: 100%; margin-inline: 0; }
.account-workspace .mobile-account { padding-top: 0; max-width: 100%; }
.account-workspace .auth-panel { width: 100%; }
.account-workspace .mobile-account .row-title { display: block; overflow: visible; }
@media (max-width: 57.99rem) {
    .ui-mobile-v2 .account-layout:has(.mobile-account) { width: 100%; gap: 0; }
    .ui-mobile-v2 .page-shell:has(.mobile-account) { padding-top: 0; }
    .account-layout:has(.mobile-account) > .account-navigation { display: none; }
    .account-workspace .mobile-account { width: calc(100% - 2rem); margin-inline: auto; padding-top: 1.5rem; gap: 1.25rem; }
    .account-workspace:has(.mobile-account) > .task-bar { padding-inline: 1rem; }
}
/* Game declarations stay distinct from verified memberships and tool identity. */
.account-game-page, .account-password-page { gap: 1.25rem; padding-block: 0 1rem; }
.account-game-page .page-heading, .account-password-page .page-heading { margin: 0; }
.account-game-page .page-heading p, .account-password-page .page-heading p { max-width: 65ch; margin-bottom: 0; color: var(--muted); font-size: .9375rem; }
.account-game-layout, .account-game-context { display: grid; gap: 1rem; align-items: start; min-width: 0; }
.account-game-layout > .auth-panel, .account-password-page > .auth-panel { width: 100%; min-width: 0; padding: 1rem; border-radius: .85rem; }
.account-game-page h2 { margin-top: 0; font: 600 1.25rem/1.3 var(--serif); }
.account-game-page .auth-panel > p, .account-context-card p { color: var(--muted); font-size: .875rem; overflow-wrap: anywhere; }
.account-context-card { min-width: 0; padding: 1rem; border: 1px solid var(--border-soft); border-radius: .85rem; background: var(--bg-elevated); }
.account-context-card > :last-child { margin-bottom: 0; }
.account-game-page .profile-grid { grid-template-columns: minmax(0,1fr); }
.account-game-page .detail-card { padding: .75rem; }
.account-game-page .detail-card strong { overflow-wrap: anywhere; }
.account-game-context .session-card { flex-direction: column; align-items: start; gap: .5rem; padding: .75rem; background: transparent; }
.account-game-context .row-title { display: block; overflow: visible; }
.account-game-page .field label small { margin-left: .25rem; color: var(--quiet); font-size: .75rem; font-weight: 400; }
.account-alliance-fields { display: grid; gap: 1rem; min-width: 0; }
.account-game-page .field { min-width: 0; }
.account-security-notice { padding-top: .75rem; border-top: 1px solid var(--border-soft); }
.account-password-page > .auth-panel { max-width: 34rem; }
@media (min-width: 40rem) { .account-alliance-fields { grid-template-columns: minmax(5rem,.45fr) minmax(0,1fr); } }
/* Help follows the same writing / context hierarchy as the other workspaces. */
.ui-mobile-v2 :is(.contact-page, .site-feedback-page, .support-page) { gap: 1rem; padding-block: 1rem 2rem; }
.ui-mobile-v2 :is(.contact-page, .site-feedback-page, .support-page) h2 { font: 600 1.25rem/1.35 var(--serif); }
.ui-mobile-v2 .contact-page .legal-header { display: grid; justify-items: start; gap: .65rem; padding-block: .5rem 1rem; margin: 0; }
.ui-mobile-v2 .contact-page .legal-header > * { margin: 0; }
.ui-mobile-v2 .contact-page .legal-header h1 { max-width: none; }
.ui-mobile-v2 .contact-layout { grid-template-columns: minmax(0,1fr); }
.ui-mobile-v2 :is(.contact-page, .site-feedback-page) .lead { max-width: 65ch; font-size: 1rem; }
.ui-mobile-v2 :is(.contact-page, .site-feedback-page, .support-page) .auth-panel { width: 100%; min-width: 0; padding: 1rem; border-radius: .85rem; }
.ui-mobile-v2 :is(.contact-page, .site-feedback-page, .support-page) textarea { min-height: 10rem; }
.ui-mobile-v2 :is(.support-before-send, .support-options) { padding: .6rem .85rem; border: 1px solid var(--border-soft); border-radius: .85rem; background: var(--bg-elevated); }
.ui-mobile-v2 :is(.support-before-send, .support-options) > summary { min-height: var(--tap); padding-block: .65rem; cursor: pointer; color: var(--gold-light); font-weight: 600; }
.ui-mobile-v2 :is(.support-before-send, .support-options) p { font-size: .875rem; overflow-wrap: anywhere; }
.ui-mobile-v2 .support-options > .field { margin-block: .75rem; }
.ui-mobile-v2 .support-options .checkbox-field { margin: .75rem 0 0; }
.ui-mobile-v2 .support-history { padding-top: 1rem; }
.ui-mobile-v2 :is(.contact-page, .site-feedback-page) .support-ticket-card { gap: .5rem; padding: .85rem; background: var(--bg-elevated); }
.ui-mobile-v2 :is(.contact-page, .site-feedback-page) .support-ticket-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .65rem; }
.ui-mobile-v2 .support-page .support-message { width: 100%; min-width: 0; max-width: none; border-radius: .85rem; }
.ui-mobile-v2 .support-page .support-message-staff { margin-left: 0; border-left: 3px solid var(--gold-dark); }
.ui-mobile-v2 .support-page .support-message header strong { font-size: .875rem; }
.ui-mobile-v2 .support-page .page-heading > .button-row { flex-shrink: 0; }
.ui-mobile-v2 .support-page .pagination { flex-wrap: wrap; }
.ui-mobile-v2 :is(#support-reply-form, #contact-history-title, #feedback-history) { scroll-margin-top: 6rem; }
.home-v2-recent { gap: .75rem; }
.home-v2-recent .row-list { margin: 0; }
.home-v2 .home-v2-heading h2 { color: var(--gold-light); font: 800 .6875rem/1.4 var(--sans); letter-spacing: .14em; text-transform: uppercase; }
/* Guest home, handoff 8a: compact hero, useful choices and recent guides. */
.home-guest-v2 { display: grid; gap: 1.125rem; padding-block: .375rem 2rem; }
.home-guest-v2 > * { min-width: 0; }
.home-guest-hero { display: grid; grid-template-columns: minmax(0,1fr) 96px; gap: .875rem; align-items: center; }
.home-guest-hero > div { display: grid; gap: .5rem; min-width: 0; }
.home-guest-hero h1 { margin: 0; font: 500 1.875rem/1.08 var(--serif); overflow-wrap: anywhere; }
.home-guest-hero p { margin: 0; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.home-guest-hero > img { width: 96px; height: 96px; object-fit: contain; filter: drop-shadow(0 12px 16px rgba(0,0,0,.5)); }
.home-guest-gifts, .home-guest-tools, .home-guest-recent { display: grid; gap: .5rem; }
.home-guest-v2 h2 { margin: 0; color: var(--gold); font: 800 .6875rem/1.5 var(--sans); letter-spacing: .16em; text-transform: uppercase; }
.home-guest-gifts > .home-v2-empty { padding: .75rem .875rem; border: 1px solid var(--border-soft); border-radius: 12px; background: var(--bg-elevated); font-size: .8125rem; }
.home-guest-v2 .home-v2-gift { grid-template-columns: minmax(0,1fr) auto; padding: .625rem .625rem .625rem .875rem; border-radius: 12px; }
.home-guest-v2 .home-v2-gift code { color: var(--text); }
.home-guest-v2 .home-v2-tools { grid-template-columns: repeat(2,minmax(0,1fr)); }
.home-guest-v2 .home-v2-tile { min-height: 96px; align-content: end; gap: .375rem; background: var(--bg-elevated); border-radius: 12px; }
.home-guest-v2 .home-v2-tile strong { font-size: .875rem; font-weight: 600; line-height: 1.5; }
.home-guest-v2 .home-v2-tile small { font-size: .75rem; line-height: 1.5; color: var(--muted); font-weight: 400; }
.home-guest-v2 .home-v2-heading { min-height: 44px; margin-block: -.5rem; }
.home-guest-v2 .home-v2-heading a { font-size: .8125rem; text-decoration: none; }
.home-guest-recent .row { grid-template-columns: 44px minmax(0,1fr) 24px; gap: .75rem; padding: .625rem; background: var(--bg-elevated); border-radius: 14px; }
.home-guest-recent .row-media img { width: 82%; height: 82%; object-fit: contain; }
.home-guest-recent .row-title { font-size: .875rem; font-weight: 600; line-height: 1.3; }
.home-guest-recent .row-meta { font-size: .75rem; }
.home-guest-v2 .mobile-account-callout { display: grid; gap: .5rem; padding: 1rem; border: 1px solid var(--border-soft); border-radius: 14px; background: var(--bg-elevated); text-align: center; }
.home-guest-v2 .mobile-account-callout > strong { font-size: .9375rem; font-weight: 600; }
.home-guest-v2 .mobile-account-callout p { margin: 0; font-size: .8125rem; line-height: 1.5; }
.home-guest-v2 .button { font-size: .875rem; font-weight: 600; box-shadow: none; }
@media (max-width: 57.99rem) {
    .ui-mobile-v2 .shell { width: calc(100% - 2rem); }
    .ui-mobile-v2 .shell.analytics-consent { width: 100%; }
    .ui-mobile-v2:has(.login-v2) .bottom-nav { display: none; }
    .ui-mobile-v2:has(.login-v2) .analytics-consent { bottom: env(safe-area-inset-bottom); }
    .ui-mobile-v2:has(.login-v2) .toast-region { bottom: calc(.5rem + var(--ui-consent-height,0px) + env(safe-area-inset-bottom)); }
    .ui-mobile-v2:has(.login-v2) .site-footer { padding-bottom: 2rem; }
}
@media (min-width: 58rem) {
    .ui-mobile-v2 .header-inner { min-height: 72px; gap: 1.1rem; }
    .ui-mobile-v2 .header-inner > .brand { max-width: 19rem; }
    .ui-mobile-v2 .header-inner > .more-navigation > summary { flex-direction: row; min-height: 44px; padding-inline: .8rem; }
    .ui-mobile-v2 .header-inner > .more-navigation > summary > .nav-menu-desktop-label { display: inline; font-size: .875rem; }
    .ui-mobile-v2 .nav-menu-mobile-label { display: none; }
    .ui-mobile-v2 .more-navigation-panel { width: 21rem; max-height: calc(100dvh - 6rem); overflow-y: auto; }
    .ui-mobile-v2 .desktop-nav a { padding-inline: .9rem; }
    .ui-mobile-v2 :is(.page-heading, .auth-panel, .legal-header, .error-page) h1 { font-size: 1.875rem; }
    .account-layout { grid-template-columns: 15rem minmax(0, 1fr); gap: 2.5rem; max-width: 66rem; padding-block: 1rem 2rem; }
    .account-navigation { display: grid; position: sticky; top: 6rem; padding: 0; }
    .account-navigation a { border-color: transparent; }
    .account-workspace > .shell { max-width: none; }
    .ui-mobile-v2 .legal-page { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: 0 2.5rem; max-width: 70rem; }
    .ui-mobile-v2 .legal-page > .legal-header { grid-column: 2; }
    .ui-mobile-v2 .legal-toc { grid-column: 1; grid-row: 1 / span 2; align-self: start; position: sticky; top: 6rem; margin: 0; max-height: calc(100dvh - 7rem); overflow-y: auto; }
    .ui-mobile-v2 .legal-toc ol { grid-template-columns: minmax(0, 1fr); }
    .ui-mobile-v2 .legal-content { grid-column: 2; }
    .account-workspace > .task-bar { position: static; justify-content: start; grid-template-columns: minmax(0,1fr); padding: 0 0 1.25rem; margin-bottom: 1rem; }
    .account-workspace > .task-bar > .task-bar-back { display: none; }
    .account-workspace > .task-bar h1 { font-size: 1.875rem; justify-self: start; }
    .home-guest-v2 { grid-template-columns: minmax(0,1fr) 22.5rem; gap: 1.5rem 2.5rem; align-items: start; padding-top: .75rem; }
    .home-guest-hero { grid-column: 1; grid-row: 1 / span 2; grid-template-columns: minmax(0,1fr) 128px; min-height: 11rem; }
    .home-guest-hero h1 { max-width: 20ch; font-size: 2.375rem; }
    .home-guest-hero p { max-width: 44ch; font-size: .9375rem; }
    .home-guest-hero > img { width: 128px; height: 128px; }
    .home-guest-tools { grid-column: 2; grid-row: 1 / span 3; }
    .home-guest-gifts { grid-column: 1; }
    .home-guest-recent { grid-column: 1; }
    .home-guest-v2 > .mobile-account-callout { grid-column: 2; grid-row: 4; }
}
@media (min-width: 64rem) {
    .account-game-layout { grid-template-columns: minmax(0,1.3fr) minmax(14rem,1fr); gap: 1.25rem; }
    .account-workspace .mobile-account { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; align-items: start; }
    .account-workspace .mobile-account > .mobile-account-identity { grid-column: 1 / -1; }
    .account-workspace .mobile-account > section { min-width: 0; padding-top: 1rem; border-top: 1px solid var(--border-soft); }
    .account-workspace .mobile-account > form { grid-column: 1 / -1; max-width: 22rem; width: 100%; }
    .ui-mobile-v2 :is(.contact-page, .site-feedback-page, .support-page) { max-width: 74rem; }
    .ui-mobile-v2 .contact-page:has(.contact-layout), .ui-mobile-v2 .site-feedback-page:has(> .auth-panel), .ui-mobile-v2 .support-page:has(> form) { display: grid; grid-template-columns: minmax(0,1fr) 22rem; gap: 1.25rem 2rem; align-items: start; }
    .ui-mobile-v2 :is(.contact-page, .site-feedback-page, .support-page) > header { grid-column: 1 / -1; }
    .ui-mobile-v2 .contact-page:has(.contact-layout) { grid-template-rows: auto min-content 1fr; }
    .ui-mobile-v2 .contact-layout { display: contents; }
    .ui-mobile-v2 .contact-layout > .auth-panel { grid-column: 1; grid-row: 2 / span 2; }
    .ui-mobile-v2 .contact-layout > .support-before-send { grid-column: 2; grid-row: 2; }
    .ui-mobile-v2 .contact-page > .support-history { grid-column: 2; grid-row: 3; }
    .ui-mobile-v2 .site-feedback-page > .auth-panel { grid-column: 1; grid-row: 2; }
    .ui-mobile-v2 .site-feedback-page > .support-history { grid-column: 2; grid-row: 2; }
    .ui-mobile-v2 .site-feedback-page > p { grid-column: 1; }
    .ui-mobile-v2 .support-history { min-width: 0; padding: .85rem; border: 1px solid var(--border-soft); border-radius: .85rem; background: var(--bg-elevated); }
    .ui-mobile-v2 .support-history h2 { margin: 0; }
    .ui-mobile-v2 .support-history .support-ticket-card { flex-direction: column; align-items: stretch; padding-inline: 0; border: 0; border-radius: 0; border-bottom: 1px solid var(--border-soft); background: transparent; }
    .ui-mobile-v2 .support-history .support-ticket-card:last-child { border-bottom: 0; }
    .ui-mobile-v2 .support-page:has(> form) { grid-template-columns: minmax(0,1fr) minmax(20rem,26rem); }
    .ui-mobile-v2 .support-page > .support-thread { grid-column: 1; grid-row: 2; min-width: 0; }
    .ui-mobile-v2 .support-page > :is(.pagination, .legal-callout) { grid-column: 1; }
    .ui-mobile-v2 .support-page > form { grid-column: 2; grid-row: 2 / span 3; margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .ui-mobile-v2 { scroll-behavior: auto; }
}
