:root{--color-void: #080808;--color-dark: #111010;--color-surface: #1a1916;--color-surface-2: #242220;--color-border: #2e2b28;--color-border-lit: #3d3935;--color-gold: #c9a84c;--color-gold-bright: #e8c56a;--color-gold-dim: #7a6530;--color-gold-glow: rgba(201, 168, 76, .15);--color-like: #4caf74;--color-like-glow: rgba(76, 175, 116, .2);--color-pass: #c94c4c;--color-pass-glow: rgba(201, 76, 76, .2);--color-text-primary: #f0ebe3;--color-text-secondary: #a89f94;--color-text-tertiary: #6b6460;--color-text-inverse: #080808;--font-display: "Playfair Display", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--weight-light: 300;--weight-regular: 400;--weight-medium: 500;--weight-bold: 700;--weight-black: 900;--leading-tight: 1.2;--leading-snug: 1.4;--leading-normal: 1.6;--leading-loose: 1.8;--tracking-tight: -.03em;--tracking-normal: 0em;--tracking-wide: .05em;--tracking-widest: .12em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.5);--shadow-lg: 0 8px 32px rgba(0,0,0,.6);--shadow-xl: 0 16px 48px rgba(0,0,0,.7);--shadow-gold: 0 0 24px var(--color-gold-glow);--shadow-card: 0 20px 60px rgba(0,0,0,.8), 0 4px 16px rgba(0,0,0,.5);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--transition-spring: .3s cubic-bezier(.34, 1.56, .64, 1);--max-width: 1200px;--nav-height: 64px;--card-width: 340px;--card-height: 500px;--card-width-sm: 300px;--card-height-sm: 440px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-body);font-weight:var(--weight-regular);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-void);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E")}#root{min-height:100vh;display:flex;flex-direction:column}img{display:block;max-width:100%}button{cursor:pointer;border:none;background:none;font-family:inherit}a{color:inherit;text-decoration:none}input,textarea,select{font-family:inherit;font-size:inherit}ul,ol{list-style:none}.font-display{font-family:var(--font-display)}.font-body{font-family:var(--font-body)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-gold{color:var(--color-gold)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.tracking-wide{letter-spacing:var(--tracking-wide)}.tracking-widest{letter-spacing:var(--tracking-widest)}.uppercase{text-transform:uppercase}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-6)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-radius:var(--radius-full);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;transition:all var(--transition-base);white-space:nowrap;outline:none}.btn:focus-visible{box-shadow:0 0 0 2px var(--color-gold)}.btn-primary{background:var(--color-gold);color:var(--color-text-inverse)}.btn-primary:hover{background:var(--color-gold-bright);box-shadow:var(--shadow-gold);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-ghost:hover{border-color:var(--color-border-lit);color:var(--color-text-primary);background:var(--color-surface)}.btn-icon{width:56px;height:56px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--text-xl);transition:all var(--transition-spring);border:2px solid var(--color-border);background:var(--color-surface)}.btn-icon:hover{transform:scale(1.1)}.btn-icon.like{border-color:var(--color-like);color:var(--color-like)}.btn-icon.like:hover{background:var(--color-like-glow);box-shadow:0 0 20px var(--color-like-glow)}.btn-icon.pass{border-color:var(--color-pass);color:var(--color-pass)}.btn-icon.pass:hover{background:var(--color-pass-glow);box-shadow:0 0 20px var(--color-pass-glow)}.movie-card{width:var(--card-width);height:var(--card-height);border-radius:var(--radius-2xl);overflow:hidden;box-shadow:var(--shadow-card);position:relative;background:var(--color-dark);-webkit-user-select:none;user-select:none;cursor:grab}.movie-card:active{cursor:grabbing}.movie-card__poster{width:100%;height:100%;object-fit:cover;display:block}.movie-card__gradient{position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(to top,rgba(8,8,8,.98) 0%,rgba(8,8,8,.7) 50%,transparent 100%)}.movie-card__info{position:absolute;bottom:0;left:0;right:0;padding:var(--space-6)}.movie-card__title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);color:var(--color-text-primary);margin-bottom:var(--space-1)}.movie-card__meta{font-size:var(--text-sm);color:var(--color-text-secondary);letter-spacing:var(--tracking-wide);text-transform:uppercase}.movie-card__stamp{position:absolute;top:var(--space-6);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-black);font-style:italic;letter-spacing:var(--tracking-wide);text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity var(--transition-fast)}.movie-card__stamp--like{left:var(--space-6);color:var(--color-like);border:3px solid var(--color-like);transform:rotate(-15deg)}.movie-card__stamp--pass{right:var(--space-6);color:var(--color-pass);border:3px solid var(--color-pass);transform:rotate(15deg)}.nav{height:var(--nav-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-8);border-bottom:1px solid var(--color-border);background:#080808eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:100}.nav__logo{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);font-style:italic;color:var(--color-gold);letter-spacing:var(--tracking-tight)}.nav__links{display:flex;align-items:center;gap:var(--space-8)}.nav__link{font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-text-tertiary);transition:color var(--transition-fast);position:relative}.nav__link:hover,.nav__link.active{color:var(--color-text-primary)}.nav__link.active:after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:1px;background:var(--color-gold)}.page{flex:1;display:flex;flex-direction:column;align-items:center;padding:var(--space-12) var(--space-6)}.page__header{text-align:center;margin-bottom:var(--space-10)}.page__title{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--weight-black);font-style:italic;color:var(--color-text-primary);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.page__subtitle{font-size:var(--text-sm);color:var(--color-text-tertiary);letter-spacing:var(--tracking-widest);text-transform:uppercase;margin-top:var(--space-3)}.gold-rule{width:40px;height:2px;background:var(--color-gold);margin:var(--space-4) auto}.swipe-deck{position:relative;width:var(--card-width);height:var(--card-height)}.swipe-controls{display:flex;justify-content:center;align-items:center;gap:var(--space-8);margin-top:var(--space-8)}.matches-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-4);width:100%;max-width:720px}.match-card{border-radius:var(--radius-lg);overflow:hidden;background:var(--color-dark);border:1px solid var(--color-border);transition:all var(--transition-base);cursor:pointer}.match-card:hover{border-color:var(--color-gold-dim);transform:translateY(-3px);box-shadow:var(--shadow-gold)}.match-card__poster{width:100%;aspect-ratio:2/3;object-fit:cover}.match-card__title{padding:var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);letter-spacing:var(--tracking-wide);line-height:var(--leading-snug)}.match-card--matched{border-color:var(--color-gold-dim);position:relative}.match-card--matched:before{content:"✦";position:absolute;top:var(--space-2);right:var(--space-2);background:var(--color-gold);color:var(--color-text-inverse);width:20px;height:20px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:10px;z-index:1}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(201,168,76,.08) 0%,transparent 70%),var(--color-void)}.login-card{width:100%;max-width:400px;background:var(--color-dark);border:1px solid var(--color-border);border-radius:var(--radius-2xl);padding:var(--space-12) var(--space-8);text-align:center;box-shadow:var(--shadow-xl)}.login-logo{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:var(--weight-black);font-style:italic;color:var(--color-gold);letter-spacing:var(--tracking-tight);line-height:1;margin-bottom:var(--space-2)}.login-tagline{font-size:var(--text-sm);color:var(--color-text-tertiary);letter-spacing:var(--tracking-widest);text-transform:uppercase;margin-bottom:var(--space-10)}.login-divider{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-6) 0;color:var(--color-text-tertiary);font-size:var(--text-xs);letter-spacing:var(--tracking-widest);text-transform:uppercase}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.input{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--color-text-primary);font-size:var(--text-base);font-family:var(--font-body);transition:border-color var(--transition-fast);outline:none}.input::placeholder{color:var(--color-text-tertiary)}.input:focus{border-color:var(--color-gold-dim);background:var(--color-surface-2)}.input-group{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-3)}.spinner{width:32px;height:32px;border:2px solid var(--color-border);border-top-color:var(--color-gold);border-radius:var(--radius-full);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{flex:1;display:flex;align-items:center;justify-content:center;min-height:100vh}.empty-state{text-align:center;padding:var(--space-16)}.empty-state__icon{font-size:48px;margin-bottom:var(--space-4);opacity:.4}.empty-state__title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);font-style:italic;color:var(--color-text-secondary);margin-bottom:var(--space-2)}.empty-state__body{font-size:var(--text-sm);color:var(--color-text-tertiary);max-width:280px;margin:0 auto}.toast{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-6);font-size:var(--text-sm);color:var(--color-text-secondary);text-align:center}.toast--success{border-color:var(--color-like);color:var(--color-like)}.toast--error{border-color:var(--color-pass);color:var(--color-pass)}@media (max-width: 480px){:root{--card-width: var(--card-width-sm);--card-height: var(--card-height-sm)}.nav{padding:0 var(--space-4)}.nav__links{gap:var(--space-4)}.page{padding:var(--space-8) var(--space-4)}.login-card{padding:var(--space-8) var(--space-6)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn var(--transition-slow) ease both}.animate-slide-up{animation:slideUp var(--transition-slow) ease both}.animate-pulse{animation:pulse 2s ease infinite}.stagger>*:nth-child(1){animation-delay:0ms}.stagger>*:nth-child(2){animation-delay:80ms}.stagger>*:nth-child(3){animation-delay:.16s}.stagger>*:nth-child(4){animation-delay:.24s}.stagger>*:nth-child(5){animation-delay:.32s}
