:root{--bg0: #0c0d10;--bg1: #14161c;--bg2: #1c1f28;--ink: #e8e6e1;--muted: #9a958c;--line: rgba(232, 230, 225, .1);--yes: #3dba7a;--no: #d45b5b;--skip: #7a8494;--accent: #e2b15a;--radius: 18px;--font: "DM Sans", system-ui, sans-serif;--display: "Fraunces", Georgia, serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%}body{font-family:var(--font);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,rgba(226,177,90,.12),transparent 55%),radial-gradient(900px 500px at 100% 0%,rgba(61,186,122,.08),transparent 50%),linear-gradient(180deg,var(--bg0),#090a0d 70%);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100%;max-width:480px;margin:0 auto;padding:16px 16px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-family:var(--display);font-weight:650;font-size:1.35rem;letter-spacing:-.02em}.muted{color:var(--muted)}.ghost-btn{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:8px 14px}.ghost-btn:hover{color:var(--ink);border-color:#e8e6e140}.panel{background:color-mix(in srgb,var(--bg1) 88%,transparent);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.login-panel{margin-top:12vh;display:flex;flex-direction:column;gap:16px}.login-panel h1{font-family:var(--display);font-weight:650;font-size:2rem;margin:0;letter-spacing:-.03em}.login-panel p{margin:0;color:var(--muted);line-height:1.45}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.field input{background:var(--bg0);border:1px solid var(--line);border-radius:12px;color:var(--ink);padding:12px 14px}.field input:focus{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);border-color:transparent}.primary-btn{background:var(--accent);color:#1a1408;border:none;border-radius:12px;padding:14px 16px;font-weight:600}.primary-btn:disabled{opacity:.5;cursor:not-allowed}.error{color:#ff8f8f;font-size:.9rem;margin:0}.home-actions{display:flex;flex-direction:column;gap:12px;margin-top:24px}.progress{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9rem}.swipe-stage{flex:1;display:flex;flex-direction:column;gap:14px;min-height:0}.card{position:relative;flex:1;min-height:420px;border-radius:calc(var(--radius) + 4px);overflow:hidden;background:var(--bg2);border:1px solid var(--line);touch-action:none;-webkit-user-select:none;user-select:none;transition:transform .15s ease,opacity .15s ease;will-change:transform}.card.flying-yes{transform:translate(120%) rotate(12deg);opacity:0}.card.flying-no{transform:translate(-120%) rotate(-12deg);opacity:0}.card.flying-skip{transform:translateY(40%) scale(.92);opacity:0}.poster{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;background:linear-gradient(160deg,#2a2e3a,#12141a)}.poster-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;text-align:center;font-family:var(--display);font-size:1.8rem;background:linear-gradient(160deg,#2a2e3a,#12141a)}.card-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#08090c26,#08090c33 40%,#08090ceb 78%,#08090c)}.card-body{position:absolute;left:0;right:0;bottom:0;padding:20px;display:flex;flex-direction:column;gap:8px}.badge-row{display:flex;flex-wrap:wrap;gap:6px}.badge{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;border-radius:999px;border:1px solid var(--line);color:var(--muted);background:#0c0d1073}.badge.library{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.card-title{font-family:var(--display);font-size:1.75rem;font-weight:650;margin:0;letter-spacing:-.02em;line-height:1.1}.meta{color:var(--muted);font-size:.92rem}.overview{margin:0;font-size:.92rem;line-height:1.4;color:color-mix(in srgb,var(--ink) 88%,var(--muted));display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.actions{display:grid;grid-template-columns:1fr .85fr 1fr;gap:10px}.act{border:none;border-radius:16px;padding:16px 10px;font-weight:600;color:#0c0d10}.act.no{background:var(--no)}.act.skip{background:var(--skip);color:#ebf0f7}.act.yes{background:var(--yes)}.waiting{flex:1;display:flex;flex-direction:column;justify-content:center;gap:12px;text-align:center;padding:32px 12px}.waiting h2{font-family:var(--display);font-size:1.8rem;margin:0}.pulse{width:14px;height:14px;margin:8px auto;border-radius:50%;background:var(--accent);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(.85);opacity:.55}50%{transform:scale(1.15);opacity:1}}.reveal{display:flex;flex-direction:column;gap:28px;padding-bottom:40px}.reveal-hero h1{font-family:var(--display);font-size:2.1rem;margin:0 0 8px;letter-spacing:-.03em}.reveal-section h2{font-family:var(--display);font-size:1.35rem;margin:0 0 12px}.match-list,.curious-list{display:flex;flex-direction:column;gap:10px}.match-item,.curious-item{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;padding:10px;border-radius:14px;background:var(--bg1);border:1px solid var(--line)}.match-item img,.curious-item img,.thumb-fallback{width:64px;height:96px;object-fit:cover;border-radius:8px;background:var(--bg2)}.thumb-fallback{display:grid;place-items:center;font-size:.7rem;color:var(--muted);text-align:center;padding:4px}.item-title{font-weight:600;margin:0 0 4px}.score-grid{display:grid;gap:12px}.score-stat{padding:16px;border-radius:14px;background:var(--bg1);border:1px solid var(--line)}.score-stat .big{font-family:var(--display);font-size:2.4rem;font-weight:650;letter-spacing:-.03em}.genre-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.empty{color:var(--muted);font-size:.95rem}.field select{background:var(--bg0);border:1px solid var(--line);border-radius:12px;color:var(--ink);padding:12px 14px}.taste-form fieldset,.taste-block{border:none;padding:0;margin:0 0 18px}.taste-block legend{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}.genre-pick{display:flex;flex-wrap:wrap;gap:6px}.chip{background:var(--bg0);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:8px 12px;font-size:.85rem}.chip.on{color:var(--ink);border-color:color-mix(in srgb,var(--accent) 70%,transparent);background:color-mix(in srgb,var(--accent) 18%,var(--bg0))}.chip.danger.on{border-color:color-mix(in srgb,var(--no) 70%,transparent);background:color-mix(in srgb,var(--no) 18%,var(--bg0))}.settings-tabs{display:flex;gap:8px;margin-bottom:16px}.pair-list{margin:0 0 16px;padding-left:18px;color:var(--ink)}.code-reveal{margin-top:12px;font-size:1.05rem}.code-reveal strong{font-family:var(--display);letter-spacing:.12em;font-size:1.35rem}.pair-panel h2{margin:0 0 8px}.watchsync-list{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:14px}.watchsync-row{display:flex;flex-direction:column;gap:8px}.watchsync-name{font-family:var(--display);font-size:1.05rem}.watchsync-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.watchsync-controls select{flex:1 1 160px;background:var(--bg0);border:1px solid var(--line);border-radius:12px;color:var(--ink);padding:12px 14px}.watchsync-readonly{color:var(--ink);font-size:.95rem}.ok-msg{color:var(--yes);font-size:.9rem}.danger-btn{background:color-mix(in srgb,var(--no) 22%,var(--bg0));border:1px solid color-mix(in srgb,var(--no) 55%,transparent);color:#f0c0c0;border-radius:999px;padding:8px 14px}.danger-btn:hover:not(:disabled){background:color-mix(in srgb,var(--no) 35%,var(--bg0))}.danger-btn:disabled{opacity:.5;cursor:not-allowed}.admin-panel{display:flex;flex-direction:column;gap:20px}.admin-subhead{font-family:var(--display);font-size:1.05rem;margin:0 0 10px}.admin-create{display:flex;flex-direction:column;gap:10px;padding-bottom:16px;border-bottom:1px solid var(--line)}.admin-user-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}.admin-user-row{display:flex;flex-direction:column;gap:10px;padding-bottom:16px;border-bottom:1px solid var(--line)}.admin-user-head{display:flex;flex-direction:column;gap:2px}.admin-user-actions{display:flex;flex-direction:column;gap:8px}.admin-delete-confirm{margin-top:8px;padding:16px;border:1px solid color-mix(in srgb,var(--no) 50%,transparent);border-radius:var(--radius);background:color-mix(in srgb,var(--no) 10%,var(--bg0))}.admin-delete-counts{margin:12px 0;padding-left:18px;display:grid;gap:4px}.settings-tabs{flex-wrap:wrap}
