@keyframes slideOut{to{opacity:0;transform:translateX(40px) scale(.95)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.calendar-page .page-hero{position:relative;padding:4rem 1.5rem 3rem;overflow:hidden;background:radial-gradient(ellipse 90% 70% at 30% 20%,rgba(122,139,110,.12),transparent),radial-gradient(ellipse 70% 50% at 75% 60%,rgba(245,230,200,.4),transparent),radial-gradient(ellipse 50% 40% at 50% 100%,rgba(139,115,85,.06),transparent),linear-gradient(175deg,var(--cream) 0,var(--manila-light) 50%,var(--vanilla) 100%)}.calendar-page .page-hero:before{content:"";position:absolute;inset:-20%;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.035'/%3E%3C/svg%3E");pointer-events:none;animation:grain-drift 8s ease-in-out infinite}.calendar-page .page-hero:after{content:"";top:-10%;right:-5%;width:500px;height:500px;background:radial-gradient(circle,var(--glow-sage) 0,transparent 70%);animation:breathe 6s ease-in-out infinite}.calendar-page .hero-orb,.calendar-page .page-hero:after{position:absolute;border-radius:50%;pointer-events:none}.calendar-page .hero-orb-1{bottom:-15%;left:-8%;width:400px;height:400px;background:radial-gradient(circle,rgba(245,230,200,.5) 0,transparent 70%);animation:breathe 8s ease-in-out 2s infinite}.calendar-page .page-hero-content{max-width:1200px;margin:0 auto;position:relative;z-index:2}.calendar-page .page-hero-content h1{font-size:clamp(2rem,5vw,3rem);font-weight:700;color:var(--ink);margin-bottom:.5rem}.calendar-page .page-hero-content h1 .text-sage{color:var(--sage)}.calendar-page .page-hero-subtitle{font-size:clamp(1rem,2vw,1.15rem);color:var(--earth);font-weight:400;line-height:1.7}.calendar-page .page-hero-actions{display:flex;align-items:center;gap:1rem;margin-top:1.75rem}.calendar-page .btn-export{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.5rem;background:var(--sage);color:var(--cream);border:none;border-radius:100px;font-family:var(--font-body);font-size:.875rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.22,1,.36,1);box-shadow:0 2px 12px var(--glow-sage)}.calendar-page .btn-export:hover{background:var(--sage-deep);transform:translateY(-2px);box-shadow:0 6px 20px var(--glow-sage)}.calendar-page .btn-export svg{width:16px;height:16px}.calendar-page .btn-clear{display:inline-flex;align-items:center;gap:.5rem;padding:.7rem 1.5rem;background:transparent;color:var(--earth);border:1.5px solid var(--border-strong);border-radius:100px;font-family:var(--font-body);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .3s cubic-bezier(.22,1,.36,1)}.calendar-page .btn-clear:hover{border-color:var(--earth);color:var(--ink);background:var(--manila-light)}.calendar-page .btn-clear svg{width:15px;height:15px}.calendar-page .saved-count-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem 1rem;background:rgba(255,255,255,.7);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:100px;font-size:.8rem;font-weight:500;color:var(--earth);margin-top:1rem}.calendar-page .saved-count-badge strong{color:var(--ink);font-weight:700}.calendar-page .main-content{max-width:1200px;margin:0 auto;padding:0 1.5rem}.calendar-page .empty-state{text-align:center;padding:5rem 1.5rem 6rem;animation:scaleIn .6s cubic-bezier(.22,1,.36,1) both}.calendar-page .empty-icon{width:120px;height:120px;margin:0 auto 2rem;background:var(--vanilla);border:1.5px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative}.calendar-page .empty-icon:after{content:"";position:absolute;inset:-12px;border-radius:50%;border:1px dashed var(--border);animation:breathe 4s ease-in-out infinite}.calendar-page .empty-icon svg{width:48px;height:48px;color:var(--earth-light)}.calendar-page .empty-state h2{font-size:1.5rem;margin-bottom:.75rem;color:var(--ink)}.calendar-page .empty-state p{font-size:1rem;color:var(--earth);max-width:400px;margin:0 auto 2rem;line-height:1.7}.calendar-page .btn-explore{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 2rem;background:var(--ink);color:var(--cream);border:none;border-radius:100px;font-family:var(--font-body);font-size:.9rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .3s cubic-bezier(.22,1,.36,1);box-shadow:0 4px 20px rgba(26,22,18,.15)}.calendar-page .btn-explore:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(26,22,18,.2)}.calendar-page .btn-explore svg{width:16px;height:16px}.calendar-page .date-group{margin-bottom:2.5rem}.calendar-page .date-group-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding-top:.5rem}.calendar-page .date-group-label{font-family:var(--font-title);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--earth);white-space:nowrap}.calendar-page .date-group-line{flex:1;height:1px;background:var(--border)}.calendar-page .date-group-count{font-size:.75rem;font-weight:500;color:var(--earth-light);white-space:nowrap}.calendar-page .events-section{padding:2.5rem 0 4rem}.calendar-page .events-grid{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--border)}