/* Galaxy content pages - same void as command center home */

body.command-center.galaxy-page {
 overflow-x: hidden;
 overflow-y: auto;
 background: #000;
 color: #fff;
 font-family: var(--cc-body, "Source Sans 3", system-ui, sans-serif);
}

body.command-center.galaxy-page.galaxy {
 overflow-y: auto;
 overflow-x: hidden;
}

.galaxy-page-shell {
 min-height: auto;
}

.galaxy-top--bar,
.gx-static-header {
 display: flex !important;
 flex-wrap: wrap;
 align-items: center;
 justify-content: space-between;
 gap: 0.75rem 1.25rem;
 padding: 1rem 1.25rem 0.85rem;
 border-bottom: 1px solid rgba(255, 255, 255, 0.14);
 position: sticky;
 top: 0;
 z-index: 200;
 background: #000;
 background: rgba(0, 0, 0, 0.95);
 backdrop-filter: blur(14px);
 visibility: visible !important;
 opacity: 1 !important;
 min-height: 3.5rem;
 width: 100%;
 box-sizing: border-box;
}

/* Keep logo + Home visible even when word-nav collapses on small screens */
.galaxy-top-left {
 display: flex !important;
 visibility: visible !important;
 opacity: 1 !important;
 z-index: 201;
}

.gx-home-btn {
 visibility: visible !important;
 opacity: 1 !important;
}

.galaxy-brand,
.galaxy-brand .fs-logo-name,
.galaxy-brand .galaxy-brand-name {
 color: #fff !important;
 visibility: visible !important;
}

.galaxy-top-left {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.75rem 1rem;
}

/* Explicit Home control - always visible on section pages */
.gx-home-btn {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 padding: 0.45rem 0.95rem;
 border-radius: 999px;
 border: 1px solid rgba(255, 255, 255, 0.45);
 background: rgba(255, 255, 255, 0.06);
 color: #fff !important;
 text-decoration: none !important;
 font-family: var(--cc-display, "Sora", system-ui, sans-serif);
 font-size: 0.72rem;
 font-weight: 600;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.gx-home-btn:hover,
.gx-home-btn:focus-visible {
 background: #fff;
 color: #000 !important;
 border-color: #fff;
 box-shadow: 0 0 20px rgba(255, 255, 255, 0.25);
 outline: none;
}

.galaxy-nav-inline {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.15rem 0.85rem;
}

.galaxy-nav-inline .galaxy-word {
 font-size: 0.72rem;
 letter-spacing: 0.12em;
 padding: 0.35em 0;
 color: rgba(255, 255, 255, 0.45);
}

.galaxy-nav-inline .galaxy-word:hover,
.galaxy-nav-inline .galaxy-word:focus-visible,
.galaxy-nav-inline .galaxy-word.is-active {
 color: #fff;
 transform: none;
 letter-spacing: 0.14em;
 text-shadow:
 0 0 8px rgba(255, 255, 255, 0.85),
 0 0 24px rgba(255, 255, 255, 0.35);
}

.galaxy-nav-inline .galaxy-word.is-active {
 font-weight: 600;
}

.galaxy-content {
 position: relative;
 z-index: 1;
 width: 100%;
 max-width: 1080px;
 margin: 0 auto;
 padding: 1.75rem 1.25rem 5rem;
}

.galaxy-content :where(h1, h2, h3) {
 font-family: var(--cc-display, "Sora", system-ui, sans-serif);
 font-weight: 600;
 letter-spacing: 0.04em;
 color: #fff;
}

.galaxy-content h1 {
 font-size: clamp(1.65rem, 4vw, 2.35rem);
 line-height: 1.15;
 margin: 0 0 0.65rem;
}

.galaxy-content h2 {
 font-size: 1.15rem;
 text-transform: uppercase;
 letter-spacing: 0.14em;
 margin: 0 0 0.75rem;
}

.galaxy-content p,
.galaxy-content li {
 color: rgba(255, 255, 255, 0.72);
 line-height: 1.55;
}

.galaxy-content a:not(.btn):not(.gx-card):not(.galaxy-word) {
 color: #fff;
 text-decoration: underline;
 text-underline-offset: 0.18em;
 text-decoration-color: rgba(255, 255, 255, 0.35);
}

.galaxy-content a:not(.btn):not(.gx-card):hover {
 text-decoration-color: #fff;
}

.gx-kicker {
 margin: 0 0 0.4rem;
 font-family: var(--cc-display, "Sora", system-ui, sans-serif);
 font-size: 0.72rem;
 letter-spacing: 0.2em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.4);
}

.gx-lede {
 font-size: 1.05rem;
 max-width: 38rem;
 margin: 0 0 1.5rem;
 color: rgba(255, 255, 255, 0.65) !important;
}

.gx-meta {
 font-size: 0.85rem;
 color: rgba(255, 255, 255, 0.4) !important;
}

.gx-panel {
 border: 1px solid rgba(255, 255, 255, 0.12);
 background: rgba(255, 255, 255, 0.03);
 border-radius: 1rem;
 padding: 1.15rem 1.25rem;
 margin: 0 0 1.25rem;
}

.gx-panel-glow {
 box-shadow: 0 0 40px rgba(255, 255, 255, 0.04);
}

.gx-grid {
 display: grid;
 gap: 1rem;
}

@media (min-width: 720px) {
 .gx-grid.two {
 grid-template-columns: 1fr 1fr;
 }
}

