.discover-wrap{max-width:1360px;margin:auto;padding:0 36px 150px}.discover-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:48px 0 30px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.16em;color:#b2a3ff}.discover-heading h1{font-size:clamp(38px,5vw,60px);line-height:1.2;letter-spacing:-2px;margin:8px 0}.discover-heading p:not(.eyebrow),.room-bar p{color:var(--dim)}.subtle-link{font-size:13px;color:var(--dim);text-decoration:none}.subtle-link:hover{color:var(--text)}.room-bar{display:flex;gap:14px;align-items:center;background:linear-gradient(110deg,#211a3d,#17262b);border:1px solid #4a3d67;border-radius:14px;padding:18px 22px;margin-bottom:28px}.room-bar div{flex:1}.room-bar strong{font-size:15px}.room-bar p{font-size:13px}.room-dot{width:9px;height:9px;border-radius:50%;background:var(--dim);flex-shrink:0}.room-bar.connected .room-dot{background:var(--green);box-shadow:0 0 14px #3ddc9766}.small-button,.game-action,.tag-button,.dialog-close{font:inherit;cursor:pointer;color:var(--text);border:1px solid var(--line);border-radius:8px;background:#242335;text-decoration:none}.small-button{font-size:13px;padding:9px 14px;white-space:nowrap}.catalog-toolbar{display:flex;align-items:end;gap:12px;margin-bottom:30px}.catalog-toolbar label{font-size:11px;color:var(--dim);font-weight:650;display:flex;flex-direction:column;gap:5px}.catalog-toolbar .search-label{flex:1}.catalog-toolbar input,.catalog-toolbar select{font:14px system-ui;color:var(--text);background:#171622;border:1px solid var(--line);border-radius:8px;padding:12px;min-height:46px;min-width:0}.catalog-toolbar input{width:100%}.catalog-layout{display:grid;grid-template-columns:185px minmax(0,1fr);gap:34px}.catalog-layout>*{min-width:0}.results{padding:0;border:0}.filter-title{display:flex;align-items:center;justify-content:space-between;gap:5px}.filter-title h2,.filter-rail h3{font-size:13px}.text-button{border:0;background:none;font:12px system-ui;color:#b3a4ff;cursor:pointer;padding:6px}.check{display:flex;align-items:start;gap:9px;font-size:13px;color:var(--dim);margin:22px 0 28px}.check input{margin-top:5px;accent-color:var(--accent)}.filter-hint{font-size:11px;color:var(--dim);margin:4px 0 12px}.tag-filters{display:flex;flex-direction:column;gap:5px}.tag-button{text-align:left;font-size:13px;background:transparent;border-color:transparent;padding:6px 10px;display:flex;justify-content:space-between;gap:12px}.tag-button:hover{background:var(--card-hi)}.tag-button[aria-pressed=true]{background:var(--accent-soft);border-color:#7160aa;color:#d8ceff}.tag-button span{color:var(--dim);font-size:11px}.foss-link{display:block;margin-top:28px;font-size:12px}.results-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.results-heading h2{font-size:18px}.results-heading span{font-size:12px;color:var(--dim)}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.game-card{background:#171621;border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:transform .15s,border-color .15s}.game-card:hover{transform:translateY(-3px);border-color:#78619c}.game-cover{width:100%;aspect-ratio:16/9;border:0;padding:0;background:linear-gradient(135deg,#2f2651,#182e37);color:#fff;cursor:pointer;display:grid;place-items:center;position:relative;overflow:hidden;font:inherit}.game-cover img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.cover-fallback{display:grid;place-items:center;gap:5px}.cover-fallback span{font-size:42px}.cover-fallback strong{font-size:19px;letter-spacing:-.5px}.game-copy{padding:15px}.game-title{border:0;padding:0;background:none;color:var(--text);text-align:left;font:750 17px system-ui;cursor:pointer}.game-meta{font-size:12px;color:var(--dim);margin:6px 0 12px;display:flex;justify-content:space-between;gap:8px}.game-price{color:#c8baff}.card-tags{display:flex;flex-wrap:wrap;gap:5px;min-height:26px;margin-bottom:14px}.card-tags button{font:11px system-ui;cursor:pointer;border:0;border-radius:4px;background:#252333;color:#bfb9cf;padding:4px 7px}.game-action{display:block;width:100%;font-size:13px;font-weight:650;padding:10px;text-align:center;background:var(--accent);border-color:transparent}.game-action.secondary{background:#282535;border:1px solid var(--line)}button:disabled{opacity:.5;cursor:default}.game-state{font-size:11px;color:var(--dim);margin-top:8px;min-height:18px}#catalog-message{color:var(--dim);font-size:14px;padding:15px 0}#catalog-message:empty{display:none}.next-bar{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);width:min(790px,calc(100% - 32px));display:flex;align-items:center;gap:25px;padding:15px 22px;border:1px solid #675487;background:#201c30;box-shadow:0 12px 60px #0009;border-radius:14px;z-index:5}.next-bar>div{flex:1}.next-bar .eyebrow{display:block;font-size:9px}.next-bar strong{font-size:16px}.next-bar p{font-size:12px;color:var(--dim)}progress{width:120px;accent-color:var(--green)}[hidden]{display:none!important}dialog{margin:auto;width:min(940px,calc(100% - 28px));max-height:90vh;border:1px solid #514365;border-radius:18px;padding:30px;background:#15131e;color:var(--text);overflow-y:auto}dialog::backdrop{background:#07060cce;backdrop-filter:blur(5px)}.dialog-close{position:sticky;top:0;float:right;width:34px;height:34px;font-size:24px;z-index:2}.detail-header{padding-right:36px}.detail-header h2{font-size:30px;letter-spacing:-1px}.detail-header p{color:var(--dim);font-size:14px;margin:8px 0 18px}.detail-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:24px;margin-top:24px}.media-stage{aspect-ratio:16/9;background:#252236;border-radius:10px;overflow:hidden;display:grid;place-items:center}.media-stage img,.media-stage video{width:100%;height:100%;object-fit:contain}.media-stage p{padding:25px;color:var(--dim);text-align:center;font-size:14px}.media-thumbs{display:flex;gap:8px;overflow-x:auto;margin-top:10px;padding-bottom:8px}.media-thumbs button{border:1px solid var(--line);background:#272335;color:var(--text);padding:8px;border-radius:6px;cursor:pointer;font:12px system-ui;flex-shrink:0}.media-thumbs button[aria-pressed=true]{border-color:#b4a1ff}.media-source{font-size:11px;color:var(--dim)}.detail-layout>*{min-width:0}.detail-facts{font-size:13px;color:var(--dim);display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:20px 0}.detail-facts dd{color:var(--text)}.detail-layout .game-state{margin:12px 0}.similar-section{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.similar-section h3{font-size:17px;margin-bottom:4px}.similar-section p{color:var(--dim);font-size:12px}.similar-games{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.similar-games button{font:13px system-ui;background:#292337;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:12px;text-align:left;cursor:pointer}.similar-games small{display:block;color:#b9accd;margin-top:4px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}:focus-visible{outline:3px solid #c0adff;outline-offset:3px}@media(max-width:1100px){.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-toolbar{flex-wrap:wrap}.catalog-toolbar .search-label{flex-basis:100%}}@media(max-width:650px){.discover-wrap{padding:0 18px 145px}.discover-heading{padding-top:30px}.discover-heading>.subtle-link{display:none}.room-bar{padding:14px;flex-wrap:wrap}.room-bar div{min-width:190px}.catalog-toolbar{gap:10px}.catalog-toolbar label{flex:1;min-width:110px}.catalog-layout{grid-template-columns:1fr;gap:24px}.tag-filters{flex-direction:row;overflow-x:auto;padding-bottom:6px}.tag-button{white-space:nowrap;background:var(--card)}.check{margin:12px 0}.filter-rail h3,.filter-hint,.foss-link{display:none}.game-grid{gap:12px}.game-copy{padding:12px}.game-title{font-size:15px}.game-meta{flex-direction:column;gap:2px}.card-tags{display:none}.game-state{font-size:10px}.next-bar{padding:12px;gap:12px}.next-bar progress{width:65px}.detail-layout{grid-template-columns:1fr}dialog{padding:20px}.cover-fallback strong{font-size:14px}.cover-fallback span{font-size:30px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.detail-layout .card-tags{display:flex}

