:root {
  --bg:#050508; --bg2:#0a0a0f; --cd:#121218; --cd2:#1c1c24;
  --fg:#f4f4f5; --mt:#8b8b9f;
  --ac:#00ffcc; --acd:#00ffcc26; --pu:#8b5cf6; --pud:#8b5cf626;
  --er:#f43f5e; --bd:#ffffff0f; --bdl:#ffffff26;
  --f-s:"Inter",system-ui,sans-serif; --f-m:"JetBrains Mono",monospace; --f-d:"Kanit",sans-serif;
}
[data-theme="light"] {
  --bg:#e2e8f0; --bg2:#fff; --cd:#fff9; --cd2:#f1f5f9;
  --fg:#0f172a; --mt:#64748b;
  --ac:#059669; --acd:#0596691a; --pu:#7c3aed; --pud:#7c3aed1a;
  --er:#e11d48; --bd:#00000014; --bdl:#00000026;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{background:#000;height:100vh;display:flex;align-items:center;justify-content:center;font:14px/1.5 var(--f-s);color:var(--fg);overflow:hidden;-webkit-font-smoothing:antialiased}
body{width:95vw;height:92vh;max-width:1600px;background:var(--bg);border-radius:16px;border:1px solid var(--bdl);box-shadow:0 30px 100px #000c,0 0 0 1px #ffffff0d inset;display:flex;flex-direction:column;overflow:hidden;position:relative}
a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
h1,h2,h3{font-family:var(--f-d);letter-spacing:.02em}
kbd{display:inline-block;background:#ffffff0d;border:1px solid var(--bdl);color:var(--mt);font-family:var(--f-m);font-size:.65rem;padding:.1rem .4rem;border-radius:4px;margin-left:.4rem;vertical-align:middle;box-shadow:0 2px 0 #0008}

.app{display:flex;flex-direction:column;flex:1;overflow:hidden}
.chrome{display:flex;flex-direction:column;background:#0a0a0fe6;backdrop-filter:blur(20px);border-bottom:1px solid var(--bd);z-index:100}
[data-theme="light"] .chrome{background:#ffffffe6}
.osbar{display:flex;align-items:center;padding:.6rem 1rem;gap:1rem;background:#0003}
[data-theme="light"] .osbar{background:#0000000d}
.dots{display:flex;gap:8px}
.dots i{width:12px;height:12px;border-radius:50%;border:1px solid #0003}
.dots .r{background:#ff5f56}.dots .y{background:#ffbd2e}.dots .g{background:#27c93f}
.tabs{display:flex;gap:.5rem;flex:1;justify-content:center}
.tab{display:flex;align-items:center;gap:.5rem;padding:.4rem 1.2rem;background:var(--cd);border:1px solid var(--bd);border-radius:8px 8px 0 0;font-size:.8rem;font-weight:600;border-bottom:none;box-shadow:0 -4px 10px #0000001a}
.tab .ic{color:var(--ac)}
.toolbar{display:flex;align-items:center;padding:.6rem 1rem;gap:1rem}
.tbtn{font-size:1.2rem;padding:.4rem;border-radius:8px;transition:all .2s;display:flex;align-items:center;justify-content:center;color:var(--mt)}
.tbtn:hover{background:#ffffff1a;color:var(--fg)}
.urlbar{flex:1;display:flex;align-items:center;gap:.6rem;background:var(--bg);border:1px solid var(--bdl);border-radius:10px;padding:0 1rem;height:40px;transition:all .2s;box-shadow:inset 0 2px 5px #0003}
.urlbar:focus-within{border-color:var(--ac);box-shadow:0 0 0 3px var(--acd),inset 0 2px 5px #0003}
.urlbar .lock{color:var(--ac);font-size:.9rem}
.urlbar .proto{font-family:var(--f-m);font-size:.85rem;color:var(--mt)}
.urlbar input{flex:1;background:transparent;border:none;outline:none;color:var(--fg);font-family:var(--f-m);font-size:.95rem;padding:0;margin:0;height:100%}
.urlbar input::placeholder{color:var(--mt);opacity:.5}
.gobtn{color:var(--ac);font-size:1.2rem;padding:0 .5rem}

.body{display:flex;flex:1;overflow:hidden;position:relative}
.sidebar{width:260px;background:var(--bg2);border-right:1px solid var(--bd);display:flex;flex-direction:column;padding:1rem;gap:.3rem;transition:width .3s ease;overflow:hidden;z-index:50}
.sidebar.collapsed{width:0;padding:0;border:none}
.sb-title{font-family:var(--f-m);font-size:.7rem;color:var(--mt);text-transform:uppercase;letter-spacing:.1em;margin:1rem 0 .5rem .8rem}
.sl{display:flex;align-items:center;gap:.8rem;padding:.7rem 1rem;border-radius:8px;color:var(--mt);font-weight:600;font-size:.9rem;transition:all .2s;cursor:pointer}
.sl:hover{background:#ffffff08;color:var(--fg);transform:translateX(4px)}
.sl.active{background:var(--acd);color:var(--ac)}
.sl span:first-child{width:18px;text-align:center}
.badge{margin-left:auto;background:#ffffff1a;color:var(--fg);font-size:.7rem;padding:.1rem .5rem;border-radius:99px;font-family:var(--f-m)}

.viewport{flex:1;overflow-y:auto;overflow-x:hidden;position:relative;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--bdl) transparent}
.viewport::-webkit-scrollbar{width:6px}
.viewport::-webkit-scrollbar-thumb{background:var(--bdl);border-radius:10px}
.viewport::-webkit-scrollbar-thumb:hover{background:var(--ac)}

#cv{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.6}
.bg-grid{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--bd) 1px,transparent 1px),linear-gradient(90deg,var(--bd) 1px,transparent 1px);background-size:50px 50px;mask-image:radial-gradient(circle at center,#000 20%,transparent 80%);-webkit-mask-image:radial-gradient(circle at center,#000 20%,transparent 80%)}

.content{position:relative;z-index:10;padding:2rem 3rem;min-height:100%;display:flex;flex-direction:column}
.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:4rem;max-width:1200px;margin:0 auto;width:100%;padding:4rem 0;align-items:center}
.sig{display:inline-flex;align-items:center;gap:.8rem;font-family:var(--f-m);font-size:.75rem;color:var(--ac);letter-spacing:.15em;margin-bottom:1.5rem;background:#00ffcc0d;padding:.4rem 1rem;border-radius:99px;border:1px solid #00ffcc33;width:fit-content}
.dot{width:6px;height:6px;background:var(--ac);border-radius:50%;box-shadow:0 0 10px var(--ac);animation:pulse 1.5s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 #00ffcc80}70%{box-shadow:0 0 0 10px #00ffcc00}100%{box-shadow:0 0 0 0 #00ffcc00}}
.title{font-size:clamp(3.5rem,8vw,6rem);line-height:1;font-weight:900;margin-bottom:1rem;letter-spacing:-.04em;background:linear-gradient(120deg,#fff 30%,var(--ac) 50%,#fff 70%);background-size:200% 100%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;animation:shimmer 4s infinite linear}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.boxes{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;max-width:400px;margin-top:2rem}
.box{background:var(--cd);border:1px solid var(--bd);border-radius:12px;padding:1.2rem;backdrop-filter:blur(10px)}
.box .k{font-family:var(--f-m);font-size:.65rem;color:var(--mt);margin-bottom:.4rem}
.box .v{font-family:var(--f-m);font-weight:800;font-size:1rem;color:var(--ac);text-shadow:0 0 15px var(--acd)}

.hr{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;perspective:1000px}
.orbit{position:absolute;inset:0;width:100%;height:100%;animation:spinOrbit 30s linear infinite}
@keyframes spinOrbit{100%{transform:rotate(360deg) rotateX(15deg) rotateY(15deg)}}
.orbit circle,.orbit polygon{fill:none;stroke:var(--bdl);stroke-width:1;opacity:.3}
.orbit polygon{stroke:var(--ac);opacity:.2}
.mascot{position:relative;width:40%;display:flex;align-items:center;justify-content:center;z-index:2;animation:float3D 6s ease-in-out infinite}
@keyframes float3D{0%,100%{transform:translateY(0) rotateX(10deg) rotateY(-10deg)}50%{transform:translateY(-20px) rotateX(-5deg) rotateY(5deg)}}
.glow{position:absolute;inset:-30%;background:radial-gradient(circle,var(--acd) 0%,transparent 60%);filter:blur(30px)}
.glyph{font-size:clamp(4rem,8vw,6rem);filter:drop-shadow(0 0 30px var(--ac));transform:translateZ(40px)}

.search-area{max-width:1200px;margin:0 auto;width:100%;padding-bottom:4rem}
.s-head{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}
.s-head h2{font-size:1.1rem;letter-spacing:.15em;font-weight:800}
.s-head .line{flex:1;height:1px;background:linear-gradient(90deg,var(--bdl),transparent)}
.chips-bar{display:flex;gap:1rem;flex-wrap:wrap;justify-content:space-between;margin-bottom:1.5rem}
.chips{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.chip{background:#ffffff08;border:1px solid var(--bd);color:var(--mt);padding:.4rem .8rem;border-radius:99px;font-family:var(--f-m);font-size:.75rem;font-weight:600;transition:all .2s;display:inline-flex;align-items:center;gap:.3rem;cursor:pointer}
.chip:hover{border-color:var(--bdl);color:var(--fg);transform:translateY(-1px)}
.chip.on{background:var(--acd);border-color:var(--ac);color:var(--ac);box-shadow:0 0 15px var(--acd)}
.chip.on::after{content:'';display:inline-block;width:6px;height:6px;background:var(--ac);border-radius:50%;margin-left:.3rem}
#reset{color:var(--er);border-color:#f43f5e4d}

.status{font-family:var(--f-m);font-size:.85rem;color:var(--mt);margin-bottom:1.5rem;font-weight:bold}
.status .ok{color:var(--ac)}
.stats{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2rem}
.stat{background:#ffffff05;border:1px solid var(--bd);padding:.3rem .8rem;border-radius:8px;font-family:var(--f-m);font-size:.75rem;cursor:pointer;display:flex;align-items:center;gap:.4rem}
.stat .sw{width:8px;height:8px;border-radius:50%}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;perspective:1500px}
.grid.list{grid-template-columns:1fr;perspective:none}
.card{background:var(--cd);border:1px solid var(--bd);border-radius:12px;padding:1.5rem;display:flex;flex-direction:column;transition:transform .1s ease,border-color .3s,box-shadow .3s;position:relative;overflow:hidden;backdrop-filter:blur(20px);opacity:0;transform:translateY(20px);animation:slideUp .6s cubic-bezier(.2,.8,.2,1) forwards}
@keyframes slideUp{to{opacity:1;transform:translateY(0)}}
.card::before{content:'';position:absolute;inset:0;background:radial-gradient(600px circle at var(--mx,50%) var(--my,50%),#00ffcc14,transparent 40%);opacity:0;transition:opacity .3s;pointer-events:none;z-index:0}
.card:hover::before{opacity:1}
.card:hover{border-color:var(--ac);box-shadow:0 20px 40px -10px #000c,0 0 20px #00ffcc1a}
.ch{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem;z-index:1;transform:translateZ(20px)}
.av{width:32px;height:32px;border-radius:8px;background:var(--cd2);border:1px solid var(--bd)}
.repo{font-family:var(--f-m);font-size:1rem;font-weight:800;color:var(--ac);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.repo mark{background:var(--acd);color:var(--ac);padding:0 2px;border-radius:2px}
.fav,.cmp{font-size:1.1rem;color:var(--mt);transition:all .2s}
.fav:hover,.fav.on{color:var(--ac);transform:scale(1.2)}
.cmp:hover,.cmp.on{color:var(--pu);transform:scale(1.2)}
.desc{font-size:.85rem;color:var(--mt);line-height:1.6;margin-bottom:1rem;flex:1;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;z-index:1;transform:translateZ(10px)}
.topics{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem;z-index:1}
.topic{background:#ffffff08;border:1px solid var(--bd);padding:.2rem .6rem;border-radius:99px;font-size:.7rem;font-family:var(--f-m);color:var(--mt)}
.cf{display:flex;align-items:center;gap:.8rem;font-size:.75rem;font-family:var(--f-m);margin-top:auto;border-top:1px solid var(--bd);padding-top:1rem;z-index:1;transform:translateZ(20px)}
.pill{display:inline-flex;align-items:center;gap:.4rem;background:#ffffff08;padding:.2rem .6rem;border-radius:6px;border:1px solid var(--bd)}
.pill::before{content:'';width:8px;height:8px;background:var(--lc,var(--ac));border-radius:50%;box-shadow:0 0 8px var(--lc,var(--ac))}
.metric{color:var(--mt);display:inline-flex;align-items:center;gap:.2rem}
.metric.dim{margin-left:auto;opacity:.6}
.ca{display:flex;gap:.4rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--bd);opacity:0;max-height:0;overflow:hidden;transition:all .3s;z-index:1;transform:translateZ(20px)}
.card:hover .ca{opacity:1;max-height:60px}
.act{background:var(--cd2);border:1px solid var(--bd);padding:.4rem .8rem;border-radius:6px;font-family:var(--f-m);font-size:.7rem;transition:all .2s;color:var(--mt);flex:1;text-align:center;font-weight:bold}
.act:hover{border-color:var(--ac);color:var(--ac);background:var(--acd)}

.more-wrap{text-align:center;margin-top:3rem}
#more{padding:1rem 3rem;border-radius:99px;background:var(--cd);border:1px solid var(--bd);font-family:var(--f-m);font-weight:800;color:var(--fg);transition:all .2s}
#more:hover{border-color:var(--ac);color:var(--ac);box-shadow:0 0 20px var(--acd);transform:translateY(-2px)}

.ticker{height:32px;background:#0a0a0fe6;border-top:1px solid var(--bd);display:flex;align-items:center;overflow:hidden;white-space:nowrap;z-index:100}
.track{display:flex;gap:3rem;animation:ticker 40s linear infinite;font-family:var(--f-m);font-size:.7rem;color:var(--mt);font-weight:bold}
.track:hover{animation-play-state:paused}
.track .dia{color:var(--ac);margin-right:.5rem}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

.modal{position:absolute;inset:0;z-index:300;display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem;overflow-y:auto}
.modal[hidden]{display:none}
.mb{position:absolute;inset:0;background:#000c;backdrop-filter:blur(10px)}
.mp{position:relative;width:min(800px,100%);background:var(--bg2);border:1px solid var(--bdl);border-radius:16px;box-shadow:0 30px 80px #000c;transform:translateY(20px);animation:pop .3s cubic-bezier(.175,.885,.32,1.275) forwards;z-index:1}
@keyframes pop{to{transform:translateY(0);opacity:1}}
.mc{position:absolute;top:1rem;right:1rem;z-index:10}
.mbody{padding:2.5rem}
.mh{display:flex;gap:2rem;margin-bottom:2rem}
.mav{width:80px;height:80px;border-radius:16px;border:1px solid var(--bdl)}
.mtitle{font-size:1.8rem;font-family:var(--f-m);font-weight:900;word-break:break-all}
.mowner{font-family:var(--f-m);font-size:.9rem;color:var(--ac);margin-bottom:.5rem}
.mstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:1rem;margin-bottom:2rem}
.mstat{background:#ffffff05;padding:1rem;border-radius:10px;border:1px solid var(--bd);text-align:center}
.mstat .v{font-family:var(--f-m);font-size:1.4rem;font-weight:bold;color:var(--ac)}
.mstat .l{font-size:.7rem;color:var(--mt);text-transform:uppercase;margin-top:.2rem}
.macts{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--bd)}
.mbtn{background:#ffffff08;border:1px solid var(--bd);padding:.6rem 1.2rem;border-radius:8px;font-family:var(--f-m);font-size:.85rem;color:var(--fg);transition:all .2s;font-weight:600}
.mbtn:hover{border-color:var(--ac);color:var(--ac);background:var(--acd)}
.mbtn.primary{background:var(--ac);color:#000;border-color:var(--ac);font-weight:900}
.mreadme{margin-top:2rem;border-top:1px solid var(--bd);padding-top:2rem}
.mload{font-family:var(--f-m);color:var(--mt);display:flex;align-items:center;gap:.5rem}
.mload::before{content:'';width:14px;height:14px;border:2px solid var(--mt);border-top-color:var(--ac);border-radius:50%;animation:spin 1s linear infinite}
@keyframes spin{100%{transform:rotate(360deg)}}

.drawer{position:absolute;inset:0;z-index:200;display:flex;justify-content:flex-end;pointer-events:none}
.drawer[hidden]{display:none}
.db{position:absolute;inset:0;background:#00000080;opacity:0;transition:opacity .3s;pointer-events:auto}
.drawer.on .db{opacity:1}
.dp{position:relative;width:400px;height:100%;background:var(--bg2);border-left:1px solid var(--bdl);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s;pointer-events:auto;z-index:1}
.drawer.on .dp{transform:translateX(0)}
.dh{display:flex;align-items:center;justify-content:space-between;padding:1.2rem;border-bottom:1px solid var(--bd)}
.dbody{padding:1.2rem;overflow-y:auto;flex:1}

.ricol{padding:1rem 0;border-bottom:1px solid var(--bd)}
.ri{display:flex;align-items:center;gap:.8rem}
.ri .av{width:32px;height:32px;border-radius:6px}
.rtitle{font-family:var(--f-m);font-weight:bold;font-size:.9rem}
.rsub{font-size:.8rem;color:var(--mt)}
.rtools{display:flex;gap:.5rem;margin-top:.5rem}
.rtools button{background:#ffffff0d;border:1px solid var(--bd);padding:.2rem .6rem;border-radius:4px;font-size:.7rem;font-family:var(--f-m)}
.rtools button:hover{border-color:var(--ac);color:var(--ac)}

.toast{position:absolute;bottom:50px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--fg);color:var(--bg);padding:.8rem 1.5rem;border-radius:99px;font-family:var(--f-m);font-size:.85rem;font-weight:800;opacity:0;pointer-events:none;transition:all .3s;z-index:400;box-shadow:0 10px 30px #0008}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.empty{text-align:center;padding:3rem;font-family:var(--f-m);color:var(--mt);border:1px dashed var(--bd);border-radius:12px}
.hidden{display:none!important}

/* ── NEW: skeletons ─────────────────────────────────────────── */
.card.skel{pointer-events:none;animation:none;opacity:1;transform:none}
.skel .sk-line,.skel .sk-av{
  background:linear-gradient(90deg,#ffffff08 0%,#ffffff18 50%,#ffffff08 100%);
  background-size:200% 100%;
  animation:skShim 1.4s infinite;
  border-radius:6px;
}
.skel .sk-line{height:12px;margin-bottom:.8rem}
.skel .sk-av{width:32px;height:32px;border-radius:8px;margin-right:.8rem;flex-shrink:0}
@keyframes skShim{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ── NEW: keyboard focus ────────────────────────────────────── */
.card.kbd-focus{outline:2px solid var(--ac);outline-offset:2px;border-color:var(--ac);box-shadow:0 0 0 4px var(--acd),0 0 20px var(--acd)}

/* ── NEW: new-repo dot ──────────────────────────────────────── */
.new-dot{width:6px;height:6px;background:var(--ac);border-radius:50%;box-shadow:0 0 8px var(--ac);animation:pulse 2s infinite;flex-shrink:0}

/* ── NEW: bulk action bar ───────────────────────────────────── */
.bulkbar{
  position:absolute;bottom:44px;left:50%;transform:translateX(-50%);
  background:var(--bg2);border:1px solid var(--ac);border-radius:12px;
  padding:.6rem 1rem;display:flex;align-items:center;gap:.6rem;z-index:150;
  box-shadow:0 20px 40px #000c,0 0 20px var(--acd);
  animation:slideUp .3s ease;
}
.bulkbar[hidden]{display:none}
.bulkbar #bulkcount{
  font-family:var(--f-m);font-size:.85rem;color:var(--ac);font-weight:bold;
  padding-right:.6rem;border-right:1px solid var(--bd);
}

/* ── NEW: command palette ───────────────────────────────────── */
.cmdk{position:absolute;inset:0;z-index:500;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh}
.cmdk[hidden]{display:none}
.cmdk-back{position:absolute;inset:0;background:#000c;backdrop-filter:blur(10px)}
.cmdk-panel{position:relative;width:min(560px,100%);background:var(--bg2);border:1px solid var(--bdl);border-radius:14px;box-shadow:0 30px 80px #000c;overflow:hidden;animation:pop .2s ease;z-index:1}
.cmdk-panel input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--bd);padding:1rem 1.2rem;font-family:var(--f-m);font-size:1rem;color:var(--fg);outline:none}
.cmdk-list{max-height:50vh;overflow-y:auto}
.cmd-item{display:flex;align-items:center;gap:.8rem;padding:.8rem 1.2rem;cursor:pointer;transition:background .15s;border-bottom:1px solid var(--bd)}
.cmd-item:hover,.cmd-item.sel{background:var(--acd)}
.cmd-item .cmdk-ico{color:var(--ac);width:20px;text-align:center}
.cmd-item .cmdk-lbl{flex:1;font-family:var(--f-m);font-size:.9rem}

/* ── NEW: compare winner ───────────────────────────────────── */
.cmp-win{color:var(--ac);font-weight:bold;text-shadow:0 0 10px var(--acd)}

@media(max-width:1024px){
  .hero{grid-template-columns:1fr;text-align:center;padding:2rem 0}
  .hero .hl{align-items:center;display:flex;flex-direction:column}
  .boxes{margin:2rem auto 0}
  .hr{display:none}
  .sidebar{position:absolute;height:100%;box-shadow:10px 0 30px #0008}
}
@media(max-width:768px){
  body{width:100vw;height:100vh;border-radius:0;border:none}
  .osbar{display:none}
  .content{padding:1.5rem 1rem}
  .grid{grid-template-columns:1fr;perspective:none}
  .card{transform:none!important}
  .chips-bar{flex-direction:column}
  .modal{padding:1rem}
  .mbody{padding:1.5rem}
  .mh{flex-direction:column;text-align:center;align-items:center}
  .bulkbar{left:1rem;right:1rem;transform:none;flex-wrap:wrap;bottom:44px}
}
