/* Content layouts for the public directory, reading and library pages. */
.public-site .px-interior { min-height: calc(100svh - var(--px-header-height)); padding-bottom: 48px; }
.public-site .px-page-shell { width: var(--px-shell); margin-inline: auto; padding-top: 40px; }
.public-site .px-page-header { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin: 0 0 32px; padding: 0 0 28px; border-bottom: 1px solid var(--px-border); }
.public-site .px-page-heading { min-width: 0; }
.public-site .px-page-header h1 { margin: 0 0 12px; font-size: clamp(3rem, 4.8vw, 4.5rem); line-height: 1; letter-spacing: -.025em; text-transform: none; }
.public-site .px-page-header p { max-width: 65ch; margin: 0; color: var(--px-text-soft); font-size: 1.0625rem; line-height: 1.65; }
.public-site .px-page-action { flex: 0 0 auto; }
.public-site .px-interior svg { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.public-site .px-section-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 24px; }
.public-site .px-section-toolbar h2 { margin: 0; font-size: 2rem; letter-spacing: -.01em; text-transform: none; }
.public-site .px-section-toolbar p { margin: 0; color: var(--px-muted); font-size: .9375rem; }

/* Rules: chapter navigation and local contents share one sticky rail. */
.public-site .px-interior .rules-cinematic-docs { padding: 40px 0 0; }
.public-site .px-interior .rules-shell { width: var(--px-shell); max-width: 1280px; }
.public-site .px-interior .rules-layout,
.public-site .px-interior .rules-layout.has-docs-toc { display: grid; grid-template-columns: 248px minmax(0,1fr); align-items: start; gap: 44px; }
.public-site .px-interior .docs-sidebar { position: sticky; inset: auto; top: calc(var(--px-header-height) + 24px); width: auto; max-height: calc(100svh - var(--px-header-height) - 48px); padding: 0 22px 0 0; transform: none; scrollbar-width: thin; }
.public-site .px-interior .docs-sidebar-head { margin: 0 0 16px; }
.public-site .px-interior .docs-sidebar-head strong { font-size: 1rem; }
.public-site .px-interior .rules-search { margin-bottom: 18px; }
.public-site .px-interior .rules-search input { min-height: 46px; font-size: .875rem; }
.public-site .px-interior .docs-pages-list { gap: 4px; }
.public-site .px-interior .docs-page-row { min-width: 0; padding: 0; }
.public-site .px-interior .docs-page-row a { min-height: 46px; padding: 10px 12px; font-size: .9375rem; line-height: 1.5; text-transform: none; letter-spacing: 0; border-radius: 5px; }
.public-site .px-interior .docs-content { min-width: 0; padding: 28px 36px 32px; border: 1px solid var(--px-border) !important; border-radius: 10px !important; background: var(--px-bg-soft) !important; }
.public-site .px-interior .docs-content > * { max-width: 78ch; margin-inline: auto; }
.public-site .px-interior .breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; padding-bottom: 0; border: 0; color: var(--px-muted); font-size: .8125rem; text-transform: none; letter-spacing: 0; }
.public-site .px-interior .rules-page-head { margin-bottom: 28px; padding: 0 0 24px; border-bottom: 1px solid var(--px-border); }
.public-site .px-interior .rules-page-head h2 { margin: 0; font-size: clamp(2rem, 3vw, 3rem); line-height: 1.15; }
.public-site .px-interior .md-content { max-width: 78ch; font-size: 1rem; line-height: 1.85; }
.public-site .px-interior .docs-toc { display: block; position: static; width: auto; max-height: none; margin-top: 26px; padding: 22px 0 0; border-top: 1px solid var(--px-border) !important; }
.public-site .px-interior .docs-toc.hidden { display: none; }
.public-site .px-interior .px-toc-title { margin: 0 0 12px; color: var(--px-muted); font-size: .8125rem; }
.public-site .px-interior .docs-toc-list a { min-height: 44px; padding: 9px 10px; color: var(--px-text-soft); font-size: .8125rem; line-height: 1.5; font-weight: 400; letter-spacing: 0; text-transform: none; }
.public-site .px-interior .docs-toc-list a.active { color: var(--px-green-bright); background: var(--px-green-soft); }
.public-site .px-interior .rules-pagination { gap: 16px; margin-top: 40px; }
.public-site .px-interior .rules-page-link { min-width: 0; padding: 16px; }
.public-site .px-interior .rules-page-link strong { font-size: 1rem; text-transform: none; overflow-wrap: anywhere; }
.public-site .px-interior .rules-nav-trigger,
.public-site .px-interior .docs-sidebar-close { display: none; }