.gx-card {
 display: block;
 text-decoration: none;
 color: inherit;
 border: 1px solid rgba(255, 255, 255, 0.12);
 background: rgba(255, 255, 255, 0.03);
 border-radius: 1rem;
 padding: 1.1rem 1.15rem;
 transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.gx-quotes {
 margin-top: 0.85rem;
 border-top: 1px solid rgba(255, 255, 255, 0.1);
 padding-top: 0.65rem;
 display: flex;
 flex-direction: column;
 gap: 0.4rem;
}

.gx-quote-row {
 display: grid;
 grid-template-columns: 1fr auto auto;
 gap: 0.5rem 0.75rem;
 align-items: center;
 font-size: 0.85rem;
 color: rgba(255, 255, 255, 0.7);
 padding: 0.35rem 0.45rem;
 border-radius: 0.45rem;
}

.gx-quote-row.is-lowest {
 background: rgba(255, 255, 255, 0.06);
 border: 1px solid rgba(255, 255, 255, 0.14);
}

.gx-quote-row strong {
 color: #fff;
 font-variant-numeric: tabular-nums;
}

.gx-quote-row a {
 color: #fff !important;
 font-size: 0.78rem;
 letter-spacing: 0.04em;
 text-transform: uppercase;
}

.gx-pill-low {
 border-color: rgba(255, 255, 255, 0.55) !important;
 color: #fff !important;
 margin-left: 0.25rem;
}

/* -  Pulse filter bar -  */
.gx-filter-bar {
 border: 1px solid rgba(255, 255, 255, 0.14);
 border-radius: 1rem;
 background: rgba(255, 255, 255, 0.03);
 padding: 1.1rem 1.15rem 1.2rem;
 margin: 0 0 1.35rem;
}

.gx-filter-bar-head {
 display: flex;
 align-items: center;
 justify-content: space-between;
 gap: 0.75rem;
 margin-bottom: 0.9rem;
}

.gx-filter-title {
 margin: 0 !important;
 font-size: 0.78rem !important;
 letter-spacing: 0.18em !important;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.5) !important;
}

.gx-filter-reset {
 background: transparent;
 border: none;
 color: rgba(255, 255, 255, 0.55);
 font-size: 0.8rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 cursor: pointer;
 text-decoration: underline;
 text-underline-offset: 0.2em;
 padding: 0.25rem 0;
}

.gx-filter-reset:hover {
 color: #fff;
}

.gx-filter-grid {
 display: grid;
 gap: 0.75rem 0.85rem;
 grid-template-columns: 1fr;
}

@media (min-width: 560px) {
 .gx-filter-grid {
 grid-template-columns: 1fr 1fr;
 }
}

@media (min-width: 900px) {
 .gx-filter-grid {
 grid-template-columns: repeat(4, 1fr);
 }
}

.gx-filter-bar .gx-field {
 min-width: 0;
 width: 100%;
}

.gx-field-label {
 display: block;
 margin-bottom: 0.35rem;
}

.gx-filter-bar select {
 width: 100%;
 appearance: none;
 -webkit-appearance: none;
 background-color: rgba(0, 0, 0, 0.65);
 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='1.5' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
 background-repeat: no-repeat;
 background-position: right 0.85rem center;
 color: #fff;
 border: 1px solid rgba(255, 255, 255, 0.28);
 border-radius: 0.7rem;
 padding: 0.7rem 2.2rem 0.7rem 0.85rem;
 font-size: 0.95rem;
 letter-spacing: normal;
 text-transform: none;
 font-family: var(--cc-body, system-ui, sans-serif);
 cursor: pointer;
 transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.gx-filter-bar select:hover {
 border-color: rgba(255, 255, 255, 0.5);
}

.gx-filter-bar select:focus {
 outline: none;
 border-color: #fff;
 box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35);
}

.gx-filter-bar select option {
 background: #0a0a0c;
 color: #fff;
}

.gx-filter-actions {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 gap: 0.65rem 0.85rem;
 margin-top: 1rem;
 padding-top: 0.9rem;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.gx-filter-summary {
 margin: 0;
 flex: 1 1 100%;
 font-size: 0.82rem;
 color: rgba(255, 255, 255, 0.45);
 letter-spacing: 0.02em;
}

@media (min-width: 720px) {
 .gx-filter-summary {
 flex: 1 1 auto;
 text-align: right;
 }
}

/* Source slots (keys later) */
.gx-sources-panel {
 margin-bottom: 1.25rem;
}

.gx-sources-head {
 display: flex;
 flex-wrap: wrap;
 justify-content: space-between;
 gap: 0.5rem 1rem;
 margin-bottom: 0.85rem;
}

.gx-source-slots {
 display: grid;
 gap: 0.65rem;
}

@media (min-width: 720px) {
 .gx-source-slots {
 grid-template-columns: repeat(3, 1fr);
 }
}

.gx-source-slot {
 border: 1px solid rgba(255, 255, 255, 0.12);
 border-radius: 0.75rem;
 padding: 0.75rem 0.85rem;
 background: rgba(0, 0, 0, 0.35);
 display: flex;
 flex-direction: column;
 gap: 0.2rem;
}

.gx-source-slot--soon {
 opacity: 0.85;
 border-style: dashed;
}

.gx-source-name {
 font-family: var(--cc-display, "Sora", system-ui, sans-serif);
 font-size: 0.85rem;
 font-weight: 600;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: #fff;
}

.gx-source-role {
 font-size: 0.78rem;
 color: rgba(255, 255, 255, 0.45);
}

.gx-source-state {
 margin-top: 0.35rem;
 font-size: 0.78rem;
 color: rgba(255, 255, 255, 0.55);
}

.gx-source-state.is-on {
 color: rgba(180, 255, 200, 0.9);
}

code {
 font-family: ui-monospace, Consolas, monospace;
 font-size: 0.85em;
}

.gx-card:hover,
.gx-card:focus-visible {
 border-color: rgba(255, 255, 255, 0.45);
 background: rgba(255, 255, 255, 0.06);
 box-shadow: 0 0 28px rgba(255, 255, 255, 0.08);
 outline: none;
}

.gx-card h3 {
 margin: 0.35rem 0 0.4rem;
 font-size: 1.05rem;
 letter-spacing: 0.02em;
}

.gx-card-price {
 font-family: var(--cc-display, "Sora", system-ui, sans-serif);
 font-size: 1.55rem;
 font-weight: 600;
 color: #fff;
 letter-spacing: 0.02em;
}

.gx-card-price-label {
 display: block;
 font-size: 0.72rem;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.38);
 margin-top: 0.15rem;
}

