@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap";.project-card{background:var(--c1);padding:18px;display:flex;flex-direction:column;gap:0;transition:background .15s;cursor:default;position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}.project-card:hover{background:var(--c2)}.project-card:hover:before{transform:scaleX(1)}.project-card--starred:before{background:var(--accent3);transform:scaleX(.25)}.project-card--starred:hover:before{transform:scaleX(1);background:var(--accent3)}.card-star-badge{position:absolute;top:16px;right:16px;font-size:10px;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent3);border:1px solid rgba(250,109,156,.3);padding:2px 7px;border-radius:3px;background:#fa6d9c12}.card-id{font-size:10px;color:var(--c4);letter-spacing:.12em;margin-bottom:16px;font-family:var(--mono)}.card-id span{color:var(--c5)}.card-title{font-family:var(--display);font-size:20px;font-weight:600;color:var(--c8);line-height:1.2;margin-bottom:10px;letter-spacing:-.01em}.card-desc{font-size:12px;color:var(--c6);line-height:1.7;flex:1;margin-bottom:20px}.card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}.tag{font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:3px;border:1px solid var(--c3);color:var(--c5);background:var(--c2);transition:border-color .15s,color .15s}.project-card:hover .tag{border-color:var(--c4);color:var(--c6)}.tag--tech{border-color:#7c6dfa4d;color:var(--accent);background:#7c6dfa14}.card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:16px;border-top:1px solid var(--c3)}.card-link{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent2);text-decoration:none;font-family:var(--mono);display:inline-flex;align-items:center;gap:4px;transition:gap .15s}.card-link:hover{gap:8px}.card-date{font-size:10px;color:var(--c4);letter-spacing:.05em;font-family:var(--mono)}.card-footer-left{display:flex;align-items:center;gap:8px}.card-type{font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:2px 6px;border-radius:3px;background:var(--c2);color:var(--accent);border:1px solid rgba(124,109,250,.2);font-weight:600;font-family:var(--mono)}img{margin:10px}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--c1);border:1px solid var(--c3);border-radius:8px;max-width:700px;width:100%;max-height:85vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px #0006;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:var(--c2);color:var(--c6);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10;font-size:18px;font-weight:600}.modal-close:hover{background:var(--c3);color:var(--c8)}.modal-header{padding:24px;border-bottom:1px solid var(--c3);position:relative}.modal-header-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}.modal-id{font-size:10px;color:var(--c4);letter-spacing:.12em;font-family:var(--mono);text-transform:uppercase}.modal-type{font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:3px;background:#7c6dfa1f;color:var(--accent);border:1px solid rgba(124,109,250,.3);font-weight:600;font-family:var(--mono)}.modal-title{margin:0 0 8px;font-size:28px;font-weight:700;color:var(--c8);letter-spacing:-.5px}.modal-meta{font-size:12px;color:#0cd80c;font-family:var(--mono);letter-spacing:.05em}.modal-image{width:100%;height:350px;overflow:hidden;background:var(--c2)}.modal-image img{width:100%;height:100%;object-fit:cover;margin:0}.modal-body{padding:24px;display:flex;flex-direction:column;gap:24px}.modal-section{display:flex;flex-direction:column;gap:12px}.modal-section-title{margin:0;font-size:11px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-family:var(--mono)}.modal-text{margin:0;font-size:13px;color:var(--c6);line-height:1.7}.modal-text strong{color:var(--c8);font-weight:600}.modal-tags{display:flex;flex-wrap:wrap;gap:8px}.modal-tag{font-size:11px;padding:6px 12px;border-radius:4px;background:#7c6dfa1f;color:var(--accent);border:1px solid rgba(124,109,250,.3);font-weight:500;letter-spacing:.05em;text-transform:uppercase;font-family:var(--mono);transition:all .15s ease}.modal-tag:hover{background:#7c6dfa33;border-color:#7c6dfa80}.modal-footer{padding:16px 24px 24px;border-top:1px solid var(--c3)}.modal-cta{display:flex;align-items:center;justify-content:center;width:100%;padding:12px 16px;background:var(--accent);color:var(--c1);text-decoration:none;border-radius:4px;font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;transition:all .2s ease;border:none;cursor:pointer}.modal-cta:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px #0003}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:var(--c2)}.modal-content::-webkit-scrollbar-thumb{background:var(--c4);border-radius:4px}.modal-content::-webkit-scrollbar-thumb:hover{background:var(--c5)}@media(max-width:640px){.modal-content{border-radius:0;max-height:100vh}.modal-header{padding:16px}.modal-title{font-size:20px}.modal-image{height:250px}.modal-body{padding:16px;gap:16px}.modal-footer{padding:12px 16px 16px}}:root{--c0: #0a0a0b;--c1: #111113;--c2: #1a1a1f;--c3: #252530;--c4: #3a3a4a;--c5: #5e5e72;--c6: #9898b0;--c7: #c8c8e0;--c8: #eeeef8;--accent: #7c6dfa;--accent2: #3ddeb0;--accent3: #fa6d9c;--mono: "JetBrains Mono", monospace;--display: "Plus Jakarta Sans", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--c0);color:var(--c8);font-family:var(--mono);min-height:100vh}.app-container{max-width:1400px;margin:0 auto;background:var(--c1);min-height:100vh}.topbar{border-bottom:1px solid var(--c3);padding:14px 32px;display:flex;align-items:center;justify-content:space-between;background:var(--c1);position:sticky;top:0;z-index:10}.topbar-left{display:flex;align-items:center;gap:20px}.back-link{font-family:var(--mono);font-size:11px;color:var(--c5);background:none;border:1px solid var(--c3);padding:5px 12px;border-radius:4px;text-decoration:none;letter-spacing:.08em;transition:color .15s,border-color .15s}.back-link:hover{color:var(--c7);border-color:var(--c5)}.breadcrumb{font-size:11px;color:var(--c5);letter-spacing:.08em}.breadcrumb span{color:var(--accent)}.topbar-status{font-size:11px;color:var(--c5);letter-spacing:.05em}.topbar-status b{color:var(--accent2);font-weight:500}.app-header{padding:15px 20px;border-bottom:1px solid var(--c3);display:grid;grid-template-columns:1fr auto;gap:24px;align-items:end}.header-eyebrow{font-size:10px;letter-spacing:.2em;color:var(--accent);text-transform:uppercase;margin-bottom:10px;font-family:var(--mono)}.app-title{font-family:var(--display);font-size:30px;font-weight:800;color:var(--c8);line-height:1.05;letter-spacing:-.02em}.app-title span{color:var(--accent)}.app-subtitle{margin-top:10px;font-size:13px;color:var(--c5);font-family:var(--mono);letter-spacing:.03em}.header-stat{text-align:right}.stat-num{font-family:var(--display);font-size:56px;font-weight:800;color:var(--c3);line-height:1;letter-spacing:-.03em;transition:color .3s}.stat-num.loaded{color:var(--c8)}.stat-label{font-size:10px;letter-spacing:.15em;color:var(--c5);text-transform:uppercase;margin-top:4px}.controls{padding:20px 32px;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--c3);flex-wrap:wrap}.search-wrap{position:relative;flex:1;min-width:200px;max-width:380px}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--c5);pointer-events:none;line-height:1}.search-input{width:100%;background:var(--c2);border:1px solid var(--c3);color:var(--c8);font-family:var(--mono);font-size:12px;padding:9px 12px 9px 36px;border-radius:6px;outline:none;transition:border-color .15s;letter-spacing:.03em}.search-input::placeholder{color:var(--c5)}.search-input:focus{border-color:var(--accent)}.sort-group{display:flex;gap:4px;background:var(--c2);border:1px solid var(--c3);border-radius:6px;padding:3px}.sort-btn{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:none;border:none;color:var(--c5);padding:5px 12px;border-radius:4px;cursor:pointer;transition:color .15s,background .15s;display:flex;align-items:center;gap:4px}.sort-btn:hover{color:var(--c7);background:var(--c3)}.sort-btn.active{background:var(--accent);color:#fff}.reload-btn{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;background:none;border:1px solid var(--c3);color:var(--c6);padding:8px 16px;border-radius:6px;cursor:pointer;transition:border-color .15s,color .15s}.reload-btn:hover{border-color:var(--accent2);color:var(--accent2)}.filter-info{padding:12px 32px;font-size:11px;color:var(--c5);border-bottom:1px solid var(--c3);letter-spacing:.05em;display:flex;align-items:center;gap:10px}.filter-clear{background:var(--c2);border:1px solid var(--c3);border-radius:3px;padding:2px 8px;color:var(--c6);font-size:10px;font-family:var(--mono);cursor:pointer;transition:border-color .1s,color .1s}.filter-clear:hover{border-color:var(--c5);color:var(--c7)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1px;background:var(--c3);border-top:1px solid var(--c3)}.loading-message{padding:60px 32px;text-align:center;font-size:11px;color:var(--c5);letter-spacing:.15em;text-transform:uppercase;border-top:1px solid var(--c3);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.error-message{padding:40px 32px;font-size:12px;color:var(--accent3);letter-spacing:.05em;border-top:1px solid var(--c3);text-align:center}.no-projects{grid-column:1 / -1;padding:80px 32px;text-align:center;font-size:12px;color:var(--c5);letter-spacing:.05em}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--c1)}::-webkit-scrollbar-thumb{background:var(--c4);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--c5)}