/* Streams: content and controls stay together; a single live gets a wide feature. */
.public-site .px-interior .streams-library { width: var(--px-shell); margin: 0 auto; padding: 0; }
.public-site .px-interior .streams-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin: 0 0 24px; padding: 0; border: 0; }
.public-site .px-streams-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; }
.public-site .px-streams-heading h2 { margin: 0; font-size: 2rem; }
.public-site .px-live-count { display: inline-flex; align-items: center; margin: 0; padding: 5px 12px; border: 1px solid rgba(75,200,75,.3); border-radius: 20px; color: var(--px-green-bright); font-size: .875rem; }
.public-site .px-live-count i { width: 6px; height: 6px; margin-right: 8px; border-radius: 50%; background: var(--px-green); box-shadow: var(--px-glow); animation: px-live-glow 2.4s ease-in-out infinite; }
.public-site .px-live-count strong { margin-right: 4px; }
.public-site .px-live-count.is-offline { border-color: var(--px-border); color: var(--px-muted); }
.public-site .px-live-count.is-offline i { background: var(--px-muted); box-shadow: none; animation: none; }
.public-site .px-streams-controls { display: flex; align-items: center; gap: 16px; }
.public-site .px-streams-controls p { margin: 0; color: var(--px-muted); font-size: .8125rem; }
.public-site .px-interior .streams-refresh { gap: 8px; }
.public-site .px-interior .streams-grid,
.public-site .px-interior .streams-skeleton-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.public-site .px-interior .streams-grid.is-duo { grid-template-columns: repeat(2,minmax(0,1fr)); }
.public-site .px-interior .streams-grid.is-single { grid-template-columns: 1fr; }
.public-site .px-interior .stream-card { min-width: 0; border-radius: 10px; overflow: hidden; animation: px-direct-enter .5s var(--px-ease) both; }
.public-site .px-interior .stream-card:nth-child(2) { animation-delay: 70ms; }
.public-site .px-interior .stream-card:nth-child(3) { animation-delay: 140ms; }
.public-site .px-interior .stream-card-link { display: flex; flex-direction: column; height: 100%; }
.public-site .px-interior .stream-thumb { position: relative; width: 100%; min-height: 0; aspect-ratio: 16 / 9; }
.public-site .px-interior .stream-thumb > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.public-site .px-interior .stream-card-body { display: flex; flex: 1; flex-direction: column; padding: 22px; }
.public-site .px-interior .stream-card-body h3 { margin: 0 0 24px; min-height: 0; font-size: 1.25rem; line-height: 1.4; -webkit-line-clamp: 3; }
.public-site .px-interior .stream-creator { margin-bottom: 16px; }
.public-site .px-interior .stream-creator strong { font-size: .9375rem; }
.public-site .px-interior .stream-creator img,
.public-site .px-interior .stream-avatar-fallback { width: 36px; height: 36px; font-size: 1rem; }
.public-site .px-interior .stream-watch-label { margin-top: auto; color: var(--px-green-bright); font-size: .9375rem; }
.public-site .px-interior .stream-live-badge,
.public-site .px-interior .stream-viewer-badge { font-size: .75rem; padding: 6px 9px; }
.public-site .px-interior .streams-grid.is-single .stream-card-link { display: grid; grid-template-columns: 1.45fr 1fr; }
.public-site .px-interior .streams-grid.is-single .stream-card-body { justify-content: center; padding: 32px; }
.public-site .px-interior .streams-grid.is-single .stream-card-body h3 { font-size: clamp(1.5rem,2.5vw,2.3rem); }
.public-site .px-interior .streams-grid.is-single .stream-watch-label { flex: 0; margin-top: 12px; }
.public-site .px-interior .streams-status { margin: 0 0 20px; padding: 20px 24px; text-align: left; }
.public-site .px-streams-empty { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; overflow: hidden; border: 1px solid var(--px-border); border-radius: 10px; background: var(--px-bg-soft); }
.public-site .px-streams-empty-image { height: 350px; overflow: hidden; }
.public-site .px-streams-empty img { display: block; width: 100%; height: 100%; object-fit: cover; }
.public-site .px-streams-empty > div:last-child { padding: 36px; }
.public-site .px-offline-label { color: var(--px-muted); font-size: .875rem; }
.public-site .px-streams-empty h3 { margin: 12px 0 20px; font-size: clamp(2rem,3vw,3.25rem); line-height: 1.05; }
.public-site .px-streams-empty p { max-width: 40ch; margin-bottom: 24px; color: var(--px-text-soft); }
@keyframes px-direct-enter { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }

