*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#fff;background:#123c9a;--bg:#1649a6;--second:#8c39af;--shine:#55d9f6;--gold:#ffe17b;background-image:radial-gradient(ellipse at 50% 20%,var(--shine),transparent 55%),linear-gradient(145deg,var(--bg),var(--second));background-attachment:fixed;min-height:100svh}body[data-theme=saude]{--bg:#126b72;--second:#4b9c62;--shine:#c6e87f;--gold:#fff19b}body[data-theme=amor]{--bg:#9a3284;--second:#5e36ab;--shine:#ffa0ca;--gold:#ffe0a5}button,input{font:inherit}button,a,input,label{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffe979;outline-offset:4px}[hidden]{display:none!important}header{position:relative;z-index:5;max-width:430px;margin:auto;display:flex;justify-content:flex-end;align-items:center;padding:14px 39px}.brand{font-size:17px;text-decoration:none;font-weight:900;letter-spacing:-.8px}.brand span{color:#bcecff}#music-toggle{border:1px solid #ffffff70;border-radius:30px;background:#18346899;color:white;padding:8px 10px;font-size:11px;min-height:36px}.background-lights{position:fixed;inset:-20%;pointer-events:none;background:radial-gradient(ellipse at 20% 20%,#ffe48945,transparent 40%),radial-gradient(ellipse at 80% 60%,#fff4c740,transparent 30%);animation:aurora 9s ease-in-out infinite alternate;z-index:0}main{position:relative;max-width:430px;margin:0 auto;padding:0 42px;z-index:2;min-height:calc(100svh - 150px)}h1,h2,p{margin:0}.screen{text-align:center;padding:15px 0 22px;animation:arrive .6s both}.date-badge{display:inline-block;background:#ffffff24;border:1px solid #fff4ac70;color:#fffbdc;border-radius:40px;font-size:11px;font-weight:900;padding:8px 13px;letter-spacing:.8px;box-shadow:0 0 20px #ffffb215}h1{font-size:31px;line-height:1.1;font-weight:900;letter-spacing:-1.2px;text-shadow:0 3px 0 #214080,0 6px 14px #15306360;margin:19px 0 12px}h1 span{color:#ffdf66;font-size:39px}h2{font-size:26px;line-height:1.18;font-weight:900;text-shadow:0 2px 5px #11386650}.welcome p{font-size:15px;line-height:1.5;margin:17px 0 23px;color:#f5f6ff}.welcome-emblem{position:relative;font-size:77px;line-height:1.2;margin:25px 0 21px;filter:drop-shadow(0 0 20px #fff9c790);animation:sway 3s ease-in-out infinite}.welcome-emblem span{position:absolute;font-size:35px;left:58%;top:20px;animation:heartbeat 2s infinite}.welcome form{margin-top:24px}.welcome label{display:block;font-size:17px;font-weight:800;margin-bottom:10px}.welcome small{display:block;margin-top:20px;font-size:12px;color:#e4eeff}input:not([type=radio]):not([type=file]){height:55px;width:100%;border-radius:14px;border:3px solid #ffdf77;background:white;color:#283965;text-align:center;font-size:20px;font-weight:700;padding:8px;box-shadow:0 4px 14px #11336935}input::placeholder{font-size:17px;color:#939cb0;font-weight:500}.button{width:100%;display:flex;align-items:center;justify-content:center;padding:17px 10px;min-height:57px;border:2px solid #ffffff75;border-radius:15px;color:#fff;font-size:17px;font-weight:900;line-height:1.2;text-decoration:none;margin-top:13px;box-shadow:0 5px 0 #15366370,0 10px 25px #182a3e25;transition:transform .15s}.button:hover{transform:translateY(-2px)}.button:disabled{opacity:.6;cursor:wait}.hot{background:linear-gradient(#ff72b5,#e42188);animation:buttonpulse 2.5s ease-in-out infinite}.green{background:linear-gradient(#37cf74,#139c50)}.blue{background:linear-gradient(#539bee,#2d67d3)}.text-button{display:block;margin:19px auto 4px;background:none;border:0;color:#fff;padding:8px;font-size:13px;text-decoration:underline}.gift{font-size:95px;margin:45px 0 22px;filter:drop-shadow(0 0 25px #ffd45a80);animation:sway 2.5s infinite}.sender-title{font-size:42px;overflow-wrap:anywhere;color:#ffe784;animation:heartbeat 3s infinite}.scene{padding-top:7px}.scene-title{font-size:25px;margin:13px 0 0}.scene-title span{font-size:34px}.art-wrap{height:292px;position:relative;margin:0 -12px;display:flex;align-items:center;justify-content:center}.saint{height:100%;width:100%;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 0 14px #fff4b56b);animation:saintfloat 5s ease-in-out infinite}.halo{position:absolute;left:5%;right:5%;top:5%;bottom:5%;border-radius:50%;background:radial-gradient(ellipse,#fff9bdbb,transparent 68%);animation:halo 3.5s ease-in-out infinite}.art-stars{position:absolute;inset:0;font-size:26px;color:#fff19c;z-index:2;padding:55px 10px;animation:twinkle 2.8s infinite}.art-stars span{position:absolute;right:3px;top:35%;font-size:31px}.art-stars b{position:absolute;left:10%;top:76%;font-size:30px}.message h2{font-size:27px;color:#ffed9a;text-shadow:0 2px 0 #5c4b86;margin-top:5px}.message p{font-size:21px;font-weight:700;line-height:1.45;margin:17px 0 12px;text-shadow:0 2px 5px #1f2d7650}.amen{font-size:25px;font-weight:900;color:#fff4a5;margin:14px 0}.signature{display:flex;align-items:center;justify-content:center;gap:10px;margin:17px 0 22px}.signature>img{width:53px;height:53px;border:3px solid #fff094;border-radius:50%;object-fit:cover;box-shadow:0 0 15px #fff09460}.signature span{display:block;font-size:14px;font-weight:700}.signature strong,.mini-signature strong{display:block;font-size:38px;font-weight:900;line-height:1.3;overflow-wrap:anywhere;background:linear-gradient(100deg,#fff2a5 10%,#ffc443 30%,#fff 47%,#ffe176 60%,#ffa753 85%);background-size:250% 100%;color:transparent;background-clip:text;-webkit-background-clip:text;filter:drop-shadow(0 2px 1px #66506c);animation:shimmer 3.5s linear infinite;max-width:260px}.cascade{animation:arrive .75s both}.scene-title{animation-delay:.1s}.message h2{animation-delay:.25s}.message p{animation-delay:.4s}.amen{animation-delay:.55s}.signature{animation-delay:.7s}.personalize h2{margin:23px 0 22px}.personalize>.text-button{margin-top:0;margin-bottom:20px}fieldset{border:0;margin:0;padding:0}.choices{display:flex;flex-direction:column;gap:10px}.choice{position:relative;display:flex;align-items:center;gap:10px;border:2px solid #ffffff65;border-radius:17px;min-height:79px;padding:5px 10px;background:#16276565;cursor:pointer;text-align:left}.choice:has(input:checked){background:#fff9d9;color:#283d72;border-color:#ffda46;box-shadow:0 0 22px #fff49145;transform:scale(1.02)}.choice input{position:absolute;opacity:0;width:1px;height:1px}.choice:has(input:focus-visible){outline:3px solid #ffcf4e;outline-offset:4px}.choice img{width:45px;height:65px;object-fit:contain}.choice span{font-size:17px;font-weight:800}.choice b{display:none;margin-left:auto;color:#278954}.choice:has(input:checked) b{display:block}#choice-text{font-size:15px;line-height:1.5;background:#ffffff16;border-radius:12px;padding:14px 12px;margin:18px 0}.photo-row{position:relative;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;text-align:left;border:1px dashed #ffffff90;border-radius:13px;padding:13px 10px}.photo-row label{display:flex;align-items:center;gap:9px;cursor:pointer}.photo-row label>span{font-size:28px}.photo-row strong{font-size:13px}.photo-row small{display:block;font-size:10px;font-weight:400;margin-top:4px;color:#e9e7f4}.photo-row>img{width:38px;height:38px;object-fit:cover;border-radius:50%}.photo-row button{border:0;background:none;color:#fff;font-size:11px;text-decoration:underline}#photo-note{font-size:10px;line-height:1.5;margin:10px 0}#error{color:#fff5af;font-size:13px;line-height:1.5;margin:10px 0}.ready .gift{margin-top:22px}.ready p{font-size:16px;line-height:1.5;margin:20px 0}.mini-signature{font-size:13px;margin-bottom:22px}.mini-signature strong{margin:auto}.recipient-dock{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;padding:0 8px max(5px,env(safe-area-inset-bottom));color:#000}.recipient-dock .dock-pointers{display:block;text-align:left;font-size:40px;line-height:1.25;padding:0 5px 6px;animation:dockpoint .9s ease-in-out infinite;text-shadow:0 2px 3px #26123580;pointer-events:none}.dock-fields{display:grid;grid-template-columns:minmax(0,1fr) 23%;gap:8px}.recipient-dock input[type=text]{height:50px;min-width:0;border:2px solid #000;border-radius:10px;background:#f19507;color:#000;font-size:22px;padding:5px;box-shadow:0 3px 8px #25142b55}.recipient-dock input::placeholder{color:#000;font-size:clamp(14px,4.2vw,18px);font-weight:500}.recipient-dock button{height:50px;border:2px solid #000;border-radius:10px;background:#f107ce;color:#000;font-size:18px;font-weight:900;padding:4px;letter-spacing:.5px;animation:dockshake 4s infinite}.recipient-dock:focus-within .dock-pointers,.recipient-dock:focus-within button{animation:none}@keyframes dockpoint{50%{transform:translateY(5px)}}@keyframes dockshake{0%,85%,100%{transform:rotate(0)}88%,94%{transform:rotate(-4deg)}91%,97%{transform:rotate(4deg)}}body[data-step=recipient-scene] main{padding-bottom:100px}footer{position:relative;z-index:2;max-width:340px;margin:auto;text-align:center;padding:22px 30px;font-size:10px;line-height:1.8;color:#d8e4ff}footer a{text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.marquee{position:fixed;top:0;bottom:0;width:33px;overflow:hidden;pointer-events:none;z-index:3}.marquee.left{left:max(2px,calc(50% - 214px))}.marquee.right{right:max(2px,calc(50% - 214px))}.marquee-track{animation:descend 25s linear infinite}.right .marquee-track{animation-duration:32s;animation-delay:-12s}.marquee-set{display:flex;flex-direction:column;align-items:center;gap:20px;padding-bottom:20px}.marquee img{width:32px;height:48px;object-fit:contain;filter:drop-shadow(0 0 4px #fff59a99)}.marquee span{font-size:24px;line-height:33px}.rain{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:1}.rain i{position:absolute;top:105%;left:calc(4% + var(--i)*6%);font-size:calc(11px + mod(var(--i),3)*4px);font-style:normal;opacity:0;animation:rain 13s linear infinite;animation-delay:calc(var(--i)*-.83s)}@keyframes descend{from{transform:translateY(-50%)}to{transform:translateY(0)}}@keyframes rain{0%{transform:translateY(0) rotate(0);opacity:0}15%,75%{opacity:.7}100%{transform:translateY(-115vh) rotate(80deg);opacity:0}}@keyframes aurora{to{transform:translate(5%,4%) rotate(12deg)}}@keyframes arrive{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}@keyframes shimmer{to{background-position:-250% 0}}@keyframes halo{50%{opacity:.55;transform:scale(1.13)}}@keyframes twinkle{50%{opacity:.4;transform:scale(.93)}}@keyframes heartbeat{50%{transform:scale(1.08)}}@keyframes sway{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}@keyframes saintfloat{50%{transform:translateY(-7px)}}@keyframes buttonpulse{50%{box-shadow:0 5px 0 #15366370,0 0 23px #ff86d499;transform:scale(1.025)}}@media(max-width:360px){main{padding-left:36px;padding-right:36px}.scene-title{font-size:23px}.scene-title span{font-size:31px}.art-wrap{height:260px}.message p{font-size:19px}.button{font-size:15px}header{padding-left:36px;padding-right:36px}.choice span{font-size:15px}.recipient-dock label{font-size:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rain i{opacity:.35;top:calc(var(--i)*6%)}.marquee-track{transform:translateY(-20%)}.cascade{opacity:1}.signature strong,.mini-signature strong{color:#ffe888;background:none}}

