:root{--glass-white: rgba(255, 255, 255, .12);--glass-white-md: rgba(255, 255, 255, .2);--glass-white-lg: rgba(255, 255, 255, .3);--glass-dark: rgba(0, 0, 0, .18);--glass-dark-md: rgba(0, 0, 0, .28);--glass-border: rgba(255, 255, 255, .18);--glass-border-subtle: rgba(255, 255, 255, .09);--glass-border-bright: rgba(255, 255, 255, .45);--blur-sm: blur(8px);--blur-md: blur(18px);--blur-lg: blur(32px);--blur-xl: blur(60px);--shadow-glass: 0 8px 32px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.22);--shadow-float: 0 20px 60px rgba(0,0,0,.5), 0 4px 16px rgba(0,0,0,.3);--shadow-glow-rose: 0 0 40px rgba(244,63,94,.35);--reflection-top: linear-gradient(135deg, rgba(255,255,255,.35) 0%, rgba(255,255,255,0) 50%);--reflection-inner: inset 0 1px 1px rgba(255,255,255,.35), inset 0 -1px 1px rgba(0,0,0,.12);--accent-rose: #f43f5e;--accent-rose-glow: rgba(244,63,94,.35);--accent-amber: #f59e0b;--accent-aqua: #5ee7df;--accent-violet: #b490f5;--accent-lime: #a8f08a;--color-bg: #06080f;--color-surface: rgba(255,255,255,.04);--color-text: #ffffff;--color-text-muted: rgba(255,255,255,.5);--color-text-subtle: rgba(255,255,255,.3);--space-2xs: 4px;--space-xs: 8px;--space-sm: 12px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--space-3xl: 64px;--text-2xs: .65rem;--text-xs: .75rem;--text-sm: .82rem;--text-md: .9rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.3rem;--text-2xl: 1.6rem;--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 24px;--radius-2xl: 32px;--radius-full: 9999px;--z-base: 1;--z-raised: 10;--z-overlay: 100;--z-modal: 500;--z-toast: 800;--z-tooltip: 900;--ease-glass: cubic-bezier(.22, .68, 0, 1.2);--ease-liquid: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--dur-fast: .18s;--dur-mid: .36s;--dur-slow: .6s;--font-display: "Italiana", serif;--font-body: "DM Sans", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:var(--font-body);font-weight:300;color:var(--color-text);background:var(--color-bg);overflow-x:hidden;min-height:100vh}:focus{outline:none}:focus-visible{outline:2px solid var(--accent-rose);outline-offset:3px;border-radius:var(--radius-xs)}.scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.scene__blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.45;animation:blob-drift var(--dur, 18s) ease-in-out infinite alternate}.scene__blob--1{width:650px;height:650px;background:radial-gradient(circle,#f43f5eb3,#fb718533);top:-200px;left:-150px;--dur: 22s}.scene__blob--2{width:550px;height:550px;background:radial-gradient(circle,#b490f599,#ec48994d);bottom:-200px;right:-100px;--dur: 17s;animation-delay:-8s}.scene__blob--3{width:400px;height:400px;background:radial-gradient(circle,#f59e0b66,#f43f5e4d);top:35%;left:45%;--dur: 25s;animation-delay:-13s}@keyframes blob-drift{0%{transform:translate(0) scale(1)}33%{transform:translate(50px,-35px) scale(1.06)}66%{transform:translate(-35px,55px) scale(.94)}to{transform:translate(25px,25px) scale(1.03)}}.glass{backdrop-filter:var(--blur-md);-webkit-backdrop-filter:var(--blur-md);background:var(--glass-white);border:1px solid var(--glass-border);box-shadow:var(--shadow-glass);position:relative;overflow:hidden}.glass:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--reflection-top);pointer-events:none;border-radius:inherit;z-index:1}.glass--dark{background:var(--glass-dark-md);border-color:#ffffff14}.glass--bright{background:var(--glass-white-lg);border-color:var(--glass-border-bright)}.glass-card{border-radius:var(--radius-xl);padding:var(--space-xl);transition:transform var(--dur-mid) var(--ease-glass),box-shadow var(--dur-mid) var(--ease-glass),background var(--dur-mid)}.glass-card:hover{transform:translateY(-5px) scale(1.01);box-shadow:var(--shadow-float);background:var(--glass-white-md)}.glass-card:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;background:linear-gradient(135deg,#ffffff2e,#fff0 40%,#ffffff0f);opacity:0;transition:opacity var(--dur-mid);pointer-events:none;z-index:2}.glass-card:hover:after{opacity:1}.glass-btn{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);border:none;cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;letter-spacing:.04em;color:var(--color-text);text-decoration:none;position:relative;transition:transform var(--dur-fast) var(--ease-liquid),box-shadow var(--dur-fast),background var(--dur-fast)}.glass-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--reflection-top);pointer-events:none;z-index:1}.glass-btn>*{position:relative;z-index:2}.glass-btn:active{transform:scale(.96)}.glass-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.glass-btn--rose{background:linear-gradient(135deg,#f43f5e8c,#fb71858c);border:1px solid rgba(244,63,94,.5);box-shadow:0 4px 24px #f43f5e59,var(--reflection-inner)}.glass-btn--rose:hover{background:linear-gradient(135deg,#f43f5ebf,#fb7185bf);box-shadow:0 8px 36px #f43f5e80,var(--reflection-inner);transform:translateY(-2px)}.glass-btn--amber{background:linear-gradient(135deg,#f59e0b80,#fbbf2480);border:1px solid rgba(245,158,11,.45);box-shadow:0 4px 24px #f59e0b4d,var(--reflection-inner)}.glass-btn--amber:hover{transform:translateY(-2px);box-shadow:0 8px 36px #f59e0b73,var(--reflection-inner)}.glass-btn--ghost{background:var(--glass-white);border:1px solid var(--glass-border);box-shadow:var(--shadow-glass)}.glass-btn--ghost:hover{background:var(--glass-white-md);transform:translateY(-2px)}.glass-btn--danger{background:linear-gradient(135deg,#ef444473,#dc262673);border:1px solid rgba(239,68,68,.4);box-shadow:0 4px 24px #ef444440,var(--reflection-inner)}.glass-btn--danger:hover{transform:translateY(-2px);box-shadow:0 8px 36px #ef444473,var(--reflection-inner)}.glass-btn--icon{width:48px;height:48px;padding:0;justify-content:center}.glass-btn--sm{padding:var(--space-2xs) var(--space-md);font-size:var(--text-xs)}.glass-btn--lg{padding:var(--space-md) var(--space-xl);font-size:var(--text-base)}.glass-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 14px;border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:500;letter-spacing:.08em;text-transform:uppercase}.glass-badge--rose{background:#f43f5e33;border:1px solid rgba(244,63,94,.4);color:#fb7185;box-shadow:0 0 12px #f43f5e2e}.glass-badge--amber{background:#f59e0b33;border:1px solid rgba(245,158,11,.4);color:#fbbf24}.glass-badge--aqua{background:#5ee7df33;border:1px solid rgba(94,231,223,.4);color:var(--accent-aqua);box-shadow:0 0 12px #5ee7df26}.glass-badge--violet{background:#b490f533;border:1px solid rgba(180,144,245,.4);color:var(--accent-violet)}.glass-badge--success{background:#4ade8033;border:1px solid rgba(74,222,128,.4);color:#4ade80}.glass-badge--error{background:#ef444433;border:1px solid rgba(239,68,68,.4);color:#f87171}.glass-badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse-dot 2s ease infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.glass-input{width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--glass-border-subtle);background:var(--glass-white);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-md);outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast),background var(--dur-fast)}.glass-input::placeholder{opacity:.4}.glass-input:focus{border-color:#f43f5e80;background:var(--glass-white-md);box-shadow:0 0 0 3px #f43f5e26,var(--shadow-glass)}.glass-textarea{width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--glass-border-subtle);background:var(--glass-white);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-md);outline:none;resize:vertical;min-height:100px;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.glass-textarea::placeholder{opacity:.4}.glass-textarea:focus{border-color:#f43f5e80;background:var(--glass-white-md);box-shadow:0 0 0 3px #f43f5e26,var(--shadow-glass)}.glass-nav{display:flex;align-items:center;gap:4px;padding:var(--space-xs);border-radius:var(--radius-full)}.glass-nav__item{padding:9px 16px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:400;opacity:.55;cursor:pointer;transition:background var(--dur-fast),opacity var(--dur-fast),transform var(--dur-fast) var(--ease-liquid);display:flex;flex-direction:column;align-items:center;gap:4px;border:none;background:transparent;color:var(--color-text);font-family:var(--font-body)}.glass-nav__item:hover{opacity:1;transform:translateY(-1px)}.glass-nav__item--active{background:#f43f5e2e;border:1px solid rgba(244,63,94,.35);opacity:1;box-shadow:0 2px 16px #f43f5e40}.glass-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:end center;z-index:var(--z-modal);opacity:0;pointer-events:none;transition:opacity var(--dur-mid);padding:0}.glass-modal-backdrop.is-open{opacity:1;pointer-events:all}.glass-modal{border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;width:min(440px,100vw);max-height:88vh;overflow-y:auto;transform:translateY(40px);transition:transform var(--dur-slow) var(--ease-liquid),opacity var(--dur-slow);opacity:0;background:#0a0c18f2;border:1px solid rgba(255,255,255,.12);border-bottom:none;box-shadow:0 -20px 80px #0009,inset 0 1px #ffffff1a;backdrop-filter:var(--blur-lg);-webkit-backdrop-filter:var(--blur-lg);position:relative;-ms-overflow-style:none;scrollbar-width:none}.glass-modal::-webkit-scrollbar{display:none}.glass-modal:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent-rose),var(--accent-violet),var(--accent-amber));pointer-events:none}.glass-modal-backdrop.is-open .glass-modal{transform:translateY(0);opacity:1}.glass-modal__handle{width:36px;height:4px;border-radius:var(--radius-full);background:#fff3;margin:var(--space-md) auto var(--space-xs)}.glass-modal__header{padding:var(--space-md) var(--space-xl) var(--space-sm)}.glass-modal__body{padding:var(--space-sm) var(--space-xl) var(--space-xl)}.glass-toast-region{position:fixed;bottom:var(--space-2xl);left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--space-xs);pointer-events:none;width:min(360px,90vw)}.glass-toast{border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);display:flex;align-items:center;gap:var(--space-sm);pointer-events:all;cursor:pointer;animation:toast-in var(--dur-mid) var(--ease-liquid) both}.glass-toast.is-exiting{animation:toast-out var(--dur-mid) var(--ease-glass) forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0) scale(1);max-height:80px}to{opacity:0;transform:translateY(10px) scale(.9);max-height:0;padding:0;margin:0}}@keyframes cascade-in{0%{opacity:0;transform:translateY(20px) scale(.97);filter:blur(6px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes progress-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 var(--accent-rose-glow)}50%{box-shadow:0 0 24px 4px var(--accent-rose-glow)}}@keyframes skeleton-shimmer{0%{background-position:-200% center}to{background-position:200% center}}.skeleton{position:relative;overflow:hidden;border-radius:var(--radius-sm);background:var(--glass-white)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#fff0,#ffffff26,#fff0);background-size:200% auto;animation:skeleton-shimmer 1.8s linear infinite}.glass-switch-label{display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--text-sm);color:var(--color-text)}.glass-switch-label input{position:absolute;opacity:0;width:0;height:0}.glass-switch-track{position:relative;width:44px;height:24px;border-radius:var(--radius-full);border:1px solid var(--glass-border);background:var(--glass-white);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);transition:background var(--dur-fast),border-color var(--dur-fast),box-shadow var(--dur-fast);flex-shrink:0}.glass-switch-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#ffffffa6;border:1px solid rgba(255,255,255,.35);box-shadow:0 1px 4px #00000040;transition:transform var(--dur-fast) var(--ease-liquid),background var(--dur-fast)}.glass-switch-label input:checked+.glass-switch-track{background:#f43f5e4d;border-color:#f43f5ea6;box-shadow:0 0 14px #f43f5e38}.glass-switch-label input:checked+.glass-switch-track .glass-switch-thumb{transform:translate(20px);background:var(--accent-rose)}.sync-ring{width:56px;height:56px;border-radius:50%;border:2px solid rgba(244,63,94,.4);background:#f43f5e1f;backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:700;color:#fb7185;box-shadow:0 0 20px #f43f5e40;animation:pulse-glow 3s ease infinite}.trait-bar{height:5px;border-radius:var(--radius-full);background:#ffffff1a;overflow:hidden}.trait-bar__fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--accent-rose),var(--accent-amber));transform-origin:left;animation:progress-grow 1s var(--ease-liquid) both}.swipe-btn{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;position:relative;transition:transform var(--dur-fast) var(--ease-liquid),box-shadow var(--dur-fast)}.swipe-btn:hover{transform:scale(1.12)}.swipe-btn:active{transform:scale(.92)}.swipe-btn--pass{background:#6464784d;backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border:1px solid rgba(255,255,255,.12);box-shadow:0 4px 20px #00000059}.swipe-btn--like{background:linear-gradient(135deg,#f43f5e8c,#fb71858c);border:1px solid rgba(244,63,94,.5);box-shadow:0 4px 28px #f43f5e66}.swipe-btn--super{background:linear-gradient(135deg,#f59e0b8c,#fbbf248c);border:1px solid rgba(245,158,11,.5);box-shadow:0 4px 28px #f59e0b66}.swipe-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:var(--reflection-top);pointer-events:none}.progress-bar{height:5px;border-radius:var(--radius-full);background:#ffffff1a;overflow:hidden}.progress-bar__fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--accent-rose),var(--accent-amber));transform-origin:left;animation:progress-grow 1.2s var(--ease-liquid) .3s both}.msg-bubble{max-width:78%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);font-size:var(--text-sm);line-height:1.55;position:relative}.msg-bubble--them{background:var(--glass-white);backdrop-filter:var(--blur-sm);-webkit-backdrop-filter:var(--blur-sm);border:1px solid var(--glass-border-subtle);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-xs)}.msg-bubble--me{background:linear-gradient(135deg,#f43f5e73,#fb718573);border:1px solid rgba(244,63,94,.35);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-xs) var(--radius-lg)}.section-label{font-size:var(--text-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-subtle);font-weight:500}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.no-scrollbar::-webkit-scrollbar{display:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.scene__blob{animation:none!important}}
