/* The Blue Palace — all sizes are in design units: 1 unit = 1/1235 of the invitation width */
.inv.pal{container-type:inline-size;--u:calc(100cqw/1235);--navy:#152b5c;--ink:#0f0f0e;--cream:#fbf4e4;--fd:'Calypso','Forum','Cormorant Garamond',serif;--fb:'Gilroy','Onest','Montserrat',system-ui,sans-serif;--fs:'Blacker Valentine','Pinyon Script','Great Vibes',cursive;background:#fbf4e4;background-image:none;max-width:460px;color:var(--ink);text-align:center}
.inv.pal img{height:auto;object-fit:fill}
.pal .pl{font-family:var(--fb);font-size:calc(var(--u)*33.5);line-height:calc(var(--u)*49);font-weight:400;position:relative;overflow:hidden;padding-bottom:calc(var(--u)*0)}
.pal .pl :where(p){margin:0}
.pal .pl img{display:block;pointer-events:none;user-select:none}
.pal b{font-weight:600}
/* reveal-on-scroll (used only while html.rv-on is set) */
.rv-on .pal .pa{opacity:0;transform:translateY(calc(var(--u)*60));transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.rv-on .pal .pa-l{transform:translateX(calc(var(--u)*-120))}
.rv-on .pal .pa-r{transform:translateX(calc(var(--u)*120))}
.rv-on .pal .pa.in{opacity:1;transform:none}
/* headings */
.pal .pl-h1{font:400 calc(var(--u)*150)/.95 var(--fd);margin:0;color:var(--navy)}
.pal .pl-h2{font:400 calc(var(--u)*92)/1 var(--fd);margin:0;color:var(--navy)}
.pal .pl-h3{font:400 calc(var(--u)*70)/1 var(--fd);margin:0;color:var(--navy)}
.pal .pl-t{color:var(--ink)}
.pal .pl-t+.pl-t,.pal .pl-tx p+p{margin-top:calc(var(--u)*49)}
.pal .pl-tx p{margin:0}.pal .pl-tx p+p{margin-top:calc(var(--u)*49)}
.pal .pl-btn{display:inline-flex;align-items:center;justify-content:center;min-width:calc(var(--u)*563);height:calc(var(--u)*124);padding:0 calc(var(--u)*60);border-radius:999px;background:var(--navy);color:var(--cream);font:400 calc(var(--u)*38)/1 var(--fb);text-decoration:none;border:0;cursor:pointer;transition:transform .3s,box-shadow .3s}
.pal .pl-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(21,43,92,.3)}
/* HERO */
.pal .pl-hero{position:relative;height:calc(var(--u)*2400)}
.pal .pl-val{position:absolute;left:0;top:0;width:100%;z-index:3}
.pal .pl-cl,.pal .pl-cr{position:absolute;top:calc(var(--u)*450);width:calc(var(--u)*650);z-index:2}
.pal .pl-cl{left:0;transform-origin:0 0}.pal .pl-cr{right:0;transform-origin:100% 0}
@keyframes plsway{0%,100%{transform:scaleX(1)}50%{transform:scaleX(1.035)}}
.pal .pl-cl{animation:plsway 7s ease-in-out infinite}.pal .pl-cr{animation:plsway 7s 1.2s ease-in-out infinite}
.pal .pl-kick,.pal .pl-names,.pal .pl-lead,.pal .pl-cher{position:absolute;left:0;right:0;z-index:4}
.pal .pl-kick{top:calc(var(--u)*790);font-size:calc(var(--u)*36);line-height:calc(var(--u)*50);letter-spacing:.05em;text-transform:uppercase}
.pal .pl-names{top:calc(var(--u)*950);margin:0;font:400 calc(var(--u)*176)/1 var(--fd);color:var(--navy);display:flex;flex-direction:column;align-items:center}
.pal .pl-names span{display:block;line-height:calc(var(--u)*268);height:calc(var(--u)*268)}.pal .pl-names span+i+span{height:calc(var(--u)*262)}
.pal .pl-names i{font-style:normal;font-size:calc(var(--u)*112);line-height:1;height:calc(var(--u)*0);display:block;transform:translateY(calc(var(--u)*-50))}
.pal .pl-lead{top:calc(var(--u)*1525);padding:0 calc(var(--u)*300)}
.pal .pl-lead p+p{margin-top:calc(var(--u)*49)}
.pal .pl-cher{left:50%;right:auto;width:calc(var(--u)*150);transform:translateX(-50%);top:calc(var(--u)*2255)}
.rv-on .pal .pl-cher.pa{transform:translateX(-50%) translateY(calc(var(--u)*60))}.rv-on .pal .pl-cher.pa.in{transform:translateX(-50%)}
/* REVEAL */
.pal .pl-rev{padding-top:calc(var(--u)*172)}
.pal .pl-rev .pl-h1{font-size:calc(var(--u)*148)}
.pal .pl-cap{margin-top:calc(var(--u)*56);text-transform:uppercase;letter-spacing:.04em;font-size:calc(var(--u)*34)}
.pal .pl-script{font:400 calc(var(--u)*92)/1.05 var(--fs);margin:calc(var(--u)*86) 0 calc(var(--u)*14);color:var(--navy);font-style:normal}
.pal .pl-garden{margin-top:calc(var(--u)*46)}
/* LOCATION */
.pal .pl-loc{margin-top:calc(var(--u)*170);position:relative}
.pal .pl-kk{text-transform:uppercase;letter-spacing:.04em;font-size:calc(var(--u)*34)}
.pal .pl-vn{margin-top:calc(var(--u)*30);font-size:calc(var(--u)*170);line-height:calc(var(--u)*165)}
.pal .pl-addr{margin-top:calc(var(--u)*34);display:flex;justify-content:center;align-items:center;gap:calc(var(--u)*12);padding:0 calc(var(--u)*80)}
.pal .pl-addr svg{width:calc(var(--u)*34);height:calc(var(--u)*34);color:var(--navy);flex:none}
.pal .pl-loc .pl-btn{margin-top:calc(var(--u)*56)}
.pal .pl-engr{margin-top:0}
.pal .pl-lt{position:relative;padding:calc(var(--u)*90) calc(var(--u)*225) calc(var(--u)*0)}
.pal .pl-lt .pl-t+.pl-t{margin-top:calc(var(--u)*49)}
.pal .pl-hr2{position:absolute;right:0;top:calc(var(--u)*-550);width:calc(var(--u)*360)!important;z-index:2}
.pal .pl-hl{position:absolute;left:0;top:calc(var(--u)*140);width:calc(var(--u)*260)!important}
.pal .pl-hr{position:absolute;right:0;top:calc(var(--u)*330);width:calc(var(--u)*360)!important}
/* PROGRAM */
.pal .pl-prog{margin-top:calc(var(--u)*290);position:relative}
.pal .pl-tt{margin-bottom:calc(var(--u)*-10)}.pal .pl-tb{margin-top:calc(var(--u)*-10)}
.pal .pl-tm{background:url('toile-mid.webp') center/100% 100% no-repeat;min-height:calc(var(--u)*1010);padding:calc(var(--u)*38) 0 calc(var(--u)*30);position:relative}
.pal .pl-tm .pl-h3{margin-bottom:calc(var(--u)*72)}
.pal .pl-tl{list-style:none;margin:0 auto;padding:0;width:calc(var(--u)*760);position:relative}
.pal .pl-tl::before{content:"";position:absolute;left:50%;top:calc(var(--u)*34);bottom:calc(var(--u)*120);width:1px;background:#a7abb8}
.pal .pl-tl li{display:grid;grid-template-columns:1fr calc(var(--u)*70) 1fr;min-height:calc(var(--u)*173);width:calc(var(--u)*900);margin-left:calc(var(--u)*-70);position:relative;align-items:start}
.pal .pl-tl .tm{font:400 calc(var(--u)*72)/1 var(--fd);color:var(--navy);grid-row:1;white-space:nowrap}
.pal .pl-tl .tt{grid-row:2;font-size:calc(var(--u)*36);line-height:calc(var(--u)*40);margin-top:calc(var(--u)*6);max-width:calc(var(--u)*370)}
.pal .pl-tl .hr{position:absolute;left:50%;top:calc(var(--u)*14);width:calc(var(--u)*36);height:calc(var(--u)*36);transform:translateX(-50%);background:var(--cream)}
.pal .pl-tl .hr svg{display:block;width:100%;height:100%}
.pal .pl-tl .l .tm,.pal .pl-tl .l .tt{grid-column:1;text-align:right;justify-self:end}
.pal .pl-tl .r .tm,.pal .pl-tl .r .tt{grid-column:3;text-align:left;justify-self:start}
.pal .pl-tl .r{margin-top:0}
.pal .pl-cher2{width:calc(var(--u)*140);margin:calc(var(--u)*20) auto 0}
/* DRESS */
.pal .pl-dress{margin-top:calc(var(--u)*190);padding:0 calc(var(--u)*172)}
.pal .pl-dress .pl-h2{font-size:calc(var(--u)*96)}
.pal .pl-dress .pl-tx{margin-top:calc(var(--u)*72)}
.pal .pl-ppl{margin:calc(var(--u)*50) calc(var(--u)*-172) 0;width:calc(100% + var(--u)*344)!important;max-width:none}
.pal .pl-sw{display:flex;justify-content:center;gap:calc(var(--u)*30);margin-top:calc(var(--u)*40)}
.pal .pl-sw i{width:calc(var(--u)*165);height:calc(var(--u)*165);border-radius:50%;display:block;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.7),rgba(255,255,255,0) 34%),conic-gradient(from 200deg at 55% 62%,color-mix(in srgb,var(--c) 65%,#fff),var(--c),color-mix(in srgb,var(--c) 70%,#000),var(--c),color-mix(in srgb,var(--c) 55%,#fff),color-mix(in srgb,var(--c) 85%,#000),color-mix(in srgb,var(--c) 65%,#fff));box-shadow:0 calc(var(--u)*10) calc(var(--u)*22) rgba(21,43,92,.18);transition:transform .5s}
.pal .pl-sw i:hover{transform:scale(1.08) rotate(20deg)}
.rv-on .pal .pl-sw.pa i{opacity:0;transform:scale(.4);transition:opacity .6s,transform .8s cubic-bezier(.3,1.5,.4,1)}
.rv-on .pal .pl-sw.pa.in i{opacity:1;transform:none}
.rv-on .pal .pl-sw.pa.in i:nth-child(2){transition-delay:.12s}.rv-on .pal .pl-sw.pa.in i:nth-child(3){transition-delay:.24s}.rv-on .pal .pl-sw.pa.in i:nth-child(4){transition-delay:.36s}.rv-on .pal .pl-sw.pa.in i:nth-child(5){transition-delay:.48s}
/* WISHES */
.pal .pl-wish{margin-top:calc(var(--u)*270)}
.pal .pl-wish .pl-h2{font-size:calc(var(--u)*96)}
.pal .pl-wish .pl-tx{margin-top:calc(var(--u)*62);padding:0 calc(var(--u)*155)}
.pal .pl-hands{margin-top:calc(var(--u)*15);overflow:hidden;aspect-ratio:1235/1162;-webkit-mask-image:linear-gradient(transparent,#000 34%);mask-image:linear-gradient(transparent,#000 34%)}
.pal .pl-hands img{width:100%;height:100%;object-fit:cover}
.rv-on .pal .pl-hands.pa img{transform:scale(1.14);transition:transform 2.6s cubic-bezier(.2,.7,.2,1)}
.rv-on .pal .pl-hands.pa.in img{transform:none}
/* CALENDAR */
.pal .pl-calw{margin-top:calc(var(--u)*100);position:relative;padding:calc(var(--u)*60) 0 calc(var(--u)*340)}
.pal .pl-gh{position:absolute;font:400 calc(var(--u)*330)/1 'Pinyon Script','Marck Script',cursive;color:#efe8d8;font-style:normal;white-space:nowrap;z-index:0;line-height:1;pointer-events:none}
.pal .pl-gh.g1{left:calc(var(--u)*50);top:calc(var(--u)*-60);font-size:calc(var(--u)*450)}.pal .pl-gh.g2{left:calc(var(--u)*700);top:calc(var(--u)*390);font-size:calc(var(--u)*390)}.pal .pl-gh.g3{left:calc(var(--u)*480);top:calc(var(--u)*680);font-size:calc(var(--u)*370)}
.pal .pl-cm,.pal .pl-cg,.pal .pl-calw .pl-t{position:relative;z-index:1}
.pal .pl-cm{font:400 calc(var(--u)*72)/1 var(--fd);color:var(--navy)}
.pal .pl-cg{display:grid;grid-template-columns:repeat(7,calc(var(--u)*106));justify-content:center;margin-top:calc(var(--u)*34);font-size:calc(var(--u)*46)}
.pal .pl-cg b,.pal .pl-cg i{height:calc(var(--u)*90.5);display:grid;place-items:center;font-weight:400;font-style:normal;line-height:1}
.pal .pl-cg b.on{position:relative;color:var(--cream)}
.pal .pl-cg b.on em{font-style:normal;position:relative;z-index:1;margin-top:calc(var(--u)*-4)}
.pal .pl-cg b.on::before{content:"";position:absolute;left:50%;top:50%;width:calc(var(--u)*76);height:calc(var(--u)*72);transform:translate(-50%,-50%);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21.5S2 15 2 8.600A5.600 5.600 0 0 1 12 5.400 5.600 5.600 0 0 1 22 8.600C22 15 12 21.500 12 21.500z' fill='%23152b5c'/%3E%3C/svg%3E") center/contain no-repeat}
.rv-on .pal .pl-calw.pa .pl-cg b.on::before{animation:plheart 1.4s 1s both}
@keyframes plheart{0%{transform:translate(-50%,-50%) scale(0)}60%{transform:translate(-50%,-50%) scale(1.35)}100%{transform:translate(-50%,-50%) scale(1)}}
.pal .pl-calw .pl-t{margin-top:calc(var(--u)*50)}
/* ENVELOPE */
.pal .pl-env{position:relative;margin-top:calc(var(--u)*0);height:calc(var(--u)*1354);overflow:hidden}
.pal .pl-es{position:absolute;left:0;top:0;width:100%;z-index:3}
.pal .pl-card{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1}
.pal .pl-paper{position:absolute;left:calc(var(--u)*160);top:calc(var(--u)*300);width:calc(var(--u)*912);height:calc(var(--u)*700);background:#fffdf8;box-shadow:0 0 calc(var(--u)*18) rgba(30,40,70,.18)}
.pal .pl-ph{position:absolute;left:calc(var(--u)*194);top:calc(var(--u)*326);width:calc(var(--u)*847);height:calc(var(--u)*603);overflow:hidden;background:#cdd6e4}
.pal .pl-ph img{width:100%;height:100%;object-fit:cover}
.rv-on .pal .pl-card.pa{transform:translateY(calc(var(--u)*330));opacity:1;transition:transform 2.2s cubic-bezier(.2,.7,.2,1)}
.rv-on .pal .pl-card.pa.in{transform:none}
/* generic blocks reused inside Palace */
.pal .pl-sec{padding:calc(var(--u)*150) calc(var(--u)*120) 0}
.pal .pl-sec .scr{font:400 calc(var(--u)*86)/1 var(--fd);color:var(--navy);margin-bottom:calc(var(--u)*40)}
.pal .pl-sec .tips,.pal .pl-sec .q{margin-top:calc(var(--u)*30);text-align:left}
.pal .pl-sec h4{font:400 calc(var(--u)*50)/1.1 var(--fd);color:var(--navy);margin:0 0 calc(var(--u)*10)}
.pal .pl-sec summary{font-family:var(--fd);font-size:calc(var(--u)*46);color:var(--navy);cursor:pointer;padding:calc(var(--u)*20) 0}
.pal .pl-cdw{margin-top:calc(var(--u)*150)}
.pal .cd{display:flex;justify-content:center;gap:calc(var(--u)*34);margin-top:calc(var(--u)*50)}
.pal .cd div{display:grid;gap:calc(var(--u)*10);width:calc(var(--u)*190)}
.pal .cd b{font:400 calc(var(--u)*110)/1 var(--fd);color:var(--navy)}
.pal .cd span{font-size:calc(var(--u)*30);text-transform:uppercase;letter-spacing:.08em}
.pal .trf{margin:calc(var(--u)*30) 0}.pal .trf .tm{font:400 calc(var(--u)*90)/1 var(--fd);color:var(--navy)}

/* ---------- REVEAL: scratch-off coins ---------- */
.pal .pl-rev{position:relative;overflow:hidden}
.pal .pl-rev>*{position:relative;z-index:2}
.pal .pl-rev>.pl-conf{position:absolute;z-index:3;left:0;top:0;width:100%;height:100%;object-fit:cover;object-position:top;animation:plconf 3.4s cubic-bezier(.2,.7,.2,1) both,plflut 7s 3.4s ease-in-out infinite alternate}
@keyframes plconf{0%{transform:translateY(-30%) rotate(-2deg);opacity:0}15%{opacity:1}100%{transform:none;opacity:1}}
@keyframes plflut{to{transform:translateY(2.2%) rotate(.8deg)}}
.pal .pl-circs{display:flex;justify-content:center;gap:calc(var(--u)*14);margin-top:calc(var(--u)*92)}
.pal .pl-circs .c{width:calc(var(--u)*302);height:calc(var(--u)*302);position:relative;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--navy);cursor:grab;outline:0}
.pal .pl-circs .c:focus-visible{box-shadow:0 0 0 3px #b89a5e}
.pal .pl-circs em{font:400 calc(var(--u)*100)/1 var(--fd);font-style:normal;color:var(--navy)}
.pal .pl-circs .sc{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;touch-action:none;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Ccircle cx='14' cy='14' r='10' fill='%23fff' fill-opacity='.35' stroke='%23152b5c' stroke-width='2'/%3E%3C/svg%3E") 14 14,grab;transition:opacity .7s,transform .7s;animation:plshine 3s ease-in-out infinite}
@keyframes plshine{50%{filter:brightness(1.12) saturate(1.1)}}
.pal .pl-circs .c.done .sc{opacity:0;transform:scale(1.08);pointer-events:none}
.pal .pl-circs .c.done em,.pal .pl-circs.on em{animation:plpop .9s cubic-bezier(.3,1.5,.4,1) both}
@keyframes plpop{0%{transform:scale(.4);opacity:0}100%{transform:none;opacity:1}}
.pal .pl-scroll{display:none;margin-top:calc(var(--u)*40);font-size:calc(var(--u)*30);letter-spacing:.2em;text-transform:uppercase;color:var(--navy)}
.pal .pl-rev.on .pl-scroll{display:block;animation:plin 1s 1.4s both}
.pal .pl-scroll i{display:block;width:calc(var(--u)*18);height:calc(var(--u)*18);margin:calc(var(--u)*16) auto 0;border-right:1.5px solid var(--navy);border-bottom:1.5px solid var(--navy);transform:rotate(45deg);animation:plarr 1.6s ease-in-out infinite}
@keyframes plarr{50%{transform:translateY(calc(var(--u)*14)) rotate(45deg)}}
@keyframes plin{from{opacity:0;transform:translateY(calc(var(--u)*30))}to{opacity:1;transform:none}}
.pal .pl-after{animation:plin 1.2s both}
.pal .pl-after.pl-lock{display:none}
/* flowers */
.pal .pl-gw{margin-top:calc(var(--u)*46)}
.pal .pl-garden{margin:0;transform-origin:50% 100%;animation:plbreath 7s ease-in-out infinite}
@keyframes plbreath{0%,100%{transform:rotate(-.5deg) scale(1)}50%{transform:rotate(.5deg) scale(1.018)}}
.pal .pl-hl img{transform-origin:0 60%;animation:plsw 5.5s ease-in-out infinite}
.pal .pl-hr2 img{transform-origin:100% 55%;animation:plsw 6.5s -2s ease-in-out infinite reverse}
@keyframes plsw{0%,100%{transform:rotate(-1.6deg)}50%{transform:rotate(1.6deg)}}
.pal .pl-hl,.pal .pl-hr2{pointer-events:none}
.pal .pl-hr2{width:calc(var(--u)*360)}.pal .pl-hl{width:calc(var(--u)*260)}
.pal .pl-hr2 img,.pal .pl-hl img{width:100%!important}
.pal .pl-bob{animation:plbob 4.5s ease-in-out infinite}
@keyframes plbob{50%{translate:0 calc(var(--u)*-14)}}
.pal .pl-pts{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.pal .pt{position:absolute;top:-6%;width:calc(var(--u)*26);height:calc(var(--u)*34);border-radius:70% 0 70% 0;background:linear-gradient(135deg,#8dbcff,#2a64d6);opacity:0;animation:plpet 14s linear infinite}
.pal .pt:nth-child(1){left:8%;animation-duration:15s}.pal .pt:nth-child(2){left:22%;animation-duration:19s;animation-delay:-6s;width:calc(var(--u)*20)}
.pal .pt:nth-child(3){left:41%;animation-duration:16s;animation-delay:-3s}.pal .pt:nth-child(4){left:58%;animation-duration:21s;animation-delay:-11s;width:calc(var(--u)*30)}
.pal .pt:nth-child(5){left:74%;animation-duration:17s;animation-delay:-8s}.pal .pt:nth-child(6){left:90%;animation-duration:20s;animation-delay:-2s;width:calc(var(--u)*22)}
.pal .pt:nth-child(7){left:32%;animation-duration:23s;animation-delay:-14s}
@keyframes plpet{0%{transform:translate(0,0) rotate(0);opacity:0}8%{opacity:.8}50%{transform:translate(calc(var(--u)*80),60cqh) rotate(200deg)}92%{opacity:.7}100%{transform:translate(calc(var(--u)*-40),108cqh) rotate(420deg);opacity:0}}
.pal .pl-loc,.pal .pl-dress,.pal .pl-join{position:relative}
.pal .pl-loc>*,.pal .pl-dress>*,.pal .pl-join>*{position:relative;z-index:2}
.pal .pl-loc>.pl-pts,.pal .pl-dress>.pl-pts,.pal .pl-join>.pl-pts{position:absolute;z-index:1}
.pal .pl-loc>.pl-lt{position:relative}
/* timeline line draws itself */
.rv-on .pal .pl-tl.pa{opacity:1;transform:none}
.rv-on .pal .pl-tl.pa::before{transform:scaleY(0);transform-origin:top;transition:transform 2.2s .3s cubic-bezier(.4,.1,.2,1)}
.rv-on .pal .pl-tl.pa.in::before{transform:scaleY(1)}
.pal .pl-tl .hr svg{animation:plhb 2.4s ease-in-out infinite}
.pal .pl-tl li:nth-child(2) .hr svg{animation-delay:.3s}.pal .pl-tl li:nth-child(3) .hr svg{animation-delay:.6s}.pal .pl-tl li:nth-child(4) .hr svg{animation-delay:.9s}
@keyframes plhb{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
.pal .pl-cg b.on::before{animation:plheartb 2.4s 2s ease-in-out infinite}
@keyframes plheartb{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.14)}}
/* ---------- FORM ---------- */
.pal .pl-join{margin-top:calc(var(--u)*136);padding:calc(var(--u)*250) calc(var(--u)*56) calc(var(--u)*270);background:#efe3c9;overflow:hidden}
.pal .pl-join .pl-form{margin:0}
.pal .pl-join .pl-h2{font-size:calc(var(--u)*86);line-height:calc(var(--u)*96)}
.pal .pl-join .pl-tx{margin:calc(var(--u)*56) auto 0;padding:0 calc(var(--u)*165)}
.pal .pl-form{margin:calc(var(--u)*150) calc(var(--u)*56) 0;position:relative;padding-top:calc(var(--u)*40)}
.pal .pl-fcher{position:absolute;left:50%;top:calc(var(--u)*62);width:calc(var(--u)*140);margin-left:calc(var(--u)*-70);z-index:3}
.pal .pl-fo{position:relative;padding:calc(var(--u)*230) calc(var(--u)*92) calc(var(--u)*96);text-align:left;background:linear-gradient(180deg,#fffdf7,#fbf5e6);border:1px solid var(--navy);box-shadow:0 calc(var(--u)*30) calc(var(--u)*60) rgba(21,43,92,.12),inset 0 0 0 calc(var(--u)*12) #fffdf7,inset 0 0 0 calc(var(--u)*13) #b89a5e}
.pal .pl-fo .k{position:absolute;width:calc(var(--u)*92);height:calc(var(--u)*92);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 60' fill='none' stroke='%23b89a5e' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M6 54V20C6 12 12 6 20 6h34'/%3E%3Cpath d='M14 54V28c0-8 6-14 14-14h26' opacity='.55'/%3E%3Ccircle cx='20' cy='20' r='3' fill='%23b89a5e'/%3E%3C/svg%3E") center/contain no-repeat}
.pal .pl-fo .k1{left:calc(var(--u)*22);top:calc(var(--u)*22)}.pal .pl-fo .k2{right:calc(var(--u)*22);top:calc(var(--u)*22);transform:scaleX(-1)}
.pal .pl-fo .k3{left:calc(var(--u)*22);bottom:calc(var(--u)*22);transform:scaleY(-1)}.pal .pl-fo .k4{right:calc(var(--u)*22);bottom:calc(var(--u)*22);transform:scale(-1)}
.pal .pl-fh{font:400 calc(var(--u)*86)/calc(var(--u)*96) var(--fd);margin:0;text-align:center;color:var(--navy);white-space:pre-line}
.pal .pl-fs{text-align:center;margin-top:calc(var(--u)*40);color:#3a3d4a;font-size:calc(var(--u)*33.5);line-height:calc(var(--u)*49)}.pal .pl-fs p{margin:0 0 calc(var(--u)*24)}
.pal .pl-rl{display:flex;align-items:center;gap:calc(var(--u)*22);margin:calc(var(--u)*46) 0 calc(var(--u)*64)}
.pal .pl-rl i{flex:1;height:1px;background:linear-gradient(90deg,transparent,#b89a5e)}.pal .pl-rl i:last-child{background:linear-gradient(270deg,transparent,#b89a5e)}
.pal .pl-rl svg{width:calc(var(--u)*34);height:calc(var(--u)*34);fill:var(--navy);animation:plhb 2.4s ease-in-out infinite}
.pal .pl-f{display:block;margin-bottom:calc(var(--u)*50);position:relative}
.pal .pl-f>span,.pal .pl-r legend{display:block;font:400 calc(var(--u)*44)/1.15 var(--fd);color:var(--navy);padding:0;margin-bottom:calc(var(--u)*10);letter-spacing:.02em}
.pal .pl-f input[type=text]{width:100%;height:calc(var(--u)*84);background:none;border:0;border-bottom:1px solid rgba(21,43,92,.45);border-radius:0;padding:0;font:400 max(16px,calc(var(--u)*38))/1 var(--fb);color:var(--ink);outline:0;transition:border-color .3s,box-shadow .3s;box-shadow:0 0 0 0 #b89a5e}
.pal .pl-f input::placeholder{color:#9a968b;opacity:1}
.pal .pl-f input[type=text]:focus{border-color:var(--navy);box-shadow:0 1px 0 0 var(--navy)}
.pal .pl-r{border:0;padding:0;margin:0 0 calc(var(--u)*54);min-width:0}
.pal .pl-r legend{margin-bottom:calc(var(--u)*24)}
.pal .pl-o{display:block;position:relative;margin-bottom:calc(var(--u)*18);cursor:pointer}
.pal .pl-o input{position:absolute;opacity:0;z-index:2;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.pal .pl-o span{display:flex;align-items:center;justify-content:center;gap:calc(var(--u)*18);min-height:calc(var(--u)*104);padding:0 calc(var(--u)*40);border:1px solid rgba(21,43,92,.5);border-radius:999px;font:400 max(15px,calc(var(--u)*36))/1.1 var(--fb);color:var(--navy);text-align:center;transition:background .35s,color .35s,border-color .35s,transform .35s,box-shadow .35s}
.pal .pl-o:hover span{border-color:var(--navy);transform:translateY(-1px)}
.pal .pl-o input:checked+span{background:var(--navy);color:#fbf4e4;border-color:var(--navy);box-shadow:0 calc(var(--u)*14) calc(var(--u)*30) rgba(21,43,92,.28)}
.pal .pl-o input:checked+span::before{content:"";width:calc(var(--u)*34);height:calc(var(--u)*34);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21S3 15.400 3 9.200A4.800 4.800 0 0 1 12 7a4.800 4.800 0 0 1 9 2.200C21 15.400 12 21 12 21z' fill='%23d9bd7c'/%3E%3C/svg%3E") center/contain no-repeat;animation:plpop .5s cubic-bezier(.3,1.6,.4,1)}
.pal .pl-o input:focus-visible+span{outline:2px solid #b89a5e;outline-offset:3px}
.pal .pl-sx{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*20);flex-wrap:wrap}
.pal .pl-sx>span{margin:0}
.pal .pl-st{display:flex;align-items:center;gap:calc(var(--u)*34)}
.pal .pl-st button{width:calc(var(--u)*90);height:calc(var(--u)*90);border-radius:50%;border:1px solid var(--navy);background:none;color:var(--navy);font:400 calc(var(--u)*50)/1 var(--fb);cursor:pointer;display:grid;place-items:center;padding:0;transition:background .3s,color .3s}
.pal .pl-st button:hover{background:var(--navy);color:#fbf4e4}
.pal .pl-st output{font:400 calc(var(--u)*76)/1 var(--fd);color:var(--navy);min-width:calc(var(--u)*60);text-align:center}
.pal .sr{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.pal .pl-chk{display:flex;align-items:center;gap:calc(var(--u)*24);margin-bottom:calc(var(--u)*50);cursor:pointer;position:relative}
.pal .pl-chk input{position:absolute;opacity:0}
.pal .pl-chk i{width:calc(var(--u)*46);height:calc(var(--u)*46);border:1px solid var(--navy);border-radius:50%;flex:none;position:relative}
.pal .pl-chk i::after{content:"";position:absolute;inset:calc(var(--u)*11);border-radius:50%;background:var(--navy);transform:scale(0);transition:transform .3s cubic-bezier(.3,1.6,.4,1)}
.pal .pl-chk input:checked+i::after{transform:scale(1)}
.pal .pl-seal{display:grid;justify-items:center;gap:calc(var(--u)*22);margin:calc(var(--u)*30) auto 0;background:none;border:0;padding:0;cursor:pointer;color:var(--navy);font:400 calc(var(--u)*34)/1 var(--fb);letter-spacing:.2em;text-transform:uppercase}
.pal .pl-seal img{width:calc(var(--u)*230);filter:drop-shadow(0 calc(var(--u)*14) calc(var(--u)*18) rgba(80,55,10,.35));transition:transform .5s cubic-bezier(.3,1.5,.4,1),filter .4s}
.pal .pl-seal:hover img{transform:rotate(-6deg) scale(1.06)}
.pal .pl-seal:active img{transform:scale(.9);filter:drop-shadow(0 2px 4px rgba(80,55,10,.4))}
.pal .pl-seal:focus-visible{outline:2px solid #b89a5e;outline-offset:6px}
.pal .pl-thx .pl-fo{text-align:center}
.pal .pl-stamp{width:calc(var(--u)*250);margin:0 auto calc(var(--u)*40);animation:plstamp 1.1s cubic-bezier(.3,1.4,.4,1) both;filter:drop-shadow(0 calc(var(--u)*14) calc(var(--u)*18) rgba(80,55,10,.35))}
@keyframes plstamp{0%{transform:scale(2.2) rotate(-25deg);opacity:0}60%{transform:scale(.92) rotate(3deg);opacity:1}100%{transform:none}}
.pal .pl-fh,.pal .pl-fs{position:relative}
/* ---------- CURTAIN GATE ---------- */
.env.cgate{background:#0b2a6e;display:block;overflow:hidden;container-type:inline-size;font-family:'Gilroy','Onest',sans-serif;transition:none}
.env.cgate.fix{left:50%;right:auto;width:min(100vw,460px);transform:translateX(-50%)}
.env.cgate.open{opacity:1;background:transparent;animation:cgout .5s 1.5s forwards}
@keyframes cgout{to{opacity:0}}
.cg-in{position:absolute;inset:0;--u:calc(100cqw/1235)}
.cg-a{position:absolute;inset:0;background:#0b2a6e url('curtain-panel.webp') center top/cover no-repeat;transition:transform 1.6s cubic-bezier(.7,0,.25,1)}
.cg-l{clip-path:inset(0 50% 0 0);transform-origin:0 50%}.cg-r{clip-path:inset(0 0 0 50%);transform-origin:100% 50%}
.env.cgate.open .cg-l{transform:translateX(-54%) scale(1.05)}.env.cgate.open .cg-r{transform:translateX(54%) scale(1.05)}
.cg-a::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1s}.cg-l::after{background:linear-gradient(90deg,transparent 80%,rgba(0,10,50,.45))}.cg-r::after{background:linear-gradient(270deg,transparent 80%,rgba(0,10,50,.45))}
.env.cgate.open .cg-a::after{opacity:1}
.cg-t{position:absolute;left:0;right:0;top:46%;display:grid;gap:calc(var(--u)*30);justify-items:center;color:#fff;text-align:center;transition:opacity .5s,transform .8s}
.cg-t img{width:calc(var(--u)*330);filter:brightness(0) invert(1);animation:plbob 4.5s ease-in-out infinite}
.cg-t span{font:400 calc(var(--u)*66)/1 'Calypso','Forum',serif;letter-spacing:.02em;animation:cgblink 2.4s ease-in-out infinite;text-shadow:0 2px 14px rgba(0,0,40,.5)}
@keyframes cgblink{50%{opacity:.45}}
.env.cgate.open .cg-t{opacity:0;transform:scale(.9)}
@media (prefers-reduced-motion:reduce){.pal .pl-sway,.pal .pl-cl,.pal .pl-cr,.pal .pl-garden,.pal .pl-bob,.pal .pt,.pal .pl-hl img,.pal .pl-hr2 img{animation:none}}

.pal .pl-hands img{scale:1.16}

/* FLOWERS */
.pal .pl-fl{position:absolute;pointer-events:none;z-index:1}
.pal .pl-fl img{display:block;width:100%;transform-origin:50% 100%;animation:plfsway 7s ease-in-out infinite}
.pal .pl-fl.fa1{left:calc(var(--u)*-80);bottom:calc(var(--u)*110);width:calc(var(--u)*390);z-index:3}
.pal .pl-fl.fa2{right:calc(var(--u)*-70);top:calc(var(--u)*120);width:calc(var(--u)*380);z-index:3}.pal .pl-fl.fa2 img{animation-delay:-2.5s;transform-origin:100% 50%}
.pal .pl-fl.fa3{right:calc(var(--u)*-30);bottom:calc(var(--u)*110);width:calc(var(--u)*320);z-index:3}.pal .pl-fl.fa3 img{animation-delay:-4s}
@keyframes plfsway{0%,100%{transform:rotate(-2.2deg) scale(1)}50%{transform:rotate(2.6deg) scale(1.03)}}
.rv-on .pal .pl-fl.pa-l{opacity:0;translate:-18% 12%;scale:.6;rotate:-14deg;transition:opacity 1.2s,translate 1.8s cubic-bezier(.2,.9,.2,1),scale 1.8s cubic-bezier(.2,.9,.2,1),rotate 1.8s cubic-bezier(.2,.9,.2,1)}
.rv-on .pal .pl-fl.pa-r{opacity:0;translate:18% -10%;scale:.6;rotate:14deg;transition:opacity 1.2s .15s,translate 1.8s .15s cubic-bezier(.2,.9,.2,1),scale 1.8s .15s cubic-bezier(.2,.9,.2,1),rotate 1.8s .15s cubic-bezier(.2,.9,.2,1)}
.rv-on .pal .pl-fl.fa3.pa{opacity:0;translate:10% 18%;scale:.5;rotate:10deg;transition:opacity 1.2s .3s,translate 1.8s .3s cubic-bezier(.2,.9,.2,1),scale 1.8s .3s cubic-bezier(.2,.9,.2,1),rotate 1.8s .3s cubic-bezier(.2,.9,.2,1)}
.rv-on .pal .pl-fl.pa.in{opacity:1;translate:0 0;scale:1;rotate:0deg}
@media (prefers-reduced-motion:reduce){.pal .pl-fl img{animation:none}}
.rv-on .pal .pl-kick.pa,.rv-on .pal .pl-names.pa,.rv-on .pal .pl-lead.pa,.rv-on .pal .pl-cher.pa:not(.pl-bob2){transition-delay:calc(var(--d,0s) + 1s)}

.cg-v{position:absolute;left:0;top:0;width:100%;z-index:3;pointer-events:none}
.cg-a{z-index:1}
.cg-t{z-index:4}
.pal .pl-join .pl-form{padding-top:0}