.gx-pill-row {
 display: flex;
 flex-wrap: wrap;
 gap: 0.4rem;
 margin-bottom: 0.5rem;
}

.gx-pill {
 display: inline-flex;
 align-items: center;
 padding: 0.2rem 0.55rem;
 border: 1px solid rgba(255, 255, 255, 0.18);
 border-radius: 999px;
 font-size: 0.68rem;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.7);
}

.badge-sample,
.badge.badge-sample {
 display: inline-flex;
 align-items: center;
 padding: 0.2rem 0.5rem;
 border-radius: 999px;
 font-size: 0.65rem;
 font-weight: 700;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: #000;
 background: #fff;
}

.gx-trust {
 display: flex;
 gap: 0.75rem;
 align-items: flex-start;
 padding: 0.9rem 1rem;
 border: 1px solid rgba(255, 255, 255, 0.14);
 border-radius: 0.85rem;
 background: rgba(255, 255, 255, 0.04);
 margin: 0 0 1.25rem;
}

.gx-trust p {
 margin: 0;
 font-size: 0.9rem;
 color: rgba(255, 255, 255, 0.62) !important;
}

.gx-controls {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 align-items: flex-end;
 margin: 0 0 1.25rem;
}

.gx-field {
 display: flex;
 flex-direction: column;
 gap: 0.35rem;
 font-size: 0.72rem;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.45);
 min-width: min(100%, 16rem);
}

.gx-field select,
.gx-field input {
 appearance: none;
 background: rgba(0, 0, 0, 0.55);
 color: #fff;
 border: 1px solid rgba(255, 255, 255, 0.22);
 border-radius: 0.65rem;
 padding: 0.65rem 0.8rem;
 font-size: 0.95rem;
 letter-spacing: normal;
 text-transform: none;
 font-family: var(--cc-body, system-ui, sans-serif);
}

.gx-field select:focus,
.gx-field input:focus {
 outline: none;
 border-color: rgba(255, 255, 255, 0.65);
 box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.25);
}

.btn,
.gx-btn {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 0.4rem;
 border-radius: 999px;
 padding: 0.65rem 1.15rem;
 font-family: var(--cc-display, "Sora", system-ui, sans-serif);
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 text-decoration: none !important;
 border: 1px solid transparent;
 cursor: pointer;
 transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.btn-primary,
.gx-btn-primary {
 background: #fff;
 color: #000 !important;
 border-color: #fff;
}

.btn-primary:hover,
.gx-btn-primary:hover {
 background: rgba(255, 255, 255, 0.88);
 box-shadow: 0 0 24px rgba(255, 255, 255, 0.25);
}

.btn-secondary,
.btn-ghost,
.gx-btn-ghost {
 background: transparent;
 color: #fff !important;
 border-color: rgba(255, 255, 255, 0.35);
}

.btn-secondary:hover,
.btn-ghost:hover,
.gx-btn-ghost:hover {
 border-color: #fff;
 box-shadow: 0 0 18px rgba(255, 255, 255, 0.12);
}

.gx-status {
 margin: 0 0 1rem;
 font-size: 0.9rem;
 color: rgba(255, 255, 255, 0.55);
}

.gx-status.status-ok { color: rgba(180, 255, 200, 0.85); }
.gx-status.status-info { color: rgba(255, 255, 255, 0.55); }
.gx-status.status-error { color: rgba(255, 160, 160, 0.9); }

.gx-change.is-down { color: rgba(160, 255, 190, 0.9); }
.gx-change.is-up { color: rgba(255, 170, 170, 0.9); }
.gx-change.is-flat { color: rgba(255, 255, 255, 0.5); }

.gx-table-wrap {
 overflow-x: auto;
 border: 1px solid rgba(255, 255, 255, 0.12);
 border-radius: 0.85rem;
}

table.data,
.gx-table {
 width: 100%;
 border-collapse: collapse;
 font-size: 0.9rem;
}

table.data th,
table.data td,
.gx-table th,
.gx-table td {
 text-align: left;
 padding: 0.7rem 0.85rem;
 border-bottom: 1px solid rgba(255, 255, 255, 0.08);
 color: rgba(255, 255, 255, 0.75);
}

table.data th,
.gx-table th {
 font-size: 0.68rem;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.4);
 font-weight: 600;
}

table.data tr:last-child td,
.gx-table tr:last-child td {
 border-bottom: none;
}

.galaxy-page-footer {
 position: relative;
 z-index: 1;
 border-top: 1px solid rgba(255, 255, 255, 0.08);
 padding: 1.75rem 1.25rem 2.5rem;
 max-width: 1080px;
 margin: 0 auto;
}

/* Slim bottom-only footer (About · Contact · legal) */
.galaxy-page-footer.site-footer--slim {
 padding: 1.35rem 1.25rem 2rem;
 text-align: center;
 max-width: 42rem;
}

.galaxy-page-footer .footer-inline {
 display: flex;
 flex-wrap: wrap;
 align-items: center;
 justify-content: center;
 gap: 0.35rem 0.55rem;
 font-size: 0.82rem;
 line-height: 1.4;
}

.galaxy-page-footer .footer-inline a {
 color: rgba(255, 255, 255, 0.72);
 text-decoration: none;
 letter-spacing: 0.02em;
}

.galaxy-page-footer .footer-inline a:hover,
.galaxy-page-footer .footer-inline a:focus-visible {
 color: #fff;
 text-decoration: underline;
 outline: none;
}