/* Roadmap: compact status strip, usable columns at every width. */
.public-site .px-interior.roadmap-cinematic-page { width: var(--px-shell); max-width: 1480px; margin: 0 auto; padding-top: 40px; }
.public-site .px-roadmap-summary { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 30px; padding: 18px 22px; border: 1px solid var(--px-border); border-radius: 8px; background: var(--px-surface); }
.public-site .px-roadmap-summary > p { margin: 0; color: var(--px-text-soft); font-size: .9375rem; }
.public-site .px-roadmap-summary > p strong { margin-right: 6px; color: var(--px-text); font-size: 1.5rem; }
.public-site .px-roadmap-summary dl { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 28px; margin: 0; }
.public-site .px-roadmap-summary dl > div { display: flex; align-items: center; gap: 10px; }
.public-site .px-roadmap-summary dt { display: flex; align-items: center; gap: 7px; color: var(--px-text-soft); font-size: .875rem; }
.public-site .px-roadmap-summary dt i { width: 6px; height: 6px; border-radius: 50%; background: var(--roadmap-accent,var(--px-green)); }
.public-site .px-roadmap-summary dd { margin: 0; color: var(--px-text); font-size: 1rem; font-weight: 600; }
.public-site .px-roadmap-summary .roadmap-status-planned { --roadmap-accent: var(--px-violet); }
.public-site .px-roadmap-summary .roadmap-status-in_progress { --roadmap-accent: var(--px-warning); }
.public-site .px-roadmap-summary .roadmap-status-testing { --roadmap-accent: var(--px-blue); }
.public-site .px-interior .roadmap-toolbar { margin: 0 0 20px; padding: 0; border: 0; }
.public-site .px-interior .roadmap-toolbar h2 { margin: 0; font-size: 2rem; }
.public-site .px-interior .roadmap-status-board { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); align-items: start; gap: 16px; overflow: visible; scrollbar-gutter: auto; }
.public-site .px-interior .roadmap-status-board .kanban-column[data-status] { min-width: 0; min-height: 0; grid-column: auto; background: var(--px-bg-soft); border-radius: 8px; }
.public-site .px-interior .roadmap-column-head { padding: 18px 16px; }
.public-site .px-interior .roadmap-column-head h2 { font-size: 1rem; }
.public-site .px-interior .roadmap-column-head p { margin-top: 10px; padding-left: 0; font-size: .8125rem; }
.public-site .px-interior .roadmap-column-cards { display: grid; grid-template-columns: 1fr; gap: 12px; padding: 0 10px 10px; }
.public-site .px-interior .roadmap-status-board .kanban-card { min-width: 0; padding: 16px 14px; }
.public-site .px-interior .roadmap-status-board .kanban-card h3 { font-size: 1rem; line-height: 1.4; overflow-wrap: anywhere; }
.public-site .px-interior .roadmap-status-board .kanban-card > p { display: block; margin-block: 12px; line-height: 1.6; }
.public-site .px-interior .roadmap-status-board .kanban-card .meta-line { flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.public-site .px-interior .roadmap-column-empty { padding: 24px 12px; }
.public-site .px-interior .roadmap-list-item { grid-template-columns: minmax(0,2.5fr) minmax(110px,1fr) minmax(100px,1fr) minmax(100px,.8fr); }
.public-site .px-interior .roadmap-list-head { grid-template-columns: minmax(0,2.5fr) minmax(110px,1fr) minmax(100px,1fr) minmax(100px,.8fr); }
.public-site .px-interior .roadmap-list-main p { display: block; -webkit-line-clamp: unset; }

/* News: a lead story has room to breathe; older posts form a separate list. */
.public-site .px-news-feature { display: grid; grid-template-columns: 1.3fr 1fr; overflow: hidden; border: 1px solid var(--px-border); border-radius: 10px; background: var(--px-surface); }
.public-site .px-news-feature-copy { min-width: 0; padding: clamp(24px,3vw,44px); }
.public-site .px-news-meta { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 0 0 24px; color: var(--px-muted); font-size: .875rem; }
.public-site .px-news-meta > span { color: var(--px-green-bright); }
.public-site .px-news-feature h2 { margin: 0 0 24px; font-size: clamp(2.1rem,3.2vw,3.25rem); line-height: 1.08; letter-spacing: -.01em; text-wrap: balance; }
.public-site .px-news-feature h2 a:hover { color: var(--px-green-bright); }
.public-site .px-news-feature .news-card-excerpt { display: block; margin: 0 0 28px; line-height: 1.75; }
.public-site .px-news-feature .news-card-excerpt p:last-child { margin-bottom: 0; }
.public-site .px-news-feature-image { position: relative; margin: 0; min-height: 360px; }
.public-site .px-news-feature-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 58% center; }
.public-site .px-news-feature-image figcaption { position: absolute; bottom: 0; left: 0; right: 0; padding: 60px 24px 22px; color: var(--px-text); background: linear-gradient(transparent,rgba(0,0,0,.8)); font-size: .875rem; }
.public-site .px-news-archive { margin-top: 48px; }
.public-site .px-interior .news-index-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.public-site .px-interior .news-index-card { padding: 28px; }
.public-site .px-interior .news-index-card h3 { margin: 20px 0; font-size: 1.5rem; font-family: var(--px-font-body); line-height: 1.35; }
.public-site .px-interior .news-detail-shell { width: var(--px-shell); max-width: 1180px; padding-top: 32px; }
.public-site .px-interior .news-detail-header { max-width: 880px; margin: 28px 0 40px; padding-bottom: 32px; border-bottom: 1px solid var(--px-border); }
.public-site .px-interior .news-detail-header h1 { font-size: clamp(2.8rem,4.5vw,4.5rem); line-height: 1.08; }
.public-site .px-interior .news-detail-layout { display: grid; grid-template-columns: minmax(0,1fr) 260px; gap: 56px; align-items: start; }
.public-site .px-interior .news-detail-content { min-width: 0; max-width: 76ch; font-size: 1.0625rem; }
.public-site .px-interior .news-detail-aside { position: sticky; top: calc(var(--px-header-height) + 24px); padding: 24px; }

