.homepage{padding-top:0;padding-bottom:0}.btn-sm{padding:6px 16px;font-size:var(--font-size-sm)}.hp-nav{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--accent);border-bottom:none}.hp-nav-logo{font-size:var(--font-size-lg);font-weight:800;color:#fff;letter-spacing:-.5px}.hp-nav-logo .logo-dot{color:#fff}.hp-nav .btn{color:#fff;border-color:#ffffff4d}.hp-nav .btn-primary{background:#fff;color:var(--accent);border-color:#fff}.hp-nav .btn-primary:hover{background:#ffffffe6}.hp-hero{text-align:center;padding:var(--space-2xl) var(--space-lg) var(--space-xl);background:linear-gradient(180deg,var(--bg-primary) 0%,var(--bg-card) 100%);border-bottom:1px solid var(--border)}.hp-hero-title{font-size:var(--font-size-2xl);font-weight:800;line-height:1.15;margin-bottom:var(--space-sm);color:var(--text-primary)}.hp-hero-sub{font-size:var(--font-size-sm);color:var(--text-secondary);max-width:400px;margin:0 auto var(--space-lg);line-height:1.5}.hp-hero-search{position:relative;max-width:400px;margin:0 auto}.hp-hero-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.hp-hero-search input{width:100%;padding:14px 80px 14px 44px;font-size:var(--font-size-base);border-radius:var(--radius-lg);border:2px solid var(--border);background:var(--bg-input);color:var(--text-primary);transition:border-color .2s}.hp-hero-search input:focus{outline:none;border-color:var(--accent)}.hp-hero-search input::placeholder{color:var(--text-muted)}.hp-search-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);padding:10px 20px;font-size:var(--font-size-sm);font-weight:700;border:none;border-radius:calc(var(--radius-lg) - 2px);background:var(--accent);color:var(--text-inverse);cursor:pointer;transition:background .2s}.hp-search-btn:hover{background:var(--accent-hover)}.hp-section{padding:var(--space-xl) var(--space-lg)}.hp-section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--space-md)}.hp-section-header h2{font-size:var(--font-size-lg);font-weight:700}.hp-section-header .hp-count{font-size:var(--font-size-xs);color:var(--text-muted)}.hp-cta{padding:var(--space-xl) var(--space-lg);text-align:center;background:var(--bg-card);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.hp-cta h2{font-size:var(--font-size-xl);font-weight:800;margin-bottom:var(--space-sm)}.hp-cta p{font-size:var(--font-size-sm);color:var(--text-secondary);max-width:360px;margin:0 auto var(--space-lg);line-height:1.5}.hp-cta .btn-cta{display:inline-block;padding:14px 32px;font-size:var(--font-size-base);font-weight:700;border-radius:var(--radius-lg);background:var(--accent);color:var(--text-inverse);text-decoration:none;transition:background .2s,transform .15s}.hp-cta .btn-cta:hover{background:var(--accent-hover)}.hp-cta .btn-cta:active{transform:scale(.97)}.hp-features{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-lg)}.hp-feature-pill{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs);font-weight:600;padding:6px 12px;border-radius:var(--radius-full);background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border)}.hp-feature-pill svg{color:var(--accent);flex-shrink:0}.hp-footer{padding:var(--space-xl) var(--space-lg);text-align:center;border-top:1px solid var(--border)}.hp-footer a{font-size:var(--font-size-xs);color:var(--text-muted);text-decoration:none;transition:color .2s}.hp-footer a:hover{color:var(--text-secondary)}.hp-footer .footer-sep{color:var(--text-muted);margin:0 var(--space-sm)}.hp-section .sticky-controls{position:sticky;top:0;z-index:50;background:var(--bg-primary);padding-top:var(--space-sm);padding-bottom:var(--space-sm);margin-left:calc(-1 * var(--space-lg));margin-right:calc(-1 * var(--space-lg));padding-left:var(--space-lg);padding-right:var(--space-lg);transition:box-shadow .2s}.hp-section .sticky-controls.stuck{box-shadow:0 2px 8px #0000004d}.sort-filter-bar{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap}.sort-filter-bar select{flex:1;min-width:0;font-size:var(--font-size-xs);padding:var(--space-xs) var(--space-sm)}.pub-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(max(100px,calc(12.5% - 7px)),1fr));gap:var(--space-sm)}.load-more-btn{grid-column:1 / -1;padding:12px;font-size:var(--font-size-sm);font-weight:600;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:background .2s,color .2s}.load-more-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}.pub-card-item{position:relative;border-radius:var(--radius-md);border:2px solid var(--border);background:var(--bg-card);overflow:hidden;cursor:pointer;transition:border-color .2s,transform .15s;display:block;color:inherit}.pub-card-item:hover{transform:translateY(-2px)}.pub-card-img{width:100%;aspect-ratio:5 / 7;object-fit:cover;display:block}.pub-card-info{padding:var(--space-sm)}.pub-card-name{font-size:var(--font-size-xs);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pub-card-value{font-size:var(--font-size-xs);color:var(--text-muted);margin-top:2px}.thumb-fav-btn{position:absolute;bottom:6px;right:6px;width:32px;height:32px;border-radius:50%;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;color:#ffffffb3;transition:color .2s,transform .2s;padding:0}.thumb-fav-btn:active{transform:scale(.85)}.thumb-fav-btn.favorited{color:#ef4444}.thumb-fav-btn svg{pointer-events:none}.pub-card-placeholder{display:block;border-radius:var(--radius-md);border:2px dashed var(--accent);background:var(--accent-bg);overflow:hidden;cursor:pointer;transition:border-color .2s,background .2s,transform .15s;text-decoration:none;color:var(--accent)}.pub-card-placeholder:hover{transform:translateY(-2px);color:var(--accent-hover);border-color:var(--accent-hover)}.pub-card-placeholder-inner{aspect-ratio:5 / 7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md)}.pub-card-placeholder-inner svg{opacity:.7}.pub-card-placeholder-inner span{font-size:var(--font-size-xs);font-weight:600;text-align:center}
