@import "https://fonts.googleapis.com/css2?family=Caveat:wght@500;600;700&family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,700;1,700&display=swap";@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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;--spacing:.25rem;--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,ui-sans-serif, system-ui, 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{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}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}}:root{--pink:#ef7da4;--rose:#d94e7b;--paper:#fffaf6;--ink:#4c3540}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:#fff9f7;margin:0;font-family:DM Sans,sans-serif;overflow-x:hidden}main{background-image:radial-gradient(#efb3c5 1px,#0000 1px);background-size:22px 22px;min-height:100vh}.hero{text-align:center;background:linear-gradient(#fff7f9 0%,#ffe8f0 100%);flex-direction:column;align-items:center;min-height:100vh;padding:42px 20px 100px;display:flex;position:relative;overflow:hidden}.tiny-note{color:#a75e76;align-self:flex-start;margin-left:6vw;font-family:Caveat,cursive;font-size:1.15rem;transform:rotate(-4deg)}.bow{filter:drop-shadow(0 6px 7px #e99ab5);margin-top:18px;font-size:3.3rem;animation:3s ease-in-out infinite float}.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:#b35e7c;margin:12px 0;font-size:.72rem;font-weight:600}h1,h2{font-family:Playfair Display,serif}h1{color:#563946;letter-spacing:-.06em;margin:0;font-size:clamp(3.7rem,10vw,7.4rem);line-height:.88}h1 em{color:var(--rose);font-weight:700}.subtitle{max-width:590px;margin:25px auto 28px;font-family:Caveat,cursive;font-size:clamp(1.4rem,3vw,2rem)}.cta{background:var(--rose);color:#fff;z-index:2;border-radius:99px;padding:14px 25px;font-weight:600;text-decoration:none;transition:all .2s;box-shadow:0 8px #bd3865,0 16px 30px #dc789954}.cta:hover{transform:translateY(-3px);box-shadow:0 11px #bd3865,0 18px 34px #dc789965}.hero-collage{width:min(450px,82vw);height:min(470px,86vw);margin-top:65px;position:relative;transform:rotate(2deg)}.photo{background:#fff;border:1px solid #f5dce4;padding:13px 13px 54px;position:relative;box-shadow:0 16px 45px #a53f602d}.photo img{object-fit:cover}.kitty-main{width:100%;height:100%}.photo figcaption{font-family:Caveat,cursive;font-size:1.3rem;position:absolute;bottom:13px;left:0;right:0}.tape{z-index:5;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#f6c6d4c9;border:1px dashed #e8a6ba;width:110px;height:33px;position:absolute}.tape-one{top:-16px;left:50%;transform:translate(-50%)rotate(-4deg)}.doodle{color:var(--rose);z-index:6;font-family:Caveat,cursive;position:absolute}.star-one{font-size:4rem;top:42px;right:-60px;transform:rotate(16deg)}.heart-one{font-size:5rem;bottom:55px;left:-55px;transform:rotate(-14deg)}.stamp{color:#c5587d;text-transform:uppercase;border:2px solid #d67595;border-radius:50%;place-content:center;width:92px;height:92px;font:700 .72rem/1.2 DM Sans;display:grid;position:absolute;bottom:-27px;right:-55px;transform:rotate(-12deg)}.paper-section{background:var(--paper);border:1px solid #f1ddd9;grid-template-columns:1fr 1fr;align-items:center;gap:70px;max-width:1080px;margin:100px auto;padding:80px clamp(24px,7vw,80px);display:grid;position:relative;transform:rotate(-.4deg);box-shadow:0 14px 50px #8d4a6020}.portrait-wrap{position:relative}.portrait{height:490px;transform:rotate(-3deg)}.portrait img{object-position:center}.portrait-tape{top:-20px;left:36%;transform:rotate(5deg)}.about-copy h2{color:#633f4f;margin:12px 0 25px;font-size:clamp(2.4rem,5vw,4.4rem);line-height:1}.about-copy p{color:#765b66;font-size:1.05rem;line-height:1.9}.scribble,.signature{color:var(--rose);font-family:Caveat,cursive;font-size:1.8rem}.signature{text-align:right;margin-top:28px;transform:rotate(-3deg)}.mini-kitty{border:8px solid #fff;border-radius:50%;width:120px;height:120px;position:absolute;overflow:hidden;box-shadow:0 8px 25px #b44f7230}.mini-kitty img{object-fit:cover}.top-kitty{top:-55px;right:-40px;transform:rotate(8deg)}.wishes{text-align:center;background:#fff0f5;padding:80px 20px 120px}.wishes h2{color:#d4517c;margin:0 0 55px;font-size:clamp(3rem,7vw,5.5rem)}.wish-grid{flex-wrap:wrap;justify-content:center;gap:22px;max-width:1000px;margin:auto;display:flex}.wish{background:#fff;border:1px solid #f3dce3;flex-direction:column;justify-content:center;width:260px;min-height:190px;padding:28px;display:flex;box-shadow:5px 8px 20px #9c53651c}.wish span{color:#e56590;font-size:2rem}.wish p{margin:12px 0 0;font-family:Caveat,cursive;font-size:1.6rem}.w1{transform:rotate(-3deg)}.w2{background:#fff9dd;transform:rotate(2deg)}.w3{background:#ffeaf2;transform:rotate(-1deg)}.w4{transform:rotate(3deg)}.w5{background:#f8eef8;transform:rotate(-2deg)}.letter-section{background:linear-gradient(#fffaf7,#ffe6ee);justify-content:center;align-items:center;min-height:680px;padding:140px 20px 100px;display:flex;overflow:hidden}.envelope{background:#efa2b9;border-radius:4px 4px 12px 12px;width:min(650px,90vw);height:350px;position:relative;box-shadow:0 24px 60px #943b5b35}.envelope-front{z-index:3;border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.envelope-front:before,.envelope-front:after{content:"";background:#f8b6c9;width:420px;height:420px;position:absolute;bottom:-130px;transform:rotate(45deg)}.envelope-front:before{left:-210px}.envelope-front:after{background:#f4adc2;right:-210px}.letter{z-index:2;text-align:left;background:#fffdf8 repeating-linear-gradient(#0000 0 31px,#efd8dc 32px);width:88%;min-height:380px;padding:45px 55px;transition:transform .8s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:24px;left:6%;box-shadow:0 5px 25px #8b3e5733}.letter p{margin:0 0 16px;line-height:2}.letter .dear{color:#d34d79;font-family:Caveat,cursive;font-size:2rem}.letter strong{float:right;font-family:Caveat,cursive;font-size:1.6rem}.letter-kitty{border-radius:50%;width:70px;height:70px;position:absolute;top:20px;right:24px;overflow:hidden}.letter-kitty img{object-fit:cover}.envelope.open .letter{z-index:4;transform:translateY(-235px)rotate(-1deg)}.envelope button{z-index:6;white-space:nowrap;color:#fff;cursor:pointer;background:#cf4d77;border:0;border-radius:99px;padding:13px 24px;font:600 .9rem DM Sans;position:absolute;bottom:38px;left:50%;transform:translate(-50%);box-shadow:0 5px #a83a5e}.envelope button:active{bottom:34px;box-shadow:0 2px #a83a5e}.finale{text-align:center;color:#fff;background:#d95781;padding:120px 20px 80px}.finale p{font-family:Caveat,cursive;font-size:1.8rem}.finale h2{margin:12px 0;font-size:clamp(3rem,8vw,6rem)}.footer-bow{font-size:3rem}.kitty-row{justify-content:center;gap:14px;display:flex}.kitty-row span{border:5px solid #fff;border-radius:50%;width:100px;height:100px;position:relative;overflow:hidden}.kitty-row img{object-fit:cover}.kitty-row span:nth-child(2){transform:translateY(-25px)scale(1.15)}.petals{pointer-events:none;z-index:20;position:fixed;inset:0;overflow:hidden}.petals span{color:#e67599;opacity:.35;animation:linear infinite fall;position:absolute;top:-40px}.petals span:nth-child(3n){font-size:24px;animation-duration:11s}.petals span:nth-child(3n+1){font-size:16px;animation-duration:15s}.petals span:nth-child(3n+2){font-size:20px;animation-duration:18s}.petals span:first-child{animation-delay:-3s;left:5%}.petals span:nth-child(2){animation-delay:-10s;left:12%}.petals span:nth-child(3){animation-delay:-5s;left:20%}.petals span:nth-child(4){animation-delay:-13s;left:28%}.petals span:nth-child(5){animation-delay:-7s;left:36%}.petals span:nth-child(6){animation-delay:-2s;left:44%}.petals span:nth-child(7){animation-delay:-16s;left:52%}.petals span:nth-child(8){animation-delay:-9s;left:60%}.petals span:nth-child(9){animation-delay:-4s;left:68%}.petals span:nth-child(10){animation-delay:-12s;left:76%}.petals span:nth-child(11){animation-delay:-6s;left:84%}.petals span:nth-child(12){animation-delay:-15s;left:92%}.petals span:nth-child(n+13){animation-delay:-8s;left:48%}@keyframes fall{to{transform:translateY(110vh)rotate(480deg)}}@keyframes float{50%{transform:translateY(-9px)rotate(4deg)}}@media (width<=760px){.hero{padding-top:28px}.tiny-note{margin-left:0}.paper-section{grid-template-columns:1fr;gap:45px;margin:65px 16px;padding:55px 22px}.portrait{height:410px}.about-copy{text-align:center}.top-kitty{right:-10px}.letter-section{min-height:690px;padding-top:170px}.letter{min-height:430px;padding:35px 25px;font-size:.92rem}.envelope.open .letter{transform:translateY(-265px)}.star-one{right:-25px}.heart-one{left:-25px}.stamp{right:-22px}.wish{width:min(310px,88vw)}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.petals{display:none}}
