/* ─── TOKENS ─────────────────────────────────────── */
:root {
  --bg:          #0b0c10;
  --surface:     #13141a;
  --surface2:    #1c1e28;
  --border:      #252733;
  --accent:      #7c5cfc;
  --accent2:     #fc5c7d;
  --accent-glow: rgba(124,92,252,.35);
  --text:        #eef0f8;
  --muted:       #6b6f85;
  --radius:      16px;
  --nav-h:       64px;
  --bar-h:       48px;
  --card-min:    180px;
  --font-head:   'Syne', sans-serif;
  --font-body:   'DM Sans', sans-serif;
  --trans:       .22s cubic-bezier(.4,0,.2,1);
  --trans-slow:  .4s cubic-bezier(.4,0,.2,1);
}
.light-mode {
  --bg:       #f4f5fb;
  --surface:  #ffffff;
  --surface2: #ecedf7;
  --border:   #d8daf0;
  --text:     #121318;
  --muted:    #7a7d96;
  --accent-glow: rgba(124,92,252,.18);
}

/* ─── RESET ──────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;min-height:100vh;transition:background var(--trans-slow),color var(--trans);overflow-x:hidden}
a{text-decoration:none;color:inherit}
button{cursor:pointer;font-family:var(--font-body);border:none;background:none;color:inherit}
input,select{font-family:var(--font-body)}
img{display:block}

/* ─── PAGE LOAD ANIMATION ────────────────────────── */
.page-loading .page-section{opacity:0;transform:translateY(24px)}
.page-section{transition:opacity .5s ease,transform .5s ease}
.page-section.section-visible{opacity:1;transform:translateY(0)}

/* ─── SCROLL PROGRESS BAR ────────────────────────── */
#scrollProgress{position:fixed;top:0;left:0;height:3px;width:0%;background:linear-gradient(90deg,var(--accent),var(--accent2));z-index:999;transition:width .1s linear;border-radius:0 2px 2px 0}