.action-dock{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:430px;padding:10px 16px max(12px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#173675ef,#1c2858);border-top:1px solid #ffffff70;box-shadow:0 -4px 22px #14234c55}.action-dock .button{margin-top:0;min-height:53px}.action-dock.share-dock{display:grid;gap:8px}.share-dock .blue{font-size:14px;min-height:43px;padding:11px}.share-dock .green{font-size:17px}body[data-step=scene-screen] main,body[data-step=customize-screen] main{padding-bottom:85px}body[data-step=share-screen] main{padding-bottom:135px}body[data-step=scene-screen] footer,body[data-step=customize-screen] footer{padding-bottom:105px}body[data-step=share-screen] footer{padding-bottom:150px}.recipient-dock input{scroll-margin-bottom:125px}
/* Legacy heart and split curtains, retained as the opening interaction. */
.curtain-stage{position:fixed;inset:0;z-index:20;margin:0;padding:0;animation:none;overflow:hidden;isolation:isolate;min-height:100svh;display:flex;align-items:center;justify-content:center}.curtain{position:absolute;top:0;bottom:0;width:50.1%;background-size:100% 100%;background-repeat:no-repeat;transition:transform 1.8s cubic-bezier(.3,.05,.3,1);z-index:-1}.curtain-left{left:0;background-image:url('assets/cortina1b.jpg')}.curtain-right{right:0;background-image:url('assets/cortina2b.jpg')}.heart-invitation{padding:25px 35px;max-width:400px;text-align:center;filter:drop-shadow(0 2px 4px #100424);transition:opacity .4s,transform .5s}.heart-invitation h1{font-size:36px;overflow-wrap:anywhere;color:#fff699;text-shadow:0 3px 0 #80276a;margin:0 0 14px}.heart-invitation>p{font-size:24px;font-weight:900;color:#fff;text-shadow:0 2px 2px #902656;line-height:1.3}.heart-invitation .heart-hint{font-size:21px;margin-top:5px;color:#fff9b9}#open-surprise{display:block;margin:18px auto 4px;border:0;background:transparent;padding:0;width:220px;max-width:100%;cursor:pointer;animation:heartbeat 2.3s ease-in-out infinite}#open-surprise img{display:block;width:100%;height:auto;max-height:260px;object-fit:contain}.curtain-stage.opening{pointer-events:none}.opening .curtain-left{transform:translateX(-101%)}.opening .curtain-right{transform:translateX(101%)}.opening .heart-invitation{opacity:0;transform:scale(1.2)}body:has(.curtain-stage:not([hidden])) header{z-index:25}.music-credit{font-size:9px;line-height:1.6;margin:12px auto 0;max-width:260px;opacity:.85}.music-credit a{text-decoration:underline}@media(prefers-reduced-motion:reduce){.curtain{transition:none}.curtain-stage.opening{display:none}}

.sender-greeting{margin:0 0 20px}.sender-greeting strong{display:block;font-size:clamp(34px,10vw,46px);line-height:1.15;overflow-wrap:anywhere;color:#fff18b;text-shadow:0 3px 0 #952b70,0 0 18px #fff39b65}.sender-greeting span{display:block;margin-top:8px;font-size:21px;font-weight:900;text-shadow:0 2px 3px #632763}.scene>.date-badge{font-size:10px}body[data-step=recipient-scene] footer{padding-bottom:125px}

.countdown-strip{position:relative;z-index:26;width:100%;padding:8px 12px;text-align:center;background:#241443bd;border-bottom:1px solid #ffffff25;color:#fff5d6;font-size:12px;line-height:1.4;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.1px}

.choice-hint{font-size:14px;line-height:1.5;margin:-8px 0 18px}.personalize .photo-row{margin-bottom:18px}.share-dock .green{min-height:64px;font-size:19px}.share-dock .blue{min-height:30px;padding:4px;background:none;border:0;box-shadow:none;font-size:12px}body[data-step=scene-screen] main{padding-bottom:130px}body[data-step=scene-screen] footer{padding-bottom:145px}#create-status{font-size:14px;margin:10px 0}

.sender-greeting strong{font-size:clamp(38px,12vw,52px);font-weight:900;text-transform:uppercase;background:#fff08a url("assets/namegif5.gif") center/200px;color:transparent;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none;-webkit-text-stroke:1px #fff3b0;filter:drop-shadow(0 3px 0 #762761) drop-shadow(0 0 9px #ffdc73);animation:legacy-name-swing 6s ease-in-out infinite;transform-origin:center top;padding:7px 4px}.sender-greeting{margin-bottom:14px}@keyframes legacy-name-swing{0%,50%,100%{transform:rotate(0) scale(1)}10%{transform:rotate(7deg) scale(1.06)}20%{transform:rotate(-5deg) scale(1.06)}30%{transform:rotate(3deg)}40%{transform:rotate(-2deg)}}.music-info{position:relative;margin-left:8px;font-size:16px}.music-info summary{cursor:pointer;list-style:none}.music-info summary::-webkit-details-marker{display:none}.music-info .music-credit{position:absolute;right:0;top:23px;width:240px;padding:12px;background:#281a4f;border:1px solid #ffffff55;border-radius:10px;color:white;opacity:1;z-index:30;margin:0}.scene{padding-bottom:0}.signature{margin-bottom:8px}main{min-height:0}body[data-step=recipient-scene] main{padding-bottom:115px}body[data-step=scene-screen] main{padding-bottom:125px}@media(prefers-reduced-motion:reduce){.sender-greeting strong{background:none;color:#ffe888;-webkit-text-fill-color:#ffe888}}

.scene>.date-badge{display:block;width:100%;margin:18px auto 20px;padding:13px 5px;font-size:clamp(18px,5.3vw,23px);line-height:1.2;font-weight:900;letter-spacing:.6px;color:#68255c;background:linear-gradient(110deg,#ffbf36,#fff7b2 48%,#ffd150);border:2px solid #fff5bb;border-radius:12px;box-shadow:0 4px 0 #923b7066,0 0 20px #ffe77c80;text-shadow:0 1px #fff6bd;animation:date-glow 2.6s ease-in-out infinite}@keyframes date-glow{50%{transform:scale(1.035);box-shadow:0 4px 0 #923b7066,0 0 30px #ffe77cbb}}

.countdown-strip{padding:10px 8px;font-size:14px;font-weight:800}.scene-title{position:relative;margin:20px -8px 8px;line-height:1.08;letter-spacing:-.8px;animation:title-celebrate 3.8s ease-in-out infinite;text-shadow:0 3px 0 #752063,0 5px 9px #3c164f99}.scene-title small{display:block;color:#fff;font-size:22px;letter-spacing:2px;margin-bottom:6px;font-weight:900}.scene-title b{display:block;font-size:clamp(29px,8.4vw,36px);font-weight:900;color:#fff6d0;-webkit-text-stroke:.6px #fff;white-space:nowrap}.scene-title span{display:block;font-size:clamp(45px,13.1vw,57px);line-height:1.15;font-weight:900;letter-spacing:-1.5px;text-transform:uppercase;background:linear-gradient(100deg,#ffb52d 5%,#ffe866 28%,#fffde5 42%,#ffd332 56%,#ffad28 76%,#fff0a0 95%);background-size:240% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-stroke:1px #fff1a3;text-shadow:none;filter:drop-shadow(0 4px 0 #a03b55) drop-shadow(0 0 12px #ffd34c99);animation:title-gold 2.8s linear infinite}@keyframes title-gold{to{background-position:-240% 0}}@keyframes title-celebrate{0%,100%{transform:scale(1) rotate(-1deg)}25%{transform:scale(1.045) rotate(1deg)}50%{transform:scale(1) rotate(-1deg)}75%{transform:scale(1.025) rotate(0)}}@media(max-width:360px){.countdown-strip{font-size:13px}.scene-title span{font-size:42px}.scene-title b{font-size:28px}}@media(prefers-reduced-motion:reduce){.scene-title span{background:none;color:#ffe36c}}

.message #blessing-text{font-size:18px;line-height:1.55;font-weight:600;white-space:pre-line;margin:20px 0 16px;text-shadow:0 2px 4px #35133b88}@media(max-width:360px){.message #blessing-text{font-size:17px}}

#music-toggle{width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;font-size:20px;display:grid;place-items:center}

body[data-step=recipient-scene] header,body[data-step=scene-screen] header,body[data-step=opening] header{height:0;padding-top:0;padding-bottom:0;overflow:visible}body[data-step=recipient-scene] #music-toggle,body[data-step=scene-screen] #music-toggle,body[data-step=opening] #music-toggle{position:absolute;right:39px;top:8px}.scene{padding-top:15px}.sender-greeting{padding-top:12px}

.message{position:relative;margin:16px -4px 0;padding:20px 15px 12px;border:1px solid #fff0cb45;border-radius:22px;background:linear-gradient(145deg,#35226575,#21174485);box-shadow:0 8px 24px #30154425,inset 0 1px 0 #ffffff15;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}body[data-theme=paz] .message{background:linear-gradient(145deg,#164f8b80,#26265980)}body[data-theme=saude] .message{background:linear-gradient(145deg,#15594f80,#234f4680)}body[data-theme=amor] .message{background:linear-gradient(145deg,#85306c80,#4a286c85)}.message h2{margin-top:0}.message #blessing-text{margin-top:16px}@media(max-width:360px){.message{padding-left:12px;padding-right:12px}}

.scene-title span{text-transform:none;font-size:clamp(35px,10vw,41px);letter-spacing:-.7px;-webkit-text-stroke:.5px #fff1a3;filter:drop-shadow(0 2px 0 #96385a) drop-shadow(0 0 7px #ffd34c60)}.scene-title small{font-size:19px;letter-spacing:1px}.scene-title b{font-size:clamp(27px,7.8vw,32px)}.scene-title{animation:title-soft 4s ease-in-out infinite}@keyframes title-soft{50%{transform:translateY(-3px)}}@media(max-width:360px){.scene-title span{font-size:35px}.scene-title b{font-size:27px}}

body[data-step=customize-screen] header{height:42px;padding-top:2px;padding-bottom:0}body[data-step=customize-screen] #music-toggle{width:34px;height:34px;min-height:34px;font-size:18px}.personalize{padding-top:0}.personalize h2{margin:14px 0 18px}#own-actions .text-button{margin:10px auto 0}#share-status:empty{display:none}

.art-wrap{isolation:isolate}.saint{z-index:2}.halo{z-index:0}
