/* Public identity. Scoped to keep the administration workspace independent. */
@font-face { font-family: Barlow; font-style: normal; font-weight: 300; font-display: swap; src: url('/assets/fonts/barlow-light.ttf') format('truetype'); }
@font-face { font-family: Barlow; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/fonts/barlow-regular.ttf') format('truetype'); }
@font-face { font-family: Barlow; font-style: normal; font-weight: 500; font-display: swap; src: url('/assets/fonts/barlow-medium.ttf') format('truetype'); }
@font-face { font-family: Barlow; font-style: normal; font-weight: 600; font-display: swap; src: url('/assets/fonts/barlow-semibold.ttf') format('truetype'); }
@font-face { font-family: Barlow; font-style: normal; font-weight: 700; font-display: swap; src: url('/assets/fonts/barlow-bold.ttf') format('truetype'); }
@font-face { font-family: 'Barlow Condensed'; font-style: normal; font-weight: 700; font-display: swap; src: url('/assets/fonts/barlow-condensed-bold.ttf') format('truetype'); }

.public-site {
  --px-bg: #070908;
  --px-bg-soft: #0b0e0c;
  --px-surface: #101411;
  --px-surface-raised: #151a16;
  --px-surface-hover: #192019;
  --px-border: #2c362f;
  --px-border-strong: #526959;
  --px-text: #f3f5ed;
  --px-text-soft: #bec9bf;
  --px-muted: #a0afa4;
  --px-green: #4bc84b;
  --px-green-bright: #70ee70;
  --px-green-deep: #2f8f4d;
  --px-green-soft: rgba(75,200,75,.12);
  --px-glow: 0 0 24px rgba(75,200,75,.24);
  --px-font-body: Barlow, 'Segoe UI', sans-serif;
  --px-font-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --px-shell: min(1280px, calc(100% - 96px));
  --px-shell-wide: min(1480px, calc(100% - 96px));
  --px-header-height: 80px;
  --bg: var(--px-bg);
  --bg-2: var(--px-bg-soft);
  --text: var(--px-text);
  --muted: var(--px-muted);
  --accent: var(--px-green);
  background: var(--px-bg);
  color: var(--px-text);
  font-family: var(--px-font-body);
  font-size: 16px;
  line-height: 1.6;
}
body.public-site { background: var(--px-bg); }
.public-site :is(h1,h2,h3,h4) { font-family: var(--px-font-display); font-weight: 700; }
.public-site main:focus { outline: none; }
.public-site :is(a,button,input,select,textarea,summary):focus-visible { outline: 2px solid var(--px-green-bright); outline-offset: 5px; }
.public-site :is(section, [id]) { scroll-margin-top: 104px; }
.public-site .skip-link { position: fixed; z-index: 1000; top: 12px; left: 20px; padding: 12px 20px; border-radius: 5px; background: var(--px-green-bright); color: #101512; transform: translateY(-180%); }
.public-site .skip-link:focus { transform: translateY(0); }
.public-site :is(.eyebrow,.cinematic-kicker) { color: var(--px-muted); font-size: .875rem; font-weight: 500; text-transform: none; letter-spacing: 0; line-height: 1.5; }
.public-site .btn { min-height: 44px; padding: 12px 18px; border-radius: 5px; font-size: .9375rem; line-height: 1.2; font-weight: 300; letter-spacing: 0; box-shadow: none; }
.public-site .btn:hover { transform: translateY(-2px); }
.public-site .btn:active { transform: translateY(0); }
.public-site .btn-primary { border-color: rgba(112,238,112,.4); background: var(--px-green); color: #071008; box-shadow: var(--px-glow); }
.public-site .btn-primary:hover { border-color: var(--px-green-bright); background: var(--px-green-bright); color: #071008; box-shadow: 0 0 36px rgba(75,200,75,.4); }
.public-site .btn-outline { border-color: var(--px-border-strong); background: transparent; }
.public-site .btn-outline:hover { background: var(--px-surface-hover); }
.public-site .site-header, .public-site .site-header.is-scrolled { min-height: var(--px-header-height); border-bottom: 1px solid rgba(75,200,75,.16); background: var(--px-bg); backdrop-filter: none; transition: background-color .3s ease, border-color .3s ease; }
.public-site.home-cinematic .site-header { background: rgba(7,9,8,.88); }
.public-site.home-cinematic .site-header.is-scrolled { background: rgba(7,9,8,.98); border-bottom-color: rgba(75,200,75,.3); }
.public-site .site-header .nav-wrap { width: var(--px-shell); min-height: var(--px-header-height); gap: 24px; }
.public-site .brand { min-height: 44px; gap: 9px; font-size: 1.1875rem; }
.public-site .brand::before { width: 36px; height: 36px; }
.public-site .brand-word { font-weight: 700; letter-spacing: -.03em; }
.public-site .brand-suffix { color: var(--px-green); font-size: .6875rem; }
.public-site .nav-links { gap: 2px; }
.public-site .nav-links a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 10px; color: #b9c3bb; font-size: .9375rem; font-weight: 500; letter-spacing: 0; border-radius: 4px; }
.public-site .nav-links a:hover { color: #f3f5ed; background: rgba(255,255,255,.05); }
.public-site .nav-links a[aria-current="page"] { background: transparent; color: var(--px-green-bright); box-shadow: inset 0 -2px var(--px-green); }
.public-site .auth-area { display: flex; flex-shrink: 0; gap: 8px; }
.public-site .header-session-btn { color: #d0d8cf; }
.public-site .auth-area .header-join-btn { display: inline-flex; padding-inline: 18px; }
.public-site .nav-links .mobile-home-link, .public-site .nav-links .mobile-session-link { display: none; }
.public-site .nav-toggle { flex-shrink: 0; width: 44px; height: 44px; color: var(--px-text); }
.public-site .site-footer { margin-top: 64px; background: var(--px-bg); border-color: var(--px-border); }
.public-site .footer-content { grid-template-columns: minmax(220px, 1fr) minmax(300px, 1.3fr) auto; gap: 36px; padding-block: 40px; }
.public-site .footer-brand strong { font-size: 1.125rem; }
.public-site .footer-brand p { max-width: 30ch; color: var(--px-muted); font-size: .875rem; }
.public-site .footer-links, .public-site .footer-policy-links { justify-content: flex-start; gap: 0 20px; }
.public-site .footer-links a, .public-site .footer-policy-links a { display: inline-flex; align-items: center; min-height: 44px; color: var(--px-text-soft); font-size: .875rem; font-weight: 400; }
.public-site .footer-policy-links a, .public-site .footer-legal, .public-site .footer-legal span { color: var(--px-muted); font-size: .8125rem; }
.public-site .footer-links a:hover, .public-site .footer-policy-links a:hover { color: var(--px-green-bright); }

/* A shared heading scale replaces the oversized, decorative page banners. */
.public-site :is(.partners-page,.streams-page,.news-index-page,.news-detail-page,.roadmap-cinematic-page,.gallery-page,.rules-cinematic-main) { background: var(--px-bg); }
.public-site :is(.partners-hero,.streams-hero,.news-index-hero) { padding-block: 64px 48px; background: var(--px-bg); border-bottom: 1px solid var(--px-border); }
.public-site :is(.partners-hero,.streams-hero)::before, .public-site :is(.partners-hero,.streams-hero)::after { display: none; }
.public-site :is(.partners-hero-inner,.partners-content,.streams-hero-inner,.streams-library) { width: var(--px-shell); }
.public-site :is(.partners-hero h1,.streams-hero h1,.news-index-hero h1,.roadmap-cinematic-head h1,.gallery-hero h1,.rules-document-header h1) { margin: 8px 0 18px; color: var(--px-text); font-size: clamp(3rem, 5.5vw, 5.25rem); font-weight: 700; line-height: 1.02; letter-spacing: -.02em; text-transform: none; }
.public-site :is(.partners-hero-copy > p:last-child,.streams-hero-copy > p:not(.eyebrow),.news-index-hero p:last-child,.roadmap-cinematic-head .subtitle,.rules-document-header > div > p:last-child,.gallery-hero .subtitle) { max-width: 62ch; color: var(--px-text-soft); font-size: 1.0625rem; line-height: 1.7; }
.public-site :is(.partners-directory-head h2,.streams-toolbar h2,.news-index-heading h2,.gallery-library-head h2,.roadmap-toolbar h2) { font-size: 2rem; letter-spacing: -.01em; text-transform: none; }
.public-site :is(.streams-hero-inner,.news-index-hero-inner) { grid-template-columns: minmax(0,1fr) auto; gap: 40px; }
.public-site .streams-live-summary { display: grid; grid-template-columns: 1fr; gap: 8px; min-width: 170px; padding: 24px 0 24px 28px; border: 0; border-left: 1px solid var(--px-border); background: none; border-radius: 0; box-shadow: none; }
.public-site .streams-live-summary > div { display: flex; align-items: baseline; gap: 12px; }
.public-site .streams-live-summary .live-indicator { writing-mode: horizontal-tb; transform: none; font-size: .875rem; letter-spacing: 0; text-transform: none; }
.public-site .streams-live-summary .live-indicator i { background: var(--px-green); box-shadow: none; }
.public-site .streams-live-summary strong { color: var(--px-text); font-family: var(--px-font-display); font-size: 3.5rem; font-weight: 700; }
.public-site :is(.streams-live-summary small,.streams-toolbar .muted,.streams-status,.news-index-count span) { color: var(--px-muted); font-size: .9375rem; }
.public-site .live-indicator { color: var(--px-green-bright); font-size: .8125rem; }
.public-site .news-index-count { border-color: var(--px-border); border-radius: 7px; background: var(--px-surface); }
.public-site .news-index-count strong { color: var(--px-text); font-family: var(--px-font-display); }
.public-site :is(.news-index-card,.stream-card,.news-detail-aside) { background: var(--px-surface); border-color: var(--px-border); box-shadow: none; }
.public-site :is(.news-index-card,.stream-card):hover { transform: translateY(-4px); border-color: var(--px-green); box-shadow: var(--px-glow); }
.public-site .news-index-card h2 { font-family: var(--px-font-body); font-size: 1.5rem; font-weight: 600; letter-spacing: -.025em; }
.public-site .news-card-excerpt { color: var(--px-text-soft); font-size: 1rem; }
.public-site :is(.news-date,.news-index-card-meta,.news-card-cta) { color: var(--px-muted); font-size: .875rem; letter-spacing: 0; text-transform: none; }
.public-site .news-card-cta { color: var(--px-green-bright); min-height: 44px; align-items: center; }
.public-site .news-detail-header h1 { font-size: clamp(3rem,5vw,5rem); font-weight: 700; letter-spacing: -.02em; }
.public-site .news-detail-content { color: var(--px-text-soft); font-size: 1.0625rem; line-height: 1.8; }
.public-site .news-detail-content :is(h2,h3) { color: var(--px-text); }
.public-site .stream-card-body h3 { font-family: var(--px-font-body); }

/* Partner offers stay visible without hover, including on touch screens. */
.public-site .partners-hero-inner { display: block; }
.public-site .partners-content { margin-top: 48px; }
.public-site .partners-hero .eyebrow span { display: none; }
.public-site .partners-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; border: 0; background: transparent; }
.public-site .partner-tile { display: flex; flex-direction: column; aspect-ratio: auto; overflow: hidden; border: 1px solid var(--px-border); border-radius: 8px; background: var(--px-surface); }
.public-site .partner-tile-visual { min-height: 210px; height: 210px; padding: 32px; background: var(--px-surface); }
.public-site .partner-tile-visual img { width: min(80%,220px); height: 130px; filter: none; opacity: 1; transition: transform .5s var(--px-ease), filter .5s ease; }
.public-site .partner-tile:hover .partner-tile-visual img, .public-site .partner-tile:focus-within .partner-tile-visual img { transform: scale(1.06); filter: drop-shadow(0 0 16px rgba(75,200,75,.14)); }
.public-site .partner-tile { transition: border-color .25s ease, box-shadow .25s ease; }
.public-site .partner-tile:hover, .public-site .partner-tile:focus-within { border-color: var(--px-green); box-shadow: var(--px-glow); }
.public-site .partner-tile-index { display: none; }
.public-site .partner-tile-name { justify-content: space-between; padding: 20px 24px 0; border: 0; }
.public-site .partner-tile-name h3 { color: var(--px-text); font-family: var(--px-font-body); font-size: 1.25rem; font-weight: 600; text-align: left; text-transform: none; letter-spacing: -.01em; white-space: normal; overflow-wrap: anywhere; }
.public-site .partner-tile-overlay { position: relative; inset: auto; z-index: 3; display: flex; flex: 1; flex-direction: column; justify-content: flex-start; gap: 16px; padding: 16px 24px 24px; max-height: none; border: 0; background: transparent; box-shadow: none; opacity: 1; visibility: visible; transform: none; pointer-events: none; }
.public-site .partner-tile-overlay :is(a,button) { pointer-events: auto; }
.public-site .partner-tile-subtitle { margin: 0; color: var(--px-text-soft); font-size: .9375rem; }
.public-site .partner-promo { margin-top: auto; min-height: 56px; background: var(--px-bg); border: 1px dashed var(--px-border-strong); border-radius: 4px; }
.public-site .partner-promo small { color: var(--px-muted); font-size: .75rem; text-transform: none; letter-spacing: 0; }
.public-site .partner-promo strong { color: var(--px-green-bright); }
.public-site .partner-promo em, .public-site .partner-tile-link { color: var(--px-text-soft); font-size: .875rem; letter-spacing: 0; text-transform: none; }
.public-site .partner-tile-link { min-height: 44px; padding: 10px 0; justify-content: space-between; border: 0; background: transparent; }
.public-site .partner-tile-link:hover { background: transparent; color: var(--px-green-bright); }
.public-site .partners-directory-head > p { color: var(--px-muted); font-size: .875rem; letter-spacing: 0; text-transform: none; }

/* Reading and utility pages retain their existing layouts and controls. */
.public-site .roadmap-cinematic-head { padding-bottom: 32px; margin-bottom: 32px; }
.public-site .roadmap-overview { gap: 16px; }
.public-site .roadmap-overview > article { background: var(--px-surface); border: 1px solid var(--px-border); border-radius: 8px; box-shadow: none; }
.public-site .roadmap-overview > article::before, .public-site .roadmap-overview > article::after { display: none; }
.public-site .roadmap-overview-top { font-size: .875rem; text-transform: none; letter-spacing: 0; }
.public-site .roadmap-overview-icon { display: none; }
.public-site .roadmap-overview-metric strong { font-family: var(--px-font-display); font-weight: 700; }
.public-site .roadmap-overview-metric > span, .public-site .roadmap-overview p { color: var(--px-text-soft); font-size: .875rem; }
.public-site .roadmap-status-board .kanban-column[data-status] { background: #141b16; border-color: var(--px-border); border-radius: 8px; }
.public-site .roadmap-column-head { background: transparent; }
.public-site .roadmap-status-board .kanban-card { background: var(--px-surface-raised); border-color: var(--px-border); box-shadow: none; }
.public-site .roadmap-status-board .kanban-card:hover { background: var(--px-surface-hover); transform: translateY(-3px); }
.public-site .roadmap-status-board .kanban-card h3 { font-family: var(--px-font-body); color: var(--px-text); font-size: 1rem; font-weight: 600; }
.public-site .roadmap-status-board .kanban-card > p, .public-site .roadmap-column-head p { color: var(--px-text-soft); font-size: .875rem; }
.public-site .roadmap-column-head h2 { font-family: var(--px-font-body); font-size: .9375rem; font-weight: 600; letter-spacing: 0; text-transform: none; }
.public-site .roadmap-status-board .kanban-card .meta-line, .public-site .roadmap-status-board .kanban-card .tag { color: var(--px-muted); font-size: .75rem; }
.public-site .roadmap-view-switch .view-btn { min-height: 44px; font-size: .875rem; }
.public-site .roadmap-list-main h3 { font-family: var(--px-font-body); font-size: 1rem; font-weight: 600; }
.public-site .roadmap-list-main p { color: var(--px-text-soft); font-size: .875rem; }
.public-site .roadmap-list-status, .public-site .roadmap-list-tag, .public-site .roadmap-list-detail.is-date strong { font-size: .8125rem; }
.public-site .roadmap-list-label, .public-site .roadmap-list-head { font-size: .75rem; letter-spacing: 0; text-transform: none; }
.public-site .rules-shell { width: var(--px-shell-wide); }
.public-site .rules-document-header { padding-block: 8px 24px; margin-bottom: 32px; }
.public-site .docs-content { background: var(--px-surface); border-color: var(--px-border); box-shadow: none; }
.public-site :is(.docs-sidebar,.docs-toc) { border-color: var(--px-border); background: var(--px-bg); box-shadow: none; }
.public-site .rules-page-head h2 { font-size: 2.5rem; text-transform: none; letter-spacing: -.02em; }
.public-site .rules-page-subtitle { color: var(--px-text-soft); font-size: 1rem; }
.public-site .docs-page-row a { min-height: 44px; color: var(--px-text-soft); font-size: .9375rem; }
.public-site .docs-page-row a.active { color: var(--px-green-bright); background: var(--px-green-soft); }
.public-site .md-content { color: var(--px-text-soft); font-size: 1rem; line-height: 1.8; }
.public-site .md-content :is(h1,h2,h3,h4) { color: var(--px-text); text-transform: none; letter-spacing: -.01em; }
.public-site .rules-page-link { background: var(--px-surface); border-color: var(--px-border); }
.public-site .gallery-hero, .public-site .gallery-hero-upload { background: var(--px-bg); }
.public-site.gallery-cinematic .gallery-hero .eyebrow { color: var(--px-muted); font-size: .875rem; letter-spacing: 0; text-transform: none; }
.public-site.gallery-cinematic .gallery-hero-upload .gallery-upload-head h2 { font-family: var(--px-font-body); font-size: 1.125rem; font-weight: 600; letter-spacing: -.02em; text-transform: none; }
.public-site .gallery-upload-head .muted, .public-site .gallery-hero-stats p { font-size: .8125rem; }
.public-site .gallery-drop-title { font-family: var(--px-font-body); font-size: .9375rem; font-weight: 600; letter-spacing: 0; text-transform: none; }
.public-site .gallery-drop-sub, .public-site .gallery-file-name { font-size: .8125rem; }
.public-site .gallery-empty h3 { font-family: var(--px-font-body); font-size: 1.25rem; font-weight: 600; }
.public-site .gallery-upload-head .muted, .public-site .gallery-dropzone .muted { color: var(--px-muted); }
.public-site .gallery-dropzone { border-color: var(--px-border-strong); background: var(--px-surface); }
.public-site .gallery-filter button { min-height: 44px; font-size: .875rem; }
.public-site .gallery-empty p { color: var(--px-text-soft); font-size: 1rem; }
.public-site .legal-hero { padding-block: 64px 48px; background: var(--px-bg); }
.public-site .legal-hero::after { display: none; }
.public-site .legal-hero h1 { font-size: clamp(3rem,5.5vw,5.25rem); font-weight: 700; line-height: 1.02; letter-spacing: -.02em; }
.public-site .legal-version :is(span,strong,time) { font-size: .8125rem; letter-spacing: 0; text-transform: none; }

/* Progressive enhancement: content stays readable if JavaScript is unavailable. */
.public-site [data-reveal] { opacity: 1; transform: none; }
.public-site.motion-ready [data-reveal] { opacity: 0; transform: translate3d(0,24px,0); transition: opacity .7s var(--px-ease), transform .8s var(--px-ease); transition-delay: var(--reveal-delay, 0ms); }
.public-site.motion-ready [data-reveal].is-visible { opacity: 1; transform: translate3d(0,0,0); }
.public-site.motion-ready :is(.news-index-card,.stream-card)[data-reveal].is-visible:hover { transform: translateY(-4px); }
.public-site .live-indicator i { animation: px-live-glow 2.4s ease-in-out infinite; }
@keyframes px-live-glow { 0%,100% { box-shadow: 0 0 0 0 rgba(75,200,75,.2); } 50% { box-shadow: 0 0 0 5px rgba(75,200,75,0); } }
@media (max-width: 1200px) {
  .public-site { --px-shell: calc(100% - 64px); --px-shell-wide: calc(100% - 64px); }
  .public-site .site-header .nav-wrap { gap: 16px; }
  .public-site .nav-links a { padding-inline: 8px; font-size: .875rem; }
  .public-site .header-session-btn { padding-inline: 8px; }
}
@media (max-width: 1080px) {
  .public-site .site-header .nav-wrap { position: static; justify-content: flex-start; }
  .public-site .nav-toggle { display: grid; place-items: center; order: 3; margin-left: 0; }
  .public-site .auth-area { order: 2; margin-left: auto; }
  .public-site .nav-links { display: none; position: absolute; top: 100%; left: 0; right: 0; margin: 0; max-height: calc(100svh - var(--px-header-height)); overflow-y: auto; padding: 16px 32px 24px; border: 0; border-bottom: 1px solid var(--px-border); border-radius: 0; background: var(--px-bg); box-shadow: 0 20px 24px rgba(0,0,0,.2); }
  .public-site .nav-links.is-open { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; }
  .public-site .nav-links a { font-size: 1rem; padding: 12px 16px; }
  .public-site .nav-links .mobile-home-link, .public-site .nav-links .mobile-session-link { display: flex; }
  .public-site .nav-links .mobile-session-link { grid-column: 1 / -1; margin-top: 8px; border-top: 1px solid var(--px-border); }
  .public-site .mobile-session-link button { min-height: 44px; width: 100%; padding: 12px 16px; border: 0; background: transparent; color: var(--px-text-soft); text-align: left; font-size: 1rem; cursor: pointer; }
  .public-site .header-session-btn, .public-site .auth-area form, .public-site .user-chip { display: none; }
  .public-site .footer-content { grid-template-columns: 1fr 1.4fr; text-align: left; }
  .public-site .footer-brand { justify-content: flex-start; }
  .public-site .footer-legal { grid-column: 1 / -1; text-align: left; }
}
@media (max-width: 760px) {
  .public-site { --px-shell: calc(100% - 40px); --px-shell-wide: calc(100% - 40px); --px-header-height: 72px; }
  .public-site :is(.partners-hero,.streams-hero,.news-index-hero) { padding-block: 44px 36px; }
  .public-site :is(.streams-hero-inner,.news-index-hero-inner) { grid-template-columns: 1fr; gap: 24px; }
  .public-site .streams-live-summary { display: flex; align-items: center; min-width: 0; gap: 24px; padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--px-border); }
  .public-site .streams-live-summary > div { display: flex; align-items: baseline; gap: 12px; }
  .public-site .streams-live-summary strong { font-size: 2.5rem; }
  .public-site .partners-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
  .public-site .partner-tile-visual { min-height: 170px; height: 170px; padding: 24px; }
  .public-site .footer-content { grid-template-columns: 1fr; gap: 20px; }
  .public-site .footer-links, .public-site .footer-policy-links { justify-content: flex-start; }
  .public-site .rules-shell { width: calc(100% - 32px); }
}
@media (max-width: 520px) {
  .public-site .site-header .nav-wrap { gap: 12px; }
  .public-site .brand::before { width: 30px; height: 30px; }
  .public-site .brand-word { font-size: 1.125rem; }
  .public-site .header-join-btn { padding-inline: 14px; font-size: .875rem; }
  .public-site .nav-links { padding: 12px 20px 20px; }
  .public-site .nav-links.is-open { grid-template-columns: 1fr; }
  .public-site .partners-grid { grid-template-columns: 1fr; }
  .public-site .partners-directory-head { align-items: start; flex-direction: column; gap: 12px; }
  .public-site .news-index-count { min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html:has(.public-site) { scroll-behavior: auto; }
  .public-site *, .public-site *::before, .public-site *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .public-site.motion-ready [data-reveal] { opacity: 1; transform: none; }
}