/* ─── BACKGROUND ─────────────────────────────────── */
#bgCanvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .5s}
#bgCanvas.visible{opacity:1}
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");opacity:.025;pointer-events:none;z-index:0}
body.bg-gradient{background:linear-gradient(135deg,#0d0b1e 0%,#0b1a1a 50%,#1a0b1e 100%)}
body.bg-animated{background-image:linear-gradient(-45deg,#0b0c10,#1a0e2e,#0b1a1a,#1a1340);background-size:400% 400%;animation:bgShift 10s ease infinite}
@keyframes bgShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
body.bg-dots{background-image:radial-gradient(var(--border) 1px,transparent 1px);background-size:24px 24px}

/* ─── NAV ────────────────────────────────────────── */
nav{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);background:rgba(11,12,16,.9);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;gap:10px;transition:background var(--trans)}
/* gradient fade at bottom of nav */
nav::after{content:'';position:absolute;bottom:-20px;left:0;right:0;height:20px;background:linear-gradient(to bottom,rgba(11,12,16,.4),transparent);pointer-events:none;z-index:-1}
.light-mode nav{background:rgba(244,245,251,.92)}
.light-mode nav::after{background:linear-gradient(to bottom,rgba(244,245,251,.3),transparent)}

.nav-logo{font-family:var(--font-head);font-size:24px;font-weight:800;letter-spacing:-0.8px;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;white-space:nowrap;flex-shrink:0}

.nav-search-wrap{flex:1;max-width:380px;position:relative}
.nav-search-wrap>svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;transition:color var(--trans)}
#searchInput{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:50px;padding:9px 36px 9px 40px;color:var(--text);font-size:14px;outline:none;transition:border-color var(--trans),box-shadow var(--trans),background var(--trans)}
#searchInput:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);background:var(--surface)}
#searchInput::placeholder{color:var(--muted)}
.search-clear{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:14px;opacity:0;pointer-events:none;transition:opacity var(--trans);width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%}
.search-clear.visible{opacity:1;pointer-events:auto;cursor:pointer}
.search-clear:hover{color:var(--text);background:var(--border)}

.nav-actions{margin-left:auto;display:flex;align-items:center;gap:7px}
.nav-clock{font-family:var(--font-head);font-size:14px;font-weight:700;color:var(--muted);letter-spacing:.5px;white-space:nowrap;min-width:90px;text-align:center}

.btn-random{display:flex;align-items:center;gap:7px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border-radius:50px;padding:9px 14px;font-size:13px;font-weight:600;font-family:var(--font-head);transition:opacity var(--trans),transform var(--trans),box-shadow var(--trans);box-shadow:0 4px 18px var(--accent-glow);white-space:nowrap}
.btn-random:hover{opacity:.88;transform:translateY(-2px);box-shadow:0 8px 24px var(--accent-glow)}
.btn-random:active{transform:translateY(0)}
.btn-panic{display:flex;align-items:center;gap:7px;background:#dc2626;color:#fff;border-radius:50px;padding:9px 12px;font-size:13px;font-weight:700;font-family:var(--font-head);box-shadow:0 4px 18px rgba(220,38,38,.4);white-space:nowrap;animation:panicPulse 2s ease-in-out infinite;transition:background var(--trans),transform var(--trans)}
@keyframes panicPulse{0%,100%{box-shadow:0 4px 18px rgba(220,38,38,.4)}50%{box-shadow:0 4px 28px rgba(220,38,38,.7)}}
.btn-panic:hover{background:#b91c1c;transform:translateY(-1px)}
.btn-icon{width:36px;height:36px;border-radius:50%;background:var(--surface2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;transition:background var(--trans),border-color var(--trans),transform var(--trans),box-shadow var(--trans);flex-shrink:0;color:var(--muted)}
.btn-icon:hover{background:var(--border);transform:scale(1.08);color:var(--text);box-shadow:0 4px 12px rgba(0,0,0,.2)}
.btn-icon:active{transform:scale(.95)}

/* ─── CATEGORY TOP BAR ────────────────────────────── */
.cat-topbar{position:fixed;top:var(--nav-h);left:0;right:0;z-index:90;background:rgba(11,12,16,.94);backdrop-filter:blur(18px);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}
.cat-topbar::-webkit-scrollbar{display:none}
.light-mode .cat-topbar{background:rgba(244,245,251,.94)}
.cat-topbar-inner{display:flex;align-items:center;padding:0 20px;min-width:max-content;height:var(--bar-h);gap:0}
.cat-group{display:flex;align-items:center;gap:3px}
.cat-group-label{font-family:var(--font-head);font-size:10px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);padding:0 10px 0 4px;white-space:nowrap;flex-shrink:0}
.cat-divider{width:1px;height:24px;background:var(--border);margin:0 12px;flex-shrink:0}
.cat-sort-wrap{margin-left:4px}
.cat-pill{display:flex;align-items:center;gap:5px;padding:6px 13px;border-radius:50px;font-size:13px;font-weight:500;color:var(--muted);white-space:nowrap;transition:background var(--trans),color var(--trans),transform var(--trans);flex-shrink:0;border:1px solid transparent;position:relative}
.cat-pill:hover{background:var(--surface2);color:var(--text);transform:translateY(-1px)}
.cat-pill:active{transform:translateY(0)}
.cat-pill.active{background:var(--accent-glow);border-color:var(--accent);color:var(--accent);font-weight:600}
.cat-pill .cat-count{font-size:10px;background:var(--surface);border:1px solid var(--border);border-radius:50px;padding:1px 6px;color:var(--muted);transition:all var(--trans)}
.cat-pill.active .cat-count{border-color:var(--accent);color:var(--accent);background:transparent}
/* count badge bounce on change */
@keyframes countBounce{0%{transform:scale(1)}50%{transform:scale(1.4)}100%{transform:scale(1)}}
.cat-count.bounce{animation:countBounce .3s ease}
.sort-select{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:6px 10px;color:var(--text);font-size:12px;font-weight:500;outline:none;cursor:pointer;transition:border-color var(--trans)}
.sort-select:focus{border-color:var(--accent)}
.sort-select option{background:var(--surface)}

/* ─── LAYOUT ──────────────────────────────────────── */
.page-wrap{padding-top:calc(var(--nav-h) + var(--bar-h));min-height:100vh;position:relative;z-index:1}
main{padding:28px 32px;min-width:0}

/* ─── SECTION HEADERS ─────────────────────────────── */
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.section-title{font-family:var(--font-head);font-size:18px;font-weight:700;display:flex;align-items:center;gap:10px}
/* accent line replacing the old dot */
.section-accent{display:inline-block;width:4px;height:20px;border-radius:2px;background:linear-gradient(to bottom,var(--accent),var(--accent2));flex-shrink:0}
.section-count{font-size:13px;color:var(--muted);font-weight:400;font-family:var(--font-body);margin-left:4px}

/* ─── SKELETON GRID ───────────────────────────────── */
.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-min),1fr));gap:16px;margin-bottom:44px}
.skeleton-grid.hidden{display:none}
.skeleton-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;animation:skeletonPulse 1.6s ease-in-out infinite}
.skeleton-card-thumb{width:100%;aspect-ratio:16/10;background:var(--surface2)}
.skeleton-card-body{padding:12px 14px 14px}
.skeleton-line{height:12px;border-radius:6px;background:var(--surface2);margin-bottom:8px}
.skeleton-line.short{width:55%}
@keyframes skeletonPulse{0%,100%{opacity:1}50%{opacity:.5}}

/* ─── GAME GRID ───────────────────────────────────── */
.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--card-min),1fr));gap:16px;margin-bottom:44px}
.game-grid.compact-view{grid-template-columns:1fr;gap:8px}
body.card-small{--card-min:140px}
body.card-medium{--card-min:180px}
body.card-large{--card-min:240px}

/* grid transition when switching categories */
.game-grid.transitioning{opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}
.game-grid.visible{opacity:1;transform:translateY(0);transition:opacity .3s ease,transform .3s ease}

/* ─── GAME CARD ───────────────────────────────────── */
.game-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;cursor:pointer;position:relative;transition:transform var(--trans),box-shadow var(--trans),border-color var(--trans);animation:cardIn .35s both}
@keyframes cardIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.game-card:hover{transform:translateY(-7px) scale(1.02);box-shadow:0 24px 56px rgba(0,0,0,.45),0 0 0 1.5px var(--accent);border-color:var(--accent)}
.game-card:hover .card-overlay{opacity:1}
.game-card:hover .card-play{opacity:1;transform:scale(1)}
.game-card:hover .card-thumb img{transform:scale(1.12)}
.game-card:active{transform:translateY(-3px) scale(1.01)}

/* compact */
.game-grid.compact-view .game-card{display:flex;align-items:center;border-radius:10px;animation:compactIn .25s both}
@keyframes compactIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}
.game-grid.compact-view .game-card:hover{transform:translateX(5px) scale(1);box-shadow:4px 0 0 var(--accent) inset,0 4px 20px rgba(0,0,0,.2)}
.game-grid.compact-view .card-thumb{width:72px;height:48px;flex-shrink:0;aspect-ratio:unset;border-radius:0}
.game-grid.compact-view .card-overlay,.game-grid.compact-view .card-play{display:none}
.game-grid.compact-view .card-body{padding:0 14px;flex:1}
.game-grid.compact-view .fav-btn{top:50%;right:12px;transform:translateY(-50%)}
.game-grid.compact-view .card-meta-row{justify-content:flex-start}