.galaxy-page-footer .footer-dot {
 color: rgba(255, 255, 255, 0.28);
 user-select: none;
}

.galaxy-page-footer .footer-email-quiet {
 color: rgba(255, 255, 255, 0.4);
 font-size: 0.78rem;
}

.galaxy-page-footer .footer-grid {
 display: grid;
 gap: 1.25rem;
}

@media (min-width: 720px) {
 .galaxy-page-footer .footer-grid {
 grid-template-columns: 1.4fr 1fr 1fr;
 }
}

.galaxy-page-footer a {
 color: rgba(255, 255, 255, 0.7);
 text-decoration: none;
}

.galaxy-page-footer a:hover {
 color: #fff;
}

.galaxy-page-footer ul {
 list-style: none;
 margin: 0.4rem 0 0;
 padding: 0;
}

.galaxy-page-footer li {
 margin: 0.25rem 0;
}

.galaxy-page-footer strong {
 font-size: 0.72rem;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.45);
}

.galaxy-page-footer .footer-legal {
 margin: 0.85rem 0 0;
 font-size: 0.72rem;
 color: rgba(255, 255, 255, 0.35);
 line-height: 1.45;
}

.site-footer--slim .footer-legal {
 margin-top: 0.75rem;
}

.galaxy-page-footer .footer-legal--disclaimer,
.galaxy-foot--links .footer-legal--disclaimer {
 max-width: 36rem;
 margin-left: auto;
 margin-right: auto;
 font-size: 0.68rem;
 color: rgba(255, 255, 255, 0.38);
 line-height: 1.5;
}

.galaxy-page-footer .footer-legal--disclaimer a,
.galaxy-foot--links .footer-legal--disclaimer a {
 color: rgba(255, 255, 255, 0.55);
 text-decoration: underline;
}

.galaxy-page-footer .footer-legal--disclaimer a:hover,
.galaxy-foot--links .footer-legal--disclaimer a:hover {
 color: #fff;
}

.galaxy-page-footer .footer-legal--disclaimer strong {
 color: rgba(255, 255, 255, 0.5);
 font-weight: 600;
}

.cs-planet--wide {
 max-width: 28rem;
}

.cs-legal-mini {
 margin: 1.25rem 0 0;
 font-size: 0.75rem;
 color: rgba(255, 255, 255, 0.38);
 line-height: 1.45;
}

.cs-legal-mini a {
 color: rgba(255, 255, 255, 0.55);
}

.trust-strip {
 position: relative;
 z-index: 1;
 max-width: 1080px;
 margin: 0 auto;
 padding: 0.65rem 1.25rem;
 font-size: 0.8rem;
 color: rgba(255, 255, 255, 0.45);
 border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.trust-strip strong {
 color: rgba(255, 255, 255, 0.7);
}

.empty-state,
.gd-empty {
 border: 1px solid rgba(255, 255, 255, 0.14);
 border-radius: 1rem;
 padding: 1.5rem;
 background: rgba(255, 255, 255, 0.03);
}

.skip-link {
 position: absolute;
 left: -999px;
 top: 0;
 background: #fff;
 color: #000;
 padding: 0.5rem 0.75rem;
 z-index: 100;
}

.skip-link:focus {
 left: 0.5rem;
 top: 0.5rem;
}

.nav-toggle {
 display: none;
}

/* -  Bridges for older page class names (Game Day, learn, etc.) -  */
.galaxy-content .wrap,
.wrap {
 width: 100%;
 max-width: none;
 margin: 0;
 padding: 0;
}

.gd-hero,
.gd-essentials,
.gd-slate-block,
.gd-footer-note {
 margin-bottom: 2rem;
}

.gd-kicker,
.gd-kicker-ink {
 margin: 0 0 0.4rem;
 font-family: var(--cc-display, "Sora", system-ui, sans-serif);
 font-size: 0.72rem;
 letter-spacing: 0.2em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.4);
}

.gd-lede {
 font-size: 1.05rem;
 max-width: 38rem;
 color: rgba(255, 255, 255, 0.65);
}

.gd-hero-actions,
.gd-next-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem;
 margin-top: 1rem;
}

.gd-btn-primary,
a.gd-btn-primary,
button.gd-btn-primary {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-radius: 999px;
 padding: 0.65rem 1.15rem;
 font-family: var(--cc-display, "Sora", system-ui, sans-serif);
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 text-decoration: none !important;
 background: #fff;
 color: #000 !important;
 border: 1px solid #fff;
 cursor: pointer;
}

.gd-btn-ghost,
.gd-btn-ghost-ink,
a.gd-btn-ghost,
a.gd-btn-ghost-ink {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 border-radius: 999px;
 padding: 0.65rem 1.15rem;
 font-family: var(--cc-display, "Sora", system-ui, sans-serif);
 font-size: 0.78rem;
 font-weight: 600;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 text-decoration: none !important;
 background: transparent;
 color: #fff !important;
 border: 1px solid rgba(255, 255, 255, 0.35);
 cursor: pointer;
}

.gd-essentials-grid,
.gd-grid {
 display: grid;
 gap: 1rem;
}

@media (min-width: 720px) {
 .gd-essentials-grid { grid-template-columns: repeat(3, 1fr); }
 .gd-grid { grid-template-columns: 1fr 1fr; }
}

.gd-essential,
.gd-card,
.gd-next {
 display: block;
 text-decoration: none;
 color: inherit;
 border: 1px solid rgba(255, 255, 255, 0.12);
 background: rgba(255, 255, 255, 0.03);
 border-radius: 1rem;
 padding: 1.1rem 1.15rem;
 transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

a.gd-essential:hover,
a.gd-card:hover {
 border-color: rgba(255, 255, 255, 0.45);
 background: rgba(255, 255, 255, 0.06);
 box-shadow: 0 0 28px rgba(255, 255, 255, 0.08);
}

.gd-essential-num {
 display: block;
 font-size: 0.72rem;
 letter-spacing: 0.16em;
 color: rgba(255, 255, 255, 0.35);
 margin-bottom: 0.35rem;
}

.gd-controls {
 display: flex;
 flex-wrap: wrap;
 gap: 0.75rem;
 align-items: flex-end;
 margin: 0 0 1.25rem;
}

.gd-field {
 display: flex;
 flex-direction: column;
 gap: 0.35rem;
 font-size: 0.72rem;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.45);
 min-width: min(100%, 16rem);
}

