@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/99c6cdb74b1a9f21-s.3-72worm-ib39.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/9b2952c75e1b82c6-s.3_mjd9z78cbbb.woff2)format("woff2");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:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/01d67e7cc17e7674-s.p.0wyelkczeev99.woff2)format("woff2");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:Pixelify Sans Fallback;src:local(Arial);ascent-override:81.7%;descent-override:24.87%;line-gap-override:0.0%;size-adjust:112.61%}.pixelify_sans_93cda700-module__zW_wSq__className{font-family:Pixelify Sans,Pixelify Sans Fallback;font-style:normal}.pixelify_sans_93cda700-module__zW_wSq__variable{--font-pixel:"Pixelify Sans", "Pixelify Sans Fallback"}
@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;font-display:swap;src:url(../media/cc6c75d91fb27f62-s.3vy-_l9ztcxef.woff2)format("woff2");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:Atkinson Hyperlegible;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ed5f1f9bced69653-s.p.2v4ibmotuyxuz.woff2)format("woff2");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:Atkinson Hyperlegible;font-style:normal;font-weight:700;font-display:swap;src:url(../media/574e5b2a8fe8e45b-s.1zpm-mgw3w1fq.woff2)format("woff2");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:Atkinson Hyperlegible;font-style:normal;font-weight:700;font-display:swap;src:url(../media/89ea96820aa96980-s.p.3pskbmi5y11f5.woff2)format("woff2");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:Atkinson Hyperlegible Fallback;src:local(Arial);ascent-override:95.6%;descent-override:29.18%;line-gap-override:0.0%;size-adjust:99.37%}.atkinson_hyperlegible_a94ae084-module__wdRCBq__className{font-family:Atkinson Hyperlegible,Atkinson Hyperlegible Fallback;font-style:normal}.atkinson_hyperlegible_a94ae084-module__wdRCBq__variable{--font-letter:"Atkinson Hyperlegible", "Atkinson Hyperlegible Fallback"}
@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.block{display:block}}:root{--sky-deep:#13072f;--sky-mid:#3b276f;--horizon:#f36356;--sun:#ffbf66;--coral:#f75d5c;--coral-light:#ff9c8d;--honey:#f8a052;--book:#872678;--book-dark:#3d0e40;--paper:#fef0d8;--paper-shadow:#e0c29d;--ink:#241930;--ink-soft:#483c56;--light:#fbf4ea}@supports (color:lab(0% 0 0)){:root{--sky-deep:lab(4.34193% 12.8356 -23.7004);--sky-mid:lab(21.5165% 24.635 -39.5675);--horizon:lab(61.163% 55.8372 37.2762);--sun:lab(82.3984% 21.8564 63.9852);--coral:lab(60.9673% 60.068 33.901);--coral-light:lab(74.464% 39.5245 26.0721);--honey:lab(73.9462% 28.6532 53.7325);--book:lab(33.8103% 47.8226 -24.3713);--book-dark:lab(13.7335% 28.3933 -20.574);--paper:lab(95.4455% 2.29469 13.3967);--paper-shadow:lab(80.2849% 7.24357 22.7317);--ink:lab(11.2119% 9.92475 -13.3492);--ink-soft:lab(27.4944% 9.53293 -13.5083);--light:lab(96.5617% .892848 5.67414)}}*{box-sizing:border-box}html{background:var(--sky-deep);min-width:320px}body{min-height:100vh;color:var(--light);font-family:var(--font-letter), sans-serif;margin:0;overflow-x:hidden}button{font:inherit}button:focus-visible{outline:3px solid var(--sun);outline-offset:4px}.love-scene{isolation:isolate;min-height:100dvh;padding:max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));background:linear-gradient(to bottom, var(--sky-deep) 0%, var(--sky-mid) 48%, var(--horizon) 100%);place-items:center;display:grid;position:relative;overflow:hidden}.love-scene:after{z-index:-1;content:"";mix-blend-mode:soft-light;opacity:.35;pointer-events:none;background-image:radial-gradient(circle,#ffffff17 1px,#0000 1px);background-image:radial-gradient(circle,lab(100% 0 0/.09) 1px,#0000 1px);background-size:6px 6px;position:absolute;inset:0}.sky-glow{z-index:-2;pointer-events:none;background:radial-gradient(#ffb6776b,#0000 68%);background:radial-gradient(lab(80.8711% 29.5556 51.519/.42),#0000 68%);width:min(90vw,720px);height:42vh;position:absolute;bottom:8%;left:50%;transform:translate(-50%)}.pixel-sun{z-index:-2;aspect-ratio:1;background:var(--sun);clip-path:polygon(25% 0,75% 0,75% 7%,91% 7%,91% 25%,100% 25%,100% 75%,91% 75%,91% 91%,75% 91%,75% 100%,25% 100%,25% 91%,9% 91%,9% 75%,0 75%,0 25%,9% 25%,9% 9%,25% 9%);width:clamp(52px,10vw,92px);position:absolute;bottom:20%;right:clamp(7%,16vw,22%);box-shadow:0 0 0 6px #ffda9d38,0 0 48px #ffbe757a;box-shadow:0 0 0 6px lab(89.6003% 12.9685 49.2643/.22),0 0 48px lab(82.1963% 27.7811 67.0687/.48)}.cloud{z-index:-1;background:#e4e2f447;background:lab(90.4694% 3.39589 -8.69944/.28);width:48px;height:12px;animation:18s linear infinite alternate drift;position:absolute;box-shadow:12px -12px #e4e2f447,30px -6px #e4e2f447,48px 0 #e4e2f447;box-shadow:12px -12px lab(90.4694% 3.39589 -8.69944/.28),30px -6px lab(90.4694% 3.39589 -8.69944/.28),48px 0 lab(90.4694% 3.39589 -8.69944/.28)}.cloud-one{top:18%;left:8%}.cloud-two{opacity:.55;animation-duration:24s;top:32%;right:15%;transform:scale(.75)}.star-field,.flower-field{z-index:-1;pointer-events:none;position:absolute;inset:0}.star-field i{background:var(--light);width:3px;height:3px;animation:2.8s steps(2,end) infinite twinkle;position:absolute;box-shadow:0 0 8px #ffffffb3;box-shadow:0 0 8px lab(100% 0 0/.7)}.star-field i:first-child{top:9%;left:6%}.star-field i:nth-child(2){animation-delay:-1s;top:27%;left:14%}.star-field i:nth-child(3){animation-delay:-2s;top:13%;left:22%}.star-field i:nth-child(4){top:34%;left:31%}.star-field i:nth-child(5){animation-delay:-1.4s;top:8%;left:41%}.star-field i:nth-child(6){animation-delay:-2.1s;top:25%;left:52%}.star-field i:nth-child(7){top:12%;left:63%}.star-field i:nth-child(8){animation-delay:-.8s;top:31%;left:71%}.star-field i:nth-child(9){animation-delay:-1.8s;top:15%;left:81%}.star-field i:nth-child(10){top:28%;left:91%}.star-field i:nth-child(11){animation-delay:-2.3s;top:44%;left:10%}.star-field i:nth-child(12){animation-delay:-.7s;top:48%;left:27%}.star-field i:nth-child(13){animation-delay:-1.1s;top:47%;left:75%}.star-field i:nth-child(14){animation-delay:-2.5s;top:43%;left:94%}.star-field i:nth-child(15){top:61%;left:3%}.star-field i:nth-child(16){animation-delay:-1.6s;top:57%;left:18%}.star-field i:nth-child(17){animation-delay:-2.2s;top:60%;left:84%}.star-field i:nth-child(18){top:66%;left:97%}.star-field i:nth-child(19){animation-delay:-1.3s;top:19%;left:35%}.star-field i:nth-child(20){animation-delay:-.4s;top:42%;left:58%}.star-field i:nth-child(21){animation-delay:-2.6s;top:6%;left:68%}.star-field i:nth-child(22){animation-delay:-1.9s;top:38%;left:88%}.distant-hills{z-index:-1;clip-path:polygon(0 65%,8% 43%,16% 57%,26% 24%,39% 62%,51% 33%,62% 55%,72% 17%,84% 49%,92% 31%,100% 52%,100% 100%,0 100%);background:#29173f;background:lab(11.8334% 16.9774 -22.7364);height:24%;position:absolute;bottom:0;left:-4%;right:-4%}.distant-hills:after{clip-path:polygon(0 42%,15% 24%,26% 51%,40% 18%,55% 53%,70% 27%,83% 49%,100% 20%,100% 100%,0 100%);content:"";background:#160528;background:lab(3.65656% 12.4444 -19.0953);position:absolute;inset:42% 0 0}.flower-field i{background:#146720;background:lab(37.7352% -36.5995 31.4316);width:4px;height:20px;position:absolute;bottom:3%}.flower-field i:before{background:var(--coral-light);width:12px;height:8px;box-shadow:4px -4px 0 var(--sun);content:"";position:absolute;top:-5px;left:-4px}.flower-field i:first-child{height:28px;left:2%}.flower-field i:nth-child(2){height:18px;bottom:8%;left:9%}.flower-field i:nth-child(3){height:34px;left:17%}.flower-field i:nth-child(4){height:22px;bottom:6%;left:26%}.flower-field i:nth-child(5){height:30px;left:36%}.flower-field i:nth-child(6){height:17px;bottom:9%;left:46%}.flower-field i:nth-child(7){height:27px;left:57%}.flower-field i:nth-child(8){height:20px;bottom:7%;left:66%}.flower-field i:nth-child(9){height:34px;left:74%}.flower-field i:nth-child(10){height:18px;bottom:9%;left:83%}.flower-field i:nth-child(11){height:29px;left:91%}.flower-field i:nth-child(12){height:23px;bottom:5%;left:97%}.book-stage{justify-content:center;align-items:center;width:min(100%,430px);min-height:min(700px,100dvh - 20px);padding-top:48px;display:flex;position:relative}.sound-toggle{z-index:5;color:#fbf0e0;color:lab(95.4253% 1.56459 9.51147);cursor:pointer;min-height:40px;font-family:var(--font-pixel), sans-serif;text-shadow:2px 2px 0 var(--book-dark);background:0 0;border:0;align-items:center;gap:8px;font-size:.82rem;display:inline-flex;position:absolute;top:2px;right:0}.sound-toggle svg{fill:currentColor;stroke:currentColor;stroke-width:2px;width:22px;height:22px}.book-cover{background:var(--book);width:min(100%,390px);height:min(590px,100dvh - 88px);min-height:430px;box-shadow:8px 8px 0 var(--book-dark), 14px 14px 0 #0f051d80;clip-path:polygon(0 14px,14px 14px,14px 0,calc(100% - 14px) 0,calc(100% - 14px) 14px,100% 14px,100% calc(100% - 14px),calc(100% - 14px) calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,14px calc(100% - 14px),0 calc(100% - 14px));flex-direction:column;justify-content:center;align-items:center;padding:clamp(24px,6vh,52px) 24px 28px;animation:.72s cubic-bezier(.22,1,.36,1) both book-arrival;display:flex;position:relative;overflow:hidden}@supports (color:lab(0% 0 0)){.book-cover{box-shadow:8px 8px 0 var(--book-dark), 14px 14px 0 lab(2.64531% 6.29573 -11.9048/.5)}}.book-cover:before{border:4px solid var(--honey);content:"";pointer-events:none;position:absolute;inset:18px}.book-cover:after{background:var(--book-dark);content:"";width:7px;position:absolute;top:0;bottom:0;left:22px;box-shadow:8px 0 #a85a998c;box-shadow:8px 0 lab(49.4064% 39.1871 -19.9935/.55)}.cover-corner{border-color:var(--honey);width:28px;height:28px;position:absolute;right:26px}.corner-top{border-top:5px solid;border-right:5px solid;top:26px}.corner-bottom{border-bottom:5px solid;border-right:5px solid;bottom:26px}.cover-for,.cover-subtitle,.cover-months,.book-cover h1{z-index:1;text-align:center;margin:0;position:relative}.cover-for{color:var(--honey);font-family:var(--font-letter), sans-serif;margin-bottom:2px;font-size:clamp(1rem,4vw,1.25rem);font-weight:700}.book-cover h1{max-width:100%;color:var(--light);font-family:var(--font-pixel), sans-serif;letter-spacing:-.03em;text-shadow:4px 4px 0 var(--book-dark);text-wrap:balance;font-size:clamp(2.7rem,14vw,5rem);font-weight:700;line-height:.92}.cover-heart-wrap{z-index:1;width:clamp(80px,24vw,112px);margin:clamp(14px,3.5vh,28px) 0;position:relative}.pixel-heart{width:100%;fill:var(--coral);filter:drop-shadow(5px 5px 0 var(--book-dark));display:block;overflow:visible}.pixel-heart .heart-shine{fill:var(--coral-light)}.pixel-heart.small{width:46px}.spark{background:var(--sun);width:6px;height:18px;box-shadow:6px 6px 0 -2px var(--light);animation:1.8s steps(2,end) infinite twinkle;position:absolute}.spark-one{top:-5px;right:-18px}.spark-two{animation-delay:-.9s;bottom:3px;left:-14px;transform:rotate(90deg)scale(.7)}.cover-subtitle{color:var(--light);font-size:clamp(1rem,4.8vw,1.3rem);font-weight:700}.cover-months{color:var(--honey);font-family:var(--font-pixel), sans-serif;margin-top:6px;font-size:clamp(1rem,4vw,1.15rem)}.open-book-button{z-index:2;background:var(--honey);min-height:48px;box-shadow:5px 5px 0 var(--book-dark);color:var(--ink);cursor:pointer;font-family:var(--font-pixel), sans-serif;border:0;justify-content:center;align-items:center;gap:12px;margin-top:clamp(22px,5vh,42px);padding:11px 16px 10px;font-size:clamp(.8rem,3.5vw,.95rem);font-weight:700;transition:transform .16s ease-out,box-shadow .16s ease-out;display:flex;position:relative}.open-book-button:hover{box-shadow:3px 3px 0 var(--book-dark);transform:translate(2px,2px)}.open-book-button:active{box-shadow:none;transform:translate(5px,5px)}.open-book-button span{font-size:1.6rem;line-height:0}.open-book-shell{width:100%;animation:.52s cubic-bezier(.22,1,.36,1) both book-open}.page-touch-area{touch-action:pan-y;-webkit-user-select:none;user-select:none;position:relative}.page-touch-area:before,.page-touch-area:after{background:var(--paper-shadow);content:"";height:8px;position:absolute;left:10px;right:10px}.page-touch-area:before{z-index:-1;bottom:-14px;left:18px;right:18px;box-shadow:0 7px #1c0d2b8c;box-shadow:0 7px lab(6.38398% 13.5779 -17.372/.55)}.page-touch-area:after{z-index:-1;bottom:-7px;left:12px;right:12px}.letter-page{border:4px solid var(--book-dark);background:var(--paper);min-height:clamp(365px,100dvh - 186px,520px);box-shadow:7px 7px 0 var(--book-dark);color:var(--ink);clip-path:polygon(0 8px,8px 8px,8px 0,calc(100% - 8px) 0,calc(100% - 8px) 8px,100% 8px,100% calc(100% - 8px),calc(100% - 8px) calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,8px calc(100% - 8px),0 calc(100% - 8px));flex-direction:column;padding:clamp(26px,7vw,42px) clamp(24px,8vw,46px);display:flex;position:relative;overflow:hidden}.letter-page:after{background:linear-gradient(to left, var(--paper-shadow), transparent);content:"";opacity:.7;width:14px;position:absolute;top:0;bottom:0;right:0}.turn-next{animation:.36s cubic-bezier(.22,1,.36,1) both turn-next}.turn-previous{animation:.36s cubic-bezier(.22,1,.36,1) both turn-previous}.chapter-number{color:var(--ink-soft);font-family:var(--font-pixel), sans-serif;margin:0 0 clamp(20px,5vh,34px);font-size:clamp(.72rem,3vw,.86rem)}.letter-page h2{max-width:82%;color:var(--book-dark);font-family:var(--font-pixel), sans-serif;letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(1.8rem,8vw,2.7rem);line-height:.98}.chapter-copy{text-wrap:pretty;max-width:34ch;margin:clamp(22px,5vh,38px) 0 0;font-size:clamp(1.08rem,4.7vw,1.34rem);line-height:1.52}.page-decoration{width:52px;height:52px;position:absolute;top:28px;right:28px}.page-decoration i{background:var(--coral);width:7px;height:7px;position:absolute}.page-decoration i:first-of-type{top:4px;right:2px}.page-decoration i:nth-of-type(2){background:var(--honey);width:4px;height:4px;top:24px;right:18px}.page-decoration i:nth-of-type(3){background:var(--book);width:5px;height:5px;bottom:4px;right:0}.motif-moon .page-decoration{border:8px solid var(--honey);border-top-color:#0000;border-right-color:#0000;border-radius:50%;transform:rotate(35deg)}.motif-spark .page-decoration i:first-of-type{background:var(--honey);width:9px;height:32px;box-shadow:-12px 12px 0 -2px var(--coral), 12px 12px 0 -2px var(--book)}.motif-flower .page-decoration i:first-of-type{background:var(--coral);width:18px;height:18px;box-shadow:0 18px 0 var(--coral), -18px 9px 0 var(--book), 18px 9px 0 var(--honey), 0 9px 0 4px var(--paper)}.motif-wish .page-decoration i:first-of-type{background:var(--honey);width:8px;height:8px;box-shadow:16px -10px 0 var(--coral), 22px 14px 0 var(--book), -8px 18px 0 var(--coral)}.final-signature{grid-template-columns:1fr auto;align-items:end;gap:0 18px;margin-top:auto;padding-top:18px;display:grid}.final-signature>p:first-child{color:var(--ink-soft);margin:0;font-size:1rem}.final-signature strong{color:var(--book);font-family:var(--font-pixel), sans-serif;align-self:start;font-size:clamp(1.55rem,7vw,2.25rem)}.final-heart-button{cursor:pointer;background:0 0;border:0;grid-area:1/2/span 2;width:74px;min-height:70px;transition:transform .18s cubic-bezier(.22,1,.36,1);position:relative}.final-heart-button:hover{transform:scale(1.08)}.final-heart-button .pixel-heart{filter:drop-shadow(4px 4px 0 var(--book-dark))}.final-heart-button.celebrated .pixel-heart{animation:.7s steps(3,end) both heart-pulse}.continuara{min-height:24px;color:var(--book);font-family:var(--font-pixel), sans-serif;text-align:center;grid-column:1/-1;margin:15px 0 0;font-size:.88rem}.burst-stars{pointer-events:none;position:absolute;inset:50%}.burst-stars i{background:var(--honey);opacity:0;width:6px;height:6px;position:absolute}.celebrated .burst-stars i{animation:.82s cubic-bezier(.22,1,.36,1) both star-burst}.burst-stars i:first-child{--tx:-62px;--ty:-42px}.burst-stars i:nth-child(2){--tx:-25px;--ty:-62px;animation-delay:40ms}.burst-stars i:nth-child(3){--tx:18px;--ty:-58px;animation-delay:80ms}.burst-stars i:nth-child(4){--tx:58px;--ty:-35px;animation-delay:.12s}.burst-stars i:nth-child(5){--tx:62px;--ty:12px;animation-delay:.16s}.burst-stars i:nth-child(6){--tx:34px;--ty:52px;animation-delay:.2s}.burst-stars i:nth-child(7){--tx:-8px;--ty:64px;animation-delay:.24s}.burst-stars i:nth-child(8){--tx:-48px;--ty:45px;animation-delay:.28s}.burst-stars i:nth-child(9){--tx:-66px;--ty:8px;animation-delay:.32s}.burst-stars i:nth-child(10){--tx:5px;--ty:-74px;animation-delay:.36s}.book-controls{grid-template-columns:minmax(78px,1fr) auto minmax(78px,1fr);align-items:center;gap:8px;margin-top:24px;display:grid}.book-controls>button{background:var(--book-dark);min-height:46px;color:var(--light);cursor:pointer;font-family:var(--font-pixel), sans-serif;border:3px solid #f4ead9b8;border:3px solid lab(93.105% 1.56859 9.51444/.72);justify-content:center;align-items:center;gap:4px;font-size:clamp(.68rem,3vw,.8rem);transition:transform .15s ease-out,background .15s ease-out;display:inline-flex}.book-controls>button:hover:not(:disabled){background:var(--book);transform:translateY(-2px)}.book-controls>button:disabled{cursor:not-allowed;opacity:.36}.book-controls>button span[aria-hidden=true]{font-size:1.4rem;line-height:0}.page-dots{align-items:center;gap:6px;display:flex}.page-dots button{border:2px solid var(--light);cursor:pointer;background:0 0;width:12px;min-width:12px;height:12px;padding:0}.page-dots button.active{border-color:var(--sun);background:var(--sun);transform:rotate(45deg)}.swipe-hint{color:#f1e6d6d1;color:lab(91.9449% 1.57064 9.51595/.82);text-align:center;margin:10px 0 0;font-size:.84rem}.noscript-letter{z-index:5;background:var(--paper);width:min(100%,620px);max-height:calc(100dvh - 32px);box-shadow:8px 8px 0 var(--book-dark);color:var(--ink);padding:28px;position:relative;overflow:auto}.noscript-letter h1{font-family:var(--font-pixel), sans-serif}.noscript-letter p{line-height:1.6}@keyframes drift{to{transform:translate(32px)}}@keyframes twinkle{0%,to{opacity:.35;transform:scale(1)}50%{opacity:1;transform:scale(1.5)}}@keyframes book-arrival{0%{opacity:0;transform:translateY(36px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes book-open{0%{opacity:0;transform:perspective(700px)rotateY(-12deg)scale(.96)}to{opacity:1;transform:perspective(700px)rotateY(0)scale(1)}}@keyframes turn-next{0%{opacity:.35;transform:perspective(900px)rotateY(8deg)translate(18px)}to{opacity:1;transform:perspective(900px)rotateY(0)translate(0)}}@keyframes turn-previous{0%{opacity:.35;transform:perspective(900px)rotateY(-8deg)translate(-18px)}to{opacity:1;transform:perspective(900px)rotateY(0)translate(0)}}@keyframes heart-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes star-burst{0%{opacity:0;transform:translate(0)scale(0)}25%{opacity:1}to{opacity:0;transform:translate(var(--tx), var(--ty)) scale(1)}}@media (max-width:370px){.book-stage{padding-top:42px}.book-cover{padding-left:34px;padding-right:18px}.letter-page{padding-left:21px;padding-right:21px}.page-decoration{transform-origin:100% 0;right:18px;transform:scale(.82)}.book-controls{gap:5px}.page-dots{gap:4px}.page-dots button{width:10px;min-width:10px;height:10px}}@media (min-width:760px){.book-stage{width:440px}.book-cover{width:410px}.swipe-hint{opacity:.7}}@media (max-height:540px) and (orientation:landscape){body{overflow-y:auto}.love-scene{min-height:540px;overflow-y:auto}.book-stage{min-height:520px}.book-cover{height:430px}.letter-page{min-height:340px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
