/* ==========================================================================
   MCS Registry — Styles
   Base styles copied from mcs-cli.dev for visual consistency.
   Registry-specific components added below.
   ========================================================================== */

/* Reset & Base */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:5rem}
body{min-height:100dvh;line-height:1.6;font-family:'General Sans','Satoshi',system-ui,sans-serif;color:#e6edf3;background:#0d1117;overflow-x:hidden}
:root{--bg:#0d1117;--bg-elevated:#161b22;--bg-card:#1c2128;--bg-card-hover:#21262d;--border:#30363d;--border-bright:#484f58;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#6e7681;--purple:#a855f7;--purple-dim:#7c3aed;--purple-glow:rgba(168,85,247,0.15);--purple-glow-strong:rgba(168,85,247,0.25);--teal:#2dd4bf;--teal-dim:#14b8a6;--teal-glow:rgba(45,212,191,0.12);--amber:#f59e0b;--red:#f87171;--green:#4ade80;--blue:#60a5fa;--mono:'JetBrains Mono','Fira Code',monospace;--sans:'General Sans','Satoshi',system-ui,sans-serif;--heading:'Satoshi','General Sans',system-ui,sans-serif;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--transition:200ms cubic-bezier(0.16,1,0.3,1)}
::selection{background:var(--purple-glow-strong);color:var(--text-primary)}
img,picture,svg{display:block;max-width:100%}
h1,h2,h3{text-wrap:balance;line-height:1.15}
p,li{text-wrap:pretty}
a{color:var(--purple);text-decoration:none;transition:color var(--transition)}
a:hover{color:var(--teal)}
code{font-family:var(--mono);font-size:.88em;color:var(--text-primary);background:var(--bg-elevated);padding:.15em .4em;border-radius:var(--radius-sm)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(13,17,23,0.8);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border-bottom:1px solid var(--border)}
.nav-inner{max-width:1100px;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem);height:56px;display:flex;align-items:center;justify-content:space-between}
.nav-brand{display:flex;align-items:center;gap:.6rem;font-family:var(--mono);font-weight:700;font-size:.9rem;color:var(--text-primary);letter-spacing:.04em}
.nav-brand svg{display:inline-block}
.nav-links{display:flex;align-items:center;gap:1.75rem}
.nav-links a{font-size:.82rem;font-weight:500;color:var(--text-secondary);transition:color var(--transition)}
.nav-links a:hover{color:var(--text-primary)}
.nav-links a.nav-active{color:var(--purple)}
.nav-gh{display:flex;align-items:center;gap:.4rem;color:var(--text-secondary)!important}
.nav-gh svg{width:18px;height:18px}
@media(max-width:640px){.nav-links a:not(.nav-gh):not(.nav-active){display:none}}

/* Layout */
.container{max-width:1100px;margin:0 auto;padding:0 clamp(1rem,4vw,2.5rem)}
section{padding:clamp(3rem,8vw,6rem) 0;position:relative}
section+section{border-top:1px solid var(--border)}

/* Animations */
.fade-in{opacity:0;transform:translateY(24px);transition:opacity .7s ease-out,transform .7s ease-out}
.fade-in.visible{opacity:1;transform:translateY(0)}
.fade-in-delay-1{transition-delay:.1s}
.fade-in-delay-2{transition-delay:.2s}
.fade-in-delay-3{transition-delay:.3s}
.fade-in-delay-4{transition-delay:.4s}

/* Section headers */
.section-label{font-family:var(--mono);font-size:clamp(.7rem,.65rem + .25vw,.8rem);font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--purple);margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}
.section-label::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--purple);box-shadow:0 0 8px var(--purple-glow-strong)}
.section-title{font-family:var(--heading);font-size:clamp(1.75rem,1.2rem + 2vw,2.75rem);font-weight:900;color:var(--text-primary);margin-bottom:1rem;letter-spacing:-.02em}
.section-desc{font-size:clamp(.95rem,.85rem + .5vw,1.1rem);color:var(--text-secondary);max-width:600px;line-height:1.7}
.gradient-text{background:linear-gradient(135deg,var(--purple),var(--teal));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* Buttons */
.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:var(--radius-lg);background:var(--purple);color:#fff;font-family:var(--sans);font-weight:600;font-size:.95rem;border:none;cursor:pointer;transition:all var(--transition);box-shadow:0 0 24px var(--purple-glow-strong)}
.btn-primary:hover{background:var(--purple-dim);color:#fff;transform:translateY(-1px);box-shadow:0 4px 32px var(--purple-glow-strong)}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-primary svg{width:18px;height:18px;display:inline}

/* Footer */
.site-footer{padding:3rem 0;border-top:1px solid var(--border)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}
.footer-left{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.footer-links{display:flex;gap:1.25rem}
.footer-links a{font-size:.78rem;color:var(--text-muted)}
.footer-links a:hover{color:var(--text-primary)}
.footer-right{font-size:.75rem;color:var(--text-muted)}
.footer-right a{color:var(--text-secondary)}

/* Film grain overlay */
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.018;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ==========================================================================
   Registry — Hero
   ========================================================================== */
.registry-hero{padding:calc(56px + clamp(4rem,10vw,8rem)) 0 clamp(3rem,8vw,6rem);position:relative;overflow:hidden;border-bottom:1px solid var(--border)}
.registry-hero::before{content:'';position:absolute;top:-400px;left:50%;transform:translateX(-50%);width:800px;height:800px;background:radial-gradient(ellipse at center,var(--purple-glow) 0%,transparent 70%);pointer-events:none;z-index:0}
.registry-hero .container{position:relative;z-index:1}
.registry-hero .section-title{font-size:clamp(2rem,1.2rem + 3vw,3.25rem)}

/* ==========================================================================
   Registry — Search
   ========================================================================== */
.search-wrapper{display:flex;align-items:center;gap:.75rem;margin-top:2rem;padding:.75rem 1.25rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-elevated);transition:border-color var(--transition),box-shadow var(--transition);max-width:640px}
.search-wrapper:focus-within{border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-glow)}
.search-icon{flex-shrink:0;color:var(--text-muted);width:18px;height:18px}
.search-input{flex:1;background:none;border:none;outline:none;font-family:var(--mono);font-size:.9rem;color:var(--text-primary);line-height:1.5}
.search-input::placeholder{color:var(--text-muted)}

/* ==========================================================================
   Registry — Packs Meta (count + sort)
   ========================================================================== */
.packs-meta{display:flex;align-items:center;justify-content:space-between;margin-top:1.25rem;max-width:640px}
.pack-count{font-family:var(--mono);font-size:.75rem;color:var(--text-muted)}
.sort-controls{display:flex;gap:.5rem}
.sort-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border-radius:var(--radius-sm);border:1px solid transparent;background:none;color:var(--text-muted);font-family:var(--mono);font-size:.72rem;font-weight:500;cursor:pointer;transition:all var(--transition)}
.sort-btn:hover{color:var(--text-secondary)}
.sort-btn.active{color:var(--purple);border-color:var(--border)}
.sort-btn svg{width:14px;height:14px;display:inline}

