:root{--primary: #CC0000;--primary-light: #E63333;--secondary: #8A8A8A;--amber: #FFD166;--dark: #1A1A1A;--surface: #222222;--surface-2: #2A2A2A;--text: #FFFFFF;--text-muted: rgba(255, 255, 255, .5);--text-faint: rgba(255, 255, 255, .25);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .15);--radius-sm: 8px;--radius: 12px;--radius-lg: 20px;--radius-xl: 28px;--shadow-pink: 0 4px 24px rgba(204, 0, 0, .3);--shadow-purple: 0 4px 24px rgba(138, 138, 138, .3)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:var(--dark);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;display:flex;flex-direction:column}.app{flex:1;display:flex;flex-direction:column}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.gradient-text{background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--radius);font-size:15px;font-weight:600;cursor:pointer;border:none;transition:all .2s ease;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;box-shadow:var(--shadow-pink)}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 30px #c006}.btn-secondary{background:#8a8a8a26;color:var(--secondary);border:1.5px solid rgba(138,138,138,.3)}.btn-secondary:hover:not(:disabled){background:#8a8a8a40}.btn-ghost{background:#ffffff0f;color:var(--text-muted);border:1.5px solid var(--border)}.btn-ghost:hover:not(:disabled){background:#ffffff1a;color:var(--text)}.btn-danger{background:#cc00001a;color:var(--primary);border:1.5px solid rgba(204,0,0,.2)}.btn-lg{padding:14px 32px;font-size:17px;border-radius:var(--radius-lg)}.btn-sm{padding:8px 16px;font-size:13px}.card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);padding:24px}.input{width:100%;background:#ffffff0f;border:1.5px solid var(--border);border-radius:var(--radius);padding:12px 16px;font-size:15px;color:var(--text);font-family:inherit;transition:border-color .2s;outline:none}.input::placeholder{color:var(--text-faint)}.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #cc00001a}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge-primary{background:#cc000026;color:var(--primary)}.badge-secondary{background:#8a8a8a26;color:var(--secondary)}.badge-amber{background:#ffd16626;color:var(--amber)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease forwards}.slide-down{animation:slideDown .3s ease forwards}.pulse{animation:pulse 2s ease infinite}.page{flex:1;padding:24px;max-width:1200px;margin:0 auto;width:100%}.page-header{margin-bottom:32px}.page-title{font-size:32px;font-weight:800;color:var(--text)}.spinner{width:36px;height:36px;border:3px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.divider{height:1px;background:var(--border);margin:16px 0}.avatar{border-radius:50%;object-fit:cover;background:var(--surface-2);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700;color:var(--text)}.btn:active:not(:disabled){transform:scale(.96)}.btn-primary:active:not(:disabled){transform:scale(.96) translateY(0)}.page-transition{animation:pageFadeIn .25s ease forwards}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes cardAppear{0%{transform:scale(.95) translateY(10px);opacity:.7}to{transform:scale(1) translateY(0);opacity:1}}.card-appear{animation:cardAppear .3s cubic-bezier(.34,1.56,.64,1) forwards}.confetti-piece{position:absolute;top:-20px;border-radius:2px;animation:confettiFall linear forwards;transform:rotate(0)}@keyframes confettiFall{0%{top:-10%;transform:rotate(0) scale(1);opacity:1}to{top:110%;transform:rotate(720deg) scale(.5);opacity:0}}.match-title-anim{animation:matchTitleAppear .6s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes matchTitleAppear{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.match-photo-left{animation:slideFromLeft .5s .2s cubic-bezier(.34,1.56,.64,1) both}.match-photo-right{animation:slideFromRight .5s .2s cubic-bezier(.34,1.56,.64,1) both}@keyframes slideFromLeft{0%{transform:translate(-100px) scale(.5);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes slideFromRight{0%{transform:translate(100px) scale(.5);opacity:0}to{transform:translate(0) scale(1);opacity:1}}.match-heart-anim{animation:heartPulse 1s .4s ease both}@keyframes heartPulse{0%{transform:scale(0);opacity:0}50%{transform:scale(1.4)}to{transform:scale(1);opacity:1}}.floating-particle{position:absolute;animation:floatUpDown 4s ease-in-out infinite;opacity:.3;pointer-events:none}@keyframes floatUpDown{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-30px) rotate(15deg)}}@keyframes ripple{0%{transform:scale(1);opacity:.4}to{transform:scale(2.5);opacity:0}}.ripple-ring{position:absolute;width:80px;height:80px;border-radius:50%;border:2px solid var(--primary);animation:ripple 2s ease-out infinite}.ripple-ring-delayed{animation-delay:1s}@keyframes toastIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toastOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@media (max-width: 768px){.page{padding:16px}.page-title{font-size:24px}}