.room-bar{flex-wrap:wrap}.room-bar>.next-bar{position:static;inset:auto;transform:none;width:100%;max-width:none;flex-basis:100%;box-shadow:none;background:transparent;border:0;border-radius:0;margin:0;padding:12px 0 0;z-index:auto}.discover-wrap{padding-bottom:40px}
 .game-ratings{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
 .game-ratings button[aria-pressed="true"]{background:#5143ae;color:#fff;border-color:#a99bff}

.game-cover.illustrated{aspect-ratio:3/4}.game-icon{width:24px;height:24px;object-fit:contain;image-rendering:pixelated;vertical-align:middle;margin-right:8px}

.integration-badge{align-self:flex-start;background:#242539;color:#c7c2ee;border:1px solid #45405e;border-radius:999px;padding:6px 10px;font:inherit;font-size:.78rem;text-align:left;cursor:pointer}
.integration-badge:hover{background:#353047}.integration-badge:focus-visible{outline:2px solid #a999ff;outline-offset:3px}
.integration-panel{margin-top:24px;padding-top:20px;border-top:1px solid #39384b;min-width:0}
.integration-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.integration-heading h3{margin:0;font-size:1.05rem}
.integration-heading select{padding:8px;border-radius:8px;background:#222436;color:inherit;border:1px solid #45405e}
.integration-summary{font-weight:600;margin:14px 0 6px}.integration-note{color:#b3afc2;font-size:.8rem;line-height:1.5}
.integration-checks{list-style:none;padding:0;margin:14px 0}.integration-checks li{display:flex;gap:12px;justify-content:space-between;align-items:baseline;padding:8px 0;font-size:.82rem;border-bottom:1px solid #ffffff0a}
.check-status{flex-shrink:0;font-size:.75rem}.check-status.passed,.verified{color:#97ddb8}.check-status.failed,.failed{color:#ffaaa3}.check-status.untested,.check-status.not_applicable{color:#b3afc2}

.integration-group{margin-top:20px}.integration-group h4{margin:0 0 4px;font-size:.88rem}.integration-group>.integration-note{margin:0}.integration-group .integration-checks{margin-top:6px}

/* Hover feedback follows the whole control; disabled actions stay unchanged. */
.discovery-page :is(button,a,input,select){transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}
@media (hover:hover){
  .discovery-page :is(.small-button,.text-button,.dialog-close,.game-ratings button,.media-thumbs button,.similar-games button):not(:disabled):hover{background:#3d3453;border-color:#a99bff;color:#fff}
  .discovery-page .game-action:not(:disabled):hover{background:#8572ff;border-color:#b9aaff;color:#fff}
  .discovery-page .game-action.secondary:not(:disabled):hover{background:#40364f;border-color:#a99bff}
  .discovery-page :is(.card-tags button,.tag-button):hover{background:#403454;color:#fff}
  .discovery-page .tag-button[aria-pressed=true]:hover{background:#51416c}
  .discovery-page .game-title:hover{color:#d3c7ff;text-decoration:underline;text-underline-offset:3px}
  .discovery-page .game-cover:hover{box-shadow:inset 0 0 0 3px #b9aaff}
  .discovery-page :is(input,select):not(:disabled):hover{border-color:#a99bff}
  .discovery-page :is(.subtle-link,.media-source):hover{color:#d3c7ff;text-decoration:underline}
}
@media(prefers-reduced-motion:reduce){.discovery-page :is(button,a,input,select){transition:none}}

/* A missing cover is a title card, not unrelated decorative artwork. */
.cover-fallback{width:100%;height:100%;padding:18px;text-align:center;box-sizing:border-box}
.cover-fallback strong{font-size:clamp(18px,2.4vw,30px);line-height:1.15;overflow-wrap:anywhere}

/* One compact status; evidence is disclosed only on request. */
.integration-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;padding:0;border:0;border-radius:6px;background:var(--card);color:var(--dim);font:600 14px system-ui;line-height:1;align-self:center}
.game-meta .integration-badge{margin-left:auto}
.integration-panel>summary{cursor:pointer;font-size:.85rem;color:var(--dim);width:fit-content;border-radius:6px;padding:6px 0}
.integration-panel>summary:hover{color:var(--text)}
.integration-panel[open]>.integration-heading{margin-top:16px}
.check-status.development{color:#b3afc2}

.game-state:empty,#room-help:empty,#catalog-message:empty{display:none}

.game-meta{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:4px}

.game-action[hidden]{display:none}

html{scrollbar-gutter:stable}
#game-dialog{overscroll-behavior:contain}
.preview-controls{position:sticky;top:0;z-index:5;display:flex;justify-content:flex-end;gap:8px;margin-bottom:12px;background:var(--bg,#171521);padding:8px;border-radius:12px}
.preview-controls button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line,#39384b);border-radius:50%;background:#292337;color:#fff;font:24px/1 system-ui;cursor:pointer}
.preview-controls button:hover:not(:disabled){background:#453958;border-color:#b9a7dc}
.preview-controls button:disabled{opacity:.3;cursor:default}
#close-details{margin-left:12px;font-size:30px}