/* ==========================================================================
   Registry — Pack Cards Grid
   ========================================================================== */
.packs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}
@media(max-width:640px){.packs-grid{grid-template-columns:1fr}}

.pack-card{display:flex;flex-direction:column;padding:1.5rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-elevated);transition:all var(--transition);color:inherit}
.pack-card:hover{background:var(--bg-card);border-color:var(--border-bright);transform:translateY(-2px)}
.pack-card-link{text-decoration:none;color:inherit;flex:1}

.pack-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}
.pack-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.pack-dot--purple{background:var(--purple)}
.pack-dot--teal{background:var(--teal)}
.pack-dot--blue{background:var(--blue)}
.pack-dot--amber{background:var(--amber)}
.pack-card-name{font-family:var(--mono);font-size:.88rem;font-weight:600;color:var(--text-primary)}
.star-count{margin-left:auto;display:inline-flex;align-items:center;gap:.3rem;font-family:var(--mono);font-size:.72rem;color:var(--amber)}
.star-count svg{width:12px;height:12px;display:inline;fill:var(--amber)}

.pack-card-desc{font-size:.82rem;color:var(--text-secondary);line-height:1.6;margin-bottom:.75rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

.pack-card-author{font-size:.72rem;color:var(--text-muted);margin-bottom:.75rem}

.pack-card-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}
.component-badge{font-family:var(--mono);font-size:.65rem;padding:.15rem .45rem;border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text-secondary)}
.component-badge--mcp{border-color:rgba(168,85,247,0.3);color:var(--purple)}
.component-badge--hooks{border-color:rgba(45,212,191,0.3);color:var(--teal)}
.component-badge--skills{border-color:rgba(45,212,191,0.3);color:var(--teal)}
.component-badge--commands{border-color:rgba(96,165,250,0.3);color:var(--blue)}
.component-badge--agents{border-color:rgba(96,165,250,0.3);color:var(--blue)}
.component-badge--brew{border-color:rgba(245,158,11,0.3);color:var(--amber)}
.component-badge--plugins{border-color:rgba(168,85,247,0.3);color:var(--purple)}
.component-badge--templates{border-color:rgba(110,118,129,0.3);color:var(--text-muted)}

