@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/pixelify-sans-cyrillic-500-normal--wrb4dVK.woff2) format("woff2"),url(/assets/pixelify-sans-cyrillic-500-normal-CR9SIKMr.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/pixelify-sans-latin-ext-500-normal-BHT4w5qI.woff2) format("woff2"),url(/assets/pixelify-sans-latin-ext-500-normal-Bkr-oq6R.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:Pixelify Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/pixelify-sans-latin-500-normal-DC052d-m.woff2) format("woff2"),url(/assets/pixelify-sans-latin-500-normal-Bq6pAlou.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:Pixelify Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pixelify-sans-cyrillic-700-normal-CYtG5Rfp.woff2) format("woff2"),url(/assets/pixelify-sans-cyrillic-700-normal-BrZTw8tu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Pixelify Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pixelify-sans-latin-ext-700-normal-ClyJstAh.woff2) format("woff2"),url(/assets/pixelify-sans-latin-ext-700-normal-BadXkHzZ.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:Pixelify Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pixelify-sans-latin-700-normal-D3Xxx3QE.woff2) format("woff2"),url(/assets/pixelify-sans-latin-700-normal-BctWAS0u.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:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/press-start-2p-cyrillic-ext-400-normal-CIYZrvmP.woff2) format("woff2"),url(/assets/press-start-2p-cyrillic-ext-400-normal-B5Ckvkit.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:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/press-start-2p-cyrillic-400-normal-DBn7fddJ.woff2) format("woff2"),url(/assets/press-start-2p-cyrillic-400-normal-CbE56R3Y.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/press-start-2p-greek-400-normal-DQfalijU.woff2) format("woff2"),url(/assets/press-start-2p-greek-400-normal-BR_lG5n9.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:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/press-start-2p-latin-ext-400-normal-DpfYvR5A.woff2) format("woff2"),url(/assets/press-start-2p-latin-ext-400-normal-DBgyq7ky.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:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/press-start-2p-latin-400-normal-_wFEWmAB.woff2) format("woff2"),url(/assets/press-start-2p-latin-400-normal-KLytu4cr.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{--px: 4;--print-w: 190px;--cream: #fff6ee;--gingham: rgba(255, 120, 165, .12);--ink: #3b1f3a;--ink-soft: #6d4a68;--pink: #ff4f8b;--pink-deep: #c22a68;--pink-soft: #ffc2d6;--lilac: #c8a6e6;--navy: #10204a;--navy-2: #1c3470;--sea: #7fb0ff;--paper: #fffdf8;--b: calc(var(--px) * 1px);--pixel: "Pixelify Sans", ui-monospace, monospace;--arcade: "Press Start 2P", ui-monospace, monospace;color-scheme:light}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%;overflow:hidden}body{background-color:var(--cream);background-image:linear-gradient(90deg,var(--gingham) 50%,transparent 50%),linear-gradient(var(--gingham) 50%,transparent 50%);background-size:calc(var(--b) * 16) calc(var(--b) * 16);color:var(--ink);font-family:var(--pixel);-webkit-font-smoothing:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;touch-action:manipulation}canvas{image-rendering:pixelated;display:block}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:inherit}:focus-visible{outline:var(--b) dashed var(--pink);outline-offset:var(--b)}.pixel-edge{--edge: var(--ink);box-shadow:0 calc(var(--b) * -1) 0 0 var(--edge),0 var(--b) 0 0 var(--edge),calc(var(--b) * -1) 0 0 0 var(--edge),var(--b) 0 0 0 var(--edge),calc(var(--b) * 2) calc(var(--b) * 2) 0 0 #3b1f3a38}#flowers{position:fixed;inset:0;width:100vw;height:100dvh;pointer-events:none;z-index:0}.scene{position:fixed;inset:0;z-index:2;pointer-events:none;display:grid;grid-template-rows:auto 1fr;justify-items:center;padding:max(16px,calc(var(--b) * 6)) 16px 16px}.title{margin:0;text-align:center;font-weight:700;line-height:1;letter-spacing:.02em;pointer-events:none}.title .line{display:block;white-space:nowrap}.title .line+.line{margin-top:calc(var(--b) * 2)}.title .line:first-child{font-size:clamp(22px,4.4vw,64px);color:var(--ink);text-shadow:var(--b) var(--b) 0 var(--pink-soft)}.title .line:last-child{font-size:clamp(40px,8.4vw,120px);color:var(--pink);text-shadow:var(--b) var(--b) 0 var(--ink),calc(var(--b) * 2) calc(var(--b) * 2) 0 var(--ink)}.title .ch{display:inline-block;animation:bob 1.1s infinite;animation-delay:calc(var(--i) * -.09s)}.title .ch.space{width:.35em}.title .ch.pop{animation:pop-in .42s both,bob 1.1s .42s infinite;animation-delay:calc(var(--i) * 45ms),calc(var(--i) * -.09s)}@keyframes bob{0%,to{transform:translateY(0);animation-timing-function:steps(1,end)}50%{transform:translateY(calc(var(--b) * -1));animation-timing-function:steps(1,end)}}@keyframes pop-in{0%{transform:translateY(calc(var(--b) * 8)) scale(0);opacity:0}60%{transform:translateY(calc(var(--b) * -3)) scale(1.25);opacity:1}to{transform:none;opacity:1}}.stage{position:relative;align-self:center;display:flex;flex-direction:column;align-items:center;gap:calc(var(--b) * 4);margin-top:calc(var(--b) * 10)}.camera-wrap{position:relative;isolation:isolate;animation:idle 2s infinite}@keyframes idle{0%,to{transform:translateY(0);animation-timing-function:steps(1,end)}50%{transform:translateY(var(--b));animation-timing-function:steps(1,end)}}.camera{position:relative;z-index:1;display:block;pointer-events:auto;filter:drop-shadow(calc(var(--b) * 2) calc(var(--b) * 2) 0 rgba(59,31,58,.25));transition:transform .12s steps(2)}.camera:hover{transform:translateY(calc(var(--b) * -2))}.camera:active{transform:translateY(0)}.camera-art{width:calc(var(--b) * 88);height:calc(var(--b) * 50)}.slot{position:absolute;z-index:0;left:50%;bottom:calc(100% - var(--b) * 6);width:calc(var(--print-w) * 1.6);height:calc(var(--print-w) * 1.6);transform:translate(-50%);overflow:hidden;pointer-events:none;display:flex;align-items:flex-end;justify-content:center}.hint{margin:0;min-height:1.4em;font-size:max(16px,calc(var(--b) * 5));font-weight:500;color:var(--ink);text-align:center;pointer-events:none;text-shadow:0 0 6px var(--cream),0 0 2px var(--cream)}.hint img{width:calc(var(--b) * 9);vertical-align:-.15em;margin-left:.3em;image-rendering:pixelated;animation:beat .9s infinite}.table{position:fixed;inset:0;z-index:1;pointer-events:none}.print{position:absolute;margin:0;width:var(--print-w);padding:calc(var(--print-w) * .065) calc(var(--print-w) * .065) 0;background:var(--paper);--edge: #e7d9cf;box-shadow:0 -2px 0 0 var(--edge),0 2px 0 0 var(--edge),-2px 0 0 0 var(--edge),2px 0 0 0 var(--edge),calc(var(--b) * 2) calc(var(--b) * 2) 0 0 #3b1f3a33;pointer-events:auto;touch-action:none;will-change:transform}.slot .print{position:relative}.print.landscape{width:calc(var(--print-w) * 1.3)}.print.on-table{cursor:grab}.print.held{cursor:grabbing;box-shadow:0 -2px 0 0 var(--edge),0 2px 0 0 var(--edge),-2px 0 0 0 var(--edge),2px 0 0 0 var(--edge),calc(var(--b) * 4) calc(var(--b) * 5) 0 0 #3b1f3a40}.pic{position:relative;aspect-ratio:3 / 4;overflow:hidden;background:#2a2230}.landscape .pic{aspect-ratio:4 / 3}.pic img{width:100%;height:100%;object-fit:cover;display:block}.dev{position:absolute;inset:0;background:#efe6d4}.print figcaption{height:calc(var(--print-w) * .24);display:grid;place-items:center;white-space:nowrap;font-size:max(10px,calc(var(--print-w) * .085));color:var(--ink-soft)}.cap-heart{width:calc(var(--print-w) * .09);image-rendering:pixelated;opacity:.85}.envelope{position:absolute;top:100%;left:calc(50% - var(--b) * 13);margin-top:calc(var(--b) * 2);z-index:2;pointer-events:auto;filter:drop-shadow(calc(var(--b) * 2) calc(var(--b) * 2) 0 rgba(59,31,58,.25));animation:wiggle 1.6s 1s infinite}.envelope.drop{animation:drop .9s both,wiggle 1.6s 1.4s infinite}.envelope-art{width:calc(var(--b) * 26);height:calc(var(--b) * 18)}.envelope.opened .envelope-art{height:calc(var(--b) * 29);margin-top:calc(var(--b) * -11)}@keyframes drop{0%{transform:translateY(-100vh)}55%{transform:translateY(0)}70%{transform:translateY(calc(var(--b) * -8))}85%{transform:translateY(0)}93%{transform:translateY(calc(var(--b) * -2))}to{transform:translateY(0)}}@keyframes wiggle{0%,70%,to{rotate:0deg}76%{rotate:-6deg}82%{rotate:6deg}88%{rotate:-4deg}94%{rotate:3deg}}.player{position:fixed;z-index:5;left:max(16px,calc(var(--b) * 5));bottom:max(16px,calc(var(--b) * 5));width:calc(var(--b) * 76);min-width:270px;background:var(--navy);color:var(--cream);--edge: var(--ink);animation:slide-up .6s .8s both cubic-bezier(.3,1.4,.5,1)}@keyframes slide-up{0%{transform:translateY(160%)}}.player-bar{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;background:var(--pink);color:var(--paper);font-family:var(--arcade);font-size:8px;letter-spacing:.04em}.player-dots{font-size:6px;letter-spacing:2px}.player-body{display:flex;gap:10px;align-items:center;padding:10px}.player-cover{width:60px;height:60px;flex:none;box-shadow:0 0 0 2px var(--cream)}.player-meta{flex:1;min-width:0;display:grid;gap:2px}.player-title{font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-artist{font-size:13px;color:var(--sea)}.player-viz{display:flex;align-items:flex-end;gap:2px;height:18px;margin-top:4px}.player-viz i{width:4px;height:2px;background:var(--pink-soft)}.player-toggle{flex:none;width:44px;height:44px;display:grid;place-items:center;background:var(--cream);cursor:pointer;box-shadow:0 0 0 2px var(--cream),3px 3px 0 0 var(--pink)}.player-toggle:active{transform:translate(2px,2px);box-shadow:0 0 0 2px var(--cream),1px 1px 0 0 var(--pink)}.player-toggle:before{content:"";width:12px;height:14px;background:linear-gradient(var(--navy),var(--navy)) left / 4px 100% no-repeat,linear-gradient(var(--navy),var(--navy)) right / 4px 100% no-repeat}.player-toggle.paused:before{width:12px;height:14px;background:var(--navy);clip-path:polygon(0 0,100% 50%,0 100%);margin-left:3px}.player-progress{height:4px;margin:0 10px 10px;background:var(--navy-2)}.player-progress i{display:block;height:100%;width:0;background:var(--pink)}.note{position:fixed;z-index:4;font-family:var(--pixel);font-weight:700;pointer-events:none;text-shadow:2px 2px 0 rgba(59,31,58,.25)}.lightbox,.letter{position:fixed;inset:0;z-index:10;display:grid;place-items:center;padding:24px}.lightbox{background:#10204ab8;cursor:zoom-out}.lightbox .print{position:relative;transform:rotate(var(--rot, -2deg));--print-w: min(62vh, 78vw);cursor:zoom-out}.lightbox .print.landscape{--print-w: min(66vh, 66vw)}.letter{background:#3b1f3a80}.paper{position:relative;width:min(560px,100%);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;--pad-x: 40px;--pad-b: 36px;background-color:var(--paper);--edge: var(--ink);user-select:text;-webkit-user-select:text}.letter-text{font-size:22px;line-height:35px;color:var(--ink);background-image:linear-gradient(transparent 31px,#f6d5df 31px 33px,transparent 33px);background-size:100% 35px}.letter-text p{margin:0 0 35px}.letter-text .greeting{color:var(--pink-deep);font-weight:700;font-size:26px}.letter-text .signoff{text-align:right;margin:0;font-weight:700}.signoff-heart{width:27px;height:auto;margin-left:8px;vertical-align:-4px;image-rendering:pixelated;animation:beat .9s infinite}.paper-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:2px var(--pad-x) var(--pad-b)}.letter-more{position:absolute;left:0;right:0;bottom:0;height:64px;display:grid;place-items:end center;padding-bottom:10px;pointer-events:none;background:linear-gradient(transparent,var(--paper) 75%);transition:opacity .2s,visibility .2s}.letter-more:after{content:"";width:20px;height:12px;background:var(--pink-deep);clip-path:polygon(0 0,100% 0,100% 34%,80% 34%,80% 67%,60% 67%,60% 100%,40% 100%,40% 67%,20% 67%,20% 34%,0 34%);animation:nudge .9s steps(2) infinite}.paper.at-end .letter-more{opacity:0;visibility:hidden}.paper.at-end .letter-more:after{animation:none}@keyframes nudge{to{transform:translateY(4px)}}.letter-close{flex:none;align-self:flex-end;margin:6px 6px 0 0;width:44px;height:44px;font-family:var(--arcade);font-size:14px;color:var(--ink);background-color:var(--paper);cursor:pointer}.flash{position:fixed;inset:0;z-index:50;background:#fff;opacity:0;pointer-events:none}.start{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;background:radial-gradient(ellipse at 50% 120%,#2b4f9e 0%,transparent 60%),linear-gradient(#0a1533,var(--navy));color:var(--cream);cursor:pointer;text-align:center;overflow:hidden}.start:focus-visible{outline:none}.start p{margin:0;position:relative}.start-heart{width:72px;height:64px;margin-bottom:8px;animation:beat .9s infinite}@keyframes beat{0%,to{transform:scale(1);animation-timing-function:steps(1,end)}15%{transform:scale(1.15);animation-timing-function:steps(1,end)}30%{transform:scale(1);animation-timing-function:steps(1,end)}45%{transform:scale(1.1);animation-timing-function:steps(1,end)}}.start-kicker{font-size:20px;color:var(--sea)}.start-name{font-size:clamp(72px,16vw,160px);font-weight:700;line-height:1;color:var(--pink);text-shadow:6px 6px 0 #5a1a3a,12px 12px 0 rgba(0,0,0,.25);margin-bottom:22px!important}.start-prompt{font-family:var(--arcade);font-size:clamp(14px,2vw,22px);color:var(--paper);animation:blink 1.1s infinite}.start.go .start-prompt{animation:blink .16s infinite}.caret{color:var(--pink)}.start-sound{margin-top:26px!important;font-family:var(--arcade);font-size:10px;color:var(--sea);opacity:.8}@keyframes blink{0%,to{opacity:1;animation-timing-function:steps(1,end)}50%{opacity:0;animation-timing-function:steps(1,end)}}.bubbles span{position:absolute;bottom:-20px;width:var(--s);height:var(--s);box-shadow:0 -2px 0 0 var(--sea),0 2px 0 0 var(--sea),-2px 0 0 0 var(--sea),2px 0 0 0 var(--sea);opacity:.5;animation:rise var(--d) linear infinite;animation-delay:var(--delay)}@keyframes rise{to{transform:translate(var(--drift),-110vh)}}.start.leaving{animation:wipe .5s steps(8) forwards}@keyframes wipe{to{clip-path:inset(0 0 100% 0)}}.noscript{position:fixed;inset:0;display:grid;place-items:center;margin:0;font:20px var(--pixel);background:var(--navy);color:var(--cream)}@media(max-aspect-ratio:21/20),(max-height:500px){.stage{margin-top:0}.player{width:auto;min-width:0}.player-bar,.player-progress,.player-artist{display:none}.player-body{padding:8px}.player-cover{width:44px;height:44px}.player-title{font-size:13px;max-width:110px}.paper{--pad-x: 22px;--pad-b: 28px}.letter-text{font-size:19px}}@media(max-aspect-ratio:21/20){.title .line:first-child{font-size:6.2vw}.title .line:last-child{font-size:15vw}}
