:root{
  --bg:#fff7fb;
  --surface:#fff;
  --surface-soft:#fff0f7;
  --ink:#2b1522;
  --muted:#755d6a;
  --pink:#f74f96;
  --pink-dark:#d92f78;
  --cyan:#14cddd;
  --green:#20bd76;
  --line:rgba(217,47,120,.14);
  --shadow:0 20px 55px rgba(151,43,91,.13);
  --safe-bottom:env(safe-area-inset-bottom,0px);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg)}
button,input{font:inherit}
button{border:0;cursor:pointer}
button:focus-visible,input:focus-visible{outline:3px solid rgba(20,205,221,.38);outline-offset:3px}
body.modal-open{overflow:hidden}

.page{min-height:100vh;padding:14px 14px calc(104px + var(--safe-bottom));background:radial-gradient(circle at 10% -5%,rgba(247,79,150,.24),transparent 28%),radial-gradient(circle at 95% 4%,rgba(20,205,221,.2),transparent 26%),linear-gradient(180deg,#fffafd,#fff3f9 55%,#f3fdff)}
.wrap{width:min(100%,780px);margin:0 auto}
.header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:3px 2px 14px}
.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none;min-width:0}
.logo{width:48px;height:48px;object-fit:cover;border-radius:15px;background:#fff;box-shadow:0 10px 24px rgba(226,57,132,.2)}
.brand span{display:grid;gap:2px;min-width:0}
.brand strong{font-size:23px;line-height:1;font-weight:900;letter-spacing:-.04em}
.brand small{font-size:11px;line-height:1.3;color:var(--muted);font-weight:700;white-space:nowrap}
.age-badge{flex:0 0 auto;padding:8px 11px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.88);color:var(--pink-dark);font-size:12px;font-weight:900;box-shadow:0 8px 18px rgba(209,45,114,.08)}

.reveal{position:relative}
.js .reveal{opacity:0;transform:translateY(13px);filter:blur(2px);pointer-events:none}
.js .reveal.visible{opacity:1;transform:none;filter:none;pointer-events:auto;transition:opacity .72s ease,transform .72s cubic-bezier(.2,.75,.25,1),filter .72s ease}

.hero{position:relative;overflow:hidden;padding:24px 19px 19px;border:1px solid var(--line);border-radius:30px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,240,248,.96) 55%,rgba(239,253,255,.98));box-shadow:var(--shadow)}
.hero:after{content:"";position:absolute;right:-55px;top:-60px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(20,205,221,.25),transparent 68%);pointer-events:none}
.eyebrow,.section-kicker{color:var(--pink-dark);font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.eyebrow{display:flex;align-items:center;gap:7px;position:relative;z-index:1}
.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px rgba(32,189,118,.12);animation:pulse 1.8s ease-in-out infinite}
.hero h1{position:relative;z-index:1;max-width:630px;margin:13px 0 11px;font-size:clamp(34px,9.7vw,52px);line-height:.99;letter-spacing:-.055em;font-weight:950}
.hero p{position:relative;z-index:1;max-width:580px;margin:0 0 18px;color:var(--muted);font-size:15px;line-height:1.55;font-weight:600}
.primary-btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:58px;padding:14px 18px;border-radius:19px;background:linear-gradient(135deg,var(--pink),#f4418c 55%,var(--cyan));color:#fff;font-size:17px;font-weight:900;box-shadow:0 14px 30px rgba(228,53,129,.23),inset 0 1px 0 rgba(255,255,255,.28);transition:transform .18s ease,box-shadow .18s ease}
.primary-btn:active{transform:scale(.985);box-shadow:0 8px 20px rgba(228,53,129,.2)}
.hero-notes{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.hero-notes span{padding:7px 9px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.78);color:#684c5a;font-size:11px;font-weight:800}

.loading-strip{display:flex;align-items:center;gap:13px;margin:14px 2px;padding:12px 14px;border:1px solid rgba(20,205,221,.17);border-radius:18px;background:rgba(255,255,255,.8);box-shadow:0 10px 24px rgba(36,135,147,.07)}
.scanner{position:relative;display:grid;place-items:center;flex:0 0 auto;width:34px;height:34px;border:2px solid rgba(20,205,221,.25);border-radius:50%}
.scanner:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px rgba(20,205,221,.9)}
.scanner:after{content:"";position:absolute;inset:3px;border-top:2px solid var(--pink);border-radius:50%;animation:spin 1.4s linear infinite}
.loading-strip span:last-child{display:grid;gap:2px;min-width:0}
.loading-strip strong{font-size:13px}
.loading-strip small{color:var(--muted);font-size:11px;font-weight:650}

.profiles,.how-it-works{margin-top:15px;padding:17px;border:1px solid var(--line);border-radius:27px;background:rgba(255,255,255,.82);box-shadow:0 16px 40px rgba(160,51,98,.09)}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.section-head h2,.how-it-works h2{margin:4px 0 0;font-size:23px;line-height:1.08;letter-spacing:-.035em}
.live-pill{padding:6px 8px;border-radius:999px;background:#e9fff5;color:#0a965b;font-size:10px;font-weight:950;letter-spacing:.08em}
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.profile-card{position:relative;overflow:hidden;min-width:0;padding:0;border:1px solid rgba(255,255,255,.7);border-radius:20px;background:#19101a;color:#fff;text-align:left;box-shadow:0 12px 28px rgba(68,22,43,.18);aspect-ratio:3/4}
.profile-card img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .45s ease}
.profile-card:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(25,7,17,.9))}
.profile-card>span{position:absolute;z-index:1;left:11px;right:9px;bottom:10px;display:grid;gap:2px}
.profile-card strong{font-size:13px;line-height:1.2}
.profile-card small{color:rgba(255,255,255,.72);font-size:10px;font-weight:750}
.profile-card:active img{transform:scale(1.05)}

