.gpos-section { margin:22px 0 10px; color:#fff; }
.gpos-section--home { margin-top:0; }
.gpos-section--archive, .gpos-section--entity { margin:28px 0; }
.gpos-section-head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin:0 0 12px; }
.gpos-title { margin:0; font-size:17px; font-weight:800; color:#fff !important; }
.gpos-view-all, .gpos-entity-link { color:rgba(255,255,255,.82); text-decoration:none; font-size:12px; font-weight:700; }
.gpos-view-all:hover, .gpos-entity-link:hover { color:#fff; }
.gpos-empty { padding:12px 14px; border:1px solid rgba(255,255,255,.12); border-radius:12px; background:rgba(0,0,0,.15); }

/* Homepage carousel */
.gpos-pager { position:relative; padding:0 44px 20px; touch-action:pan-y; user-select:none; }
.gpos-grid { display:grid; grid-template-columns:repeat(var(--gpos-cols,3),minmax(0,1fr)); gap:14px; align-items:stretch; transition:opacity 180ms ease,transform 180ms ease; }
.gpos-pager-btn { position:absolute; top:0; bottom:42px; width:38px; border:0; border-radius:12px; cursor:pointer; background:rgba(0,0,0,.45); color:#fff; font-size:28px; line-height:1; display:flex; align-items:center; justify-content:center; z-index:2; }
.gpos-pager-btn:hover { background:rgba(0,0,0,.65); }
.gpos-pager-btn:disabled { opacity:.35; cursor:not-allowed; }
.gpos-pager-prev { left:0; }
.gpos-pager-next { right:0; }
.gpos-pager-status { margin-top:8px; text-align:center; font-size:12px; opacity:.75; color:#fff; min-height:16px; }
.gpos-item { position:relative; min-width:0; }
.gpos-card { min-height:210px; height:100%; display:flex; flex-direction:column; padding:15px; border-radius:16px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); box-shadow:0 10px 26px rgba(0,0,0,.18); color:#fff !important; text-decoration:none !important; transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease; }
.gpos-card:hover { transform:translateY(-3px); border-color:rgba(255,255,255,.28); box-shadow:0 14px 34px rgba(0,0,0,.28); }
.gpos-game-name { color:#fff; font-size:17px; line-height:1.22; font-weight:850; margin:0 0 4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.gpos-publisher-name { color:rgba(255,255,255,.62); font-size:11px; line-height:1.3; font-weight:750; margin:0 0 12px; }
.gpos-card-title { font-size:14px; line-height:1.35; font-weight:800; color:#fff; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.gpos-excerpt { margin-top:9px; color:rgba(255,255,255,.76); font-size:12px; line-height:1.45; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.gpos-card-meta { margin-top:auto; padding-top:14px; color:rgba(255,255,255,.58); font-size:11px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.gpos-source-label { flex:0 0 auto; color:rgba(255,255,255,.68); font-weight:700; white-space:nowrap; }

/* Entity pages */
.gpos-template-main, .gpos-entity-page { width:min(100% - 32px,1422px); margin:0 auto; }
.gpos-entity-hero { padding:32px 0 10px; color:#fff; }
.gpos-entity-hero h1 { margin:4px 0 0; color:#fff; font-size:clamp(30px,5vw,54px); line-height:1.05; }
.gpos-entity-kicker { color:rgba(255,255,255,.62); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.gpos-entity-page .ytf-feed { margin-top:22px; }

/* Dedicated updates archive */
.gpos-announcements-page { width:100%; box-sizing:border-box; padding:0 20px 20px; }
.gpos-announcements-page .gpos-section--archive { margin:0; }
.gpos-announcements-page .gpos-title { font-size:clamp(22px,2.5vw,30px); }
.gpos-archive-controls { display:grid; grid-template-columns:minmax(260px,1fr) minmax(220px,360px); gap:14px; align-items:end; margin:0 0 18px; }
.gpos-search-field, .gpos-filter { display:grid; gap:6px; margin:0; min-width:0; color:#fff; }
.gpos-control-label { font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:rgba(255,255,255,.72); }
.gpos-search-input, .gpos-filter select { width:100%; box-sizing:border-box; min-height:44px; padding:10px 14px; border:1px solid rgba(255,255,255,.16); border-radius:12px; background:rgba(0,0,0,.28); color:#fff; outline:none; font:inherit; }
.gpos-search-input::placeholder { color:rgba(255,255,255,.48); }
.gpos-search-input:focus, .gpos-filter select:focus { border-color:rgba(255,255,255,.42); box-shadow:0 0 0 2px rgba(255,255,255,.07); }
.gpos-filter option { color:#111; }
.gpos-archive-results { width:100%; }
.gpos-archive-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; width:100%; align-items:stretch; }
.gpos-archive-item { min-width:0; min-height:280px; display:flex; flex-direction:column; box-sizing:border-box; padding:16px; border-radius:16px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); box-shadow:0 10px 26px rgba(0,0,0,.18); color:#fff; transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.gpos-archive-item:hover { transform:translateY(-2px); border-color:rgba(255,255,255,.22); box-shadow:0 14px 30px rgba(0,0,0,.22); }
.gpos-archive-game { color:#fff; font-size:19px; line-height:1.18; font-weight:850; margin:0 0 4px; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.gpos-archive-publisher { display:block; width:max-content; max-width:100%; margin:0 0 11px; color:rgba(255,255,255,.62) !important; text-decoration:none !important; font-size:11px; line-height:1.3; font-weight:750; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
a.gpos-archive-publisher:hover { color:#fff !important; }
.gpos-archive-copy { min-width:0; }
.gpos-archive-title { margin:0; color:#fff !important; font-size:13px !important; line-height:1.38 !important; font-weight:800; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.gpos-archive-title a { color:#fff !important; text-decoration:none !important; font-size:inherit !important; line-height:inherit !important; }
.gpos-archive-title a:hover { text-decoration:underline !important; text-underline-offset:3px; }
.gpos-archive-excerpt { margin:8px 0 0; color:rgba(255,255,255,.76); font-size:12px; line-height:1.48; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.gpos-archive-excerpt.is-empty { visibility:hidden; min-height:1.48em; }
.gpos-archive-footer { margin-top:auto; padding-top:14px; display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:27px; }
.gpos-card-meta--archive { margin:0; padding:0; color:rgba(255,255,255,.56); font-size:11px; text-align:right; display:block; }
.gpos-archive-meta-group { margin-left:auto; display:flex; align-items:center; justify-content:flex-end; gap:9px; min-width:0; }
.gpos-source-link { flex:0 0 auto; color:rgba(255,255,255,.68) !important; text-decoration:none !important; font-size:11px; font-weight:700; white-space:nowrap; transition:color .18s ease; }
.gpos-source-link:hover { color:#fff !important; text-decoration:underline !important; text-underline-offset:3px; }
.gpos-language-toggle { flex:0 0 auto; min-width:38px; height:26px; padding:0 9px; border:1px solid rgba(255,255,255,.16); border-radius:999px; background:rgba(255,255,255,.05); color:rgba(255,255,255,.82); cursor:pointer; font-family:inherit; font-size:10px; line-height:1; font-weight:800; letter-spacing:.06em; transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease; }
.gpos-language-toggle:hover { background:rgba(255,255,255,.11); border-color:rgba(255,255,255,.32); color:#fff; transform:translateY(-1px); }
.gpos-language-toggle:disabled { cursor:default; opacity:.7; transform:none; }
.gpos-language-toggle-spacer { width:38px; height:26px; flex:0 0 38px; }
.gpos-archive-empty { padding:16px; border:1px solid rgba(255,255,255,.12); border-radius:14px; background:rgba(0,0,0,.15); color:#fff; }
.gpos-archive-empty.is-hidden { display:none; }
.gpos-load-sentinel { width:100%; height:1px; }
.gpos-load-more-wrap { display:flex; justify-content:center; width:100%; padding:18px 0 0; }
.gpos-load-more-wrap.is-hidden { display:none; }
.gpos-load-more { min-width:150px; min-height:42px; padding:10px 18px; border:1px solid rgba(255,255,255,.18); border-radius:12px; background:rgba(255,255,255,.07); color:#fff; cursor:pointer; font:inherit; font-size:12px; font-weight:800; transition:background .18s ease,border-color .18s ease,transform .18s ease,opacity .18s ease; }
.gpos-load-more:hover:not(:disabled) { background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.34); transform:translateY(-1px); }
.gpos-load-more:disabled { cursor:default; opacity:.58; transform:none; }
.gpos-load-status { min-height:34px; padding:16px 0 2px; text-align:center; color:rgba(255,255,255,.62); font-size:12px; }
.gpos-archive-results.is-loading .gpos-load-status { opacity:1; }

/* Kept for backwards-compatible markup/links from earlier releases. */
.gpos-archive-pagination { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:18px; min-height:28px; }
.gpos-page-link { color:#fff !important; text-decoration:none !important; font-size:12px; font-weight:800; }
.gpos-page-link:hover { text-decoration:underline !important; }

@media (max-width:560px) {
  .gpos-pager { padding:0 34px 20px; }
  .gpos-pager-btn { width:30px; font-size:24px; border-radius:10px; }
  .gpos-grid { grid-template-columns:repeat(var(--gpos-cols,1),minmax(0,1fr)); }
  .gpos-card { min-height:195px; }
  .gpos-game-name { font-size:16px; }
  .gpos-section-head { align-items:flex-start; flex-direction:column; gap:6px; }
  .gpos-announcements-page { padding:0 20px 20px; }
  .gpos-archive-controls { grid-template-columns:1fr; }
  .gpos-archive-grid { grid-template-columns:1fr; }
  .gpos-archive-item { min-height:0; padding:16px; }
  .gpos-archive-game { font-size:18px; }
}
@media (min-width:561px) and (max-width:780px) {
  .gpos-grid { grid-template-columns:repeat(var(--gpos-cols,2),minmax(0,1fr)); }
  .gpos-archive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:781px) and (max-width:1040px) {
  .gpos-archive-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (min-width:1041px) and (max-width:1320px) {
  .gpos-archive-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) {
  .gpos-grid,.gpos-card,.gpos-archive-item,.gpos-language-toggle,.gpos-load-more { transition:none; }
}
