.wish-section{--wish-gold:var(--lime,#f39800);position:relative;background:#1c1d1b;color:#fafaf8;padding:88px 4.5%;overflow:hidden;scroll-margin-top:100px}
.wish-section *{box-sizing:border-box}.wish-section [hidden]{display:none!important}
.wish-topline{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #ffffff24;padding-bottom:20px;font-size:11px;letter-spacing:2px;color:#c2c3b9}
.wish-topline span:last-child{letter-spacing:1px}.wish-layout{display:grid;grid-template-columns:1fr 1fr;gap:7%;max-width:1440px;margin:52px auto 0;align-items:start}
.wish-intro h2{font-size:clamp(38px,4.5vw,68px);line-height:1.22;letter-spacing:-.04em;margin:0 0 24px;font-weight:800}.wish-intro h2 span{color:var(--wish-gold)}
.wish-intro>p{font-size:15px;color:#c2c3b9;line-height:1.9;margin:0;max-width:440px}
.wish-water{position:relative;height:258px;width:100%;max-width:500px;margin:32px auto 0;isolation:isolate;overflow:hidden}
.wish-ring{position:absolute;left:50%;top:58%;width:80%;height:36%;border:1px solid #f3980042;border-radius:50%;transform:translate(-50%,-50%) scale(.35);animation:wish-ripple 6s ease-out infinite;pointer-events:none}
.wish-ring:nth-child(2){animation-delay:-2s}.wish-ring:nth-child(3){animation-delay:-4s}
.wish-water:after{content:"";position:absolute;left:10%;right:10%;height:35%;top:40%;border-radius:50%;background:radial-gradient(ellipse,#f398001c,transparent 70%);z-index:-1}
.wish-coin{position:absolute;left:calc(50% - 28px);top:36%;width:56px;height:56px;border-radius:50%;background:var(--wish-gold);border:1px solid #ffc56c;color:#20211d;display:grid;place-items:center;font-size:25px;font-weight:700;box-shadow:0 5px 0 #a25e00;transform:rotate(-12deg);animation:wish-hover 5s ease-in-out infinite}
.wish-water-caption{position:absolute;bottom:5px;left:0;right:0;text-align:center;color:#a9ab9f;letter-spacing:3px;font-size:10px}
.wish-section.is-received .wish-coin{animation:wish-drop 1.2s ease-in forwards}.wish-section.is-received .wish-ring{animation-duration:2.4s}
.wish-form{min-width:0}.wish-field{display:flex;flex-direction:column;gap:9px;margin:0 0 21px;min-width:0}.wish-field label,.wish-services legend{font-size:13px;font-weight:600;color:#f3f3ed}.wish-field label small{font-size:11px;color:#9fa296;font-weight:400;margin-left:5px}
.wish-section input:not([type=checkbox]),.wish-section textarea,.wish-section select{font:inherit;font-size:16px;width:100%;border:1px solid #53554b;border-radius:8px;background:#272922;color:#fafaf8;padding:13px 14px;min-height:48px;outline-offset:3px}.wish-section textarea{resize:vertical;min-height:138px;line-height:1.65}.wish-section input::placeholder,.wish-section textarea::placeholder{color:#a2a497}.wish-section :is(input,textarea,select,button,a):focus-visible{outline:2px solid var(--wish-gold);outline-offset:4px}
.wish-field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.wish-services{padding:0;border:0;margin:0 0 24px}.wish-services legend{margin-bottom:12px}.wish-options{display:flex;flex-wrap:wrap;gap:8px}.wish-choice{position:relative;cursor:pointer}.wish-choice input{position:absolute;opacity:0;width:1px;height:1px}.wish-choice span{display:block;font-size:12px;line-height:1.4;border:1px solid #53554b;border-radius:100px;color:#cfd0c6;padding:9px 12px;transition:background .15s,color .15s}.wish-choice input:checked+span{background:var(--wish-gold);border-color:var(--wish-gold);color:#191919}.wish-choice input:focus-visible+span{outline:2px solid var(--wish-gold);outline-offset:3px}
.wish-consent{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.8;color:#b6b9ac;margin:0 0 20px}.wish-consent input{accent-color:var(--wish-gold);flex-shrink:0;margin-top:5px;width:16px;height:16px}.wish-consent a{text-decoration:underline;text-underline-offset:3px}
.wish-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;border:0;border-radius:8px;padding:18px 22px;background:var(--wish-gold);color:#191919;font:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:filter .2s}.wish-submit:hover{filter:brightness(1.1)}.wish-submit:disabled{opacity:.65;cursor:wait}.wish-submit b{font-size:24px;font-weight:400}.wish-hint{color:#aaaD9f;font-size:11px;line-height:1.8;margin:12px 0 0}.wish-status{font-size:13px;line-height:1.8;margin:14px 0 0;color:#ffce94;overflow-wrap:anywhere}.wish-status:empty{display:none}.wish-fallback{display:inline-block;margin-top:12px;text-decoration:underline;font-size:13px;color:#ffce94}
.wish-honey{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.wish-success{padding:48px 0;outline:none}.wish-success-mark{width:60px;height:60px;border:1px solid var(--wish-gold);color:var(--wish-gold);border-radius:50%;display:grid;place-items:center;font-size:28px;margin-bottom:30px}.wish-success h3{font-size:clamp(26px,3vw,42px);line-height:1.5;margin:0 0 24px}.wish-success h3 span{color:var(--wish-gold)}.wish-success p{color:#c2c3b9;font-size:15px;line-height:1.9}.wish-success a{display:inline-block;color:var(--wish-gold);border-bottom:1px solid var(--wish-gold);padding:10px 0;margin-top:12px}
@keyframes wish-ripple{0%{transform:translate(-50%,-50%) scale(.25);opacity:0}20%{opacity:.8}100%{transform:translate(-50%,-50%) scale(1.2);opacity:0}}
@keyframes wish-hover{0%,100%{transform:translateY(0) rotate(-12deg)}50%{transform:translateY(-12px) rotate(4deg)}}
@keyframes wish-drop{0%{transform:translateY(0) rotate(-12deg);opacity:1}65%{transform:translateY(35px) rotateY(180deg) scale(.75);opacity:1}100%{transform:translateY(52px) rotateY(260deg) scale(.1);opacity:0}}
@media(min-width:1600px){.wish-section{padding-left:max(4.5%,calc((100vw - 1440px)/2));padding-right:max(4.5%,calc((100vw - 1440px)/2))}}
@media(max-width:850px){.wish-section{padding:56px 5%}.wish-layout{grid-template-columns:1fr;gap:24px;margin-top:32px}.wish-intro h2{font-size:clamp(36px,8vw,56px)}.wish-water{height:180px;margin-top:12px;max-width:390px}.wish-topline{font-size:10px;letter-spacing:1px}.wish-topline span:last-child{letter-spacing:0}.wish-success{padding:16px 0 30px}}
@media(max-width:420px){.wish-field-row{grid-template-columns:1fr;gap:0}.wish-topline{flex-wrap:wrap}.wish-intro>p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.wish-section *{animation:none!important;transition:none!important}.wish-ring{opacity:.4;transform:translate(-50%,-50%) scale(.8)}.wish-ring:nth-child(2){transform:translate(-50%,-50%) scale(1)}.wish-ring:nth-child(3){transform:translate(-50%,-50%) scale(1.2)}}

/* The pool is the main scene; the question card is its quiet companion. */
.wish-section{padding-top:60px;padding-bottom:64px;background:radial-gradient(ellipse at 24% 67%,#333021 0,transparent 48%),#191b18}
.wish-layout{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:5%;align-items:center;margin-top:44px}
.wish-intro{position:relative;min-width:0}.wish-intro h2{font-size:clamp(38px,4.4vw,70px);position:relative;z-index:1}.wish-intro>p{font-size:14px;max-width:none;color:#babcaf}
.wish-water{height:390px;max-width:none;margin:0 auto;overflow:visible;perspective:850px}
.wish-ring{width:95%;height:39%;top:61%;border-color:#f3980066;animation-duration:7s}
.wish-water:after{left:0;right:0;top:40%;height:43%;background:radial-gradient(ellipse,#f3980030,transparent 66%)}
.wish-coin{width:96px;height:96px;left:calc(50% - 48px);top:32%;font-size:42px;border:5px double #ffd795;background:linear-gradient(135deg,#ffd27b,#f39800 55%,#c97b00);box-shadow:0 9px 0 #975800,0 25px 70px #f3980033;animation-duration:5s;transition:filter .5s;filter:brightness(calc(1 + var(--wish-progress,0)*.2))}
.wish-orbit{position:absolute;top:40%;left:2%;width:96%;height:41%;border:1px solid #f3980028;border-radius:50%;transform:rotate(-12deg)}
.wish-orbit:after{content:'';position:absolute;top:22%;left:8%;width:6px;height:6px;border-radius:50%;background:#ffbe53;box-shadow:0 0 16px #f39800;animation:wish-star 4s ease-in-out infinite}
.wish-orbit-two{transform:rotate(12deg) scale(.85);border-color:#ffffff0c}.wish-orbit-two:after{left:auto;right:4%;top:62%;animation-delay:-2s}
.wish-spark{position:absolute;color:#edb45d;animation:wish-star 4s ease-in-out infinite}.wish-spark-one{left:19%;top:20%;font-size:20px}.wish-spark-two{right:15%;top:34%;font-size:28px;animation-delay:-2s}.wish-spark-three{left:38%;top:12%;font-size:32px;animation-delay:-1s}
.wish-water-caption{bottom:12px;color:#b4ac97;font-size:9px;letter-spacing:2px}
.wish-interaction{position:relative;z-index:2;background:#252720eb;border:1px solid #64664e66;border-radius:18px;padding:clamp(22px,2.4vw,38px);box-shadow:0 25px 70px #00000024;min-width:0}
.wish-progress{display:flex;flex-direction:column;gap:16px;margin-bottom:36px;color:#babdac;font-size:11px;letter-spacing:1px}
.wish-progress-track{display:block;height:2px;background:#ffffff16;overflow:hidden}.wish-progress-track i{display:block;height:100%;background:var(--wish-gold);transition:width .45s ease}
.wish-step{min-height:224px;outline:none;animation:wish-question-in .4s ease both}
.wish-step .wish-field{margin:0}.wish-step .wish-field>label,.wish-step .wish-services legend{font-size:22px;line-height:1.6;font-weight:600;margin-bottom:14px}.wish-step .wish-field label small{display:block;font-size:10px;margin:2px 0 0;color:#abb09e}
.wish-step .wish-services legend span{display:block;font-size:11px;color:#abb09e;font-weight:400;margin-top:4px}.wish-step .wish-services{margin:0}.wish-step textarea{min-height:150px}
.wish-step .wish-options{gap:10px}.wish-step .wish-choice span{font-size:13px;padding:11px 15px}.wish-navigation{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px}.wish-next{margin-left:auto;border:0;border-radius:7px;background:var(--wish-gold);color:#191919;padding:14px 20px;font:inherit;font-size:14px;font-weight:700;cursor:pointer}.wish-back{border:0;padding:12px 0;background:none;color:#bdc0b0;font:inherit;font-size:12px;cursor:pointer}.wish-back:hover{color:white}.wish-back:disabled{opacity:.5;cursor:wait}.wish-guided .wish-hint{margin-top:20px;min-height:36px;color:#b3b7a4}
.wish-review h3{font-size:24px;line-height:1.5;margin:0 0 20px}.wish-review dl{display:grid;grid-template-columns:70px minmax(0,1fr);gap:10px 12px;font-size:12px;line-height:1.8;margin:0 0 24px;max-height:230px;overflow:auto;padding-right:8px}.wish-review dt{color:#aeb39d}.wish-review dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#eceee3}.wish-review .wish-consent{margin-bottom:0}.wish-guided .wish-submit{margin-top:16px}.wish-success{padding:12px 0}.wish-success h3{font-size:clamp(24px,2.4vw,34px)}
@keyframes wish-star{0%,100%{opacity:.3;transform:translateY(4px) scale(.8)}50%{opacity:.95;transform:translateY(-8px) scale(1)}}
@keyframes wish-question-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.wish-section{padding-top:38px;padding-bottom:44px}.wish-layout{grid-template-columns:1fr;gap:4px;margin-top:32px}.wish-intro h2{font-size:clamp(36px,8vw,56px)}.wish-intro>p{font-size:13px}.wish-water{height:265px;max-width:550px;margin-top:4px}.wish-coin{width:74px;height:74px;left:calc(50% - 37px);font-size:32px;top:28%}.wish-water-caption{bottom:8px}.wish-interaction{width:100%;max-width:550px;margin:12px auto 0;padding:24px}.wish-step{min-height:180px}.wish-progress{margin-bottom:24px}.wish-step .wish-field>label,.wish-step .wish-services legend{font-size:21px}.wish-success{padding:16px 0}.wish-intro{max-width:650px;margin:auto;width:100%}}
@media(prefers-reduced-motion:reduce){.wish-orbit:after,.wish-spark,.wish-step{animation:none!important}.wish-progress-track i,.wish-coin{transition:none!important}}

/* Standalone wishing page keeps the pool as the opening visual. */
.page-wish .wish-intro h1{font-size:clamp(38px,4.4vw,70px);line-height:1.22;letter-spacing:-.04em;margin:0 0 24px;font-weight:800;position:relative;z-index:1}
.page-wish .wish-intro h1 span{color:var(--wish-gold)}
.page-wish .wish-section{min-height:calc(100svh - 100px)}
@media(max-width:850px){.page-wish .wish-intro h1{font-size:clamp(36px,8vw,56px)}}

/* Keep the pool and its current question together in the mobile viewport. */
.wish-arrival{color:var(--wish-gold);text-align:center;line-height:1.8;padding:28px 0;margin:0}
.wish-celebrating .wish-interaction{display:grid;place-items:center}
@media(max-width:850px){
 .wish-section,.page-wish .wish-section{height:calc(100dvh - var(--wish-header-height,0px));min-height:460px;max-height:none;padding:16px 5% max(16px,env(safe-area-inset-bottom));display:grid;grid-template-rows:auto minmax(0,1fr);scroll-margin-top:0}
 .wish-topline{font-size:9px;padding-bottom:10px;gap:6px}
 .wish-layout{display:grid;grid-template-columns:1fr;grid-template-rows:minmax(172px,.9fr) minmax(210px,1.1fr);gap:12px;margin:14px 0 0;min-height:0;width:100%}
 .wish-intro{height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(72px,1fr);margin:0 auto}
 .wish-intro h2,.page-wish .wish-intro h1{font-size:clamp(24px,6vw,32px);line-height:1.15;margin:0 0 6px}
 .wish-intro>p{font-size:11px;line-height:1.5}
 .wish-water{height:100%;min-height:72px;margin:0 auto;max-width:480px;overflow:hidden}
 .wish-coin{width:48px;height:48px;left:calc(50% - 24px);top:18%;font-size:22px;border-width:3px;box-shadow:0 5px 0 #975800,0 12px 35px #f3980033}
 .wish-water-caption{display:none}.wish-orbit{top:44%}.wish-ring{top:66%}
 .wish-interaction{height:100%;min-height:0;max-height:100%;margin:0 auto;padding:16px 18px;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#a67a32 transparent}
 .wish-progress{gap:8px;margin-bottom:14px;font-size:10px}
 .wish-step{min-height:0}.wish-step .wish-field>label,.wish-step .wish-services legend{font-size:18px;line-height:1.4;margin-bottom:8px}
 .wish-step .wish-field label small{display:inline;margin-left:6px}
 .wish-step textarea{min-height:80px;height:90px;padding:10px 12px}
 .wish-step .wish-options{gap:7px}.wish-step .wish-choice span{padding:8px 11px;font-size:12px}
 .wish-navigation{margin-top:14px}.wish-next{padding:12px 16px}.wish-guided .wish-hint{font-size:10px;line-height:1.6;margin-top:10px;min-height:0}
 .wish-review h3{font-size:20px;margin-bottom:12px}.wish-review dl{max-height:110px;margin-bottom:14px;gap:6px 10px}.wish-consent{font-size:11px;line-height:1.6}
 .wish-guided .wish-submit{padding:13px 16px;margin-top:8px}.wish-success{padding:0}.wish-success-mark{width:34px;height:34px;font-size:19px;margin-bottom:12px}.wish-success h3{font-size:22px;margin-bottom:10px}.wish-success p{font-size:12px;line-height:1.7;margin:0}.wish-success a{font-size:12px;margin-top:4px;padding:8px 0}
 @keyframes wish-drop{0%{transform:translateY(0) rotate(-12deg);opacity:1}65%{transform:translateY(24px) rotateY(180deg) scale(.75);opacity:1}100%{transform:translateY(36px) rotateY(260deg) scale(.1);opacity:0}}
}
@media(max-width:850px) and (max-height:620px){.wish-intro>p{display:none}.wish-intro{grid-template-rows:auto minmax(72px,1fr)}.wish-layout{grid-template-rows:minmax(140px,.75fr) minmax(210px,1.25fr)}.wish-intro h2,.page-wish .wish-intro h1{font-size:24px}.wish-intro h2 br,.page-wish .wish-intro h1 br{display:none}}

/* One stage: invitation, questions, unobstructed coin drop, then closing words. */
.wish-stage,.page-wish .wish-stage{position:relative;height:calc(100dvh - var(--wish-header-height,0px));min-height:540px;padding:28px 5%;display:grid;grid-template-rows:auto minmax(0,1fr)}
.wish-stage .wish-layout{display:block;min-height:0;margin:18px 0 0;width:100%;max-width:none}
.wish-stage .wish-intro{height:100%;width:100%;max-width:900px;margin:auto;text-align:center;display:flex;flex-direction:column;align-items:center}
.wish-stage .wish-intro h2,.page-wish .wish-stage .wish-intro h1{font-size:clamp(28px,3.6vw,50px);margin:0 0 10px;line-height:1.15}
.wish-stage .wish-intro h2 br,.wish-stage .wish-intro h1 br{display:none}
.wish-stage .wish-intro>p{font-size:12px;line-height:1.6;margin:0}.wish-stage .wish-intro>p br{display:none}
.wish-stage .wish-water{flex:1;width:100%;height:auto;min-height:120px;max-width:760px;overflow:hidden;margin:0}
.wish-stage .wish-water-caption{display:none}
.wish-start{flex:none;display:block;padding:16px 30px;border:1px solid #ffc56c;border-radius:40px;background:var(--wish-gold);color:#191919;font:inherit;font-size:16px;font-weight:700;cursor:pointer;margin:10px 0 0;box-shadow:0 0 35px #f3980020}
.wish-stage .wish-interaction{position:absolute;inset:80px 5% 24px;height:auto;max-height:none;width:auto;max-width:none;margin:0;overflow:visible;padding:20px;display:flex;align-items:center;justify-content:center;background:#252720fa;z-index:4}
.wish-stage #wish-form{width:100%;max-width:520px}.wish-close{display:block;margin:0 0 14px auto;border:0;background:none;color:#c7cab9;font:inherit;font-size:12px;padding:6px;cursor:pointer}
.wish-stage .wish-progress{margin-bottom:18px;gap:10px}.wish-stage .wish-step{min-height:0}.wish-stage .wish-step textarea{height:110px;min-height:70px}.wish-stage .wish-navigation{margin-top:16px}
.wish-stage .wish-review dl{display:block;overflow:visible;max-height:none;margin:0 0 16px}.wish-review-note{font-size:14px;line-height:1.8;color:#c7cab9;margin:0}
.wish-stage .wish-hint{min-height:0}.wish-stage .wish-success{max-width:650px;text-align:center}.wish-stage .wish-success-mark{margin-left:auto;margin-right:auto}
.wish-question-open .wish-intro,.wish-complete .wish-intro{visibility:hidden}
.wish-splash{position:absolute;left:50%;top:65%;width:1px;height:1px;pointer-events:none}
.wish-splash i{position:absolute;width:5px;height:10px;border-radius:60%;background:#ffdca0;opacity:0;box-shadow:0 0 10px #f39800}
.wish-stage.is-received .wish-coin{animation:wish-stage-drop 1.4s ease-in forwards}
.wish-stage.is-received .wish-splash i{animation:wish-water-splash 1.1s .9s ease-out both}
.wish-stage.is-received .wish-ring{animation-duration:1.8s;border-color:#ffc36b99}
@keyframes wish-stage-drop{0%{transform:translateY(0) rotate(-12deg);opacity:1}65%{transform:translateY(var(--wish-drop-distance,80px)) rotateY(180deg) scale(.65);opacity:1}100%{transform:translateY(calc(var(--wish-drop-distance,80px) + 12px)) rotateY(270deg) scale(.05);opacity:0}}
@keyframes wish-water-splash{0%{opacity:0;transform:translate(0,0) scale(.3)}12%{opacity:1}55%{opacity:.9;transform:translate(var(--dx),var(--dy)) rotate(20deg)}100%{opacity:0;transform:translate(calc(var(--dx)*1.3),12px) scale(.3)}}
@media(max-width:850px){
 .wish-stage,.page-wish .wish-stage{min-height:440px;padding:14px 5% max(14px,env(safe-area-inset-bottom))}
 .wish-stage .wish-layout{margin-top:18px}.wish-stage .wish-intro h2,.page-wish .wish-stage .wish-intro h1{font-size:clamp(25px,6.4vw,34px)}
 .wish-stage .wish-intro>p{font-size:11px;max-width:340px}.wish-stage .wish-coin{width:66px;height:66px;left:calc(50% - 33px);font-size:28px;top:25%}
 .wish-stage .wish-interaction{inset:56px 5% 14px;padding:16px}.wish-stage .wish-step .wish-field>label,.wish-stage .wish-step .wish-services legend{font-size:19px}
 .wish-stage .wish-step textarea{height:100px}.wish-stage .wish-hint{font-size:10px;margin-top:10px}.wish-stage .wish-review-note{font-size:12px}
 .wish-stage .wish-success h3{font-size:24px}.wish-stage .wish-success p{font-size:13px}
}
@media(max-height:560px){.wish-stage .wish-intro>p{display:none}.wish-stage .wish-progress{margin-bottom:8px}.wish-stage .wish-close{margin-bottom:5px}.wish-stage .wish-hint{display:none}.wish-stage .wish-step textarea{height:76px}.wish-stage .wish-navigation{margin-top:10px}}
@media(prefers-reduced-motion:reduce){.wish-stage.is-received .wish-splash i{animation:none}.wish-stage.is-received .wish-coin{animation:none;opacity:0}}

/* Center the coin and invitation as one group within the pool stage. */
.wish-stage .wish-water{--wish-coin-size:clamp(110px,12vw,156px);--wish-cta-gap:22px;--wish-cta-height:52px;--wish-coin-top:max(16px,calc(50% - (var(--wish-coin-size) + var(--wish-cta-gap) + var(--wish-cta-height))/2))}
.wish-stage .wish-coin{width:var(--wish-coin-size);height:var(--wish-coin-size);left:calc(50% - var(--wish-coin-size)/2);top:var(--wish-coin-top);font-size:calc(var(--wish-coin-size)*.43);border-width:5px}
.wish-stage .wish-start{position:absolute;left:50%;top:calc(var(--wish-coin-top) + var(--wish-coin-size) + var(--wish-cta-gap));transform:translateX(-50%);margin:0;z-index:3;white-space:nowrap;min-height:var(--wish-cta-height);padding:14px 26px;line-height:22px}
@media(max-width:850px){.wish-stage .wish-water{--wish-coin-size:clamp(104px,28vw,132px);--wish-cta-gap:18px;--wish-cta-height:50px}.wish-stage .wish-start{font-size:15px;padding:13px 24px}}
@media(max-height:560px){.wish-stage .wish-water{--wish-coin-size:100px;--wish-cta-gap:16px}}
