*{box-sizing:border-box}
:root{color-scheme:light;--radius:20px;--max:1232px;--ease:150ms ease;--ui:system-ui,-apple-system,"Segoe UI",sans-serif;--display:var(--ui)}
[hidden]{display:none!important}
body{margin:0;min-width:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink);font:1rem/1.55 var(--ui)}
a{color:inherit} button,input{font:inherit} button{cursor:pointer} img{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
h1,h2,h3,p{margin:0} h1,h2{font-family:var(--display);line-height:1.06;letter-spacing:-.045em}
h1{font-size:clamp(2.3rem,5vw,4.6rem);overflow-wrap:anywhere} h2{font-size:clamp(1.5rem,3vw,2.4rem)}
.wrap{width:min(var(--max),calc(100% - 3rem));margin-inline:auto}
main{flex:1;padding-block:clamp(1.4rem,4vw,3.75rem) 4rem}
.skip{position:fixed;z-index:10;top:1rem;left:1rem;transform:translateY(-200%);padding:.7rem 1rem;background:var(--surface)}
.skip:focus{transform:none}
.site-head{border-bottom:1px solid var(--line);background:var(--head)}
.header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:1.4rem}
.brand{display:inline-flex;align-items:center;flex:0 1 196px;min-width:0;padding:.5rem 0}
.brand img{width:100%;height:auto;filter:var(--logo-filter,none)}
.desktop-nav{display:flex;align-items:center;gap:clamp(.2rem,.9vw,.8rem)}
.desktop-nav a,.category-list a{display:block;text-decoration:none;font-size:.9rem;font-weight:700;border-radius:.5rem;white-space:nowrap;padding:.55rem .57rem}
.desktop-nav a:hover,.desktop-nav a[aria-current],.category-list a:hover,.category-list a[aria-current]{background:var(--soft);color:var(--accent)}
.button.category-trigger{display:none}
.category-dialog{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:min(calc(100% - 2rem),440px);padding:1.4rem}
.category-dialog::backdrop{background:#08111ab8}
.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:1rem}
.dialog-top h2{font-size:1.55rem}
.dialog-top button{height:44px;min-width:44px;border:1px solid var(--line);border-radius:.5rem;background:var(--bg);color:var(--ink);font-size:1.35rem}
.category-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.category-list a{border:1px solid var(--line);padding:.7rem;min-height:44px}
.eyebrow,.section-index{display:block;font:800 .74rem/1.45 var(--ui);letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:.45rem;padding:.55rem .95rem;border:1px solid transparent;border-radius:var(--button-radius,.6rem);background:var(--action);color:var(--on-action);font-weight:750;text-decoration:none;line-height:1.35}
.button:hover{filter:brightness(.92)}
.button.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}
.intro h1,.page-heading h1{margin:.5rem 0 .8rem}
.intro p,.page-heading p{color:var(--muted);max-width:52ch}
.intro .button{margin-top:1.15rem}
.intro{min-width:0}
.splash{display:grid;gap:1.15rem;align-items:stretch}
.spot-game{height:100%;min-width:0;display:grid;position:relative;text-decoration:none;border-radius:var(--radius);isolation:isolate;overflow:hidden;background:var(--surface);border:1px solid var(--line)}
.spot-art{display:block;min-width:0}
.spot-art img{width:100%;height:100%;object-fit:cover}
.spot-caption{display:grid;align-content:center;gap:.55rem;padding:clamp(.9rem,3vw,1.7rem);min-width:0}
.spot-caption strong{font-family:var(--display);font-size:clamp(1.45rem,3vw,2.45rem);line-height:1.08;letter-spacing:-.04em;overflow-wrap:anywhere}
.spot-action{font-weight:750;font-size:.88rem;text-decoration:underline;text-underline-offset:.2em}
.module{margin-top:clamp(2.2rem,5vw,4.4rem);min-width:0}
.module-head{margin-bottom:1rem;display:grid;gap:.3rem}
.module-head p{color:var(--muted);font-size:.91rem}
.poster-grid,.tile-grid,.rank-grid{display:grid;gap:.85rem}
.poster-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.tile-grid,.rank-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.game-card{min-width:0;text-decoration:none;position:relative;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:border-color var(--ease),transform var(--ease);overflow:hidden}
.game-card:hover,.spot-game:hover{border-color:var(--focus)}
.game-card:hover{transform:translateY(-2px)}
.game-art{display:block;min-width:0;background:var(--soft)}
.game-art img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.game-caption{min-width:0;display:grid;gap:.15rem}
.game-caption strong{line-height:1.25;overflow-wrap:anywhere}
.game-tag{color:var(--accent);font-size:.65rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}
.game-poster{display:grid;align-content:start}
.game-poster .game-caption{padding:.7rem .8rem .9rem}
.game-poster .game-arrow{display:none}
.game-rank{min-height:72px;display:grid;grid-template-columns:2ch 48px minmax(0,1fr) auto;align-items:center;padding:.6rem;gap:.6rem}
.game-rank .game-art img{aspect-ratio:1}
.game-rank .game-art{border-radius:.5rem;overflow:hidden}
.game-number{font:800 .85rem/1 ui-monospace,monospace;color:var(--accent)}
.game-arrow{color:var(--accent);font-weight:750}
.game-tile{display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.75rem}
.game-tile .game-art{border-radius:calc(var(--radius) / 2);overflow:hidden}
.game-tile .game-art img{aspect-ratio:1}
.catalog-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,380px);align-items:end;gap:1.5rem;padding:clamp(1.2rem,4vw,2.75rem);border-radius:var(--radius);background:var(--soft);margin-bottom:1.5rem}
.search label{display:block;font-size:.84rem;font-weight:750;margin-bottom:.35rem}
.search-row{display:flex;gap:.4rem;flex-wrap:wrap}
.search input[type=search]{flex:1 1 8rem;min-width:0;width:100%;border:1px solid var(--line);border-radius:.5rem;padding:.55rem .7rem;background:var(--surface);color:var(--ink);min-height:44px}
.status{margin-block:1.25rem;color:var(--muted)}
.detail{display:grid;grid-template-columns:minmax(160px,272px) minmax(0,1fr);align-items:center;gap:clamp(1rem,4vw,3rem);padding:clamp(1rem,4vw,2.8rem);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.detail-art{width:min(100%,272px);margin:0;align-self:center;aspect-ratio:4/3}
.detail-art img{width:100%;height:100%;object-fit:cover;border-radius:calc(var(--radius) / 1.4)}
.detail-copy{min-width:0}
.detail h1{font-size:clamp(2rem,4vw,3.5rem);margin:.3rem 0 .65rem}
.detail p{max-width:68ch;color:var(--muted);overflow-wrap:anywhere}
.detail .button{margin-top:1rem}
.back-link{display:inline-block;margin-bottom:1rem;color:var(--accent);font-weight:750;text-underline-offset:.22em}
.player-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}
.player-toolbar h1{font-size:clamp(1.8rem,3vw,2.75rem)}
.player{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.player:fullscreen{border:0;border-radius:0}
.player iframe{display:block;width:100%!important;height:clamp(400px,70svh,850px)!important;border:0}
.player:fullscreen iframe{height:100%!important}
.player-gate{min-height:390px;display:grid;justify-items:center;align-content:center;text-align:center;padding:1.4rem;gap:.75rem}
.player-gate img{width:110px;height:83px;object-fit:cover;border-radius:.6rem}
.player-gate p{max-width:42ch;color:var(--muted)}
.player-gate>a{font-size:.85rem;text-underline-offset:.2em}
.prose{max-width:810px;margin-inline:auto;padding:clamp(1rem,4vw,3rem);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow-wrap:anywhere}
.prose>p,.prose section p{margin:.75rem 0;color:var(--muted)}
.prose section{margin-top:1.8rem;scroll-margin:1rem}
.prose h1{font-size:clamp(2rem,5vw,3.5rem);margin:.5rem 0}
.prose h2{font-size:clamp(1.2rem,3vw,1.65rem)}
.prose li+li{margin-top:.45rem}
.prose a{color:var(--accent);text-underline-offset:.2em}
.policy-index{display:flex;flex-wrap:wrap;gap:.45rem 1rem;background:var(--soft);padding:.85rem;border-radius:.5rem}
.definitions{display:grid;gap:.6rem}
.definitions div{padding:.65rem .85rem;background:var(--soft);border-radius:.5rem}
.definitions dt{font-weight:750}
.definitions dd{margin:0;color:var(--muted)}
.site-foot{border-top:1px solid var(--line);background:var(--head);padding:1.8rem 0}
.footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem 2rem}
.site-foot p{color:var(--muted);font-size:.83rem;overflow-wrap:anywhere}
.site-foot nav{display:flex;flex-wrap:wrap;gap:.65rem 1rem;font-size:.87rem;align-items:center}
.site-foot a{text-underline-offset:.22em}
/* Keep sizing and spacing outside the supplied AdX tags. */
main.ad-page{padding-top:0}
.ad-placement{
 display:flex;
 justify-content:center;
 align-items:flex-start;
 padding-block:50px;
 min-width:0;
}
.ad-placement > div{
 width:min(336px,100%);
 text-align:center;
}
.ad-placement > div > div{margin-inline:auto}
.home-ad-separation{
 display:flex;
 flex-direction:column;
 justify-content:space-between;
 gap:clamp(1.5rem,4vw,3rem);
 min-height:calc(100vh - 100px);
 min-height:calc(100dvh - 100px);
}
.home-ad-separation > .module,
.ad-placement + .module{margin-top:0}
@media(max-width:1120px){
 .poster-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .tile-grid,.rank-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:949px){
 .header-inner{min-height:65px}
 .desktop-nav{display:none}
 .button.category-trigger{display:inline-flex}
}
@media(max-width:680px){
 .wrap{width:calc(100% - 1.65rem)}
 .brand{flex-basis:160px}
 .header-inner{gap:.5rem}
 .catalog-head,.detail{grid-template-columns:minmax(0,1fr)}
 .detail-art{width:min(70%,220px)}
 .poster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.62rem}
 .game-caption strong{font-size:.91rem}
 .game-tile,.game-rank{gap:.5rem}
 .site-foot nav{gap:.6rem .85rem}
}
@media(max-width:440px){
 .tile-grid,.rank-grid{grid-template-columns:minmax(0,1fr)}
 .game-tile{grid-template-columns:55px minmax(0,1fr) auto}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important}}
