@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color:#492c3b;font-synthesis:none;--coral:#ad365e;--sage:#a65b78;--muted:#775864;--line:#e6c9d2;--surface:#fffaf8;background:#cda5b2;font-family:Nunito Variable,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.6}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}button,a,input{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:4px;outline:3px solid #a65b78}button{color:inherit;background:0 0;border:0}a{color:inherit}h1,h2,p{margin:0}h1{letter-spacing:-1px;text-wrap:balance;font-size:30px;font-weight:700;line-height:1.25}h2{letter-spacing:-.5px;font-size:23px;line-height:1.3}p{overflow-wrap:anywhere}.app-shell{background:var(--surface);border:1px solid var(--line);border-radius:25px;flex-direction:column;max-width:470px;min-height:calc(100dvh - 48px);margin:24px auto;padding:32px 28px 20px;display:flex}header{justify-content:space-between;align-items:center;min-height:46px;display:flex}.brand{letter-spacing:-1px;align-items:center;gap:12px;font-size:29px;font-weight:700;display:flex}.brand-hearts{width:53px;height:38px;display:inline-block;position:relative}.brand-hearts svg{fill:none;width:35px;height:35px;stroke:var(--coral);stroke-width:7px;position:absolute;top:0;left:0}.brand-hearts svg+svg{stroke:var(--sage);top:6px;left:18px}.profile-toggle{padding:0}.avatar{color:#fff;background:#a65b78;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:16px;font-weight:500;display:inline-flex;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar.large{width:155px;height:155px;font-size:50px}.screen{text-align:center;padding-top:56px}.intro{color:#775864;max-width:380px;margin:14px auto 0;font-size:17px;line-height:1.55}.intro strong{font-weight:600}main{flex:1}.heart-stage{isolation:isolate;place-items:center;width:min(290px,100%);height:260px;margin:28px auto;display:grid;position:relative}.heart-solid{width:175px;height:165px;color:var(--coral);z-index:1;animation:3s ease-in-out infinite heartbeat;position:relative}.heart-aura{color:#f0bccd;width:230px;max-width:90%;animation:3s ease-in-out infinite breathe;position:absolute}.heart-aura svg{width:100%;display:block}.heart-aura.second{color:#f8dce5;z-index:-1;width:275px;max-width:100%;animation-delay:-1.5s}.heart-stage.with-qr{aspect-ratio:320/300;width:min(320px,100%);height:auto;margin:24px auto 8px}.with-qr .heart-solid{width:100%;height:100%;fill:var(--surface);stroke:#ce7896;stroke-width:2px;animation:none}.with-qr .heart-aura{width:95%}.with-qr .heart-aura.second{width:100%}.qr-surface{z-index:2;aspect-ratio:1;background:var(--surface);place-items:center;width:52.5%;display:grid;position:absolute;top:16.667%;left:23.75%}.qr-surface img{width:100%;height:100%;display:block}.qr-surface span{padding:12px;font-size:12px}@keyframes heartbeat{0%,36%,to{transform:scale(1)}12%{transform:scale(1.09)}24%{transform:scale(1.03)}29%{transform:scale(1.065)}}form{text-align:left;flex-direction:column;gap:12px;display:flex}label{font-size:15px;font-weight:600}input:not([type=file]):not([type=range]){color:#492c3b;background:0 0;border:1px solid #d6b3c0;border-radius:14px;width:100%;min-height:58px;padding:14px 18px;font-size:17px}input::placeholder{color:#80616c}.primary,.secondary{border-radius:15px;width:100%;min-height:56px;padding:14px 18px;font-size:16px;font-weight:700;transition:background .18s,transform .18s;display:block}.primary{background:var(--coral);color:#fff;margin-top:12px}.primary:hover:not(:disabled){background:#922748;transform:translateY(-1px)}.secondary{border:1px solid var(--line);color:#813451;margin-top:12px}.secondary:hover:not(:disabled){background:#faeaf0}.hint{color:#80616c;text-align:center;font-size:13px}.text-button{color:#813451;overflow-wrap:anywhere;min-height:44px;padding:12px 4px;font-size:14px;line-height:1.4}.text-button:hover:not(:disabled){text-decoration:underline}.text-button.danger{color:#ad5148}.error{color:#a94038;text-align:left;background:#fff0ed;border-radius:10px;margin:12px 0;padding:12px 14px;font-size:14px}.notice{color:#813451;overflow-wrap:anywhere;margin:12px 0;font-size:14px}.link-stack{flex-direction:column;gap:0;display:flex}.code-input{text-align:center;letter-spacing:9px;font-size:25px!important}.auth-screen .hint{margin-top:2px}.profile-avatar{margin:48px auto 4px}.photo-button{color:#813451;cursor:pointer;padding:10px;font-size:14px;display:block}.photo-button input{clip-path:inset(50%);width:1px;height:1px;position:absolute}.photo-button:focus-within{outline:2px solid var(--sage)}.profile-screen form{margin-top:32px}.settings-actions{border-top:1px solid var(--line);justify-content:space-between;gap:8px;margin-top:24px;display:flex}.invite-code{letter-spacing:3px;font-size:25px;font-weight:700;line-height:1.2}.countdown{font-variant-numeric:tabular-nums;margin:8px 0 16px}.inline-actions{justify-content:center;gap:18px;display:flex}.request-panel{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px;padding:18px 0;display:flex}.request-panel p{text-align:left;flex:1;font-size:14px}.preview-person{margin:36px 0}.preview-person h2{margin-top:18px}.couple-portraits{justify-content:center;align-items:center;gap:14px;margin:62px 0 28px;display:flex}.couple-portraits>div{flex:1;min-width:0}.couple-portraits .large{width:115px;height:115px;font-size:36px}.couple-portraits h2{overflow-wrap:anywhere;margin-top:12px;font-size:20px}.couple-heart{width:28px;height:26px;color:var(--coral);flex-shrink:0}.pair-date{color:#775864;margin-bottom:30px;font-size:14px}.celebrate .couple-portraits{animation:.7s both arrive}.celebrate .couple-heart{animation:.6s 3 breathe}footer{text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;padding-top:32px;display:flex}footer p{color:#80616c;width:100%;font-size:12px}.footer-line{background:var(--line);flex:1;height:1px}.tiny-hearts{width:25px;height:22px;color:var(--coral)}.tiny-hearts svg{fill:none;stroke:currentColor;stroke-width:7px;width:100%;height:100%}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#492c3b70;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);text-align:center;border-radius:22px;width:100%;max-width:420px;max-height:90dvh;padding:28px;overflow:auto;box-shadow:0 20px 80px #492c3b30}.modal>p{color:#775864;margin:14px 0 20px;font-size:15px}.modal form{margin-top:24px}.camera-frame{aspect-ratio:1;background:#492c3b;border-radius:16px;overflow:hidden}.camera-frame video{object-fit:cover;width:100%;height:100%}.crop-preview{border-radius:8px;width:240px;height:240px;margin:24px auto;overflow:hidden}.crop-preview img{object-fit:cover;width:100%;height:100%}.modal input[type=range]{width:100%;accent-color:var(--coral);margin:15px 0 24px}.offline-banner{color:#716346;background:#f0eee4;border-radius:10px;margin-top:24px;padding:12px;font-size:13px}.loading{text-align:center;color:var(--muted);padding:90px 0}@keyframes breathe{0%,to{opacity:.55;transform:scale(.94)}50%{opacity:1;transform:scale(1.1)}}@keyframes arrive{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:none}}@media (width<=520px){.app-shell{min-height:calc(100dvh - 20px);padding:calc(22px + env(safe-area-inset-top)) 20px calc(18px + env(safe-area-inset-bottom));border:0;border-radius:22px;margin:10px}.screen{padding-top:44px}h1{font-size:28px}.intro{font-size:16px}.heart-stage{margin:22px auto}.couple-portraits .large{width:100px;height:100px}.modal{padding:24px}.brand{font-size:27px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.skip-button{margin:8px auto 0;display:block}.heart-stage:not(.moving) .heart-aura,.heart-stage:not(.moving) .heart-solid{animation-play-state:paused}.app-nav{border-top:1px solid var(--line);gap:8px;margin-top:28px;padding-top:16px;display:flex}.app-nav button{min-height:44px;color:var(--muted);border-radius:12px;flex:1;font-weight:600}.app-nav button[aria-pressed=true]{color:var(--coral);background:#faeaf0}.home-screen{text-align:left}.eyebrow{color:var(--coral);margin-bottom:10px;font-size:14px}.home-connection{align-items:center;gap:18px;margin:36px 0 20px;display:flex}.home-connection svg{width:46px;color:var(--coral);flex-shrink:0}.home-connection h2,.home-resources h2{font-size:18px;font-weight:700}.home-connection p{color:var(--muted);margin-top:6px;font-size:14px}.home-resources{margin-top:40px}.home-resources a{border-bottom:1px solid var(--line);padding:20px 0;text-decoration:none;display:block}.home-resources a:hover strong{text-decoration:underline}.home-resources strong{justify-content:space-between;font-weight:600;display:flex}.home-resources a>span{color:var(--muted);margin-top:4px;font-size:14px;display:block}@media (prefers-reduced-motion:reduce){.heart-solid{animation:none}}