.gd-field select {
 appearance: none;
 background: rgba(0, 0, 0, 0.55);
 color: #fff;
 border: 1px solid rgba(255, 255, 255, 0.22);
 border-radius: 0.65rem;
 padding: 0.65rem 0.8rem;
 font-size: 0.95rem;
 text-transform: none;
 letter-spacing: normal;
}

.gd-trust {
 display: flex;
 gap: 0.75rem;
 align-items: flex-start;
 padding: 0.9rem 1rem;
 border: 1px solid rgba(255, 255, 255, 0.14);
 border-radius: 0.85rem;
 background: rgba(255, 255, 255, 0.04);
 margin: 0 0 1.25rem;
}

.gd-card-price {
 font-family: var(--cc-display, "Sora", system-ui, sans-serif);
 font-size: 1.45rem;
 font-weight: 600;
 color: #fff;
}

.gd-card-price-label {
 display: block;
 font-size: 0.72rem;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.38);
}

.gd-pill {
 display: inline-flex;
 padding: 0.2rem 0.55rem;
 border: 1px solid rgba(255, 255, 255, 0.18);
 border-radius: 999px;
 font-size: 0.68rem;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.7);
}

.gd-card-top {
 display: flex;
 flex-wrap: wrap;
 gap: 0.4rem;
 margin-bottom: 0.45rem;
}

.gd-card-change.is-down { color: rgba(160, 255, 190, 0.9); }
.gd-card-change.is-up { color: rgba(255, 170, 170, 0.9); }
.gd-card-go {
 display: inline-block;
 margin-top: 0.65rem;
 font-size: 0.85rem;
 color: rgba(255, 255, 255, 0.55);
}

.gd-hero-glow { display: none; }
.gd-loading,
.gd-source-foot,
.gd-hero-meta,
.gd-card-when,
.gd-card-venue {
 color: rgba(255, 255, 255, 0.5);
 font-size: 0.9rem;
}

.card {
 border: 1px solid rgba(255, 255, 255, 0.12);
 background: rgba(255, 255, 255, 0.03);
 border-radius: 1rem;
 padding: 1.15rem 1.25rem;
}

.grid.two {
 display: grid;
 gap: 1rem;
}

@media (min-width: 720px) {
 .grid.two { grid-template-columns: 1fr 1fr; }
}

.hero .lede,
.lede {
 color: rgba(255, 255, 255, 0.65);
 max-width: 38rem;
}

.meta, .muted, .small {
 color: rgba(255, 255, 255, 0.45);
 font-size: 0.9rem;
}

.price {
 font-family: var(--cc-display, "Sora", system-ui, sans-serif);
 font-size: 1.6rem;
 font-weight: 600;
 color: #fff;
}

.feature-list {
 padding-left: 1.1rem;
 color: rgba(255, 255, 255, 0.7);
}

.disclaimer-box {
 border: 1px solid rgba(255, 255, 255, 0.14);
 border-radius: 0.75rem;
 padding: 0.85rem 1rem;
 background: rgba(255, 255, 255, 0.04);
 margin-bottom: 1rem;
}

.pill-row {
 display: flex;
 flex-wrap: wrap;
 gap: 0.4rem;
 margin-bottom: 0.65rem;
}

.pill {
 display: inline-flex;
 padding: 0.2rem 0.55rem;
 border: 1px solid rgba(255, 255, 255, 0.18);
 border-radius: 999px;
 font-size: 0.68rem;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.7);
}

.table-wrap {
 overflow-x: auto;
 border: 1px solid rgba(255, 255, 255, 0.12);
 border-radius: 0.85rem;
}

.hero-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem;
 margin-top: 1rem;
}

