:root{--ink:#261620;--muted:#756870;--rose:#d95078;--rose-dark:#b93d65;--blush:#f6dbe3;--paper:#fbf8f5;--cream:#f7f1ed;--white:#fff;--line:#eadfe3;--night:#160d22;--shadow:0 24px 70px rgba(63,30,46,.12);--max:1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}.wrap{width:min(var(--max),calc(100% - 48px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:40;background:rgba(251,248,245,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(234,223,227,.72)}.header-inner{width:min(var(--max),calc(100% - 48px));height:78px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:28px}.logo{display:inline-flex;align-items:center;text-decoration:none;flex:0 0 auto}.logo img{width:150px;height:auto;display:block}.nav{display:flex;align-items:center;gap:28px}.nav>a{font-size:14px;font-weight:750;text-decoration:none;color:#4d3d45;white-space:nowrap}.nav>a:hover{color:var(--rose)}.nav .nav-cta{padding:12px 18px;border-radius:999px;background:var(--ink);color:#fff}.lang-select{height:42px;padding:0 34px 0 14px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-weight:800}.nav-toggle{display:none;background:none;border:0;width:42px;height:42px;padding:9px;position:relative}.nav-toggle span{display:block;height:2px;background:var(--ink);margin:7px 0;border-radius:2px}
.hero{min-height:680px;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.92fr);align-items:center;gap:72px;padding-top:72px;padding-bottom:76px;overflow:visible}.hero-copy{max-width:610px}.eyebrow,.section-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.15em;font-weight:900;color:var(--rose);margin-bottom:18px}.hero h1,.page-hero h1,.section h2,.showcase h2,.respect-section h2,.download-card h2{font-family:Georgia,"Times New Roman",serif;font-weight:700;letter-spacing:-.035em}.hero h1{font-size:clamp(54px,5vw,76px);line-height:.99;margin:0 0 24px;max-width:620px;text-wrap:balance}.hero-lead{font-size:20px;line-height:1.65;color:var(--muted);max-width:590px;margin:0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 22px;border-radius:999px;text-decoration:none;font-size:15px;font-weight:850;border:1px solid transparent}.btn-primary{background:var(--rose);color:#fff;box-shadow:0 14px 32px rgba(217,80,120,.25)}.btn-primary:hover{background:var(--rose-dark)}.btn-ghost{background:#fff;border-color:var(--line);color:var(--ink)}.micro-proof{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:26px;color:#8d7f86;font-size:12px;font-weight:750}.micro-proof i{width:3px;height:3px;border-radius:50%;background:#c5b7be}.hero-visual{position:relative;min-height:570px;display:flex;align-items:center;justify-content:center}.halo{position:absolute;border-radius:50%;filter:blur(2px)}.halo-a{width:430px;height:430px;background:radial-gradient(circle,#f4d5df 0,#f6e7e8 52%,transparent 72%);top:54px;right:28px}.halo-b{width:250px;height:250px;background:radial-gradient(circle,#ead8f4 0,transparent 70%);bottom:38px;left:16px}.phone-mockup{position:relative;width:310px;height:590px;border-radius:46px;background:#19111f;padding:8px;box-shadow:0 34px 80px rgba(43,19,36,.24),inset 0 0 0 1px rgba(255,255,255,.09);transform:rotate(2deg);overflow:hidden}.phone-mockup:before{content:"";position:absolute;top:17px;left:50%;transform:translateX(-50%);width:88px;height:22px;border-radius:999px;background:#100a14;z-index:6}.phone-image{position:absolute;inset:8px;border-radius:39px;background:url('/assets/hero-night.webp') center 44%/cover no-repeat}.phone-shade{position:absolute;inset:8px;border-radius:39px;background:linear-gradient(180deg,rgba(16,8,19,.15),rgba(16,8,19,.34) 36%,rgba(16,8,19,.82) 100%)}.phone-content{position:absolute;inset:48px 30px 26px;color:#fff;display:flex;flex-direction:column;z-index:3}.mini-brand{font-family:Georgia,serif;font-style:italic;font-size:20px;margin-bottom:auto}.invite-lines{display:grid;gap:8px;text-align:center;font-size:13px;line-height:1.35;text-shadow:0 2px 12px rgba(0,0,0,.4)}.invite-lines strong{font-family:Georgia,serif;font-size:28px;margin-bottom:4px}.invite-question{font-family:Georgia,serif;font-size:23px;line-height:1.16;text-align:center;margin:20px 0 15px}.mini-buttons{display:grid;gap:7px}.mini-buttons>*{display:block;text-align:center;border-radius:999px;padding:9px 8px;font-size:11px;font-style:normal;background:rgba(255,255,255,.92);color:var(--ink)}.mini-buttons b{background:var(--rose);color:#fff}.float-note{position:absolute;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border:1px solid rgba(234,223,227,.85);border-radius:20px;box-shadow:0 18px 50px rgba(55,28,44,.15);padding:14px 16px;display:flex;gap:11px;align-items:center;z-index:8}.float-note small{display:block;color:#9a8b92;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.float-note strong{display:block;font-size:13px;margin-top:3px}.note-one{left:0;top:118px}.note-two{right:-8px;bottom:78px}.pulse-heart{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:#f8e2e8;color:var(--rose);font-size:22px}.quiet-strip{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.strip-inner{min-height:66px;display:flex;align-items:center;justify-content:center;gap:34px;flex-wrap:wrap;color:#76676f;font-size:13px;font-weight:750}.strip-inner span+span:before{content:"·";margin-right:34px;color:#c5b8be}.section{padding:100px 0}.section-title-row{display:grid;grid-template-columns:1.05fr .8fr;gap:70px;align-items:end;margin-bottom:38px}.section-title-row h2,.showcase h2,.respect-section h2,.download-card h2{font-size:clamp(40px,4vw,58px);line-height:1.06;margin:0}.section-title-row p,.showcase-copy p,.respect-section p,.download-card p{color:var(--muted);font-size:17px;line-height:1.7;margin:0}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.step-card{position:relative;min-height:270px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:0 12px 34px rgba(64,31,51,.05);overflow:hidden}.step-no{font-size:11px;font-weight:900;color:#ab9ca3;letter-spacing:.12em}.step-icon{width:48px;height:48px;border-radius:17px;background:#f7e4ea;color:var(--rose);display:grid;place-items:center;font-size:22px;margin:36px 0 20px}.step-card h3{font-size:21px;margin:0 0 10px}.step-card p{margin:0;color:var(--muted);line-height:1.65}.soft-section{background:linear-gradient(180deg,#fff,#faf3f5)}.showcase{display:grid;grid-template-columns:.85fr 1.05fr;gap:76px;align-items:center}.showcase-copy{max-width:480px}.showcase-copy p{margin:20px 0}.text-link{color:var(--rose-dark);font-weight:850;text-decoration:none}.reveal-card{background:linear-gradient(160deg,#2f1831,#160d22);color:#fff;border-radius:34px;padding:32px 34px;box-shadow:0 30px 80px rgba(48,24,46,.22);min-height:430px;display:flex;flex-direction:column;justify-content:center}.reveal-top{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#d9c6d1;margin-bottom:34px}.reveal-top em{font-style:normal;padding:7px 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px}.reveal-story{display:grid;gap:12px;font-size:17px;line-height:1.45;text-align:center;color:#f8edf3}.reveal-story strong{font-family:Georgia,serif;font-size:25px}.reveal-story .personal{color:#f8c9d6;font-style:italic;margin-top:5px}.reveal-question{font-family:Georgia,serif;font-size:34px;line-height:1.15;text-align:center;margin-top:34px}.respect-section{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center}.respect-mark{width:72px;height:72px;border-radius:24px;background:#f7e1e8;color:var(--rose);display:grid;place-items:center;font-size:34px}.respect-section p{margin-top:12px;max-width:680px}.download-card{background:linear-gradient(135deg,#2b182d,#160d22);color:#fff;border-radius:38px;padding:52px;display:grid;grid-template-columns:1fr auto;gap:56px;align-items:center;box-shadow:0 32px 90px rgba(44,21,39,.22)}.download-card p{color:#d9c9d2;margin-top:16px;max-width:680px}.section-kicker.light{color:#ef9ab4}.store-stack{display:grid;gap:10px;min-width:210px}.store-badge{display:flex;align-items:center;gap:12px;background:#fff;color:var(--ink);border-radius:16px;padding:13px 16px}.store-badge>span{width:30px;height:30px;border-radius:9px;background:#f1e6eb;display:grid;place-items:center}.store-badge small{display:block;font-size:10px;color:#8f7e86}.store-badge strong{display:block;font-size:15px}.store-badge.muted{opacity:.76}.site-footer{padding:54px 0 64px;border-top:1px solid var(--line);background:#fff}.footer-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr;gap:48px}.footer-brand p{margin:14px 0 8px;color:var(--muted)}.footer-brand small{color:#a09198}.footer-grid h4{font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin:2px 0 14px;color:#9d8d94}.footer-grid a:not(.logo){display:block;text-decoration:none;color:#62545b;margin:10px 0;font-size:14px}.footer-grid a:hover{color:var(--rose)}
.page-hero{padding-top:92px;padding-bottom:54px;max-width:900px;margin-left:auto;margin-right:auto;text-align:center}.page-hero h1{font-size:clamp(46px,5vw,68px);line-height:1.04;margin:0 auto 18px;text-wrap:balance}.page-hero p{font-size:18px;line-height:1.7;color:var(--muted);max-width:720px;margin:0 auto}.flow-section{padding-bottom:100px;display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.flow-section article{background:#fff;border:1px solid var(--line);border-radius:26px;padding:30px;min-height:220px}.flow-section b{color:var(--rose);font-size:12px;letter-spacing:.12em}.flow-section h2{font-family:Georgia,serif;font-size:31px;margin:18px 0 10px}.flow-section p{color:var(--muted);line-height:1.7;margin:0}.prose{max-width:840px;margin:0 auto 92px;background:#fff;border:1px solid var(--line);border-radius:30px;padding:44px 48px;box-shadow:0 14px 45px rgba(64,31,51,.05)}.prose h2{font-family:Georgia,serif;font-size:30px;margin-top:40px}.prose h3{font-size:19px;margin-top:28px}.prose p,.prose li{color:#62545b;line-height:1.78}.prose a{color:var(--rose-dark)}.legal-note{padding:17px 19px;background:#fff4f6;border:1px solid #efccd7;border-radius:17px}.support-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.support-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px}.support-card h3{margin-top:0}.support-card p{color:var(--muted);line-height:1.65}
/* recipient experience */.invite-body{min-height:100vh;background:#0d0b17;color:#fff}.invite-body:before{content:"";position:fixed;inset:0;background:linear-gradient(rgba(17,8,22,.34),rgba(17,8,22,.72)),url('/reveal-night.webp') center/cover no-repeat;z-index:-1}.invite-shell{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:0 22px max(env(safe-area-inset-bottom),16px);max-width:650px;margin:auto}.invite-top{display:flex;align-items:center;justify-content:space-between;min-height:72px;padding-top:max(env(safe-area-inset-top),8px)}.invite-brand{font-family:Georgia,serif;font-style:italic;font-weight:700;font-size:24px;color:#fff;text-decoration:none}.invite-brand span{color:#f28bab}.ghost{width:42px;height:42px;border:1px solid rgba(255,255,255,.14);border-radius:21px;background:rgba(255,255,255,.09);color:#fff;font-size:18px}.center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.hidden{display:none!important}.story{flex:1;overflow:auto;padding:30px 4px 22px;scroll-behavior:smooth;display:flex;flex-direction:column;justify-content:center}.paragraph{text-align:center;margin:7px auto;max-width:520px;font-size:20px;line-height:1.42;text-shadow:0 3px 16px rgba(0,0,0,.3);opacity:.88;animation:fade .35s ease}.paragraph.name{font-family:Georgia,serif;font-size:36px;line-height:1.2;opacity:1}.paragraph.current{opacity:1}.paragraph.question{font-family:Georgia,serif;font-size:35px;line-height:1.2;margin-top:24px}.cursor{color:#ffb4c8;animation:blink .8s infinite}.answers{display:grid;gap:10px;margin:28px auto 0;max-width:420px;width:100%}.answer{min-height:58px;border-radius:999px;border:1px solid rgba(255,255,255,.5);font-size:16px;font-weight:850;cursor:pointer}.yes{background:var(--rose);color:#fff;border-color:transparent;box-shadow:0 12px 30px rgba(217,80,120,.34)}.maybe,.no{background:rgba(255,255,255,.93);color:#28182e}.result-heart{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:var(--rose);font-size:46px;margin:0 auto 20px;box-shadow:0 10px 36px rgba(255,61,141,.5);animation:heart .75s ease}.result-title{font-family:Georgia,serif;font-size:46px;line-height:1.15;margin:0}.result-sub{color:#ffe8ef;max-width:420px;line-height:1.55}.loader{width:34px;height:34px;border:3px solid rgba(255,255,255,.22);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.invite-footer{display:flex;justify-content:center;gap:9px;color:rgba(255,255,255,.48);font-size:11px;padding:12px 0;flex-wrap:wrap}.invite-footer a{color:rgba(255,255,255,.68);text-decoration:none}.sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center;padding:16px;z-index:50}.sheet{width:min(560px,100%);background:#fff;border-radius:24px;padding:8px;display:grid;gap:4px}.sheet button{min-height:52px;border:0;border-radius:16px;background:#fff;color:#28182e;font-size:16px;font-weight:750}.sheet button:hover{background:#fff2f5}@keyframes fade{from{opacity:0;transform:translateY(5px)}to{opacity:.9;transform:none}}@keyframes blink{50%{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes heart{0%{transform:scale(.2)}55%{transform:scale(1.22)}75%{transform:scale(.94)}100%{transform:scale(1)}}
@media(max-width:960px){.nav{gap:18px}.hero{grid-template-columns:1fr 390px;gap:34px}.phone-mockup{width:280px;height:540px}.note-one{left:-8px}.note-two{right:-8px}.section-title-row,.showcase{gap:40px}.download-card{grid-template-columns:1fr;gap:30px}.store-stack{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}}
@media(max-width:780px){.wrap,.header-inner{width:min(100% - 32px,var(--max))}.header-inner{height:70px}.logo img{width:132px}.nav-toggle{display:block}.nav{display:none;position:absolute;top:70px;left:16px;right:16px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px;box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:3px}.nav.open{display:flex}.nav>a{padding:11px 12px;border-radius:12px}.nav .nav-cta{text-align:center;margin-top:4px}.lang-select{margin-top:6px;width:100%}.hero{grid-template-columns:1fr;padding-top:58px;padding-bottom:64px;gap:34px;min-height:auto}.hero-copy{text-align:left}.hero h1{font-size:clamp(48px,14vw,64px)}.hero-lead{font-size:18px}.hero-visual{min-height:530px}.phone-mockup{width:276px;height:526px}.note-one{left:0;top:86px}.note-two{right:0;bottom:48px}.strip-inner{justify-content:flex-start;gap:8px;padding:15px 0}.strip-inner span+span:before{margin-right:8px}.section{padding:72px 0}.section-title-row{grid-template-columns:1fr;gap:18px}.steps-grid,.showcase,.respect-section,.footer-grid,.flow-section,.support-grid{grid-template-columns:1fr}.respect-section{align-items:start}.respect-section .btn{justify-self:start}.showcase{gap:32px}.reveal-card{padding:28px 22px;min-height:390px}.download-card{padding:34px 26px;border-radius:30px}.store-stack{grid-template-columns:1fr}.site-footer{padding:44px 0}.page-hero{padding-top:66px;padding-bottom:38px}.prose{padding:28px 24px;border-radius:24px;margin-bottom:70px}}
@media(max-width:480px){.hero h1{font-size:50px}.float-note{display:none}.hero-visual{min-height:500px}.phone-mockup{width:min(278px,86vw);height:510px}.section-title-row h2,.showcase h2,.respect-section h2,.download-card h2{font-size:40px}.reveal-question{font-size:29px}.paragraph{font-size:18px}.paragraph.question,.paragraph.name{font-size:30px}}
.fine{font-size:12px;color:#9f9198;line-height:1.6}.footer-grid .fine{max-width:360px}

/* 0.3.3 — smooth line reveal (no typewriter) */
.invite-shell{position:relative;z-index:1}
.story .paragraph{opacity:0;transform:translateY(16px) scale(.96);animation:none;transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
.story .paragraph.shown{opacity:1;transform:none}
.story .paragraph.shown.done{opacity:.78}
.story .answers{opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease}
.story .answers.shown{opacity:1;transform:none}
.answers.busy .answer{opacity:.7}
.send-error{margin:4px auto 0;max-width:380px;text-align:center;color:#ffd2dc;font-size:14px;line-height:1.45}

/* 0.3.3 — YES celebration */
.celebrate{position:relative;width:170px;height:170px;margin:0 auto 18px;display:grid;place-items:center}
.celebrate .glow{position:absolute;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(255,61,141,.6) 0,rgba(255,61,141,.25) 45%,rgba(255,61,141,0) 70%);animation:hyGlow 1.8s ease-in-out infinite alternate}
.celebrate .ring{position:absolute;width:120px;height:120px;border-radius:50%;border:2.5px solid rgba(255,180,200,.9);opacity:0;animation:hyRing .9s cubic-bezier(.22,.61,.36,1) forwards}
.celebrate .ring.r2{animation-delay:.26s}
.big-heart{position:relative;width:120px;height:120px;filter:drop-shadow(0 10px 28px rgba(255,61,141,.55));animation:hyPop .8s cubic-bezier(.34,1.56,.64,1) both,hyBeat 1.12s ease-in-out 1s infinite}
.celebrate .p{position:absolute;left:50%;top:50%;width:var(--s);height:var(--s);margin:calc(var(--s) / -2) 0 0 calc(var(--s) / -2);opacity:0;animation:hyBurst var(--d) cubic-bezier(.22,.61,.36,1) var(--delay) forwards}
.celebrate .p svg,.fh svg{display:block;width:100%;height:100%}
.result-copy{animation:hyRise .5s ease .45s both}
.float-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.float-layer .flash{position:absolute;inset:0;background:#ff6fa3;opacity:0;animation:hyFlash .86s ease-out forwards}
.fh{position:absolute;bottom:-40px;left:var(--x);width:var(--s);height:var(--s);opacity:0;animation:hyFloat var(--d) linear var(--delay) forwards}
@keyframes hyPop{0%{transform:scale(0) rotate(0)}35%{transform:scale(1.18) rotate(-10deg)}55%{transform:scale(.97) rotate(7deg)}75%{transform:scale(1.03) rotate(-3deg)}100%{transform:scale(1) rotate(0)}}
@keyframes hyBeat{0%,100%{transform:scale(1)}13%{transform:scale(1.09)}27%{transform:scale(1)}39%{transform:scale(1.05)}52%{transform:scale(1)}}
@keyframes hyRing{0%{opacity:.8;transform:scale(.55)}100%{opacity:0;transform:scale(2.45)}}
@keyframes hyGlow{from{opacity:.55;transform:scale(.9)}to{opacity:.95;transform:scale(1.05)}}
@keyframes hyBurst{0%{opacity:0;transform:translate(0,0) scale(.35) rotate(0)}6%{opacity:1}55%{opacity:1;transform:translate(var(--mx),var(--my)) scale(1) rotate(calc(var(--r) * .7))}100%{opacity:0;transform:translate(var(--x),var(--y)) scale(.85) rotate(var(--r))}}
@keyframes hyFlash{0%{opacity:0}18%{opacity:.32}100%{opacity:0}}
@keyframes hyFloat{0%{opacity:0;transform:translate(0,0) rotate(0)}12%{opacity:.85}25%{transform:translate(var(--sw),-27vh) rotate(12deg)}50%{transform:translate(calc(var(--sw) * -1),-55vh) rotate(-12deg)}70%{opacity:.85}75%{transform:translate(var(--sw),-83vh) rotate(9deg)}100%{opacity:0;transform:translate(0,-112vh) rotate(0)}}
@keyframes hyRise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.story .paragraph,.story .answers{transition:none}.big-heart,.celebrate .glow,.result-copy{animation:none}}

.result-title{font-size:clamp(34px,10.5vw,46px)}

/* 0.3.4 — existing-response and retry states */
.story-notice{max-width:420px;width:100%;margin:14px auto 0;padding:12px 14px;border-radius:14px;background:rgba(96,22,48,.82);border:1px solid rgba(255,190,210,.4);color:#fff0f4;text-align:center;font-size:14px;line-height:1.45}
.answer:disabled{opacity:.55;cursor:wait}
.answered-inline{margin:24px auto 0;max-width:420px;width:100%;padding:18px;border-radius:20px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);text-align:center}.answered-inline p{margin:0 0 12px;color:#ffe8ef}.change-answer,.result-button{min-height:48px;border-radius:999px;padding:0 18px;font-weight:800;font-size:14px;cursor:pointer}.change-answer{border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.94);color:#28182e}.answered-badge{font-size:13px;color:#dccad5;margin-bottom:10px}.existing-answer{font-family:Georgia,serif;font-size:46px;line-height:1.12;margin:0 0 24px}.result-actions{display:grid;gap:10px;width:min(390px,100%);margin-top:18px}.result-button{border:1px solid rgba(255,255,255,.42)}.result-button.primary{background:var(--rose);color:#fff;border-color:transparent}.result-button.secondary{background:rgba(255,255,255,.94);color:#28182e}.result-status{margin-top:16px;color:#f5dfe7;font-size:14px}.sheet button:disabled{opacity:.55;cursor:wait}
