@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 30px var(--accent-glow),0 0 60px rgba(59,130,246,.2)}50%{box-shadow:0 0 40px var(--accent-glow),0 0 80px rgba(59,130,246,.3)}}@keyframes slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.landing-page{flex:1 1;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.landing-section{max-width:1000px;margin:0 auto}.hero-section,.landing-section{padding:var(--space-2xl) var(--space-lg)}.hero-section{min-height:calc(100vh - 80px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(ellipse at 20% 20%,rgba(59,130,246,.15) 0,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(34,211,238,.1) 0,transparent 50%),radial-gradient(ellipse at center 60%,var(--bg-elevated) 0,var(--bg-primary) 70%);position:relative;overflow:hidden}.hero-notes{position:absolute;inset:0;pointer-events:none;overflow:hidden}.hero-note{position:absolute;color:var(--accent-primary);opacity:.5;animation:float 4s ease-in-out infinite;text-shadow:0 0 20px var(--accent-glow)}.hero-note.note-1{top:-1%;left:8%;font-size:4rem;animation-delay:0s;opacity:.6}.hero-note.note-2{top:20%;right:12%;font-size:3.5rem;animation-delay:1s;color:var(--accent-secondary);opacity:.5}.hero-note.note-3{bottom:25%;left:5%;font-size:3rem;animation-delay:2s;opacity:.4}.hero-note.note-4{bottom:15%;right:8%;font-size:4.5rem;animation-delay:.5s;opacity:.55}.hero-note.note-5{top:40%;left:3%;font-size:2.5rem;animation-delay:1.5s;color:var(--accent-secondary);opacity:.35}.hero-note.note-6{top:35%;right:5%;font-size:2.5rem;animation-delay:2.5s;opacity:.4}.hero-content{position:relative;z-index:1;max-width:700px;animation:slide-up .8s ease-out}.hero-title{font-family:var(--font-display);font-size:3rem;font-weight:700;color:var(--text-primary);margin:0 0 var(--space-lg) 0;line-height:1.2;letter-spacing:-.02em}.hero-title-accent{color:var(--accent-primary);position:relative;display:inline-block}.hero-title-accent:after{content:"";position:absolute;bottom:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));border-radius:2px;transform:scaleX(.8)}.hero-tagline{font-size:1.375rem;color:var(--text-secondary);margin:0 0 var(--space-sm) 0;line-height:1.6;font-weight:500}.hero-subtitle{font-size:1rem;color:var(--text-muted);margin:0 0 var(--space-xl) 0;line-height:1.6}.hero-cta{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-xl)}.hero-cta .file-upload,.hero-cta .hero-songs-link{display:inline-flex;align-items:center;justify-content:center;min-width:270px;height:56px;padding:0 var(--space-xl);border:none;border-radius:var(--radius-lg);font-family:var(--font-display);font-size:1.125rem;font-weight:600;text-decoration:none;transition:all var(--transition-base);cursor:pointer;box-sizing:border-box;background:var(--accent-primary);color:#ffffff;white-space:nowrap}.hero-cta .file-upload:hover,.hero-cta .hero-songs-link:hover{background:var(--accent-primary-dark);transform:translateY(-2px);box-shadow:0 0 30px var(--accent-glow),0 8px 16px rgba(0,0,0,.3)}.hero-cta .file-upload-content{display:flex;align-items:center;justify-content:center;font-size:inherit;font-weight:inherit;color:inherit;gap:0}.hero-section .scroll-hint{position:absolute;bottom:var(--space-xl);left:50%;transform:translateX(-50%);color:var(--text-muted);font-size:.875rem;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);animation:fade-in 1s ease-out .5s both}.hero-section .scroll-hint:after{content:"";font-size:1.25rem;animation:float 2s ease-in-out infinite}.features-section{padding:80px var(--space-lg);background:var(--bg-secondary);position:relative}.features-section:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-primary),transparent)}.features-section h2{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--text-primary);text-align:center;margin:0 0 var(--space-sm) 0}.features-section>p{text-align:center;color:var(--text-muted);margin:0 0 var(--space-2xl) 0}.features-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--space-lg);gap:var(--space-lg);max-width:1000px;margin:0 auto}.feature-card{background:linear-gradient(145deg,var(--bg-surface) 0,var(--bg-elevated) 100%);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--space-xl) var(--space-lg);text-align:center;transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.feature-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));transform:scaleX(0);transition:transform .3s ease}.feature-card:hover{border-color:var(--accent-primary);transform:translateY(-8px);box-shadow:0 20px 40px rgba(0,0,0,.3),0 0 30px var(--accent-glow)}.feature-card:hover:before{transform:scaleX(1)}.feature-icon{font-size:3rem;margin-bottom:var(--space-md);display:block;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.feature-card h3{font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-sm) 0}.feature-card p{font-size:.9375rem;color:var(--text-secondary);margin:0;line-height:1.6}.howto-section{padding:80px var(--space-lg);background:var(--bg-primary);position:relative}.howto-section h2{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--text-primary);text-align:center;margin:0 0 var(--space-2xl) 0}.howto-patterns{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-2xl);gap:var(--space-2xl);max-width:900px;margin:0 auto}.howto-pattern{background:var(--bg-elevated);border-radius:var(--radius-xl);padding:var(--space-xl);border:1px solid var(--border-color)}a.howto-pattern-title,button.howto-pattern-title{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:var(--space-md) var(--space-lg);margin:0 0 var(--space-lg) 0;font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:#ffffff;background:var(--accent-primary);border:none;border-radius:var(--radius-lg);text-decoration:none;cursor:pointer;transition:all var(--transition-base)}a.howto-pattern-title:hover,button.howto-pattern-title:hover{background:var(--accent-primary-dark);transform:translateY(-2px);box-shadow:0 0 20px var(--accent-glow),0 8px 16px rgba(0,0,0,.3)}.howto-steps{counter-reset:step;list-style:none;padding:0;margin:0}.howto-step{position:relative;padding-left:48px;padding-bottom:var(--space-lg);border-left:2px solid var(--border-color);margin-left:16px;transition:border-color .3s ease}.howto-step:hover{border-left-color:var(--accent-primary)}.howto-step:last-child{border-left:2px solid transparent;padding-bottom:0}.howto-step:before{counter-increment:step;content:counter(step);position:absolute;left:-18px;top:0;width:32px;height:32px;background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-primary-dark) 100%);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.875rem;font-weight:700;color:white;box-shadow:0 0 20px var(--accent-glow),0 2px 8px rgba(0,0,0,.3);transition:all .3s ease}.howto-step:hover:before{transform:scale(1.1);box-shadow:0 0 30px var(--accent-glow),0 4px 12px rgba(0,0,0,.4)}.howto-step h4{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--text-primary);margin:0 0 var(--space-xs) 0}.howto-step p{font-size:.9375rem;color:var(--text-secondary);margin:0;line-height:1.6}.faq-section{padding:80px var(--space-lg);background:var(--bg-secondary);position:relative}.faq-section:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--border-color),transparent)}.faq-section h2{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--text-primary);text-align:center;margin:0 0 var(--space-2xl) 0}.faq-list{max-width:700px;margin:0 auto}.faq-item{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin-bottom:var(--space-md);overflow:hidden;transition:all .3s ease}.faq-item--open,.faq-item:hover{border-color:var(--accent-primary)}.faq-item--open{box-shadow:0 4px 20px rgba(0,0,0,.2)}.faq-item:last-child{margin-bottom:0}.faq-question{font-family:var(--font-display);font-size:1.0625rem;font-weight:600;color:var(--text-primary);padding:var(--space-lg);margin:0;display:flex;align-items:center;gap:var(--space-md);line-height:1.5;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .2s ease}.faq-question:hover{background:var(--bg-elevated)}.faq-question:before{content:"Q";display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-primary-dark));color:white;border-radius:var(--radius-sm);font-size:.9375rem;font-weight:700;flex-shrink:0;box-shadow:0 2px 8px var(--accent-glow)}.faq-question-text{flex:1 1}.faq-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-elevated);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:1.25rem;font-weight:500;flex-shrink:0;transition:all .2s ease}.faq-item--open .faq-toggle{background:var(--accent-primary);color:white}.faq-answer{font-size:1rem;color:var(--text-secondary);padding:0 var(--space-lg) 0;padding-left:calc(var(--space-lg) + 32px + var(--space-md));margin:0;line-height:1.7;max-height:0;overflow:hidden;transition:all .3s ease}.faq-item--open .faq-answer{padding-bottom:var(--space-lg);max-height:200px}.cta-section{padding:80px var(--space-lg);background:radial-gradient(ellipse at center,rgba(59,130,246,.1) 0,transparent 60%),linear-gradient(180deg,var(--bg-primary) 0,var(--bg-elevated) 100%);text-align:center;position:relative}.cta-section:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent-primary),transparent)}.cta-section h2{font-family:var(--font-display);font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:0 0 var(--space-lg) 0}.cta-buttons{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:var(--space-md)}.cta-buttons .file-upload,.cta-link{display:inline-flex;align-items:center;justify-content:center;min-width:270px;height:56px;padding:0 var(--space-xl);border:none;border-radius:var(--radius-lg);font-family:var(--font-display);font-size:1.125rem;font-weight:600;text-decoration:none;transition:all var(--transition-base);cursor:pointer;box-sizing:border-box;background:var(--accent-primary);color:#ffffff;white-space:nowrap}.cta-buttons .file-upload:hover,.cta-link:hover{background:var(--accent-primary-dark);transform:translateY(-2px);box-shadow:0 0 30px var(--accent-glow),0 8px 16px rgba(0,0,0,.3)}.cta-buttons .file-upload-content{display:flex;align-items:center;justify-content:center;font-size:inherit;font-weight:inherit;color:inherit;gap:0}@media (max-width:900px){.features-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.hero-section{min-height:auto;padding:var(--space-2xl) var(--space-md)}.hero-note{opacity:.3}.hero-note.note-1{font-size:2.5rem}.hero-note.note-2{font-size:2rem}.hero-note.note-3{font-size:1.75rem}.hero-note.note-4{font-size:2.5rem}.hero-note.note-5,.hero-note.note-6{display:none}.hero-title{font-size:2rem}.hero-tagline{font-size:1.125rem}.hero-subtitle{font-size:.9375rem}.hero-cta{flex-direction:column}.hero-cta .file-upload,.hero-cta .hero-songs-link{width:240px;height:52px;font-size:1.0625rem}.cta-section,.faq-section,.features-section,.howto-section{padding:60px var(--space-md)}.faq-section h2,.features-section h2,.howto-section h2{font-size:1.5rem;margin-bottom:var(--space-xl)}.features-grid{grid-template-columns:1fr;gap:var(--space-md)}.feature-card{padding:var(--space-lg)}.feature-icon{font-size:2.5rem}.howto-patterns{grid-template-columns:1fr;gap:var(--space-lg)}.howto-pattern{padding:var(--space-lg)}a.howto-pattern-title,button.howto-pattern-title{font-size:1.0625rem;padding:var(--space-sm) var(--space-md)}.howto-step{padding-left:40px;margin-left:14px}.howto-step:before{width:28px;height:28px;left:-15px;font-size:.8125rem}.howto-step h4{font-size:.9375rem}.faq-question{font-size:1rem;padding:var(--space-md)}.faq-answer{padding:0 var(--space-md) 0;padding-left:calc(var(--space-md) + 32px + var(--space-md));font-size:.9375rem}.faq-item--open .faq-answer{padding-bottom:var(--space-md)}.cta-section h2{font-size:1.375rem}.cta-buttons{flex-direction:column}.cta-buttons .file-upload,.cta-link{width:240px;height:52px;font-size:1.0625rem}}@media (max-width:480px){.hero-title{font-size:1.75rem}.features-grid{gap:var(--space-sm)}.howto-step{padding-left:36px;margin-left:12px}.howto-step:before{width:24px;height:24px;left:-13px;font-size:.75rem}}