:root{--bg: #140a24;--bg-2: #1f1038;--card: #26163f;--ink: #f6f0ff;--ink-dim: #b7a6d6;--pop: #ffcf4d;--pop-deep: #ff9f1c;--yes: #37d67a;--no: #ff5470;--radius: 20px;--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:radial-gradient(120% 80% at 50% 0%,var(--bg-2) 0%,var(--bg) 60%);-webkit-font-smoothing:antialiased;overscroll-behavior:none;overflow-x:hidden;-webkit-user-select:none;user-select:none}#root{display:flex;justify-content:center}.app{width:100%;max-width:460px;min-height:100%;display:flex;flex-direction:column;padding:16px 16px calc(16px + var(--safe-b))}h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.02em}.brand{display:flex;align-items:center;gap:8px;font-size:26px;font-weight:800}.brand small{color:var(--ink-dim);font-weight:600;font-size:13px}.muted{color:var(--ink-dim)}.center{text-align:center}.spacer{flex:1}.row{display:flex;gap:10px;align-items:center}.stack{display:flex;flex-direction:column;gap:12px}button{font:inherit;cursor:pointer;border:none;border-radius:14px;padding:14px 18px;font-weight:700;color:#23122e;background:var(--pop);transition:transform .08s ease,filter .15s ease,opacity .15s}button:active{transform:scale(.97)}button:disabled{opacity:.45;cursor:default}button.ghost{background:transparent;color:var(--ink);border:1.5px solid #4a3568}button.ghost.sel{background:var(--pop);color:#23122e;border-color:var(--pop)}button.block{width:100%}button.waiting{background:#ffcf4d29;color:var(--pop);border:1.5px solid rgba(255,207,77,.4);cursor:default}button.waiting:disabled{opacity:1}button.waiting:active{transform:none}input{font:inherit;width:100%;padding:14px 16px;border-radius:14px;border:1.5px solid #4a3568;background:#1b0f30;color:var(--ink);outline:none;letter-spacing:.04em}input:focus{border-color:var(--pop-deep)}input.invalid{border-color:var(--no);background:#ff547014}.field-error{color:var(--no);font-size:13px;font-weight:600;margin:-4px 0 0}input.code{text-transform:uppercase;text-align:center;font-size:26px;font-weight:800;letter-spacing:.35em}.pill{display:inline-flex;align-items:center;gap:6px;background:#33204f;color:var(--ink-dim);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:600}.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--yes)}.deck{position:relative;flex:1;min-height:60vh;margin:8px 0 16px}.swipe-card{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius);background:linear-gradient(160deg,var(--card),#191029);box-shadow:0 18px 40px #00000073;overflow:hidden;display:flex;flex-direction:column;touch-action:none}.swipe-card .poster{flex:1;position:relative;overflow:hidden;display:flex;align-items:flex-end}.swipe-card .poster-fill{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;filter:blur(26px) brightness(.42);transform:scale(1.25)}.swipe-card .poster-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.swipe-card .poster.placeholder{align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(80% 60% at 50% 25%,#3a2360,#1a1030);text-align:center;padding:24px}.swipe-card .poster.placeholder .big{font-size:44px}.swipe-card .meta{padding:16px 18px;background:linear-gradient(0deg,#0a0514f5,#0a051400)}.swipe-card .meta h2{font-size:22px;line-height:1.1}.swipe-card .meta .sub{color:var(--ink-dim);font-size:14px;margin-top:4px}.badge{position:absolute;top:18px;font-size:28px;font-weight:900;padding:6px 14px;border-radius:12px;border:4px solid;opacity:0;transition:opacity .05s;pointer-events:none}.badge.like{left:18px;color:var(--yes);border-color:var(--yes);transform:rotate(-12deg)}.badge.nope{right:18px;color:var(--no);border-color:var(--no);transform:rotate(12deg)}.controls{display:flex;justify-content:center;gap:22px;align-items:center}.round{width:66px;height:66px;border-radius:50%;font-size:26px;display:flex;align-items:center;justify-content:center;padding:0;box-shadow:0 8px 20px #0006}.round.no{background:#2a1a3f;color:var(--no);border:2px solid var(--no)}.round.yes{background:#2a1a3f;color:var(--yes);border:2px solid var(--yes)}.round.info{width:52px;height:52px;font-size:18px;background:#2a1a3f;color:var(--pop);border:2px solid var(--pop)}.kbd-hint{text-align:center;font-size:13px;margin:10px 0 0;display:none}@media(hover:hover)and (pointer:fine){.kbd-hint{display:block}}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.matchbtn{position:relative;background:#33204f;color:var(--ink);padding:10px 14px;border-radius:12px}.matchbtn .count{position:absolute;top:-6px;right:-6px;background:var(--no);color:#fff;min-width:20px;height:20px;border-radius:10px;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 5px}.reel-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px}.reel-loader .reel-pop{font-size:56px;animation:reel-bounce 1s cubic-bezier(.3,.1,.3,1) infinite}.reel-loader p{margin:0}@keyframes reel-bounce{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-18px) scale(1.08)}55%{transform:translateY(0) scale(.96)}}@media(prefers-reduced-motion:reduce){.reel-loader .reel-pop{animation:none}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#080410b8;display:flex;align-items:flex-end;justify-content:center;z-index:20;animation:fade .18s ease}.sheet{width:100%;max-width:460px;background:var(--bg-2);border-radius:22px 22px 0 0;padding:20px 18px calc(20px + var(--safe-b));max-height:88vh;overflow-y:auto;animation:slideup .22s cubic-bezier(.2,.8,.2,1)}@keyframes fade{0%{opacity:0}}@keyframes slideup{0%{transform:translateY(100%)}}.scrim-center{align-items:center;padding:44px 16px}.modal-card{position:relative;width:100%;max-width:440px;max-height:100%;background:var(--bg-2);border:1px solid #3a2857;border-radius:22px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 30px 64px #0000009e;animation:pop .26s cubic-bezier(.2,1.2,.4,1)}.modal-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:22px 20px;scrollbar-width:thin;scrollbar-color:rgba(255,207,77,.55) rgba(255,255,255,.06)}.modal-body::-webkit-scrollbar{width:9px}.modal-body::-webkit-scrollbar-track{background:#ffffff0f}.modal-body::-webkit-scrollbar-thumb{background:#ffcf4d80;border-radius:8px;border:2px solid transparent;background-clip:content-box}.modal-x{position:absolute;top:12px;right:12px;z-index:3;width:36px;height:36px;border-radius:50%;padding:0;font-size:15px;font-weight:800;background:#ffcf4d29;color:var(--pop);border:1.5px solid var(--pop);display:grid;place-items:center}@media(min-width:620px){.scrim-center{padding:32px 16px}.modal-card{max-width:460px}}.detail-poster{width:100%;aspect-ratio:2/3;border-radius:16px;object-fit:cover;background:#241536}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#33204f;color:var(--ink-dim);padding:5px 10px;border-radius:999px;font-size:12px}.kv{display:grid;grid-template-columns:92px 1fr;gap:6px 12px;font-size:14px}.kv dt{color:var(--ink-dim)}.celebrate{align-items:center}@keyframes pop{0%{transform:scale(.7);opacity:0}}.match-wrap{position:relative;z-index:2;width:100%;max-width:320px;display:flex;flex-direction:column;align-items:center;animation:pop .42s cubic-bezier(.2,1.4,.4,1)}.bucket-crown{display:block;margin-bottom:-30px;filter:drop-shadow(0 10px 16px rgba(0,0,0,.45));animation:crown-bob 2.6s ease-in-out infinite}@keyframes crown-bob{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-4px) rotate(1.5deg)}}.match-card{width:100%;text-align:center;background:linear-gradient(180deg,#271641,#160c28);border:1px solid rgba(255,207,77,.28);border-radius:22px;padding:34px 20px 20px;box-shadow:0 26px 54px #0009}.popped-title{margin:0;font-size:23px;color:var(--pop)}.popped-poster{width:160px;border-radius:14px;display:block;margin:14px auto 12px;box-shadow:0 12px 28px #0009}.popped-name{margin:0;font-size:21px;line-height:1.15}.await-block{margin-top:16px}.await-badge{display:inline-block;padding:10px 20px;border-radius:999px;background:#37d67a24;color:var(--yes);border:1px solid rgba(55,214,122,.5);font-weight:800;font-size:16px}.linkbtn{background:none;color:var(--ink-dim);padding:8px;margin-top:4px;font-size:13px;font-weight:600;text-decoration:underline}.watch-tally{margin-top:16px;display:flex;flex-direction:column;align-items:center;gap:8px}.pips{display:flex;gap:7px}.pip{width:12px;height:12px;border-radius:50%;background:#3a2960;border:1px solid #4d3a72;transition:background .2s,transform .2s}.pip.on{background:var(--pop);border-color:var(--pop);box-shadow:0 0 10px #ffcf4d8c;transform:scale(1.12)}.tally-label{font-size:15px;font-weight:700;color:var(--ink)}.pop-confetti{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.pk-x{position:absolute;animation:pk-x var(--dur) linear var(--delay) infinite}.pk-y{display:block;animation:pk-y var(--dur) linear var(--delay) infinite}.kernel{display:block;width:14px;height:13px;background:#fff6e0;border-radius:55% 45% 52% 48%/55% 55% 45% 45%;box-shadow:-3px -2px 0 -1px #fffaf0,3px -2px 0 -2px #fbe6bf,3px 3px 0 -2px #fff3d6,-3px 3px 0 -2px #f0d59d;animation:kernel-spin var(--dur) linear var(--delay) infinite;will-change:transform}.kernel:before,.kernel:after{content:"";position:absolute;border-radius:50%}.kernel:before{width:8px;height:8px;top:-3px;left:2px;background:#fffaf0}.kernel:after{width:7px;height:7px;bottom:-3px;right:1px;background:#fbe6bf}@keyframes pk-x{0%{transform:translate(0);opacity:0}7%{opacity:1}to{transform:translate(var(--dx));opacity:1}}@keyframes pk-y{0%{transform:translateY(0);animation-timing-function:cubic-bezier(.3,.04,.4,1)}38%{transform:translateY(var(--rise));animation-timing-function:cubic-bezier(.5,0,.9,.55)}to{transform:translateY(112vh)}}@keyframes kernel-spin{0%{transform:rotate(0) scale(var(--scale))}to{transform:rotate(var(--rot)) scale(var(--scale))}}@media(prefers-reduced-motion:reduce){.pop-confetti{display:none}}.watch-screen{position:relative;overflow-x:clip;padding-top:20px;padding-bottom:8px}.watch-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-size:cover;background-position:center;filter:blur(34px) brightness(.3) saturate(1.15);transform:scale(1.2)}.watch-banner{text-align:center;color:var(--pop);font-weight:900;font-size:26px;line-height:1.12;letter-spacing:.02em;text-transform:uppercase;margin-bottom:18px;padding:0 6px;text-shadow:0 3px 22px rgba(255,207,77,.4);animation:banner-glow 2.4s ease-in-out infinite}@keyframes banner-glow{0%,to{opacity:.92}50%{opacity:1;transform:scale(1.015)}}.watch-main{display:flex;flex-direction:column;align-items:center}.watch-poster-col{display:flex;justify-content:center}.watch-info-col{width:100%}.watch-headline{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px}.watch-hero-poster{width:220px;aspect-ratio:2/3;object-fit:cover;border-radius:16px;box-shadow:0 18px 48px #000000b3;margin-bottom:16px;background:#241536}.watch-hero-poster.placeholder{display:grid;place-items:center;font-size:52px}.watch-title{margin:0;font-size:30px;line-height:1.06}.watch-meta{font-size:13.5px;margin-top:4px}.watch-ratings{justify-content:center;margin-top:10px}.watch-actions{width:100%;margin-top:26px}.watch-footer{flex:none;height:calc(24px + var(--safe-b))}@media(min-width:620px){.watch-screen{max-width:580px;padding-top:28px}.watch-banner{font-size:30px}.watch-hero-poster{width:280px}.watch-title{font-size:36px}.watch-meta{font-size:15px}}.watch-details{margin-top:18px;padding:14px 16px;background:#140b2280;border:1px solid #34224f;border-radius:16px}.wd-row{display:grid;grid-template-columns:72px 1fr;gap:4px 12px;font-size:13.5px;margin-bottom:8px}.wd-lbl{color:var(--pop);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.06em;padding-top:2px}.watch-synopsis{margin:8px 0 0;font-size:13.5px;line-height:1.5;color:var(--ink-dim)}.where-to-watch{margin-top:16px;padding:16px 16px 18px;background:linear-gradient(160deg,#33204f99,#140b2299);border:1px solid rgba(255,207,77,.28);border-radius:18px}.wtw-title{font-size:17px;font-weight:800;color:var(--pop);margin-bottom:2px}.prov-group{display:flex;align-items:flex-start;gap:14px;padding:14px 0;border-top:1px solid rgba(255,255,255,.14)}.prov-group:first-of-type{border-top:none;padding-top:6px}.prov-label{font-size:14px;font-weight:800;color:var(--ink);width:50px;flex:none;padding-top:16px}.prov-logos{display:flex;flex-wrap:wrap;gap:12px}.prov-logo-btn{padding:0;background:none;border:none;border-radius:12px;line-height:0;transition:transform .08s ease}.prov-logo-btn:active{transform:scale(.92)}.prov-logo{width:48px;height:48px;border-radius:12px;object-fit:cover;background:#241536;display:block;box-shadow:0 4px 12px #0006}.prov-name{font-size:13px;font-weight:600;padding:12px}.wtw-link{display:inline-block;margin-top:16px;font-size:14px;font-weight:700;color:var(--pop);text-decoration:none}.wtw-cta{margin-top:12px;text-decoration:none;text-align:center}.joined-card{display:flex;align-items:center;gap:13px;width:100%;padding:14px 16px;border-radius:18px;margin-top:10px;background:linear-gradient(150deg,#163a2a,#14251f);border:1px solid rgba(55,214,122,.4);box-shadow:0 12px 28px #00000061;animation:netpop .24s cubic-bezier(.2,.9,.3,1)}.joined-card .ic{flex:none;font-size:26px}.joined-card .tx{flex:1;min-width:0}.joined-card .lbl{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--yes);font-weight:800}.joined-card .ttl{font-weight:800;font-size:16px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.joined-card .sub{color:var(--ink-dim);font-size:12px;margin-top:2px}.presence{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block}.presence.on{background:var(--yes);box-shadow:0 0 0 3px #37d67a2e}.presence.off{background:#5a4a72}.list-item{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #2e1f47}.list-item .thumb{width:46px;height:68px;border-radius:8px;object-fit:cover;background:#241536;flex:none}.section-title{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--pop);margin:16px 0 4px}.toast{position:fixed;bottom:calc(20px + var(--safe-b));left:50%;transform:translate(-50%);background:#33204f;color:var(--ink);padding:12px 18px;border-radius:12px;z-index:30;box-shadow:0 8px 20px #0006;font-size:14px}.host-left-banner{display:flex;align-items:center;gap:13px;width:100%;padding:14px 16px;border-radius:18px;margin-bottom:4px;cursor:pointer;background:linear-gradient(150deg,#4a1d2c,#331522);border:1px solid rgba(255,84,112,.4);box-shadow:0 12px 28px #00000061;animation:netpop .24s cubic-bezier(.2,.9,.3,1)}.host-left-banner .ic{flex:none;font-size:24px}.host-left-banner .tx{flex:1;min-width:0}.host-left-banner .lbl{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--no);font-weight:800}.host-left-banner .sub{color:var(--ink-dim);font-size:13px;margin-top:2px}.net-card{display:flex;align-items:center;gap:13px;width:100%;padding:14px 14px 14px 16px;border-radius:18px;background:linear-gradient(150deg,#2c1856,#221434);border:1px solid rgba(255,207,77,.28);box-shadow:0 12px 28px #00000061;animation:netpop .24s cubic-bezier(.2,.9,.3,1)}@keyframes netpop{0%{opacity:0;transform:translateY(-6px)}}.net-card .ic{flex:none;color:var(--pop);display:grid;place-items:center}.net-card .tx{flex:1;min-width:0}.net-card .lbl{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--pop);font-weight:800}.net-card .ttl{font-weight:800;font-size:16px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.net-card .sub{color:var(--ink-dim);font-size:12px;letter-spacing:.22em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:2px}.net-card .go{flex:none;padding:11px 20px;border-radius:999px;font-size:15px}.net-card .x{flex:none;background:transparent;color:var(--ink-dim);border:1.5px solid #4a3568;border-radius:50%;width:30px;height:30px;padding:0;font-size:12px;display:grid;place-items:center}.nearby-tag{display:inline-flex;align-items:center;gap:5px;margin-left:10px;padding:3px 10px 3px 8px;border:1px solid rgba(255,207,77,.6);border-radius:999px;color:var(--pop);font-size:12.5px;font-weight:700;vertical-align:middle}.nearby-tag svg{display:block}
