@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@300;400;600;800&display=swap";
:root{--bg-gradient:linear-gradient(135deg, #09090b 0%, #171721 50%, #0c0a1a 100%);--card-bg:#19192399;--card-border:#ffffff14;--card-hover-border:#8b5cf699;--text-main:#f8fafc;--text-sub:#cbd5e1;--text-muted:#64748b;--accent-primary:#8b5cf6;--accent-secondary:#d946ef;--button-bg:#ffffff0d;--button-hover:#8b5cf633}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-gradient);color:var(--text-main);background-attachment:fixed;flex-direction:column;min-height:100vh;font-family:Inter,sans-serif;display:flex}h1,h2,h3,h4{font-family:Outfit,sans-serif}.page-container{width:100%;max-width:1200px;margin:0 auto;padding:4rem 2rem}.header{text-align:center;margin-bottom:3rem;animation:.8s ease-out fadeInDown}.header h1{background:linear-gradient(90deg,#8b5cf6,#d946ef,#fb923c);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;margin-bottom:1rem;font-size:3.5rem;font-weight:800}.header p{color:var(--text-sub);max-width:600px;margin:0 auto;font-size:1.25rem;font-weight:400}.controls{justify-content:center;margin-bottom:4rem;animation:.8s ease-out .2s both fadeInUp;display:flex}.month-selector{appearance:none;border:1px solid var(--card-border);color:var(--text-main);-webkit-backdrop-filter:blur(12px);cursor:pointer;background-color:#0f172a99;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23d946ef'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-position:right 1rem center;background-repeat:no-repeat;background-size:1.25rem;border-radius:9999px;outline:none;padding:1rem 3rem 1rem 1.5rem;font-family:Inter,sans-serif;font-size:1.1rem;transition:all .3s;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.month-selector:hover,.month-selector:focus{border-color:var(--accent-primary);background-color:#0f172ae6;box-shadow:0 0 0 3px #8b5cf633}.month-selector option{color:#fff;background-color:#0f172a}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2rem;display:grid}.card{background:var(--card-bg);border:1px solid var(--card-border);-webkit-backdrop-filter:blur(16px);border-radius:20px;flex-direction:column;padding:2rem;transition:all .4s cubic-bezier(.175,.885,.32,1.275);animation:.6s ease-out both scaleIn;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 25px -5px #0000004d}.card:before{content:"";background:linear-gradient(to right, var(--accent-primary), var(--accent-secondary));transform-origin:0;width:100%;height:4px;transition:transform .4s;position:absolute;top:0;left:0;transform:scaleX(0)}.card:hover{border-color:var(--card-hover-border);transform:translateY(-8px)scale(1.02);box-shadow:0 20px 40px -10px #8b5cf633}.card:hover:before{transform:scaleX(1)}.card-content{flex-direction:column;flex-grow:1;gap:.5rem;margin-bottom:2rem;display:flex}.card-name{color:#fff;letter-spacing:-.01em;margin-bottom:.25rem;font-size:1.8rem;font-weight:700}.card-birthday-label{text-transform:uppercase;letter-spacing:.1em;color:var(--accent-secondary);margin-top:1rem;font-size:.85rem;font-weight:600}.card-birthday{color:var(--text-sub);align-items:center;gap:.5rem;font-size:1.15rem;display:flex}.card-birthday svg{width:1.2rem;height:1.2rem;color:var(--text-muted)}.links-container{flex-wrap:wrap;gap:.75rem;margin-top:auto;display:flex}.link-button{background-color:var(--button-bg);color:var(--text-main);border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;padding:.6rem 1rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:all .3s;display:inline-flex}.link-button:hover{background-color:var(--button-hover);border-color:var(--accent-primary);color:#fff;transform:translateY(-2px)}.link-button svg{width:1.1rem;height:1.1rem;margin-right:.4rem}.empty-state{text-align:center;background:var(--card-bg);border:1px dashed var(--card-border);color:var(--text-muted);border-radius:20px;grid-column:1/-1;padding:4rem 2rem;font-size:1.2rem;animation:.5s ease-out fadeIn}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