.pack-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}
.pack-card-copy{position:relative;display:inline-flex;align-items:center;gap:.3rem;font-family:var(--mono);font-size:.68rem;color:var(--text-muted);padding:.25rem .5rem;border-radius:var(--radius-sm);background:transparent;border:1px solid var(--border);cursor:pointer;transition:all var(--transition)}
.pack-card-copy:hover{border-color:var(--purple);color:var(--text-secondary)}
.pack-card-copy.copied{border-color:var(--teal);color:var(--teal)}
.pack-card-copy .copy-icon{opacity:.6;flex-shrink:0}
.pack-card-copy:hover .copy-icon{opacity:1}
.copy-tooltip{display:none;position:absolute;bottom:calc(100% + 8px);right:0;background:var(--bg-elevated);border:1px solid var(--border-bright);border-radius:var(--radius-sm);padding:.35rem .6rem;font-family:var(--mono);font-size:.68rem;color:var(--text-primary);white-space:nowrap;pointer-events:none;z-index:10;box-shadow:0 4px 12px rgba(0,0,0,.4)}
.copy-tooltip::after{content:'';position:absolute;top:100%;right:12px;border:5px solid transparent;border-top-color:var(--border-bright)}
.pack-card-copy:hover .copy-tooltip{display:block}
.pack-card-updated{font-size:.68rem;color:var(--text-muted)}

/* Unavailable/invalid banner */
.pack-card-banner{padding:.4rem .6rem;border-radius:var(--radius-sm);font-size:.72rem;font-weight:500;margin-bottom:.75rem}
.pack-card-banner--unavailable{background:rgba(248,113,113,0.1);color:var(--red);border:1px solid rgba(248,113,113,0.2)}
.pack-card-banner--invalid{background:rgba(245,158,11,0.1);color:var(--amber);border:1px solid rgba(245,158,11,0.2)}

/* ==========================================================================
   Registry — Empty State
   ========================================================================== */
.packs-empty{text-align:center;padding:3rem 0}
.packs-empty p{color:var(--text-muted);font-size:.9rem}

/* ==========================================================================
   Registry — Skeleton Loading
   ========================================================================== */
.pack-card.skeleton{pointer-events:none}
.skeleton-line{height:14px;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-card-hover) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}
.skeleton-line--title{width:60%;margin-bottom:.75rem;height:18px}
.skeleton-line--desc{width:90%;margin-bottom:.5rem}
.skeleton-line--meta{width:40%;margin-top:.5rem}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ==========================================================================
   Registry — Submit Form
   ========================================================================== */
.submit-form{max-width:600px;margin-top:2rem}
.form-group{margin-bottom:1.25rem}
.form-label{display:block;font-family:var(--mono);font-size:.75rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}
.form-input{width:100%;padding:.75rem 1rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-primary);font-family:var(--mono);font-size:.85rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}
.form-input:focus{border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-glow)}
.form-input::placeholder{color:var(--text-muted)}

/* Honeypot — positioned off-screen, not display:none (bots detect that) */
.hp-field{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden}

.submit-btn{margin-top:.5rem}

.submit-result{margin-top:1.25rem;padding:1rem;border-radius:var(--radius-md);font-size:.85rem;line-height:1.6}
.submit-result--success{background:rgba(74,222,128,0.08);border:1px solid rgba(74,222,128,0.2);color:var(--green)}
.submit-result--error{background:rgba(248,113,113,0.08);border:1px solid rgba(248,113,113,0.2);color:var(--red)}
.submit-result ul{margin-top:.5rem;padding-left:1.25rem}
.submit-result li{font-size:.8rem;margin-bottom:.25rem}

/* Turnstile widget spacing */
.cf-turnstile{margin:1rem 0}
