@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');
:root{--bg:#f7f4ee;--panel:#fffdf9;--ink:#20201d;--muted:#77746c;--line:#e7e1d8;--accent:#e85d3f;--accent-dark:#bf452d;--dark:#24231f;--sage:#d9e1cb;--blue:#d9e5f3;--shadow:0 16px 45px rgba(56,48,38,.09);--radius:22px;--sidebar:256px;--header:78px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:15px}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{color:inherit}svg{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.hidden{display:none!important}
.app-shell{min-height:100vh}.topbar{height:var(--header);position:fixed;z-index:30;left:0;right:0;top:0;display:grid;grid-template-columns:var(--sidebar) minmax(260px,720px) 1fr;align-items:center;gap:24px;padding:0 28px 0 24px;background:rgba(247,244,238,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}
.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink)}.brand-mark{display:grid;place-items:center;width:43px;height:43px;background:var(--accent);color:white;border-radius:14px;transform:rotate(-3deg)}.brand-mark svg{width:25px;height:25px}.brand strong,.brand small{display:block}.brand strong{font-size:18px;letter-spacing:-.4px}.brand small{font-size:11px;color:var(--muted);margin-top:1px}
.search-box{height:48px;background:var(--panel);border:1px solid var(--line);border-radius:999px;display:flex;align-items:center;gap:11px;padding:0 16px;box-shadow:0 5px 16px rgba(52,46,37,.04);transition:.2s}.search-box:focus-within{border-color:#cfb9ac;box-shadow:0 0 0 4px rgba(232,93,63,.09)}.search-box svg{color:var(--muted);flex:0 0 auto}.search-box input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink)}.search-box input::placeholder{color:#aaa69d}.search-box kbd{font:600 11px "DM Sans";color:#969188;border:1px solid var(--line);border-radius:7px;padding:4px 7px;background:#faf8f3}
.top-actions{justify-self:end;display:flex;gap:10px;align-items:center}.icon-btn,.primary-btn,.secondary-btn,.text-btn{border:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .16s,background .16s,color .16s,box-shadow .16s}.icon-btn{width:44px;height:44px;border-radius:50%;background:var(--panel);border:1px solid var(--line)}.icon-btn:hover{background:white;transform:translateY(-1px)}.primary-btn{min-height:46px;padding:0 19px;border-radius:999px;background:var(--dark);color:white;font-weight:650;box-shadow:0 8px 18px rgba(36,35,31,.16)}.primary-btn:hover{background:#0d0d0c;transform:translateY(-1px)}.primary-btn svg{width:18px}.secondary-btn{min-height:46px;padding:0 20px;border-radius:999px;background:transparent;border:1px solid var(--line);font-weight:600}.secondary-btn:hover{background:#f6f2eb}.text-btn{background:transparent;color:var(--accent-dark);font-weight:600;padding:8px}
.sidebar{position:fixed;z-index:20;top:var(--header);bottom:0;left:0;width:var(--sidebar);padding:25px 18px 18px;border-right:1px solid var(--line);display:flex;flex-direction:column;overflow:auto;background:rgba(247,244,238,.72)}.side-section{margin-bottom:27px}.eyebrow{margin:0 0 10px 10px;color:#99948a;font-size:10px;font-weight:750;letter-spacing:.13em}.eyebrow.accent{color:var(--accent);margin-left:0}.side-title{display:flex;align-items:center;justify-content:space-between}.side-title span{font-size:11px;color:#aaa69d;margin-right:12px}.nav-item,.category-item{width:100%;min-height:43px;border:0;border-radius:12px;background:transparent;display:flex;align-items:center;gap:11px;text-align:left;padding:8px 10px;cursor:pointer;color:#625f58;font-weight:550}.nav-item b,.category-item b{margin-left:auto;font-size:11px;color:#aaa69d;font-weight:600}.nav-item:hover,.category-item:hover{background:#eee9e0;color:var(--ink)}.nav-item.active,.category-item.active{background:var(--dark);color:white}.nav-item.active b,.category-item.active b{color:#c8c5be}.nav-icon{width:27px;height:27px;display:grid;place-items:center}.nav-icon svg{width:18px}.category-dot{width:9px;height:9px;border-radius:50%;background:var(--cat,#aaa)}.tag-cloud{display:flex;flex-wrap:wrap;gap:7px;padding:0 8px}.tag-chip{border:1px solid var(--line);background:var(--panel);color:#6d6961;border-radius:999px;padding:7px 10px;font-size:11px;cursor:pointer}.tag-chip:hover,.tag-chip.active{background:var(--accent);border-color:var(--accent);color:white}.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding:18px 9px 4px;display:flex;align-items:center;gap:10px}.sidebar-footer strong,.sidebar-footer small{display:block}.sidebar-footer strong{font-size:11px}.sidebar-footer small{font-size:9px;color:#aaa69d;margin-top:2px}.status-dot{width:9px;height:9px;background:#58a77a;border-radius:50%;box-shadow:0 0 0 4px rgba(88,167,122,.14)}
.content{margin-left:var(--sidebar);padding:calc(var(--header) + 38px) 34px 70px;max-width:1700px}.hero{background:var(--dark);color:white;border-radius:30px;min-height:272px;padding:42px 48px;display:flex;justify-content:space-between;align-items:flex-end;gap:40px;position:relative;overflow:hidden;box-shadow:var(--shadow)}.hero:before,.hero:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.08);border-radius:50%}.hero:before{width:340px;height:340px;right:-80px;top:-210px}.hero:after{width:260px;height:260px;right:120px;bottom:-215px}.hero h1{font-size:clamp(40px,4.6vw,68px);line-height:.88;letter-spacing:-.05em;margin:0;font-weight:600}.hero h1 em{font-family:"Instrument Serif",serif;font-weight:400;color:#f6b6a6}.hero p:not(.eyebrow){color:#b9b6ad;margin:23px 0 0;max-width:520px}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);position:relative;z-index:1;border:1px solid rgba(255,255,255,.1);border-radius:19px;background:rgba(255,255,255,.05);backdrop-filter:blur(10px);min-width:360px}.hero-stats div{padding:20px;border-right:1px solid rgba(255,255,255,.1)}.hero-stats div:last-child{border:0}.hero-stats strong,.hero-stats span{display:block}.hero-stats strong{font:400 32px "Instrument Serif",serif}.hero-stats span{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#9f9b92;margin-top:3px}
.library-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:36px 3px 19px}.result-label{font-size:24px;font-weight:700;letter-spacing:-.7px;margin:0 0 4px}.library-toolbar span{font-size:12px;color:var(--muted)}.toolbar-actions{display:flex;align-items:center;gap:13px}.select-wrap{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);padding:0 13px;border-radius:999px;height:41px}.select-wrap select{border:0;background:transparent;outline:0;font-weight:600;color:var(--ink)}.active-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px}.filter-pill{display:flex;align-items:center;gap:7px;background:#f0e5de;color:#944531;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:650}.filter-pill button{border:0;background:transparent;color:inherit;cursor:pointer;padding:0;display:grid}
.masonry{columns:4 270px;column-gap:20px}.repo-card{display:inline-block;width:100%;margin:0 0 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 5px 18px rgba(55,47,38,.045);break-inside:avoid;transition:transform .22s,box-shadow .22s}.repo-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.card-media{display:block;position:relative;min-height:150px;background:linear-gradient(135deg,#e9e5dd,#f7f4ee);overflow:hidden}.card-media img{display:block;width:100%;height:auto;min-height:150px;max-height:270px;object-fit:cover;transition:transform .35s}.card-media img[hidden]{display:none}.repo-card:hover .card-media img{transform:scale(1.025)}.image-fallback{height:185px;display:grid;place-items:center;background:linear-gradient(145deg,var(--card-color,#dce4d2),#f7f4ee);font:400 42px "Instrument Serif",serif;color:#4d5148}.image-fallback[hidden]{display:none}.category-badge{position:absolute;left:13px;top:13px;background:rgba(255,253,249,.91);backdrop-filter:blur(8px);padding:7px 10px;border-radius:999px;font-size:9px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.favorite-btn{position:absolute;top:11px;right:11px;width:36px;height:36px;border:0;border-radius:50%;background:rgba(255,253,249,.91);display:grid;place-items:center;cursor:pointer;color:#605c55}.favorite-btn.active{background:var(--accent);color:white}.favorite-btn svg{width:17px}.card-body{padding:17px 18px 18px}.repo-owner{color:#9c978e;font-size:10px;margin:0 0 5px;font-weight:650}.repo-title{font-size:20px;letter-spacing:-.45px;margin:0 0 8px;line-height:1.15}.repo-desc{color:#6f6b63;font-size:12px;line-height:1.58;margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.repo-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:15px}.repo-tag{font-size:9px;color:#67635b;background:#f1ede6;border-radius:7px;padding:5px 7px;cursor:pointer;border:0}.repo-tag:hover{color:var(--accent-dark);background:#f4e1da}.card-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid #eee9e2}.repo-meta{display:flex;align-items:center;gap:9px;font-size:10px;color:#8e8980}.language-dot{width:7px;height:7px;border-radius:50%;background:var(--lang,#9ba78d)}.card-menu{display:flex;gap:3px}.mini-btn{width:31px;height:31px;border-radius:50%;border:0;background:transparent;color:#8e8980;cursor:pointer;display:grid;place-items:center}.mini-btn:hover{background:#eee9e2;color:var(--ink)}.mini-btn svg{width:15px}
.empty-state{text-align:center;padding:80px 20px;border:1px dashed #d9d1c6;border-radius:25px}.empty-state>span{display:grid;place-items:center;width:65px;height:65px;margin:auto;background:#eee9e2;border-radius:50%;color:#827d74}.empty-state>span svg{width:27px}.empty-state h2{margin:18px 0 5px}.empty-state p{color:var(--muted);margin:0 0 20px}.mobile-category-wrap{display:none}
.modal{border:0;padding:0;border-radius:27px;width:min(670px,calc(100vw - 28px));background:var(--panel);box-shadow:0 30px 100px rgba(30,25,20,.3)}.modal::backdrop{background:rgba(28,26,22,.63);backdrop-filter:blur(4px)}.modal form{padding:29px}.modal-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:24px}.modal-head h2{font-size:28px;margin:0 0 5px;letter-spacing:-.8px}.modal-head p:not(.eyebrow){font-size:12px;color:var(--muted);margin:0;max-width:490px;line-height:1.5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.field{display:block}.field.full{grid-column:1/-1}.field>span{display:flex;justify-content:space-between;font-size:11px;font-weight:700;margin:0 0 7px 3px}.field small{font-weight:400;color:var(--muted)}.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:13px;background:#faf8f3;outline:0;padding:12px 13px;color:var(--ink)}.field textarea{resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:#c99c8e;box-shadow:0 0 0 3px rgba(232,93,63,.09)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.form-error{color:#a93724;background:#fce9e5;border-radius:11px;padding:10px 12px;font-size:11px;margin-top:15px}.edit-only{display:none}.editing .edit-only{display:block}.editing #repoUrl{opacity:.65;pointer-events:none}.toast{position:fixed;z-index:100;right:25px;bottom:25px;background:var(--dark);color:white;border-radius:14px;padding:13px 17px;box-shadow:var(--shadow);font-size:12px;transform:translateY(30px);opacity:0;pointer-events:none;transition:.25s}.toast.show{transform:none;opacity:1}.toast.error{background:#a83c2c}
.skeleton{height:330px;border-radius:var(--radius);margin-bottom:20px;background:linear-gradient(100deg,#eae5dc 20%,#f4f1ea 40%,#eae5dc 60%);background-size:200% 100%;animation:shimmer 1.2s infinite;break-inside:avoid}@keyframes shimmer{to{background-position:-200% 0}}
@media(max-width:1050px){:root{--sidebar:218px}.topbar{grid-template-columns:var(--sidebar) minmax(260px,1fr) auto}.hero{align-items:flex-start;flex-direction:column}.hero-stats{align-self:stretch}.masonry{columns:3 250px}.tag-section{display:none}}
@media(max-width:760px){html,body{max-width:100%;overflow-x:hidden}:root{--header:70px}.topbar{width:100vw;grid-template-columns:minmax(0,1fr) auto;padding:0 14px;gap:10px}.brand{min-width:0}.brand small,.search-box,.desktop-only{display:none}.brand-mark{width:39px;height:39px}.top-actions{min-width:46px}.top-actions .primary-btn{width:46px;padding:0}.top-actions .primary-btn span{display:none}.sidebar{display:none}.content{width:100%;margin:0;padding:calc(var(--header) + 16px) 14px 50px}.hero{width:100%;min-width:0;min-height:250px;border-radius:23px;padding:28px 24px}.hero h1{font-size:42px}.hero>div:first-child{min-width:0}.hero-stats{width:100%;min-width:0;grid-template-columns:repeat(3,minmax(0,1fr))}.hero-stats div{min-width:0;padding:14px 8px}.hero-stats strong{font-size:25px}.hero-stats span{overflow-wrap:anywhere}.mobile-category-wrap{display:block;position:sticky;top:var(--header);z-index:10;background:var(--bg);margin:0 -14px;padding:12px 14px}.mobile-categories{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}.mobile-categories::-webkit-scrollbar{display:none}.mobile-category{white-space:nowrap;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:9px 13px;font-size:11px}.mobile-category.active{background:var(--dark);color:white}.library-toolbar{margin-top:18px;align-items:center;flex-wrap:wrap}.result-label{font-size:20px}.select-wrap>span{display:none}.select-wrap{padding:0 8px;max-width:150px}.select-wrap select{max-width:125px}.masonry{column-count:2;column-width:auto;column-gap:12px}.repo-card{margin-bottom:12px;border-radius:17px}.card-body{padding:14px}.repo-title{font-size:17px}.repo-desc{-webkit-line-clamp:3}.card-media{min-height:110px}.card-media img{min-height:110px}.modal form{padding:22px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.modal-actions>*{flex:1}.toast{left:14px;right:14px;bottom:14px;text-align:center}}
@media(max-width:470px){.masonry{column-count:1;column-width:auto}.hero h1{font-size:39px}.hero-stats span{font-size:7px}.hero p:not(.eyebrow){font-size:12px}.library-toolbar{align-items:flex-start}.toolbar-actions{margin-left:auto}.repo-desc{-webkit-line-clamp:4}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