/* --- Stadium media (compact, even, not page-eating) --- */
.gx-media-frame {
 position: relative;
 display: block;
 width: 100%;
 aspect-ratio: 16 / 9;
 max-height: 11rem;
 overflow: hidden;
 border-radius: 0.75rem;
 border: 1px solid rgba(255, 255, 255, 0.12);
 background:
  radial-gradient(ellipse at 50% 30%, rgba(255, 255, 255, 0.06), transparent 55%),
  linear-gradient(160deg, #151b2c, #0a0e18 70%);
}

.gx-media-frame--hero {
 max-height: none;
 aspect-ratio: 16 / 9;
 margin: 0;
 border: 0;
 border-radius: 0;
 background: #05070d;
}

.gx-media-frame--card {
 max-height: 11.5rem;
 margin: 0 0 0.85rem;
 border-radius: 0.85rem 0.85rem 0 0;
 border: 0;
 border-bottom: 1px solid rgba(255, 255, 255, 0.1);
 background: #05070d;
 overflow: hidden;
}

.gx-media-frame--slot {
 max-height: 8.5rem;
 margin-top: 0.75rem;
 border-style: dashed;
 border-color: rgba(140, 220, 170, 0.28);
}

.gx-media-frame img {
 width: 100%;
 height: 100%;
 /* contain = show whole photo (letterbox if needed); cover was cropping */
 object-fit: contain;
 object-position: center center;
 display: block;
 position: relative;
 z-index: 1;
}

/* Card photos: edge-to-edge fill (immersive). Hero can still contain full exterior. */
.gx-media-frame--card img {
 object-fit: cover;
 object-position: center center;
 width: 100%;
 height: 100%;
 max-width: none;
 max-height: none;
 margin: 0;
 position: absolute;
 inset: 0;
 z-index: 1;
 transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.gx-media-frame--hero img {
 object-fit: cover;
 object-position: center center;
 width: 100%;
 height: 100%;
 max-width: none;
 max-height: none;
 margin: 0;
 position: absolute;
 inset: 0;
 z-index: 1;
}

.gx-media-frame--hero {
 position: relative;
}

.gx-media-frame--card {
 position: relative;
}

/* Small photo credit watermark */
.gx-media-credit {
 position: absolute;
 right: 0.45rem;
 bottom: 0.4rem;
 z-index: 4;
 max-width: min(92%, 18rem);
 margin: 0;
 padding: 0.18rem 0.45rem;
 border-radius: 0.3rem;
 background: rgba(0, 0, 0, 0.55);
 color: rgba(255, 255, 255, 0.78);
 font-size: 0.58rem;
 font-weight: 500;
 letter-spacing: 0.04em;
 line-height: 1.25;
 text-align: right;
 pointer-events: none;
 backdrop-filter: blur(4px);
 white-space: nowrap;
 overflow: hidden;
 text-overflow: ellipsis;
}

.gx-media-frame--hero .gx-media-credit {
 right: 0.65rem;
 bottom: 0.55rem;
 font-size: 0.62rem;
 padding: 0.22rem 0.5rem;
 max-width: min(90%, 22rem);
}

.gx-media-frame--card .gx-media-credit {
 font-size: 0.52rem;
 max-width: 85%;
}

.st-hero-media .gx-media-credit {
 /* sit above title gradient, still readable */
 bottom: 0.55rem;
}

/* Fan day facts */
.st-facts {
 margin-top: 1.5rem;
}

.st-facts-grid {
 display: grid;
 gap: 0.75rem;
}

@media (min-width: 720px) {
 .st-facts-grid {
  grid-template-columns: 1fr 1fr;
 }
}

.st-fact {
 border: 1px solid rgba(140, 180, 255, 0.16);
 border-radius: 0.85rem;
 background:
  linear-gradient(150deg, rgba(40, 80, 160, 0.12), rgba(10, 14, 28, 0.4));
 padding: 0.9rem 1rem 0.95rem;
 box-shadow: 0 0 20px rgba(80, 140, 255, 0.05);
 transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.st-fact:hover {
 border-color: rgba(180, 210, 255, 0.35);
 box-shadow: 0 0 28px rgba(100, 160, 255, 0.12);
}

.st-fact h3 {
 margin: 0 0 0.4rem;
 font-size: 0.98rem;
}

.st-fact p {
 margin: 0;
 color: rgba(255, 255, 255, 0.82);
 font-size: 0.9rem;
 line-height: 1.45;
}

.st-fact-source {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 margin-top: 0.55rem;
 font-size: 0.68rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.45);
}

.st-fact-source a {
 color: rgba(255, 255, 255, 0.7) !important;
 text-decoration: none !important;
 text-transform: none;
 letter-spacing: 0.02em;
 font-size: 0.78rem;
}

.st-fact-source a:hover {
 color: #fff !important;
 text-decoration: underline !important;
}

.st-source-pill {
 display: inline-block;
 padding: 0.12rem 0.4rem;
 border-radius: 999px;
 border: 1px solid rgba(255, 255, 255, 0.16);
 background: rgba(255, 255, 255, 0.06);
 color: rgba(255, 255, 255, 0.65);
 font-size: 0.62rem;
 letter-spacing: 0.08em;
 text-transform: uppercase;
}

.st-source-pill[data-source="team"] { border-color: rgba(120, 180, 255, 0.35); }
.st-source-pill[data-source="venue"] { border-color: rgba(160, 220, 160, 0.35); }
.st-source-pill[data-source="nfl"] { border-color: rgba(255, 200, 120, 0.35); }
.st-source-pill[data-source="reddit"] { border-color: rgba(255, 140, 100, 0.4); }

.st-facts-empty {
 margin: 0.5rem 0 0;
 color: rgba(255, 255, 255, 0.42);
 font-size: 0.88rem;
 font-style: italic;
}

.gx-media-ph {
 position: absolute;
 inset: 0;
 z-index: 0;
 display: flex;
 flex-direction: column;
 align-items: center;
 justify-content: center;
 gap: 0.35rem;
 padding: 0.75rem;
 text-align: center;
 pointer-events: none;
}

/* Hide placeholder when a real photo is visible */
.gx-media-frame:has(img:not([hidden])):not(:has(img[style*="display: none"])) .gx-media-ph {
 opacity: 0;
}

.gx-media-ph-icon {
 width: 2.25rem;
 height: 2.25rem;
 opacity: 0.45;
 color: rgba(255, 255, 255, 0.75);
}

.gx-media-ph-label {
 margin: 0;
 font-size: 0.68rem;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.42);
}

.gx-media-ph-name {
 margin: 0;
 font-size: 0.82rem;
 font-weight: 600;
 color: rgba(255, 255, 255, 0.62);
 max-width: 90%;
 line-height: 1.25;
}

.gx-card {
 overflow: hidden;
 padding-top: 0;
}

/* Bleed media full-bleed to card edges (cancel horizontal padding) */
.gx-card .gx-media-frame--card {
 margin-left: -1.15rem;
 margin-right: -1.15rem;
 margin-top: 0;
 margin-bottom: 0.9rem;
 width: calc(100% + 2.3rem);
 max-width: none;
 border-radius: 0.95rem 0.95rem 0 0;
}

.gx-card .gx-card-body {
 padding-top: 0.15rem;
}

/* --- Modern stadium detail (space / command theme) --- */
.galaxy-page main#main-content {
 position: relative;
}