/* Partners: logo, description, then the actual offer and destination. */
.public-site .px-partner-list { display: grid; gap: 18px; }
.public-site .px-partner-row { display: grid; grid-template-columns: 176px minmax(0,1fr) 250px; gap: 32px; align-items: center; min-height: 188px; padding: 24px 28px; border: 1px solid var(--px-border); border-radius: 10px; background: var(--px-bg-soft); transition: border-color .3s ease,box-shadow .3s ease; }
.public-site .px-partner-row:hover, .public-site .px-partner-row:focus-within { border-color: var(--px-green); box-shadow: var(--px-glow); }
.public-site .px-partner-logo { display: grid; place-items: center; min-width: 0; }
.public-site .px-partner-logo img { width: 100%; max-width: 164px; height: 124px; object-fit: contain; transition: transform .4s var(--px-ease); }
.public-site .px-partner-row:hover img { transform: scale(1.045); }
.public-site .px-partner-logo > span { color: var(--px-green); font-size: 4rem; }
.public-site .px-partner-copy h3 { margin: 0; font-size: 2.1rem; line-height: 1.1; }
.public-site .px-partner-copy p { max-width: 55ch; margin: 14px 0 0; color: var(--px-text-soft); line-height: 1.65; }
.public-site .px-partner-actions { display: grid; gap: 12px; }
.public-site .px-partner-actions .partner-promo { width: 100%; margin: 0; padding: 12px 16px; }
.public-site .px-partner-actions .partner-promo strong { overflow-wrap: anywhere; }
.public-site .px-partner-actions .btn { display: flex; justify-content: space-between; gap: 16px; }

