:root{--void:#0d0221;--surface:#1a0a2e;--surface-raised:#241340;--glass:#ffffff0a;--text-primary:#e8dff5;--text-secondary:#a78bfa;--text-muted:#a78bfa80;--gold:#ffd93d;--gradient-cta:linear-gradient(135deg, #ff6b35, #ff2e63);--success:#1ce783;--error:#ff4d6a;--warning:#ffb84d;--border-subtle:#a78bfa1f;--border-focus:#a78bfa66;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--space-2xl:32px;--space-3xl:48px;--radius-card:12px;--radius-button:30px;--radius-input:12px;--radius-badge:6px;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--transition-fast:.15s;--transition-default:.2s;--font-display:"Fredoka", cursive;--font-body:"Nunito", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100dvh}body{background:var(--void);color:var(--text-primary);font-family:var(--font-body)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#a78bfa33;border-radius:4px}.btn-base{font-family:var(--font-display);border-radius:var(--radius-button);cursor:pointer;transition:all var(--transition-default) var(--ease-spring);-webkit-tap-highlight-color:transparent;border:none;justify-content:center;align-items:center;gap:6px;padding:12px 24px;font-size:.85rem;font-weight:600;display:inline-flex}.btn-base:active{transition-duration:.1s;transform:scale(.97)}.btn-base:focus-visible{outline:2px solid var(--text-secondary);outline-offset:2px}.btn-primary{background:var(--gradient-cta);color:#fff;box-shadow:0 4px 16px #ff2e6340}.btn-primary:hover{filter:brightness(1.08);box-shadow:0 6px 20px #ff2e6359}.btn-secondary{color:var(--text-secondary);background:#a78bfa1f;border:1.5px solid #a78bfa40}.btn-secondary:hover{background:#a78bfa33;border-color:#a78bfa66}.btn-ghost{color:var(--text-secondary);background:0 0;padding:8px 16px}.btn-ghost:hover{background:#a78bfa14}.btn-lg{padding:16px 32px;font-size:1.1rem}.btn-full{width:100%}.btn-disabled{opacity:.35;cursor:default;pointer-events:none}.tab-pill{font-family:var(--font-display);cursor:pointer;white-space:nowrap;color:var(--text-secondary);transition:all var(--transition-default) var(--ease-spring);-webkit-tap-highlight-color:transparent;background:#ffffff0f;border:1.5px solid #a78bfa33;border-radius:40px;align-items:center;gap:5px;padding:10px 18px;font-size:.8rem;font-weight:600;display:inline-flex}.tab-pill:hover{background:#a78bfa1a;border-color:#a78bfa4d}.tab-pill:active{transition-duration:.1s;transform:scale(.97)}.tab-pill:focus-visible{outline:2px solid var(--text-secondary);outline-offset:2px}.tab-pill-active{background:var(--gradient-cta);color:#fff;border-color:#0000;box-shadow:0 3px 12px #ff6b354d}.tab-pill-active:hover{filter:brightness(1.08)}.chip{font-family:var(--font-body);cursor:pointer;transition:all var(--transition-default) var(--ease-spring);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:2px solid #0000;border-radius:10px;padding:8px 14px;font-size:.74rem;font-weight:700}.chip:active{transition-duration:.1s;transform:scale(.95)}.chip-active{opacity:1;border-color:#ffffff59}.chip-inactive{opacity:.25}.chip-inactive:hover{opacity:.45}.input-field{font-family:var(--font-body);border-radius:var(--radius-input);border:1px solid var(--border-subtle);color:var(--text-primary);box-sizing:border-box;transition:border-color var(--transition-default);background:#ffffff0f;outline:none;padding:10px 14px;font-size:.84rem}.input-field:focus{border-color:var(--border-focus)}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.movie-card-enter{animation:.3s ease-out both cardFadeIn}.empty-state{text-align:center;padding:var(--space-3xl) var(--space-xl);align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.empty-state-icon{color:var(--gold);opacity:.4;animation:3s ease-in-out infinite emptyFloat}@keyframes emptyFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.empty-state-title{font-family:var(--font-display);color:var(--gold);opacity:.7;font-size:1.1rem;font-weight:700}.empty-state-hint{font-family:var(--font-body);color:var(--text-secondary);opacity:.6;max-width:260px;font-size:.85rem;line-height:1.5}.movie-grid{gap:var(--space-md);padding:0 var(--space-md);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));display:grid}@media (max-width:479px){.movie-grid{gap:var(--space-sm);padding:0 var(--space-sm);grid-template-columns:repeat(2,1fr)}}@media (min-width:768px){.movie-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}.movie-card{border-radius:var(--radius-card);cursor:pointer;aspect-ratio:2/3;background:var(--surface-raised);transition:transform var(--transition-default) var(--ease-spring);position:relative;overflow:hidden}.movie-card:hover{transform:scale(1.03)}.movie-card:active{transition-duration:.1s;transform:scale(.98)}.movie-card img{object-fit:cover;width:100%;height:100%;display:block}.movie-card-scrim{pointer-events:none;background:linear-gradient(#0000,#000000d9);height:50%;position:absolute;bottom:0;left:0;right:0}.movie-card-info{padding:var(--space-sm) var(--space-md);position:absolute;bottom:0;left:0;right:0}.movie-card-title{font-family:var(--font-display);color:var(--text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.movie-card-year{font-family:var(--font-body);color:var(--text-muted);margin-top:2px;font-size:.7rem}.movie-card-rating{top:var(--space-sm);right:var(--space-sm);font-family:var(--font-body);color:var(--text-primary);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:700;position:absolute}.movie-card-checked{opacity:.4}.movie-card-checked:after{content:"✓";color:var(--success);text-shadow:0 2px 8px #00000080;z-index:2;font-size:2rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.movie-card-fallback{justify-content:center;align-items:center;gap:var(--space-sm);height:100%;padding:var(--space-lg);text-align:center;flex-direction:column;display:flex}.movie-card-fallback-emoji{font-size:2.5rem}.movie-card-fallback-title{font-family:var(--font-display);color:var(--text-primary);font-size:.8rem;font-weight:600;line-height:1.3}.movie-detail-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;padding:var(--space-xl);background:#000000bf;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (min-width:480px){.movie-detail-overlay{align-items:center}}.movie-detail-card{background:var(--surface-raised);border-radius:var(--radius-card);border:1px solid var(--border-subtle);width:100%;max-width:400px;max-height:85vh;overflow-y:auto}.movie-detail-poster{aspect-ratio:2/3;object-fit:cover;border-radius:var(--radius-card) var(--radius-card) 0 0;width:100%;display:block}.movie-detail-body{padding:var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.movie-detail-title{font-family:var(--font-display);color:var(--gold);font-size:1.25rem;font-weight:700;line-height:1.2}.movie-detail-meta{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.movie-detail-overview{font-family:var(--font-body);color:var(--text-secondary);font-size:.875rem;line-height:1.6}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--surface) 25%, var(--surface-raised) 50%, var(--surface) 75%);border-radius:var(--radius-card);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}.sa{-webkit-overflow-scrolling:touch;overflow-x:auto}.sa table{border-collapse:collapse;width:100%;font-family:var(--font-body);font-size:.82rem}.sa th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:var(--surface);z-index:2;padding:10px 12px;font-size:.74rem;font-weight:700;position:sticky;top:0}.sa td{border-bottom:1px solid #a78bfa0f;padding:9px 12px}.sa tr:active{background:#a78bfa0f}.ov-col{display:none}@media (min-width:600px){.ov-col{display:table-cell}}@keyframes pulseGlow{0%,to{box-shadow:0 0 15px #ffd93d26}50%{box-shadow:0 0 30px #ffd93d4d}}.celebration-overlay{z-index:9999;background:#0d0221eb;justify-content:center;align-items:center;animation:.3s ease-out both celebrationFadeIn;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes celebrationFadeIn{0%{opacity:0}to{opacity:1}}.celebration-burst{background:radial-gradient(circle,#ffd93d40 0%,#0000 70%);border-radius:50%;width:300px;height:300px;animation:.8s ease-out both celebrationBurst;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes celebrationBurst{0%{opacity:.6;transform:translate(-50%,-50%)scale(0)}to{opacity:0;transform:translate(-50%,-50%)scale(4)}}.celebration-emoji{pointer-events:none;z-index:1;animation:3s ease-in both emojiRain;position:absolute;top:-40px}@keyframes emojiRain{0%{opacity:1;transform:translateY(0)rotate(0)}85%{opacity:1}to{opacity:0;transform:translateY(105vh)rotate(720deg)}}.celebration-content{z-index:2;text-align:center;padding:var(--space-xl);max-width:320px;animation:celebrationPosterReveal .6s var(--ease-spring) .1s both;flex-direction:column;align-items:center;display:flex;position:relative}@keyframes celebrationPosterReveal{0%{opacity:0;transform:scale(.5)translateY(30px)}to{opacity:1;transform:scale(1)translateY(0)}}.celebration-poster{border-radius:var(--radius-card);width:200px;max-width:50vw;margin-bottom:var(--space-lg);box-shadow:0 8px 40px #ffd93d40,0 0 80px #ff6b3526}.celebration-title{font-family:var(--font-display);color:var(--gold);margin-bottom:var(--space-sm);font-size:1.6rem;font-weight:700;line-height:1.2;animation:.4s ease-out .4s both celebrationText}.celebration-subtitle{font-family:var(--font-display);color:var(--text-primary);opacity:.9;margin-bottom:var(--space-md);font-size:1.1rem;font-weight:600;animation:.4s ease-out .5s both celebrationText}.celebration-enjoy{font-family:var(--font-body);color:var(--text-secondary);font-size:.9rem;animation:.4s ease-out .8s both celebrationText}@keyframes celebrationText{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.movie-card{transition:none}.skeleton{animation:none}.celebration-emoji{display:none}.celebration-burst{animation:none}.celebration-content,.celebration-title,.celebration-subtitle,.celebration-enjoy{opacity:1;animation:none}.btn-base:active,.tab-pill:active,.chip:active{transform:none}.movie-card-enter{opacity:1;animation:none}.empty-state-icon{animation:none}}