.card-thumb{width:100%;aspect-ratio:16/10;background:var(--surface2);position:relative;overflow:hidden}
.card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.card-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 15%,rgba(7,6,20,.92));opacity:0;transition:opacity var(--trans)}
.card-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.75);transition:opacity .2s,transform .25s cubic-bezier(.34,1.56,.64,1)}
.card-play-btn{width:52px;height:52px;background:rgba(255,255,255,.97);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 28px rgba(0,0,0,.55)}
.card-play-btn svg{color:var(--accent);margin-left:4px}
.fav-btn{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;transition:background var(--trans),transform var(--trans);z-index:2}
.fav-btn:hover{background:rgba(252,92,125,.85);transform:scale(1.2)}
.fav-btn.active{background:var(--accent2)}
/* heart pop animation */
@keyframes heartPop{0%{transform:scale(1)}30%{transform:scale(1.5)}60%{transform:scale(.9)}100%{transform:scale(1)}}
.fav-btn.pop{animation:heartPop .4s cubic-bezier(.34,1.56,.64,1)}
.card-body{padding:13px 15px 15px}
.card-name{font-family:var(--font-head);font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:7px}
.card-meta-row{display:flex;align-items:center;justify-content:space-between;gap:6px}
.card-cat{font-size:11px;color:var(--muted);background:var(--surface2);border-radius:50px;padding:2px 9px;border:1px solid var(--border)}
.card-rating{font-size:11px;color:#fbbf24;letter-spacing:1px}
.card-played-badge{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:3px}

/* ─── EMPTY STATES ────────────────────────────────── */
.empty-state{text-align:center;padding:64px 20px;display:none;animation:fadeIn .4s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.empty-state.visible{display:block}
.empty-icon{font-size:52px;margin-bottom:14px}
.empty-state h3{font-family:var(--font-head);font-size:20px;margin-bottom:8px}
.empty-state p{color:var(--muted);font-size:14px}

/* ─── NO GAMES NOTICE ─────────────────────────────── */
.add-games-notice{background:var(--surface);border:2px dashed var(--border);border-radius:20px;padding:60px 40px;text-align:center;margin-bottom:36px}
.notice-icon{font-size:52px;margin-bottom:16px}
.notice-title{font-family:var(--font-head);font-size:22px;font-weight:800;margin-bottom:10px}
.notice-sub{color:var(--muted);font-size:14px;line-height:1.7;max-width:460px;margin:0 auto 24px}
.notice-code{display:inline-block;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:14px 20px;font-family:'Courier New',monospace;font-size:13px;color:var(--accent);text-align:left}

/* ─── RECENT CHIPS ────────────────────────────────── */
.recent-chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:36px}
.recent-chip{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:50px;padding:6px 14px 6px 8px;cursor:pointer;transition:border-color var(--trans),box-shadow var(--trans),transform var(--trans),background var(--trans);font-size:13px;font-weight:500}
.recent-chip:hover{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow);transform:translateY(-2px);background:var(--surface2)}
.recent-chip:active{transform:translateY(0)}
.recent-chip-thumb{width:28px;height:28px;border-radius:6px;background:var(--surface2);overflow:hidden;flex-shrink:0}
.recent-chip-thumb img{width:100%;height:100%;object-fit:cover}
.recent-chip-thumb .chip-icon{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:14px}
.chip-meta{display:flex;flex-direction:column;gap:1px}
.chip-name{font-size:13px;font-weight:600}
.chip-sub{font-size:10px;color:var(--muted)}
#favSection{display:none}#favSection.visible{display:block}
#recentSection{display:none}#recentSection.visible{display:block}

