@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-Dc4VJyIJ.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-BE2fNs0E.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-BLGc9T1a.woff2) format("woff2"),url(/assets/inter-cyrillic-400-normal-alAqRL36.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-Bput3-QP.woff2) format("woff2"),url(/assets/inter-greek-ext-400-normal-XIH6-K3k.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-DxZsaF_h.woff2) format("woff2"),url(/assets/inter-greek-400-normal-C3I71FoW.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2) format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2) format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-ext-500-normal-BShVwWPj.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-500-normal-NrhEyngK.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-cyrillic-500-normal-D4Vwzodn.woff2) format("woff2"),url(/assets/inter-cyrillic-500-normal-BoeW9iIj.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-ext-500-normal-B6guLgqG.woff2) format("woff2"),url(/assets/inter-greek-ext-500-normal-1SJLBQ3N.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-greek-500-normal-CeQXL5ds.woff2) format("woff2"),url(/assets/inter-greek-500-normal-CSBZZ4CI.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-vietnamese-500-normal-DOriooB6.woff2) format("woff2"),url(/assets/inter-vietnamese-500-normal-mJboJaSs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2) format("woff2"),url(/assets/inter-latin-ext-500-normal-BxGbmqWO.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-ext-600-normal-CaqZN2hq.woff2) format("woff2"),url(/assets/inter-cyrillic-ext-600-normal-t7rHAwBu.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-cyrillic-600-normal-BGBWG807.woff2) format("woff2"),url(/assets/inter-cyrillic-600-normal-vZ-N8GHY.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-ext-600-normal-Cnui8OiR.woff2) format("woff2"),url(/assets/inter-greek-ext-600-normal-CCFnzSpK.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-greek-600-normal-Dhlb-90d.woff2) format("woff2"),url(/assets/inter-greek-600-normal-BVGIV3oK.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2) format("woff2"),url(/assets/inter-vietnamese-600-normal-BuLX-rYi.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2) format("woff2"),url(/assets/inter-latin-ext-600-normal-CIVaiw4L.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Marck Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/marck-script-cyrillic-400-normal-BIatlnl2.woff2) format("woff2"),url(/assets/marck-script-cyrillic-400-normal-C4wWsGQ-.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Marck Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/marck-script-latin-ext-400-normal-CEQHAJDc.woff2) format("woff2"),url(/assets/marck-script-latin-ext-400-normal-BipQGsdP.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Marck Script;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/marck-script-latin-400-normal-hvIDGCO4.woff2) format("woff2"),url(/assets/marck-script-latin-400-normal-DonRfbfk.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:Inter,system-ui,sans-serif;color:#302a26;background:#ece6de;font-synthesis:none;text-rendering:optimizeLegibility;--paper: #faf7f2;--ink: #302a26;--muted: #746a62;--locked: #d5d0ca;--accent: #d84b4b;--line: rgba(76, 65, 56, .16)}*{box-sizing:border-box}html{min-height:100%;background:#ece6de}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}body.dialog-open{overflow:hidden}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid rgba(216,75,75,.32);outline-offset:3px}body:before{position:fixed;inset:0;z-index:-1;content:"";pointer-events:none;background:radial-gradient(circle at 15% 8%,rgba(255,255,255,.55),transparent 32%),radial-gradient(circle at 84% 35%,rgba(145,121,100,.08),transparent 30%),repeating-linear-gradient(94deg,rgba(90,72,58,.018) 0 1px,transparent 1px 5px)}.initial-shell{min-height:100vh;display:grid;place-items:center;font-family:Marck Script,cursive;font-size:2rem}.page-shell{width:min(100%,660px);min-height:100vh;margin:0 auto;padding:max(28px,env(safe-area-inset-top)) 15px max(28px,env(safe-area-inset-bottom))}.hero-copy{text-align:center;margin-bottom:23px}.date-line{margin:0;font-family:Marck Script,cursive;font-size:clamp(1.35rem,6vw,2rem);letter-spacing:.02em}.date-line span{display:inline-block;margin:0 .35em}.hero-copy h1{margin:6px 0 11px;font-family:Marck Script,cursive;font-size:clamp(1.65rem,7vw,2.35rem);font-weight:400;color:var(--muted)}.progress-copy{display:flex;justify-content:center;gap:9px;align-items:center;margin:0;color:var(--muted);font-size:.73rem}.progress-copy span:first-child{color:var(--ink);font-weight:600}.progress-copy span+span:before{content:"·";margin-right:9px}.collage-wrap{padding:2px 1px 12px}.collage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(8px,2.6vw,17px);align-items:center}.polaroid{position:relative;display:flex;flex-direction:column;width:100%;aspect-ratio:.79;padding:6% 6% 0;border:0;border-radius:1px;background:var(--paper);color:var(--ink);box-shadow:0 2px 4px #41332933,0 11px 20px #41332914;transform:rotate(var(--tilt));transform-origin:center}button.polaroid{cursor:pointer}.photo-area{position:relative;display:grid;flex:1;min-height:0;overflow:hidden;place-items:center;background:var(--locked)}.photo-area:after{position:absolute;inset:0;content:"";box-shadow:inset 0 0 0 1px #342b250f;pointer-events:none}.photo-area img,.expanded-photo img{display:block;width:100%;height:100%;object-fit:cover}.polaroid-caption{display:grid;min-height:25%;place-items:center;font-family:Marck Script,cursive;font-size:clamp(.67rem,3vw,1.15rem);white-space:nowrap}.polaroid-caption span{color:var(--accent);font-size:1.15em}.center-caption{display:grid;min-height:25%;place-items:center;align-content:center;font-family:Marck Script,cursive;font-size:clamp(.62rem,2.7vw,1.05rem);line-height:1.05}.center-caption b{color:var(--accent);font-family:Inter,sans-serif;font-size:.95em}.lock-face{width:32%;color:#5b524bad}.lock-face svg,.large-lock svg{display:block;width:100%}.is-locked:not(.is-available){filter:saturate(.7)}.is-available{z-index:2;box-shadow:0 3px 6px #41332933,0 11px 24px #d84b4b24;animation:breathe 3.1s ease-in-out infinite}.is-available:after{position:absolute;inset:-4px;border:1px solid rgba(216,75,75,.25);content:"";pointer-events:none}footer{padding:28px 0 5px;text-align:center;color:var(--muted);font-family:Marck Script,cursive;font-size:1.05rem}.overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;overflow-y:auto;padding:max(14px,env(safe-area-inset-top)) 13px max(14px,env(safe-area-inset-bottom));background:#2f29259e;backdrop-filter:blur(3px)}.paper-dialog{position:relative;width:min(100%,430px);padding:35px clamp(22px,7vw,38px) 28px;border:1px solid rgba(87,72,61,.12);border-radius:2px;background:var(--paper);box-shadow:0 24px 80px #1c161242;text-align:center}.paper-dialog:before,.challenge-paper:before{position:absolute;inset:0;content:"";pointer-events:none;opacity:.35;background:repeating-linear-gradient(90deg,rgba(104,85,70,.02) 0 1px,transparent 1px 4px)}.intro-card h2{margin:8px 0 17px;font-family:Marck Script,cursive;font-size:2rem;font-weight:400}.intro-card p{margin:10px 0;line-height:1.6}.tiny-heart{color:var(--accent);font-size:1.5rem}.script-line{margin:18px 0;font-family:Marck Script,cursive;font-size:clamp(1.55rem,7vw,2.05rem);line-height:1.15}.primary-button{position:relative;min-height:48px;width:100%;border:1px solid #c83e3e;border-radius:2px;padding:11px 18px;background:var(--accent);color:#fffaf5;box-shadow:0 5px 13px #9930302e;cursor:pointer;font-weight:600;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.primary-button:hover{box-shadow:0 7px 18px #9930303d;transform:translateY(-1px)}.primary-button:active{transform:translateY(1px)}.primary-button:disabled{cursor:default;opacity:.42;transform:none}.intro-card .primary-button{margin-top:13px}.close-button{position:absolute;z-index:4;top:8px;right:8px;width:44px;height:44px;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:1.8rem;font-weight:300;line-height:1}.expanded-polaroid{position:relative;width:min(100%,440px);max-height:calc(100dvh - 26px);overflow-y:auto;padding:12px 12px 0;background:var(--paper);box-shadow:0 27px 90px #1f181461;scrollbar-width:thin}.expanded-photo{display:grid;width:100%;max-height:44dvh;aspect-ratio:1 / .88;place-items:center;overflow:hidden;background:var(--locked);color:#5b524bad}.expanded-photo img{min-height:250px}.large-lock{width:64px}.challenge-paper{position:relative;min-height:220px;padding:22px clamp(8px,3vw,16px) 25px;text-align:center}.memory-number{margin:0 0 8px;color:var(--muted);font-family:Marck Script,cursive;font-size:1.3rem}.placeholder-label{display:inline-block;margin:0 0 9px;padding:4px 7px;border:1px dashed rgba(116,106,98,.45);color:var(--muted);font-size:.61rem;letter-spacing:.08em;text-transform:uppercase}.challenge-paper h2,.final-card h2{margin:0 auto 18px;max-width:360px;font-family:Marck Script,cursive;font-size:clamp(1.45rem,6vw,1.9rem);font-weight:400;line-height:1.18}.challenge-form{position:relative;display:grid;gap:12px}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.answer-option{position:relative;display:grid;min-height:49px;place-items:center;border:1px solid var(--line);background:#ece6de5c;cursor:pointer;font-size:.82rem;transition:border-color .16s,background .16s}.answer-option input{position:absolute;opacity:0;pointer-events:none}.answer-option.selected{border-color:#d84b4ba6;background:#d84b4b14}.who-grid .answer-option{min-height:64px;font-family:Marck Script,cursive;font-size:1.45rem}.text-answer input{width:100%;min-height:50px;border:1px solid var(--line);border-radius:1px;padding:0 14px;background:#ffffff85;color:var(--ink);text-align:center;outline:none}.text-answer input:focus{border-color:#d84b4ba6;box-shadow:0 0 0 3px #d84b4b14}.answer-button{margin-top:1px}.warm-feedback{min-height:21px;margin:14px 0 0;color:var(--muted);font-size:.78rem;line-height:1.45}.hint{margin:13px auto 0;color:var(--muted);font-size:.78rem}.hint summary{min-height:44px;display:grid;place-items:center;cursor:pointer;color:var(--accent)}.hint p{margin:2px 0 0}.success-copy{display:grid;justify-items:center;gap:13px}.success-copy .script-line{margin:0}.success-copy strong{color:var(--muted);font-size:.78rem;letter-spacing:.1em}.success-copy .primary-button{margin-top:4px}.final-invitation{position:relative;display:grid;justify-items:center;margin:30px auto 6px;padding:30px 20px;border-top:1px solid var(--line);text-align:center}.final-invitation .primary-button{width:min(100%,320px)}.small-hearts{display:flex;height:25px;align-items:end;gap:13px;color:var(--accent)}.small-hearts i{font-style:normal;opacity:0;animation:float-heart 2.2s ease-out forwards}.small-hearts i:nth-child(2){animation-delay:.18s;font-size:.7em}.small-hearts i:nth-child(3){animation-delay:.36s;font-size:1.15em}.small-hearts i:nth-child(4){animation-delay:.54s;font-size:.8em}.small-hearts i:nth-child(5){animation-delay:.72s}.ending-note{color:var(--muted)}.ending-note>span{color:var(--accent);font-size:1.7rem}.ending-note p{margin:8px 0;font-family:Marck Script,cursive;font-size:1.8rem}.ending-note strong{color:var(--ink);font-size:.9rem}.final-card p{line-height:1.6}.final-card .script-line{margin-top:2px}.paper-divider{margin:20px 0;color:var(--accent)}.hint-copy{padding:12px;background:#d84b4b0f;color:var(--muted);font-size:.8rem}.final-success>span{color:var(--accent);font-size:2.5rem}.final-success h2{margin:10px 0;font-size:2.2rem}.final-success .primary-button{margin-top:14px}.toast{position:fixed;z-index:50;left:50%;bottom:max(23px,env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 30px);transform:translate(-50%);border:1px solid rgba(90,73,61,.12);border-radius:2px;padding:12px 16px;background:var(--paper);box-shadow:0 8px 35px #2e231c33;color:var(--muted);text-align:center;font-size:.78rem}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@keyframes breathe{0%,to{transform:rotate(var(--tilt)) scale(1)}50%{transform:rotate(var(--tilt)) scale(1.022)}}@keyframes float-heart{0%{opacity:0;transform:translateY(10px) scale(.7)}35%{opacity:.9}to{opacity:0;transform:translateY(-18px) scale(1.05)}}@media(min-width:520px){.page-shell{padding-inline:28px}.hero-copy{margin-bottom:31px}.collage{gap:18px}.polaroid{padding:9px 9px 0}}@media(max-width:370px){.page-shell{padding-inline:10px}.collage{gap:7px}.answer-grid{grid-template-columns:1fr}.expanded-polaroid{padding:9px 9px 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
