@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(./cormorant-garamond-cyrillic-400-normal-DD2KOZkl.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-400-normal-CVFrM67f.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(./cormorant-garamond-cyrillic-400-italic-D3GtrbRZ.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-400-italic-AH1vqu4S.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(./manrope-cyrillic-400-normal-BMzJvInZ.woff2)format("woff2"),url(./manrope-cyrillic-400-normal-Dvx59UGC.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(./cormorant-garamond-latin-400-normal-B-1hWBU7.woff2)format("woff2"),url(./cormorant-garamond-latin-400-normal-B7YtguxJ.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:400;src:url(./cormorant-garamond-latin-400-italic-Dc_OZ8oc.woff2)format("woff2"),url(./cormorant-garamond-latin-400-italic-BLh7T8o8.woff)format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(./manrope-latin-400-normal-PaqtzbVb.woff2)format("woff2"),url(./manrope-latin-400-normal-8tf8FM3T.woff)format("woff")}:root{--night:#04050d;--navy:#0b1130;--violet:#2a1f4a;--silver:#e8eaf4;--silver-dim:#e8eaf49e;--gold:#f3d9a4;--serif:"Cormorant Garamond", "Times New Roman", serif;--sans:"Manrope", -apple-system, system-ui, sans-serif;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;background:var(--night);height:100%;color:var(--silver);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;margin:0;overflow:hidden}body{background:radial-gradient(120% 70% at 50% 110%, #2a1f4a8c, transparent 60%), radial-gradient(90% 60% at 20% -10%, #0b1130e6, transparent 70%), var(--night);position:fixed;inset:0}#sky{width:100vw;height:100dvh;display:block;position:fixed;inset:0}#stage{height:100dvh;padding:calc(var(--safe-top) + 24px) 24px calc(var(--safe-bottom) + 96px);pointer-events:none;display:grid;position:fixed;inset:0}.scene{text-align:center;opacity:0;flex-direction:column;grid-area:1/1;justify-content:center;align-items:center;display:flex}.scene[hidden]{display:none}.title{font-family:var(--serif);letter-spacing:.01em;text-shadow:0 0 24px #b4beff40;margin:0;font-size:clamp(30px,9.2vw,50px);font-weight:400;line-height:1.08}.title .line{white-space:nowrap;display:block}.nowrap{white-space:nowrap}.title .word{opacity:0}.subtitle{font-family:var(--serif);color:var(--silver-dim);opacity:0;margin:18px 0 0;font-size:21px;font-style:italic}.scene[data-scene=title]{justify-content:flex-start;padding-top:30dvh}.hint{left:0;right:0;bottom:calc(var(--safe-bottom) + 34px);text-align:center;letter-spacing:.04em;color:var(--silver);opacity:0;pointer-events:none;margin:0;font-size:15px;position:fixed}.hint.breathing{animation:3.2s ease-in-out infinite breathe}@keyframes breathe{0%,to{opacity:.28}50%{opacity:.55}}.pulse{pointer-events:none;opacity:0;background:radial-gradient(circle,#fff4d638 0%,#fff4d60f 40%,#0000 70%);border-radius:50%;width:88px;height:88px;margin:-44px 0 0 -44px;position:fixed}.pulse.on{animation:2.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.25;transform:scale(.75)}50%{opacity:.85;transform:scale(1.15)}}.veil{background:var(--night);pointer-events:none;transition:opacity 1.6s;position:fixed;inset:0}.veil.gone{opacity:0}#debug{top:calc(var(--safe-top) + 6px);color:#9f9;pointer-events:none;white-space:pre;z-index:10;background:#00000080;border-radius:4px;padding:4px 6px;font:11px/1.3 ui-monospace,monospace;position:fixed;left:8px}@media (prefers-reduced-motion:reduce){.hint.breathing{opacity:.45;animation:none}.pulse.on{opacity:.5;animation:none}}.scene[data-scene=sky]{justify-content:flex-end;padding-bottom:24px}.sky-prompt{font-family:var(--serif);color:var(--silver-dim);opacity:0;margin:8px 0 0;font-size:20px;font-style:italic}.scene[data-scene=card]{justify-content:flex-end;padding-bottom:8px}.card{text-align:center;width:100%;max-width:420px}.numeral{font-family:var(--serif);letter-spacing:.32em;color:var(--gold);opacity:.85;margin:0 0 6px;font-size:15px}.card-title{font-family:var(--serif);text-wrap:balance;margin:0 0 22px;font-size:30px;font-weight:400;line-height:1.12}.card-body{align-items:start;min-height:9.5em;display:grid}.card-page{grid-area:1/1;gap:14px;display:grid}.card-page p{color:var(--silver);text-wrap:pretty;margin:0;font-size:18px;line-height:1.55}.scene[data-scene=letter]{justify-content:flex-start;padding-top:2dvh}.letter-head .card-title{margin-bottom:6px}.letter-sub{font-family:var(--serif);color:var(--silver-dim);margin:0;font-size:19px;font-style:italic}.photo{pointer-events:none;will-change:transform, width, height;position:fixed;top:0;left:0}.photo-page{place-items:center;display:grid;position:absolute;inset:0}.photo-page img{object-fit:contain;width:100%;height:100%;display:block;box-shadow:0 10px 30px #00000080}.photo-page.placeholder{color:#6b6152;font-family:var(--serif);text-align:center;background:repeating-linear-gradient(#0000 0 27px,#505a8c2e 27px 28px),linear-gradient(160deg,#f6efe0,#ece2cc);padding:24px;font-size:20px;font-style:italic;box-shadow:0 10px 30px #00000080}.scene[data-scene=finale]{justify-content:flex-start;margin-bottom:-64px;padding-top:24dvh}.finale-title{font-family:var(--serif);letter-spacing:.01em;opacity:0;margin:0 0 18px;font-size:32px;font-weight:400}.finale-lines{gap:13px;max-width:24em;display:grid}.finale-lines p{opacity:0;text-wrap:pretty;margin:0;font-size:17px;line-height:1.55}.finale-lines p.last{font-family:var(--serif);color:var(--gold);text-shadow:0 0 18px #ffcf7a59;margin-top:6px;font-size:30px;line-height:1.2}.twentytwo{font-family:var(--serif);color:#f3debadb;gap:4px;margin-top:auto;padding-top:18px;font-size:18px;font-style:italic;display:grid}.twentytwo p{opacity:0;margin:0}