/* Gallery: a media library with its upload panel alongside it. */
.public-site .px-gallery-layout { display: grid; grid-template-columns: minmax(0,1fr) 300px; align-items: start; gap: 32px; }
.public-site .px-interior .gallery-library { min-width: 0; margin: 0; padding: 0; }
.public-site .px-interior .gallery-library-head { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 20px; margin: 0 0 24px; padding: 0; border: 0; }
.public-site .px-interior .gallery-library-head h2 { margin: 0; font-size: 2rem; }
.public-site .px-gallery-count { margin: 0 0 4px; color: var(--px-muted); font-size: .8125rem; }
.public-site .px-interior .gallery-filter { flex-wrap: wrap; gap: 4px; }
.public-site .px-interior .gallery-filter button { min-height: 44px; padding: 8px 12px; font-size: .875rem; }
.public-site .px-interior .gallery-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.public-site .px-interior .gallery-card { min-width: 0; overflow: hidden; border-radius: 8px; background: var(--px-surface); }
.public-site .px-interior .gallery-media { display: block; position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.public-site .px-interior .gallery-media > img,
.public-site .px-interior .gallery-media > video { display: block; width: 100%; height: 100%; max-height: none; object-fit: cover; }
.public-site .px-interior .gallery-meta { padding: 14px 16px; }
.public-site .px-interior .gallery-name { margin: 0 0 8px; font-size: .9375rem; line-height: 1.5; overflow-wrap: anywhere; text-transform: none; letter-spacing: 0; }
.public-site .px-interior .gallery-card-foot { flex-wrap: wrap; gap: 8px; }
.public-site .px-interior .gallery-card-foot p { margin: 0; font-size: .75rem; }
.public-site .px-interior .gallery-type-badge { font-size: .75rem; }
.public-site .px-interior .gallery-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 390px; margin: 0; padding: 40px 24px; border: 1px dashed var(--px-border-strong); border-radius: 10px; background: var(--px-bg-soft); text-align: center; }
.public-site .px-interior .px-gallery-empty-icon { width: 52px; height: 52px; margin-bottom: 24px; color: var(--px-green); }
.public-site .px-interior .gallery-empty h3 { margin: 0 0 12px; font-size: 1.5rem; }
.public-site .px-interior .gallery-empty p { margin: 0 0 24px; }
.public-site .px-gallery-upload { position: sticky; top: calc(var(--px-header-height) + 24px); padding: 24px; border: 1px solid var(--px-border); border-radius: 10px; background: var(--px-surface); }
.public-site .px-gallery-upload .gallery-upload-head { display: block; margin-bottom: 22px; }
.public-site .px-gallery-upload h2 { margin: 0 0 12px; font-size: 1.75rem; line-height: 1.1; text-transform: none; letter-spacing: -.01em; }
.public-site .px-gallery-upload .gallery-upload-head p { margin: 0; color: var(--px-muted); font-size: .8125rem; }
.public-site .px-gallery-upload .gallery-upload-form { display: grid; grid-template-columns: 1fr; gap: 16px; }
.public-site .px-gallery-upload .gallery-dropzone { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 24px 16px; text-align: center; }
.public-site .px-gallery-upload .gallery-dropzone p { margin: 0; text-align: center; }
.public-site .px-gallery-upload .gallery-upload-icon { display: grid; width: 42px; height: 42px; place-items: center; margin: 0 0 4px; color: var(--px-green); }
.public-site .px-gallery-upload .gallery-drop-title { font-size: 1rem; }
.public-site .px-gallery-upload .gallery-drop-sub { font-size: .875rem; }
.public-site .px-gallery-upload .gallery-pick-btn { width: 100%; margin: 8px 0 0; }
.public-site .px-gallery-upload .gallery-file-name { max-width: 100%; overflow-wrap: anywhere; font-size: .8125rem; }
.public-site .px-gallery-upload .gallery-upload-submit { width: 100%; min-height: 48px; }
.public-site .px-gallery-filter-empty { padding: 28px; border: 1px dashed var(--px-border); border-radius: 8px; color: var(--px-text-soft); }

