.wishes{max-width:540px;margin:0 auto;position:relative;isolation:isolate;overflow:hidden;container-type:inline-size;background:var(--paper);color:var(--green);padding:32px 0 60px}.wish-symbols{position:absolute;overflow:hidden}.wish-route{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}.wish-route-line{fill:none;stroke:#eab94c;stroke-width:2.4;stroke-dasharray:2 8;stroke-linecap:round;opacity:.58}
.wish-route{display:none}
.wishes-after-kv{padding-top:122px}.wish-kv-bridge{position:absolute;left:0;top:0;width:100%;height:120px;pointer-events:none;z-index:0}
.wish-lead{position:relative;z-index:1;text-align:center;padding:0 18px 22px}.wish-lead h2{margin:0;font-size:clamp(26px,9.3cqw,50px);font-weight:900;line-height:1.27;letter-spacing:-.055em}.wish-lead h2>span{display:block}.wish-yellow{position:relative;color:#eda728;display:inline-block}.wish-yellow::after{content:"";position:absolute;bottom:-1px;left:-2%;right:-2%;height:4px;border-radius:50%;background:var(--yellow);transform:rotate(3deg)}.wish-rays{position:absolute;width:9%;height:auto;top:22%;fill:none;stroke:var(--yellow);stroke-width:5;stroke-linecap:round;pointer-events:none}.wish-rays-left{left:1%}.wish-rays-right{right:1%}
.wish-scene{position:relative;z-index:1;width:100%;height:144cqw;max-height:778px}.wish-people{position:absolute;top:31%;left:18%;width:64%;height:auto;display:block;z-index:2;pointer-events:none;-webkit-mask-image:linear-gradient(to bottom,black 83%,transparent 100%);mask-image:linear-gradient(to bottom,black 83%,transparent 100%)}.wish-ground{position:absolute;left:7%;top:73%;width:86%;height:17%;background:#faf2dc;border-radius:45% 28% 41% 30%;transform:rotate(-9deg);z-index:0}.wish-tree{position:absolute;width:20%;height:auto;z-index:0;pointer-events:none;opacity:.8}.wish-tree-left{left:-9%;top:38%;transform:rotate(-8deg)}.wish-tree-right{right:-9%;top:53%;transform:rotate(8deg)}
.wish-bubbles{position:absolute;inset:0;margin:0;padding:0;list-style:none;z-index:3}.wish-bubble{position:absolute;aspect-ratio:180/166;transform-origin:70% 90%;color:var(--green)}.wish-top-left{left:3%;top:0;width:43%}.wish-top-right{right:3%;top:12px;width:43%;transform-origin:30% 90%}.wish-bottom-left{left:0;bottom:0;width:36%;transform-origin:75% 15%}.wish-bottom-right{right:0;bottom:15px;width:36%;transform-origin:25% 15%}.wish-cloud{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:var(--paper);stroke:var(--green);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.wish-top-right .wish-cloud{transform:scaleX(-1)}.wish-bottom-left .wish-cloud{transform:rotate(180deg) scaleX(-1)}.wish-bottom-right .wish-cloud{transform:rotate(180deg)}.wish-bubble-content{position:absolute;inset:13% 8% 22%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;text-align:center}.wish-bubble-content .wish-icon{height:clamp(36px,11cqw,57px);width:clamp(36px,11cqw,57px);color:var(--green);flex:none}.wish-top-left .wish-icon{background:#ffe4a0;border-radius:45%;padding:3px}.wish-bubble p{margin:0;font-size:clamp(14px,4.4cqw,23px);font-weight:900;line-height:1.3;letter-spacing:-.045em;white-space:nowrap}.wish-bottom-left .wish-bubble-content,.wish-bottom-right .wish-bubble-content{inset:20% 8% 12%}.wish-bottom-left .wish-icon,.wish-bottom-right .wish-icon{height:clamp(30px,9cqw,45px);width:clamp(30px,9cqw,45px)}.wish-bottom-left p,.wish-bottom-right p{font-size:clamp(12px,4.15cqw,21px)}
.wish-answer{position:relative;z-index:1;text-align:center;padding:19px 15px 0}.wish-kicker{position:relative;width:fit-content;margin:0 auto 9px;font-size:clamp(20px,6cqw,32px);font-weight:900;line-height:1.35;letter-spacing:-.03em}.wish-kicker::before,.wish-kicker::after{content:"";position:absolute;width:5px;height:20px;background:var(--yellow);border-radius:5px;top:5px}.wish-kicker::before{left:-20px;transform:rotate(-35deg)}.wish-kicker::after{right:-20px;transform:rotate(35deg)}.wish-logo-answer{position:relative;width:90%;margin:0 auto}.wish-logo{width:100%;height:auto;display:block}.wish-logo-answer p{position:relative;display:inline-block;margin:0;padding-bottom:7px;font-size:clamp(23px,6.8cqw,37px);font-weight:900;letter-spacing:-.04em;line-height:1.4}.wish-logo-answer p::after{content:"";position:absolute;left:-4%;right:-4%;bottom:2px;background:var(--yellow);height:4px;border-radius:50%;transform:rotate(-2deg)}
.wish-motion .wish-lead{opacity:0;transform:scale(.75)}.wish-motion .wish-people{opacity:0;translate:0 22px}.wish-motion .wish-bubble{opacity:0;transform:scale(.6)}.wish-motion .wish-kicker{opacity:0;translate:0 18px}.wish-motion .wish-logo-answer{opacity:0;transform:scale(.72)}.wish-motion .wish-lead.is-visible{animation:wish-pop .55s cubic-bezier(.2,.75,.25,1) both}.wish-motion .wish-people.is-visible{opacity:1;translate:0 0;transition:opacity .5s ease,translate .55s ease-out}.wish-motion .wish-bubble.is-visible{animation:wish-pop .46s cubic-bezier(.2,.75,.25,1) both}.wish-motion .wish-answer.is-visible .wish-kicker{opacity:1;translate:0 0;transition:opacity .45s ease,translate .5s ease-out}.wish-motion .wish-answer.is-visible .wish-logo-answer{animation:wish-pop .55s .55s cubic-bezier(.2,.75,.25,1) both}
/* One portrait viewport, including room for the floating CTA and home indicator. */
.wishes{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:4px;height:100vh;height:100svh;height:100dvh;padding:clamp(22px,4svh,40px) 0 calc(var(--dock) + var(--safe) + 4px)}
.wishes-after-kv{padding-top:clamp(22px,4svh,40px)}
.wish-kv-bridge{height:clamp(22px,4svh,40px)}
.wish-lead{padding:0 16px 4px}
.wish-lead h2{font-size:clamp(24px,min(8cqw,4.6svh),38px);line-height:1.2}
.wish-scene{height:auto;min-height:0;max-height:none;container-type:size}
.wish-people{top:28%;left:22%;width:56%;height:72%;object-fit:contain;object-position:center bottom}
.wish-ground{top:73%;height:23%}
.wish-top-left,.wish-top-right{width:min(38%,52cqh);top:0}
.wish-top-left{left:2%}.wish-top-right{right:2%}
.wish-bottom-left,.wish-bottom-right{width:min(32%,48cqh);bottom:3px}
.wish-bottom-left{left:0}.wish-bottom-right{right:0}
.wish-bubble-content{gap:2px}
.wish-bubble p,.wish-bottom-left p,.wish-bottom-right p{font-size:clamp(12px,min(3.7cqw,2.3svh),18px);line-height:1.25}
.wish-bubble-content .wish-icon,.wish-bottom-left .wish-icon,.wish-bottom-right .wish-icon{width:clamp(20px,min(8cqw,4svh),34px);height:clamp(20px,min(8cqw,4svh),34px)}
.wish-answer{padding:5px 15px 0}
.wish-kicker{margin-bottom:3px;font-size:clamp(16px,min(5cqw,2.8svh),22px);line-height:1.3}
.wish-kicker::before,.wish-kicker::after{width:4px;height:14px;top:3px}
.wish-logo-answer{width:100%}
.wish-logo{width:min(82%,34svh);margin-inline:auto}
.wish-logo-answer p{font-size:clamp(20px,min(7cqw,4svh),30px);line-height:1.25;white-space:nowrap;padding-bottom:5px}
@media(max-height:620px){.wishes,.wishes-after-kv{padding-top:18px}.wish-kv-bridge{height:18px}.wish-lead h2{font-size:24px}.wish-logo{width:min(72%,26svh)}.wish-logo-answer p{font-size:clamp(18px,min(6.4cqw,3.6svh),24px)}.wish-kicker{font-size:16px}}
/* Extremely short/landscape viewports may scroll rather than clip readable content. */
@media(max-height:480px),(orientation:landscape){.wishes{height:auto;min-height:100svh;grid-template-rows:auto minmax(220px,1fr) auto}.wish-scene{min-height:220px}}
@keyframes wish-pop{0%{opacity:0;transform:scale(.65)}70%{opacity:1;transform:scale(1.04)}100%{opacity:1;transform:scale(1)}}
@media(min-width:541px){.wishes{box-shadow:0 0 48px #073f3018}}
@media(prefers-reduced-motion:reduce){.wish-motion .wish-lead,.wish-motion .wish-people,.wish-motion .wish-bubble,.wish-motion .wish-kicker,.wish-motion .wish-logo-answer{opacity:1;transform:none;translate:none;animation:none!important;transition:none!important}}