.galaxy-page main#main-content::before {
 content: "";
 pointer-events: none;
 position: fixed;
 inset: 0;
 z-index: 0;
 background:
  radial-gradient(ellipse 80% 50% at 10% 0%, rgba(80, 140, 255, 0.08), transparent 55%),
  radial-gradient(ellipse 60% 40% at 90% 20%, rgba(160, 100, 255, 0.06), transparent 50%),
  radial-gradient(ellipse 50% 30% at 50% 100%, rgba(40, 200, 180, 0.05), transparent 55%);
}

.galaxy-page main#main-content > * {
 position: relative;
 z-index: 1;
}

.st-crumb {
 margin: 0 0 0.75rem;
}

.st-hero {
 position: relative;
 border-radius: 1.15rem;
 overflow: hidden;
 border: 1px solid rgba(140, 180, 255, 0.22);
 background:
  linear-gradient(145deg, rgba(20, 28, 48, 0.95), rgba(6, 10, 20, 0.98));
 margin: 0 0 1.15rem;
 box-shadow:
  0 0 0 1px rgba(255, 255, 255, 0.04) inset,
  0 0 40px rgba(80, 140, 255, 0.12),
  0 24px 60px rgba(0, 0, 0, 0.45);
}

.st-hero-media {
 position: relative;
 min-height: 15rem;
 max-height: 24rem;
}

.st-hero-media .gx-media-frame--hero {
 min-height: 15rem;
 max-height: 24rem;
 width: 100%;
}

.st-hero-media::after {
 content: "";
 position: absolute;
 inset: 0;
 z-index: 2;
 pointer-events: none;
 /* lighter veil so full photo stays readable */
 background:
  linear-gradient(180deg, transparent 0%, transparent 45%, rgba(0, 0, 0, 0.55) 78%, rgba(0, 0, 0, 0.88) 100%);
}

.st-hero-copy {
 position: absolute;
 left: 0;
 right: 0;
 bottom: 0;
 z-index: 3;
 padding: 1.15rem 1.25rem 1.2rem;
}

.st-hero-copy h1 {
 margin: 0.2rem 0 0.35rem;
 font-size: clamp(1.55rem, 3.4vw, 2.35rem);
 line-height: 1.1;
 letter-spacing: -0.02em;
 text-shadow: 0 2px 24px rgba(0, 0, 0, 0.55);
}

.st-hero-sub {
 margin: 0;
 color: rgba(255, 255, 255, 0.78);
 font-size: 0.98rem;
 max-width: 40rem;
}

.st-chip-row {
 display: flex;
 flex-wrap: wrap;
 gap: 0.4rem;
 margin: 0.75rem 0 0;
}

.st-chip {
 display: inline-flex;
 align-items: center;
 gap: 0.35rem;
 padding: 0.28rem 0.65rem;
 border-radius: 999px;
 border: 1px solid rgba(255, 255, 255, 0.18);
 background: rgba(0, 0, 0, 0.35);
 backdrop-filter: blur(8px);
 color: rgba(255, 255, 255, 0.88);
 font-size: 0.72rem;
 letter-spacing: 0.06em;
 text-transform: uppercase;
 text-decoration: none !important;
}

.st-chip a,
a.st-chip {
 color: #fff !important;
}

.st-chip--soft {
 text-transform: none;
 letter-spacing: 0.02em;
 font-size: 0.78rem;
}

.st-chip--free {
 border-color: rgba(120, 220, 160, 0.4);
 background: rgba(60, 140, 100, 0.28);
 color: rgba(220, 255, 230, 0.95);
}

.st-stat-strip {
 display: grid;
 grid-template-columns: repeat(3, minmax(0, 1fr));
 gap: 0.65rem;
 margin: 0 0 1.25rem;
}

@media (max-width: 640px) {
 .st-stat-strip {
  grid-template-columns: 1fr;
 }
 .st-hero-media,
 .st-hero-media .gx-media-frame--hero {
  min-height: 12rem;
  max-height: 16rem;
 }
}

.st-stat {
 border: 1px solid rgba(140, 180, 255, 0.18);
 border-radius: 0.85rem;
 background:
  linear-gradient(165deg, rgba(80, 140, 255, 0.08), rgba(255, 255, 255, 0.02));
 padding: 0.85rem 0.95rem;
 box-shadow: 0 0 24px rgba(60, 120, 255, 0.06);
}

.st-stat-label {
 display: block;
 margin: 0 0 0.25rem;
 font-size: 0.68rem;
 letter-spacing: 0.14em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.45);
}

.st-stat-value {
 margin: 0;
 font-size: 1.05rem;
 font-weight: 600;
 color: #fff;
 line-height: 1.25;
}

.st-section-head {
 display: flex;
 align-items: baseline;
 justify-content: space-between;
 gap: 0.75rem;
 margin: 1.5rem 0 0.75rem;
}

.st-section-head h2 {
 margin: 0 !important;
 font-size: 1.05rem !important;
 letter-spacing: 0.04em;
}

.st-section-head p {
 margin: 0;
 color: rgba(255, 255, 255, 0.45);
 font-size: 0.82rem;
}

.st-panel {
 border: 1px solid rgba(140, 180, 255, 0.16);
 border-radius: 1rem;
 background:
  linear-gradient(165deg, rgba(60, 100, 200, 0.1), rgba(255, 255, 255, 0.02) 55%);
 padding: 1.15rem 1.2rem 1.2rem;
 box-shadow: 0 0 28px rgba(80, 140, 255, 0.05);
 backdrop-filter: blur(8px);
}

.st-panel h2,
.st-panel h3 {
 margin-top: 0;
}

.st-panel-kicker {
 margin: 0 0 0.35rem;
 font-size: 0.68rem;
 letter-spacing: 0.16em;
 text-transform: uppercase;
 color: rgba(255, 255, 255, 0.42);
}

