:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0b0b10;--panel: #15151d;--panel-2: #1d1d28;--border: #262632;--text: #f1f1f4;--muted: #8a8a97;--accent: #ff4f81;--accent-2: #9b3cff;--green: #2ecc71;--danger: #ff4c4c;--radius: 18px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}:root[data-accent=ocean]{--accent: #3b9dff;--accent-2: #27c9c9}:root[data-accent=forest]{--accent: #3dd46a;--accent-2: #7fb6ff}:root[data-accent=amber]{--accent: #ffb547;--accent-2: #ff5a7a}:root[data-accent=rose]{--accent: #ff6a8a;--accent-2: #ff3db1}:root[data-theme=light]{color-scheme:light;--bg: #fbf9fb;--panel: #ffffff;--panel-2: #f4f2f6;--border: #e4e0e8;--text: #1a1822;--muted: #6b6876;--accent: #e73b72;--accent-2: #7c2fd8;--green: #1fa35a;--danger: #dc3a3a}@media (prefers-color-scheme: light){:root[data-theme=auto]{color-scheme:light;--bg: #fbf9fb;--panel: #ffffff;--panel-2: #f4f2f6;--border: #e4e0e8;--text: #1a1822;--muted: #6b6876;--accent: #e73b72;--accent-2: #7c2fd8;--green: #1fa35a;--danger: #dc3a3a}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}.app{min-height:100%;max-width:480px;margin:0 auto;padding:calc(var(--safe-top) + 16px) 20px calc(var(--safe-bottom) + 96px);display:flex;flex-direction:column;gap:20px}.title{font-size:28px;font-weight:700;letter-spacing:-.02em;margin:0}.subtitle{color:var(--muted);margin:0;font-size:15px;line-height:1.45}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.btn{width:100%;padding:16px;border-radius:14px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-size:17px;font-weight:600;cursor:pointer;transition:transform .08s ease,background .15s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));border:none;color:#fff}.btn.ghost{background:transparent}.btn.subtle{background:transparent;color:var(--muted);border-color:transparent}.btn.danger{background:transparent;color:var(--danger);border-color:var(--danger)}.big-yes{padding:32px 20px;font-size:22px;font-weight:700;border-radius:22px;background:linear-gradient(135deg,var(--accent),var(--accent-2));border:none;color:#fff;width:100%;cursor:pointer;box-shadow:0 10px 40px -10px #ff4f8180;transition:transform .08s}.big-yes:active{transform:scale(.98)}.big-yes.chosen{background:linear-gradient(135deg,#2ecc71,#27ae60);box-shadow:0 10px 40px -10px #2ecc7180}.row{display:flex;gap:10px}.row>*{flex:1}.col{display:flex;flex-direction:column;gap:10px}.input{width:100%;padding:14px 16px;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;color:var(--text);font-size:17px;font-family:inherit}.input:focus{outline:none;border-color:var(--accent)}.code-display{font-size:44px;font-weight:800;letter-spacing:.15em;text-align:center;padding:20px;background:var(--panel-2);border-radius:14px;font-variant-numeric:tabular-nums}.status-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:var(--panel-2);font-size:14px;color:var(--muted)}.stat{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:14px;text-align:center}.stat .n{font-size:28px;font-weight:700}.stat .l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar .cell{aspect-ratio:1;border-radius:8px;background:var(--panel-2);display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted)}.calendar .cell.matched{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:700}.calendar .cell.today{outline:2px solid var(--accent)}.calendar .hdr{font-size:11px;text-transform:uppercase;color:var(--muted);text-align:center}.toast{position:fixed;bottom:calc(var(--safe-bottom) + 20px);left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--border);padding:12px 18px;border-radius:999px;font-size:14px;z-index:100}.error{color:var(--danger);font-size:14px}.banner{padding:10px 14px;border-radius:10px;font-size:14px;display:flex;gap:8px;align-items:center;justify-content:space-between}.banner.warn{background:#3a2b0e;color:#ffd37a;border:1px solid #5a4014}.banner.err{background:#3a1414;color:#ffb4b4;border:1px solid #5a1f1f}.banner-x{background:transparent;border:none;color:inherit;font-size:18px;cursor:pointer}.muted{color:var(--muted)}.center{text-align:center}.space{flex:1}.nav{display:flex;gap:8px;justify-content:space-around;padding:10px 0 calc(10px + var(--safe-bottom));border-top:1px solid var(--border);position:fixed;left:0;right:0;bottom:0;max-width:480px;margin:0 auto;background:color-mix(in oklab,var(--bg) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:10}.nav button{background:transparent;border:none;color:var(--muted);font-size:13px;padding:8px 12px;cursor:pointer}.nav button.active{color:var(--text)}.match-banner{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;padding:24px;border-radius:18px;text-align:center;font-weight:700;font-size:20px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 10px 40px -10px #ff4f8180}50%{transform:scale(1.02);box-shadow:0 15px 50px -10px #ff4f81b3}}.qr-wrap{background:#fff;padding:16px;border-radius:14px;display:flex;justify-content:center}.qr-wrap img,.qr-wrap canvas{width:100%;max-width:220px}.scanner{border-radius:14px;overflow:hidden;background:#000}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:20px;z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;max-width:420px;width:100%}.modal p{line-height:1.5}.big-headline{font-size:32px;font-weight:700;letter-spacing:-.02em;margin:12px 0 0;text-align:center;line-height:1.1}.header-row{display:flex;justify-content:space-between;align-items:baseline}.center-text{text-align:center}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:10px 14px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);color:var(--text);font-size:14px;cursor:pointer;transition:transform .08s}.chip:active{transform:scale(.96)}.match-banner{text-align:center;padding:32px 24px}.who-badge{font-size:12px;color:var(--muted);padding:6px 10px;background:var(--panel-2);border:1px solid var(--border);border-radius:999px;align-self:flex-start}.who-badge strong{color:var(--text);font-weight:500}.paired-with{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between}.seg{display:flex;gap:6px;background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:4px}.seg-btn{flex:1;padding:10px;border-radius:8px;border:none;background:transparent;color:var(--muted);font-size:14px;cursor:pointer}.seg-btn.active{background:var(--panel);color:var(--text)}.swatch{display:block;width:20px;height:20px;border-radius:999px;background:linear-gradient(135deg,#ff4f81,#9b3cff);border:1px solid rgba(255,255,255,.15)}.swatch[data-accent=rose]{background:linear-gradient(135deg,#ff6a8a,#ff3db1)}.swatch[data-accent=ocean]{background:linear-gradient(135deg,#3b9dff,#27c9c9)}.swatch[data-accent=forest]{background:linear-gradient(135deg,#3dd46a,#7fb6ff)}.swatch[data-accent=amber]{background:linear-gradient(135deg,#ffb547,#ff5a7a)}.landing{min-height:100%;color:var(--text);background:radial-gradient(ellipse at top right,rgba(155,60,255,.12),transparent 60%),radial-gradient(ellipse at bottom left,rgba(255,79,129,.1),transparent 55%),var(--bg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}.landing-header{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;max-width:1120px;margin:0 auto}.landing-nav{display:flex;align-items:center;gap:20px}.landing-nav a{color:var(--muted);text-decoration:none;font-size:14px}.landing-nav a:hover{color:var(--text)}.btn-compact{padding:8px 14px;font-size:14px;width:auto}.hero{max-width:1120px;margin:0 auto;padding:40px 32px 80px;display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}.hero-title{font-size:clamp(36px,5.5vw,64px);font-weight:800;letter-spacing:-.03em;line-height:1.05;margin:0 0 20px}.hero-sub{font-size:clamp(16px,1.6vw,19px);line-height:1.6;color:#c9c7d1;max-width:540px;margin:0 0 32px}.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}.hero-fine{color:var(--muted);font-size:13px;margin-top:18px}.store-badge{display:inline-flex;flex-direction:column;justify-content:center;padding:10px 18px;border-radius:10px;background:#1a1a24;border:1px solid var(--border);color:var(--text);text-decoration:none;min-width:160px;transition:transform .08s,background .15s}.store-badge:hover{background:#20202d}.store-badge:active{transform:scale(.98)}.store-badge .badge-top{font-size:11px;color:var(--muted);line-height:1}.store-badge .badge-bottom{font-size:18px;font-weight:700;margin-top:3px;line-height:1}.hero-visual{display:flex;justify-content:center}.phone{width:280px;max-width:100%;border:10px solid #26262e;border-radius:48px;overflow:hidden;box-shadow:0 30px 80px -20px #ff4f8159,0 20px 60px -20px #9b3cff4d;background:var(--bg)}.phone img{width:100%;display:block}.promise{max-width:820px;margin:0 auto;padding:40px 32px 20px;text-align:center}.promise h2{font-size:clamp(28px,3.2vw,38px);margin:0 0 16px;letter-spacing:-.02em}.promise p{font-size:clamp(16px,1.4vw,18px);line-height:1.65;color:#c9c7d1;margin:0 auto}.features{max-width:1120px;margin:0 auto;padding:60px 32px 40px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature{background:var(--panel);border:1px solid var(--border);border-radius:18px;padding:24px}.feature-emoji{font-size:28px;line-height:1;margin-bottom:10px}.feature h3{font-size:17px;margin:0 0 6px}.feature p{color:var(--muted);font-size:14.5px;margin:0;line-height:1.55}.privacy-pledge{max-width:820px;margin:40px auto;padding:40px 32px;background:var(--panel);border:1px solid var(--border);border-radius:24px}.privacy-pledge h2{margin:0 0 16px;font-size:26px;letter-spacing:-.02em}.privacy-pledge ul{margin:0 0 20px;padding-left:20px;line-height:1.7;color:#d5d5db}.privacy-pledge li{margin-bottom:6px}.faq{max-width:820px;margin:0 auto;padding:40px 32px 20px}.faq h2{margin:0 0 20px;font-size:26px;letter-spacing:-.02em;text-align:center}.faq details{background:var(--panel);border:1px solid var(--border);border-radius:14px;margin-bottom:10px;padding:0}.faq summary{cursor:pointer;padding:16px 18px;font-weight:600;font-size:16px;display:flex;justify-content:space-between;align-items:center}.faq summary:after{content:"+";color:var(--muted);font-size:20px}.faq details[open] summary:after{content:"−"}.faq p{padding:0 18px 16px;margin:0;color:#c9c7d1;line-height:1.65;font-size:15px}.final-cta{text-align:center;padding:80px 32px 40px;max-width:820px;margin:0 auto}.final-cta h2{font-size:clamp(32px,4.5vw,52px);letter-spacing:-.03em;margin:0 0 10px;font-weight:800}.final-cta p{color:#c9c7d1;font-size:18px;margin:0 0 28px}.final-cta .hero-ctas{justify-content:center}.linkish{background:transparent;border:none;color:var(--accent);padding:0;font:inherit;cursor:pointer;text-decoration:underline}.landing-footer{border-top:1px solid var(--border);margin-top:40px;padding:40px 32px 28px;background:color-mix(in oklab,var(--bg) 85%,black)}.footer-inner{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:start}.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.footer-cols>div{display:flex;flex-direction:column;gap:8px}.footer-cols a,.footer-cols .linkish{color:var(--muted);text-decoration:none;font-size:14px;text-align:left}.footer-cols a:hover,.footer-cols .linkish:hover{color:var(--text)}.footer-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text);font-weight:700}.footer-copy{max-width:1120px;margin:40px auto 0;text-align:center;color:var(--muted);font-size:12px}@media (max-width: 820px){.hero{grid-template-columns:1fr;text-align:center;padding-top:24px}.hero-ctas{justify-content:center}.hero-sub{margin-left:auto;margin-right:auto}.features,.footer-inner{grid-template-columns:1fr}.footer-cols{grid-template-columns:repeat(3,1fr)}.landing-nav a{display:none}}.milestone{background:linear-gradient(135deg,#3a1a4a,#1a2a5a);border:1px solid var(--border);border-radius:16px;padding:20px;text-align:center;color:#fff}.celebration{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}.retract-banner{background:#2a1a1a;border:1px solid #6a2f2f;color:#ffdede;border-radius:14px;padding:18px 20px;text-align:center}.cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cal-nav button{background:transparent;border:none;color:var(--muted);font-size:18px;padding:4px 10px;cursor:pointer}.card:has(.section-hdr){padding:0}.section-hdr{background:transparent;border:none;color:var(--text);font-size:16px;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;padding:18px;text-align:left}.section-hdr:active{background:#ffffff08}.card:has(.section-hdr)>.col{padding:0 18px 18px}.group{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.group+.group{margin-top:10px}.group-hdr{width:100%;background:transparent;border:none;color:var(--text);font-size:17px;font-weight:700;padding:16px 18px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;text-align:left}.group-hdr:active{background:#ffffff0a}.group-body>*+*{border-top:1px solid var(--border)}.sub-hdr{padding:12px 14px 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.sub-hdr+*{border-top:none!important}.muted-sm{padding:0 14px 10px;font-size:12.5px;color:var(--muted);margin:0;line-height:1.45}.row-btn{width:100%;background:transparent;border:none;color:var(--text);padding:14px 16px;display:flex;justify-content:space-between;align-items:center;font-size:15px;cursor:pointer;text-align:left}.row-btn:active{background:#ffffff0a}.row-btn:disabled{cursor:default}.row-btn.danger{color:var(--danger)}.row-link{color:var(--muted);text-decoration:none;font-size:14px}.field-inline{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px}.field-inline>span:first-child{color:var(--muted);font-size:14px;flex-shrink:0}.input-inline{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:8px 12px;color:var(--text);font-size:14px;flex:1;min-width:0;max-width:60%;text-align:right}.input-inline:focus{outline:none;border-color:var(--accent)}.seg-sm{padding:2px;flex:0 0 auto;max-width:140px}.seg-sm .seg-btn{padding:6px 10px;font-size:16px}.snooze-item{padding:10px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px}.snooze-add{padding:10px 14px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.snooze-add>input:nth-child(3){grid-column:1 / -1}.snooze-add>button{grid-column:1 / -1}.spacer{height:8px}.logo{display:inline-flex;align-items:center;gap:8px;font-weight:800;letter-spacing:-.02em;line-height:1}.logo-sm{font-size:18px}.logo-md{font-size:28px}.logo-lg{font-size:40px}.logo-heart{display:inline-flex;filter:drop-shadow(0 4px 14px rgba(255,79,129,.35))}.logo-yes{color:var(--text)}.logo-tonight{background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}.app.onboarding{height:100%;min-height:100vh;padding:calc(var(--safe-top) + 20px) 20px calc(var(--safe-bottom) + 24px);display:flex;flex-direction:column;gap:0}.onboarding-top{display:flex;justify-content:center;flex:0 0 auto}.onboarding-middle{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:0}.onboarding-emoji{font-size:72px;line-height:1}.onboarding-bottom{display:flex;flex-direction:column;gap:10px;flex:0 0 auto}.dots{display:flex;gap:8px;justify-content:center;padding:4px 0}.dot{width:8px;height:8px;border-radius:999px;background:var(--border)}.dot.on{background:var(--accent);width:20px}.loader{display:flex;align-items:center;justify-content:center;gap:6px;padding:40px 0;flex-direction:row;flex-wrap:wrap}.loader-dot{width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--accent-2));animation:loader-bounce 1s ease-in-out infinite}.loader-dot:nth-child(2){animation-delay:.12s}.loader-dot:nth-child(3){animation-delay:.24s}.loader-label{width:100%;text-align:center;color:var(--muted);font-size:13px;margin-top:10px}@keyframes loader-bounce{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(-6px);opacity:1}}.empty-state{text-align:center;padding:32px 16px}.empty-state .emoji{font-size:56px;line-height:1}.empty-state h3{margin:12px 0 4px;font-size:18px}.empty-state p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:13px;color:var(--muted)}details summary{list-style:none}details summary::-webkit-details-marker{display:none}.app.legal{max-width:640px}.prose h1{font-size:28px;margin:10px 0 14px;letter-spacing:-.02em}.prose h2{font-size:18px;margin:22px 0 8px}.prose p{line-height:1.55;color:#d5d5db;font-size:15px}.prose ul{padding-left:20px;color:#d5d5db;font-size:15px;line-height:1.55}.prose li{margin-bottom:4px}.prose a{color:var(--accent);text-decoration:none}.prose a:hover{text-decoration:underline}.prose strong{color:var(--text)}.faq-item{border:1px solid var(--border);border-radius:12px;margin-bottom:8px;overflow:hidden}.faq-item.open{background:var(--panel)}.faq-q{width:100%;text-align:left;padding:14px 16px;background:transparent;border:none;color:var(--text);display:flex;justify-content:space-between;gap:12px;font-weight:600;font-size:15px;cursor:pointer}.faq-a{padding:0 16px 14px;color:#d5d5db;font-size:15px;line-height:1.55;margin:0}
