.app{display:flex;flex-direction:column;min-height:100vh;background-color:var(--background-color);color:var(--text-primary)}main{flex:1;max-width:1000px;width:100%;margin:0 auto;padding:20px;box-sizing:border-box}@media (max-width: 768px){main{padding:16px}}@media (max-width: 480px){main{padding:12px 8px}}.header{position:sticky;top:0;width:100%;background-color:var(--surface-color);padding:16px 24px;box-shadow:0 2px 4px #0000001a;z-index:100}.header-container{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo h1{font-size:1.5rem;margin:0;color:var(--text-primary)}.logo a{text-decoration:none;color:inherit}.search-bar-container{flex:1;max-width:500px;margin:0 20px;position:relative}.search-bar{display:flex;align-items:center;position:relative;width:100%}.search-bar input{flex:1;padding:10px 44px 10px 16px;border-radius:999px;border:1px solid var(--border-color);font-size:.9rem;transition:all .2s ease;background-color:var(--surface-color);color:var(--text-primary);width:100%;margin-bottom:0}.search-bar input:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #1976d233;outline:none}.search-button{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary);font-size:1rem;padding:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s ease}.search-button:hover{background-color:var(--primary-light);color:var(--primary-color)}.search-suggestions{position:absolute;top:calc(100% + 8px);left:0;right:0;background-color:var(--surface-color);border-radius:12px;box-shadow:0 4px 12px #00000026;z-index:100;overflow:hidden;border:1px solid var(--border-color)}.suggestion-item{display:flex;align-items:center;padding:12px 16px;cursor:pointer;transition:background-color .2s ease}.suggestion-item:not(:last-child){border-bottom:1px solid var(--border-color)}.suggestion-item:hover{background-color:var(--primary-light)}.suggestion-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background-color:var(--primary-light);color:var(--primary-color);border-radius:50%;margin-right:12px;flex-shrink:0}.suggestion-content{flex:1;overflow:hidden}.suggestion-title{font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.suggestion-type{font-size:.8rem;color:var(--text-secondary)}.header-right{display:flex;align-items:center;gap:16px}.nav{display:flex;align-items:center}.submit-button{font-weight:500;display:flex;align-items:center}.auth-section{display:flex;align-items:center}.login-button{background-color:transparent;color:var(--primary-color);border:1px solid var(--primary-color);padding:8px 16px;border-radius:999px;font-weight:500;cursor:pointer;transition:background-color .2s ease;display:flex;align-items:center}.login-button:hover{background-color:var(--primary-light)}@media (max-width: 768px){.header-container{flex-direction:column;gap:1rem}.search-bar-container{width:100%;max-width:100%;margin:10px 0;order:3}.header-right{width:100%;justify-content:space-between}}@media (max-width: 480px){.auth-section{gap:8px}.login-button{padding:6px 12px;font-size:.9rem}}.user-menu-container{position:relative}.user-avatar-button{background:none;border:none;cursor:pointer;padding:0;width:40px;height:40px;border-radius:50%;overflow:hidden;border:2px solid transparent;transition:border-color .2s}.user-avatar-button:hover{border-color:var(--primary-color)}.user-avatar{width:100%;height:100%;object-fit:cover}.user-menu{position:absolute;top:100%;right:0;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000001a;min-width:200px;z-index:1000;margin-top:8px;padding:8px 0}.user-info{padding:16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border-color)}.user-avatar-large{width:48px;height:48px;border-radius:50%}.user-details{display:flex;flex-direction:column}.user-name{font-weight:600;color:var(--text-primary);margin:0}.user-email{font-size:.875rem;color:var(--text-secondary);margin:0}.menu-divider{height:1px;background-color:var(--border-color);margin:8px 0}.menu-item{display:flex;align-items:center;gap:8px;padding:12px 16px;color:var(--text-primary);text-decoration:none;transition:background-color .2s;cursor:pointer;border:none;background:none;width:100%;text-align:left;font:inherit}.menu-item:hover{background-color:var(--primary-light)}.menu-item svg{width:16px;height:16px;color:var(--text-secondary)}.menu-item.logout{color:var(--error-color)}.menu-item.logout svg{color:var(--error-color)}body.dark-theme .user-menu{background-color:var(--surface-color);border-color:var(--border-color);box-shadow:0 4px 12px #0003}body.dark-theme .menu-item:hover{background-color:#ffffff1a}.modal h2{margin-top:0;color:var(--text-primary);font-size:1.5rem;margin-bottom:12px}.modal p{color:var(--text-secondary);margin-bottom:24px}.oauth-btn{margin:12px 0}.oauth-btn span{font-weight:500}.modal-background{position:fixed;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1000}.login-modal{background:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px;position:relative;animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.login-modal h2{text-align:center;margin-bottom:2rem;color:#333;font-size:1.5rem}.close-button{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:.5rem;display:flex;align-items:center;justify-content:center;transition:color .2s}.close-button:hover{color:#333}.error-message{background-color:#ffe6e6;color:#d00;padding:12px;border-radius:4px;margin-bottom:1rem;font-size:.9rem;text-align:center}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500}.form-group input{width:100%;padding:10px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;background-color:var(--input-bg);color:var(--text-color)}.form-group input:focus{border-color:var(--primary-color);outline:none}.full-width{width:100%}.auth-divider{display:flex;align-items:center;margin:1.5rem 0;color:var(--text-muted)}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}.auth-divider span{padding:0 10px;text-transform:uppercase;font-size:.8rem;letter-spacing:1px}.social-login{display:flex;flex-direction:column;gap:1rem}.btn{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem 1rem;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:all .2s;width:100%;color:#fff}.btn:disabled{opacity:.7;cursor:not-allowed}.btn.github{background-color:#24292e}.btn.github:hover{background-color:#1a1e22}.btn.google{background-color:#4285f4}.btn.google:hover{background-color:#3367d6}.btn svg{font-size:1.25rem}.toggle-form{text-align:center;margin-top:1rem;font-size:.9rem}.toggle-form button{background:none;border:none;padding:0;color:var(--primary-color);cursor:pointer;font-weight:500}.toggle-form button:hover{text-decoration:underline}.theme-toggle{background:#0000001a;border:none;cursor:pointer;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;font-size:1.2rem;transition:all .2s ease;margin-right:10px}.dark-theme .theme-toggle{background:#ffffff1a}.theme-toggle:hover{background-color:var(--primary-light);transform:scale(1.05)}.sun-icon,.moon-icon{display:flex;align-items:center;justify-content:center;color:#f39c12}.moon-icon{color:#3498db}.dark-theme .sun-icon{color:#f1c40f}.dark-theme .moon-icon{color:#2980b9}@media (max-width: 768px){.theme-toggle{width:36px;height:36px;font-size:1rem}}.home-page{min-height:100%}.hero{background:linear-gradient(135deg,var(--primary-color) 0%,#1565c0 100%);color:#fff;text-align:center;padding:4rem 1rem;margin-bottom:2rem}.hero-content{max-width:800px;margin:0 auto}.hero h1{font-size:2.5rem;margin-bottom:1rem}.subtitle{font-size:1.2rem;margin-bottom:2rem;opacity:.9}.hero-buttons{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.hero .btn.primary{background-color:#fff;color:var(--primary-color)}.hero .btn.secondary{background-color:transparent;color:#fff;border:2px solid white;text-decoration:none}.container{max-width:680px;margin:0 auto;padding:0 16px}.projects-container{padding:1rem 0 2rem;background:var(--card-bg);border-radius:8px;box-shadow:var(--card-shadow);border:1px solid var(--border-color)}.project-section-header{margin:0 0 8px;display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--border-color)}.project-section-header h2{font-size:1.2rem;font-weight:600;color:var(--text-primary)}.sort-tabs{display:flex;gap:.5rem}.sort-tabs button{background:none;border:none;font-size:.8rem;color:var(--text-secondary);cursor:pointer;padding:.3rem .6rem;border-radius:4px;transition:all .2s ease}.sort-tabs button.active{color:var(--primary-color);font-weight:600;background-color:var(--primary-light)}.sort-tabs button:hover:not(.active){background-color:var(--surface-color-hover)}.date-separator{margin:1.25rem 0 .5rem;padding-bottom:.25rem}.date-separator h3{font-size:.9rem;color:var(--text-secondary);font-weight:500}.date-separator+.project-card{margin-top:.25rem}@media (max-width: 768px){.hero{padding:2.5rem 1rem}.hero h1{font-size:2rem}.subtitle{font-size:1rem}.project-section-header{margin:.75rem 0}.project-section-header h2{font-size:1.2rem}.date-separator{margin:1rem 0 .25rem}.date-separator h3{font-size:.85rem}.sort-tabs{width:100%;justify-content:flex-start;margin:.5rem 0}}@media (max-width: 480px){.hero{padding:2rem 1rem;margin-bottom:1rem}.hero h1{font-size:1.7rem}.subtitle{font-size:.9rem;margin-bottom:1.5rem}.hero-buttons{flex-direction:column;width:100%;max-width:250px;margin:0 auto}.hero-buttons .btn{width:100%;text-align:center}.container{padding:0 .7rem}.project-section-header{margin:.5rem 0}.project-section-header h2{font-size:1.1rem}.date-separator{margin:.75rem 0 .25rem}.date-separator h3{font-size:.8rem}.projects-container{padding:.5rem 0 2rem}}.features{padding:2rem 0}.features h2{text-align:center;margin-bottom:2rem;font-size:2rem}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.feature-card{background-color:var(--card-bg);padding:1.5rem;border-radius:8px;box-shadow:var(--card-shadow);transition:transform .3s ease,box-shadow .3s ease}.feature-card:hover{transform:translateY(-5px);box-shadow:0 10px 20px #0000001a}.feature-card h3{margin-bottom:1rem;color:var(--primary-color)}.project-card{position:relative;overflow:hidden;background:var(--card-bg);transition:background-color .2s ease-in-out;border-radius:12px;padding:16px 0;cursor:pointer}.project-card:hover{background-color:var(--surface-color-hover)}.project-card .card-content{display:flex;flex-direction:row;align-items:flex-start;gap:16px;height:100%}.project-card-content{flex:1;display:flex;flex-direction:column;min-width:0}.project-card-info{flex:1}.project-card-info .title-link{text-decoration:none;color:var(--text-primary)}.project-card-info h3{margin:0 0 4px;font-size:16px;color:var(--text-primary);font-weight:600;display:flex;align-items:center}.project-card-info .project-index{font-weight:600}.project-card-info h3:hover{color:var(--primary-color)}.project-card-info p{margin:0 0 8px;font-size:14px;color:var(--text-secondary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.tag-section{display:flex;flex-wrap:wrap;align-items:center;margin-top:4px;font-size:12px;color:var(--text-secondary)}.tag-icon{margin-right:6px;font-size:10px;color:var(--text-secondary)}.tag{color:var(--text-secondary);font-size:12px}.tag-separator{margin:0 4px;opacity:.5;font-size:10px;position:relative;top:-1px}.action-buttons{display:flex;flex-direction:column;gap:8px;margin-left:auto;margin-right:8px}.comment-button,.upvote-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:48px;height:48px;border-radius:12px;border:2px solid var(--border-color);background:var(--card-bg);cursor:pointer;transition:all .2s ease;position:relative;z-index:1}.comment-button:hover,.upvote-button:hover{border-color:var(--primary-color)}.comment-button svg{font-size:14px;color:var(--text-secondary)}.upvote-button svg{color:var(--primary-color);fill:currentColor;stroke:none;font-size:18px}.comment-button span,.upvote-button span{font-size:14px;font-weight:600;color:var(--text-secondary)}.upvote-button span{color:var(--primary-color)}.upvote-button.upvoted{border-color:var(--primary-color);background-color:var(--primary-light)}.upvote-button.upvoted svg{color:var(--primary-color);fill:var(--primary-color);transform:scale(1.1)}.state-badge{position:absolute;top:8px;right:8px;padding:2px 6px;border-radius:4px;font-size:.7rem;font-weight:500;text-transform:uppercase;z-index:1;letter-spacing:.5px}.state-badge.draft{background-color:var(--draft-badge-bg);color:var(--draft-badge-text)}.state-badge.archived{background-color:var(--archived-badge-bg);color:var(--archived-badge-text)}@media (max-width: 768px){.project-card .card-content{gap:12px}.comment-button,.upvote-button{width:40px;height:40px}.comment-button svg{font-size:13px}.upvote-button svg{font-size:15px}.project-card-info h3{font-size:15px}.project-card-info p{font-size:13px}.tag-section{font-size:11px}}@media (max-width: 480px){.project-card{padding:12px 0}.project-card .card-content{gap:10px}.comment-button,.upvote-button{width:36px;height:36px}.comment-button svg{font-size:12px}.upvote-button svg{font-size:14px}.comment-button span,.upvote-button span{font-size:12px}.project-card-info h3{font-size:14px}.project-card-info p{font-size:12px}.tag-section{font-size:10px}}.project-card-logo,.project-card-logo img,.project-card-logo .project-logo-initial{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;max-width:48px!important;max-height:48px!important}.project-logo-container{display:block;border-radius:8px;overflow:hidden;text-decoration:none;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;max-width:48px!important;max-height:48px!important;flex-shrink:0;margin-left:8px}.project-logo-img{width:100%!important;height:100%!important;object-fit:contain;background-color:#f9f9f9}.project-logo-initial{width:100%!important;height:100%!important;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:18px;text-transform:uppercase;transition:transform .2s ease}.project-logo-container:hover .project-logo-initial{transform:scale(1.05)}.project-logo-container:hover .project-logo-img{transform:scale(1.05);transition:transform .2s ease}.search-page{padding:2rem 0}.search-header{margin-bottom:2rem}.search-header h1{font-size:2rem;margin-bottom:.5rem;color:var(--text-primary)}.search-query{font-size:1.1rem;color:var(--text-secondary)}.query-text{font-weight:600;color:var(--primary-color)}.section-title{font-size:1.5rem;margin:1.5rem 0 1rem;color:var(--text-primary);position:relative;padding-bottom:.5rem}.section-title:after{content:"";position:absolute;bottom:0;left:0;width:60px;height:4px;background-color:var(--primary-color);border-radius:2px}.authors-section{margin-bottom:2rem}.author-results{display:flex;flex-wrap:wrap;gap:16px}.author-card{background-color:var(--surface-color);border-radius:12px;box-shadow:0 2px 6px #0000000d;padding:16px;display:flex;align-items:center;max-width:100%;width:calc(33.33% - 12px);min-width:250px;transition:transform .3s ease,box-shadow .3s ease;text-decoration:none;color:var(--text-primary);border-left:3px solid var(--primary-color)}.author-card:hover{transform:translateY(-5px);box-shadow:0 8px 16px #0000001a}.author-avatar{width:60px;height:60px;margin-right:16px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid var(--primary-light)}.author-avatar img{width:100%;height:100%;object-fit:cover}.author-info{flex:1}.author-info h3{font-size:1.1rem;margin:0 0 6px;color:var(--text-primary)}.author-type{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.9rem}.author-type svg{color:var(--primary-color)}.search-results{display:flex;flex-direction:column;gap:24px}.project-result-container{display:flex;flex-direction:column;gap:8px}.matching-tags{display:flex;align-items:center;padding:8px 16px;background-color:var(--primary-light);border-radius:8px 8px 0 0;color:var(--primary-color);font-size:.9rem;border-left:3px solid var(--primary-color)}.tag-icon{margin-right:8px;flex-shrink:0}.tag-matches{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.highlighted-tag{font-weight:600;background-color:#1976d21a;padding:2px 6px;border-radius:4px}.no-results{text-align:center;padding:3rem 0;color:var(--text-secondary);background-color:var(--surface-color);border-radius:16px;box-shadow:0 2px 6px #0000000d;margin:2rem 0;padding:3rem}.no-results h3{font-size:1.5rem;margin-bottom:1rem;color:var(--text-primary)}.loading-results{display:flex;flex-direction:column;gap:24px}.skeleton-loader{height:200px;background:linear-gradient(90deg,var(--border-color) 25%,var(--background-color) 50%,var(--border-color) 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:16px}@media (max-width: 768px){.search-header h1{font-size:1.75rem}.search-query{font-size:1rem}.author-card{width:calc(50% - 8px)}.no-results{padding:2rem}}@media (max-width: 480px){.search-header h1{font-size:1.5rem}.search-query{font-size:.9rem}.author-card{width:100%}.section-title{font-size:1.3rem}.no-results h3{font-size:1.2rem}}/*!
  Theme: GitHub
  Description: Light theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-light
  Current colors taken from GitHub's CSS
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.project-detail-page{padding:2rem 0}.cover-image{width:100%;height:auto;max-height:500px;object-fit:cover;border-radius:16px;margin-bottom:1.5rem}.upvote-button.large{padding:.5rem 1rem;font-size:1.1rem;background-color:var(--primary-light);color:var(--primary-color);border:none;border-radius:999px;cursor:pointer;transition:background-color .2s ease,transform .1s ease}.upvote-button.large:hover:not(:disabled){background-color:#d0e3f8;transform:scale(1.05)}.upvote-button.large:active{transform:scale(.95)}.upvote-button.large:disabled{opacity:.5;cursor:not-allowed;background-color:#f0f0f0;color:#999;transform:none}.upvote-button.large.upvoted{background-color:var(--primary-color);color:#fff;cursor:default;transform:scale(1.05);box-shadow:0 3px 10px #06c6;font-weight:700}.upvote-button.large.upvoted:disabled{opacity:1;background-color:var(--primary-color);color:#fff;cursor:default;transform:scale(1.05);box-shadow:0 3px 10px #06c6;font-weight:700}.upvote-button.large.upvoted .upvote-icon{transform:scale(1.2);margin-right:.6rem;display:inline-block}.upvote-button.large.upvoted:disabled .upvote-icon{transform:scale(1.2);margin-right:.6rem;display:inline-block}.upvote-button.large.upvoted:hover{background-color:var(--primary-color);transform:scale(1.05);box-shadow:0 3px 10px #06c6}.upvote-icon{margin-right:.5rem}.project-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.owner-info{margin-right:1.5rem}.owner-link{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--text-primary)}.owner-link:hover{text-decoration:underline}.owner-link .avatar{width:32px;height:32px;border-radius:50%}.tags-container,.tech-stack{display:flex;flex-wrap:wrap;gap:.5rem}.tech{display:inline-block;background-color:var(--secondary-color);color:#fff;font-size:.875rem;padding:5px 10px;border-radius:15px;margin-right:8px;margin-bottom:8px}.markdown-section{margin:2rem 0}.markdown-header{display:flex;align-items:center;margin-bottom:.75rem}.markdown-header h3{font-size:1.4rem;color:var(--text-primary);margin:0;position:relative;padding-left:1rem}.markdown-header h3:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background-color:var(--primary-color);border-radius:2px}.markdown-container{border:1px solid var(--border-color);border-radius:8px;padding:2rem;background-color:var(--surface-color);box-shadow:0 2px 4px #0000000d;transition:all .3s ease;position:relative;overflow:hidden}.markdown-container:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(to right,var(--primary-color),var(--secondary-color, #66a3ff))}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin-top:1.5em;margin-bottom:.75em;color:var(--text-primary);position:relative}.markdown-content blockquote{border-left:4px solid var(--primary-color);padding:.8em 1em;margin:1em 0;background-color:#00000008;border-radius:0 4px 4px 0;color:var(--text-secondary)}.markdown-content a{color:var(--primary-color);text-decoration:none;transition:color .2s}.markdown-content a:hover{text-decoration:underline;color:var(--primary-color-dark)}.markdown-content img{max-width:100%;border-radius:6px;margin:1em 0;box-shadow:0 2px 8px #0000001a}.markdown-content table{border-collapse:collapse;width:100%;margin:1em 0;overflow-x:auto;display:block}.markdown-content table th{background-color:#0000000d;border:1px solid var(--border-color);padding:.5em 1em;text-align:left}.markdown-content table td{border:1px solid var(--border-color);padding:.5em 1em}.markdown-content table tr:nth-child(2n){background-color:#00000005}@media (prefers-color-scheme: dark){.markdown-header h3{color:var(--text-primary-dark, #e1e1e1)}.markdown-container{background-color:#1e1e1e99;border-color:var(--border-color-dark, #444);box-shadow:0 2px 8px #0003}.markdown-content blockquote{background-color:#ffffff0d}.markdown-content code{background-color:#ffffff1a}.markdown-content pre{background-color:#0000004d;border-color:var(--border-color-dark, #444)}.markdown-content table th{background-color:#ffffff0d}.markdown-content table tr:nth-child(2n){background-color:#ffffff05}}@media (max-width: 768px){.markdown-section{margin:1.5rem 0}.markdown-header h3{font-size:1.2rem}.markdown-container{padding:1rem}.markdown-content{font-size:.95rem}.markdown-content h1{font-size:1.6rem}.markdown-content h2{font-size:1.3rem}}.project-links{display:flex;flex-direction:column;gap:.75rem;margin-bottom:3rem}.project-links .link-item{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:var(--text-primary);transition:transform .2s ease;padding:.5rem;border-radius:8px}.project-links .link-item:hover{transform:translate(4px);background-color:var(--surface-color)}.project-links .link-item .icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;color:#fff}.project-links .link-item.demo .icon{background-color:var(--primary-color)}.project-links .link-item.github .icon{background-color:#24292e}.project-links .link-item.video .icon{background-color:red}.project-links .link-item.play-store .icon{background-color:#01c853}.project-links .link-item.app-store .icon{background-color:#0d96f6}.project-links .link-item .link-text{display:flex;flex-direction:column}.project-links .link-item .link-label{font-weight:500;font-size:.9rem;color:var(--text-secondary)}.project-links .link-item .link-url{font-size:.85rem;color:var(--text-secondary);word-break:break-all}.project-links .action-buttons{display:flex;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.project-links .action-buttons button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-radius:999px;font-size:.95rem;font-weight:500;transition:all .2s ease;border:none;cursor:pointer}.project-links .action-buttons .btn.secondary{background-color:var(--surface-color);color:var(--text-primary);border:1px solid var(--border-color)}.project-links .action-buttons .btn.secondary:hover{background-color:var(--background-color);transform:translateY(-2px)}.project-links .action-buttons .btn.danger{background-color:var(--error-color);color:#fff}.project-links .action-buttons .btn.danger:hover{background-color:var(--error-color-dark);transform:translateY(-2px)}@media (prefers-color-scheme: dark){.project-links .link-item:hover,.project-links .action-buttons .btn.secondary{background-color:#ffffff0d}.project-links .action-buttons .btn.secondary:hover{background-color:#ffffff1a}}@media (max-width: 768px){.project-links .action-buttons{flex-direction:column}.project-links .action-buttons button{width:100%;justify-content:center}}.comments-section{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.comments-section h3{margin-bottom:1rem;font-size:1.5rem}.comments-placeholder{color:var(--text-secondary);font-style:italic}.loading-skeleton{padding:1rem 0}.not-found{text-align:center;padding:3rem 0}.not-found p{margin-bottom:2rem;color:var(--text-secondary)}@media (max-width: 768px){.project-header{flex-direction:column}.upvote-button.large{margin-top:1rem;align-self:flex-start}.project-title-container h1{font-size:1.8rem}.project-links{flex-direction:column}.project-links a{width:100%;text-align:center}}.youtube-video-container{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;margin-bottom:2rem;border-radius:16px;box-shadow:0 6px 10px #00000026}.youtube-video-container iframe{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:16px}body.dark-theme .youtube-video-container{box-shadow:0 6px 10px #0000004d}@media (max-width: 768px){.youtube-video-container{margin-bottom:1.5rem;border-radius:12px}.youtube-video-container iframe{border-radius:12px}}.project-state-badge{display:inline-block;padding:.4rem .8rem;border-radius:16px;font-size:.85rem;font-weight:500;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.5px}.project-state-badge.draft{background-color:#fff3cd;color:#856404;border:1px solid #ffeeba}.project-state-badge.published{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.project-state-badge.archived{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.project-state-actions{margin-bottom:2rem;padding:1rem;background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:8px;display:flex;align-items:center;gap:1rem}.project-state-actions:before{content:"⚠️";font-size:1.25rem}.btn.danger{background-color:#dc3545;color:#fff}.btn.danger:hover{background-color:#c82333}@media (prefers-color-scheme: dark){.project-state-badge.draft{background-color:#fff3cd1a;color:#ffe69c;border-color:#7d6532}.project-state-badge.published{background-color:#d4edda1a;color:#9be7ad;border-color:#2b6d3a}.project-state-badge.archived{background-color:#f8d7da1a;color:#f5c6cb;border-color:#872a33}.project-state-actions{background-color:#0003}}@media (max-width: 768px){.project-state-badge{margin-bottom:.75rem;font-size:.75rem}.project-state-actions{flex-direction:column;align-items:flex-start;gap:.75rem}.project-state-actions .btn{width:100%}}.markdown-content .embed-responsive{position:relative;display:block;width:100%;padding:0;margin:1.5rem 0;overflow:hidden}.markdown-content .youtube-embed{padding-bottom:56.25%}.markdown-content .youtube-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;border-radius:8px;box-shadow:0 4px 8px #0000001a}.markdown-content .embed-error{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;background-color:#0000000d;border-radius:8px;border:1px dashed var(--border-color)}.markdown-content .embed-error p{padding:1rem;max-width:80%;margin:0}.markdown-content .embed-error a{font-weight:700;text-decoration:underline}.markdown-content .twitter-embed{margin:1.5rem 0;max-width:550px;border-radius:12px;overflow:hidden;min-height:200px;position:relative}.markdown-content .twitter-embed blockquote{margin:0;padding:0;border:none;background:none}.markdown-content .embed-loading{padding:2rem;text-align:center;font-style:italic;color:var(--text-secondary);background-color:#00000005;border-radius:8px;border:1px solid var(--border-color)}@media (prefers-color-scheme: dark){.markdown-content .youtube-embed iframe{box-shadow:0 4px 8px #0000004d}}@media (max-width: 768px){.markdown-content .embed-responsive{margin:1rem 0}.markdown-content .youtube-embed iframe{border-radius:6px}.markdown-content .twitter-embed{margin:1rem 0;width:100%}}.markdown-help{margin-top:1.5rem;padding:1rem;background-color:#00000008;border-radius:8px;border-left:4px solid var(--primary-color)}.markdown-help h4{font-size:1.1rem;margin-top:0;margin-bottom:.75rem;color:var(--text-primary)}.markdown-help p{margin-bottom:.75rem}.markdown-help ul{margin:0;padding-left:1.5rem}.markdown-help li{margin-bottom:.75rem}.markdown-help code{display:block;margin-top:.5rem;padding:.5rem;background-color:#0000000d;border-radius:4px;font-family:monospace;font-size:.9rem;white-space:nowrap;overflow:auto}@media (prefers-color-scheme: dark){.markdown-help{background-color:#ffffff0d}.markdown-help code{background-color:#0000004d}}.project-logo-container{width:100px;height:100px;border-radius:8px;overflow:hidden;background-color:#f9f9f9;margin-bottom:20px;display:flex;align-items:center;justify-content:center}.project-logo{width:100%;height:100%;object-fit:contain}@media (max-width: 768px){.project-logo-container{width:80px;height:80px;margin-bottom:16px}}@media (max-width: 480px){.project-logo-container{width:60px;height:60px;margin-bottom:12px}}.confirmation-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.confirmation-dialog{background-color:var(--surface-color);border-radius:8px;width:90%;max-width:450px;box-shadow:0 4px 24px #00000026;animation:dialog-appear .2s ease-out}@keyframes dialog-appear{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.confirmation-header{padding:18px 24px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:12px}.confirmation-header h3{margin:0;color:var(--text-primary);font-size:1.2rem;font-weight:600}.warning-icon{color:#f39c12;font-size:1.3rem}.confirmation-content{padding:24px;color:var(--text-secondary)}.confirmation-content p{margin:0;line-height:1.5}.confirmation-actions{padding:16px 24px;display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--border-color)}.cancel-button{background-color:transparent;border:1px solid var(--border-color);padding:8px 16px;border-radius:4px;cursor:pointer;color:var(--text-secondary);font-weight:500;transition:all .2s ease}.cancel-button:hover{background-color:var(--surface-hover)}.confirm-button{background-color:var(--primary-color);color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:500;transition:all .2s ease}.confirm-button:hover{background-color:var(--primary-dark)}@media (max-width: 480px){.confirmation-dialog{width:95%}.confirmation-header,.confirmation-content,.confirmation-actions{padding:16px 20px}}.submit-page{padding:2rem 0}.submit-page h1{margin-bottom:.5rem;font-size:2rem;color:var(--text-primary)}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.form-header-actions{display:flex;gap:.5rem;align-items:center}.preview-btn{font-size:.9rem;padding:.5rem 1rem}.text-btn{background:none;border:none;color:var(--text-secondary);padding:.5rem;border-radius:4px;font-size:.9rem;cursor:pointer;transition:color .2s ease,background-color .2s ease}.text-btn:hover{color:var(--primary-color);background-color:#1976d20d}.clear-form-btn{font-size:.85rem}.description{color:var(--text-secondary);margin-bottom:2rem}form{max-width:800px}.form-group{margin-bottom:1.5rem}label{display:block;font-weight:500;margin-bottom:.5rem;color:var(--text-primary)}input,textarea{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;background-color:var(--surface-color);color:var(--text-primary)}input:focus,textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #1976d233}.markdown-hint{display:flex;justify-content:flex-end;font-size:.85rem;margin-top:.5rem;color:var(--text-secondary)}.markdown-hint a{margin-left:.5rem;color:var(--primary-color);font-weight:500;text-decoration:none;transition:color .2s}.markdown-hint a:hover{text-decoration:underline;color:var(--primary-color-dark)}.image-upload-container{width:100%}.image-upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed var(--border-color);border-radius:12px;padding:2rem;cursor:pointer;transition:background-color .2s ease,border-color .2s ease;background-color:var(--surface-color);min-height:200px}.image-upload-placeholder:hover{background-color:#1976d20d;border-color:var(--primary-color)}.upload-icon{font-size:2rem;margin-bottom:1rem;color:var(--text-secondary)}.file-hint{font-size:.85rem;color:var(--text-secondary);margin-top:.5rem}.image-preview{position:relative;margin-top:.5rem;max-width:100%;border-radius:12px;overflow:hidden;box-shadow:0 4px 6px #0000001a}.image-preview img{width:100%;max-height:300px;object-fit:cover;display:block}.remove-image-btn{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;background-color:#00000080;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease}.remove-image-btn:hover{background-color:#000000b3}h3{margin:2rem 0 1rem;font-size:1.25rem;color:var(--text-primary)}.form-actions{margin-top:2rem}.form-actions .btn{padding:.75rem 2rem;position:relative;overflow:hidden}.progress-bar{position:absolute;bottom:0;left:0;height:4px;width:100%;background-color:#fff3}.progress{height:100%;background-color:#fff;transition:width .3s ease}.youtube-preview-container{position:relative;margin-top:1rem;border-radius:8px;overflow:hidden;box-shadow:0 4px 8px #0000001a}.youtube-preview-container iframe{border-radius:8px;display:block}.video-preview{margin-top:1rem;padding:1rem;background-color:var(--surface-color);border-radius:8px;border:1px solid var(--border-color)}.video-preview p{margin:0 0 .5rem;color:var(--text-secondary);font-size:.9rem}.invalid-url{border-color:#f44336!important;box-shadow:0 0 0 1px #f4433633}.form-error{color:#f44336;font-size:.85rem;margin-top:.5rem}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.back-to-edit-btn{font-size:.9rem;padding:.5rem 1rem}.project-preview{max-width:900px;margin:0 auto}.preview-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border-color)}.preview-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin:2rem 0}.placeholder-tag{opacity:.5}.placeholder-content{color:var(--text-secondary);font-style:italic;padding:1rem;border:1px dashed var(--border-color);border-radius:8px;background-color:var(--surface-color)}.cover-image{width:100%;max-height:500px;object-fit:cover;border-radius:16px;margin-bottom:1.5rem}.project-hero{margin-bottom:2rem}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.project-title-container{flex:1}.project-title-container h1{font-size:2.5rem;margin-bottom:.5rem;color:var(--text-primary)}.short-description{font-size:1.2rem;color:var(--text-secondary)}.project-body{margin-bottom:2rem;line-height:1.7}.markdown-content{color:var(--text-primary);font-size:1rem;line-height:1.7}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{margin-top:1.5em;margin-bottom:.75em;color:var(--text-primary)}.markdown-content h1{font-size:2rem;border-bottom:1px solid var(--border-color);padding-bottom:.3em}.markdown-content h2{font-size:1.5rem;border-bottom:1px solid var(--border-color);padding-bottom:.3em}.markdown-content h3{font-size:1.3rem}.markdown-content p{margin:.8em 0}.markdown-content ul,.markdown-content ol{margin:1em 0;padding-left:2em}.markdown-content li{margin:.4em 0}.markdown-content blockquote{border-left:4px solid var(--primary-color);padding-left:1em;margin-left:0;color:var(--text-secondary)}.markdown-content code{font-family:monospace;background-color:#0000000d;padding:.2em .4em;border-radius:3px;font-size:.9em}.markdown-content pre{background-color:var(--background-color);border:1px solid var(--border-color);border-radius:6px;padding:1em;overflow-x:auto;margin:1em 0}.markdown-content pre code{background-color:transparent;padding:0;font-size:.9em;color:var(--text-primary)}.markdown-content a{color:var(--primary-color);text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content img{max-width:100%;border-radius:6px;margin:1em 0}.markdown-content strong{font-weight:600}.project-links{display:flex;gap:1rem;margin-bottom:3rem;flex-wrap:wrap}.project-links a{text-decoration:none}@media (prefers-color-scheme: dark){.video-preview{background-color:#ffffff0d}.youtube-preview-container{box-shadow:0 4px 8px #0000004d}.placeholder-content{background-color:#ffffff0d;border-color:var(--border-color)}.markdown-content pre{background-color:#0003}.markdown-content code,.text-btn:hover{background-color:#ffffff1a}}@media (max-width: 768px){.form-header,.preview-header{flex-direction:column;gap:1rem;align-items:flex-start}.form-header-actions,.preview-btn,.back-to-edit-btn,.clear-form-btn{width:100%}.form-actions{position:sticky;bottom:1rem;background-color:var(--background-color);padding:1rem 0;margin:0 -1rem;text-align:center}.preview-actions{flex-direction:column;gap:.75rem}.image-upload-placeholder{padding:1.5rem;min-height:150px}.upload-icon{font-size:1.5rem}.project-title-container h1{font-size:1.8rem}.short-description{font-size:1rem}.markdown-content{font-size:.95rem}}.project-state{margin-top:2rem}.state-options{display:flex;flex-direction:column;gap:1rem}.state-option{display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s ease;position:relative;padding:1rem 1rem 1rem 2.5rem}.state-option:hover{background-color:#1976d20d;border-color:var(--primary-color)}.state-option input[type=radio]{position:absolute;left:1rem;top:1.3rem;width:auto;cursor:pointer}.state-label{font-weight:500;margin-bottom:.25rem;color:var(--text-primary)}.state-description{font-size:.85rem;color:var(--text-secondary)}.state-option input[type=radio]:checked+.state-label{color:var(--primary-color)}.state-option input[type=radio]:checked~.state-description{color:var(--primary-color-light)}.state-option input[type=radio]:checked~.state-option{border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color)}.full-description-textarea{min-height:300px;font-family:Consolas,Monaco,Courier New,monospace;line-height:1.6;resize:vertical;transition:border-color .3s,box-shadow .3s}.full-description-textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.2)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 0}.loader{border:4px solid var(--border-color);border-top:4px solid var(--primary-color);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.state-option-archive{border-color:var(--error-color)}.state-option-archive:hover{background-color:#f443360d;border-color:var(--error-color)}.state-option-archive input[type=radio]:checked+.state-label{color:var(--error-color)}.state-option-archive input[type=radio]:checked~.state-description{color:var(--error-color)}.markdown-guide-link{margin-bottom:2rem;text-align:right}.markdown-guide-link a{color:var(--color-primary);text-decoration:none;font-size:.9rem;display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:.5rem;background-color:var(--color-background-alt);transition:all .2s ease}.markdown-guide-link a:hover{background-color:var(--color-background-hover);transform:translateY(-1px)}.logo-upload-container{border:2px dashed #ccc;border-radius:8px;padding:15px;margin-bottom:15px;text-align:center;cursor:pointer;background-color:#f9f9f9;transition:all .3s ease}.logo-upload-container:hover{border-color:#007bff;background-color:#f0f8ff}.logo-upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.logo-preview{position:relative;max-width:150px;margin:0 auto}.logo-img{width:100%;max-width:150px;height:auto;max-height:150px;object-fit:contain;border-radius:4px;display:block}.remove-logo-btn{position:absolute;top:-10px;right:-10px;background:#ff4d4f;color:#fff;border:none;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;box-shadow:0 2px 5px #0003}.remove-logo-btn:hover{background:#ff7875}.project-preview{max-width:900px;margin:0 auto;padding:20px;background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #eee}.back-to-edit-btn{padding:8px 16px;font-size:.9rem}.preview-content{display:flex;flex-direction:column;gap:24px}.preview-hero{display:flex;flex-direction:column;gap:16px}.preview-cover-image{width:100%;height:auto;border-radius:8px;overflow:hidden}.preview-cover-image img{width:100%;height:auto;object-fit:cover;max-height:400px}.preview-header-content{display:flex;flex-direction:column;gap:8px}.preview-logo{width:100px;height:100px;border-radius:8px;overflow:hidden;margin-bottom:8px}.preview-logo img{width:100%;height:100%;object-fit:contain;background-color:#f9f9f9}.preview-title{font-size:1.8rem;font-weight:700;margin:0;color:var(--text-primary)}.preview-short-desc{font-size:1.1rem;color:var(--text-secondary);margin:0}.preview-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.preview-tag{background-color:var(--tag-bg);color:var(--tag-text);padding:4px 12px;border-radius:16px;font-size:.85rem;font-weight:500}.preview-video{margin:20px 0;width:100%;border-radius:8px;overflow:hidden;position:relative;padding-bottom:56.25%;height:0}.preview-video iframe{position:absolute;top:0;left:0;width:100%;height:100%}.preview-full-desc{line-height:1.6;color:var(--text-primary);font-size:1rem}.preview-full-desc h1,.preview-full-desc h2,.preview-full-desc h3{margin-top:1.5em;margin-bottom:.5em}.preview-full-desc p{margin:1em 0}.preview-full-desc a{color:var(--primary-color);text-decoration:none}.preview-full-desc a:hover{text-decoration:underline}.preview-full-desc img{max-width:100%;height:auto;border-radius:4px}.preview-full-desc code{background-color:#f5f5f5;padding:2px 4px;border-radius:4px;font-family:monospace;font-size:.9em}.preview-full-desc pre{background-color:#f5f5f5;padding:12px;border-radius:4px;overflow-x:auto}.preview-full-desc pre code{background-color:transparent;padding:0}.preview-links{display:flex;gap:16px;margin-top:16px}.preview-link{display:flex;align-items:center;gap:8px;padding:8px 16px;background-color:#f0f8ff;border-radius:4px;color:var(--primary-color);text-decoration:none;font-weight:500;transition:all .2s ease}.preview-link:hover{background-color:var(--primary-color);color:#fff}.preview-link.website{background-color:#e6f7ff;color:#0081cc}.preview-link.website:hover{background-color:#0081cc;color:#fff}.preview-link.github{background-color:#f0f0f0;color:#333}.preview-link.github:hover{background-color:#333;color:#fff}@media (min-width: 768px){.preview-hero{flex-direction:row;align-items:flex-start}.preview-cover-image{flex:2}.preview-header-content{flex:1;padding-left:24px}}.not-found-page{text-align:center;padding:4rem 1rem}.not-found-page h1{font-size:2rem;margin-bottom:1rem;color:var(--text-primary)}.not-found-page p{font-size:1.2rem;margin-bottom:2rem;color:var(--text-secondary)}.not-found-page .btn{display:inline-block;text-decoration:none}.footer{background-color:#263238;color:#fff;padding:2rem 0;margin-top:2rem}.footer-container{max-width:1200px;margin:0 auto;padding:0 1rem}.footer-content{display:flex;flex-wrap:wrap;gap:2rem;margin-bottom:2rem}.footer-section{flex:1;min-width:200px}.footer-section h3{margin-bottom:1rem;font-size:1.2rem;color:#e0e0e0}.footer-section p{color:#b0bec5;line-height:1.6}.footer-section ul{list-style:none;padding:0}.footer-section ul li{margin-bottom:.5rem}.footer-section a{color:#e0e0e0;text-decoration:none;transition:color .2s ease}.footer-section a:hover{color:#fff;text-decoration:underline}.footer-bottom{padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);text-align:center;font-size:.9rem;color:#b0bec5}@media (max-width: 768px){.footer-content{flex-direction:column;gap:1.5rem}}.profile-editor{margin-top:1rem;margin-bottom:2rem}.edit-profile-button{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--primary-color, #0066cc);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.edit-profile-button:hover{background-color:var(--primary-color-dark, #0055aa)}.profile-editor-form{margin-top:1rem;padding:1.5rem;background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 4px #0000000d}.profile-editor-form h3{margin-top:0;margin-bottom:1.5rem;color:var(--text-color, #333)}.profile-editor-form .form-group{margin-bottom:1rem}.profile-editor-form label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-color, #333)}.profile-editor-form input,.profile-editor-form textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s}.profile-editor-form input:focus,.profile-editor-form textarea:focus{outline:none;border-color:var(--primary-color, #0066cc)}.profile-editor-form textarea{resize:vertical;min-height:100px}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.form-actions button{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:all .2s}.form-actions button.secondary{background-color:#f1f1f1;color:#333}.form-actions button.secondary:hover{background-color:#e1e1e1}.form-actions button.primary{background-color:var(--primary-color, #0066cc);color:#fff}.form-actions button.primary:hover{background-color:var(--primary-color-dark, #0055aa)}.form-actions button:disabled{opacity:.7;cursor:not-allowed}.profile-editor-form .profile-image-upload{position:relative;width:120px;height:120px;margin:0 auto 2rem;cursor:pointer}.profile-editor-form .profile-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid var(--border-color)}.profile-editor-form .edit-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#00000080;color:#fff;display:flex;justify-content:center;align-items:center;border-radius:50%;opacity:0;transition:opacity .3s ease}.profile-editor-form .profile-image-upload:hover .edit-overlay{opacity:1}.user-profile-page{padding:2rem 0}.profile-header{display:flex;gap:2rem;margin-bottom:3rem}.profile-header .profile-avatar{width:120px;height:120px;border-radius:50%;margin-right:2rem;overflow:hidden;flex-shrink:0;border:4px solid var(--border-color-light);box-shadow:0 4px 12px #0000001a}.profile-header .avatar-image{width:100%;height:100%;object-fit:cover}.profile-header .profile-info{flex-grow:1}.profile-info h1{margin:0 0 .5rem;font-size:2rem}.profile-info .user-title,.profile-info .user-company{display:flex;align-items:center;gap:.5rem;margin:.5rem 0;color:#555}.profile-info .bio{margin:1rem 0;font-size:1.1rem;color:#444;line-height:1.6}.user-meta{display:flex;flex-wrap:wrap;gap:1.5rem;margin:1rem 0;color:#666;font-size:.95rem}.user-meta .location{display:flex;align-items:center;gap:.3rem}.social-links{display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0}.social-link{display:inline-flex;align-items:center;padding:.4rem .8rem;background-color:#f1f1f1;border-radius:20px;color:#333;font-size:.9rem;text-decoration:none;transition:background-color .2s}.social-link:hover{background-color:#e1e1e1}.projects-section{margin-top:2rem}.projects-section h2{margin-bottom:1.5rem}.project-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid #eee}.project-tabs button{padding:.8rem 1.2rem;background:none;border:none;border-bottom:3px solid transparent;color:#555;font-weight:500;cursor:pointer;transition:all .2s}.project-tabs button.active{color:var(--primary-color, #0066cc);border-bottom-color:var(--primary-color, #0066cc)}.project-tabs button:hover:not(.active){color:#333;border-bottom-color:#ddd}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem}.empty-projects{padding:3rem;text-align:center;background-color:#f9f9f9;border-radius:8px}.empty-projects p{margin-bottom:1.5rem;color:#666;font-size:1.1rem}.loading-skeleton{width:100%}.profile-header-skeleton{display:flex;gap:2rem;margin-bottom:2rem}.info-skeleton{flex:1}.projects-skeleton{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem;margin-top:2rem}.skeleton{background:linear-gradient(90deg,#0000000f 25%,#0000001a 37%,#0000000f 63%);background-size:400% 100%;animation:skeleton-loading 1.4s ease infinite}@keyframes skeleton-loading{0%{background-position:100% 50%}to{background-position:0 50%}}.not-found{text-align:center;padding:4rem 2rem}.not-found h1{font-size:2rem;margin-bottom:1rem}.not-found p{margin-bottom:2rem;color:#666}@media (max-width: 768px){.profile-header{flex-direction:column;align-items:center;text-align:center;gap:1.5rem}.profile-info{width:100%}.user-meta,.social-links{justify-content:center}.project-tabs{flex-wrap:wrap;justify-content:center}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.markdown-guide-page{padding:2rem 0;color:var(--text-primary)}.page-header{margin-bottom:2rem;text-align:center}.page-header h1{font-size:2.5rem;margin-bottom:1rem;color:var(--text-primary)}.page-header .intro{max-width:800px;margin:0 auto;color:var(--text-secondary);font-size:1.1rem;line-height:1.5}.playground-container{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2rem}.playground-editor,.playground-preview{border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;height:100%;display:flex;flex-direction:column;background-color:var(--surface-color)}.example-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.playground-editor h2,.playground-preview h2{margin-top:0;font-size:1.3rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.playground-preview .markdown-content{max-height:600px;overflow-y:auto;padding-right:1rem;flex-grow:1}.playground-preview .markdown-content iframe{max-width:100%;border:none}.copy-button{padding:.4rem .75rem;background-color:var(--background-color);color:var(--text-primary);border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;cursor:pointer;transition:all .2s}.copy-button:hover{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.markdown-editor{font-family:monospace;font-size:.9rem;line-height:1.5;padding:1rem;border:1px solid var(--border-color);border-radius:6px;background-color:var(--background-color);color:var(--text-primary);resize:none;flex-grow:1;min-height:600px}.markdown-editor:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.2)}.markdown-reference{margin-top:4rem;padding-top:2rem;border-top:1px solid var(--border-color)}.markdown-reference h2{text-align:center;margin-bottom:2rem;font-size:1.5rem;color:var(--text-primary)}.reference-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.reference-item{border:1px solid var(--border-color);border-radius:8px;padding:1rem;background-color:var(--surface-color)}.reference-item h3{margin-top:0;margin-bottom:.75rem;font-size:1.1rem;color:var(--primary-color)}.reference-item pre{margin:0;white-space:pre-wrap;font-family:monospace;font-size:.85rem;background-color:var(--background-color);color:var(--text-primary);padding:.75rem;border-radius:4px;border:1px solid var(--border-color)}.twitter-tweet{margin:0 auto}.dark-mode{--hljs-background: #1e1e1e;--hljs-color: #e0e0e0}.dark-mode .markdown-editor{background-color:#0000004d;color:var(--text-primary)}.dark-mode .reference-item pre{background-color:#0000004d;border-color:var(--border-color)}.dark-mode .copy-button{background-color:#0000004d;color:var(--text-primary)}.dark-mode .copy-button:hover{background-color:var(--primary-color);color:#fff}.dark-mode .reference-item{background-color:#1e1e1e99}.dark-mode .playground-editor,.dark-mode .playground-preview{background-color:#1e1e1e4d;border-color:var(--border-color)}.dark-mode .markdown-content a{color:var(--primary-color)}.dark-mode .markdown-content code{background-color:#0000004d;color:var(--text-primary);padding:.2em .4em;border-radius:3px}.dark-mode .markdown-content pre code{background-color:transparent;padding:0}.dark-mode .markdown-content blockquote{border-left:4px solid var(--border-color);padding-left:1rem;margin-left:0;color:var(--text-secondary)}.dark-mode .markdown-content table{border-collapse:collapse;width:100%}.dark-mode .markdown-content th,.dark-mode .markdown-content td{border:1px solid var(--border-color);padding:8px}.dark-mode .markdown-content tr:nth-child(2n){background-color:#0000001a}@media (prefers-color-scheme: dark){.markdown-editor{background-color:#0000004d;color:var(--text-primary)}.reference-item pre{background-color:#0000004d;border-color:var(--border-color)}.copy-button{background-color:#0000004d;color:var(--text-primary)}.copy-button:hover{background-color:var(--primary-color);color:#fff}.reference-item{background-color:#1e1e1e99}.playground-editor,.playground-preview{background-color:#1e1e1e4d;border-color:var(--border-color)}.markdown-content a{color:var(--primary-color)}.markdown-content code{background-color:#0000004d;color:var(--text-primary);padding:.2em .4em;border-radius:3px}.markdown-content pre code{background-color:transparent;padding:0}.markdown-content blockquote{border-left:4px solid var(--border-color);padding-left:1rem;margin-left:0;color:var(--text-secondary)}.markdown-content table{border-collapse:collapse;width:100%}.markdown-content th,.markdown-content td{border:1px solid var(--border-color);padding:8px}.markdown-content tr:nth-child(2n){background-color:#0000001a}}@media (max-width: 1024px){.playground-container{grid-template-columns:1fr}.playground-editor,.playground-preview{max-height:none}.markdown-editor,.playground-preview .markdown-content{max-height:400px}.reference-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media (max-width: 768px){.page-header h1{font-size:2rem}.page-header .intro{font-size:1rem}.markdown-editor,.playground-preview .markdown-content{max-height:300px}.reference-grid{grid-template-columns:1fr}.playground-preview .markdown-content iframe{max-width:100%;height:auto}}:root{--primary-color: #1e88e5;--primary-light: #e3f2fd;--secondary-color: #ff4081;--background-color: #f5f5f5;--card-bg: #ffffff;--surface-color: #ffffff;--text-primary: #344054;--text-secondary: #667085;--border-color: #E4E7EC;--tag-bg: #f5f5f5;--tag-text: #667085;--error-color: #e53935;--success-color: #43a047;--surface-color-hover: #f0f0f0;--card-shadow: 0 2px 4px rgba(0, 0, 0, .05);--draft-badge-bg: #fff3cd;--draft-badge-text: #856404;--archived-badge-bg: #f8d7da;--archived-badge-text: #721c24}body.dark-theme{--primary-color: #64b5f6;--primary-light: rgba(100, 181, 246, .15);--secondary-color: #ff80ab;--background-color: #121212;--card-bg: #1e1e1e;--surface-color: #1e1e1e;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--border-color: #333333;--tag-bg: #333333;--tag-text: #b0b0b0;--error-color: #ef5350;--success-color: #66bb6a;--surface-color-hover: #2c2c2c;--card-shadow: 0 2px 4px rgba(0, 0, 0, .2);--draft-badge-bg: rgba(255, 243, 205, .15);--draft-badge-text: #ffd54f;--archived-badge-bg: rgba(248, 215, 218, .15);--archived-badge-text: #e57373}body{background-color:var(--background-color);color:var(--text-primary);font-family:Inter,DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;margin:0;padding:0;line-height:1.6;font-size:16px}.btn{padding:10px 20px;border-radius:999px;cursor:pointer;font-weight:700;transition:background-color .2s ease,transform .1s ease;border:none;font-size:1rem}.btn.primary{background-color:var(--primary-color);color:#fff}.btn.primary:hover{background-color:#155a9c}.btn.secondary{background-color:transparent;color:var(--secondary-color);border:2px solid var(--secondary-color)}.btn.secondary:hover{background-color:#ff80ab1a}.btn:disabled{background-color:var(--border-color);color:var(--text-secondary);cursor:not-allowed}.card{background-color:var(--card-bg);border-radius:20px;box-shadow:var(--card-shadow);padding:20px;margin:16px 0;transition:box-shadow .2s ease,transform .2s ease}.card:hover{box-shadow:0 8px 12px #00000026;transform:translateY(-3px)}.project-card{display:flex;flex-direction:column;height:100%;transition:transform .3s ease,box-shadow .3s ease;position:relative;border-radius:20px;overflow:hidden;border-bottom:1px solid lightblue}.project-card:hover{transform:translateY(-5px);box-shadow:0 12px 24px #00000026}.project-card .cover-img{width:100%;height:240px;border-radius:12px;object-fit:cover;margin-bottom:16px;transition:transform .5s ease}.project-card:hover .cover-img{transform:scale(1.01)}.project-card h3{font-size:1.2rem;margin:8px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-card p{color:var(--text-secondary);margin:8px 0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.tag{display:inline-block;background-color:var(--primary-light);color:var(--primary-color);font-size:.875rem;padding:5px 10px;border-radius:15px;margin-right:8px;margin-bottom:8px}.upvote-button{display:inline-flex;align-items:center;background-color:var(--primary-light);color:var(--primary-color);border:none;border-radius:999px;padding:8px 12px;cursor:pointer;transition:transform .1s ease}.upvote-button:hover{background-color:#d0e3f8}.upvote-button:active{transform:scale(.95)}.container{max-width:1000px;margin:0 auto;padding:0 16px;width:100%;box-sizing:border-box}input,textarea{width:100%;padding:10px;border:1px solid var(--border-color);border-radius:8px;margin-bottom:12px;font-size:1rem;background-color:var(--surface-color);color:var(--text-primary)}input:focus,textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 3px #1976d280}.toast{position:fixed;bottom:16px;right:16px;background-color:var(--success-color);color:#fff;padding:12px 20px;border-radius:8px;box-shadow:0 4px 8px #0000001a;opacity:.95;transition:opacity .3s ease}.toast.error{background-color:var(--error-color)}.toast.hide{opacity:0;pointer-events:none}.sort-tabs{display:flex;gap:16px;margin:24px 0}.sort-tabs button{background:none;border:none;font-size:1rem;color:var(--text-secondary);cursor:pointer;padding:8px 16px;border-radius:16px;white-space:nowrap}.sort-tabs button.active{background-color:var(--primary-light);color:var(--primary-color);font-weight:700}.project-grid{display:flex;flex-direction:column;gap:0;margin:16px 0}.project-grid>div>.project-card{border-bottom:1px solid var(--border-color)}.empty-state{text-align:center;padding:48px 0;color:var(--text-secondary)}.empty-state h3{font-size:1.5rem;margin-bottom:16px}.skeleton{background:linear-gradient(90deg,var(--border-color) 25%,var(--card-bg) 50%,var(--border-color) 75%);background-size:200% 100%;animation:loading 1.5s infinite;border-radius:4px}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal{position:relative;width:90%;max-width:400px;background-color:var(--card-bg);border-radius:12px;box-shadow:var(--card-shadow);padding:24px}.modal .close-btn{position:absolute;top:12px;right:12px;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary)}.modal .oauth-btn{width:100%;padding:12px;margin:8px 0;border-radius:8px;border:none;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.modal .oauth-btn.google{background-color:#db4437;color:#fff}.modal .oauth-btn.github{background-color:#24292e;color:#fff}@media (max-width: 768px){.project-grid{gap:6px}.container{padding:0 16px;max-width:100%}.card{padding:16px}.modal{width:95%;padding:16px}.sort-tabs{gap:10px;margin:16px 0}.sort-tabs button{padding:6px 12px;font-size:.95rem}.btn{padding:10px 18px}}@media (max-width: 480px){.project-grid{gap:4px}.sort-tabs{overflow-x:auto;white-space:nowrap;padding-bottom:8px;margin:16px 0;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.sort-tabs::-webkit-scrollbar{display:none}.sort-tabs button{padding:6px 12px;font-size:.9rem}.btn{padding:8px 16px;font-size:.9rem}h1{font-size:1.6rem}h2{font-size:1.4rem}h3{font-size:1.2rem}body{font-size:15px}.container{padding:0 12px}}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;overflow-x:hidden;width:100%;min-width:320px}a{color:var(--primary-color);text-decoration:none;touch-action:manipulation}a:hover{text-decoration:underline}button{cursor:pointer;touch-action:manipulation}img{max-width:100%;height:auto}
