:root{--ink:#fff7fb;--pink:#ff5ca8;--hot:#e51a78;--deep:#420829;--glass:rgba(255,255,255,.14);--line:rgba(255,255,255,.2);font-family:'DM Sans',sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 8% 5%,#f2529d 0,transparent 26%),radial-gradient(circle at 95% 78%,#7d1056 0,transparent 33%),linear-gradient(140deg,#32051f,#bd176c 52%,#670638);overflow:hidden}.ambient{position:fixed;width:390px;height:390px;filter:blur(65px);opacity:.5;border-radius:50%;pointer-events:none}.a1{background:#ff9fcb;top:-190px;right:-120px}.a2{background:#7014c4;bottom:-240px;left:-180px}.app-shell{max-width:520px;margin:auto;height:100dvh;position:relative;overflow:hidden}.screen{height:100%;padding:calc(25px + env(safe-area-inset-top)) 22px calc(90px + env(safe-area-inset-bottom));position:absolute;inset:0;overflow:auto;scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.hidden{display:none!important}.loader-screen,.message-screen{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:10px}.logo-mark{width:76px;height:76px;border:1px solid var(--line);border-radius:26px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(255,255,255,.3),rgba(255,255,255,.04));box-shadow:0 16px 45px #42032166;font:800 47px 'Playfair Display';transform:rotate(-8deg)}h1,h2{margin:0;font-family:'Playfair Display',serif}h1{font-size:33px;line-height:1}.loader-screen h1{font-size:44px}.loader-screen p,.message-screen p{color:#ffe3f1;margin:0}.spinner{width:30px;height:30px;border-radius:50%;border:3px solid #ffffff45;border-top-color:#fff;animation:spin .75s linear infinite;margin-top:13px}@keyframes spin{to{transform:rotate(360deg)}}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;opacity:.7}.pill,.badge{background:#ffffff25;border:1px solid var(--line);border-radius:99px;padding:8px 11px;font-weight:700;font-size:12px;backdrop-filter:blur(15px)}.card-zone{height:min(65vh,570px);display:flex;align-items:center;justify-content:center;perspective:1000px}.dating-card{height:100%;width:100%;border-radius:30px;position:relative;overflow:hidden;background:#531134;box-shadow:0 28px 55px #24011988;border:1px solid #ffffff38;touch-action:none;user-select:none}.dating-card img,.card-placeholder{width:100%;height:100%;object-fit:cover;display:block}.card-placeholder{background:linear-gradient(145deg,#f08abb,#86255e);display:grid;place-items:center;font:800 100px 'Playfair Display'}.dating-card:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#240013d9)}.card-info{position:absolute;z-index:1;bottom:0;padding:25px;width:100%}.card-info h2{font-size:31px;margin:0}.card-info p{margin:7px 0;font-size:14px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chips span{font-size:11px;padding:5px 9px;border-radius:99px;background:#ffffff26;border:1px solid #ffffff28}.empty{width:100%;padding:36px 18px;background:var(--glass);border:1px solid var(--line);border-radius:26px;text-align:center;backdrop-filter:blur(16px)}.swipe-actions{display:flex;justify-content:center;gap:28px;padding:22px}.round-btn{height:60px;width:60px;border:none;border-radius:50%;font-size:27px;font-weight:700;background:#ffffffdf;box-shadow:0 10px 25px #2a031b66;cursor:pointer}.round-btn.no{color:#d73874}.round-btn.heart{color:#fff;background:linear-gradient(135deg,#ff77b7,#d70969);transform:scale(1.15)}.bottom-nav{position:absolute;z-index:5;bottom:calc(12px + env(safe-area-inset-bottom));left:16px;right:16px;height:66px;border-radius:23px;background:rgba(54,6,34,.6);border:1px solid #ffffff35;backdrop-filter:blur(22px);display:flex;align-items:center;justify-content:space-around}.bottom-nav button{border:0;background:none;color:#f8cddd;display:flex;flex-direction:column;align-items:center;gap:3px;font:600 10px 'DM Sans';cursor:pointer}.bottom-nav b{font-size:21px;line-height:16px}.bottom-nav button.active{color:#fff}.bottom-nav button.active b{color:#ff79b5}.progress{display:flex;gap:6px;margin:5px 0 30px}.progress i{height:4px;flex:1;border-radius:99px;background:#ffffff30}.progress i.on{background:#fff}.onboarding h2{font-size:31px;margin-bottom:10px}.onboarding p{color:#f8cfe2;line-height:1.45}.choice-grid{display:grid;gap:12px;margin:27px 0}.choice{padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--glass);color:#fff;font:600 15px 'DM Sans';text-align:left;cursor:pointer}.choice.selected{border-color:#fff;background:#ffffff35;box-shadow:0 0 0 2px #ff9ac9}.field{display:block;margin:14px 0}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}.field input,.field textarea{width:100%;border:1px solid #ffffff33;border-radius:14px;padding:14px;background:#25031b42;color:#fff;font:15px 'DM Sans';outline:none}.field textarea{height:94px;resize:none}.interest-grid{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.interest{border:1px solid #ffffff33;background:#ffffff15;color:#fff;border-radius:99px;padding:9px 12px;font:13px 'DM Sans';cursor:pointer}.interest.selected{background:#fff;color:#930548}.primary{border:0;border-radius:15px;padding:16px;width:100%;background:linear-gradient(100deg,#ff77bb,#e4086b);color:#fff;font:700 15px 'DM Sans';box-shadow:0 12px 28px #7a044766;cursor:pointer;margin-top:12px}.matches-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.match-tile{min-height:210px;position:relative;border-radius:21px;overflow:hidden;background:#6e244e;border:1px solid var(--line);cursor:pointer}.match-tile img,.match-tile .avatar{width:100%;height:155px;object-fit:cover}.avatar{display:grid;place-items:center;font:800 50px 'Playfair Display';background:#ce5c93}.match-tile div:last-child{padding:11px;font-weight:700}.locked .match-tile img,.locked .match-tile .avatar{filter:blur(13px);transform:scale(1.1)}.lock-panel{grid-column:1/-1;background:linear-gradient(130deg,#ff89c0bb,#4d0b3acc);border:1px solid var(--line);border-radius:22px;padding:20px;text-align:center;backdrop-filter:blur(15px)}.lock-panel h2{font-size:23px}.profile-card{padding:20px;border-radius:25px;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(18px)}.profile-head{display:flex;gap:14px;align-items:center}.profile-photo{width:70px;height:70px;border-radius:22px;object-fit:cover;background:#de5797;display:grid;place-items:center;font:800 30px 'Playfair Display'}.profile-card p{line-height:1.5;color:#ffe0ef}.secondary{width:100%;border:1px solid var(--line);border-radius:13px;background:#ffffff17;color:white;padding:13px;font:600 14px 'DM Sans';margin-top:10px;cursor:pointer}.modal{position:fixed;z-index:10;inset:0;background:#21001899;display:grid;place-items:center;padding:22px;backdrop-filter:blur(8px)}.modal-card{position:relative;width:min(420px,100%);padding:29px 23px;background:linear-gradient(145deg,#6a1747,#360424);border:1px solid #ffffff42;border-radius:27px;box-shadow:0 26px 60px #20001499;text-align:center}.modal-card h2{font-size:29px}.close{position:absolute;right:13px;top:9px;background:none;border:0;color:white;font-size:28px;cursor:pointer}.back{font-size:27px;background:none;border:0;color:#fff;padding:0;margin-right:12px;cursor:pointer}.message-list{display:flex;flex-direction:column;gap:9px;padding-bottom:12px}.message{max-width:78%;padding:11px 13px;border-radius:16px 16px 16px 3px;background:#ffffff1d;border:1px solid #ffffff1b}.message.mine{align-self:flex-end;border-radius:16px 16px 3px 16px;background:#ff5ca899}.message small{display:block;opacity:.65;font-size:10px;margin-top:3px}.message-form{display:flex;position:absolute;bottom:calc(83px + env(safe-area-inset-bottom));left:22px;right:22px;gap:8px}.message-form input{min-width:0;flex:1;border:1px solid var(--line);border-radius:16px;background:#350424bb;color:white;padding:14px;font:14px 'DM Sans';outline:0}.message-form button{width:49px;border:0;border-radius:16px;background:#ff58a5;color:#fff;font-size:20px;cursor:pointer}@media(min-width:600px){body{padding:12px}.app-shell{border-radius:32px;height:calc(100dvh - 24px);box-shadow:0 15px 60px #1d001266}}
