@font-face{font-family:DM;src:url('assets/dm-sans.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:DM;src:url('assets/dm-sans-bold.woff2') format('woff2');font-weight:700 900;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;font-family:DM,Arial,sans-serif;font-size:16px;line-height:1.7;background:#faf8f1;color:#342344}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #7852b4;outline-offset:5px}.shell{width:min(1240px,calc(100% - 100px));margin:auto}.header{height:100px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd7db;gap:20px}.brand{font-weight:900;font-size:31px;letter-spacing:-2px;white-space:nowrap}.brand span{color:#8963b8;margin-left:8px;font-size:35px;vertical-align:middle}.header nav{display:flex;gap:30px;font-size:14px}.customize{font-size:14px;background:transparent;border:1px solid #b4a5c0;border-radius:30px;padding:10px 18px}.customize span{margin-left:12px}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center;padding-block:55px 65px}.eyebrow{font-size:12px;font-weight:bold;letter-spacing:1.7px;margin:0 0 24px;color:#6e5087}.hero .eyebrow span{color:#7e54ac;margin-right:10px;font-size:21px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(62px,6.8vw,101px);font-weight:900;letter-spacing:-5.5px;line-height:.99;margin-bottom:27px}h1>span{color:#8963b8}.birthday-line{font-size:23px;font-weight:700;letter-spacing:-.8px;margin-bottom:13px}.intro{color:#6c6174;max-width:420px;margin-bottom:28px}.primary{display:inline-flex;gap:35px;align-items:center;background:#ebee86;border:1px solid #342344;color:#342344;border-radius:7px;padding:14px 24px;font-size:14px;box-shadow:3px 3px 0 #342344;font-weight:700}.primary:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 #342344;background:#e3e86c}.primary span{font-size:21px;line-height:1}.dark{background:#342344;color:#fff;box-shadow:3px 3px 0 #b9a2ed}.dark:hover{background:#503568}.mini-note{font-size:12px;color:#756983;margin:22px 0 0}.hero-art{position:relative;padding:20px 16px}.photo-frame{padding:14px 14px 23px;background:#ddd2ed;border:1px solid #b6a2c7;transform:rotate(3deg);box-shadow:9px 10px 0 #eee9e2}.photo-frame img{width:100%;height:auto;aspect-ratio:4/4.5;display:block;object-fit:cover}.photo-caption{font-size:13px;text-align:center;display:block;margin-top:15px;letter-spacing:.6px}.party-label{position:absolute;right:-12px;bottom:48px;background:#ebee86;line-height:1.15;border:1px solid #342344;transform:rotate(-9deg);padding:15px 19px;font-size:30px;font-weight:900;box-shadow:3px 3px 0 #342344}.party-label strong{font-size:12px;letter-spacing:1px}.star-accent{position:absolute;top:-16px;left:-15px;color:#8963b8;font-size:93px;line-height:1;transform:rotate(12deg)}.ticker{display:flex;justify-content:space-around;gap:32px;white-space:nowrap;overflow:hidden;background:#b9a2ed;padding:24px 20px;font-size:20px;font-weight:700;letter-spacing:-.5px;border-block:1px solid #342344}.ticker span:nth-child(even){color:#faf8f1;font-size:24px;line-height:1.3}h2{font-size:clamp(36px,4vw,58px);font-weight:700;line-height:1.1;letter-spacing:-2.5px;margin-bottom:26px}h2 em{font-style:normal;color:#8963b8}.candle-section{display:grid;grid-template-columns:1fr 1fr;gap:100px;padding-block:100px;align-items:center}.candle-section>div>p:not(.eyebrow){max-width:420px;color:#6c6174}.soft-note{font-size:13px}.wish-card{text-align:center;padding:35px 35px 30px;border:1px solid #b9a2ed;border-radius:14px;background:#eee8f7;box-shadow:6px 6px 0 #d4c4ec}.wish-icon{font-size:65px;display:block;line-height:1.3;margin-bottom:10px}.wish-card h3{font-size:33px;letter-spacing:-1.3px;margin-bottom:7px}.wish-card p{font-size:14px}.wish-foot{display:block;font-size:12px;margin-top:25px;color:#756983}.wishes{background:#f0eddf;padding:80px 0}.section-heading{max-width:600px;margin-bottom:38px}.section-heading p:last-child{color:#6c6174;max-width:430px}.wish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.wish-grid article{padding:28px;border:1px solid #342344;border-radius:8px;background:#e7eab1;position:relative}.wish-grid article:nth-child(2){background:#d9c7f1}.wish-grid article:nth-child(3){background:#f5d0bb}.card-number{font-size:11px;letter-spacing:1.5px;font-weight:700}.card-symbol{font-size:65px;display:block;margin:15px 0;color:#493156;line-height:1.2}.wish-grid h3{font-size:32px;letter-spacing:-1.5px;line-height:1.2;margin-bottom:20px}.wish-grid p{font-size:14px;margin:0;color:#544657}.gift-section{padding-block:110px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:100px}.gift-section>div:last-child>p:not(.eyebrow){color:#6c6174;max-width:430px}.gift-tag{position:relative;background:#ebee86;border:1px solid #342344;border-radius:100px 100px 12px 12px;text-align:center;padding:40px 32px;max-width:370px;margin:auto;width:100%;transform:rotate(-6deg);box-shadow:7px 8px 0 #d4c4ec}.gift-tag>span:first-child{font-size:90px;line-height:1.2;color:#8963b8}.gift-tag p{font-size:14px;line-height:2;overflow-wrap:anywhere;padding:30px 0;margin:0}.gift-tag-bottom{font-size:12px;letter-spacing:1.7px;font-weight:700;border-top:1px solid #342344;padding-top:18px;display:block}.finale{background:#b9a2ed;text-align:center;padding:80px 0;border-block:1px solid #342344}.finale h2{font-size:clamp(44px,5vw,72px);letter-spacing:-3px}.finale h2 span{color:#fff8d8}.finale .eyebrow{color:#513773}.finale .primary{margin-top:10px}.signature{font-size:14px;margin-top:30px;color:#614b79}.footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding-block:25px}.footer p,.footer>a:last-child{font-size:12px;margin:0;color:#756983}.footer .brand{font-size:24px}.footer .brand span{font-size:27px}.skip{position:fixed;top:-100px;left:20px;background:#fff;padding:10px;z-index:100}.skip:focus{top:10px}dialog{color:#342344;background:#faf8f1;padding:48px;border:1px solid #342344;border-radius:15px;width:min(620px,calc(100% - 32px));max-height:85dvh;box-shadow:8px 8px 0 #b9a2ed}dialog::backdrop{background:#2b1a4699;backdrop-filter:blur(5px)}.close{position:absolute;top:10px;right:15px;border:0;background:none;color:#342344;font-size:30px;width:40px;height:40px}dialog h2{font-size:44px}.letter-body p{font-size:16px;margin-bottom:18px}form{display:grid;gap:16px}label{display:grid;gap:7px;font-size:14px}input,textarea{width:100%;border:1px solid #b4a5c0;border-radius:5px;background:#fff;padding:12px;color:#342344}textarea{resize:vertical}.text-button{background:none;border:0;border-bottom:1px solid #342344;padding:6px 0;font-size:14px}.share-row{display:flex;align-items:center;gap:20px;margin-top:15px}.share-row p{font-size:13px;margin:0}.link-label{margin-top:12px}.privacy{font-size:12px;color:#756983;margin-top:12px}.modal-open{overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#confetti{position:fixed;inset:0;pointer-events:none;z-index:120;overflow:hidden}.confetti-piece{position:absolute;width:9px;height:15px;animation:fall 3s ease-in forwards}.confetti-piece:nth-child(3n){border-radius:50%;width:12px;height:12px}@keyframes fall{from{transform:translateY(-10vh) rotate(0);opacity:1}to{transform:translateY(115vh) rotate(650deg);opacity:.2}}@media(max-width:950px){.shell{width:calc(100% - 48px)}.hero{gap:32px}h1{font-size:75px;letter-spacing:-4px}.candle-section,.gift-section{gap:45px}.header nav{gap:20px}.wish-grid{gap:15px}.wish-grid article{padding:23px}.wish-grid h3{font-size:27px}.party-label{right:-5px}.star-accent{font-size:72px;left:-5px}}@media(max-width:650px){.shell{width:calc(100% - 40px)}.header{height:80px}.header nav{display:none}.brand{font-size:27px}.customize{font-size:12px;padding:9px 12px}.hero{grid-template-columns:1fr;padding-block:30px 45px;gap:35px}.eyebrow{font-size:10px;letter-spacing:1.4px;margin-bottom:18px}h1{font-size:clamp(62px,15vw,88px);letter-spacing:-3.8px}.birthday-line{font-size:20px}.intro{font-size:15px}.hero-art{max-width:420px;width:100%;margin:auto;padding:10px 13px}.star-accent{font-size:65px;top:-12px;left:0}.party-label{right:0;bottom:30px}.ticker{justify-content:flex-start;font-size:17px;padding-block:20px}.candle-section{grid-template-columns:1fr;padding-block:65px;gap:25px}h2{font-size:40px;letter-spacing:-1.8px}.wish-card{padding:30px 20px}.wishes{padding:65px 0}.wish-grid{grid-template-columns:1fr;gap:18px}.wish-grid article{padding:25px}.card-symbol{float:right;font-size:65px;margin:10px 0}.wish-grid h3{margin-top:22px;font-size:32px}.wish-grid p{max-width:310px}.gift-section{grid-template-columns:1fr;padding-block:65px;gap:50px}.gift-tag{max-width:300px;padding:30px}.gift-tag p{padding-block:20px}.finale{padding:65px 0}.finale h2{font-size:44px;letter-spacing:-2px}.footer{flex-wrap:wrap;gap:12px}.footer>a:last-child{flex-basis:100%}dialog{padding:42px 25px 30px}dialog h2{font-size:38px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.confetti-piece{display:none}}
