@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-cyrillic-ext-400-normal-CKQhgFwn.woff2)format("woff2"),url(./great-vibes-cyrillic-ext-400-normal-CzcHves0.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-cyrillic-400-normal-C-wcqNJs.woff2)format("woff2"),url(./great-vibes-cyrillic-400-normal-DtFXCWjq.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-greek-ext-400-normal-Caxd-0sC.woff2)format("woff2"),url(./great-vibes-greek-ext-400-normal-I8uMZwKr.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-vietnamese-400-normal-a2O3jU53.woff2)format("woff2"),url(./great-vibes-vietnamese-400-normal-Cxbm9Uac.woff)format("woff");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:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-latin-ext-400-normal-CsjMq8GN.woff2)format("woff2"),url(./great-vibes-latin-ext-400-normal-wh4xxCIu.woff)format("woff");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:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-latin-400-normal-q5-78SH_.woff2)format("woff2"),url(./great-vibes-latin-400-normal-BAZ173uY.woff)format("woff");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}@font-face{font-family:Great Vibes;font-style:normal;font-display:swap;font-weight:400;src:url(./great-vibes-cyrillic-400-normal-C-wcqNJs.woff2)format("woff2"),url(./great-vibes-cyrillic-400-normal-DtFXCWjq.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:300;src:url(./cormorant-garamond-cyrillic-ext-300-normal-D8IReVS-.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-ext-300-normal-B5wCrnbP.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:300;src:url(./cormorant-garamond-cyrillic-300-normal-DZNkLIMe.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-300-normal-KEduutn5.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:300;src:url(./cormorant-garamond-vietnamese-300-normal-BTzPAsHw.woff2)format("woff2"),url(./cormorant-garamond-vietnamese-300-normal-ByHlPz7v.woff)format("woff");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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:300;src:url(./cormorant-garamond-latin-ext-300-normal-BsCYHBWC.woff2)format("woff2"),url(./cormorant-garamond-latin-ext-300-normal-DueGyF8j.woff)format("woff");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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:300;src:url(./cormorant-garamond-latin-300-normal-Cw-E_7L1.woff2)format("woff2"),url(./cormorant-garamond-latin-300-normal-BuXLI6C0.woff)format("woff");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}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:300;src:url(./cormorant-garamond-cyrillic-ext-300-italic-B31MkR9z.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-ext-300-italic-Dj41S4NK.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:300;src:url(./cormorant-garamond-cyrillic-300-italic-Bi4RSOgf.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-300-italic-Bo30KLu4.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:300;src:url(./cormorant-garamond-vietnamese-300-italic-CCKicgM4.woff2)format("woff2"),url(./cormorant-garamond-vietnamese-300-italic-DjSFy2Pr.woff)format("woff");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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:300;src:url(./cormorant-garamond-latin-ext-300-italic-Bt0Wsy7Q.woff2)format("woff2"),url(./cormorant-garamond-latin-ext-300-italic-DambfolG.woff)format("woff");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:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:300;src:url(./cormorant-garamond-latin-300-italic-qkwBXYHn.woff2)format("woff2"),url(./cormorant-garamond-latin-300-italic-DRnsRYID.woff)format("woff");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}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:300;src:url(./cormorant-garamond-cyrillic-300-normal-DZNkLIMe.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-300-normal-KEduutn5.woff)format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:300;src:url(./cormorant-garamond-cyrillic-300-italic-Bi4RSOgf.woff2)format("woff2"),url(./cormorant-garamond-cyrillic-300-italic-Bo30KLu4.woff)format("woff")}:root{--ink:#f8ecf2;--ink-soft:#ffd9e6;--rose:#ff8fb8;--gold:#f3d6a4;--glass:#ffffff0f;--glass-line:#ffc8dc2e;--cursive:"Great Vibes", "Segoe Script", "Brush Script MT", cursive;--serif:"Cormorant Garamond", Georgia, "Times New Roman", serif;--ease:cubic-bezier(.22, .8, .24, 1)}*{box-sizing:border-box}.preload *,.preload :before,.preload :after{transition:none!important}html,body{height:100%}@supports (height:100dvh){html,body{height:100dvh}}body{color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overscroll-behavior:none;background:radial-gradient(120% 80% at 50% 0,#3a1428 0%,#0000 60%),linear-gradient(#140a14 0%,#24101f 50%,#140a14 100%);margin:0;font-weight:300;overflow:hidden}.bg-canvas{z-index:0;opacity:0;width:100%;height:100%;transition:opacity 1.8s;display:block;position:fixed;inset:0}.bg-canvas.on{opacity:1}.grain{z-index:9;pointer-events:none;opacity:.07;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");animation:1.2s steps(4,end) infinite grainShift;position:fixed;inset:-50%}@keyframes grainShift{0%{transform:translate(0,0)}25%{transform:translate(-2%,1%)}50%{transform:translate(1%,-2%)}75%{transform:translate(-1%,-1%)}to{transform:translate(2%,1%)}}.progress{z-index:8;background:#ffffff0d;height:2px;position:fixed;top:0;left:0;right:0}.progress i{transform-origin:0;background:linear-gradient(90deg, #ff8fb859, var(--rose), var(--gold));width:100%;height:100%;display:block;transform:scaleX(0);box-shadow:0 0 12px #ff8fb899}.hw{display:inline-block;position:relative}.hw-ch{white-space:pre;will-change:opacity, transform, filter;display:inline-block}[data-text=bloom] .hw-ch{animation:1s cubic-bezier(.2,.75,.25,1) both hwBloom}@keyframes hwBloom{0%{opacity:0;filter:blur(14px);transform:translateY(.22em)scale(.9)}45%{opacity:1;filter:blur();text-shadow:0 0 26px #ffbed7f2,0 0 60px #ff78afa6;transform:translateY(-.02em)scale(1.03)}to{opacity:1;filter:blur();transform:none}}.hw.glow{animation:3.6s ease-in-out hwGlow}@keyframes hwGlow{0%,to{text-shadow:0 0 22px #ff96be59}45%{text-shadow:0 0 30px #ffbedcd9,0 0 70px #ff78af80}}[data-text=write] .hw-ch{clip-path:polygon(-18% -60%,-18% -60%,-18% 160%,-18% 160%);animation:.3s cubic-bezier(.35,.75,.4,1) both hwReveal}@keyframes hwReveal{0%{clip-path:polygon(-18% -60%,-18% -60%,-18% 160%,-18% 160%)}to{clip-path:polygon(-18% -60%,118% -60%,118% 160%,-18% 160%)}}.pen{opacity:0;pointer-events:none;background:radial-gradient(circle,#fff 0%,#ffbed766 60%,#0000 75%);border-radius:50%;width:9px;height:9px;transition:opacity .35s;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 18px 6px #ff96c399}.intro{z-index:6;text-align:center;pointer-events:none;transition:opacity 1.1s ease, transform 1.4s var(--ease), filter 1.1s ease;flex-direction:column;justify-content:center;align-items:center;padding:6vh 7vw;display:flex;position:fixed;inset:0}.intro.gone{opacity:0;filter:blur(6px);transform:scale(1.05)}.intro-pre{letter-spacing:.5em;text-indent:.5em;text-transform:lowercase;color:var(--gold);opacity:0;margin:0 0 1.6rem;font-size:clamp(.8rem,2.3vw,1.15rem);font-style:italic}.intro.live .intro-pre{animation:softUp 1.8s var(--ease) .3s forwards}.intro-hand{font-family:var(--cursive);color:#fff;text-shadow:0 0 36px #ff96be8c,0 0 100px #ff78aa4d;margin:0;font-size:clamp(2.8rem,10.5vw,6.6rem);font-weight:400;line-height:1.16}@keyframes softUp{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}.stage{z-index:2;perspective:1150px;perspective-origin:50% 46%;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;position:fixed;inset:0}.world{width:0;height:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;will-change:transform;position:absolute;top:50%;left:50%}.aura{aspect-ratio:1;filter:blur(30px);opacity:0;pointer-events:none;background:radial-gradient(circle,#ff6ea552 0%,#ff6ea51a 42%,#0000 66%);width:min(105vw,105vh);transition:opacity 2.4s;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.aura.on{opacity:1}.heart-glow{pointer-events:none;filter:blur(16px);opacity:0;position:absolute;top:0;left:0;overflow:visible}.hp{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;opacity:0;will-change:transform, opacity;position:absolute;top:0;left:0}.stage.done .hp{cursor:pointer}.hp-in{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;position:absolute;inset:0}.hp-face{backface-visibility:hidden;border-radius:6%;padding:max(2px,3%);position:absolute;inset:0;overflow:hidden}.hp-face.front{background:linear-gradient(160deg,#fff,#ffe6ee);box-shadow:0 12px 28px #00000080,0 0 18px #ff82af47,inset 0 0 0 1px #fff9}.hp-face.back{background:linear-gradient(150deg,#ffd6e5,#dd90b4 55%,#9e527a);transform:rotateY(180deg);box-shadow:0 12px 28px #00000073,inset 0 0 26px #ffffff38}.hp-face.back:after{content:"❤";color:#fff9;justify-content:center;align-items:center;font-size:1.4rem;display:flex;position:absolute;inset:0}.hp-face img{object-fit:cover;border-radius:4%;width:100%;height:100%;display:block}.hp-face.whole .photo{z-index:1;object-fit:contain;position:relative}.hp-face .photo-blur{object-fit:cover;filter:blur(10px)saturate(1.1)brightness(.5);border-radius:4%;width:100%;height:100%;position:absolute;inset:0;transform:scale(1.15)}.hp-face.front.ph img{display:none}.hp-face.front.ph{background:linear-gradient(150deg,#e06a95,#7d2a58)}.hp-face.front.ph:after{content:"❤";color:#fffc;justify-content:center;align-items:center;font-size:1.3rem;display:flex;position:absolute;inset:3%}.hp-shade{opacity:0;pointer-events:none;background:#150a13;border-radius:6%;position:absolute;inset:0}.hp.inspect .hp-face.front{box-shadow:0 30px 60px #0009,0 0 60px #ff8cbe73,inset 0 0 0 1px #ffffffb3}.core{text-align:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity 1.4s,visibility 1.4s;position:absolute;top:0;left:0;transform:translate(-50%,-50%)translateZ(26px)}.core.on{opacity:1;visibility:visible}.core-main{font-family:var(--cursive);color:#fff;text-shadow:0 0 28px #ff8cb9b3,0 0 80px #ff6ea573;margin:0;font-size:clamp(1.9rem,6.4vw,4rem);font-weight:400;line-height:1.14}.core-sub{letter-spacing:.24em;text-indent:.24em;color:var(--ink-soft);opacity:0;margin:1em 0 0;font-size:clamp(.7rem,2.1vw,1rem);font-style:italic;transition:opacity 1.6s}.core.on .core-sub{opacity:.9;transition-delay:1.8s}.caption-box{left:50%;bottom:calc(9vh + env(safe-area-inset-bottom));z-index:5;opacity:0;visibility:hidden;max-width:min(88vw,40rem);transition:opacity .8s ease, transform .9s var(--ease), border-color .8s ease, visibility .8s;pointer-events:none;background:linear-gradient(#2810224d,#180a148c);border:1px solid #0000;border-radius:24px;padding:.9rem 2rem 1.1rem;position:fixed;transform:translate(-50%)translateY(14px)}.caption-box.on{opacity:1;visibility:visible;-webkit-backdrop-filter:blur(14px)saturate(1.2);border-color:var(--glass-line);transform:translate(-50%)translateY(0)}.caption{font-family:var(--cursive);text-align:center;color:var(--ink-soft);text-shadow:0 0 24px #ff8cb466;margin:0;font-size:clamp(1.4rem,4.4vw,2.4rem);line-height:1.34}.hint{left:50%;bottom:calc(11vh + env(safe-area-inset-bottom));z-index:5;letter-spacing:.2em;color:#ffdeeb73;opacity:0;pointer-events:none;text-align:center;margin:0;font-size:.8rem;font-style:italic;position:fixed;transform:translate(-50%)}.counter{left:calc(3vw + env(safe-area-inset-left));bottom:calc(3.2vh + env(safe-area-inset-bottom));z-index:7;letter-spacing:.22em;color:#ffdeeb66;opacity:0;pointer-events:none;font-variant-numeric:tabular-nums;font-size:.78rem;font-style:italic;transition:opacity .6s;position:fixed}.counter.on{opacity:1}.counter.paused:after{content:" · пауза";color:var(--gold)}.controls{right:calc(2.6vw + env(safe-area-inset-right));bottom:calc(2.8vh + env(safe-area-inset-bottom));z-index:8;align-items:center;gap:.6rem;display:flex;position:fixed}.ctrl{font-family:var(--serif);letter-spacing:.14em;color:#ffe2ee99;background:var(--glass);border:1px solid var(--glass-line);cursor:pointer;-webkit-backdrop-filter:blur(12px);transition:color .3s ease, background .3s ease, border-color .3s ease, transform .3s var(--ease);border-radius:999px;padding:.55em 1.15em;font-size:.82rem;font-style:italic}.ctrl:hover{color:#fff;background:#ffffff1f;border-color:#ffc8dc73;transform:translateY(-2px)}.ctrl:active{transform:translateY(0)}.ctrl.icon{letter-spacing:0;place-items:center;width:2.4rem;height:2.4rem;padding:0;font-size:.7rem;font-style:normal;display:grid}.ctrl[hidden]{display:none}#playBtn:before{content:"❚❚"}#playBtn[data-state=paused]:before{content:"▶"}#musicBtn:before{content:"♪";font-size:1rem}#musicBtn[data-state=off]{color:#ffe2ee52}.start{z-index:15;text-align:center;-webkit-backdrop-filter:blur(6px);background:radial-gradient(circle at 50% 45%,#280e208c,#0e070ee0);flex-direction:column;justify-content:center;align-items:center;gap:2.2rem;padding:6vh 8vw;transition:opacity .9s,visibility .9s;display:flex;position:fixed;inset:0}.start[hidden]{display:none}.start.gone{opacity:0;visibility:hidden;pointer-events:none}.start-pre{letter-spacing:.5em;text-indent:.5em;color:var(--gold);opacity:.85;margin:0;font-size:clamp(.75rem,2.2vw,1rem);font-style:italic}.start-btn{aspect-ratio:1;width:clamp(5.5rem,22vw,7.5rem);color:var(--rose);cursor:pointer;transition:transform .4s var(--ease), border-color .4s ease;background:radial-gradient(circle at 50% 40%,#ff8cb947,#ff6ea514 65%,#0000);border:1px solid #ffbed759;border-radius:50%;place-items:center;font-size:clamp(2rem,8vw,2.8rem);animation:2.6s ease-in-out infinite startPulse;display:grid}.start-btn:hover{border-color:#ffc8e1b3;transform:scale(1.06)}.start-btn span{filter:drop-shadow(0 0 20px #ff8cb9cc)}@keyframes startPulse{0%,to{box-shadow:0 0 #ff8cb947}45%{box-shadow:0 0 44px 12px #ff8cb929}}.start-hint{color:#ffdeeb99;margin:0;font-size:clamp(.85rem,2.6vw,1.05rem);font-style:italic;line-height:1.9}.start-hint small{opacity:.65;letter-spacing:.16em;font-size:.8em}.loader{z-index:20;background:#140a14;place-items:center;transition:opacity .9s,visibility .9s;display:grid;position:fixed;inset:0}.loader span{color:var(--rose);filter:drop-shadow(0 0 22px #ff8cb9b3);font-size:2.2rem;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.55;transform:scale(1)}30%{opacity:1;transform:scale(1.18)}45%{opacity:.85;transform:scale(1.05)}}.loader.gone{opacity:0;visibility:hidden}@media (width<=560px){.caption-box{border-radius:20px;padding:.8rem 1.4rem 1rem;bottom:12vh}.controls{bottom:2.2vh;right:50%;transform:translate(50%)}.counter{bottom:7.5vh;left:50%;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.grain,.loader span{animation:none}.hw-ch{clip-path:none;animation-duration:.01ms}}
