/* Colourful pixel surfaces. Legacy filename preserves the established stylesheet order. */
:root{
 --px-ink:#26324a;--px-paper:#f7f3e9;--px-surface:#fffcf5;--px-muted:#4b5669;
 --px-coral:#e87972;--px-mint:#b9dcca;--px-gold:#f0ca63;--px-blue:#cadcf0;--px-lilac:#dfd4ee;
 --px-line:#a1aabb;--px-control:#7e8a9f;--px-shadow:#bec5d1;--px-accent:#375d91;--px-danger:#93404d;--px-success:#30614d;
 --paper:var(--px-paper);--surface:var(--px-surface);--ink:var(--px-ink);--muted:var(--px-muted);--line:var(--px-line);
 --soft:color-mix(in srgb,var(--px-blue) 35%,var(--px-surface));--accent:var(--px-accent);--focus:var(--px-accent);
 --pixel-pink:var(--px-coral);--pixel-mint:var(--px-mint);--pixel-yellow:var(--px-gold);--pixel-lilac:var(--px-lilac);
 --atlas-ink:var(--px-ink);--atlas-blue:var(--px-accent);--atlas-rule:var(--px-line);--atlas-muted:var(--px-muted);
}
body{background-color:var(--paper);background-image:none;color:var(--px-ink)}
::selection{background:var(--px-ink);color:var(--px-blue)}
*:focus-visible{outline-color:var(--px-accent)}
input,select,textarea{accent-color:var(--px-accent);color:var(--px-ink)}
input::placeholder,textarea::placeholder{color:var(--muted)}
.site-header{background:var(--px-surface);border-bottom:1px solid var(--line);box-shadow:0 2px 0 var(--px-shadow)}
.brand,.brand small{color:var(--px-ink)}
.brand img{width:32px;height:32px;image-rendering:pixelated}
.brand small{color:var(--px-danger)}
.primary-nav a{color:var(--px-ink);border-color:transparent}
.primary-nav a:hover{background:var(--soft);color:var(--px-ink)}
.primary-nav a.current{color:var(--px-ink);background:var(--px-gold);border-color:var(--px-ink);box-shadow:2px 2px 0 var(--px-shadow)}
.header-search{background:var(--soft);border-color:var(--px-control);box-shadow:inset 1px 1px 0 var(--px-surface),2px 2px 0 var(--px-shadow)}
.header-search:focus-within{background:var(--px-surface);border-color:var(--px-accent);box-shadow:2px 2px 0 var(--px-mint)}
.header-search>span,.header-search input,.header-search kbd{color:var(--px-ink)}
.header-search .icon,.header-search input::placeholder{color:var(--muted)}
.header-search kbd{background:var(--surface);border-color:var(--px-control)}
.header-search .search-clear:hover{background:var(--px-mint)}
.header-tools .mobile-menu{background:var(--px-ink);color:var(--px-surface);border-color:var(--px-ink);box-shadow:2px 2px 0 var(--px-shadow)}
.workspace{background:transparent;border-inline:0;box-shadow:none}
.page-top,.section-head,.catalog-tools,.pagination,.facet-panel-heading{border-color:var(--line)}
.page-top h1,.atlas-map-intro h1{text-shadow:none}
.section-kicker{color:var(--px-accent)}
.section-kicker:before{background:var(--px-accent);box-shadow:5px 5px 0 var(--px-mint)}
/* The marker occupies its entire painted area, so flex aligns its visual centre. */
.atlas-intro-copy>.atlas-eyebrow,.section-kicker,.atlas-dossier .experience-eyebrow{display:inline-flex;align-items:center;gap:10px;line-height:24px!important}
.atlas-section-heading>div{align-items:center}
.atlas-section-heading p{margin-left:0}
.profile-tile h2{margin-top:0}
.atlas-intro-copy>.atlas-eyebrow:before,.section-kicker:before,.atlas-dossier .experience-eyebrow:before{
 content:'';width:12px!important;height:12px!important;flex:0 0 12px!important;margin:0!important;box-shadow:none!important;
 background:linear-gradient(var(--px-coral),var(--px-coral)) left top/6px 6px no-repeat,linear-gradient(var(--px-blue),var(--px-blue)) right top/6px 6px no-repeat,linear-gradient(var(--px-mint),var(--px-mint)) left bottom/6px 6px no-repeat,linear-gradient(var(--px-gold),var(--px-gold)) right bottom/6px 6px no-repeat!important;
}
.page-number{color:var(--px-muted)}
.button{background:var(--px-ink);border-color:var(--px-ink);color:var(--px-surface);box-shadow:2px 2px 0 var(--px-shadow)}
.button.secondary{background:var(--surface);border-color:var(--px-control);color:var(--px-ink);box-shadow:2px 2px 0 var(--px-shadow)}
.button:hover{background:var(--accent);border-color:var(--accent);box-shadow:1px 1px 0 var(--px-shadow);color:var(--px-surface)}
.button.secondary:hover{background:var(--px-mint);color:var(--px-ink);border-color:var(--px-accent);box-shadow:1px 1px 0 var(--px-shadow)}
.sort-wrap select,.year-facet select,.entity-browser-toolbar input,.entity-browser-toolbar select{background-color:var(--surface);border-color:var(--px-control);box-shadow:1px 1px 0 var(--px-shadow);color:var(--px-ink)}
.catalog-heading .catalog-emblem{background-image:url('/assets/decor/color-pixel-world.svg');box-shadow:4px 4px 0 var(--px-shadow)}
.catalog-emblem b{background:var(--px-ink);color:var(--px-blue)}
body[data-layout=catalog] .sidebar{border-right:1px solid var(--line);background:transparent}
.sidebar-inner,#side-nav{background:transparent}
.facet-panel-heading{padding-bottom:18px;margin-bottom:10px}
.facet-feedback:not([hidden]){margin-bottom:12px}
.facet-panel-heading span,.facet-logic,.facet-feedback,.facet-description,.facet-footnote,.sidebar-note,.sidebar-note p,.sidebar-note a,.facet-choice small{color:var(--muted)}
.facet-directory-link{background:var(--px-blue);color:var(--px-accent);border-left-color:var(--px-accent)}
.facet-group{border-bottom:1px solid var(--line)}
.facet-group[open]>summary{color:var(--px-ink)}
.facet-choice{color:var(--px-ink)}
.facet-choice:hover{background:var(--soft)}
.facet-choice.selected{background:var(--px-mint);color:var(--px-ink)}
.facet-choice.selected small{color:var(--muted)}
.facet-choice input{border-color:var(--px-control);background:var(--surface)}
.facet-choice input:checked{border-color:var(--px-ink);background:var(--px-ink)}
.facet-choice.selected .facet-check{color:var(--px-surface)}
.facet-selected-count{background:var(--px-ink);color:var(--px-surface)}
.fieldset-search{border-color:var(--px-control);background:var(--surface);color:var(--px-ink)}
.year-facet label{color:var(--muted)}
.active-filter{border-color:var(--px-control);background:var(--px-mint);color:var(--px-ink);box-shadow:1px 1px 0 var(--px-shadow)}
.game-card{background:var(--surface);border-color:var(--px-line);box-shadow:2px 2px 0 var(--px-shadow)}
.game-card>a{background:var(--surface)}
.game-card:hover,.game-card:focus-within{box-shadow:3px 3px 0 var(--px-control)}
.poster{background:var(--soft);border-bottom-color:var(--px-line)}
.poster .poster-open{background:var(--px-ink);color:var(--px-blue);border-color:var(--px-ink);box-shadow:2px 2px 0 var(--px-shadow)}
.card-original,.card-bottom{color:var(--muted)}
.card-bottom{border-top-color:var(--line)}
.card-bottom .card-rating{flex-shrink:1;max-width:100%}
.game-card .card-content h3{overflow-wrap:anywhere}
.game-card .card-bottom .card-rating{color:var(--px-ink)}
.no-cover{color:var(--muted);background-color:var(--soft);background-image:linear-gradient(45deg,var(--px-blue) 25%,transparent 25%),linear-gradient(-45deg,var(--px-blue) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,var(--px-blue) 75%),linear-gradient(-45deg,transparent 75%,var(--px-blue) 75%)}
.page-buttons button{border-color:var(--px-control);background:var(--surface);color:var(--px-ink)}
.page-buttons button:hover{background:var(--px-mint);border-color:var(--px-accent)}
.page-buttons button.selected{background:var(--px-ink);border-color:var(--px-ink);color:var(--px-blue);box-shadow:2px 2px 0 var(--px-shadow)}
.page-buttons .page-step,.page-jump button,.page-jump input{border-color:var(--px-accent);background:var(--surface);color:var(--px-ink)}
.atlas-map-intro{border-color:var(--line)}
.atlas-map-graphic{display:block;min-width:0;height:auto;overflow:hidden;background-color:var(--px-blue);background-image:url('/assets/decor/color-pixel-world.svg');border-color:var(--px-control);box-shadow:2px 2px 0 var(--px-shadow)}
.atlas-map-graphic svg{display:block;width:100%;height:auto;overflow:hidden;background:#cadcf0b8}
.atlas-map-graphic .map-line{stroke:var(--px-accent)}
.atlas-map-graphic .map-node{fill:var(--px-surface);stroke:var(--px-ink)}
.atlas-map-graphic .map-node:nth-of-type(3n+1){fill:var(--px-mint)}
.atlas-map-graphic .map-node:nth-of-type(3n+2){fill:var(--px-gold)}
.atlas-map-graphic .map-node:nth-of-type(3n){fill:var(--px-lilac)}
.atlas-map-graphic .map-center{fill:var(--px-ink);stroke:var(--px-ink)}
.atlas-map-graphic .map-dot{fill:var(--px-ink)}
.atlas-map-graphic text{fill:var(--px-ink)}
.atlas-map-graphic .map-light{fill:var(--px-surface);opacity:1}
.directory-card{border-color:var(--px-line)!important;background:var(--surface)!important;box-shadow:2px 2px 0 var(--px-shadow)}
.directory-card:nth-child(3n+2),.directory-card:nth-child(3n){box-shadow:2px 2px 0 var(--px-shadow)}
.directory-card:hover{background:var(--soft)!important;box-shadow:3px 3px 0 var(--px-control)}
.directory-number{color:var(--px-ink);background:var(--px-blue)}
.directory-card p,.directory-card>div span{color:var(--muted)}
.profile-tile{border-color:var(--px-line)!important;background:var(--surface);box-shadow:2px 2px 0 var(--px-shadow)}
.profile-tile:hover{background:var(--soft)}
.profile-tile-image{border-color:var(--px-line);background:#fff}
.profile-tile-image .ui-icon{color:var(--px-accent)}
.entity-browser-toolbar .search-field{background:var(--surface);border-color:var(--px-control);box-shadow:1px 1px 0 var(--px-shadow)}
.entity-browser-toolbar .search-field:focus-within{border-color:var(--px-ink);box-shadow:3px 3px 0 var(--px-accent)}
.field-links a,.tag-links a,.schema-links a{border-color:var(--px-control);background:var(--surface);color:var(--accent)}
.field-links a:hover,.tag-links a:hover,.schema-links a:hover{background:var(--px-mint);border-color:var(--px-accent);color:var(--px-ink)}
.source-copy{color:var(--px-ink)}
.data-chart{border-color:var(--px-line);background:var(--surface);box-shadow:2px 2px 0 var(--px-shadow)}
.data-chart .chart-bar{background:var(--px-ink)}
.data-chart .chart-bar.shade-1{background:var(--px-success)}
.data-chart .chart-bar.shade-2{background:var(--px-coral)}
.data-chart .chart-track{background:var(--px-blue)}
:is(.atlas-dossier,.atlas-profile) .game-card .card-content .card-original{color:var(--muted)}
.atlas-dossier .release-platform ul{color:var(--muted)}
.site-footer{border-top:1px solid var(--line);color:var(--px-ink);background:transparent;box-shadow:none}
.site-footer:before{top:-12px;right:0;width:5px;height:6px;background:var(--px-coral);box-shadow:-10px 0 0 var(--px-blue),-20px 0 0 var(--px-mint),-30px 0 0 var(--px-gold),-40px 0 0 var(--px-lilac),-50px 0 0 var(--px-ink)}
.footer-brand,.footer-brand span,.site-footer nav a,.site-footer>div a{color:var(--px-ink)}
.site-footer a:hover{color:var(--px-danger)}
.toast{background:var(--px-ink);color:var(--px-surface);border-color:var(--px-accent);box-shadow:2px 2px 0 var(--px-shadow)}
.page-scrollbar-thumb{background:#375d9199}
.loading-state,.empty-state,.network-error,.catalog-empty{background:var(--surface);border-color:var(--px-line);box-shadow:2px 2px 0 var(--px-shadow);color:var(--px-ink)}
.state-symbol{background:var(--px-blue);color:var(--px-ink);border-color:var(--px-accent);box-shadow:3px 3px 0 var(--px-shadow)}
.loading-title,.loading-line,.loading-cards span,.loading-cards i{background:var(--px-blue);animation-name:gameboy-loading}
@keyframes gameboy-loading{50%{background:var(--px-lilac)}}
.route-progress{background:var(--px-mint)}
.route-progress:before{background:var(--px-accent)}
.route-progress span{background:var(--px-blue);color:var(--px-ink);border-color:var(--px-accent);box-shadow:3px 3px 0 var(--px-shadow)}
.skip-link{background:var(--px-ink);color:var(--px-blue)}
.account-content,.sync-status-card,.sync-update-settings,.sync-stats>div,.table-scroll{background:var(--surface);border-color:var(--px-line);box-shadow:2px 2px 0 var(--px-shadow)}
.account-content input,.admin-editor input,.admin-editor select,.admin-editor textarea{background:var(--surface);border-color:var(--px-control);color:var(--px-ink)}
.admin-tabs a{background:var(--surface);border-color:var(--px-accent);color:var(--px-ink)}
.admin-tabs .active{background:var(--px-ink);color:var(--px-blue);box-shadow:2px 2px 0 var(--px-shadow)}
.admin-table th{background:var(--px-blue);color:var(--px-ink)}
.admin-table th,.admin-table td{border-bottom-color:var(--line)}
.account-content .sync-warning{background:#f5dedb;color:var(--px-danger)!important}
.sync-status-card>p,.sync-check-time,.sync-current span:last-child,.sync-history>span,.sync-help,.sync-metrics small,.sync-metrics em,.sync-table-heading p,.sync-job-table small,.sync-row-note,.sync-technical,.sync-update-settings p,.sync-history small{color:var(--muted)}
.sync-history strong,.sync-status-head h2,.sync-metrics strong{color:var(--px-ink)}
.sync-current,.sync-progress,.sync-job-table progress,.sync-job-table progress::-webkit-progress-bar{background:var(--px-blue)}
.sync-history,.sync-metrics,.sync-technical{border-color:var(--line)}
.sync-progress span,.sync-job-table progress::-webkit-progress-value{background:var(--px-accent)}
.sync-job-table progress::-moz-progress-bar{background:var(--px-accent)}
.sync-toggle input{accent-color:var(--px-accent)}
.sync-row-state.complete,.sync-row-state.processing{color:var(--px-success)}
.sync-row-state.error,.sync-row-state.unavailable,.sync-warning{color:var(--px-danger)!important}
.sync-status-mark,.sync-status-card[data-state=queued] .sync-status-mark{background:var(--px-accent)}
.sync-status-card[data-state=running] .sync-status-mark,.sync-status-card[data-state=starting] .sync-status-mark,.sync-status-card[data-state=complete] .sync-status-mark{background:var(--px-success);box-shadow:0 0 0 4px #b9dcca80}
.sync-status-card[data-state=error] .sync-status-mark,.sync-status-card[data-state=interrupted] .sync-status-mark,.sync-status-card[data-state=unknown] .sync-status-mark{background:var(--px-danger)}
.raw-json{background:var(--soft);color:var(--px-ink)}
.network-error p,.empty-state p,.catalog-note,.action-notice{color:var(--muted)}
@media(max-width:780px){
 .site-header{box-shadow:0 2px 0 var(--px-shadow)}
 .primary-nav a.current{box-shadow:2px 2px 0 var(--px-shadow)}
 body[data-layout=catalog] .sidebar{background:var(--paper);border-right-color:var(--line);box-shadow:4px 0 0 #26324a16}
 .sidebar-scrim{background:#26324a70}
 .game-card{box-shadow:2px 2px 0 var(--px-shadow)}
 .page-top h1,.atlas-map-intro h1{text-shadow:none}
 .workspace{border-inline:0;box-shadow:none}
}
@media(prefers-reduced-motion:reduce){.loading-title,.loading-line,.loading-cards span,.loading-cards i{animation:none}}
