/* Shared five-square mark: the original Encounter motif, scaled by context. */
.bitmon-x{--pixel:5px;display:inline-grid;grid-template-columns:repeat(3,var(--pixel));grid-template-rows:repeat(3,var(--pixel));gap:0;flex-shrink:0;vertical-align:middle}
.bitmon-x i{display:block;width:var(--pixel);height:var(--pixel);background:currentColor}
.bitmon-x i:nth-child(1){grid-area:1/1}.bitmon-x i:nth-child(2){grid-area:1/3}.bitmon-x i:nth-child(3){grid-area:2/2}.bitmon-x i:nth-child(4){grid-area:3/1}.bitmon-x i:nth-child(5){grid-area:3/3}
.encounter-icon.bitmon-x{--pixel:8px;display:grid}
.swatch.all{display:grid;place-items:center}
.swatch.all .bitmon-x{--pixel:5px}
.pixel-period .bitmon-x{--pixel:10px}
.egg-button{display:grid;place-items:center;min-width:28px;min-height:36px}
.egg-button .bitmon-x{--pixel:4px}
dialog .close{display:grid;place-items:center}
dialog .close .bitmon-x{--pixel:4px}

/* The supplied logo stays byte-for-byte intact; crop its transparent margins in CSS. */
.footer-signature{gap:12px;white-space:nowrap}
.monsters-signature{display:block;position:relative;width:44px;aspect-ratio:1624/1026;overflow:hidden;flex:none;opacity:.78}
.monsters-signature img{position:absolute;max-width:none;width:118.2882%;height:auto;left:-9.1749%;top:-49.8051%;image-rendering:auto}
.world-view .monsters-signature img{filter:invert(1)}