.how-it-works{margin-bottom:10px;background:linear-gradient(145deg,#fff,#fff4f9)}
.how-it-works ol{display:grid;gap:13px;margin:16px 0 0;padding:0;list-style:none}
.how-it-works li{display:flex;align-items:center;gap:12px}
.how-it-works li>b{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--cyan));color:#fff;font-size:16px}
.how-it-works li>span{display:grid;gap:2px}
.how-it-works li strong{font-size:14px}
.how-it-works li small{color:var(--muted);font-size:11px;line-height:1.35}

.sticky-cta{position:fixed;z-index:30;left:0;right:0;bottom:0;padding:9px 14px calc(9px + var(--safe-bottom));background:linear-gradient(transparent,rgba(255,247,251,.94) 20%,#fff7fb 50%);pointer-events:none}
.sticky-cta button{display:flex;align-items:center;justify-content:space-between;width:min(100%,760px);min-height:62px;margin:0 auto;padding:11px 16px 11px 19px;border-radius:21px;background:#2c1724;color:#fff;box-shadow:0 18px 44px rgba(54,20,38,.28);pointer-events:auto}
.sticky-cta span{font-size:16px;font-weight:900}
.sticky-cta small{padding:7px 9px;border-radius:999px;background:rgba(255,255,255,.11);font-size:10px;font-weight:750;color:rgba(255,255,255,.76)}

.overlay{position:fixed;z-index:100;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:18px 14px 0;background:rgba(40,18,31,.53);backdrop-filter:blur(9px);opacity:0;visibility:hidden;transition:opacity .24s ease,visibility .24s ease}
.overlay.open{opacity:1;visibility:visible}
.sheet{width:min(100%,540px);max-height:calc(100vh - 18px);overflow:auto;padding:9px 18px calc(22px + var(--safe-bottom));border-radius:29px 29px 0 0;background:#fff;box-shadow:0 -18px 60px rgba(65,20,42,.22);transform:translateY(28px);transition:transform .28s cubic-bezier(.2,.78,.25,1)}
.overlay.open .sheet{transform:none}
.sheet-handle{width:42px;height:5px;margin:0 auto 13px;border-radius:999px;background:#e9dce3}
.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.sheet-head span{color:var(--pink-dark);font-size:10px;font-weight:900;letter-spacing:.09em}
.sheet-head h2{margin:4px 0 0;font-size:28px;line-height:1.03;letter-spacing:-.045em}
.icon-btn{display:grid;place-items:center;flex:0 0 auto;width:43px;height:43px;border-radius:50%;background:var(--surface-soft);color:#6c4e5d;font-size:28px;line-height:1}
.sheet-copy{margin:11px 0 18px;color:var(--muted);font-size:13px;line-height:1.45}
.field-label,fieldset legend{display:block;margin:0 0 8px;color:#4b2e3d;font-size:13px;font-weight:900}
.text-input{width:100%;height:55px;margin-bottom:18px;padding:0 15px;border:1px solid #e8d7e0;border-radius:16px;background:#fffafd;color:var(--ink);font-size:16px;transition:border-color .18s ease,box-shadow .18s ease}
.text-input:focus{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(20,205,221,.1);outline:0}
fieldset{min-width:0;margin:0;padding:0;border:0}
.gender-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gender-options label{min-width:0;cursor:pointer}
.gender-options input{position:absolute;opacity:0;pointer-events:none}
.gender-options span{display:grid;place-items:center;min-height:119px;padding:13px 8px;border:1px solid #ead9e2;border-radius:19px;background:#fffafd;text-align:center;transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}
.gender-options b{display:grid;place-items:center;width:40px;height:40px;margin-bottom:6px;border-radius:50%;background:#fde3ef;color:var(--pink-dark);font-size:22px}
.gender-options strong{font-size:15px}
.gender-options small{margin-top:3px;color:var(--muted);font-size:9px;font-weight:700}
.gender-options input:checked+span{border-color:var(--pink);background:#fff0f7;box-shadow:0 0 0 3px rgba(247,79,150,.1);transform:translateY(-2px)}
.gender-options input:focus-visible+span{outline:3px solid rgba(20,205,221,.38);outline-offset:3px}
.form-error{min-height:20px;margin:10px 0 5px;color:#c62d68;font-size:12px;font-weight:800}
.privacy-note{margin:9px 4px 0;color:#8c7380;font-size:10px;line-height:1.4;text-align:center}

.center-overlay{align-items:center;padding:18px}
.matching-card,.success-card{width:min(100%,410px);padding:29px 22px 24px;border:1px solid rgba(255,255,255,.8);border-radius:30px;background:linear-gradient(155deg,#fff,#fff3f9 72%,#edfdff);box-shadow:0 28px 90px rgba(50,17,34,.3);text-align:center;transform:scale(.94);transition:transform .25s ease}
.overlay.open .matching-card,.overlay.open .success-card{transform:none}
.matching-card h2,.success-card h2{margin:8px 0 9px;font-size:27px;line-height:1.08;letter-spacing:-.045em}
.matching-card p,.success-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.45;font-weight:700}
.matching-card>small,.success-card>small{display:block;margin-top:12px;color:#8a7480;font-size:10px}
.radar{position:relative;display:grid;place-items:center;width:104px;height:104px;margin:0 auto 19px;border:1px solid rgba(20,205,221,.22);border-radius:50%;background:radial-gradient(circle,rgba(20,205,221,.14),rgba(247,79,150,.05) 50%,transparent 52%);overflow:hidden}
.radar:before,.radar:after{content:"";position:absolute;border:1px solid rgba(20,205,221,.18);border-radius:50%}
.radar:before{inset:20px}.radar:after{inset:38px}
.radar span{position:absolute;width:50%;height:50%;left:50%;top:0;transform-origin:left bottom;background:linear-gradient(135deg,rgba(20,205,221,.3),transparent 70%);animation:radar 1.6s linear infinite}
.radar i{position:relative;z-index:1;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--cyan));color:#fff;font-size:20px;font-style:normal;box-shadow:0 9px 24px rgba(232,63,137,.25)}
.progress-track{height:9px;margin:19px 0 9px;overflow:hidden;border-radius:999px;background:#f0e2e9}
.progress-track span{display:block;width:3%;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--pink),var(--cyan));transition:width .35s ease}
.success-icon{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 14px;border-radius:50%;background:#e4fbf1;color:#16965b;font-size:34px;font-weight:950;box-shadow:0 13px 30px rgba(32,189,118,.14)}
.success-card .primary-btn{margin-top:20px}

@keyframes pulse{50%{transform:scale(1.25);box-shadow:0 0 0 8px rgba(32,189,118,.06)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes radar{to{transform:rotate(360deg)}}

@media(min-width:640px){
  .page{padding-top:22px}.hero{padding:32px 28px 25px}.hero .primary-btn{width:280px}.profile-grid{grid-template-columns:repeat(4,1fr)}.profiles,.how-it-works{padding:21px}.how-it-works ol{grid-template-columns:repeat(3,1fr)}.how-it-works li{align-items:flex-start}.sheet{border-radius:29px;margin-bottom:18px;padding:11px 24px 25px}.overlay{align-items:center;padding:18px}
}
@media(max-width:350px){
  .brand small{display:none}.brand strong{font-size:21px}.hero{padding:21px 16px 17px}.hero h1{font-size:32px}.profiles{padding:13px}.profile-grid{gap:7px}.sticky-cta small{display:none}.gender-options span{min-height:108px}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal{filter:none;transform:none}
}
