:root{color-scheme:dark;--bg:#0d1623;--sidebar:#131e2e;--surface:#1c293d;--border:#2b3b53;--text:#f5f7fc;--muted:#b0c2da;--lime:#c5ff52;--blue:#588be6;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,a{-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button,a,input,select,summary{outline-offset:5px}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--lime)}button{color:inherit}svg{width:22px;height:22px;display:block;flex-shrink:0}button svg{pointer-events:none}[hidden]{display:none!important}.skip-link{position:fixed;top:-100px;left:20px;z-index:1000;background:var(--lime);color:var(--bg);padding:12px 18px;border-radius:8px}.skip-link:focus{top:12px}.sidebar{width:248px;position:fixed;inset:0 auto 0 0;background:var(--sidebar);padding:16px 13px;display:flex;flex-direction:column;z-index:10}.brand{display:flex;gap:12px;align-items:center;font-size:25px;font-weight:800;letter-spacing:-1px;margin:0 12px 16px}.brand-mark{width:43px;height:43px;display:grid;place-items:center;flex-shrink:0;border-radius:12px;background:var(--lime);color:var(--bg);font-size:30px;font-weight:950;letter-spacing:-1px}.nav-label{margin:0 13px 8px;color:#a7bdd8;font-size:13px;font-weight:650}.nav-item{display:flex;align-items:center;width:100%;gap:12px;text-align:left;border:0;background:none;border-radius:11px;min-height:44px;padding:9px 12px;margin-bottom:2px;color:var(--muted);font-size:14px;font-weight:600}.nav-item svg{width:22px;height:22px}.nav-item:hover,.nav-item.active{background:#223047;color:var(--text)}.nav-item.active svg{color:var(--lime)}.nav-divider{height:1px;background:var(--border);margin:8px 12px}.sidebar-bottom{margin:auto 8px 0;padding-top:12px;color:#a8bdd6;font-size:12px;line-height:1.5}.sidebar-bottom p{margin:10px 6px 0}.nav-community{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:46px;border:1px solid #708f49;border-radius:11px;background:#293d24;color:var(--lime);font-weight:700}.nav-community:hover{background:#354f2d}.mobile-nav-brand,.menu-close,.menu-backdrop{display:none}.mini-mark{font-weight:900;font-size:27px;color:#7185a1}.main{margin-left:248px;padding:18px 32px 0;max-width:2100px}.topbar{display:flex;gap:20px;align-items:center;margin-bottom:12px}.search-box{height:48px;border:1px solid #31415a;border-radius:15px;display:flex;align-items:center;gap:16px;padding:0 18px;background:var(--surface);max-width:706px;width:100%;color:#e1eafa}.search-box input{width:100%;min-width:0;background:none;border:none;color:var(--text);font-size:16px;height:100%;outline:none}.search-box input::placeholder{color:#b4c3da;opacity:1}.search-box:focus-within{border-color:var(--lime);box-shadow:0 0 0 2px #c5ff5222}.search-box kbd{font-family:inherit;font-size:13px;padding:2px 6px;border:1px solid #46536a;border-radius:4px;color:#b2c3dc}.top-favorites{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #31415a;border-radius:14px;padding:12px 17px;background:var(--surface);margin-left:auto;font-size:15px;font-weight:650;white-space:nowrap;min-height:48px}.top-favorites.active{color:var(--lime);border-color:#677e47}.fav-count{font-size:12px;background:#2e3f58;border-radius:5px;min-width:20px;padding:3px}.mobile-brand{display:none}h1{font-size:42px;line-height:1.13;letter-spacing:-1.5px;margin:0 0 5px;font-weight:800}.lead{font-size:16px;line-height:1.5;letter-spacing:.2px;color:#b0c2da;margin:0 0 10px}.featured{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px;margin-bottom:24px}.feature{display:block;position:relative;aspect-ratio:1.27;min-width:0;overflow:hidden;border-radius:13px;background:radial-gradient(ellipse at center,#29415b,#172638 75%);isolation:isolate}.feature:first-child{aspect-ratio:2.57}.feature img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.feature:first-child img{object-position:center}.feature:hover{box-shadow:0 0 0 2px #66864d}.feature:after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#08111ddd);z-index:0}.feature-content{position:absolute;bottom:15px;left:16px;right:16px;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;z-index:1}.feature h2{margin:0;font-size:20px;line-height:1.2;text-shadow:0 1px 5px #0007}.feature:first-child h2{font-size:30px}.feature-host{display:block;font-size:12px;font-weight:550;margin-top:6px;color:#e0e8f3}.feature-action{background:var(--lime);color:#101725;border-radius:12px;padding:14px 18px;font-weight:750;font-size:15px;display:flex;align-items:center;gap:13px;white-space:nowrap}.feature-action svg{width:19px;height:19px}.library-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 18px;margin:0 0 7px}.library h2{font-size:28px;line-height:1.25;margin:0;font-weight:800;letter-spacing:-.8px;display:flex;gap:12px;align-items:center}.game-count{color:#b4c8e1;font-size:14px;font-weight:500;letter-spacing:0;border:1px solid var(--border);border-radius:6px;padding:3px 7px}.library-toolbar p{margin:4px 0 0;color:var(--muted);font-size:14px}.sort-control{display:flex;align-items:center;gap:8px;flex-shrink:0;color:#b2c5de;font-size:12px;font-weight:650}.sort-control select{max-width:100%;min-height:44px;border:1px solid #3b506d;border-radius:10px;padding:9px 28px 9px 11px;background:#182537;color:var(--text);font-size:13px;cursor:pointer}.category-tabs{display:none;gap:9px;overflow-x:auto;scrollbar-width:none;max-width:100%;padding:4px 0}.category-tabs::-webkit-scrollbar{display:none}.category-tab{flex-shrink:0;border:1px solid #27364d;border-radius:22px;background:#182537;min-height:37px;padding:8px 19px;font-size:13px;font-weight:650}.category-tab:hover{background:#2b3f5c}.category-tab.active{border-color:var(--blue);background:var(--blue);color:#fff}.library-note{margin:8px 0 14px;font-size:12px;line-height:1.5;color:#b0c2da}.library-note span{color:var(--lime)}.game-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:25px 18px}.game-card{min-width:0;position:relative}.game-link{display:block}.cover{aspect-ratio:1.39;overflow:hidden;position:relative;background:radial-gradient(ellipse at center,#29415b,#172638 75%);border-radius:13px;display:flex;align-items:center;justify-content:center}.cover img{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.cover.local-2048{background:#faf8ef}.cover.local-2048 img{width:74%;height:90%;object-fit:contain}.cover.local-hextris{background:#edf0f1}.cover.local-hextris img{object-fit:contain}.cover-fallback{display:none;font-size:38px;font-weight:800;color:#c5ff52;position:absolute;inset:0;place-items:center;background:#22364f;letter-spacing:-2px}.cover.broken .cover-fallback{display:grid}.cover.broken img{visibility:hidden}.play-overlay{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:#0d162377;opacity:0;transition:opacity .2s}.play-overlay span{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;max-width:95%;background:var(--lime);color:#0d1623;padding:10px 13px;border-radius:9px}.play-overlay svg{width:16px;height:16px}.game-link:hover .play-overlay,.game-link:focus-visible .play-overlay{opacity:1}.game-title{font-size:15px;line-height:1.35;font-weight:700;margin:9px 29px 5px 1px;overflow-wrap:anywhere}.game-host{display:flex;align-items:center;gap:5px;font-size:13px;line-height:1.4;color:var(--muted);margin:0 24px 0 1px}.game-host.local{color:var(--lime)}.game-host svg{width:11px;height:11px}.favorite-toggle{position:absolute;right:-5px;bottom:8px;width:34px;height:36px;display:grid;place-items:center;border:0;background:none;border-radius:8px;color:#9eb5d5}.favorite-toggle svg{width:21px;height:21px}.favorite-toggle:hover{background:var(--surface);color:#fff}.favorite-toggle.saved{color:#ff96c1}.favorite-toggle.saved svg{fill:currentColor}.empty-state{text-align:center;border:1px dashed var(--border);padding:65px 20px;margin:20px 0;border-radius:16px}.empty-state>span{display:flex;justify-content:center;color:#9eb5d5;margin-bottom:20px}.empty-state svg{width:44px;height:44px}.empty-state h3{font-size:23px;margin:0 0 10px}.empty-state p{font-size:16px;color:var(--muted);margin:0 0 22px}.primary-button{border:0;border-radius:10px;background:var(--lime);color:var(--bg);padding:12px 20px;font-size:15px;font-weight:750}.loading{grid-column:1/-1;color:var(--muted);padding:40px 0}.site-footer{margin-top:36px;padding:22px 0 28px;border-top:1px solid #223047;font-size:13px;line-height:1.8;color:#aabed8}.footer-credits{display:flex;justify-content:space-between;gap:24px}.footer-credits>span:last-child{text-align:right}.site-footer strong{font-weight:600}.site-footer a{text-decoration:underline;text-underline-offset:3px}.updates-panel{margin-top:16px;border-top:1px solid #223047;padding-top:8px}.updates-panel summary{width:fit-content;max-width:100%;min-height:40px;padding:9px 0;cursor:pointer;color:#b9cbe3;font-weight:650}.updates-panel ul{margin:0 0 8px;padding-left:19px}.updates-panel li{margin:4px 0}#community-launcher-dock{display:none}dialog{padding:0;border:1px solid #3b4b66;border-radius:18px;color:var(--text);background:var(--bg);width:min(1050px,calc(100vw - 24px));max-height:calc(100svh - 24px);overflow:auto}dialog::backdrop{background:#020711da;backdrop-filter:blur(5px)}body:has(dialog[open]){overflow:hidden}.player-shell{display:flex;flex-direction:column}.player-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 20px;background:var(--sidebar)}.player-header h2{font-size:22px;letter-spacing:-.5px;margin:0 0 3px}.player-header p{font-size:13px;color:var(--muted);margin:0}.player-actions{display:flex;gap:6px}.player-actions button,.player-actions a{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.player-actions button:hover,.player-actions a:hover{border-color:var(--lime)}#player-host{background:#faf8ef;min-height:350px}#player-host iframe{display:block;border:0;width:100%;height:clamp(0px,calc(100svh - 180px),660px)}.player-instructions{margin:0;padding:13px 20px;line-height:1.6;font-size:14px;color:#adbfda}.player-shell:fullscreen{background:var(--bg);width:100vw;height:100vh}.player-shell:fullscreen #player-host{flex:1}.player-shell:fullscreen iframe{height:100%}.noscript{position:fixed;bottom:0;left:0;right:0;background:var(--lime);color:var(--bg);padding:20px;text-align:center;z-index:20}.noscript a{text-decoration:underline}::selection{background:var(--lime);color:var(--bg)}
@media(min-width:1750px){.game-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.main{padding:24px 40px 0}.featured{max-height:300px}.feature,.feature:first-child{aspect-ratio:auto;height:300px}}
@media(max-width:1350px){h1{font-size:36px}.sidebar{width:210px}.brand{font-size:22px;margin-left:9px;gap:10px}.brand-mark{width:38px;height:38px;font-size:27px}.main{margin-left:210px;padding:18px 24px 0}.game-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.feature-action{padding:11px 13px;font-size:14px}.feature:first-child h2{font-size:25px}.feature h2{font-size:17px}.feature-host{font-size:12px}.feature-content{left:13px;right:13px;bottom:13px}}
@media(max-width:1080px){.sidebar{width:185px;padding-left:9px;padding-right:9px}.brand{font-size:19px;gap:9px;margin-left:7px;letter-spacing:-.7px}.brand-mark{width:34px;height:34px;font-size:26px;border-radius:10px}.nav-item{font-size:14px;gap:10px;padding:9px 10px}.nav-item svg{width:22px;height:22px}.main{margin-left:185px;padding:18px 22px 0}.game-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:23px 15px}.featured{gap:12px}.feature-action{display:none}.feature:first-child h2{font-size:23px}.feature h2{font-size:16px}.feature-host{display:none}.top-favorites{padding:12px}.fav-count{display:none}.topbar{gap:14px}}
@media(min-width:1000px) and (max-width:1350px){.cover{aspect-ratio:1.5}}
@media(max-width:999px){
  .sidebar{width:min(288px,calc(100vw - 40px));padding:22px 14px;z-index:80;visibility:hidden;transform:translateX(-100%);pointer-events:none;transition:transform .18s ease,visibility .18s;box-shadow:20px 0 60px #0005}
  body.nav-open{overflow:hidden}
  body.nav-open .sidebar{visibility:visible;transform:translateX(0);pointer-events:auto}
  .sidebar .brand{font-size:22px;margin:0 50px 25px 9px}
  .sidebar .brand-mark{width:38px;height:38px;font-size:27px}
  .sidebar .nav-item{min-height:46px;padding:11px 14px;font-size:15px;margin-bottom:5px}
  .menu-close{position:absolute;top:18px;right:12px;display:grid;place-items:center;width:44px;height:44px;border:1px solid #40536e;border-radius:10px;background:#1c2b40;font-size:27px;line-height:1}
  .menu-backdrop{position:fixed;inset:0;width:100%;height:100%;padding:0;border:0;background:#020711b3;z-index:70}
  body.nav-open .menu-backdrop{display:block}
  .main{margin-left:0;padding:18px 20px 0}
  .mobile-nav-brand{display:flex;align-items:center;gap:8px;min-width:0;grid-column:1;grid-row:1}
  #menu-toggle{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;padding:0;border:1px solid #354a65;border-radius:11px;background:#182537;color:#d7e4f6}
  .mobile-brand{display:flex;align-items:center;gap:8px;min-width:0;font-size:21px;letter-spacing:-.7px}
  .mobile-brand .brand-mark{width:35px;height:35px}
  .mobile-brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-bottom:18px}
  .search-box{grid-column:1/-1;grid-row:2;max-width:none;height:44px}
  .top-favorites{min-height:44px;padding:9px 12px;background:transparent;font-size:14px}
  .top-favorites svg{width:19px;height:19px}
  .fav-count{display:block}
  .search-box kbd{display:none}
  .lead{font-size:15px;margin-bottom:14px}
  .game-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .category-tabs{display:flex;gap:8px;margin:9px 0 0}
  .favorite-toggle{width:44px;height:44px;right:-4px;bottom:3px}
  .game-title{margin-right:39px}
  .game-host{margin-right:38px}
  .category-tab{min-height:44px;font-size:13px;padding:10px 14px}
  .footer-credits{flex-direction:column;gap:12px}
  .footer-credits>span:last-child{text-align:left}
  #community-launcher-dock{display:block;margin-top:18px}
  #community-launcher-dock .chat-launcher{position:static;display:flex;justify-content:center;width:100%;margin:0;min-height:48px;box-shadow:none;border-radius:12px}
}
@media(max-width:800px){h1{font-size:32px;letter-spacing:-1px}.featured{margin-bottom:23px}.feature:first-child,.feature{min-height:132px;aspect-ratio:auto}.feature:first-child h2{font-size:23px}}
@media(max-width:580px){
  .main{padding:14px 16px 0}
  .top-favorites>span:nth-child(2){display:none}
  .top-favorites{padding:8px 10px}
  .featured{grid-template-columns:1fr 1fr;gap:12px}
  .feature:first-child{grid-column:1/-1;aspect-ratio:2.15;min-height:0}
  .feature:not(:first-child){aspect-ratio:1.8;min-height:0}
  .feature-action{display:flex;font-size:12px;padding:10px 12px;gap:6px}
  .feature-action svg{width:15px;height:15px}
  .feature:first-child h2{font-size:26px}
  .feature h2{font-size:16px}
  .feature-content{left:13px;right:13px;bottom:12px}
  h1{font-size:30px;letter-spacing:-1.2px}
  .game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 14px}
  .game-title{font-size:15px}
  .game-host{font-size:13px}
  .cover{aspect-ratio:1.38}
  .library h2{font-size:25px}
  .sort-control{gap:6px;font-size:12px}
  .sort-control select{width:153px;padding-left:9px;padding-right:22px;font-size:13px}
  .library-toolbar{gap:10px}
  .category-tabs{margin-right:-16px;width:calc(100% + 16px);max-width:calc(100% + 16px);padding-right:16px}
  .library-note{margin-top:9px;margin-bottom:14px;font-size:12px}
  .player-header{padding:12px;gap:8px}
  .player-header h2{font-size:20px}
  .player-instructions{font-size:13px;padding:12px}
  .player-header p{font-size:12px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* In-page arcade and shared player layout */
.game-host.unverified{color:#ffd185}.player-notice{margin:0;padding:10px 16px;background:#352c1b;color:#ffdda1;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.discovery-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:5px}.discovery-heading h1{min-width:0;margin-bottom:0}.shuffle-button{flex-shrink:0;min-height:44px;border:1px solid #405372;border-radius:20px;padding:8px 15px;background:#182537;color:var(--lime);font-weight:650;white-space:nowrap}.shuffle-button:hover{background:#263b52}.player-layout{display:flex;min-height:0;flex:1}.player-main{min-width:0;flex:1;display:flex;flex-direction:column}dialog{width:min(1280px,calc(100vw - 24px))}.player-shell:fullscreen .player-layout{flex:1;min-height:0}.player-shell:fullscreen .player-main{min-height:0}.player-shell:fullscreen #player-host{min-height:0}.player-shell:fullscreen #player-host iframe{height:100%}#player-host{background:#101724;min-height:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:700px){.player-layout{flex-direction:column}.player-header{align-items:flex-start;flex-wrap:wrap}.player-header>div:first-child{flex:1;min-width:150px}.player-actions{margin-left:auto}.player-header h2{font-size:18px}.shuffle-button{font-size:12px;padding:7px 10px}}

/* Keep narrow layouts within the page and the player at a stable top edge. */
#player-host.fixed-game{display:flex;align-items:center;justify-content:center;height:clamp(0px,calc(100svh - 180px),660px);overflow:hidden;background:#000}
.fixed-game-stage{position:relative;flex:0 0 auto}
#player-host .fixed-game-stage iframe{position:absolute;left:0;top:0;max-width:none;transform-origin:top left}
.player-shell:fullscreen #player-host.fixed-game{height:auto}
@media(max-width:760px){#player-host.fixed-game{height:clamp(0px,calc(100svh - 220px),660px)}}
.main,.search-box,.library-toolbar>div,.feature-content>div,.player-header>div:first-child{min-width:0}
.sidebar{overflow-y:auto}
.feature h2,.player-header h2,.player-header p,.player-instructions{overflow-wrap:anywhere}
.player-actions{flex-shrink:0;flex-wrap:wrap}
.player-actions button,.player-actions a{flex-shrink:0}
#player-host iframe{max-width:100%}
dialog{position:fixed;top:24px;bottom:auto;left:0;right:0;margin:0 auto;max-height:calc(100svh - 48px)}
.player-header h2{line-height:28px;margin-bottom:4px}
.player-header p{line-height:18px}
.player-instructions{line-height:22px}
.player-shell:fullscreen{height:100dvh;overflow:auto}
@media(max-width:760px){
  dialog{top:12px;max-height:calc(100svh - 24px)}
  #player-host iframe{height:clamp(0px,calc(100svh - 220px),660px)}
  .player-shell:fullscreen.has-chat .player-layout,.player-shell:fullscreen.has-chat .player-main{flex:0 0 auto}
  .player-shell:fullscreen.has-chat #player-host.fixed-game{height:clamp(0px,calc(100svh - 220px),480px);flex:0 0 auto}
  .player-shell:fullscreen.has-chat #player-host iframe{height:clamp(0px,calc(100svh - 220px),480px);min-height:0}
}
@media(max-width:700px){
  .player-header h2{line-height:24px}
  .player-header p{line-height:16px}
}
.topbar-actions{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}
.topbar-actions .top-favorites{margin-left:0}
.account-button{display:flex;align-items:center;justify-content:center;gap:7px;max-width:170px;min-height:48px;padding:10px 15px;border:1px solid #59713b;border-radius:14px;background:#243420;color:var(--lime);font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-button:hover{background:#30472a}
@media(max-width:1080px){.topbar{gap:12px}.topbar-actions{gap:8px}.account-button{max-width:140px;padding:10px 12px}}
@media(max-width:999px){.topbar-actions{grid-column:2;grid-row:1}.account-button{min-height:44px;font-size:13px;border-radius:12px;max-width:140px}.topbar-actions .top-favorites{min-height:44px}}
@media(max-width:420px){.mobile-brand{font-size:18px;gap:6px}.mobile-brand .brand-mark{width:30px;height:32px;font-size:23px}.topbar-actions{gap:6px}.account-button{max-width:108px;padding:8px 10px}.topbar-actions .top-favorites{padding:8px}.topbar-actions .fav-count{display:none}}

/* The original spotlight uses a real gameplay screenshot. */
.original-feature{display:flex;align-items:center;gap:15px;min-width:0;margin:0 0 14px;padding:8px;border:1px solid #42613b;border-radius:13px;background:linear-gradient(110deg,#1a2f29,#162437 70%)}
.original-feature-art{position:relative;flex:0 0 142px;align-self:stretch;min-height:76px;padding:0;overflow:hidden;border:0;border-radius:8px;background:radial-gradient(ellipse at center,#29453d,#15291f);text-align:left}
.original-feature-art img{position:absolute;inset:0 0 30px;display:block;width:100%;height:calc(100% - 30px);object-fit:contain;object-position:center}
.original-feature-art span{line-height:1.25;position:absolute;left:5px;right:5px;bottom:5px;padding:4px 6px;border-radius:4px;background:#0a1426d9;color:#eff5ff;font-size:12px;font-weight:700;text-align:center}
.original-feature-art:hover span{background:#213a52}
.original-feature-copy{flex:1;min-width:0}
.original-badge{display:inline-flex;align-items:center;gap:6px;margin-bottom:3px;padding:3px 7px;border:1px solid #698c44;border-radius:5px;background:#293d24;color:var(--lime);font-size:12px;line-height:1.3;font-weight:750;letter-spacing:.25px}
.original-feature h2{margin:0;color:var(--text);font-size:20px;letter-spacing:-.5px;line-height:1.2}
.original-feature h2 a:hover{text-decoration:underline;text-underline-offset:3px}
.original-feature p{max-width:570px;margin:3px 0;color:#bfcee0;font-size:12px;line-height:1.4}
.original-feature-meta{display:block;color:#bdd3c0;font-size:12px;line-height:1.4}
.original-feature-play{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;min-height:44px;padding:10px 13px;border-radius:9px;background:var(--lime);color:var(--bg);font-size:12px;font-weight:750;white-space:nowrap}
.original-feature-play:hover{background:#d7ff8b}
#preview-dialog{position:fixed;inset:0;margin:auto;width:min(920px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;background:#101b2a;border-radius:16px}
.preview-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px}
#preview-title{margin:0;font-size:21px;letter-spacing:-.4px}
#preview-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid #40536e;border-radius:10px;background:#1c2b40;font-size:27px;line-height:1}
.preview-image{display:block;width:100%;height:auto;background:#152330}
.preview-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 18px}
.preview-footer p{margin:0;color:#afc5df;font-size:12px;line-height:1.5}
.preview-footer .primary-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;flex-shrink:0;font-size:13px}
/* Metadata sits below the art so it remains readable without covering the game. */
.game-control-badges{display:flex;flex-wrap:wrap;gap:4px;margin:7px 0 0}
.game-control-badge{display:inline-flex;align-items:center;min-height:21px;padding:3px 6px;border:1px solid #40516a;border-radius:5px;background:#19273a;color:#b9cee9;font-size:12px;font-weight:600;line-height:1.2}
.game-new-badge{position:absolute;top:8px;right:8px;z-index:2;padding:4px 7px;border:1px solid #e3ffa8;border-radius:5px;background:var(--lime);color:#17270d;font-size:12px;font-weight:800;line-height:1.1}
.game-image{opacity:1;transition:opacity .16s ease,transform .2s ease}
.game-image.is-loading{opacity:0}
.cover.image-loading,.feature.image-loading{background:linear-gradient(120deg,#1c3049,#294767 50%,#1c3049)}
.feature.is-error{background:#22364f}
.feature.is-error .game-image{visibility:hidden}
.share-status{margin:0;padding:8px 18px;background:#1b302b;color:#d1efba;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.share-status:empty{display:none}
.share-url{width:calc(100% - 32px);min-width:0;min-height:42px;margin:9px 16px;padding:9px 11px;border:1px solid #5c7550;border-radius:8px;background:#111e2d;color:#e3f2d9;font-size:13px}
/* Honest load feedback stays outside the provider's player. */
.player-load-status{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:9px 18px;border-bottom:1px solid #2b3b53;background:#182638;color:#bacce2;font-size:12px;line-height:1.45}
#player-load-text{min-width:0;overflow-wrap:anywhere}
.player-load-status[data-state=slow],.player-load-status[data-state=error],.player-load-status[data-state=offline]{background:#352c1b;color:#ffdda1;border-bottom-color:#624b28}
.player-load-status[data-state=ready]{color:#c5e8a2}
#player-load-retry,.player-help button{flex-shrink:0;min-height:36px;padding:7px 11px;border:1px solid #536984;border-radius:8px;background:#213249;color:#eff5ff;font:inherit;font-size:12px;font-weight:650}
#player-load-retry:hover,.player-help button:hover{border-color:var(--lime)}
.player-help{padding:0 20px 14px;color:#9eb5d2;font-size:12px;line-height:1.5}
.player-help summary{width:fit-content;max-width:100%;min-height:32px;padding:5px 0;cursor:pointer;color:#c9d8ea;font-weight:650;outline-offset:4px}
.player-help summary:focus-visible{outline:3px solid var(--lime);border-radius:4px}
.player-help-content{max-width:760px;padding:2px 0 4px}
.player-help p{margin:5px 0 10px}
.player-help button{margin-top:2px}
.category-tab{min-height:40px}
@media(max-width:1080px){
  .original-feature-art{flex-basis:125px}
  .original-feature-play{padding:9px 11px}
}
@media(max-width:999px){
  .original-feature-art{flex-basis:142px}
}
@media(max-width:580px){
  .original-feature{gap:11px;padding:9px;margin-bottom:16px}
  .original-feature-art{flex:0 0 95px;min-height:100px}
  .original-feature-art img{height:calc(100% - 44px);bottom:44px}
  .original-feature h2{font-size:19px}
  .original-feature p{font-size:12px;line-height:1.35;margin:4px 0}
  .original-feature-meta{font-size:12px}
  .original-feature-play{display:none}
  .preview-header{padding:10px 12px}
  #preview-title{font-size:18px}
  .preview-footer{align-items:flex-start;padding:12px;gap:12px}
  .preview-footer p{font-size:12px}
  .preview-footer .primary-button{font-size:12px;padding:10px 12px}
  .category-tab{min-height:44px;padding:10px 14px}
  .favorite-toggle{width:44px;height:44px;right:-4px;bottom:3px}
  .game-title{margin-right:39px}
  .game-host{margin-right:38px}
  .player-header{gap:10px}
  .player-header>div:first-child{flex:1 1 100%;min-width:0}
  .player-actions{width:100%;justify-content:flex-end;gap:6px;margin-left:0}
  .player-actions button,.player-actions a{width:44px;height:44px}
  .player-actions svg{width:20px;height:20px}
  .player-load-status{padding:8px 12px;gap:9px;font-size:12px}
  #player-load-retry{min-height:40px;padding:8px 10px;font-size:12px}
  .player-help{padding:0 12px 12px;font-size:12px}
  .player-help summary{min-height:40px;padding:9px 0}
  .player-help button{min-height:44px}
  #game-dialog{width:calc(100vw - 16px);top:8px;max-height:calc(100svh - 16px);max-height:calc(100dvh - 16px);border-radius:12px}
  #player-host:not(.fixed-game)>iframe,#player-host.fixed-game{height:clamp(180px,calc(100svh - 285px),600px)}
  .player-shell:fullscreen #player-host:not(.fixed-game)>iframe{height:100%}
}
@media(max-width:360px){
  .main{padding-left:12px;padding-right:12px}
  .topbar{gap:14px 8px}
  .mobile-brand{font-size:16px;gap:5px}
  .mobile-brand .brand-mark{width:28px;height:30px;font-size:22px}
  .topbar-actions{gap:5px}
  .account-button{max-width:94px;padding:8px;font-size:12px}
  .topbar-actions .top-favorites{min-width:40px;padding:8px}
  .discovery-heading{gap:9px}
  .lead{font-size:14px}
  .shuffle-button{font-size:12px;padding:7px 9px}
  .original-feature{gap:9px}
  .original-feature-art{flex-basis:80px}
  .original-feature h2{font-size:18px}
  .player-actions{gap:2px}
  .sort-control select{width:144px}
  .library h2{font-size:23px}
}
/* A private game report, separate from public Community messages. */
#problem-dialog{position:fixed;inset:0;margin:auto;width:min(520px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:calc(100svh - 24px);max-height:calc(100dvh - 24px);padding:0;border:1px solid #40536e;border-radius:18px;background:#131e2e;color:var(--text);text-align:left;overflow:auto;overscroll-behavior:contain}
#problem-dialog .problem-shell{padding:24px}
#problem-dialog .problem-header{display:flex;align-items:center;justify-content:space-between;gap:16px}
#problem-dialog .problem-eyebrow{margin:0 0 5px;color:#9eb3ce;font-size:12px;font-weight:750;letter-spacing:1.2px}
#problem-dialog h2{margin:0;font-size:25px;line-height:1.2;letter-spacing:-.6px}
#problem-dialog #problem-close{flex:0 0 42px;width:42px;height:42px;padding:0;border:1px solid #40536e;border-radius:10px;background:#1c2b40;color:#e8f1ff;font-size:27px;line-height:1}
#problem-dialog #problem-close:hover{border-color:var(--lime)}
#problem-dialog #problem-intro{margin:18px 0;color:#b4c6df;font-size:13px;line-height:1.6}
#problem-dialog .problem-game-label{display:flex;align-items:baseline;gap:10px;margin:0 0 18px;padding:11px 13px;border:1px solid #31435c;border-radius:10px;background:#0d1726;color:#a2b7d2;font-size:12px;line-height:1.5}
#problem-dialog #problem-game-name{min-width:0;overflow-wrap:anywhere;color:var(--text);font-size:14px}
#problem-dialog .problem-gate{margin-bottom:17px;padding:12px 14px;border:1px solid #4e6240;border-radius:11px;background:#243125;color:#e0edcd;font-size:13px;line-height:1.5}
#problem-dialog .problem-gate p{margin:0 0 10px}
#problem-dialog #problem-signin{min-height:40px;padding:8px 12px;border:1px solid #829966;border-radius:8px;background:#30422b;color:#ecf8d9;font-size:12px;font-weight:700}
#problem-dialog #problem-fields{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0;padding:0;border:0}
#problem-dialog label{margin-top:9px;color:#d5e1f2;font-size:13px;font-weight:650}
#problem-dialog label span{color:#b0c2da;font-size:12px;font-weight:450}
#problem-dialog select,#problem-dialog textarea{display:block;width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid #415773;border-radius:9px;background:#0d1726;color:var(--text);font:inherit;font-size:16px;line-height:1.5}
#problem-dialog textarea{resize:vertical;min-height:105px;max-height:260px}
#problem-dialog textarea::placeholder{color:#a9bdd8;opacity:1}
#problem-dialog select:disabled,#problem-dialog textarea:disabled{opacity:.5}
#problem-dialog .problem-help{margin:0 0 5px;color:#aebfd6;font-size:12px;line-height:1.55}
#problem-dialog #problem-status{margin:15px 0 0;padding:11px 13px;border:1px solid #506949;border-radius:9px;background:#223225;color:#d5f0c4;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
#problem-dialog #problem-status:empty{display:none}
#problem-dialog #problem-status[data-state=error],#problem-dialog #problem-status.error{border-color:#79513d;background:#35271e;color:#ffd3ba}
#problem-dialog .problem-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:20px}
#problem-dialog .problem-actions button{min-height:44px;padding:10px 15px;border:1px solid #415773;border-radius:10px;background:#1c2b40;color:#e1eafa;font-size:13px;font-weight:700}
#problem-dialog #problem-submit{border-color:var(--lime);background:var(--lime);color:var(--bg)}
#problem-dialog #problem-submit:hover:not(:disabled){background:#d7ff8b}
#problem-dialog #problem-submit:disabled{border-color:#42546b;background:#2b3b50;color:#9aaec9}
#problem-dialog button:focus-visible,#problem-dialog select:focus-visible,#problem-dialog textarea:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
@media(max-width:420px){
  #problem-dialog .problem-shell{padding:19px 16px}
  #problem-dialog h2{font-size:23px}
  #problem-dialog .problem-header{gap:8px}
  #problem-dialog .problem-actions{gap:8px}
  #problem-dialog .problem-actions button{flex:1}
}
.library-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.top-pick-trigger{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 12px;border:1px solid #785b9e;border-radius:10px;background:#29223e;color:#eadbff;font-size:13px;font-weight:700;white-space:nowrap}
.top-pick-trigger span{color:var(--lime);font-size:20px;line-height:1}
.top-pick-trigger:hover{background:#3a2c51;border-color:#b99adc}
.game-top-pick{position:absolute;top:8px;left:8px;z-index:2;padding:4px 7px;border:1px solid #af96d2;border-radius:5px;background:#38264f;color:#f5eaff;font-size:12px;font-weight:800;line-height:1.1}
.pick-celebration{position:fixed;inset:0;z-index:80;overflow:hidden;pointer-events:none;contain:layout paint;background:#080d2099;opacity:0}
.pick-celebration.is-playing{animation:pick-celebrate 3s ease both}
.pick-beam{position:absolute;top:-35vh;width:55vw;height:125vh;transform-origin:50% 0;clip-path:polygon(49% 0,51% 0,100% 100%,0 100%);background:linear-gradient(#fff9d84d,#e3ffc529 65%,transparent);mix-blend-mode:screen;opacity:0}
.pick-beam-left{left:-5vw;--beam-start:-26deg;--beam-end:-4deg}
.pick-beam-right{right:-5vw;--beam-start:26deg;--beam-end:4deg;background:linear-gradient(#e6d0ff55,#bca2f629 65%,transparent)}
.is-playing .pick-beam{animation:pick-sweep 2.65s cubic-bezier(.2,.7,.2,1) both}
.pick-halo{position:absolute;left:50%;top:45%;width:min(720px,110vw);aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(ellipse,#c4a1ff30,transparent 64%)}
.pick-announcement{position:absolute;left:50%;top:44%;width:min(620px,calc(100% - 32px));text-align:center;transform:translate(-50%,-50%);filter:drop-shadow(0 8px 24px #050713)}
.is-playing .pick-announcement{animation:pick-reveal 2.8s cubic-bezier(.16,1,.3,1) both}
.pick-star{display:block;color:var(--lime);font-size:64px;line-height:1;margin-bottom:12px;text-shadow:0 0 35px #c5ff5266}
.pick-announcement p{margin:0 0 10px;color:#e8dbff;font-size:clamp(17px,2.1vw,25px);font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.pick-announcement strong{display:block;color:#fff;font-size:clamp(44px,7vw,84px);line-height:1.05;letter-spacing:-.045em;font-weight:900}
.pick-tagline{display:inline-block;margin-top:20px;padding:8px 15px;border:1px solid #bda4e15c;border-radius:99px;color:#e5eaf5;background:#17213aab;font-size:14px;font-weight:650}
.pick-confetti{position:absolute;left:var(--x);top:-30px;width:9px;height:17px;border-radius:2px;background:var(--lime);opacity:0}
.pick-confetti:nth-child(4n+2){background:#c59bff;width:12px;height:12px}
.pick-confetti:nth-child(4n+3){background:#fff4b4}
.pick-confetti:nth-child(4n){background:#8bdfff;width:7px;height:15px}
.is-playing .pick-confetti{animation:pick-fall 1.7s cubic-bezier(.15,.3,.55,1) var(--delay) both}
.pick-celebration.is-still{opacity:1;background:transparent;animation:none}
.pick-celebration.is-still .pick-beam,.pick-celebration.is-still .pick-halo,.pick-celebration.is-still [data-confetti],.pick-celebration.is-still .pick-star,.pick-celebration.is-still .pick-tagline{display:none}
.pick-celebration.is-still .pick-announcement{top:auto;bottom:20px;width:auto;max-width:calc(100% - 32px);padding:14px 24px;border:1px solid #9777bf;border-radius:14px;background:#251e37;transform:translateX(-50%);animation:none}
.pick-celebration.is-still .pick-announcement p{font-size:12px;margin-bottom:5px;white-space:nowrap}
.pick-celebration.is-still .pick-announcement strong{font-size:24px}
@keyframes pick-celebrate{0%{opacity:0}10%,77%{opacity:1}100%{opacity:0}}
@keyframes pick-sweep{0%{opacity:0;transform:rotate(var(--beam-start))}25%,75%{opacity:1}100%{opacity:0;transform:rotate(var(--beam-end))}}
@keyframes pick-reveal{0%,8%{opacity:0;transform:translate(-50%,-44%) scale(.88)}28%,82%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-54%) scale(1.02)}}
@keyframes pick-fall{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}12%,78%{opacity:1}100%{opacity:0;transform:translate3d(var(--drift),95vh,0) rotate(var(--turn))}}
@media(max-width:580px){.library-tools{width:100%;justify-content:space-between;gap:8px}.top-pick-trigger{font-size:12px;padding:8px 10px}.library-tools .sort-control{gap:6px}.library-tools .sort-control select{max-width:145px;padding-right:20px}.pick-beam{width:85vw}.pick-beam-left{left:-35vw}.pick-beam-right{right:-35vw}}

/* Keep filter recovery close to the result count, with comfortable tap targets. */
.filter-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.filter-actions[hidden],.filter-actions button[hidden]{display:none}
.filter-actions button{min-height:44px;padding:8px 13px;border:1px solid #40546d;border-radius:9px;background:#1b2a3d;color:#e6edf8;font-size:14px;font-weight:650}
.filter-actions button:hover{background:#293c54;border-color:#8da9c9}
.filter-actions #search-all{color:var(--lime);border-color:#5f7540}
.filter-actions button:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
#library-subtitle{overflow-wrap:anywhere}
@media(max-width:999px){.category-tab{min-height:44px}}

.nav-jack-web{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;margin-bottom:8px;padding:8px 10px;border:1px solid #40546d;border-radius:11px;background:#1b2a3d;color:#e6edf8;font-size:14px;font-weight:700;text-decoration:none}
.nav-jack-web:hover{background:#293c54;border-color:#8da9c9}
.nav-jack-web:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.web-beta{padding:2px 5px;border-radius:4px;background:#344a24;color:var(--lime);font-size:10px;letter-spacing:.02em}

.requested-game-link{display:inline-flex;align-items:center;min-height:32px;margin-left:8px;color:var(--lime);font-weight:700;text-decoration:underline;text-underline-offset:3px}.requested-game-link:hover{color:#e4ffa6}