/* Match display rules to the existing hidden-state utility. */
.public-site .px-rules-search { max-width: 720px; margin: 0 0 32px; }
.public-site .px-rules-search label { display: block; margin-bottom: 10px; font-size: .9375rem; font-weight: 500; }
.public-site .px-rules-search > div { display: flex; gap: 12px; }
.public-site .px-rules-search input { flex: 1; min-width: 0; }
.public-site .px-rules-search .btn { min-height: 48px; }
.public-site.rules-cinematic .docs-content,
.public-site.rules-cinematic .docs-content .md-content :is(p,li,h1,h2,h3,h4),
.public-site.rules-cinematic .rules-page-head { text-align: left; }
.public-site .px-rule-results-head { margin-bottom: 28px; }
.public-site .px-rule-results-head > p { margin: 0 0 12px; color: var(--px-green-bright); font-size: .875rem; }
.public-site .px-rule-results-head h2 { margin: 0 0 16px; font-size: clamp(1.75rem,3vw,2.5rem); overflow-wrap: anywhere; }
.public-site .px-rule-results-head a, .public-site .px-rule-search-back { display: inline-flex; align-items: center; min-height: 44px; color: var(--px-green-bright); text-decoration: underline; text-underline-offset: 4px; }
.public-site .px-rule-search-back { margin-bottom: 16px; }
.public-site .px-rule-results { padding: 0; margin: 0; list-style: none; }
.public-site .px-rule-results li { margin: 0; border-top: 1px solid var(--px-border); }
.public-site .px-rule-results li > a { display: block; padding: 24px 0; border-radius: 4px; }
.public-site .px-rule-results li > a > span { color: var(--px-muted); font-size: .8125rem; }
.public-site .px-rule-results h3 { margin: 8px 0 10px; font-size: 1.375rem; }
.public-site .px-rule-results p { margin: 0 0 12px; color: var(--px-text-soft); font-size: 1rem; line-height: 1.65; }
.public-site .px-rule-results strong { color: var(--px-green-bright); font-size: .875rem; font-weight: 500; }
.public-site .px-rule-results a:hover h3 { color: var(--px-green-bright); }
.public-site .px-rule-search-empty { padding-block: 20px; color: var(--px-text-soft); }
.public-site .px-interior .md-content .px-rule-match { background: var(--px-green-soft); outline: 1px solid var(--px-green); outline-offset: 8px; border-radius: 2px; }
.public-site.rules-cinematic .md-content [id] { scroll-margin-top: 20px; }
.public-site .px-gallery-toolbar { display: grid; gap: 20px; margin: 0 0 28px; }
.public-site .px-gallery-toolbar .gallery-filter { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; border: 0; background: none; }
.public-site .px-gallery-toolbar .gallery-filter a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--px-border); border-radius: 5px; color: var(--px-text-soft); font-size: .9375rem; }
.public-site .px-gallery-toolbar .gallery-filter a.active { color: var(--px-green-bright); background: var(--px-green-soft); border-color: var(--px-green); }
.public-site .px-gallery-toolbar .gallery-filter a:hover { border-color: var(--px-green); }
.public-site .px-gallery-toolbar .gallery-filter a > span { font-size: .8125rem; color: var(--px-muted); }
.public-site .px-gallery-sort { display: flex; align-items: center; gap: 12px; }
.public-site .px-gallery-sort label { color: var(--px-muted); font-size: .875rem; }
.public-site .px-gallery-sort select { width: auto; min-height: 44px; }
.public-site .px-gallery-sort .btn { min-height: 44px; }
.public-site .gallery-audio-tile { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; min-height: 190px; color: var(--px-green-bright); }
.public-site .gallery-audio-tile svg { width: 48px; height: 48px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.public-site .media-lightbox { width: min(1200px,calc(100% - 32px)); max-height: calc(100svh - 32px); padding: 56px 24px 20px; }
.public-site .media-lightbox-stage { display: flex; align-items: center; justify-content: center; min-height: 180px; }
.public-site .media-lightbox-stage img, .public-site .media-lightbox-stage video { max-width: 100%; max-height: calc(100svh - 240px); object-fit: contain; }
.public-site .media-lightbox-stage img { touch-action: pan-y pinch-zoom; }
.public-site .media-lightbox-stage audio { width: min(600px,100%); }
.public-site .px-lightbox-toolbar { display: grid; grid-template-columns: 48px minmax(0,1fr) 48px; align-items: center; gap: 16px; margin-top: 18px; }
.public-site .px-lightbox-toolbar .btn { width: 48px; height: 48px; padding: 0; font-size: 1.5rem; }
.public-site .px-lightbox-toolbar .btn:disabled { opacity: .35; cursor: default; }
.public-site .px-lightbox-toolbar .media-lightbox-caption { position: static; margin: 0; overflow-wrap: anywhere; text-align: center; }
.public-site .px-lightbox-count { margin: 6px 0 0; text-align: center; color: var(--px-muted); font-size: .8125rem; }
.public-site .px-media-error { max-width: 45ch; color: var(--px-text-soft); text-align: center; line-height: 1.6; }
.public-site .px-news-article-cover { margin: 32px 0 40px; overflow: hidden; border-radius: 8px; }
.public-site .px-news-article-cover img { display: block; width: 100%; max-height: 570px; aspect-ratio: 1200/630; object-fit: cover; }
.public-site .px-news-archive-cover { display: block; margin-bottom: 24px; overflow: hidden; border-radius: 6px; }
.public-site .px-news-archive-cover img { display: block; width: 100%; aspect-ratio: 1200/630; object-fit: cover; transition: transform .6s var(--px-ease); }
.public-site .px-news-archive-cover:hover img { transform: scale(1.035); }
@media (max-width: 480px) {
  .public-site .px-rules-search > div { flex-wrap: wrap; }
  .public-site .px-rules-search input { flex-basis: 100%; }
  .public-site .px-rules-search .btn { width: 100%; }
  .public-site .px-gallery-sort { flex-wrap: wrap; gap: 10px; }
  .public-site .px-gallery-sort label { flex-basis: 100%; }
  .public-site .px-gallery-sort select { flex: 1; min-width: 0; }
  .public-site .media-lightbox { padding-inline: 12px; }
  .public-site .px-lightbox-toolbar { gap: 8px; }
}
.public-site .px-interior :is(.streams-grid,.streams-skeleton-grid,.px-streams-empty,.px-gallery-filter-empty).hidden { display: none; }
@media (min-width: 1500px) {
  .public-site .px-interior .gallery-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 1120px) {
  .public-site .px-interior .rules-layout, .public-site .px-interior .rules-layout.has-docs-toc { grid-template-columns: 220px minmax(0,1fr); gap: 28px; }
  .public-site .px-interior .docs-content { padding: 26px; }
  .public-site .px-interior .roadmap-status-board { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
  .public-site .px-interior .streams-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .public-site .px-partner-row { grid-template-columns: 140px minmax(0,1fr) 220px; gap: 24px; padding: 24px; }
  .public-site .px-gallery-layout { grid-template-columns: minmax(0,1fr) 280px; gap: 24px; }
}
@media (max-width: 900px) {
  .public-site .px-interior .rules-layout, .public-site .px-interior .rules-layout.has-docs-toc { display: block; }
  .public-site .px-interior .rules-nav-trigger { display: flex; justify-content: space-between; width: 100%; margin: 0 0 20px; padding-inline: 18px; }
  .public-site .px-interior .rules-nav-trigger span { color: var(--px-green); font-size: 1.25rem; transition: transform .2s ease; }
  .public-site .px-interior .rules-nav-trigger[aria-expanded="true"] span { transform: rotate(45deg); }
  .public-site .px-interior .docs-sidebar { display: none; position: relative; inset: auto; z-index: auto; width: 100%; max-height: 65svh; margin-bottom: 24px; padding: 20px; border: 1px solid var(--px-border) !important; border-radius: 8px !important; background: var(--px-surface) !important; transform: none; }
  .public-site .px-interior .docs-sidebar.is-open { display: block; }
  .public-site .px-interior .docs-sidebar-close { display: grid; width: 44px; height: 44px; }
  .public-site.rules-navigation-open::after { display: none; }
  .public-site .px-roadmap-summary { align-items: start; flex-direction: column; gap: 12px; }
  .public-site .px-roadmap-summary dl { width: 100%; justify-content: space-between; gap: 12px; }
  .public-site .px-streams-controls { align-items: end; flex-direction: column-reverse; gap: 6px; }
  .public-site .px-news-feature { grid-template-columns: 1.35fr .8fr; }
  .public-site .px-news-feature-copy { padding: 28px; }
  .public-site .px-partner-row { grid-template-columns: 110px minmax(0,1fr); gap: 20px; }
  .public-site .px-partner-logo { grid-row: span 2; }
  .public-site .px-partner-logo img { max-height: 110px; }
  .public-site .px-partner-actions { grid-column: 2; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: center; }
  .public-site .px-partner-actions .btn { height: 100%; }
  .public-site .px-interior .news-detail-layout { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .public-site .px-interior .news-detail-aside { position: static; }
}
@media (max-width: 760px) {
  .public-site .px-page-shell, .public-site .px-interior.roadmap-cinematic-page { padding-top: 28px; }
  .public-site .px-page-header { align-items: start; flex-direction: column; gap: 20px; padding-bottom: 24px; margin-bottom: 24px; }
  .public-site .px-page-header h1 { font-size: 3rem; }
  .public-site .px-page-header p { font-size: 1rem; }
  .public-site .px-interior .rules-cinematic-docs { padding-top: 28px; }
  .public-site .px-interior .docs-content { padding: 22px; }
  .public-site .px-interior .rules-pagination { gap: 12px; }
  .public-site .px-interior .streams-toolbar { align-items: start; gap: 16px; }
  .public-site .px-streams-heading { align-items: start; flex-direction: column; gap: 10px; }
  .public-site .px-streams-heading h2 { font-size: 1.7rem; }
  .public-site .px-streams-controls { flex: 0 0 auto; }
  .public-site .px-streams-controls p { font-size: .75rem; }
  .public-site .px-interior .streams-grid.is-single .stream-card-link { display: flex; }
  .public-site .px-interior .streams-grid.is-single .stream-card-body { padding: 24px; }
  .public-site .px-streams-empty { grid-template-columns: 1fr; }
  .public-site .px-streams-empty-image { height: 230px; }
  .public-site .px-streams-empty > div:last-child { padding: 28px; }
  .public-site .px-interior .roadmap-toolbar { gap: 16px; flex-wrap: wrap; }
  .public-site .px-interior .roadmap-status-board { grid-template-columns: 1fr; }
  .public-site .px-interior .roadmap-list-head { display: none; }
  .public-site .px-interior .roadmap-list-item { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px 12px; padding: 20px; }
  .public-site .px-interior .roadmap-list-main { grid-column: 1 / -1; }
  .public-site .px-interior .roadmap-list-label { display: block; }
  .public-site .px-interior .roadmap-list-detail.is-date { grid-column: auto; }
  .public-site .px-news-feature { grid-template-columns: 1fr; }
  .public-site .px-news-feature-image { min-height: 240px; }
  .public-site .px-interior .news-index-grid { grid-template-columns: 1fr; }
  .public-site .px-partner-actions { grid-template-columns: 1fr; }
  .public-site .px-gallery-layout { grid-template-columns: 1fr; gap: 32px; }
  .public-site .px-gallery-upload { position: static; }
  .public-site .px-interior .gallery-empty { min-height: 320px; }
  .public-site .px-interior .gallery-grid { gap: 16px; }
}
@media (max-width: 480px) {
  .public-site .px-section-toolbar { align-items: start; flex-direction: column; gap: 8px; }
  .public-site .px-interior .streams-toolbar { display: grid; grid-template-columns: 1fr; gap: 12px; }
  .public-site .px-streams-heading { flex-direction: row; align-items: center; justify-content: space-between; gap: 8px; }
  .public-site .px-streams-heading h2 { font-size: 1.5rem; line-height: 1.2; }
  .public-site .px-streams-controls { flex-direction: row; align-items: center; justify-content: space-between; }
  .public-site .px-interior .docs-content { padding: 20px 16px; }
  .public-site .px-interior .rules-pagination { grid-template-columns: 1fr; }
  .public-site .px-interior .streams-grid, .public-site .px-interior .streams-grid.is-duo, .public-site .px-interior .streams-skeleton-grid { grid-template-columns: 1fr; }
  .public-site .px-roadmap-summary dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; }
  .public-site .px-roadmap-summary dl > div { justify-content: space-between; }
  .public-site .px-interior .roadmap-list-item { grid-template-columns: 1fr 1fr; }
  .public-site .px-interior .roadmap-list-detail.is-date { grid-column: 1 / -1; }
  .public-site .px-news-feature-copy { padding: 24px; }
  .public-site .px-partner-row { grid-template-columns: 82px minmax(0,1fr); gap: 18px; padding: 20px; }
  .public-site .px-partner-logo { grid-row: auto; }
  .public-site .px-partner-logo img { height: 82px; }
  .public-site .px-partner-copy h3 { font-size: 1.75rem; }
  .public-site .px-partner-copy p { font-size: .9375rem; }
  .public-site .px-partner-actions { grid-column: 1 / -1; }
  .public-site .px-interior .gallery-grid { grid-template-columns: 1fr; }
}