/* ─── BACK TO TOP ─────────────────────────────────── */
.back-to-top{position:fixed;bottom:28px;right:28px;z-index:400;width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px var(--accent-glow);opacity:0;transform:translateY(16px) scale(.8);pointer-events:none;transition:opacity var(--trans),transform var(--trans),box-shadow var(--trans)}
.back-to-top.visible{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.back-to-top:hover{transform:translateY(-3px) scale(1.08);box-shadow:0 10px 32px var(--accent-glow)}
.back-to-top:active{transform:scale(.95)}

/* ─── GAME PLAYER ─────────────────────────────────── */
#gamePlayer{display:none;position:fixed;inset:0;z-index:200;background:#000;flex-direction:column}
#gamePlayer.open{display:flex}
.player-bar{height:52px;background:#0d0e14;border-bottom:1px solid #1e202e;display:flex;align-items:center;padding:0 16px;gap:14px;flex-shrink:0;transition:transform .3s ease,opacity .3s ease}
.player-bar.bar-hidden{transform:translateY(-100%);opacity:0}
.player-back{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:rgba(255,255,255,.6);transition:color var(--trans),background var(--trans);font-family:var(--font-head);padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.05)}
.player-back:hover{color:#fff;background:rgba(255,255,255,.12)}
.player-game-info{display:flex;align-items:center;gap:10px;min-width:0}
.player-game-thumb{width:32px;height:22px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden;flex-shrink:0}
.player-game-thumb img{width:100%;height:100%;object-fit:cover}
.player-title{font-family:var(--font-head);font-size:15px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
/* live session clock in player bar */
.player-session-clock{font-family:var(--font-head);font-size:13px;font-weight:700;color:rgba(255,255,255,.4);letter-spacing:1px;padding:4px 10px;background:rgba(255,255,255,.06);border-radius:8px;border:1px solid rgba(255,255,255,.08)}
.player-actions{margin-left:auto;display:flex;gap:8px}
.player-btn,.btn-sidebar-toggle{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;background:rgba(255,255,255,.08);font-size:12px;font-weight:600;color:rgba(255,255,255,.7);transition:background var(--trans),color var(--trans),transform var(--trans);font-family:var(--font-head)}
.player-btn:hover,.btn-sidebar-toggle:hover{background:rgba(255,255,255,.16);color:#fff;transform:translateY(-1px)}
.player-btn:active,.btn-sidebar-toggle:active{transform:translateY(0)}
.btn-sidebar-toggle.active{background:rgba(124,92,252,.3);color:#a98dff}
.player-body{flex:1;display:flex;overflow:hidden}
.player-frame-wrap{flex:1;position:relative}
#gameFrame{width:100%;height:100%;border:none}

/* enhanced loading */
#loadingOverlay{position:absolute;inset:0;background:#0b0c10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:10;transition:opacity .5s,transform .5s}
#loadingOverlay.hidden{opacity:0;pointer-events:none;transform:scale(1.02)}
.loading-game-thumb{width:80px;height:52px;border-radius:10px;background:rgba(255,255,255,.06);overflow:hidden;margin-bottom:4px;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.loading-game-thumb img{width:100%;height:100%;object-fit:cover}
.loading-game-name{font-family:var(--font-head);font-size:18px;font-weight:700;color:#fff;margin-bottom:4px}
.spinner{width:36px;height:36px;border-radius:50%;border:3px solid rgba(255,255,255,.08);border-top-color:var(--accent);animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{font-family:var(--font-head);font-size:11px;font-weight:600;color:rgba(255,255,255,.3);letter-spacing:2px;text-transform:uppercase}

/* ─── GAME INFO SIDEBAR ───────────────────────────── */
.game-info-sidebar{width:268px;flex-shrink:0;background:#0d0e14;border-left:1px solid #1e202e;display:flex;flex-direction:column;overflow-y:auto;transition:width var(--trans-slow),opacity var(--trans-slow)}
.game-info-sidebar.collapsed{width:0;overflow:hidden;border:none;opacity:0}
.gis-header{padding:16px 18px 12px;border-bottom:1px solid #1e202e;display:flex;align-items:center;justify-content:space-between}
.gis-title{font-family:var(--font-head);font-size:11px;font-weight:700;color:rgba(255,255,255,.3);text-transform:uppercase;letter-spacing:1.5px}
.gis-close{color:rgba(255,255,255,.3);transition:color var(--trans),background var(--trans),transform var(--trans);font-size:18px;line-height:1;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:rgba(255,255,255,.05)}
.gis-close:hover{color:#fff;background:rgba(255,255,255,.12);transform:rotate(90deg)}
.gis-thumb{width:100%;aspect-ratio:16/9;background:#1a1b24;overflow:hidden;flex-shrink:0}
.gis-thumb img{width:100%;height:100%;object-fit:cover}
.gis-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:48px}
.gis-section{padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.04)}
.gis-section:last-child{border-bottom:none}
.gis-section-label{font-size:10px;font-weight:700;color:rgba(255,255,255,.2);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:10px;font-family:var(--font-head)}
.gis-timer{font-family:var(--font-head);font-size:36px;font-weight:800;color:#fff;letter-spacing:2px;text-align:center;padding:4px 0;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.gis-timer-sub{text-align:center;font-size:11px;color:rgba(255,255,255,.2);margin-top:4px}
.gis-reset-btn{display:block;margin:10px auto 0;padding:5px 14px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);font-size:11px;color:rgba(255,255,255,.35);font-family:var(--font-head);font-weight:600;transition:background var(--trans),color var(--trans),transform var(--trans)}
.gis-reset-btn:hover{background:rgba(255,255,255,.12);color:#fff;transform:translateY(-1px)}
.gis-stars{display:flex;gap:6px;justify-content:center;padding:4px 0}
.gis-star{font-size:26px;cursor:pointer;transition:transform .15s cubic-bezier(.34,1.56,.64,1),filter .15s;filter:grayscale(1) brightness(.3);line-height:1}
.gis-star:hover,.gis-star.active{filter:grayscale(0) brightness(1);transform:scale(1.3)}
.gis-star-label{text-align:center;font-size:12px;color:rgba(255,255,255,.3);margin-top:8px}
.gis-stat{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.gis-stat:last-child{margin-bottom:0}
.gis-stat-label{font-size:12px;color:rgba(255,255,255,.3)}
.gis-stat-value{font-family:var(--font-head);font-size:13px;font-weight:700;color:#fff}

/* ─── MODALS ──────────────────────────────────────── */
.modal-overlay{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.68);backdrop-filter:blur(10px);align-items:center;justify-content:center}
.modal-overlay.open{display:flex;animation:overlayIn .25s ease}
@keyframes overlayIn{from{opacity:0}to{opacity:1}}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:20px;width:90%;max-width:600px;max-height:88vh;display:flex;flex-direction:column;animation:modalIn .25s cubic-bezier(.34,1.56,.64,1)}
@keyframes modalIn{from{opacity:0;transform:scale(.88) translateY(24px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:22px 26px 18px;border-bottom:1px solid var(--border);flex-shrink:0}
.modal-title{font-family:var(--font-head);font-size:18px;font-weight:700}
.modal-close{font-size:18px;color:var(--muted);transition:color var(--trans),transform var(--trans),background var(--trans);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--surface2)}
.modal-close:hover{color:var(--text);transform:rotate(90deg);background:var(--border)}
.modal-body{padding:24px 26px;overflow-y:auto}

/* stats */
.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}
.stat-card{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:16px;transition:transform var(--trans),box-shadow var(--trans)}
.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.stat-card-value{font-family:var(--font-head);font-size:28px;font-weight:800;color:var(--accent);margin-bottom:4px}
.stat-card-label{font-size:12px;color:var(--muted)}
.stats-highlight{background:linear-gradient(135deg,rgba(124,92,252,.12),rgba(252,92,125,.08));border:1px solid rgba(124,92,252,.2);border-radius:14px;padding:14px 16px;margin-bottom:12px;display:flex;align-items:center;gap:14px;transition:transform var(--trans)}
.stats-highlight:hover{transform:translateX(3px)}
.stats-highlight-icon{font-size:28px}
.stats-highlight-text{flex:1}
.stats-highlight-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-family:var(--font-head);font-weight:700;margin-bottom:2px}
.stats-highlight-value{font-family:var(--font-head);font-size:15px;font-weight:700}
.stats-table{width:100%;border-collapse:collapse}
.stats-table th{font-family:var(--font-head);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}
.stats-table td{padding:10px;font-size:13px;border-bottom:1px solid var(--border);transition:background var(--trans)}
.stats-table tr:last-child td{border-bottom:none}
.stats-table tr:hover td{background:var(--surface2)}
.stats-table .td-name{font-weight:600;font-family:var(--font-head)}
.stats-section-title{font-family:var(--font-head);font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin:20px 0 10px}

/* shortcuts */
.shortcut-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--border)}
.shortcut-row:last-child{border-bottom:none}
.shortcut-desc{font-size:14px;font-weight:500}
.shortcut-desc small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:2px}
.shortcut-key{font-family:var(--font-head);font-size:13px;font-weight:700;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:6px 14px;min-width:52px;text-align:center;cursor:pointer;transition:border-color var(--trans),background var(--trans),transform var(--trans)}
.shortcut-key:hover{border-color:var(--accent);background:var(--accent-glow);color:var(--accent);transform:translateY(-1px)}
.shortcut-key.listening{border-color:var(--accent2);background:rgba(252,92,125,.15);color:var(--accent2);animation:listenPulse .8s ease-in-out infinite}
@keyframes listenPulse{0%,100%{opacity:1}50%{opacity:.4}}

/* settings */
.settings-section{margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.settings-section:last-of-type{border-bottom:none}
.settings-section-title{font-family:var(--font-head);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted);margin-bottom:6px;margin-top:4px}
.danger-title{color:#ef4444}
.setting-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border);gap:16px}
.setting-row:last-of-type{border-bottom:none}
.setting-name{font-size:14px;font-weight:600;margin-bottom:2px}
.setting-hint{font-size:11px;color:var(--muted)}
.setting-input{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:8px 12px;color:var(--text);font-size:13px;outline:none;width:160px;transition:border-color var(--trans),box-shadow var(--trans)}
.setting-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}
.setting-select{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:8px 12px;color:var(--text);font-size:13px;outline:none;cursor:pointer;transition:border-color var(--trans)}
.setting-select:focus{border-color:var(--accent)}
.setting-select option{background:var(--surface)}
.setting-btn{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:8px 14px;font-size:12px;font-weight:600;transition:background var(--trans),border-color var(--trans),transform var(--trans);white-space:nowrap}
.setting-btn:hover{border-color:var(--accent);background:var(--accent-glow);color:var(--accent);transform:translateY(-1px)}
.danger-btn:hover{border-color:#ef4444 !important;background:rgba(239,68,68,.1) !important;color:#ef4444 !important}
.setting-save{width:100%;margin-top:20px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border-radius:12px;padding:12px;font-size:15px;font-weight:700;font-family:var(--font-head);transition:opacity var(--trans),transform var(--trans),box-shadow var(--trans);box-shadow:0 4px 18px var(--accent-glow)}
.setting-save:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 8px 28px var(--accent-glow)}
.color-swatches{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.swatch{width:28px;height:28px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:transform var(--trans),border-color var(--trans),box-shadow var(--trans);flex-shrink:0}
.swatch:hover{transform:scale(1.2)}
.swatch.active{border-color:#fff;box-shadow:0 0 0 2.5px var(--accent)}
.custom-color-input{width:28px;height:28px;border-radius:50%;border:none;cursor:pointer;padding:0;background:none;overflow:hidden}
.custom-color-input::-webkit-color-swatch-wrapper{padding:0;border-radius:50%}
.custom-color-input::-webkit-color-swatch{border:3px solid var(--border);border-radius:50%}
.size-btns{display:flex;gap:6px}
.size-btn{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:12px;font-weight:600;transition:background var(--trans),border-color var(--trans),color var(--trans),transform var(--trans)}
.size-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}
.size-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}

/* ─── SPOTLIGHT ───────────────────────────────────── */
.spotlight-overlay{display:none;position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.75);backdrop-filter:blur(12px);align-items:flex-start;justify-content:center;padding-top:11vh}
.spotlight-overlay.open{display:flex;animation:overlayIn .2s ease}
.spotlight-box{width:90%;max-width:620px;background:var(--surface);border:1px solid var(--border);border-radius:22px;overflow:hidden;box-shadow:0 48px 120px rgba(0,0,0,.8);animation:spotIn .2s cubic-bezier(.34,1.56,.64,1)}
@keyframes spotIn{from{opacity:0;transform:scale(.91) translateY(-18px)}to{opacity:1;transform:scale(1) translateY(0)}}
.spotlight-input-wrap{display:flex;align-items:center;gap:12px;padding:18px 20px;border-bottom:1px solid var(--border)}
.spotlight-input-wrap svg{color:var(--muted);flex-shrink:0;transition:color var(--trans)}
.spotlight-input-wrap:focus-within svg{color:var(--accent)}
#spotlightInput{flex:1;background:none;border:none;outline:none;font-size:17px;color:var(--text);font-family:var(--font-body)}
#spotlightInput::placeholder{color:var(--muted);font-size:15px}
.spotlight-esc{font-size:11px;color:var(--muted);background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-family:var(--font-head);font-weight:700;flex-shrink:0}
.spotlight-cats{display:flex;gap:6px;padding:10px 16px;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
.spotlight-cats::-webkit-scrollbar{display:none}
.spot-cat{padding:4px 12px;border-radius:50px;font-size:12px;font-weight:600;color:var(--muted);border:1px solid transparent;white-space:nowrap;transition:all var(--trans);flex-shrink:0}
.spot-cat:hover{background:var(--surface2);color:var(--text);transform:translateY(-1px)}
.spot-cat.active{background:var(--accent-glow);border-color:var(--accent);color:var(--accent)}
/* spotlight section label */
.spotlight-section-label{padding:10px 20px 4px;font-family:var(--font-head);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted)}
.spotlight-results{max-height:340px;overflow-y:auto}
.spotlight-result{display:flex;align-items:center;gap:14px;padding:11px 20px;cursor:pointer;transition:background var(--trans);border-bottom:1px solid var(--border)}
.spotlight-result:last-child{border-bottom:none}
.spotlight-result:hover,.spotlight-result.selected{background:var(--surface2)}
.spotlight-result.selected{background:var(--accent-glow);border-left:3px solid var(--accent)}
.sr-thumb{width:52px;height:34px;border-radius:6px;background:var(--surface2);overflow:hidden;flex-shrink:0}
.sr-thumb img{width:100%;height:100%;object-fit:cover}
.sr-thumb-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:18px}
.sr-info{flex:1;min-width:0}
.sr-name{font-family:var(--font-head);font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}
.sr-name mark{background:var(--accent-glow);color:var(--accent);border-radius:3px;padding:0 2px}
.sr-sub{display:flex;align-items:center;gap:8px}
.sr-cat{font-size:11px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:50px;padding:1px 7px;display:inline-block}
.sr-rating{font-size:11px;color:#fbbf24}
.sr-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.sr-play-count{font-size:11px;color:var(--muted)}
.sr-fav-dot{width:6px;height:6px;border-radius:50%;background:var(--accent2)}
.spotlight-empty{padding:44px 20px;text-align:center;color:var(--muted);font-size:14px}
.spotlight-empty span{font-size:36px;display:block;margin-bottom:12px}
.spotlight-footer{display:flex;gap:14px;align-items:center;padding:10px 20px;border-top:1px solid var(--border);background:var(--surface2)}
.spotlight-footer span{font-size:12px;color:var(--muted);display:flex;gap:4px;align-items:center}
.spotlight-footer kbd{font-size:11px;font-family:var(--font-head);font-weight:700;background:var(--surface);border:1px solid var(--border);border-radius:5px;padding:2px 6px;color:var(--text)}

/* ─── TOAST ───────────────────────────────────────── */
.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--surface);border:1px solid var(--border);border-radius:50px;padding:10px 20px;font-size:14px;font-weight:500;box-shadow:0 12px 40px rgba(0,0,0,.5);z-index:999;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;white-space:nowrap;display:flex;align-items:center;gap:8px}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast-icon{font-size:16px}

/* ─── BACKGROUND EXTRAS ──────────────────────────────── */
body.bg-mesh::before{background-image:linear-gradient(rgba(124,92,252,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(124,92,252,.08) 1px,transparent 1px);background-size:40px 40px;opacity:1}
body.bg-noise{background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n2)' opacity='0.08'/%3E%3C/svg%3E"),linear-gradient(135deg,#0b0c10,#111218)}
body.bg-aurora{background:#060810;animation:auroraBg 12s ease infinite}
@keyframes auroraBg{0%{filter:hue-rotate(0deg)}50%{filter:hue-rotate(40deg)}100%{filter:hue-rotate(0deg)}}
body.bg-aurora::after{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 20% 50%,rgba(124,92,252,.2) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(252,92,125,.15) 0%,transparent 50%),radial-gradient(ellipse at 60% 80%,rgba(6,182,212,.12) 0%,transparent 50%);animation:auroraMove 8s ease-in-out infinite alternate}
@keyframes auroraMove{0%{transform:scale(1) translateY(0)}100%{transform:scale(1.1) translateY(-20px)}}

/* ─── CARD STYLES ────────────────────────────────────── */
/* glass */
body.card-style-glass .game-card{background:rgba(255,255,255,.04);backdrop-filter:blur(12px);border-color:rgba(255,255,255,.1)}
body.card-style-glass .game-card:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
body.card-style-glass.light-mode .game-card{background:rgba(255,255,255,.7);backdrop-filter:blur(12px)}
/* flat */
body.card-style-flat .game-card{border:none;border-radius:8px;box-shadow:none}
body.card-style-flat .game-card:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,.3);border:none}
/* neon */
body.card-style-neon .game-card{border-color:rgba(124,92,252,.3)}
body.card-style-neon .game-card:hover{box-shadow:0 0 20px var(--accent-glow),0 0 60px rgba(124,92,252,.15),0 20px 40px rgba(0,0,0,.4);border-color:var(--accent)}
body.card-style-neon .card-name{text-shadow:0 0 20px var(--accent-glow)}
/* minimal */
body.card-style-minimal .game-card{background:transparent;border:1px solid var(--border)}
body.card-style-minimal .game-card:hover{background:var(--surface);box-shadow:0 8px 24px rgba(0,0,0,.2)}

/* ─── BORDER RADIUS ──────────────────────────────────── */
body.radius-sharp{--radius:4px}
body.radius-default{--radius:16px}
body.radius-pill{--radius:24px}
body.radius-pill .cat-pill,.radius-pill #searchInput,.radius-pill .setting-input{border-radius:50px}
body.radius-sharp .cat-pill,.radius-sharp #searchInput,.radius-sharp .setting-input,.radius-sharp .btn-random,.radius-sharp .btn-panic{border-radius:4px}

/* ─── NAVBAR STYLES ──────────────────────────────────── */
nav.nav-solid{background:var(--surface) !important;backdrop-filter:none}
nav.nav-transparent{background:transparent !important;backdrop-filter:none;border-bottom-color:transparent}
nav.nav-gradient{background:linear-gradient(135deg,rgba(124,92,252,.25),rgba(252,92,125,.1)) !important;backdrop-filter:blur(20px)}

/* ─── ANIMATION SPEED ────────────────────────────────── */
body.anim-slow{--trans:.5s cubic-bezier(.4,0,.2,1);--trans-slow:.8s cubic-bezier(.4,0,.2,1)}
body.anim-fast{--trans:.1s cubic-bezier(.4,0,.2,1);--trans-slow:.2s cubic-bezier(.4,0,.2,1)}
body.anim-none{--trans:0s;--trans-slow:0s}
body.anim-none .game-card{animation:none}
body.anim-none .page-section{transition:none}

/* ─── INCOGNITO MODE ─────────────────────────────────── */
.incognito-indicator{position:fixed;top:calc(var(--nav-h) + var(--bar-h) + 10px);right:16px;z-index:300;background:rgba(15,15,15,.9);border:1px solid rgba(255,255,255,.15);border-radius:50px;padding:5px 14px;font-size:12px;font-weight:600;color:rgba(255,255,255,.7);backdrop-filter:blur(8px);opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity var(--trans),transform var(--trans)}
.incognito-indicator.visible{opacity:1;transform:translateY(0)}
.incognito-btn.active{background:rgba(124,92,252,.2);border-color:var(--accent);color:var(--accent)}
body.incognito-mode .recent-chips,.incognito-mode #recentSection{opacity:.4;pointer-events:none}

/* ─── FONT SWITCHER ──────────────────────────────────── */
.font-btns{display:flex;gap:8px;flex-wrap:wrap}
.font-btn{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:8px 16px;font-size:13px;font-weight:600;transition:all var(--trans);cursor:pointer;color:var(--text)}
.font-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px)}
.font-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}

