:root{--fx-ease:cubic-bezier(.2,.8,.2,1)}
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
.btn,button,.reaction-chip,.photo-action,.sound-preview-button{position:relative;overflow:hidden;isolation:isolate;touch-action:manipulation}
.fx-ripple{position:absolute!important;border-radius:999px;pointer-events:none;z-index:0;background:currentColor;opacity:.13;transform:scale(0);animation:fx-ripple .58s var(--fx-ease) forwards}
@keyframes fx-ripple{to{opacity:0;transform:scale(1)}}
.fx-reveal{opacity:0;transform:translateY(12px) scale(.992);transition:opacity .42s var(--fx-ease) var(--fx-delay,0ms),transform .42s var(--fx-ease) var(--fx-delay,0ms)}
.fx-reveal.fx-visible{opacity:1;transform:none}
html[data-motion="reduced"] .fx-reveal{transform:translateY(3px);transition-duration:.2s}
.fx-tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;transition:transform .18s ease,box-shadow .2s ease;will-change:transform}
.fx-tilt:hover{box-shadow:0 20px 52px rgba(37,22,31,.12)}
.fx-pulse{animation:fx-pulse .55s var(--fx-ease)}
.fx-pulse-like{animation:fx-like .62s var(--fx-ease)}
@keyframes fx-pulse{35%{transform:scale(.96)}70%{transform:scale(1.035)}100%{transform:scale(1)}}
@keyframes fx-like{28%{transform:scale(.91) rotate(-2deg)}55%{transform:scale(1.08) rotate(1deg)}100%{transform:scale(1)}}
.fx-burst{position:fixed;z-index:3000;width:1px;height:1px;pointer-events:none}
.fx-burst i{position:absolute;left:0;top:0;color:#df4e7d;font-style:normal;font-size:16px;text-shadow:0 3px 12px rgba(217,75,123,.22);animation:fx-burst .82s var(--fx-ease) var(--delay,0ms) both}
@keyframes fx-burst{0%{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(0)}18%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(1.2) rotate(var(--r))}}
.fx-celebration{position:fixed;inset:0;z-index:2800;pointer-events:none;overflow:hidden}
.fx-celebration i{position:absolute;top:-8vh;left:var(--x);font-style:normal;color:#df4e7d;font-size:clamp(14px,2vw,26px);filter:drop-shadow(0 5px 10px rgba(217,75,123,.16));animation:fx-fall var(--dur) var(--fx-ease) var(--delay) both;transform:scale(var(--scale))}
.fx-celebration i:nth-child(3n){color:#f0a3ba}.fx-celebration i:nth-child(4n){color:#a85f86}
@keyframes fx-fall{0%{opacity:0;transform:translate3d(0,-8vh,0) rotate(0) scale(var(--scale))}12%{opacity:1}100%{opacity:0;transform:translate3d(var(--drift),108vh,0) rotate(440deg) scale(var(--scale))}}
.fx-toast-stack{position:fixed;right:18px;top:82px;z-index:4000;display:grid;gap:10px;width:min(390px,calc(100vw - 36px));pointer-events:none}
.fx-toast{display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;padding:12px 12px;border:1px solid rgba(119,66,91,.13);border-radius:18px;background:rgba(255,251,253,.95);backdrop-filter:blur(18px);box-shadow:0 18px 60px rgba(54,29,42,.14);color:inherit;text-decoration:none;pointer-events:auto;opacity:0;transform:translateY(-8px) scale(.985);transition:.22s var(--fx-ease)}
.fx-toast.is-visible{opacity:1;transform:none}.fx-toast.is-leaving{opacity:0;transform:translateY(-6px) scale(.985)}
.fx-toast-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(135deg,#fff0f5,#f9d9e4);color:#d94b7b;font-weight:800;font-size:18px}
.fx-toast strong,.fx-toast small{display:block}.fx-toast strong{font-size:14px}.fx-toast small{margin-top:2px;line-height:1.35;color:#6e5d65}.fx-toast button{border:0;background:transparent;font-size:20px;color:#8b7780;cursor:pointer;padding:5px;z-index:2}
.settings-experience-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.75fr);gap:20px;align-items:start}.interaction-settings .section-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.sound-preview-button{border:1px solid rgba(217,75,123,.2);background:#fff6f9;color:#b93c68;border-radius:999px;padding:9px 13px;font:inherit;font-weight:700;cursor:pointer}.volume-row{display:grid;grid-template-columns:1fr minmax(180px,.65fr);gap:18px;align-items:center;padding:16px 0;border-bottom:1px solid rgba(80,50,65,.08)}.volume-row span strong,.volume-row span small{display:block}.volume-row span small{margin-top:4px;color:#75636c}.volume-row>div{display:grid;grid-template-columns:1fr 50px;gap:10px;align-items:center}.volume-row input[type=range]{width:100%;accent-color:#d94b7b}.volume-row output{font-variant-numeric:tabular-nums;color:#725866;font-weight:700}.motion-choice{border:0;padding:18px 0;margin:0 0 12px}.motion-choice legend{font-weight:800;margin-bottom:10px}.motion-choice label{display:flex;gap:12px;align-items:flex-start;padding:11px 0;cursor:pointer}.motion-choice label span strong,.motion-choice label span small{display:block}.motion-choice label span small{color:#75636c;margin-top:2px}.motion-choice input{margin-top:4px;accent-color:#d94b7b}.settings-links{display:grid;gap:8px}.settings-links>a{display:flex;flex-direction:column;padding:13px 14px;border-radius:14px;text-decoration:none;color:inherit;background:rgba(248,241,244,.62);border:1px solid transparent;transition:.2s ease}.settings-links>a:hover{border-color:rgba(217,75,123,.2);background:#fff7fa;transform:translateX(2px)}.settings-links>a span{font-weight:800}.settings-links>a small{color:#75636c;margin-top:2px}
.call-panel:not([hidden]){animation:fx-call-in .28s var(--fx-ease)}@keyframes fx-call-in{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
.typing.is-visible::after{content:'•••';display:inline-block;margin-left:5px;letter-spacing:2px;animation:fx-typing 1s steps(3,end) infinite}@keyframes fx-typing{50%{opacity:.35}}
.bubble-row.theirs:last-child .bubble{animation:fx-message-in .25s var(--fx-ease)}@keyframes fx-message-in{from{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:none}}
.random-video-stage:not([hidden]){animation:fx-connect-in .35s var(--fx-ease)}@keyframes fx-connect-in{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}
@media(max-width:760px){.settings-experience-grid{grid-template-columns:1fr}.volume-row{grid-template-columns:1fr}.fx-toast-stack{top:auto;bottom:88px;right:12px;width:calc(100vw - 24px)}}
@media(prefers-reduced-motion:reduce){.fx-tilt{transform:none!important}.fx-celebration{display:none}.fx-reveal{transform:none}}

header nav a,.mobile-dock a{position:relative;transition:color .18s ease,transform .18s ease,background .18s ease}
header nav a.is-active:not(.navbtn){color:#b73567}header nav a.is-active:not(.navbtn)::after{content:"";position:absolute;left:18%;right:18%;bottom:-9px;height:3px;border-radius:999px;background:linear-gradient(90deg,#d94b7b,#9f4b79);animation:fx-nav-in .24s var(--fx-ease)}
.mobile-dock a.is-active{color:#b73567;transform:translateY(-1px)}
@keyframes fx-nav-in{from{opacity:0;transform:scaleX(.3)}to{opacity:1;transform:scaleX(1)}}
.fx-live-indicator{display:flex;align-items:center;gap:6px;margin-left:12px;padding:5px 8px;border-radius:999px;background:#f7f2f5;color:#77646e;font-size:10px;font-weight:800;letter-spacing:.02em;white-space:nowrap}.fx-live-indicator i{width:7px;height:7px;border-radius:50%;background:#b7aab0;box-shadow:0 0 0 0 rgba(65,170,105,.25)}.fx-live-indicator[data-state="live"] i{background:#43a86d;animation:fx-live 2s infinite}.fx-live-indicator[data-state="fallback"] i{background:#d29a38}.fx-live-indicator[data-state="connecting"] i{background:#b7aab0;animation:fx-blink 1.2s infinite}.fx-live-indicator[data-state="live"] span{color:#3d8059}@keyframes fx-live{50%{box-shadow:0 0 0 5px rgba(65,170,105,0)}}@keyframes fx-blink{50%{opacity:.35}}
.person-card[data-swipe-direction]::after{position:absolute;top:24px;padding:8px 12px;border:3px solid currentColor;border-radius:10px;font-weight:900;letter-spacing:.12em;font-size:18px;z-index:5;pointer-events:none;background:rgba(255,255,255,.86);backdrop-filter:blur(6px)}.person-card[data-swipe-direction="like"]::after{content:"LIKE";right:18px;color:#c53f6c;transform:rotate(8deg)}.person-card[data-swipe-direction="pass"]::after{content:"PASS";left:18px;color:#7b7076;transform:rotate(-8deg)}
.person-photo img{transition:transform .45s var(--fx-ease),filter .3s ease}.person-card:hover .person-photo img{transform:scale(1.025)}
.conversation-item,.notification,.call-history-item{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.conversation-item:hover,.notification:hover,.call-history-item:hover{transform:translateY(-1px);border-color:rgba(217,75,123,.18);box-shadow:0 10px 24px rgba(70,35,52,.06)}
@media(max-width:1050px){.fx-live-indicator span{display:none}.fx-live-indicator{padding:6px;margin-left:6px}}
@media(max-width:760px){header .fx-live-indicator{display:none}header nav a.is-active:not(.navbtn)::after{display:none}}
.fx-toast.is-clickable{cursor:pointer}.fx-toast.is-clickable:hover{transform:translateY(-1px);border-color:rgba(217,75,123,.26);box-shadow:0 20px 64px rgba(54,29,42,.17)}
.random-queue.is-searching .random-queue-icon{animation:fx-search-float 1.7s var(--fx-ease) infinite;box-shadow:0 0 0 0 rgba(217,75,123,.22)}.random-queue.is-searching .random-queue-icon::after{content:"";position:absolute;inset:-10px;border:1px solid rgba(217,75,123,.25);border-radius:34px;animation:fx-search-ring 1.7s ease-out infinite}.random-queue-icon{position:relative}.random-queue.is-searching .random-status::after{content:"";display:inline-block;width:1.4em;text-align:left;animation:fx-search-dots 1.2s steps(4,end) infinite}@keyframes fx-search-float{50%{transform:translateY(-5px);box-shadow:0 12px 34px rgba(217,75,123,.20)}}@keyframes fx-search-ring{0%{opacity:.8;transform:scale(.88)}100%{opacity:0;transform:scale(1.28)}}@keyframes fx-search-dots{0%{content:""}25%{content:"."}50%{content:".."}75%,100%{content:"..."}}
