:root{--paper:#f6f7f5;--surface:#fff;--ink:#1b1f23;--ink-soft:#4b5560;--line:#d8dce1;--line-soft:#e9ebee;--blue:#2451c4;--blue-deep:#16327f;--blue-pale:#e7edfb;--green:#16794f;--green-pale:#e4f3ec;--amber:#b8790a;--amber-pale:#fbf0dd;--font-display:"Space Grotesk",sans-serif;--font-body:"IBM Plex Sans",sans-serif;--font-mono:"IBM Plex Mono",monospace;--radius:4px;--max-width:1180px}*{box-sizing:border-box}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);line-height:1.5;-webkit-font-smoothing:antialiased}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}a{color:var(--blue);text-decoration:none}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.topbar{max-width:var(--max-width);margin:0 auto;padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:18px}.topbar-brand img{display:block;height:34px;width:auto}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.nav-link{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.nav-link:hover{color:var(--blue)}.user-pill{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-signout{align-self:center}.auth-gate{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:var(--ink-soft);font-family:var(--font-mono);font-size:13px}.masthead{border-bottom:1px solid var(--ink);background:linear-gradient(var(--paper),var(--paper)),repeating-linear-gradient(90deg,var(--line-soft) 0 1px,transparent 1px 88px)}.masthead-inner{max-width:var(--max-width);margin:0 auto;padding:40px 32px 28px;display:grid;grid-template-columns:1fr auto;grid-gap:24px;gap:24px;align-items:flex-end}.logo-img{height:56px;width:auto;display:block;margin-bottom:4px}.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;color:var(--blue);margin:0 0 6px;text-transform:uppercase}.masthead h1{font-family:var(--font-display);font-weight:700;font-size:clamp(32px,5vw,48px);margin:0 0 8px;letter-spacing:-.01em}.subhead{margin:0;color:var(--ink-soft);font-size:16px;max-width:46ch}.masthead-stats{display:flex;gap:28px}.stat{display:flex;flex-direction:column;align-items:flex-end;border-left:1px solid var(--line);padding-left:18px}.stat-num{font-family:var(--font-mono);font-size:28px;font-weight:500;color:var(--ink)}.stat-label{font-size:12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}@media (max-width:720px){.topbar{padding:14px 18px}.topbar-brand img{height:28px}.topbar-actions{gap:8px}.masthead-inner{grid-template-columns:1fr}.masthead-stats{justify-content:flex-start;border-top:1px solid var(--line);padding-top:16px}}.controls{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:hsla(90,11%,96%,.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}.controls-inner{max-width:var(--max-width);margin:0 auto;padding:16px 32px;display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}.search-field{flex:1 1 260px}.select-field{flex:0 0 auto;min-width:180px}.search-field label,.select-field label{display:block;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:6px}#category-select,#search,#sort-select{width:100%;font-family:var(--font-body);font-size:14px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink)}#category-select:focus,#search:focus,#sort-select:focus{border-color:var(--blue)}.action-btn,.clear-btn{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.05em;background:none;border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;color:var(--ink-soft);cursor:pointer;align-self:flex-end}.action-btn{background:var(--blue);color:#fff;border-color:var(--blue-deep)}.action-btn:hover{background:var(--blue-deep)}.clear-btn:hover{border-color:var(--ink);color:var(--ink)}.category-strip{max-width:var(--max-width);margin:0 auto;padding:18px 32px 0;display:flex;flex-wrap:wrap;gap:8px}.chip{font-family:var(--font-mono);font-size:12px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;background:var(--surface);color:var(--ink-soft);cursor:pointer}.chip:hover{border-color:var(--blue);color:var(--blue)}.chip.active{background:var(--blue);border-color:var(--blue);color:#fff}.category-note{margin:12px auto 0;padding:0 32px;font-family:var(--font-mono);font-size:11.5px;color:var(--ink-soft);line-height:1.5}.category-note,.results{max-width:var(--max-width)}.results{margin:0 auto;padding:20px 32px 64px}.results-count{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);margin:0 0 16px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:14px;gap:14px}.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 16px 16px;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit;transition:border-color .15s ease,transform .15s ease}.card:focus-visible,.card:hover{border-color:var(--blue);transform:translateY(-1px)}.card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.card-code{font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--blue-deep);background:var(--blue-pale);border-radius:3px;padding:3px 7px;white-space:nowrap}.card-code[data-cat=FR]{color:var(--green);background:var(--green-pale)}.card-code[data-cat=GN]{color:var(--ink-soft);background:var(--line-soft)}.card-stars{color:var(--amber);background:var(--amber-pale)}.card-pick,.card-stars{font-family:var(--font-mono);font-size:11px;border-radius:3px;padding:3px 7px;white-space:nowrap}.card-pick{color:var(--blue-deep);background:var(--blue-pale)}.card-name{font-family:var(--font-display);font-weight:600;font-size:16px;line-height:1.3;margin:0;color:var(--ink)}.card-desc{font-size:13.5px;color:var(--ink-soft);margin:0;flex:1 1}.card-foot{font-family:var(--font-mono);font-size:11px;color:var(--ink-soft);border-top:1px solid var(--line-soft);padding-top:8px;margin-top:4px;display:flex;justify-content:space-between;align-items:center;gap:8px}.card-pricing{text-transform:uppercase;letter-spacing:.04em;font-size:10px;padding:2px 6px;border-radius:3px;background:var(--line-soft);white-space:nowrap}.card-pricing[data-pricing="Free tier"],.card-pricing[data-pricing=Free]{background:var(--green-pale);color:var(--green)}.card-pricing[data-pricing="Open Source"]{background:var(--blue-pale);color:var(--blue-deep)}.card-pricing[data-pricing=Paid]{background:var(--amber-pale);color:var(--amber)}.empty-state{color:var(--ink-soft);padding:40px 0;text-align:center}.empty-state,.load-more{font-family:var(--font-mono);font-size:13px}.load-more{display:block;margin:28px auto 0;text-transform:uppercase;letter-spacing:.05em;background:var(--surface);border:1px solid var(--ink);border-radius:var(--radius);padding:12px 22px;cursor:pointer;color:var(--ink)}.load-more:hover{background:var(--ink);color:#fff}.site-footer{border-top:1px solid var(--line);padding:24px 32px 40px}.site-footer p{max-width:var(--max-width);margin:0 auto;font-size:12px;color:var(--ink-soft)}.auth-container{max-width:400px;margin:80px auto;padding:32px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 12px rgba(0,0,0,.05)}.auth-container h2{font-family:var(--font-display);margin-top:0;margin-bottom:24px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form input{font-family:var(--font-body);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink)}.auth-form button,.auth-form input{width:100%;font-size:14px;padding:12px 14px}.auth-form button{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;background:var(--blue);color:#fff;border:none;border-radius:var(--radius);cursor:pointer}.auth-form button:hover{background:var(--blue-deep)}.social-login{margin-top:24px;display:flex;flex-direction:column;gap:12px}.social-login button{width:100%;background:var(--surface);border:1px solid var(--line);color:var(--ink);padding:10px;border-radius:var(--radius);cursor:pointer;font-family:var(--font-body)}.social-login button:hover{background:var(--paper)}.auth-error{color:red;font-size:14px}