/* ─── CARD SPLIT BUTTON ──────────────────────────────── */
.split-btn{position:absolute;bottom:8px;right:8px;width:26px;height:26px;border-radius:6px;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;font-size:13px;color:rgba(255,255,255,.7);opacity:0;transition:opacity var(--trans),background var(--trans),transform var(--trans);z-index:2}
.game-card:hover .split-btn{opacity:1}
.split-btn:hover{background:var(--accent);color:#fff;transform:scale(1.1)}

/* ─── SPLIT SCREEN ───────────────────────────────────── */
#splitScreen{display:none;position:fixed;inset:0;z-index:250;background:#000;flex-direction:column}
#splitScreen.open{display:flex}
.split-bar{height:48px;background:#0a0b10;border-bottom:1px solid #1e202e;display:flex;align-items:center;padding:0 16px;gap:12px;flex-shrink:0}
.split-game-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.split-thumb{width:28px;height:20px;border-radius:4px;background:rgba(255,255,255,.08);overflow:hidden;flex-shrink:0}
.split-thumb img{width:100%;height:100%;object-fit:cover}
.split-title{font-family:var(--font-head);font-size:13px;font-weight:600;color:rgba(255,255,255,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.split-center-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}
.split-label{font-family:var(--font-head);font-size:12px;font-weight:700;color:rgba(255,255,255,.3);text-transform:uppercase;letter-spacing:1px}
.split-swap{padding:5px 12px;border-radius:8px;background:rgba(255,255,255,.08);font-size:14px;color:rgba(255,255,255,.6);transition:background var(--trans),color var(--trans),transform var(--trans)}
.split-swap:hover{background:rgba(255,255,255,.16);color:#fff;transform:scale(1.1)}
.split-close{padding:6px 14px;border-radius:8px;background:rgba(220,38,38,.15);border:1px solid rgba(220,38,38,.3);font-size:12px;font-weight:600;color:#f87171;font-family:var(--font-head);transition:background var(--trans),transform var(--trans);white-space:nowrap}
.split-close:hover{background:rgba(220,38,38,.3);transform:translateY(-1px)}
.split-body{flex:1;display:flex;overflow:hidden}
.split-pane{flex:1;position:relative;overflow:hidden}
.split-pane iframe{width:100%;height:100%;border:none;border-right:1px solid #1e202e}
.split-pick-overlay{display:none;position:absolute;inset:0;background:rgba(7,8,14,.95);backdrop-filter:blur(8px);flex-direction:column;align-items:center;padding:24px;overflow-y:auto}
.split-pick-overlay.visible{display:flex}
.split-pick-title{font-family:var(--font-head);font-size:18px;font-weight:700;color:#fff;margin-bottom:20px;text-align:center}
.split-pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;width:100%}
.split-pick-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform var(--trans),border-color var(--trans),box-shadow var(--trans)}
.split-pick-card:hover{transform:translateY(-4px) scale(1.03);border-color:var(--accent);box-shadow:0 12px 32px rgba(0,0,0,.4)}
.split-pick-thumb{width:100%;aspect-ratio:16/10;background:var(--surface2);overflow:hidden}
.split-pick-thumb img{width:100%;height:100%;object-fit:cover}
.split-pick-name{padding:8px 10px;font-family:var(--font-head);font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ─── LIVE USER COUNT ────────────────────────────────── */
.live-count{display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:50px;background:var(--surface2);border:1px solid var(--border);font-size:12px;font-weight:600;font-family:var(--font-head);color:var(--muted);white-space:nowrap}
.live-dot{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 6px #22c55e;animation:livePulse 2s ease-in-out infinite;flex-shrink:0}
@keyframes livePulse{0%,100%{opacity:1}50%{opacity:.4}}

/* ─── USER AVATAR ────────────────────────────────────── */
.user-menu-wrap{position:relative;flex-shrink:0}
.user-avatar-btn{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));border:2px solid transparent;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:13px;font-weight:800;color:#fff;cursor:pointer;transition:transform var(--trans),box-shadow var(--trans);box-shadow:0 2px 8px var(--accent-glow)}
.user-avatar-btn:hover{transform:scale(1.08);box-shadow:0 4px 16px var(--accent-glow)}
.user-avatar-btn.guest{background:var(--surface2);border-color:var(--border);color:var(--muted);box-shadow:none}

.user-dropdown{position:absolute;top:calc(100% + 10px);right:0;width:220px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 48px rgba(0,0,0,.5);z-index:400;overflow:hidden;opacity:0;transform:translateY(-8px) scale(.95);pointer-events:none;transition:opacity var(--trans),transform var(--trans)}
.user-dropdown.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.user-dropdown-info{padding:14px 16px 12px}
.user-dropdown-name{font-family:var(--font-head);font-size:15px;font-weight:700;margin-bottom:2px}
.user-dropdown-email{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-dropdown-divider{height:1px;background:var(--border);margin:0}
.user-dropdown-item{display:block;width:100%;text-align:left;padding:11px 16px;font-size:14px;font-weight:500;transition:background var(--trans);cursor:pointer}
.user-dropdown-item:hover{background:var(--surface2)}
.user-dropdown-item.danger{color:#f87171}
.user-dropdown-item.danger:hover{background:rgba(239,68,68,.1)}

/* ─── AUTH MODAL ─────────────────────────────────────── */
.auth-modal{max-width:420px;width:92%;border-radius:24px;overflow:hidden}
.auth-header{background:linear-gradient(135deg,rgba(124,92,252,.2),rgba(252,92,125,.1));padding:32px 32px 24px;text-align:center;border-bottom:1px solid var(--border)}
.auth-logo{font-family:var(--font-head);font-size:32px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;letter-spacing:-1px}
.auth-tagline{font-size:13px;color:var(--muted);line-height:1.5}
.auth-tabs{display:flex;border-bottom:1px solid var(--border)}
.auth-tab{flex:1;padding:14px;font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;transition:color var(--trans),border-color var(--trans);margin-bottom:-1px}
.auth-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.auth-tab:hover{color:var(--text)}
.auth-body{padding:24px}
.auth-error{display:none;background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.3);border-radius:10px;padding:10px 14px;font-size:13px;color:#f87171;margin-bottom:16px}
.auth-error.visible{display:block}
.auth-field{margin-bottom:16px}
.auth-field label{display:block;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;font-family:var(--font-head);margin-bottom:7px}
.auth-field input{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:11px 14px;color:var(--text);font-size:15px;outline:none;transition:border-color var(--trans),box-shadow var(--trans)}
.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}
.auth-field-hint{font-size:11px;color:var(--muted);margin-top:5px}
.auth-password-wrap{position:relative}
.auth-password-wrap input{padding-right:44px}
.auth-password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:16px;color:var(--muted);cursor:pointer;transition:color var(--trans)}
.auth-password-toggle:hover{color:var(--text)}
.auth-submit{width:100%;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border-radius:12px;padding:13px;font-size:15px;font-weight:700;font-family:var(--font-head);transition:opacity var(--trans),transform var(--trans);box-shadow:0 4px 18px var(--accent-glow);margin-bottom:12px}
.auth-submit:hover{opacity:.9;transform:translateY(-1px)}
.auth-submit:active{transform:translateY(0)}
.auth-submit:disabled{opacity:.5;cursor:not-allowed;transform:none}
.auth-guest{width:100%;font-size:13px;color:var(--muted);padding:8px;transition:color var(--trans)}
.auth-guest:hover{color:var(--text)}

/* ─── PROFILE MODAL ──────────────────────────────────── */
.profile-card{background:linear-gradient(135deg,rgba(124,92,252,.15),rgba(252,92,125,.08));border:1px solid rgba(124,92,252,.2);border-radius:16px;padding:20px;margin-bottom:20px;display:flex;align-items:center;gap:16px}
.profile-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-size:22px;font-weight:800;color:#fff;flex-shrink:0;box-shadow:0 4px 16px var(--accent-glow)}
.profile-info{flex:1;min-width:0}
.profile-username{font-family:var(--font-head);font-size:20px;font-weight:700;margin-bottom:3px}
.profile-email{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-joined{font-size:11px;color:var(--muted);margin-top:3px}
.profile-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}
.profile-stat{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:14px;text-align:center}
.profile-stat-val{font-family:var(--font-head);font-size:22px;font-weight:800;color:var(--accent);margin-bottom:3px}
.profile-stat-label{font-size:11px;color:var(--muted)}

/* ─── MOBILE ──────────────────────────────────────── */
@media(max-width:768px){
  main{padding:16px}
  .game-grid{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:12px}
  nav{padding:0 12px;gap:6px}
  .btn-random span,.btn-panic span{display:none}
  .btn-random,.btn-panic{padding:9px 10px}
  .nav-logo{font-size:20px}
  .nav-clock{display:none}
  .cat-group-label{display:none}
  .stats-grid{grid-template-columns:1fr}
  .game-info-sidebar{width:200px}
  .back-to-top{bottom:16px;right:16px;width:40px;height:40px}
}

/* ─── SCROLLBAR ───────────────────────────────────── */
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:var(--muted)}