@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--vintage-red: #D65A4F;--sage-green: #6A8E65;--buttered-popcorn: #F9D371;--warm-cream: #FFF8E7;--espresso: #3E2A28;--bg-primary: #FFF8E7;--bg-secondary: #F5EDD9;--bg-tertiary: #EDE2C8;--bg-sage: #E8F0E6;--text-primary: #3E2A28;--text-secondary: #4A3633;--text-muted: #6B5652;--accent-red: #D65A4F;--accent-yellow: #E8B84E;--accent-green: #6A8E65;--accent-cream: #FFF8E7;--shadow-sm: 0 1px 3px rgba(62, 42, 40, .08), 0 1px 2px rgba(62, 42, 40, .06);--shadow-md: 0 4px 6px rgba(62, 42, 40, .07), 0 2px 4px rgba(62, 42, 40, .06), 0 1px 2px rgba(62, 42, 40, .05);--shadow-lg: 0 10px 15px rgba(62, 42, 40, .1), 0 4px 6px rgba(62, 42, 40, .08), 0 2px 4px rgba(62, 42, 40, .06);--shadow-xl: 0 20px 25px rgba(62, 42, 40, .12), 0 10px 10px rgba(62, 42, 40, .08), 0 4px 6px rgba(62, 42, 40, .06);--shadow-red: 0 8px 16px rgba(214, 90, 79, .2), 0 4px 8px rgba(214, 90, 79, .15);font-family:Plus Jakarta Sans,Avenir Next,Segoe UI,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 10% 10%,rgba(249,211,113,.18),transparent 30%),radial-gradient(circle at 90% 18%,rgba(214,90,79,.12),transparent 26%),linear-gradient(to bottom,var(--bg-primary) 0%,var(--bg-secondary) 100%);background-color:var(--bg-primary);color:var(--text-secondary);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:600;line-height:1.2;font-family:Fraunces,Georgia,serif;letter-spacing:.01em}p{line-height:1.6}a{color:var(--accent-red);text-decoration:none;transition:color .2s ease}a:hover{color:#b84c41}button{font-family:inherit;cursor:pointer;border:none;background:none;transition:all .2s ease}button:focus{outline:2px solid var(--accent-green);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--bg-sage)}::selection{background:var(--accent-yellow);color:var(--espresso)}*:focus-visible{outline:2px solid var(--accent-green);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}img{max-width:100%;height:auto;display:block}.header{position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(214,90,79,.34);background:#fff8e7e6;backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);box-shadow:var(--shadow-sm);transform:translateY(0);transition:transform 1s cubic-bezier(.22,1,.36,1)}.header--hidden{transform:translateY(-100%);transition:transform .18s ease-in}@supports not (backdrop-filter: blur(12px)){.header{background:linear-gradient(180deg,var(--bg-primary) 0%,#fdf2dd 100%)}}.header--stats{background:#1c1008eb;border-bottom-color:#d2a03240;box-shadow:0 1px #d2a0321f,0 4px 20px #0006;transition:background .3s ease,border-bottom-color .3s ease}.header--stats .search-input{color:#fdf0d5}.header--stats .search-input::placeholder{color:#b89060}.header--stats .header-search{background:linear-gradient(180deg,#2e1610,#241008);border-color:#d2a03233}.header--stats .header-search:focus-within{border-color:#d2a0328c;box-shadow:inset 0 1px #d2a0321a,0 0 0 4px #d2a0321f}.header--stats .search-clear{color:#e8b84e;background:#d2a0321f;border-color:#d2a0324d}.header--stats .search-clear:hover{background:#c9922a;border-color:#c9922a;color:#1c1008}.header--stats .header-tabs{background:linear-gradient(180deg,#2e1610,#220e06);border-color:#d2a03233}.header--stats .header-tab{color:#b89060}.header--stats .header-tab:hover{color:#f0d080;background:#d2a0321a}.header--stats .header-tab.active{background:linear-gradient(135deg,#c9922a,#a87520);color:#1c1008;box-shadow:0 4px 12px #d2a0324d}.header--stats .tab-count{background:#d2a03226;color:#e8b84e}.header--stats .header-tab.active .tab-count{background:#1c100840;color:#1c1008}.header-content{max-width:1520px;margin:0 auto;padding:max(.9rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) .95rem max(1rem,env(safe-area-inset-left));display:flex;align-items:center;gap:1.15rem}.header-left{flex:1;min-width:0;display:flex;align-items:center;gap:1rem}.header-logo{width:auto;height:clamp(60px,7vw,92px);object-fit:contain;transition:transform .24s ease}.header-logo:hover{transform:translateY(-1px) scale(1.01)}.header-search{flex:1;max-width:470px;min-height:52px;display:flex;align-items:center;gap:.65rem;padding:0 .9rem;border-radius:14px;border:1px solid rgba(214,90,79,.14);background:linear-gradient(180deg,#fbf0da,#f8ecd5);box-shadow:inset 0 1px #ffffff80,0 1px 1px #3e2a280d;transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease}.header-search:focus-within{border-color:#d65a4f99;box-shadow:inset 0 1px #fff9,0 0 0 4px #d65a4f1f;transform:translateY(-1px)}.search-icon{flex-shrink:0;opacity:.65;font-size:.95rem}.search-input{flex:1;min-width:0;border:0;background:transparent;color:var(--text-primary);font-size:1rem;font-weight:500;outline:none}.search-input::placeholder{color:var(--text-muted)}.search-clear{flex-shrink:0;width:1.65rem;height:1.65rem;border-radius:50%;border:1px solid rgba(214,90,79,.3);color:var(--accent-red);background:#d65a4f1a;font-size:.7rem;display:grid;place-items:center;transition:transform .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease;-webkit-tap-highlight-color:rgba(214,90,79,.2)}.search-clear:hover{transform:scale(1.04);color:#fff;background:var(--accent-red);border-color:var(--accent-red)}.header-tabs{display:flex;align-items:center;gap:.35rem;margin-left:auto;padding:.45rem;border-radius:16px;border:1px solid rgba(214,90,79,.14);background:linear-gradient(180deg,#faefd9,#f6e9d2);box-shadow:inset 0 1px #ffffff8c}.header-tab{display:inline-flex;align-items:center;justify-content:center;gap:.48rem;min-height:48px;padding:.74rem 1.35rem;border-radius:11px;color:var(--text-muted);font-size:.98rem;font-weight:600;white-space:nowrap;transition:background-color .22s ease,color .22s ease,box-shadow .22s ease,transform .22s ease;-webkit-tap-highlight-color:rgba(214,90,79,.2)}.header-tab:hover{color:var(--text-primary);background:#ede2c8f2}.header-tab.active{color:#fff;background:linear-gradient(135deg,var(--accent-red) 0%,#c7493f 100%);box-shadow:var(--shadow-red)}.tab-label{font-size:.98rem}.tab-count{display:inline-grid;place-items:center;min-width:1.7rem;height:1.7rem;padding:0 .5rem;border-radius:999px;font-size:.74rem;font-weight:700;letter-spacing:.01em;background:#3e2a2817;color:var(--text-primary)}.header-tab.active .tab-count{background:#ffffff3d;color:#fff}@media(max-width:1150px){.header-content{gap:.8rem}.header-search{max-width:360px}.header-tab{padding:.7rem 1rem;font-size:.9rem}.tab-label{font-size:.9rem}}@media(max-width:920px){.header-content{flex-wrap:wrap}.header-left{width:100%}.header-search{max-width:none}.header-tabs{width:100%;margin-left:0}.header-tab{flex:1}}@media(max-width:640px){.header-content{padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) .75rem max(.75rem,env(safe-area-inset-left));gap:.6rem}.header-logo{height:56px}.header-search{min-height:46px;padding:0 .7rem;gap:.5rem}.search-input{font-size:16px}.header-tabs{padding:.3rem;gap:.2rem;border-radius:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap}.header-tabs::-webkit-scrollbar{display:none}.header-tab{min-height:44px;padding:.6rem .65rem;gap:.3rem;flex:0 0 auto}.tab-label{font-size:.78rem}.tab-count{min-width:1.35rem;height:1.35rem;font-size:.63rem}}@media(max-width:380px){.header-logo{height:48px}.header-search{min-height:44px}.tab-label{font-size:.68rem}}.movie-card{height:100%;display:flex;flex-direction:column;overflow:hidden;border-radius:16px;border:1px solid rgba(62,42,40,.12);background:linear-gradient(180deg,#f8efd9,#f5ead2);box-shadow:var(--shadow-md);cursor:pointer;transition:transform .26s ease,box-shadow .26s ease,border-color .26s ease}.movie-card:hover{transform:translateY(-6px);border-color:#d65a4f8c;box-shadow:var(--shadow-xl),0 0 0 1px #d65a4f38}.movie-card:focus-visible{outline:none;transform:translateY(-3px);border-color:#d65a4fa3;box-shadow:0 0 0 4px #d65a4f3d,var(--shadow-lg)}.card-entrance{opacity:0;animation:fadeSlideUp .44s cubic-bezier(.16,1,.3,1) forwards;animation-delay:calc(var(--card-index) * 36ms)}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.movie-poster-container{position:relative;width:100%;aspect-ratio:2 / 3;background:var(--bg-tertiary);border-bottom:1px solid rgba(62,42,40,.1);overflow:hidden}.movie-poster-container:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0000 62%,#140c091f)}.movie-poster{width:100%;height:100%;object-fit:cover;transition:transform .28s ease}.movie-card:hover .movie-poster{transform:scale(1.04)}.poster-placeholder{width:100%;height:100%;display:grid;place-items:center;text-align:center;color:var(--text-muted);background:linear-gradient(135deg,#efe3c8,#f9efd9)}.poster-placeholder span{font-size:2.85rem;display:block}.poster-placeholder p{margin:.15rem 0 0;font-size:.9rem;font-weight:600}.movie-info{flex:1;display:flex;flex-direction:column;gap:.34rem;padding:.8rem .84rem .92rem}.movie-title{margin:0;color:var(--text-primary);font-size:clamp(1.01rem,.85vw,1.18rem);font-weight:700;line-height:1.18;letter-spacing:.01em;display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;transition:color .22s ease}.movie-card:hover .movie-title{color:#c4483f}.movie-genre,.movie-date,.movie-where-to-watch{display:flex;align-items:center;gap:.3rem;color:var(--text-secondary);font-size:.82rem;font-weight:500}.movie-date,.movie-where-to-watch{color:var(--text-muted);font-size:.8rem}.genre-emoji,.date-icon,.watch-icon{font-size:.82rem;line-height:1}.genre-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.watch-status{min-height:1.45rem;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-top:.12rem}.watched-badge{display:inline-flex;align-items:center;justify-content:center;min-height:1.35rem;padding:.16rem .5rem;border-radius:999px;font-size:.66rem;font-weight:700;letter-spacing:.02em;transition:transform .2s ease}.movie-card:hover .watched-badge{transform:translateY(-1px)}.watched-badge.cel{border:1px solid rgba(200,109,131,.45);background:#c86d8324;color:#a74a63}.watched-badge.sab{border:1px solid rgba(95,139,102,.45);background:#5f8b6624;color:#4d7453}.user-ratings{display:flex;flex-wrap:wrap;gap:.34rem;margin-top:.08rem}.user-rating{display:inline-flex;align-items:center;gap:.22rem;padding:.15rem .42rem;border-radius:6px;border:1px solid rgba(62,42,40,.16);background:#ffffff5c;font-size:.68rem}.user-label{color:var(--text-muted);font-weight:700}.sab-rating .user-label{color:#4d7453}.cel-rating .user-label{color:#a74a63}.star-rating{color:#d6a52e;letter-spacing:.03em;font-weight:700}.movie-ratings{margin-top:auto;padding-top:.55rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.28rem}.rating{border-radius:8px;border:1px solid rgba(62,42,40,.09);min-height:2.1rem;padding:.25rem .34rem;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05}.rating-label{font-size:.62rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.rating-value{margin-top:.18rem;font-size:.92rem;font-weight:800;letter-spacing:.01em}.rating.tmdb{background:#e8b84e2e}.rating.tmdb .rating-label{color:#a57a16}.rating.tmdb .rating-value{color:#8f6d13}.rating.imdb{background:#6a8e6533}.rating.imdb .rating-label{color:#466346}.rating.imdb .rating-value{color:#3f5d3f}.rating.rt{background:#d65a4f2e}.rating.rt .rating-label{color:#ab443a}.rating.rt .rating-value{color:#9a3d34}@media(max-width:1024px){.movie-info{padding:.78rem .8rem .88rem}.movie-title{font-size:1.02rem}}@media(max-width:640px){.movie-info{padding:.74rem .74rem .82rem;gap:.3rem}.movie-title{font-size:.98rem}.movie-genre,.movie-date,.movie-where-to-watch{font-size:.78rem}.rating{min-height:2rem}.rating-label{font-size:.58rem}.rating-value{font-size:.85rem}}@media(prefers-reduced-motion:reduce){.movie-card,.movie-poster,.watched-badge{transition:none}.movie-card:hover,.movie-card:focus-visible{transform:none}.card-entrance{animation:none;opacity:1}}.movie-card-skeleton{background:linear-gradient(180deg,#f8efd9,#f5ead2);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-md);border:1px solid rgba(62,42,40,.12);height:100%;display:flex;flex-direction:column}.skeleton-poster{width:100%;aspect-ratio:2 / 3;background:var(--bg-tertiary)}.skeleton-info{padding:.8rem .84rem .92rem;flex:1;display:flex;flex-direction:column;gap:.46rem}.skeleton-title{height:1rem;width:85%;background:#ede2c8e6;border-radius:4px}.skeleton-title-line-2{height:1rem;width:60%;background:#ede2c8e6;border-radius:4px;margin-bottom:.25rem}.skeleton-showtime,.skeleton-location{height:.8rem;width:70%;background:#ede2c8e6;border-radius:4px}.skeleton-ratings{display:flex;gap:.375rem;margin-top:auto;padding-top:.625rem}.skeleton-rating{flex:1;height:2.1rem;background:#ede2c8e6;border-radius:8px}.skeleton-platforms{display:flex;flex-wrap:wrap;gap:.375rem}.skeleton-platform{height:1.5rem;width:4rem;background:#ede2c8e6;border-radius:5px}.shimmer{background:linear-gradient(90deg,var(--bg-tertiary) 0%,var(--bg-sage) 50%,var(--bg-tertiary) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.shimmer{animation:none;background:var(--bg-tertiary)}}@media(max-width:768px){.skeleton-info{padding:.74rem}.skeleton-title,.skeleton-title-line-2{height:.95rem}.skeleton-showtime,.skeleton-location{height:.75rem}.skeleton-rating{height:2.25rem}.skeleton-platform{height:1.35rem;width:3.5rem}}.movie-grid-container{max-width:1520px;margin:0 auto;padding:1.6rem 1.15rem 2.25rem}.movie-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));align-items:start;gap:1.25rem;opacity:1;transform:translateY(0);transition:opacity .28s ease,transform .28s ease}.movie-grid.transitioning{opacity:0;transform:translateY(-8px)}.load-more-trigger{display:flex;justify-content:center;align-items:center;min-height:96px;margin-top:.75rem}.loading-spinner{color:var(--text-muted);font-size:.9rem}.movie-grid-empty{min-height:56vh;display:flex;align-items:center;justify-content:center;padding:2rem}.empty-state{text-align:center;color:var(--text-muted)}.empty-icon{font-size:4.5rem;display:block;margin-bottom:1rem;opacity:.5}.empty-state h2{color:var(--text-primary);font-size:1.5rem;margin:0 0 .55rem}.empty-state p{margin:0;font-size:1rem}@media(min-width:1680px){.movie-grid-container{max-width:1640px}.movie-grid{grid-template-columns:repeat(4,minmax(320px,1fr));gap:1.4rem}}@media(max-width:1024px){.movie-grid-container{padding:1.3rem 1rem 1.75rem}.movie-grid{grid-template-columns:repeat(3,minmax(220px,1fr));gap:1.05rem}}@media(max-width:780px){.movie-grid{grid-template-columns:repeat(2,minmax(180px,1fr));gap:.95rem}}@media(max-width:520px){.movie-grid-container{padding:.95rem .75rem 1.2rem}.movie-grid{grid-template-columns:1fr;gap:.9rem}}@media(prefers-reduced-motion:reduce){.movie-grid{transition:none}.movie-grid.transitioning{opacity:1;transform:none}}.modal-backdrop{position:fixed;inset:0;background:#3e2a2899;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem;overflow-y:auto;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff8e7f2;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-radius:16px;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;position:relative;box-shadow:var(--shadow-xl);border:3px solid var(--accent-red);animation:slideUp .3s ease-out}@supports not (backdrop-filter: blur(20px)){.modal-content{background:var(--bg-primary)}}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close{position:absolute;top:1rem;right:1rem;background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--accent-red);border:2px solid var(--accent-red);width:40px;height:40px;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10001;transition:all .2s ease;box-shadow:0 4px 12px #0003}.modal-close:hover{background:var(--accent-red);color:#fff;transform:rotate(90deg)}.modal-header{padding:2rem 2rem 1rem}.modal-title{color:var(--text-primary);font-size:2rem;font-weight:700;margin:0;padding-right:3rem}.status-badge{display:inline-block;margin-top:.75rem;padding:.4rem 1rem;border-radius:20px;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-badge.status-watched{background:linear-gradient(135deg,var(--accent-green) 0%,#588556 100%);color:#fff}.status-badge.status-to-watch{background:linear-gradient(135deg,var(--accent-yellow) 0%,#C49A2E 100%);color:var(--text-primary)}.status-badge.status-need-to-add-to-jar{background:linear-gradient(135deg,#9370db,#7b5dad);color:#fff}.modal-watch-status{display:flex;gap:1.5rem;flex-wrap:wrap}.watch-user{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-radius:12px;min-width:180px;flex:1}.watch-user.watched{background:#6a8e6526;border:2px solid var(--accent-green)}.watch-user.not-watched{background:#3e2a280d;border:2px solid var(--text-muted);opacity:.7}.watch-check{font-size:1.5rem;font-weight:700}.watch-user.watched .watch-check{color:var(--accent-green)}.watch-user.not-watched .watch-check{color:var(--text-muted)}.watch-name{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.watch-user-rating{margin-left:auto}.modal-star-rating{color:gold;font-size:1rem;letter-spacing:2px}.modal-body{padding:0 2rem 2rem}.trailer-container{margin-bottom:2rem}.trailer-wrapper{position:relative;width:100%;padding-bottom:56.25%;background:var(--bg-tertiary);border-radius:12px;overflow:hidden;border:1px solid var(--bg-tertiary)}.trailer-iframe{position:absolute;top:0;left:0;width:100%;height:100%}.modal-split-pane{display:flex;gap:2rem}.modal-split-pane .movie-details{flex:1;min-width:0}.modal-split-pane.has-badge .movie-details{flex:1}.genre-badge-container{flex-shrink:0;width:200px;display:flex;align-items:flex-start;justify-content:center;padding-top:1rem}.genre-badge-image{width:180px;height:180px;border-radius:50%;object-fit:cover;box-shadow:0 8px 24px #3e2a2833;border:4px solid var(--bg-secondary);transition:transform .3s ease,box-shadow .3s ease}.genre-badge-image:hover{transform:scale(1.05);box-shadow:0 12px 32px #3e2a284d}.movie-details{display:flex;flex-direction:column;gap:2rem}.detail-section{border-bottom:1px solid var(--bg-tertiary);padding-bottom:1.5rem}.detail-section:last-child{border-bottom:none;padding-bottom:0}.section-title{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0 0 1rem}.detail-item{display:flex;align-items:center;gap:.75rem;color:var(--text-muted);font-size:1rem;margin-bottom:.75rem}.detail-item:last-child{margin-bottom:0}.detail-icon{font-size:1.25rem;flex-shrink:0}.detail-text{line-height:1.5}.movie-summary{color:var(--text-secondary);font-size:1rem;line-height:1.7;margin:0}.modal-ratings{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.modal-rating{background:var(--bg-secondary);padding:1rem;border-radius:8px;display:flex;flex-direction:column;align-items:center;text-align:center}.rating-source{font-size:.875rem;font-weight:600;text-transform:uppercase;margin-bottom:.5rem}.rating-score{font-size:1.5rem;font-weight:700}.modal-rating.tmdb{border:2px solid #C4962A}.modal-rating.tmdb .rating-source{color:#c4962a}.modal-rating.tmdb .rating-score{color:#a67c1b}.modal-rating.imdb{border:2px solid var(--accent-green)}.modal-rating.imdb .rating-source{color:#4f6d4b}.modal-rating.imdb .rating-score{color:var(--accent-green)}.modal-rating.rt{border:2px solid var(--accent-red)}.modal-rating.rt .rating-source{color:#b84c41}.modal-rating.rt .rating-score{color:var(--accent-red)}.platform-category{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}.platform-category:last-child{margin-bottom:0}.platform-category-label{min-width:3.5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--text-muted);padding-top:.5rem}.modal-platforms{display:flex;flex-wrap:wrap;gap:.5rem;flex:1}.modal-platform-badge{color:#fff;padding:.4rem .75rem;border-radius:6px;font-size:.8rem;font-weight:500}.modal-platform-badge.streaming{background:linear-gradient(135deg,var(--accent-green) 0%,#588556 100%)}.modal-platform-badge.free{background:linear-gradient(135deg,#6b8dd6,#5271b8)}.modal-platform-badge.rent{background:linear-gradient(135deg,var(--accent-yellow) 0%,#C49A2E 100%);color:var(--text-primary)}.modal-platform-badge.buy{background:linear-gradient(135deg,var(--accent-red) 0%,#B84C41 100%)}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-track{background:var(--bg-secondary)}.modal-content::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:4px}.modal-content::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}@media(max-width:768px){.modal-backdrop{padding:0;align-items:flex-start;padding-top:env(safe-area-inset-top,0)}.modal-content{max-height:100vh;max-height:100dvh;min-height:100vh;min-height:100dvh;border-radius:0}.modal-header{padding:1.5rem 1rem 1rem;position:sticky;top:0;background:#fff8e7fa;z-index:2}.modal-title{font-size:1.5rem}.modal-body{padding:0 1rem 1.5rem}.modal-ratings{grid-template-columns:1fr}.modal-split-pane{flex-direction:column-reverse;gap:1.5rem}.genre-badge-container{width:100%;padding-top:0;padding-bottom:.5rem}.genre-badge-image{width:120px;height:120px}.modal-close{position:fixed;top:.75rem;right:.75rem;width:36px;height:36px;font-size:1.25rem}}@media(max-width:480px){.platform-category{flex-direction:column;gap:.5rem}.platform-category-label{padding-top:0}.modal-platforms{gap:.4rem}.modal-platform-badge{padding:.35rem .6rem;font-size:.75rem}}@media(max-width:375px){.modal-header{padding:1.25rem .875rem .875rem}.modal-title{font-size:1.35rem;padding-right:2.75rem}.modal-body{padding:0 .875rem 1.25rem}.section-title{font-size:1.1rem;margin-bottom:.875rem}.detail-item{font-size:.9rem;gap:.6rem;margin-bottom:.6rem}.detail-icon{font-size:1.1rem}.movie-summary{font-size:.9rem;line-height:1.6}.modal-rating{padding:.875rem}.rating-source{font-size:.8rem;margin-bottom:.4rem}.rating-score{font-size:1.35rem}.modal-platforms{gap:.4rem}.modal-platform-badge{padding:.35rem .65rem;font-size:.75rem}.modal-close{top:.65rem;right:.65rem;width:34px;height:34px;font-size:1.15rem}.modal-split-pane{gap:1rem}.genre-badge-image{width:100px;height:100px}}.compat-card{background:linear-gradient(160deg,#2e1610,#200e08);border:1px solid rgba(210,160,50,.28);border-radius:18px;padding:2rem;box-shadow:0 4px 24px #00000073,inset 0 1px #d2a0321f;text-align:center}.compat-heading{font-family:Fraunces,Georgia,serif;font-size:1.45rem;background:linear-gradient(135deg,#f5d47a,#e8b84e,#c9922a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1.5rem}.compat-score-wrap{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin-bottom:.75rem}.compat-score{font-family:Fraunces,Georgia,serif;font-size:clamp(3.5rem,10vw,5.5rem);font-weight:700;line-height:1;background:linear-gradient(135deg,#f5d47a,#fbe99a 40%,#c9922a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 20px rgba(210,160,50,.4))}.compat-label{font-size:1.15rem;font-weight:600;color:#e8c87a}.compat-rated-count{font-size:.85rem;color:#b89060;margin-bottom:1.75rem}.agree-card{max-width:400px;margin:0 auto;background:#0000004d;border:1px solid rgba(210,160,50,.18);border-radius:12px;padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.4rem;text-align:left}.agree-card-label{font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#b89060}.agree-card-title{font-size:.95rem;font-weight:600;color:#fdf0d5;line-height:1.3}.agree-card-ratings{display:flex;flex-direction:column;gap:.25rem;margin-top:.2rem}.agree-card-rating{display:flex;align-items:center;gap:.5rem}.rater-name{font-size:.78rem;font-weight:700;min-width:2rem}.rating-dots{display:inline-flex;align-items:center;gap:2px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%}.dot-full{background:var(--dot-color, #e8b84e)}.dot-half{background:linear-gradient(to right,var(--dot-color, #e8b84e) 50%,rgba(255,255,255,.1) 50%)}.dot-empty{background:#ffffff1a}.rating-number{font-size:.72rem;font-weight:600;color:#b89060;margin-left:3px}.rating-none{font-size:.78rem;color:#b89060}.compat-no-data{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:1.5rem 1rem;color:#b89060}.compat-no-data-icon{font-size:2.5rem}.compat-no-data p{font-size:.95rem;max-width:340px;line-height:1.6;color:#b89060}@media(max-width:640px){.compat-card{padding:1.5rem 1.25rem}}.achievements-section{background:linear-gradient(160deg,#2e1610,#200e08);border:1px solid rgba(210,160,50,.28);border-radius:18px;padding:2rem;box-shadow:0 4px 24px #00000073,inset 0 1px #d2a0321f}.achievements-heading{font-family:Fraunces,Georgia,serif;font-size:1.45rem;background:linear-gradient(135deg,#f5d47a,#e8b84e,#c9922a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1.25rem}.achievements-empty{display:flex;align-items:center;gap:.75rem;padding:1rem .5rem;color:#b89060;font-size:.95rem}.achievements-empty-icon{font-size:1.75rem;flex-shrink:0}.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.25rem}.badge-card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:1.75rem 1rem 1.25rem;border-radius:14px;background:linear-gradient(160deg,#3a1c10,#261008);border:1px solid rgba(210,160,50,.3);box-shadow:0 2px 12px #0006,inset 0 1px #d2a0321a;text-align:center;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;cursor:default}.badge-card:before{content:"";position:absolute;top:0;left:-100%;width:70%;height:100%;background:linear-gradient(120deg,transparent 0%,rgba(245,212,122,.18) 50%,transparent 100%);pointer-events:none}.badge-card:hover{transform:translateY(-6px) scale(1.08);border-color:#d2a032a6;box-shadow:0 8px 28px #00000080,0 0 20px #d2a03233,inset 0 1px #d2a03233}.badge-card:hover:before{animation:shimmer .65s ease forwards}@keyframes shimmer{to{left:130%}}.badge-card-image-wrap{width:110px;height:110px;display:grid;place-items:center;filter:drop-shadow(0 0 8px rgba(210,160,50,.35));transition:filter .22s ease}.badge-card:hover .badge-card-image-wrap{filter:drop-shadow(0 0 14px rgba(210,160,50,.65))}.badge-card-image{width:110px;height:110px;object-fit:contain}.badge-card-emoji{font-size:4rem;line-height:1}.badge-card-label{font-size:.88rem;font-weight:700;color:#f0d080;line-height:1.2}.badge-card-desc{font-size:.76rem;color:#b89060;line-height:1.3}@media(max-width:640px){.achievements-section{padding:1.5rem 1.25rem}.badges-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.85rem}.badge-card-image-wrap,.badge-card-image{width:88px;height:88px}.badge-card-emoji{font-size:3.25rem}}.timeline-section{background:linear-gradient(160deg,#2e1610,#200e08);border:1px solid rgba(210,160,50,.28);border-radius:18px;padding:2rem;box-shadow:0 4px 24px #00000073,inset 0 1px #d2a0321f}.timeline-heading{font-family:Fraunces,Georgia,serif;font-size:1.45rem;background:linear-gradient(135deg,#f5d47a,#e8b84e,#c9922a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1.5rem}.timeline-empty{display:flex;align-items:center;gap:.75rem;padding:1rem .5rem;color:#b89060;font-size:.95rem}.timeline-empty-icon{font-size:1.75rem;flex-shrink:0}.timeline-chart{display:flex;align-items:flex-end;gap:.5rem;height:160px;margin-bottom:2rem;overflow-x:auto;position:relative}.timeline-chart:after{content:"";position:absolute;bottom:2rem;left:0;right:0;height:1px;background:#d2a03233}.timeline-bar-col{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:44px;flex:1;max-width:72px;height:100%}.timeline-bar-area{flex:1;width:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px}.bar-count{font-size:.7rem;font-weight:700;color:#b89060;line-height:1}.timeline-bar{width:100%;height:var(--bar-height, 0%);min-height:6px;background:linear-gradient(180deg,#f5d47a,#c9922a);border-radius:5px 5px 0 0;box-shadow:0 0 12px #d2a03259;transition:height .4s ease}.bar-month-label{font-size:.62rem;font-weight:600;color:#ffffffb3;text-align:center;line-height:1.2;white-space:nowrap;flex-shrink:0}.bar-year{font-size:.55rem;opacity:.75}.timeline-groups{display:flex;flex-direction:column;gap:1.25rem}.timeline-group{border-left:3px solid rgba(210,160,50,.4);padding-left:1rem}.timeline-group-header{display:flex;align-items:baseline;gap:.65rem;margin-bottom:.65rem}.timeline-group-label{font-family:Fraunces,Georgia,serif;font-size:1rem;font-weight:600;color:#fff}.timeline-group-count{font-size:.78rem;color:#ffffff8c}.timeline-movie-list{list-style:none;display:flex;flex-direction:column;gap:.45rem}.timeline-movie-item{display:flex;align-items:center;gap:.65rem}.timeline-poster{width:28px;height:42px;object-fit:cover;border-radius:4px;flex-shrink:0;box-shadow:0 2px 6px #00000080}.timeline-poster-placeholder{width:28px;height:42px;border-radius:4px;background:#ffffff0f;display:grid;place-items:center;font-size:.9rem;flex-shrink:0}.timeline-movie-title{font-size:.9rem;font-weight:500;color:#fdf0d5;line-height:1.3}@media(max-width:640px){.timeline-section{padding:1.5rem 1.25rem}.timeline-chart{height:130px}}.stats-tab{max-width:860px;margin:0 auto;padding:2.5rem 1.5rem 5rem;display:flex;flex-direction:column;gap:2rem;position:relative;z-index:1}.stats-card{background:linear-gradient(160deg,#2e1610,#200e08);border:1px solid rgba(210,160,50,.28);border-radius:18px;box-shadow:0 4px 24px #00000073,inset 0 1px #d2a0321f}.stats-heading{font-family:Fraunces,Georgia,serif;font-size:1.45rem;background:linear-gradient(135deg,#f5d47a,#e8b84e,#c9922a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:1.5rem}@media(max-width:640px){.stats-tab{padding:1.5rem 1rem 3.5rem;gap:1.25rem}}.stats-bg-canvas{position:fixed;inset:0;width:100vw;height:100vh;pointer-events:none;z-index:0}.recap-slide{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:2rem 4rem 5rem;transition:background .4s ease}.recap-slide__inner{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%;max-width:620px;min-width:0;gap:1.25rem;color:#fff}.recap-emoji{font-size:clamp(4rem,12vw,7rem);line-height:1;filter:drop-shadow(0 4px 16px rgba(0,0,0,.4))}.recap-heading{font-family:Fraunces,Georgia,serif;font-size:clamp(1.8rem,5vw,3rem);font-weight:700;line-height:1.15;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.4);margin:0}.recap-label{display:inline-block;background:#ffffff26;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.3rem .9rem;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffffffd9}.recap-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.recap-chip{display:inline-block;background:#ffffff2e;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:.4rem 1rem;font-size:.9rem;font-weight:600;color:#fff;max-width:100%;overflow-wrap:break-word}.recap-commentary{font-size:clamp(.95rem,2.5vw,1.15rem);line-height:1.65;color:#ffffffd1;font-style:italic;max-width:480px;margin:0}.recap-ratings{display:flex;flex-direction:column;gap:.9rem;width:100%;max-width:320px}.recap-rater{display:flex;align-items:center;gap:.85rem}.recap-rater__name{font-size:.9rem;font-weight:700;letter-spacing:.04em;width:2.5rem;text-align:right;flex-shrink:0;color:#ffffffbf}.recap-dots{display:flex;gap:.55rem}.recap-dot{width:1.1rem;height:1.1rem;border-radius:50%;border:2px solid currentColor;display:block;transition:background .2s ease}.recap-dot--filled{background:currentColor}.recap-rater--cel{color:#f472b6}.recap-rater--sab{color:#4ade80}.recap-archetypes{display:flex;gap:1rem;width:100%;max-width:640px}.recap-archetype{flex:1;min-width:0;display:flex;flex-direction:column;gap:.6rem;background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:1.25rem 1rem;text-align:left}.recap-archetype__name{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.recap-archetype--cel .recap-archetype__name{color:#f472b6}.recap-archetype--sab .recap-archetype__name{color:#4ade80}.recap-archetype__title{font-family:Fraunces,Georgia,serif;font-size:clamp(1rem,2.5vw,1.3rem);font-weight:700;color:#fff;margin:0;line-height:1.2}.recap-archetype__text{font-size:.85rem;line-height:1.6;color:#ffffffbf;margin:0}.recap-slide__inner--cover .recap-emoji,.recap-slide__inner--end .recap-emoji{font-size:clamp(5rem,14vw,8rem)}.recap-slide__inner--cover .recap-heading{font-size:clamp(2rem,6vw,3.5rem)}@media(max-width:640px){.recap-slide{padding:1.5rem 3.25rem 4.5rem}}@media(max-width:520px){.recap-archetypes{flex-direction:column}.recap-archetype{text-align:center}.recap-rater__name{width:2rem}.recap-dot{width:.95rem;height:.95rem}}.recap-tab{display:flex;flex-direction:column;flex:1;min-height:0;transition:background .4s ease;position:relative}.recap-month-bar{display:flex;align-items:center;gap:.75rem;padding:.85rem 1.25rem;background:#00000040;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0;z-index:2}.recap-month-label{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff9;flex-shrink:0}.recap-month-select{background:#ffffff1f;border:1px solid rgba(255,255,255,.22);border-radius:8px;color:#fff;font-family:inherit;font-size:.95rem;font-weight:600;padding:.4rem .8rem;cursor:pointer;outline:none;transition:background .2s ease,border-color .2s ease;color-scheme:dark}.recap-month-select:hover,.recap-month-select:focus{background:#fff3;border-color:#fff6}.recap-slideshow{flex:1;min-height:0;position:relative;display:flex;align-items:center}.recap-loading{flex:1;display:flex;align-items:center;justify-content:center;color:#fff9;font-size:1.1rem;font-style:italic}.recap-slide-wrapper{flex:1;align-self:stretch;display:flex;align-items:stretch}.recap-slide-wrapper--out{opacity:0;transform:scale(.97);transition:opacity .18s ease,transform .18s ease}.recap-slide-wrapper--in{opacity:1;transform:scale(1);transition:opacity .25s ease .05s,transform .25s ease .05s}.recap-nav{flex-shrink:0;z-index:10;width:3.5rem;height:3.5rem;border-radius:50%;background:#00000040;border:1px solid rgba(255,255,255,.18);color:#ffffffd9;display:grid;place-items:center;cursor:pointer;transition:background .2s ease,opacity .2s ease,transform .2s ease;-webkit-tap-highlight-color:transparent;margin:0 .75rem}.recap-nav:hover:not(:disabled){background:#00000073;color:#fff;transform:scale(1.06)}.recap-nav:disabled{opacity:.2;cursor:default}.recap-progress{position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem;z-index:10;background:#0000004d;border-radius:999px;padding:.4rem .85rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.recap-progress-dot{width:.5rem;height:.5rem;border-radius:50%;background:#ffffff59;border:none;cursor:pointer;transition:background .2s ease,transform .2s ease;padding:0;flex-shrink:0;-webkit-tap-highlight-color:transparent}.recap-progress-dot--active{background:#fff;transform:scale(1.4)}.recap-progress-dot:hover:not(.recap-progress-dot--active){background:#ffffffa6}.recap-progress-counter{font-size:.75rem;font-weight:700;color:#ffffffb3;letter-spacing:.05em;margin-left:.25rem;white-space:nowrap}@media(max-width:640px){.recap-nav{position:absolute;top:50%;transform:translateY(-50%);margin:0;width:2.25rem;height:2.25rem}.recap-nav:hover:not(:disabled){transform:translateY(-50%) scale(1.06)}.recap-nav--prev{left:.4rem}.recap-nav--next{right:.4rem}.recap-progress{bottom:1rem}}.app{min-height:100vh;display:flex;flex-direction:column}.app--stats{background:#1c1008}.app--recap{background:#1a0a2e}.main-content{flex:1}.main-content--stats{background:radial-gradient(ellipse at 18% 40%,rgba(160,60,40,.18) 0%,transparent 55%),radial-gradient(ellipse at 82% 18%,rgba(210,155,40,.12) 0%,transparent 50%),radial-gradient(ellipse at 50% 90%,rgba(120,30,20,.14) 0%,transparent 45%),#1c1008}.main-content--recap{background:transparent;display:flex;flex-direction:column}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:2rem}.loading-spinner{width:60px;height:60px;border:4px solid var(--bg-tertiary);border-top:4px solid var(--accent-red);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1.5rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.loading-subtext{color:var(--text-muted);font-size:.9rem;margin:0;max-width:400px;text-align:center}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:2rem;text-align:center}.error-icon{font-size:4rem;margin-bottom:1rem}.error-title{color:var(--accent-red);font-size:1.5rem;font-weight:600;margin:0 0 1rem}.error-message{color:var(--text-muted);font-size:1rem;margin:0 0 1.5rem;max-width:500px}.error-fallback{background:var(--bg-secondary);border:1px solid var(--bg-tertiary);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;max-width:600px}.fallback-text{color:var(--accent-green);font-weight:600;margin:0 0 .75rem;font-size:1rem}.fallback-info{color:var(--text-secondary);font-size:.9rem;margin:0;line-height:1.6}.fallback-info code{background:var(--bg-primary);color:var(--accent-yellow);padding:.2rem .5rem;border-radius:4px;font-family:Courier New,monospace;font-size:.85rem}.retry-button{background:linear-gradient(135deg,var(--accent-red) 0%,#C04841 100%);color:#fff;padding:.75rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 6px #d65a4f4d}.retry-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #d65a4f80}.retry-button:active{transform:translateY(0)}.mock-data-banner{background:linear-gradient(135deg,#f9d371,#e8b84e);color:var(--espresso);padding:.75rem 1rem;text-align:center;font-weight:600;font-size:.9rem;box-shadow:0 2px 4px #3e2a2826;border-bottom:2px solid var(--accent-yellow)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;padding:3rem 2rem;text-align:center}.empty-icon{font-size:5rem;margin-bottom:1.5rem;opacity:.6}.empty-title{color:var(--text-primary);font-size:1.75rem;font-weight:600;margin:0 0 1rem}.empty-message{color:var(--text-muted);font-size:1.1rem;margin:0;max-width:400px;line-height:1.6}@media(max-width:768px){.loading-container,.error-container{min-height:50vh;padding:1.5rem}.loading-spinner{width:50px;height:50px}.loading-text{font-size:1.1rem}.loading-subtext{font-size:.85rem}.error-title{font-size:1.25rem}.error-message{font-size:.9rem}.retry-button{padding:.6rem 1.5rem;font-size:.9rem}.empty-title{font-size:1.5rem}.empty-message{font-size:1rem}}@media(max-width:375px){.loading-container,.error-container{padding:1rem}.loading-spinner{width:45px;height:45px}.loading-text{font-size:1rem}.loading-subtext{font-size:.8rem;max-width:90%}.error-icon{font-size:3rem}.error-title{font-size:1.1rem}.error-message{font-size:.85rem}.error-fallback{padding:1rem}.fallback-info{font-size:.85rem}.retry-button{padding:.55rem 1.25rem;font-size:.85rem}.mock-data-banner{font-size:.8rem;padding:.6rem .75rem}}
