*{box-sizing:border-box}body{margin:0;background:#140c30;color:#fff1ec;font-family:Arial,sans-serif;min-height:100svh;overflow-x:hidden}canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}header{position:relative;padding:28px 5%;display:flex;justify-content:space-between;align-items:center;z-index:2}.brand{color:inherit;text-decoration:none;font-size:19px;font-weight:600;letter-spacing:-.6px}.brand span{color:#f2be78;margin-left:10px}button{font:inherit;cursor:pointer;color:inherit;border:1px solid #ffffff25;background:#ffffff08;padding:12px 18px;border-radius:28px;font-size:11px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}button:hover{background:#ffffff18}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #efb477;outline-offset:5px}main{position:relative;z-index:1;text-align:center;min-height:calc(100svh - 165px);display:grid;place-items:center;padding:35px 20px 65px}section{width:100%;max-width:900px}[hidden]{display:none!important}.eyebrow{font-size:9px;letter-spacing:3px;color:#cbb3d6}.gift{font-size:58px;color:#ffc889;line-height:1;margin:35px auto 23px;filter:drop-shadow(0 0 25px #e595a0);animation:float 4s ease-in-out infinite}h1{font:400 clamp(43px,5.7vw,78px)/1.1 Georgia,serif;letter-spacing:-2.8px;margin:22px 0}h1 em{color:#f3baa0;font-weight:400}p{color:#b8a4ca;font-size:12px;line-height:1.8}form{width:340px;max-width:90%;margin:35px auto 0;text-align:left}label{font-size:10px;color:#d5c3dd}.input-row{display:flex;align-items:center;border-bottom:1px solid #d5b2cd88;margin:10px 0 15px;gap:10px}input{min-width:0;flex:1;background:none;border:0;color:#fff1ec;font:20px Georgia,serif;padding:15px 0;outline:none}input::placeholder{color:#907896}.input-row button{border:0;background:#efb497;color:#3c2249;font-size:20px;width:43px;height:43px;padding:0}small{font-size:7px;letter-spacing:2px;color:#8f769e}#celebration{animation:reveal .9s ease-out}#celebration h1{position:relative}#person{overflow-wrap:anywhere}.spark{position:absolute;font-size:30px;color:#ffd69a;transform:rotate(15deg);margin-left:12px;animation:float 3s ease-in-out infinite}#cake{border:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;position:relative;width:220px;height:178px;display:block;margin:30px auto 12px;padding:0;transition:transform .3s}#cake:hover{transform:translateY(-5px) rotate(-2deg)}.candles{position:absolute;top:0;left:30px;right:30px;display:flex;justify-content:space-around;z-index:3}.candles i{font-style:normal;font-size:21px;position:relative;animation:flicker .8s alternate infinite}.candles i:after{content:"";display:block;margin:auto;width:7px;height:25px;background:repeating-linear-gradient(45deg,#fff0d6 0 5px,#c68adb 5px 10px);border-radius:2px}.candles i:nth-child(2n){animation-delay:.4s}.cake-top{position:absolute;top:45px;left:10px;right:10px;height:45px;border-radius:50%;background:#ffe0c5;z-index:2;box-shadow:inset 0 -7px #ecb7b3}.cake-body{position:absolute;top:65px;left:10px;right:10px;height:90px;background:linear-gradient(#d485b0 0 40%,#eed0bd 40% 48%,#b76da3 48% 83%,#f6c9b9 83%);border-radius:0 0 50% 50%/0 0 15% 15%;display:flex;justify-content:space-around;align-items:center}.cake-body b{color:#ffedcf;font-size:24px}.plate{position:absolute;bottom:10px;left:-10px;right:-10px;background:#8e70a9;height:20px;border-radius:50%;z-index:-1}.blown .candles i{font-size:0;animation:none;padding-top:25px}.blown .candles i:before{content:"~";color:#dbc8e3;position:absolute;top:0;font-size:20px;animation:smoke 2s forwards}#wish{color:#d9bfd4;font-size:11px;line-height:1.6;min-height:35px}.actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:16px}footer{position:relative;padding:0 5% 25px;display:flex;justify-content:space-between;color:#8d769e;font-size:7px;letter-spacing:2px}#toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);padding:13px 24px;border-radius:25px;background:#ead1c6;color:#38203e;font-size:12px;opacity:0;pointer-events:none;z-index:5}#toast.visible{opacity:1}@keyframes float{50%{transform:translateY(-10px) rotate(8deg)}}@keyframes flicker{to{filter:brightness(1.35);transform:scale(.96)}}@keyframes reveal{0%{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)}}@keyframes smoke{to{opacity:0;transform:translateY(-30px)}}@media(max-width:550px){header{padding:22px 6%}.brand{font-size:16px}h1{font-size:44px;letter-spacing:-1.6px}main{padding:25px 20px 45px}.eyebrow{font-size:7px;letter-spacing:2px}footer span{display:none}.spark{font-size:20px;margin-left:5px}#celebration h1{font-size:42px}.actions{gap:8px}.actions button{font-size:10px;padding:10px 12px}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}body{background:#ffecc9;color:#39235f}header{position:relative}.brand{font-weight:800;color:#39235f}.brand span{color:#f2449b}header button{background:#fff9e6cc;border-color:#67379b22;color:#593388}main{padding-top:25px}section{max-width:1100px}.eyebrow{display:inline-block;background:#fff9e7e8;color:#8d3aaa;border:1px solid #b84cba33;padding:10px 19px;border-radius:30px;font-weight:700;letter-spacing:2px}.gift{color:#f34495;font-size:72px;filter:drop-shadow(5px 5px 0 #ffcd42)}h1{font-family:Georgia,serif;font-weight:700;color:#562da0;text-shadow:3px 4px 0 #fffae6;letter-spacing:-3px}h1 em{color:#f13f96;text-shadow:3px 4px 0 #fff5df}#celebration h1{font-size:clamp(50px,6.4vw,88px);line-height:1.02}#person{display:inline-block;background:linear-gradient(90deg,#ef3791,#ee6631,#d58b09,#1baaae,#6353de,#ef3791);background-size:300% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(2px 3px 0 #fff6df);text-shadow:none;animation:rainbow 8s linear infinite}p{color:#755094;font-weight:600}.spark{color:#fd9e0e;text-shadow:2px 2px white}label{color:#733997;font-weight:700}.input-row{background:#fff9e8e6;border:2px solid #eba7c6;border-radius:20px;padding:5px 9px 5px 18px;box-shadow:0 8px #ebbad04d}input{color:#633493}input::placeholder{color:#b489b4}.input-row button{background:#f44599;color:#fff;border-radius:13px}small{color:#9e6da4}.cake-top{background:#fff4da;box-shadow:inset 0 -7px #ffb9cd}.cake-body{background:linear-gradient(#ff55ad 0 40%,#ffe57b 40% 48%,#aa72f4 48% 83%,#7fe1d7 83%)}.plate{background:#73bad8}.cake-body b{color:#fff7b1}#cake{filter:drop-shadow(0 15px 18px #8e50b022)}#wish{color:#714d90;font-weight:600}.actions button{background:#fff8e9db;border:2px solid #b48bd240;color:#583786;font-weight:700;font-size:11px}.actions #again{background:#f33f95;color:#fff;border-color:#f33f95;box-shadow:0 5px #c42976}.actions #again:hover{transform:translateY(-2px);background:#ff58ab}.actions #disco[aria-pressed=true]{background:#6d43cc;color:#fff}.party-ribbon{display:inline-block;padding:7px 24px;margin:0 auto 16px;background:#ffc832;color:#603277;font-size:10px;font-weight:800;letter-spacing:2px;transform:rotate(-2deg);border-radius:4px}footer{color:#9871ac;font-weight:600}#toast{background:#63369d;color:#fff}.disco h1{animation:party-bounce 1s ease-in-out infinite}.disco #cake{animation:wiggle 1.2s ease-in-out infinite}.disco .party-ribbon{background:#78e5d7}.blown .candles i:before{color:#9c77b7}@keyframes rainbow{to{background-position:300% 0}}@keyframes party-bounce{50%{transform:translateY(-6px) rotate(-1deg)}}@keyframes wiggle{25%{transform:rotate(5deg)}75%{transform:rotate(-5deg)}}@media(max-width:550px){#celebration h1{font-size:46px}.eyebrow{font-size:7px;letter-spacing:1px;padding:9px 13px}.party-ribbon{font-size:7px;letter-spacing:1px;padding:7px 15px}.gift{margin:23px auto}h1{font-size:43px}.actions{max-width:350px;margin:16px auto}.actions button{font-size:10px}#cake{margin-top:22px}}body{background:#fff7d6;color:#174c55;font-family:Arial Rounded MT Bold,Trebuchet MS,Arial,sans-serif}header .brand{color:#174c55;font-weight:900}header .brand span{color:#ff714b}header button{background:#fffdf0;border:2px solid #63c9bd;color:#17676b}.eyebrow{background:#ffffffd9;border:2px solid #ffcc47;color:#a56010;font-weight:800;letter-spacing:1.4px}h1,#celebration h1{font-family:Arial Rounded MT Bold,Trebuchet MS,Arial,sans-serif;font-weight:900;color:#ff654a;letter-spacing:-3px;text-shadow:3px 4px 0 #ffd441;line-height:1.1}h1 em{color:#119f9d;font-style:normal;text-shadow:3px 4px 0 #fff}#person{background:linear-gradient(90deg,#f65d43,#ff9927,#dbad13,#119f9d,#259cdc,#f65d43);background-size:300% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(2px 3px 0 #fff);font-style:normal}.gift{color:#ff9e22;filter:drop-shadow(5px 5px 0 #ffdc58)}p{color:#387d7c}.spark{color:#ffae13}label{color:#276f71}.input-row{background:#fffef1;border:3px solid #58c9b9;box-shadow:0 7px #c7e8c5}input{color:#17676b;font-family:Trebuchet MS,Arial,sans-serif;font-weight:700}input::placeholder{color:#80a9a0}.input-row button{background:#ff714b;color:#fff}small{color:#789b86}.cake-top{background:#fff7d7;box-shadow:inset 0 -7px #ffbe5c}.cake-body{background:linear-gradient(#ff8555 0 40%,#ffe57b 40% 48%,#32c5b7 48% 83%,#ffcf45 83%)}.plate{background:#48b3cf}#cake{filter:drop-shadow(0 15px 18px #dbb04533)}.candles i:after{background:repeating-linear-gradient(45deg,#fff5c2 0 5px,#f75 5px 10px)}.blown .candles i:before{color:#84aaa1}#wish{color:#367f7d}.party-ribbon{background:#ffcf37;color:#815717;border:2px dashed #eab51e}.actions button{background:#fffef0;border:2px solid #80cfc2;color:#206e73}.actions #again{background:#ff754d;border-color:#ff754d;box-shadow:0 5px #d95035}.actions #again:hover{background:#ff925c}.actions #disco[aria-pressed=true]{background:#11aaa2;color:#fff;border-color:#11aaa2}.disco .party-ribbon{background:#61deca;color:#1d706e}footer{color:#799b83}#toast{background:#119f9d;color:#fff}button:focus-visible,input:focus-visible,a:focus-visible{outline-color:#ff9b24}@media(max-width:550px){h1,#celebration h1{letter-spacing:-1.5px}}
