/* Public visual release browser. */
#menu-toggle{display:none;min-width:38px;justify-content:center}
#nav-backdrop[hidden]{display:none}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid #a3d2ff;outline-offset:2px}
.catalog-intro,.catalog-explain,.catalog-dashboard-banner{border:1px solid rgba(88,166,255,.27);background:linear-gradient(135deg,rgba(41,89,134,.28),rgba(23,55,47,.3));border-radius:12px;padding:18px 20px;margin-bottom:18px}
.catalog-intro strong,.catalog-dashboard-banner strong{display:block;font-size:17px;color:#f0f6fc;margin-bottom:5px}
.catalog-intro p,.catalog-explain span,.catalog-dashboard-banner span{display:block;color:#bdc9d3;font-size:13px;line-height:1.7}
.catalog-explain{display:flex;align-items:flex-start;gap:14px;padding:13px 17px}
.catalog-explain strong{white-space:nowrap;color:#e8d69c;font-size:12px}
.catalog-dashboard-banner{display:flex;align-items:center;justify-content:space-between;gap:16px}
.catalog-dashboard-banner .btn{flex:none}
.catalog-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:25px}
.catalog-stats>div{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:15px 18px}
.catalog-stats strong{display:block;font-size:27px;color:#9dd2ff;line-height:1.25}
.catalog-stats span{color:var(--muted);font-size:12px}
.catalog-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:20px 0 11px}
.catalog-section-head h2{font-size:17px}
.catalog-section-head span{font-size:12px;color:var(--muted)}
.catalog-games{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.catalog-game-card{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--border);background:var(--bg2);border-radius:11px;color:var(--text);padding:16px;cursor:pointer}
.catalog-game-card:hover,.catalog-game-card:focus-visible{border-color:var(--accent);background:#1d2b39}
.catalog-game-mark{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:10px;background:#274b68;color:#d9efff;font-size:22px;font-family:serif}
.catalog-game-info{display:flex;flex-direction:column;min-width:0;flex:1}
.catalog-game-info strong{font-size:16px}
.catalog-game-info small{font-size:12px;color:#a9bdcb}
.catalog-game-info em{font-size:11px;color:#d6c891;font-style:normal;margin-top:4px}
.catalog-footnote{font-size:12px;color:#9baeb9;line-height:1.6;margin:16px 0 30px}
.catalog-status{display:inline-flex;align-items:center;border-radius:100px;padding:3px 9px;font-size:11px;font-weight:600;line-height:1.4;white-space:normal}
.catalog-status.good{background:#254e3c;color:#a7e5b7}
.catalog-status.notice{background:#4c3d26;color:#f0cf8b}
.catalog-status.candidate{background:#253d61;color:#a8ceff}
.catalog-status.bad{background:#5b3030;color:#ffbab7}
.catalog-release-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:17px 0}
.catalog-release{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:104px;padding:13px;border:1px solid var(--border);background:var(--bg2);border-radius:10px;color:var(--text);text-align:left;cursor:pointer}
.catalog-release:hover,.catalog-release[aria-pressed=true]{border-color:#78baf9;background:#1d2d3f}
.catalog-release strong{font-size:14px}
.catalog-release small{color:#b6c6d1;font-size:11px}
.catalog-toolbar{display:grid;grid-template-columns:minmax(170px,1fr) minmax(150px,.75fr) minmax(220px,1.5fr) auto;align-items:end;gap:10px;padding:14px;background:var(--bg2);border:1px solid var(--border);border-radius:10px}
.catalog-toolbar label,.catalog-model-actions label{font-size:11px;color:#b6c6d1;margin:0}
.catalog-toolbar select,.catalog-toolbar input,.catalog-model-actions select{display:block;margin-top:5px;min-height:39px}
.catalog-toolbar .btn{min-height:39px;justify-content:center}
.catalog-assets{display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));gap:12px}
.catalog-asset{display:flex;flex-direction:column;min-width:0;padding:0;border:1px solid var(--border);background:var(--bg2);border-radius:10px;overflow:hidden;color:var(--text);text-align:left;cursor:pointer}
.catalog-asset:hover,.catalog-asset:focus-visible{border-color:#78baf9;transform:translateY(-1px)}
.catalog-thumb{height:155px;width:100%;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#2d414f,#17232d 74%);color:var(--muted);font-size:12px;overflow:hidden}
.catalog-thumb img{display:block;width:100%;height:100%;object-fit:contain;padding:8px}
.catalog-asset-body{display:flex;flex-direction:column;gap:4px;padding:11px 12px;min-height:83px}
.catalog-asset-body strong{font-size:13px;line-height:1.3;overflow-wrap:anywhere}
.catalog-asset-body small{font-size:11px;color:#adc2d0}
.catalog-asset-meta{font-size:10px;color:#d3c48d}
.catalog-more{margin:18px auto 0;display:flex}
.catalog-more[hidden]{display:none}
.catalog-empty{grid-column:1/-1;padding:36px 14px;text-align:center;border:1px dashed var(--border);border-radius:9px;color:var(--muted)}
.catalog-dialog{width:min(1100px,calc(100vw - 30px));max-height:90vh;overflow:auto;margin:auto;padding:0;border:1px solid #627c90;border-radius:13px;background:#131f29;color:var(--text);box-shadow:0 28px 80px #000b}
.catalog-dialog::backdrop{background:rgba(2,9,15,.8)}
.catalog-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:22px 24px 17px;border-bottom:1px solid var(--border)}
.catalog-detail-head h2{font-size:23px;line-height:1.25;margin:5px 0}
.catalog-detail-head code{font-size:11px;color:#9db3c3;overflow-wrap:anywhere}
.catalog-eyebrow{font-size:11px;color:#d6c997}
.catalog-close{width:38px;height:38px;flex:none;background:#283b48;border:1px solid var(--border);border-radius:8px;color:#fff;font-size:24px;line-height:1;cursor:pointer}
.catalog-detail-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,1fr);gap:20px;padding:20px 24px 24px}
.catalog-preview{display:grid;place-items:center;min-height:350px;height:350px;border:1px solid var(--border);background:radial-gradient(circle at center,#314756,#18232e 72%);border-radius:9px;overflow:hidden;text-align:center}
.catalog-preview img{max-width:100%;max-height:100%;object-fit:contain}
.catalog-preview canvas{display:block;width:100%;height:100%}
.catalog-preview p,.catalog-loading{color:#b9cad6;font-size:13px;padding:14px}
.catalog-directions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px}
.catalog-directions button{min-width:0;padding:4px;border:1px solid var(--border);border-radius:6px;background:#22313d;color:#d5e1e9;cursor:pointer}
.catalog-directions button:hover,.catalog-directions button[aria-pressed=true]{border-color:#8fc4f5}
.catalog-directions img{width:100%;height:58px;object-fit:contain}
.catalog-directions small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px}
.catalog-model-actions{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px;margin-top:10px}
.catalog-model-actions label{flex:1 1 180px}
.catalog-model-actions button{min-height:38px}
.catalog-fact-status{background:#1b2b37;padding:12px;border-radius:8px;margin-bottom:13px}
.catalog-fact-status p{margin-top:7px;font-size:11px;color:#aebfca}
.catalog-facts dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px 10px;font-size:12px}
.catalog-facts dt{color:#91a9b8}
.catalog-facts dd{margin:0;min-width:0;overflow-wrap:anywhere}
.catalog-facts .catalog-missing{color:#ffcf91}
.catalog-hash{font-size:10px;word-break:break-all}
.catalog-clips{margin-top:17px;font-size:12px}
.catalog-clips>div{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.catalog-clips span{padding:3px 7px;border-radius:5px;background:#263d4c;color:#c4d8e4;font-size:10px}
.catalog-detail-links{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px}
.catalog-license-note{font-size:11px;color:#a7b8c3;line-height:1.6;margin-top:12px}
.catalog-character-link{margin-top:12px}
.character-game-tabs{display:flex;gap:10px;margin:18px 0}
.character-game-tabs button{flex:1;padding:13px 16px;text-align:left;border:1px solid var(--border);border-radius:9px;background:var(--bg2);color:var(--text);font:inherit;font-weight:600;cursor:pointer}
.character-game-tabs button[aria-pressed=true]{border-color:#78baf9;background:#20374a;color:#c8e8ff}
.character-section[hidden]{display:none}
.character-section-heading{margin:18px 0 12px}
.character-section-heading h2{font-size:19px;margin-bottom:4px}
.character-section-heading p{color:#aebfcc;font-size:12px;line-height:1.7}
.character-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--bg2);margin-bottom:15px}
.character-controls label,.character-preview-actions label{font-size:11px;color:#b6c6d1}
.character-controls select,.character-preview-actions select{display:block;min-height:39px;width:100%;margin-top:5px}
.character-count{color:#b5c6d0;font-size:12px;margin:8px 0 12px}
.character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px}
.character-card{display:flex;flex-direction:column;gap:3px;text-align:left;padding:0 0 11px;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:var(--bg2);color:var(--text);cursor:pointer}
.character-card:hover,.character-card[aria-pressed=true]{border-color:#78baf9;background:#203343}
.character-card-image{display:grid;place-items:center;height:145px;background:radial-gradient(circle,#2d414f,#17232d 74%)}
.character-card-image img{height:100%;width:100%;object-fit:contain;padding:7px}
.character-card strong,.character-card small,.character-card em{margin:0 10px;overflow-wrap:anywhere}
.character-card strong{font-size:12px}
.character-card small{font-size:11px;color:#bbceda}
.character-card em{font-size:10px;font-style:normal;color:#dfc98d}
.character-selected{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.2fr);gap:20px;align-items:center;margin-top:18px;padding:18px;border:1px solid var(--border);border-radius:10px;background:var(--bg2)}
.character-selected:empty{display:none}
.character-selected>img{display:block;width:100%;height:320px;object-fit:contain;background:#20313c;border-radius:8px}
.character-selected h3{font-size:19px;margin-bottom:10px}
.character-selected dl,.character-descriptor dl{display:grid;grid-template-columns:90px minmax(0,1fr);gap:7px 10px;margin:10px 0 18px;font-size:12px}
.character-selected dt,.character-descriptor dt{color:#94aab8}
.character-selected dd,.character-descriptor dd{margin:0;overflow-wrap:anywhere}
.character-selected .btn{margin:4px 6px 0 0}
.character-preview-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:16px}
.character-stage{display:grid;place-items:center;height:440px;border:1px solid var(--border);border-radius:10px;background:radial-gradient(circle,#2c414e,#17232d 72%);overflow:hidden}
.character-stage p{color:#b8cbd6;font-size:13px;padding:20px;text-align:center}
.character-stage canvas{width:100%;height:100%;display:block}
.character-preview-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-top:10px}
.character-preview-actions .btn{min-height:39px}
.character-preview-actions label{flex:1 1 150px}
.character-descriptor{padding:18px;border:1px solid var(--border);border-radius:10px;background:var(--bg2)}
.character-combination{font-size:18px;color:#dcefff}
.character-descriptor>p{font-size:12px;line-height:1.7;color:#b9cbd5;margin:9px 0 14px}
.character-descriptor code{font-size:11px;word-break:break-all}
@media(max-width:1100px){.catalog-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-toolbar .btn{align-self:end}}
@media(max-width:768px){
  #menu-toggle{display:inline-flex}
  #sidebar{display:flex;position:fixed;left:0;top:0;bottom:0;z-index:31;width:min(290px,85vw);transform:translateX(-101%);transition:transform .2s;box-shadow:12px 0 28px #0007}
  body.nav-open #sidebar{transform:translateX(0)}
  #nav-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:30;background:#000a;border:0}
  #header{gap:8px;padding:0 12px}
  #header .logo{font-size:12px}
  #header .search-wrap{max-width:none}
  #header .search-input{min-width:0;font-size:11px}
  #content{padding:15px}
  .catalog-detail-grid{grid-template-columns:1fr}
  .catalog-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .character-preview-layout{grid-template-columns:1fr}
}
@media(max-width:540px){
  #header .header-actions{display:none}
  .catalog-toolbar{grid-template-columns:1fr}
  .catalog-explain,.catalog-dashboard-banner{display:block}
  .catalog-dashboard-banner .btn{margin-top:12px}
  .catalog-assets{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .catalog-thumb{height:125px}
  .catalog-asset-body{padding:9px}
  .catalog-release-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:5px}
  .catalog-release{flex:0 0 230px;min-width:230px;scroll-snap-align:start}
  .catalog-section-head{display:block}
  .catalog-section-head span{display:block;margin-top:5px}
  .catalog-dialog{width:calc(100vw - 12px);max-height:94vh}
  .catalog-detail-head,.catalog-detail-grid{padding:14px}
  .catalog-detail-head h2{font-size:20px}
  .catalog-preview{height:280px;min-height:280px}
  .catalog-facts dl{grid-template-columns:84px minmax(0,1fr)}
  .character-game-tabs{flex-direction:column}
  .character-controls{grid-template-columns:repeat(2,minmax(0,1fr))}
  .character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .character-selected{grid-template-columns:1fr}
  .character-stage{height:350px}
}