.st-actions {
 display: flex;
 flex-wrap: wrap;
 gap: 0.5rem;
 margin-top: 1rem;
}

.st-photo-credit {
 margin: 0.45rem 0 0;
 font-size: 0.72rem;
 color: rgba(255, 255, 255, 0.38);
}

/* Free-only game-day sections (no paid lots/clubs - tickets & merch are separate) */
.gx-free-note,
.st-free-banner {
 margin: 0 0 1.15rem;
 padding: 0.85rem 1rem;
 border-radius: 0.85rem;
 border: 1px solid rgba(120, 220, 160, 0.24);
 background:
  linear-gradient(120deg, rgba(70, 160, 110, 0.14), rgba(40, 80, 120, 0.08));
 color: rgba(220, 255, 230, 0.86);
 font-size: 0.9rem;
 line-height: 1.45;
}

.gx-free-grid,
.st-free-grid {
 display: grid;
 gap: 1rem;
 margin-top: 0.35rem;
}

@media (min-width: 900px) {
 .gx-free-grid,
 .st-free-grid {
  grid-template-columns: 1fr 1fr 1fr;
 }
}

.gx-free-panel,
.st-free-card {
 border: 1px solid rgba(100, 220, 180, 0.18);
 border-radius: 1rem;
 background:
  linear-gradient(165deg, rgba(40, 120, 100, 0.1), rgba(10, 14, 28, 0.35));
 padding: 1.1rem 1.15rem 1.15rem;
 min-height: 100%;
 box-shadow: 0 0 24px rgba(60, 200, 160, 0.06);
}

.st-free-banner {
 position: relative;
 overflow: hidden;
}

.st-free-banner::before {
 content: "";
 position: absolute;
 inset: -40% auto auto -10%;
 width: 40%;
 height: 180%;
 background: linear-gradient(110deg, transparent, rgba(120, 220, 255, 0.08), transparent);
 transform: skewX(-18deg);
 pointer-events: none;
}

.gx-free-panel h2,
.st-free-card h2 {
 margin: 0 0 0.35rem !important;
 font-size: 1.05rem !important;
}

.gx-free-panel .gx-meta,
.st-free-card .gx-meta {
 margin-top: 0.2rem;
}

.gx-empty-slot {
 margin: 0.5rem 0 0;
 font-size: 0.82rem;
 color: rgba(255, 255, 255, 0.42);
 font-style: italic;
}

.gx-list-tight {
 margin: 0.45rem 0 0;
 padding-left: 1.1rem;
}

.gx-list-tight li {
 margin: 0.35rem 0;
 color: rgba(255, 255, 255, 0.84);
 line-height: 1.4;
}

/* Stadium list cards - premium depth + life */
.gx-card.st-card {
 padding-top: 0;
 background: rgba(255, 255, 255, 0.035);
 border-color: rgba(255, 255, 255, 0.14);
 box-shadow:
  0 8px 28px rgba(0, 0, 0, 0.35),
  0 0 0 1px rgba(255, 255, 255, 0.03) inset;
 transition:
  transform 0.28s cubic-bezier(0.22, 1, 0.36, 1),
  border-color 0.28s ease,
  box-shadow 0.28s ease,
  background 0.28s ease;
}

.gx-card.st-card:hover,
.gx-card.st-card:focus-visible {
 transform: translateY(-5px);
 border-color: rgba(255, 255, 255, 0.42);
 background: rgba(255, 255, 255, 0.055);
 box-shadow:
  0 18px 44px rgba(0, 0, 0, 0.48),
  0 0 28px rgba(255, 255, 255, 0.12),
  0 0 0 1px rgba(255, 255, 255, 0.08) inset;
 outline: none;
}

.gx-card.st-card:hover .gx-media-frame--card img,
.gx-card.st-card:focus-visible .gx-media-frame--card img {
 transform: scale(1.05);
}

/* Space-witty CTA chip */
.st-card-cta {
 display: inline-flex;
 align-items: center;
 gap: 0.4rem;
 margin: 0.85rem 0 0;
 padding: 0.48rem 0.85rem;
 border-radius: 999px;
 border: 1px solid rgba(255, 255, 255, 0.42);
 background: rgba(255, 255, 255, 0.06);
 font-size: 0.68rem;
 font-weight: 600;
 letter-spacing: 0.1em;
 text-transform: uppercase;
 color: #fff;
 box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);
 transition:
  background 0.2s ease,
  border-color 0.2s ease,
  box-shadow 0.2s ease,
  color 0.2s ease,
  transform 0.2s ease;
}

.gx-card.st-card:hover .st-card-cta,
.gx-card.st-card:focus-visible .st-card-cta {
 background: #fff;
 color: #000;
 border-color: #fff;
 box-shadow: 0 0 22px rgba(255, 255, 255, 0.35);
 transform: translateX(2px);
}

@media (prefers-reduced-motion: reduce) {
 .gx-card.st-card,
 .gx-card.st-card:hover,
 .gx-media-frame--card img {
  transition: none;
  transform: none;
 }
 .gx-card.st-card:hover .gx-media-frame--card img {
  transform: none;
 }
}


@media (max-width: 760px) {
 .nav-toggle {
 display: inline-flex;
 background: transparent;
 border: 1px solid rgba(255, 255, 255, 0.3);
 color: #fff;
 border-radius: 999px;
 padding: 0.4rem 0.85rem;
 font-size: 0.72rem;
 letter-spacing: 0.12em;
 text-transform: uppercase;
 cursor: pointer;
 }

 .galaxy-nav-inline {
 display: none;
 width: 100%;
 flex-direction: column;
 align-items: flex-start;
 padding-top: 0.35rem;
 }

 .galaxy-nav-inline.is-open {
 display: flex;
 }

 .galaxy-top--bar {
 align-items: flex-start;
 }
}

/* landing B/W lock v21 — signal only in stadium-explore deep chips */
