:root{--sky-top:#3a9be8;--sky-bottom:#a9dcff;--yellow:#ffd930;--yellow-shadow:#e0a800;--ink:#1c3c6b;--white:#fff;--red:#e3242b;--red-dark:#a3141a;--outline:#14366e;--wood:#e2b57c;--wood-dark:#c9975c;--wood-line:#b8834a;--floor-h:clamp(90px, 13vh, 140px)}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);background:linear-gradient(to bottom, var(--sky-top) 0%, var(--sky-bottom) 100%);flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;font-family:Nunito,Segoe UI,system-ui,sans-serif;display:flex;overflow-x:hidden}.sky{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.cloud{background:var(--white);opacity:.95;filter:drop-shadow(0 6px 10px #003c7826);border-radius:100px;animation:linear infinite drift;position:absolute}.cloud:before,.cloud:after{content:"";background:var(--white);border-radius:50%;position:absolute}.cloud:before{width:55%;height:140%;top:-70%;left:12%}.cloud:after{width:40%;height:100%;top:-45%;right:12%}@keyframes drift{0%{transform:translate(-40vw)}to{transform:translate(140vw)}}.cloud:first-child{width:220px;height:70px;animation-duration:55s;animation-delay:-10s;top:8%}.cloud:nth-child(2){opacity:.85;width:160px;height:50px;animation-duration:70s;animation-delay:-35s;top:22%}.cloud:nth-child(3){width:280px;height:90px;animation-duration:90s;animation-delay:-60s;top:38%}.cloud:nth-child(4){opacity:.8;width:130px;height:42px;animation-duration:60s;animation-delay:-20s;top:55%}.cloud:nth-child(5){width:200px;height:65px;animation-duration:80s;animation-delay:-50s;top:70%}.cloud:nth-child(6){opacity:.9;width:150px;height:48px;animation-duration:65s;animation-delay:-5s;top:85%}.invite{z-index:1;width:100%;max-width:800px;padding:clamp(2rem,6vw,4rem) 1.25rem;padding-bottom:calc(var(--floor-h) + 5rem);text-align:center;position:relative}h1{letter-spacing:.02em;flex-direction:column;align-items:center;margin:0 0 2rem;font-family:Luckiest Guy,Impact,Arial Black,sans-serif;font-size:clamp(2.8rem,12vw,7.5rem);line-height:.9;display:flex}h1 span{display:block}.outlined{z-index:1;color:var(--yellow);-webkit-text-stroke:.045em var(--outline);paint-order:stroke fill;text-shadow:.06em .06em 0 var(--outline);position:relative}.banner{z-index:0;color:var(--yellow);-webkit-text-stroke:.035em var(--outline);paint-order:stroke fill;text-shadow:.05em .05em 0 var(--outline);margin:-.18em 0 -.12em;padding:.28em 1em .2em;font-size:1.15em;position:relative;transform:rotate(-3deg)}.banner:before,.banner:after{content:"";z-index:-1;clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);position:absolute;inset:0}.banner:before{background:var(--red-dark);transform:translate(.06em,.06em)}.banner:after{background:var(--red)}.card{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe0;border-radius:1.5rem;padding:clamp(1.5rem,5vw,2.5rem);box-shadow:0 12px 30px #00326e33}.card p{margin:0;font-size:clamp(1.1rem,3vw,1.5rem);font-weight:600;line-height:1.4}.card p.lead{margin-bottom:1.5rem;font-size:clamp(1.3rem,4vw,1.9rem);font-weight:800}.card ul{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.card li{font-size:clamp(1.1rem,3vw,1.5rem);font-weight:600}.card li strong{letter-spacing:.1em;text-transform:uppercase;color:var(--sky-top);font-size:.8em;font-weight:800;display:block}.card a{color:var(--ink);border-bottom:3px solid var(--yellow);text-decoration:none}.card a:hover{background:var(--yellow)}.card .address{margin-top:.3rem;font-size:.75em;display:inline-block}.highlight{--highlight:#ffd9308c;background-image:linear-gradient(var(--highlight), var(--highlight));-webkit-box-decoration-break:clone;box-decoration-break:clone;background-repeat:no-repeat;background-size:100% 100%;border-radius:.2em;padding:0 .15em;animation:.9s cubic-bezier(.25,.8,.3,1) 1.2s both highlight-sweep}.address .highlight{animation-delay:1.5s}#access .highlight{animation-delay:1.8s}@keyframes highlight-sweep{0%{background-size:0% 100%}to{background-size:100% 100%}}.code{letter-spacing:.08em;font-weight:800}.floor{height:var(--floor-h);z-index:2;background:linear-gradient(to bottom, #d9ad74, var(--wood));position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 18px #00285a2e}.floor>svg.planks{width:100%;height:100%;display:block;position:absolute;inset:0}.baseboard{z-index:1;background:linear-gradient(#fff,#e8ecf1);border-top:3px solid #f6f8fb;height:18px;position:absolute;top:0;left:0;right:0;box-shadow:0 3px 4px #0000002e}.toy{z-index:3;filter:drop-shadow(0 6px 4px #3c1e0059);position:absolute;bottom:8px}.toy svg{width:100%;height:auto;display:block}.army{width:clamp(150px,22vw,240px);animation:2.2s cubic-bezier(.2,.7,.3,1) .3s both march-in;left:4%}.army svg{animation:.45s ease-in-out .3s 6 alternate bob}@keyframes march-in{0%{transform:translate(-120vw)}to{transform:translate(0)}}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-4px)}}.ball{width:calc(var(--floor-h) + 8px);animation:2.6s cubic-bezier(.15,.6,.3,1) .2s both roll-in;bottom:6px;right:7%}.ball svg{animation:2.6s cubic-bezier(.15,.6,.3,1) .2s both spin}@keyframes roll-in{0%{transform:translate(120vw)}to{transform:translate(0)}}@keyframes spin{0%{transform:rotate(900deg)}to{transform:rotate(0)}}@media (width<=600px){.army{width:150px;left:2%}.ball{right:3%}}@media (prefers-reduced-motion:reduce){.cloud{animation:none;transform:translate(20vw)}.army,.army svg,.ball,.ball svg,.highlight{animation:none}}
