/* Final interaction layer. Keep artwork and content in control of the page. */
:root{--fb-focus:#ff8ccd}
::selection{background:#9d286a;color:#fff}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--fb-focus);outline-offset:4px}
.site-header .search-form:focus-within{border-color:#e85cae;box-shadow:0 0 0 3px #ed38991c}
.site-header .search-form input{min-width:0}
.fb-search-key{border:1px solid #604462;border-radius:5px;color:#c8accf;font:11px/1 monospace;padding:5px 7px;margin-right:10px;pointer-events:none}
.fb-results-tools{display:flex;align-items:center;justify-content:flex-end;gap:14px;margin:-4px 0 20px}
.fb-results-tools>span{font-size:12px;color:#baa3c4}
.fb-view-switch{display:flex;gap:3px;padding:4px;border:1px solid #47304e;background:#140d1d;border-radius:10px}
.fb-view-switch button{display:flex;align-items:center;gap:7px;min-height:36px;padding:8px 12px;border:0;border-radius:6px;background:transparent;color:#ba9fc6;font:inherit;font-size:12px;cursor:pointer;transition:background .18s,color .18s}
.fb-view-switch svg{width:16px;height:16px}
.fb-view-switch button[aria-pressed="true"]{background:#632047;color:#fff;box-shadow:inset 0 0 0 1px #d644974d}
.fb-view-switch button:hover{color:#fff;background:#442036}
.fb-catalog-results[data-density="compact"] .grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.fb-catalog-results[data-density="compact"] .card-scrim{padding:10px}
.fb-catalog-results[data-density="compact"] .card-title{font-size:15px}
.card:focus-within{border-color:#dd66ad;box-shadow:0 0 0 2px #dd66ad35}
.card-art{background:radial-gradient(circle at 65% 25%,#5a2453,#201126 70%)}
.card-art img{color:#d3b3dc}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;border-radius:9px}
.fb-back-top{position:fixed;right:24px;bottom:24px;z-index:40;width:46px;height:46px;border:1px solid #b1498d;border-radius:14px;color:#fff;background:#33172eee;box-shadow:0 6px 26px #0006;cursor:pointer;font-size:24px;transition:transform .18s,background .18s}
.fb-back-top:hover{transform:translateY(-3px);background:#792254}
.fb-back-top[hidden],.fb-results-tools[hidden]{display:none}
.fb-catalog-nav a[aria-current="page"]{background:#7e21555e;border-color:#ef5daf;color:white}
@media(min-width:1750px){.fb-catalog-results[data-density="compact"] .grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1150px){.fb-catalog-results[data-density="compact"] .grid{grid-template-columns:repeat(4,minmax(0,1fr))}.fb-search-key{display:none}}
@media(max-width:850px){.fb-catalog-results[data-density="compact"] .grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fb-filter-panel select{min-height:44px}.fb-results-tools{justify-content:space-between}}
@media(max-width:520px){.fb-catalog-results[data-density="comfortable"] .grid{grid-template-columns:1fr}.fb-catalog-results[data-density="compact"] .grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fb-results-tools{margin-bottom:16px}.fb-view-switch button{min-height:40px}.fb-back-top{right:14px;bottom:18px;width:42px;height:42px}.site-header .ember-account,.site-header .nav-toggle{min-width:44px;min-height:44px}.fb-catalog-head{border-radius:12px!important}.fb-active-filters a{min-height:40px}}
@media(prefers-reduced-motion:reduce){.fb-back-top,.fb-view-switch button{transition:none}.fb-back-top:hover{transform:none}}
/* Portrait covers: one consistent poster silhouette across shelves and catalog. */
.grid .card{min-width:0;height:100%;border-radius:11px}
.grid .card .card-link{display:flex;flex-direction:column;height:100%;aspect-ratio:auto;border-radius:11px;isolation:isolate}
.grid .card .card-art{position:relative;inset:auto;aspect-ratio:3/4;flex:none;width:100%;overflow:hidden}
.grid .card .card-art img{object-fit:cover;object-position:50% 30%;width:100%;height:100%}
.grid .card .card-art:after{content:'';position:absolute;inset:auto 0 0;height:22%;background:linear-gradient(transparent,#17101d99);pointer-events:none}
.grid .card .card-scrim{position:static;flex:1;padding:13px 12px 14px;min-height:96px;background:linear-gradient(145deg,#201527,#130e1b);border-top:1px solid #5d36502e}
.grid .card .card-title{font-size:16px;line-height:1.3;min-height:2.6em;margin:0}
.grid .card .card-meta{margin-top:9px;align-items:center;gap:5px}
.grid .card .card-meta .dev{flex-basis:100%;font-size:10px;padding:0;margin-top:2px}
.grid.rail,.ember-filled-section .grid.rail{grid-auto-columns:calc((100% - 64px)/5);gap:16px;align-items:stretch;padding-bottom:16px}
.grid .card .card-ph{position:absolute;inset:0;font-size:48px}
@media(min-width:1750px){.grid.rail,.ember-filled-section .grid.rail{grid-auto-columns:calc((100% - 80px)/6)}}
@media(max-width:1150px){.grid.rail,.ember-filled-section .grid.rail{grid-auto-columns:calc((100% - 42px)/4);gap:14px}}
@media(max-width:940px){.grid.rail,.ember-filled-section .grid.rail{grid-auto-columns:calc((100% - 28px)/3)}}
@media(max-width:600px){.grid.rail,.ember-filled-section .grid.rail{grid-auto-columns:44%;gap:12px}.grid .card .card-scrim{padding:11px 10px;min-height:94px}.grid .card .card-title{font-size:14px}.grid .card .card-meta>span{padding:2px 6px}}
@media(max-width:520px){.fb-catalog-results[data-density="comfortable"] .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fb-catalog-results[data-density="comfortable"] .card-art{aspect-ratio:3/4}.fb-catalog-results[data-density="compact"] .card-art{aspect-ratio:4/5}}
/* Shortcut hint sits inside the field, never as an adjacent control. */
.site-header .search-form{position:relative}
.site-header .search-form input[type="search"]{padding-right:44px}
.site-header .search-form .fb-search-key{position:absolute;right:10px;top:50%;transform:translateY(-50%);margin:0;padding:4px 6px;line-height:1;height:auto;min-height:0;pointer-events:auto;cursor:help;background:#25182d;color:#bda6c8;border-color:#4f3657}
@media(min-width:1151px){.grid.rail:has(>.card:nth-child(4):last-child){grid-auto-columns:calc((100% - 48px)/4)}}
/* Shorter portrait cards, with a compact caption beneath the artwork. */
.grid .card .card-art{aspect-ratio:1/1}
.grid .card .card-scrim{min-height:76px;padding:10px 12px}
.grid .card .card-title{min-height:1.3em}
.grid .card .card-meta{margin-top:7px}
.grid .card .card-meta .dev{flex-basis:auto;margin-top:0}
@media(max-width:600px){.grid .card .card-scrim{min-height:72px;padding:10px}.grid .card .card-title{min-height:1.3em}}
@media(max-width:520px){.fb-catalog-results[data-density="comfortable"] .card-art{aspect-ratio:1/1}.fb-catalog-results[data-density="compact"] .card-art{aspect-ratio:1/1}}
/* Larger spotlight portrait, kept behind the readable promotion copy. */
.ember-game-promo .ember-promo-cover{width:210px;height:210px;right:-48px;top:16px}
@media(max-width:1150px) and (min-width:601px){.ember-game-promo .ember-promo-cover{width:170px;height:170px;right:22%;top:-24px}}
@media(max-width:600px){.ember-game-promo .ember-promo-cover{width:180px;height:180px;right:-35px;top:12px}}
/* Gentle spotlight motion stays within the clipped artwork layer. */
@keyframes fb-promo-float{0%,100%{transform:translate3d(0,0,0) rotate(-2deg)}50%{transform:translate3d(-5px,7px,0) rotate(2deg)}}
.ember-game-promo .ember-promo-cover{animation:fb-promo-float 7s ease-in-out infinite;transform-origin:center}
.ember-promo-row:nth-child(even) .ember-promo-cover{animation-delay:-3.5s;animation-duration:8.5s}
.ember-game-promo .ember-promo-cover img{transform:scale(1.04);transition:transform .7s cubic-bezier(.2,.7,.3,1)}
.ember-game-promo:hover .ember-promo-cover,.ember-game-promo:focus-within .ember-promo-cover{animation-play-state:paused}
.ember-game-promo:hover .ember-promo-cover img,.ember-game-promo:focus-within .ember-promo-cover img{transform:scale(1.12)}
@media(prefers-reduced-motion:reduce){.ember-game-promo .ember-promo-cover{animation:none;transform:none}.ember-game-promo .ember-promo-cover img,.ember-game-promo:hover .ember-promo-cover img,.ember-game-promo:focus-within .ember-promo-cover img{transition:none;transform:none}}
/* Compact portrait event cards and progressive pagination. */
body .fb-events-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
body .fb-event-art{aspect-ratio:1/1}
body .fb-event-art img{object-position:center}
body .fb-event-copy{padding:16px}
body .fb-event h2{font-size:19px;line-height:1.3}
body .fb-event-date{line-height:1.6;font-size:11px}
body .fb-event-copy>a{font-size:13px}
.fb-load-more{text-align:center;padding:28px 12px 36px;color:#bea5c8;font-size:13px}
.fb-load-more button{margin-top:12px;border:1px solid #a44d86;border-radius:9px;padding:12px 24px;background:#32192e;color:#fff;cursor:pointer;font:inherit}
.fb-load-more button:disabled{opacity:.5;cursor:wait}
.fb-load-more button[hidden],nav.pagination[hidden]{display:none}
@media(max-width:1400px){body .fb-events-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}}
@media(max-width:1000px){body .fb-events-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){body .fb-events-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}body .fb-event-copy{padding:12px}body .fb-event h2{font-size:16px}}
@media(max-width:360px){body .fb-events-grid{grid-template-columns:1fr}}
.fb-events-tools{display:flex;align-items:end;flex-wrap:wrap;gap:14px;padding:20px;border:1px solid #50304a;border-radius:12px;background:#1a1021;margin-bottom:12px}.fb-events-tools label{display:grid;gap:8px;color:#cab0d3;font-size:12px}.fb-events-tools label:first-of-type{flex:1;min-width:180px}.fb-events-tools input,.fb-events-tools select{border:1px solid #5c3c60;border-radius:8px;background:#100b17;color:#fff;font:inherit;padding:12px;min-height:44px}.fb-events-tools>span{font-size:12px;color:#bda3c7;padding-bottom:14px}.fb-events-tools>a{padding:12px;color:#ed89c6}.fb-events-time-note{font-size:11px;color:#a38aaf;margin:0 0 22px}.fb-event-remaining{font-size:12px;color:#d9accd;margin:8px 0}.fb-event-remaining.is-urgent{color:#ffbb7d}.fb-event-remaining.is-urgent:before{content:'●';font-size:8px;margin-right:6px}.fb-event.is-ended .fb-event-art{filter:saturate(.45)}@media(max-width:520px){.fb-events-tools{padding:14px;gap:12px}.fb-events-tools label{width:100%}.fb-events-tools button{flex:1}}
body .fb-event-copy>a.fb-event-game-link{display:block;margin-top:12px;padding-top:12px;border-top:1px solid #513348;color:#d2bbdd}.fb-game-events{margin:24px 0;padding:20px;border:1px solid #72385c;border-radius:12px;background:linear-gradient(120deg,#35162b,#170f21)}.fb-game-events-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.fb-game-events-heading h2{font-size:22px;margin:0}.fb-game-events-heading>a,.fb-game-events .fb-event>a{font-size:12px;color:#ff87ca}.fb-game-events .fb-event{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px;background:#160f20a8;border-color:#5c3451}.fb-game-events .fb-event+.fb-event{margin-top:10px}.fb-game-events h3{font-size:17px;margin:7px 0}.fb-game-events .eyebrow{font-size:9px;color:#e994c4;letter-spacing:1.5px}.fb-game-events .fb-event-date{margin:7px 0}.fb-game-events .fb-event>a{flex-shrink:0;border:1px solid #98507a;border-radius:8px;padding:11px 13px}.fb-game-events .fb-event-remaining{margin:7px 0 0}@media(max-width:520px){.fb-game-events{padding:14px}.fb-game-events .fb-event{align-items:flex-start;flex-direction:column;gap:10px}}
.fb-picker-controls{flex-wrap:wrap}.fb-picker-controls select{max-width:100%}.fb-picker-controls>span{font-size:11px}.fb-picker-result #picker-status{line-height:1.6}.fb-picker-controls button:disabled{opacity:.55;cursor:wait}@media(max-width:520px){.fb-picker-controls label{width:calc(50% - 6px);min-width:0}.fb-picker-controls select{min-width:0;font-size:12px;padding:11px 8px}.fb-picker-controls button{width:100%}}
body .fb-picker-controls .btn{width:auto;flex:none}@media(max-width:520px){body .fb-picker-controls label{width:calc(50% - 6px);min-width:0}body .fb-picker-controls select{min-width:0}body .fb-picker-controls .btn{width:100%}}

/* Search controls: clear a query without losing the current results. */
body .site-header .search-form .fb-search-clear{position:absolute;left:auto;right:8px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:30px;height:30px;min-height:0;padding:0;border:1px solid transparent;border-radius:7px;background:transparent;color:#d6badf;font:24px/1 sans-serif;cursor:pointer}
body .site-header .search-form .fb-search-clear:hover{background:#ff239d20;border-color:#804161;color:#fff}
body .site-header .search-form .fb-search-clear:focus-visible{outline:2px solid #ff53b5;outline-offset:2px}
body .site-header .search-form [hidden]{display:none!important}
.site-header input[type=search]::-webkit-search-cancel-button{display:none}
.fb-filter-panel input[type=search]{box-sizing:border-box;width:100%;min-width:0;padding:12px;border:1px solid #674263;border-radius:8px;background:#21152a;color:#fff;font:inherit}
.fb-filter-panel input[type=search]:focus-visible{outline:2px solid #ff53b5;outline-offset:2px}

/* Keep the mobile menu beneath both rows of the header. */
@media(max-width:940px){body .site-header .nav{top:100%;max-height:calc(100dvh - 150px);overflow-y:auto;overscroll-behavior:contain}body .site-header .nav a{min-height:44px}.nav-toggle:focus-visible{outline:2px solid #ff53b5;outline-offset:4px}}
.fb-filter-pending{grid-column:1/-1;margin:0;color:#ffb2dc;font-size:12px;line-height:1.5}.fb-filter-panel form[data-changed=true] .btn{box-shadow:0 0 0 2px #ff75c344}
.fb-filter-pending[hidden]{display:none}.fb-not-found{max-width:850px;margin:40px auto;padding:40px;border:1px solid #663653;border-radius:20px;background:radial-gradient(ellipse at top right,#70234e55,transparent 70%),#170e20}.fb-not-found h1{font-size:clamp(32px,5vw,58px)}.fb-recovery-actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.fb-recovery-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.fb-recovery-form label{display:grid;gap:8px;flex:1;min-width:180px;color:#d2b5da}.fb-recovery-form input{width:100%;box-sizing:border-box;padding:14px;border:1px solid #674263;background:#21152a;color:#fff;border-radius:9px;font:inherit}.fb-recovery-form .btn{width:auto}.fb-recovery-form input:focus-visible{outline:2px solid #ff53b5;outline-offset:3px}@media(max-width:520px){.fb-not-found{margin:20px 0;padding:24px 18px}.fb-recovery-form .btn{width:100%}}

.fb-library-tools{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin:18px 0 24px;padding:18px;border:1px solid #56334d;border-radius:12px;background:#1c1225}.fb-library-tools label{display:grid;gap:8px;flex:1;min-width:170px;color:#d3bbdf;font-size:12px}.fb-library-tools input,.fb-library-tools select{box-sizing:border-box;width:100%;padding:12px;border:1px solid #674263;border-radius:8px;background:#21152a;color:#fff;font:inherit}.fb-library-tools input:focus-visible,.fb-library-tools select:focus-visible{outline:2px solid #ff53b5;outline-offset:2px}.fb-library-tools p{flex-basis:100%;margin:0;font-size:12px;color:#bfa5c8}.fb-library-no-match{padding:22px;border:1px dashed #68415e;border-radius:10px;color:#d3bbdf}.fb-library-tools[hidden],[data-library-grid]>.card[hidden],.fb-library-no-match[hidden]{display:none!important}

/* Horizontal collections: keyboard focus and a quiet position indicator. */
.grid.rail:focus-visible{outline:2px solid #ff53b5;outline-offset:5px;border-radius:10px}.fb-rail-position{font-size:11px;font-variant-numeric:tabular-nums;color:#bfa5c8;white-space:nowrap;align-self:center;margin-right:4px}.grid.rail,.game-media,.lightbox-strip{overscroll-behavior-x:contain}.is-dragging{user-select:none}
@media(max-width:520px){.fb-rail-position{font-size:10px;margin-right:0}}
.ember-filled-section .section-head>.ember-rail-controls,.single-game .section-head>.ember-rail-controls{flex-direction:row;align-items:center;gap:8px;flex-wrap:nowrap}.ember-rail-controls .fb-rail-position{margin:0 4px 0 0}

.ember-collection-links{grid-template-columns:repeat(3,minmax(0,1fr))}.ember-collection-links>a{min-width:0}.ember-collection-links svg{flex-shrink:0}@media(max-width:800px){.ember-collection-links{grid-template-columns:1fr}}