/* Combinable layer selectors: familiar native controls with live availability. */
.trait-browser{margin:26px 0 6px}
.filter-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.filter-heading h3{font:500 1rem/1.4 var(--font);margin:0;color:#171717;letter-spacing:-.015em}
#traitCoverage{font:400 .8125rem/1.4 var(--font);color:#686862}
#filterHelp{font:400 .875rem/1.5 var(--font);color:#686862;margin:5px 0 16px}
.trait-browser .trait-filters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0;align-items:start}
.trait-browser .trait-filters label{display:flex;flex-direction:column;align-items:stretch;gap:7px;min-width:0;font:.875rem/1.3 var(--font);color:#5d5d58}
.trait-browser .trait-filters select{width:100%;max-width:none;min-width:0;min-height:44px;padding:10px 7px;border:1px solid #c8c8c1;border-radius:4px;background:#f7f7f4;color:#242424;font:.9375rem/1.4 var(--font);text-overflow:ellipsis}
.trait-browser .trait-filters select:hover{border-color:#7d7d74}
.trait-browser .trait-filters select.has-selection{border-color:#242424;background:#fff}
.trait-browser select:focus-visible,.filter-chip:focus-visible{outline:2px solid #0737ff;outline-offset:3px}
.filter-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-top:14px}
.filter-summary[hidden]{display:none}
.active-filters{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.filter-chip{display:inline-flex;align-items:center;gap:12px;max-width:100%;min-height:36px;padding:7px 10px;background:#deded7;border:1px solid transparent;border-radius:3px;color:#252522;font:.875rem/1.4 var(--font);text-align:left;overflow-wrap:anywhere}
.filter-chip .bitmon-x{--pixel:3px;margin-left:auto}
.filter-chip:hover{background:#d0d0c7;border-color:#a8a8a0}
#resetFilters{flex:none;min-height:36px;padding:7px 0;text-decoration:underline;text-underline-offset:3px}
.result-line{align-items:center;gap:20px}
.collection-section .empty h3{font-size:clamp(1.5rem,3vw,2.25rem);margin:12px 0}

/* The left panel is exactly the artwork square; only the information can scroll. */
.detail-dialog{width:min(calc(100vw - 48px),calc((100dvh - 56px)*1.8),1152px);max-width:1152px;max-height:calc(100dvh - 56px);padding:0;background:#f0f0ed;overflow:auto}
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);grid-template-rows:minmax(0,1fr);aspect-ratio:9/5;min-height:0;align-items:stretch}
.detail-art{position:relative;display:block;width:100%;height:auto;min-height:0;aspect-ratio:1;align-self:start;padding:0;overflow:hidden}
.detail-art>canvas{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;aspect-ratio:1;object-fit:fill;image-rendering:pixelated}
.detail-info{min-width:0;min-height:0;height:100%;overflow-y:auto;overscroll-behavior:contain;padding:50px 32px 24px}
.detail-info h2{font-size:clamp(3.25rem,6vw,6rem);margin:18px 0 24px}
.detail-info h2 small{font-size:1.125rem}
.detail-kicker{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px}
.detail-kicker .preview-tag{position:static;margin:0;padding:0;max-width:none;background:none;color:#666;font:.75rem/1.5 var(--mono);overflow-wrap:anywhere}
.detail-kicker .reveal-replay{position:static;flex:none;margin:0;padding:8px 0;min-height:36px;border:0;border-radius:0;background:none;color:#333;font:.875rem/1.4 var(--font);text-decoration:underline;text-underline-offset:4px}
.detail-kicker .reveal-replay:hover{color:#0737ff}
.detail-info .trait-list{flex:none;margin-bottom:24px;gap:14px 20px}
.detail-info .button{flex-shrink:0}
.detail-nav{flex-shrink:0}

@media(max-width:1100px){.trait-browser .trait-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-info{padding:44px 24px 20px}.detail-info h2{margin:14px 0 20px}.detail-info .trait-list{gap:12px 16px}}
@media(max-width:760px){
  .trait-browser{margin-top:22px}.trait-browser .trait-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}.filter-summary{gap:10px}.filter-chip{font-size:.8125rem}.filter-heading h3{font-size:1rem}
  .detail-dialog{width:min(calc(100vw - 24px),520px);max-height:calc(100dvh - 24px)}
  .detail-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;aspect-ratio:auto;min-height:0}
  .detail-art{width:100%;height:auto;min-height:0;aspect-ratio:1}
  .detail-info{height:auto;overflow:visible;padding:22px 24px 26px}
  .detail-info h2{font-size:4.125rem;margin:16px 0 24px}.detail-info h2 small{display:inline;vertical-align:middle;margin-right:12px}
  .monsters-signature{width:36px}.footer-signature{gap:8px}.footer-settings{gap:12px}
}
@media(max-width:380px){.app-footer{padding-inline:10px}.footer-signature{gap:6px}.monsters-signature{width:30px}.egg-button{min-width:24px}.footer-settings{gap:8px}.setting-button{gap:4px}.equalizer{display:none}.filter-summary{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.bitmon-x i{animation:none!important}.egg-button:hover{transform:none}}

/* Quiet artist credit paired with the existing animated wordmark. */
.header-brand{display:flex;align-items:center;gap:18px;justify-self:start;min-width:0}
.header-brand .brand{flex-shrink:0}
.artist-credit{display:inline-flex;align-items:center;min-height:24px;color:#aaa;font:400 .875rem/1.4 var(--font);white-space:nowrap;text-underline-offset:4px;text-decoration-thickness:1px}
.artist-credit:hover,.artist-credit:focus-visible{color:#fff;text-decoration:underline}
@media(max-width:1200px){.header-brand{flex-direction:column;align-items:flex-start;gap:2px}}
@media(max-width:760px){.header{grid-template-rows:60px 52px}.header-brand{grid-row:1;grid-column:1;gap:0}.artist-credit{font-size:.8125rem}}

/* Community invitation stays visible in the header, outside the game HUD. */
.discord-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 15px;border:1px solid #555;border-radius:6px;background:#202020;color:#fff;font:500 14px/1.2 var(--font);text-decoration:none;white-space:nowrap;transition:background .15s ease,transform .15s ease}
.discord-link:hover{background:#333;border-color:#aaa;transform:translateY(-1px)}
.discord-link:focus-visible{outline:2px solid #fff;outline-offset:4px}
.discord-link:active{transform:translateY(1px)}
@media(min-width:761px) and (max-width:1200px){.header{gap:14px;padding-inline:20px}.header-actions{gap:14px}.header nav{gap:12px}.header .nav-link{padding-inline:10px}.header .lore-link{padding-inline:0}.discord-link{padding-inline:12px}}
@media(max-width:760px){.header-actions{gap:10px}.discord-link{padding-inline:12px;font-size:13px;gap:6px}}
@media(max-width:380px){.header{padding-inline:12px;column-gap:8px}.header-actions{gap:8px}.discord-link{padding-inline:10px}}
@media(prefers-reduced-motion:reduce){.discord-link{transition:none}.discord-link:hover,.discord-link:active{transform:none}}

@media(min-width:761px) and (max-width:1000px){.header .lore-link{display:none}.header .team-button{font-size:0;gap:0;min-width:44px;min-height:44px;justify-content:center}.header-actions{gap:10px}.header nav{gap:8px}}

/* A real label survives prereveal's hidden count on every header breakpoint. */
.header .team-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 12px;gap:8px;border:1px solid var(--yellow);border-radius:6px;color:#080808;background:var(--yellow);font:600 14px/1.2 var(--font);white-space:nowrap}
.header .team-button::before{display:none;content:none}
.header .team-button:hover{background:#fff;border-color:#fff}
.header .team-button:focus-visible{outline:2px solid var(--yellow);outline-offset:3px}
@media(max-width:760px){.header-actions{gap:8px}.header .team-button,.header .discord-link{font-size:14px;padding-inline:10px}.header .discord-link>span{display:none}}
@media(max-width:380px){.header{grid-template-columns:minmax(0,1fr) auto;column-gap:8px}.header-actions{gap:6px}.header-brand .brand{width:min(80px,100%)}.header-brand{width:100%}.header .artist-credit{white-space:normal;max-width:100%;line-height:1.2}.header .team-button,.header .discord-link{padding-inline:8px}}
