:root{font-family:Inter,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;font-weight:400;color-scheme:dark;color:#ffffffe6;background:linear-gradient(135deg,#0c0c0c,#1a1a2e,#16213e);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-width:thin;scrollbar-color:#64ffda #1a1a2e}*{margin:0;padding:0;box-sizing:border-box}html,body{overflow-x:hidden}body{margin:0;width:100%;min-height:100vh;position:relative}#root{width:100%;min-height:100vh;display:flex;flex-direction:column}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#1a1a2e}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#64ffda,#448aff);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#4dd0e1,#42a5f5)}html{scroll-behavior:smooth}*:focus{outline:2px solid #64ffda;outline-offset:2px}::selection{background:#64ffda4d;color:#fff}@keyframes slideIn{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){:root{font-size:14px}h1{font-size:2.5em}}@media (max-width: 480px){:root{font-size:13px}h1{font-size:2em}}#root{width:100%;min-height:100vh;background:linear-gradient(135deg,#0c0c0c,#1a1a2e,#16213e);display:flex;flex-direction:column}.main-content{flex:1;width:100%;display:flex;flex-direction:column;min-height:calc(100vh - 80px)}.favorites{width:100%;min-height:100vh;background:linear-gradient(135deg,#0c0c0c,#1a1a2e,#16213e);padding:2rem;box-sizing:border-box}.favorites-header{text-align:center;margin-bottom:3rem;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.1)}.favorites-title{display:flex;align-items:center;justify-content:center;gap:1rem;font-size:2.5rem;font-weight:700;margin-bottom:1rem;background:linear-gradient(135deg,#64ffda,#448aff,#ff6ec7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.title-icon{font-size:2.5rem;filter:drop-shadow(0 0 8px rgba(255,20,147,.8))}.favorites-count{color:#ffffffb3;font-size:1.1rem;background:#ffffff1a;padding:.5rem 1.5rem;border-radius:25px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);display:inline-block}.movies-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;max-width:1400px;margin:0 auto;animation:fadeIn .6s ease}.empty-favorites{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 2rem;max-width:500px;margin:0 auto;animation:fadeIn .6s ease}.empty-icon{font-size:4rem;margin-bottom:1.5rem;opacity:.6;animation:float 3s ease-in-out infinite}.empty-favorites h3{font-size:1.8rem;color:#fff;margin-bottom:1rem;font-weight:600}.empty-favorites p{color:#ffffffb3;font-size:1.1rem;line-height:1.6;margin-bottom:2rem}.browse-button{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#64ffda,#448aff);color:#fff;padding:.8rem 2rem;border-radius:25px;text-decoration:none;font-weight:600;transition:all .3s ease;border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.browse-button:hover{background:linear-gradient(135deg,#4dd0e1,#42a5f5);transform:translateY(-2px);box-shadow:0 8px 25px #64ffda4d}.browse-button span{font-size:1.2rem}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.movies-grid>*{animation:fadeIn .3s ease-out forwards}@media (max-width: 768px){.favorites{padding:1rem}.favorites-title{font-size:2rem;flex-direction:column;gap:.5rem}.movies-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.empty-favorites{padding:3rem 1rem}.empty-icon{font-size:3rem}.empty-favorites h3{font-size:1.5rem}}.movie-card{position:relative;border-radius:20px;overflow:hidden;background:linear-gradient(145deg,#1a1a2e,#16213e);transition:all .5s cubic-bezier(.4,0,.2,1);height:100%;display:flex;flex-direction:column;box-shadow:0 8px 32px #0006;border:2px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);cursor:pointer}.movie-card:hover{transform:translateY(-12px) scale(1.03);box-shadow:0 20px 60px #64ffda4d,0 0 0 1px #64ffda33;border-color:#64ffda66}.movie-card:hover:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 50% 50%,rgba(100,255,218,.05) 0%,transparent 70%);z-index:1;pointer-events:none}.movie-poster{position:relative;aspect-ratio:2/3;width:100%}.movie-poster img{width:100%;height:100%;object-fit:cover}.movie-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to bottom,#0003,#000c);opacity:0;transition:all .3s ease;display:flex;flex-direction:column;justify-content:space-between;padding:1rem;z-index:2}.movie-card:hover .movie-overlay{opacity:1}.favorite-btn{position:absolute;top:1rem;right:1rem;color:#fff;font-size:1.5rem;padding:.5rem;background:#0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1),background .3s;border:1px solid rgba(255,255,255,.1);z-index:3;cursor:pointer;will-change:transform,box-shadow}.favorite-btn:hover,.favorite-btn:focus{background:#ff149326;transform:scale(1.13) rotate(5deg);box-shadow:0 0 16px 4px #ff149380,0 4px 12px #ff14934d}.favorite-btn.active{background:#ff14934d;border-color:#ff149380}.heart-icon{font-size:1.2rem;filter:drop-shadow(0 0 6px rgba(255,20,147,.7));transition:filter .3s}.favorite-btn:hover .heart-icon,.favorite-btn:focus .heart-icon{filter:drop-shadow(0 0 12px rgba(255,20,147,1))}.rating-badge{position:absolute;top:1rem;left:1rem;background:linear-gradient(135deg,#64ffda,#448aff);color:#fff;padding:.3rem .6rem;border-radius:12px;font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:.2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);z-index:2;will-change:transform,box-shadow;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1)}.rating-badge:hover,.movie-card:hover .rating-badge{transform:scale(1.08);box-shadow:0 0 12px 2px #64ffda,0 4px 12px #448aff4d}.rating-badge span{background:none;border-radius:0;padding:0;font-weight:700;box-shadow:none}.movie-rating{display:flex;align-items:center;gap:.3rem;background:#000000b3;padding:.5rem .8rem;border-radius:20px;font-size:.9rem;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1)}.rating-star{font-size:1rem}.rating-value{color:gold}.rating-select{background-color:#000000b3;color:#fff;border:none;padding:.5rem;border-radius:4px;cursor:pointer;margin-top:.5rem}.movie-info{padding:1rem;flex:1;display:flex;flex-direction:column;gap:.5rem}.movie-info h3{font-size:1.1rem;margin:0;color:#fff;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.movie-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.release-year,.genre-count{font-size:.8rem;color:#ffffffb3;background:#ffffff1a;padding:.2rem .5rem;border-radius:8px;display:flex;align-items:center;gap:.3rem}.movie-overview{color:#fffc;font-size:.85rem;line-height:1.4;margin:.5rem 0 0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.user-rating{color:gold;font-size:.9rem;margin-top:auto}.overlay-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:auto;margin-top:2.5rem;transition:margin-top .3s cubic-bezier(.4,0,.2,1)}.movie-card:hover .overlay-top{margin-top:3.5rem}.movie-year{background:#64ffda33;color:#64ffda;padding:.3rem .6rem;border-radius:12px;font-size:.8rem;font-weight:600;border:1px solid rgba(100,255,218,.3)}.genre-indicator{background:#ffffff1a;color:#ffffffe6;padding:.3rem .6rem;border-radius:12px;font-size:.75rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.overlay-bottom{display:flex;flex-direction:column;gap:.8rem}.movie-title-overlay{font-size:1.2rem;font-weight:700;color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.8);line-height:1.2}.movie-description{color:#ffffffe6;font-size:.85rem;line-height:1.4;text-shadow:0 1px 2px rgba(0,0,0,.8);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.action-buttons{display:flex;gap:.5rem;margin-top:.5rem}.play-btn,.info-btn{background:linear-gradient(135deg,#fff3,#ffffff1a);color:#fff;border:1px solid rgba(255,255,255,.3);padding:.5rem 1rem;border-radius:20px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex:1;text-align:center}.play-btn:hover{background:linear-gradient(135deg,#64ffda,#448aff);border-color:#64ffda80;transform:translateY(-2px);box-shadow:0 4px 12px #64ffda4d}.info-btn:hover{background:linear-gradient(135deg,#ffffff4d,#fff3);border-color:#ffffff80;transform:translateY(-2px)}.rating-info{font-size:.8rem;color:gold;background:#ffd7001a;padding:.2rem .5rem;border-radius:8px;display:flex;align-items:center;gap:.3rem;border:1px solid rgba(255,215,0,.2)}.movie-card:hover .movie-poster img{transform:scale(1.05);transition:transform .5s ease}.movie-card:hover .favorite-btn{transform:scale(1.1) rotate(5deg);box-shadow:0 4px 12px #ff149366}.movie-card:hover .rating-badge{transform:scale(1.05);box-shadow:0 4px 12px #64ffda66}.movie-card:hover .movie-info h3{color:#64ffda;transform:translate(3px)}.favorite-btn.active .heart-icon{animation:heartPulse 1.5s ease-in-out infinite}@keyframes heartPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@media (max-width: 768px){.movie-card{font-size:.9rem}.movie-info{padding:.75rem}.favorite-btn{width:32px;height:32px;font-size:1.2rem}}.home{width:100%;min-height:100vh;background:linear-gradient(135deg,#0c0c0c,#1a1a2e,#16213e)}.hero-section{text-align:center;padding:4rem 2rem;background:radial-gradient(ellipse at center,rgba(100,255,218,.1) 0%,transparent 70%);position:relative;overflow:hidden}.hero-section:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url('data:image/svg+xml,<svg width="60" height="60" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd"><g fill="%23ffffff" fill-opacity="0.02"><circle cx="30" cy="30" r="2"/></g></g></svg>');z-index:1}.hero-title{font-size:3.5rem;font-weight:800;margin-bottom:1rem;background:linear-gradient(135deg,#64ffda,#448aff,#ff6ec7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 4px 8px rgba(0,0,0,.3);position:relative;z-index:2}.hero-subtitle{font-size:1.3rem;color:#fffc;margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto;position:relative;z-index:2}.search-form{max-width:700px;margin:0 auto;position:relative;z-index:2}.search-container{position:relative;display:flex;align-items:center;background:#ffffff1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:25px;border:1px solid rgba(255,255,255,.2);overflow:hidden;box-shadow:0 8px 32px #0000004d;transition:all .3s ease}.search-container:focus-within{transform:translateY(-2px);box-shadow:0 12px 40px #64ffda33;border-color:#64ffda80}.search-icon{padding:1rem 1.5rem;font-size:1.3rem;color:#fff9}.search-input{flex:1;padding:1.2rem 0;border:none;background:transparent;color:#fff;font-size:1.1rem;outline:none}.search-input::placeholder{color:#ffffff80}.search-button{padding:1.2rem 2rem;background:linear-gradient(135deg,#64ffda,#448aff);color:#fff;border:none;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.search-button:hover:not(:disabled){background:linear-gradient(135deg,#4dd0e1,#42a5f5);transform:scale(1.02)}.search-button:disabled{opacity:.7;cursor:not-allowed}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite;display:inline-block}.content-section{padding:2rem;max-width:1400px;margin:0 auto}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.section-header h2{font-size:2rem;color:#fff;margin:0}.results-count{color:#fff9;font-size:.9rem;background:#ffffff1a;padding:.5rem 1rem;border-radius:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.error-message{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#f443361a,#e539351a);color:#ff6b6b;padding:1rem 1.5rem;border-radius:12px;border:1px solid rgba(244,67,54,.3);margin-bottom:2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.error-icon{font-size:1.2rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center}.loading-spinner{width:60px;height:60px;border:4px solid rgba(255,255,255,.1);border-top:4px solid #64ffda;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.loading-container p{color:#ffffffb3;font-size:1.1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 639px){.home{padding:1rem 0}.search-form{margin-bottom:1rem}}.movies-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;padding:1rem;width:100%;box-sizing:border-box}.navbar{background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:1.2rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 20px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(255,255,255,.1)}.navbar-brand{font-size:1.8rem;font-weight:700}.navbar-brand a{display:flex;align-items:center;gap:.5rem;color:#fff;text-decoration:none;transition:all .3s ease}.navbar-brand a:hover{transform:scale(1.05);color:#64ffda}.brand-icon{font-size:2rem;filter:drop-shadow(0 0 8px rgba(100,255,218,.6))}.brand-text{background:linear-gradient(135deg,#64ffda,#448aff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:800;letter-spacing:-.5px}.navbar-links{display:flex;gap:1rem}.nav-link{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;border-radius:12px;transition:all .3s ease;color:#ffffffe6;text-decoration:none;position:relative;overflow:hidden}.nav-link:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s}.nav-link:hover:before{left:100%}.nav-link:hover{background:linear-gradient(135deg,#64ffda1a,#448aff1a);color:#64ffda;transform:translateY(-2px);box-shadow:0 5px 15px #64ffda33}.nav-icon{font-size:1.2rem;transition:transform .3s ease}.nav-link:hover .nav-icon{transform:scale(1.2)}@media (max-width: 768px){.navbar{padding:1rem}.navbar-brand{font-size:1.2rem}.navbar-links{gap:1rem}.nav-link{padding:.5rem}}.notification{position:fixed;top:100px;right:20px;z-index:1000;min-width:300px;max-width:400px;background:linear-gradient(135deg,#000000e6,#1a1a2ee6);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:16px;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0000004d;animation:slideInRight .5s ease-out,fadeOut .5s ease-in 2.5s forwards;overflow:hidden}.notification.success{border-left:4px solid #64ffda}.notification.error{border-left:4px solid #ff6b6b}.notification-content{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;color:#fff}.notification-icon{font-size:1.2rem;flex-shrink:0}.notification-message{font-size:.9rem;line-height:1.4;font-weight:500}.notification:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,#64ffda,#448aff);animation:progressBar 3s linear}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeOut{to{transform:translate(100%);opacity:0}}@keyframes progressBar{0%{width:100%}to{width:0%}}@media (max-width: 768px){.notification{right:10px;left:10px;min-width:auto;max-width:none}}
