:root{--bg: #0f0b1e;--bg-2: #1a1432;--fg: #f5f0ff;--muted: #a89fc8;--accent: #ff7a59;--accent-2: #ffc857;--card: #1f1940;--border: #342a5e}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--fg);background:radial-gradient(60rem 40rem at 10% -10%,#3a1f6e 0%,transparent 60%),radial-gradient(50rem 30rem at 100% 10%,#5a2a3d 0%,transparent 55%),var(--bg);-webkit-font-smoothing:antialiased}.page{width:100%;min-height:100vh;margin:0;padding:2.5rem clamp(1.25rem,4vw,4rem) 4rem;display:flex;flex-direction:column}.hero{text-align:center;padding:1rem 0 1.75rem;position:relative}.hero:after{content:"";position:absolute;left:50%;bottom:0;transform:translate(-50%);width:min(320px,40%);height:1px;background:linear-gradient(90deg,transparent,rgba(255,200,87,.35),rgba(255,122,89,.45),rgba(255,200,87,.35),transparent)}.hero-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.22em;color:var(--muted);padding:.35rem .85rem;border:1px solid var(--border);border-radius:999px;background:#ffffff05;margin-bottom:1rem}.hero-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #ff7a5933;animation:dotPulse 2.2s ease-in-out infinite}.hero h1{margin:0 0 .85rem;font-size:clamp(2.75rem,8vw,5.5rem);font-weight:800;line-height:.95;letter-spacing:-.04em;display:inline-flex;align-items:baseline;gap:clamp(.5rem,1.5vw,1rem);flex-wrap:wrap;justify-content:center}.hero-title-line{background:linear-gradient(135deg,#fff 0%,var(--accent-2) 35%,var(--accent) 70%,#ff4fa0 100%);background-size:220% 220%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:titleDrift 10s ease-in-out infinite;filter:drop-shadow(0 6px 30px rgba(255,122,89,.18))}.hero-amp{font-family:Georgia,Times New Roman,serif;font-style:italic;font-weight:400;color:var(--muted);font-size:.75em;transform:translateY(-.08em)}.hero p{margin:0 auto;max-width:46ch;color:#cfc4ee;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.55}section{margin-top:2.75rem}h2{font-size:1.1rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 1rem}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:0 0 1.25rem;padding:0 0 .85rem;border-bottom:1px solid var(--border);text-transform:none;letter-spacing:-.01em;color:var(--fg);font-size:clamp(1.35rem,2.4vw,1.75rem);font-weight:700;position:relative}.section-title:before{content:"";position:absolute;left:0;bottom:-1px;width:3.5rem;height:2px;background:linear-gradient(90deg,var(--accent-2),var(--accent));border-radius:2px}.section-title-text{display:inline-flex;align-items:baseline;gap:.55rem}.section-title-text:before{content:"🍽";font-size:.85em;filter:grayscale(.1)}.section-title-hint{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}@keyframes titleDrift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes dotPulse{0%,to{box-shadow:0 0 0 3px #ff7a5926}50%{box-shadow:0 0 0 6px #ff7a590d}}@media (prefers-reduced-motion: reduce){.hero-title-line,.hero-dot{animation:none}}.food-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem}.food-chip{display:flex;align-items:center;gap:.6rem;padding:.75rem .9rem;background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:14px;font:inherit;font-size:.95rem;cursor:pointer;text-align:left;transition:transform .12s ease,border-color .12s ease,background .12s ease}.food-chip:hover{transform:translateY(-1px);border-color:#4e3f8f}.food-chip.on{background:linear-gradient(135deg,#2d1b5a,#3c1f4a);border-color:var(--accent);box-shadow:0 0 0 3px #ff7a5926}.food-emoji{font-size:1.35rem}.actions{display:flex;gap:.75rem;margin-top:1.5rem;flex-wrap:wrap;justify-content:center;align-items:center}button.primary,button.ghost{font:inherit;font-weight:600;padding:.75rem 1.25rem;border-radius:12px;cursor:pointer;border:1px solid transparent;transition:transform .1s ease,opacity .12s ease}button.primary{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;gap:.6rem;padding:.9rem 1.6rem;font-size:1.05rem;letter-spacing:.01em;color:#1a0c04;background:linear-gradient(135deg,#ffd27a 0%,var(--accent-2) 35%,var(--accent) 75%,#ff4fa0 100%);background-size:220% 220%;border-radius:14px;box-shadow:0 10px 30px -8px #ff7a598c,0 0 0 1px #ffffff2e inset,0 1px #fff6 inset;animation:primaryDrift 7s ease-in-out infinite}button.primary:before{content:"";position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:conic-gradient(from 0deg,#fff0,#ffffff8c,#fff0 80deg,#fff0 360deg);animation:primarySpin 4.5s linear infinite;z-index:-1;opacity:.55}button.primary:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:12px;background:linear-gradient(135deg,#ffd27a 0%,var(--accent-2) 35%,var(--accent) 75%,#ff4fa0 100%);background-size:220% 220%;animation:primaryDrift 7s ease-in-out infinite;z-index:-1}.primary-shine{position:absolute;top:0;left:-40%;width:40%;height:100%;background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.55) 50%,transparent 80%);transform:skew(-20deg);animation:primaryShine 3.2s ease-in-out infinite;pointer-events:none}.primary-icon{font-size:1.2rem;filter:drop-shadow(0 1px 0 rgba(255,255,255,.5))}.primary-label{font-weight:700}.primary-chev{font-weight:700;transition:transform .18s ease}button.primary:not(:disabled):hover{transform:translateY(-2px) scale(1.02);box-shadow:0 16px 40px -10px #ff7a59b3,0 0 0 1px #ffffff38 inset,0 1px #ffffff80 inset}button.primary:not(:disabled):hover .primary-chev{transform:translate(4px)}button.primary:not(:disabled):active{transform:translateY(0) scale(.99)}button.primary:disabled{opacity:.45;cursor:not-allowed;animation:none;box-shadow:none}button.primary:disabled:before,button.primary:disabled .primary-shine{animation:none;opacity:0}@keyframes primaryDrift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes primarySpin{to{transform:rotate(360deg)}}@keyframes primaryShine{0%{left:-40%}60%{left:120%}to{left:120%}}@media (prefers-reduced-motion: reduce){button.primary,button.primary:before,button.primary:after,.primary-shine{animation:none}}button.ghost{background:transparent;color:var(--muted);border-color:var(--border)}button.ghost:hover{color:var(--fg);border-color:#4e3f8f}.movie-list{list-style:none;padding:0;margin:0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}footer{margin-top:auto;padding-top:3rem}.movie-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:.65rem;position:relative}.movie-card.from-tmdb{border-color:#01b4e459;box-shadow:0 0 0 1px #01b4e414 inset}.source-badge{position:absolute;top:.7rem;right:.85rem;font-size:.62rem;font-weight:700;letter-spacing:.18em;padding:.18rem .45rem;border-radius:999px;background:linear-gradient(135deg,#01b4e4,#90cea1);color:#001a2e;box-shadow:0 2px 6px #00000040}.more-error{margin:.85rem 0 0;text-align:center;color:#ffc2b3;font-size:.88rem}.skeleton-card{pointer-events:none}.skel-line{height:.85rem;border-radius:6px;background:linear-gradient(90deg,#2a2250,#3a3066,#2a2250);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.skel-title{height:1.1rem;width:65%;margin-bottom:.4rem}.skel-blurb{width:100%}.skel-blurb.short{width:80%}.skel-pills{display:flex;gap:.4rem;margin-top:.4rem}.skel-pill{width:4.5rem;height:1.3rem;border-radius:999px;background:linear-gradient(90deg,#2a2250,#3a3066,#2a2250);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite}.movie-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.movie-head h3{margin:0;font-size:1.1rem}.year{color:var(--muted);font-size:.85rem}.blurb{margin:0;color:#d6ceee;font-size:.95rem;line-height:1.45}.providers{display:flex;flex-direction:column;gap:.35rem}.providers-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.providers-row{display:flex;flex-wrap:wrap;gap:.35rem}.provider{font-size:.75rem;font-weight:600;letter-spacing:.02em;padding:.22rem .55rem;border-radius:999px;box-shadow:0 1px #ffffff14 inset,0 2px 6px #00000040;text-decoration:none;line-height:1.2}.provider-link{cursor:pointer;transition:transform .12s ease,filter .12s ease}.provider-link:hover{transform:translateY(-1px);filter:brightness(1.1)}.provider.skeleton{background:linear-gradient(90deg,#2a2250,#3a3066,#2a2250);background-size:200% 100%;color:var(--muted);animation:shimmer 1.2s ease-in-out infinite}.providers-empty{font-size:.85rem;color:var(--muted);font-style:italic}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.modal-note{margin:0;padding:0 1.5rem .5rem;color:var(--muted);font-size:.8rem;font-style:italic}.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto}.tag{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#ffffff0a;border:1px solid var(--border);padding:.2rem .5rem;border-radius:999px}.empty{color:var(--muted)}footer{text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:.85rem}.vipps-btn{display:inline-flex;align-items:center;gap:.65rem;padding:.55rem 1.05rem .55rem .9rem;background:#ff5b24;color:#fff;border-radius:999px;text-decoration:none;font-weight:600;font-size:.95rem;letter-spacing:.01em;box-shadow:0 6px 18px -6px #ff5b2499,0 0 0 1px #ffffff1a inset;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.vipps-btn:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 10px 24px -6px #ff5b24bf,0 0 0 1px #ffffff2e inset}.vipps-btn:active{transform:translateY(0)}.vipps-mark{font-family:Inter,system-ui,sans-serif;font-weight:800;font-size:1.2rem;letter-spacing:-.04em;line-height:1;background:#fff;color:#ff5b24;padding:.25rem .55rem .28rem;border-radius:999px}.vipps-sep{width:1px;height:1.1rem;background:#ffffff59}.vipps-label{white-space:nowrap}.user-bar{position:fixed;top:1rem;right:1rem;display:inline-flex;align-items:center;gap:.65rem;padding:.4rem .4rem .4rem .55rem;background:#1f1940d9;border:1px solid var(--border);border-radius:999px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:20;box-shadow:0 8px 24px -10px #00000080}.user-avatar{width:1.8rem;height:1.8rem;border-radius:50%;object-fit:cover}.user-avatar-fallback{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent-2),var(--accent));color:#1a0c04;font-weight:700;font-size:.85rem}.user-name{font-size:.85rem;color:var(--fg);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-signout{display:inline-flex;align-items:center;gap:.4rem;padding:.42rem .85rem .42rem .7rem;font:inherit;font-size:.82rem;font-weight:600;letter-spacing:.01em;color:var(--muted);background:#ffffff08;border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:color .14s ease,background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .1s ease}.user-signout-icon{flex-shrink:0;transition:transform .18s ease}.user-signout:hover:not(:disabled){color:#ffd9c2;background:linear-gradient(135deg,#ff7a592e,#ff4fa024);border-color:#ff7a598c;box-shadow:0 6px 18px -8px #ff7a598c,inset 0 0 0 1px #ffffff0d}.user-signout:hover:not(:disabled) .user-signout-icon{transform:translate(2px)}.user-signout:active:not(:disabled){transform:translateY(1px)}.user-signout:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #ff7a5940}.user-signout:disabled{opacity:.6;cursor:not-allowed}.auth-loading{display:flex;flex-direction:column;align-items:center;gap:.85rem;color:var(--muted);padding:3rem 1rem}.auth-spinner{width:2rem;height:2rem;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-missing{max-width:640px;margin:2rem auto;padding:1.5rem 1.75rem;background:var(--card);border:1px solid var(--border);border-radius:16px;color:var(--fg)}.auth-missing code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#ffffff0d;padding:.1rem .35rem;border-radius:6px;font-size:.9em}.auth-missing-steps{padding-left:1.2rem;line-height:1.6;color:#d6ceee}.auth-missing a{color:var(--accent-2)}.auth-wrap{display:flex;justify-content:center;padding:2rem 1rem 3rem}.auth-card{width:min(440px,100%);background:linear-gradient(180deg,#1f1940,#16102c);border:1px solid var(--border);border-radius:22px;padding:1.75rem 1.75rem 1.5rem;box-shadow:0 30px 80px -20px #00000080;position:relative;overflow:hidden}.auth-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--accent-2),var(--accent),#ff4fa0)}.auth-head{text-align:center;margin-bottom:1.25rem}.auth-eyebrow{display:inline-flex;align-items:center;gap:.45rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);padding:.3rem .75rem;border:1px solid var(--border);border-radius:999px;margin-bottom:.85rem}.auth-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #ff7a5933;animation:dotPulse 2.2s ease-in-out infinite}.auth-title{margin:0 0 .35rem;font-size:1.6rem;font-weight:700;letter-spacing:-.01em;color:var(--fg);text-transform:none}.auth-sub{margin:0;color:var(--muted);font-size:.95rem}.auth-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.auth-field{display:flex;flex-direction:column;gap:.3rem}.auth-field span{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.auth-field input{font:inherit;padding:.7rem .85rem;background:#00000040;border:1px solid var(--border);border-radius:10px;color:var(--fg);transition:border-color .12s,box-shadow .12s}.auth-field input::placeholder{color:#6f638f}.auth-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #ff7a592e}.auth-submit{width:100%;justify-content:center;margin-top:.25rem}.auth-error{margin:0;padding:.6rem .8rem;color:#ffc2b3;background:#ff4f4f1a;border:1px solid rgba(255,79,79,.3);border-radius:10px;font-size:.88rem}.auth-divider{display:flex;align-items:center;gap:.75rem;margin:1.1rem 0;color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.18em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-alt{display:flex;flex-direction:column;gap:.55rem}.google-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.7rem 1rem;background:#fff;color:#1a1a1a;border:1px solid #dadce0;border-radius:10px;font:inherit;font-weight:600;cursor:pointer;transition:transform .1s,box-shadow .12s}.google-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px -6px #00000080}.google-btn:disabled{opacity:.6;cursor:not-allowed}.guest-btn{width:100%;justify-content:center;text-align:center}.auth-toggle{margin:1.25rem 0 0;text-align:center;color:var(--muted);font-size:.9rem}.link-btn{background:none;border:none;color:var(--accent-2);font:inherit;font-weight:600;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}.link-btn:hover{color:var(--accent)}.cinema-curtain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none;overflow:hidden}.curtain-valance{position:absolute;top:0;left:0;right:0;height:clamp(48px,8vh,96px);background:radial-gradient(ellipse 60% 100% at 50% 100%,rgba(255,200,120,.18) 0%,transparent 60%),repeating-linear-gradient(to right,rgba(0,0,0,.45) 0 2px,transparent 2px 40px,rgba(255,230,180,.08) 40px 42px,transparent 42px 80px),linear-gradient(180deg,#4a0606,#2a0303);border-bottom:3px solid #d4a24a;box-shadow:0 12px 24px -4px #000000b3,inset 0 -6px 12px #00000080;transform:translateY(0);transition:transform 1.6s cubic-bezier(.7,0,.24,1);z-index:2}.cinema-curtain.opening .curtain-valance{transform:translateY(-110%)}.curtain-panel{position:absolute;top:0;bottom:0;width:52%;background:repeating-linear-gradient(to right,rgba(0,0,0,.55) 0 1px,transparent 1px 28px,rgba(255,210,170,.07) 28px 29px,transparent 29px 56px),linear-gradient(to right,#1a0202,#5c0808 18%,#8a1212 42%,#a01a1a,#8a1212 58%,#5c0808 82%,#1a0202);box-shadow:inset 0 0 80px #0000008c,inset 0 -20px 40px #0006;transition:transform 1.7s cubic-bezier(.76,0,.24,1)}.curtain-panel.left{left:0;transform:translate(0);border-right:2px solid rgba(0,0,0,.6)}.curtain-panel.right{right:0;transform:translate(0);border-left:2px solid rgba(0,0,0,.6)}.cinema-curtain.opening .curtain-panel.left{transform:translate(-102%)}.cinema-curtain.opening .curtain-panel.right{transform:translate(102%)}.curtain-trim{position:absolute;top:0;bottom:0;width:6px;background:linear-gradient(180deg,#e8c175,#a47828,#e8c175);box-shadow:0 0 10px #ffc87866}.curtain-panel.left .curtain-trim{right:0}.curtain-panel.right .curtain-trim{left:0}.curtain-spotlight{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 40% 55% at 50% 50%,rgba(255,220,150,.18) 0%,rgba(255,200,120,.06) 30%,transparent 70%);opacity:0;transition:opacity 1.2s ease-out .4s;z-index:1}.cinema-curtain.opening .curtain-spotlight{opacity:1}@media (prefers-reduced-motion: reduce){.cinema-curtain{display:none}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#090616b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1.25rem;z-index:50;animation:backdropIn .18s ease-out}.modal{position:relative;width:min(900px,100%);max-height:min(85vh,860px);display:flex;flex-direction:column;background:linear-gradient(180deg,#1f1940,#161029);border:1px solid var(--border);border-radius:20px;box-shadow:0 30px 80px -20px #000000b3,0 0 0 1px #ffffff0a inset;overflow:hidden;animation:modalIn .22s cubic-bezier(.2,.9,.25,1.1)}.modal:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--accent-2),var(--accent),#ff4fa0)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem .75rem}.modal-head h2{margin:0;color:var(--fg);font-size:1rem;letter-spacing:.12em}.modal-close{background:transparent;color:var(--muted);border:1px solid var(--border);width:2.25rem;height:2.25rem;border-radius:999px;font-size:1.35rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:color .12s,border-color .12s,background .12s}.modal-close:hover{color:var(--fg);border-color:var(--accent);background:#ff7a5914}.modal-body{padding:.5rem 1.5rem 1rem;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:.6rem;padding:1rem 1.5rem 1.25rem;border-top:1px solid var(--border);background:#00000026}.modal-primary{padding:.65rem 1.25rem;font-size:.95rem}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion: reduce){.modal-backdrop,.modal{animation:none}}
