@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--cream:#fff9dc;--ink:#354127;--serif:'DM Serif Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#263823;color:var(--ink);font-family:var(--sans)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #e83f24;outline-offset:7px}button:disabled{cursor:wait}button{color:inherit}.garden{position:relative;isolation:isolate;min-height:780px;height:100svh;overflow:hidden}.garden-art{position:absolute;inset:-1%;z-index:-4;background:url('assets/garden-hero.png') 61% 54%/cover no-repeat;animation:breathe 22s ease-in-out infinite alternate}.garden:after{content:'';position:absolute;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(0deg,#172719e8 0%,#24351d55 12%,transparent 32%),linear-gradient(90deg,#fff3d42b,transparent 56%)}.sunlight{position:absolute;width:50vw;height:80vh;top:-20%;left:-20%;background:radial-gradient(ellipse,#fff9cc77,transparent 65%);filter:blur(25px);z-index:-1;pointer-events:none;animation:glow 8s ease-in-out infinite alternate}.site-header{position:relative;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:28px 4.5%}.wordmark{display:flex;gap:9px;align-items:center;font-family:var(--serif);font-size:31px;letter-spacing:-1px}.wordmark img{transform:rotate(-12deg)}.wordmark-star{font-size:22px;align-self:flex-start;color:#876728;margin-left:0}.motion-button{border:0;background:#fff9dcda;border-radius:50%;width:62px;height:62px;font-size:10px;line-height:1.5;box-shadow:0 2px 15px #5840240d}.garden-copy{position:relative;z-index:2;margin:clamp(20px,5vh,65px) 0 0 7%;width:52%;pointer-events:none}.garden-copy button{pointer-events:auto}.invitation{font-family:var(--serif);font-style:italic;font-size:24px;margin:0 0 19px 4px;transform:rotate(-4deg);transform-origin:left center;color:#57472a}h1{font-family:var(--serif);font-weight:400;font-size:clamp(65px,6.7vw,112px);line-height:1.02;letter-spacing:-.05em;margin:0;text-shadow:0 2px 30px #fff2d693}h1 em{font-weight:400;color:#a83824}.garden-motto{font-size:15px;letter-spacing:.01em;margin:25px 0 32px 5px;text-shadow:0 1px 12px #fff9dc,0 1px 4px #fff9dc}.wish-place{margin-left:16px}.wish-button{position:relative;border:1px solid #fff5d7;background:linear-gradient(135deg,#fff9d6,#eed6a2);border-radius:64% 42% 58% 44% / 48% 56% 48% 58%;padding:21px 35px;font-family:var(--serif);font-size:23px;color:#584020;box-shadow:0 7px 25px #643f2630,inset 0 1px 6px #fff8df;transform:rotate(-5deg);transition:transform .3s,box-shadow .3s}.wish-button:hover{transform:rotate(0deg) translateY(-4px);box-shadow:0 8px 35px #ffed9c99}.wish-button span{display:inline-block;font-size:30px;margin-right:10px;vertical-align:middle}.wish-message{font-family:var(--serif);font-style:italic;font-size:20px;max-width:320px;line-height:1.4;min-height:56px;margin-top:20px;color:#3d4228;text-shadow:0 0 9px #fff4d5,0 0 20px #fff4d5,0 1px 3px #fff4d5}.take-friend{position:absolute;right:12%;top:74%;z-index:3;font-family:var(--serif);font-style:italic;font-size:22px;border:0;border-bottom:1px solid #fff7d577;background:transparent;color:#fff9e9;text-shadow:0 2px 8px #233119,0 1px 4px #233119;padding:12px 5px;transform:rotate(-7deg);transition:transform .2s}.take-friend:hover{transform:rotate(-3deg) translateY(-3px)}.take-friend span{display:inline-block;margin-left:14px}.avatar-status{position:absolute;right:7%;top:82%;max-width:280px;color:var(--cream);font-size:12px;text-shadow:0 1px 4px #243823;z-index:3}.garden-footer{position:absolute;bottom:0;left:0;right:0;z-index:5;padding:25px 5% 23px;color:var(--cream);display:flex;justify-content:space-between;align-items:flex-end;gap:25px}.garden-footer nav{display:flex;gap:25px;align-items:center;flex-wrap:wrap}.garden-footer a{font-size:14px;padding:10px 0;border-bottom:1px solid #fff9dc66;transition:color .2s}.garden-footer a:hover{color:#ffda75}.small-print{display:flex;align-items:center;gap:12px;font-size:10px;color:#e2dfc5}.quiet-button{font-size:11px;background:none;border:0;color:inherit;padding:12px 0;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#fff9dc55}.flight-layer,.fireflies{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.flying-bug{position:absolute;width:34px;height:34px;opacity:0;will-change:transform;filter:drop-shadow(0 4px 4px #24382344)}.flying-bug svg{width:100%;height:100%}.wing{transform-origin:20px 20px;animation:wingbeat .16s infinite alternate}.firefly{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff8ca;box-shadow:0 0 8px 3px #fff1a1,0 0 26px 7px #f8db7855;animation:drift var(--duration) ease-in-out infinite alternate;animation-delay:var(--delay);opacity:0}.spark{position:absolute;color:#fff7ca;font-size:20px;text-shadow:0 0 15px #ffe97b;pointer-events:none;z-index:4}dialog{border:0;border-radius:48% 48% 20px 20px / 12% 12% 20px 20px;padding:50px 38px 30px;background:#fff7e4;color:#3c442a;max-width:440px;width:calc(100% - 36px);box-shadow:0 20px 100px #10201366;text-align:center}dialog::backdrop{background:#182b2577;backdrop-filter:blur(7px)}dialog h2{font-family:var(--serif);font-size:43px;font-weight:400;line-height:1.05;letter-spacing:-1px;margin:15px 0 20px}dialog p{font-size:14px;line-height:1.7}.dialog-fine{font-size:11px!important;color:#68715b}.close-dialog{position:absolute;right:22px;top:21px;font-size:28px;border:0;background:none}.mint{overflow-wrap:anywhere;font-size:12px}#launch-details a{display:block;margin:15px}.motion-paused .flying-bug{display:none}.motion-paused *{animation:none!important;transition:none!important}.motion-paused .firefly{opacity:.45}@keyframes wingbeat{to{transform:scaleX(.6)}}@keyframes breathe{to{transform:scale(1.025)}}@keyframes glow{to{opacity:.4;transform:translate(30px,20px)}}@keyframes drift{0%{opacity:.15;transform:translate(0,20px)}50%{opacity:.8}100%{opacity:.25;transform:translate(25px,-35px)}}
@media(min-width:1700px){.garden-copy{margin-top:8vh}.garden-art{background-position:center 52%}.take-friend{top:68%}}
@media(max-width:900px) and (min-width:601px){.garden-copy{margin-left:5%;width:65%}h1{font-size:78px}.garden-art{background-position:58% center}.take-friend{right:8%;top:73%}.garden-footer{align-items:flex-start}.small-print{flex-wrap:wrap;justify-content:flex-end;max-width:190px}}
@media(max-width:600px){.garden{min-height:880px;height:100svh}.garden-art{inset:0;background-size:auto 600px;background-position:68% bottom;background-repeat:no-repeat;background-color:#f9e7b9;animation:none}.garden:before{content:'';position:absolute;inset:0;z-index:-3;background:linear-gradient(180deg,#ffefd1 0%,#ffefd1 35%,#ffefd180 44%,transparent 56%);pointer-events:none}.garden:after{background:linear-gradient(0deg,#172719f5,#24351d44 21%,transparent 39%)}.site-header{padding:19px 6%}.wordmark{font-size:27px}.wordmark img{width:29px;height:32px}.motion-button{width:51px;height:51px;font-size:9px}.garden-copy{margin:24px 7% 0;width:90%}.invitation{font-size:19px;margin-bottom:18px}h1{font-size:clamp(49px,12.8vw,74px);line-height:1.04}.garden-motto{font-size:12px;margin:19px 0 23px}.wish-place{margin-left:0}.wish-button{font-size:19px;padding:14px 25px}.wish-button span{font-size:23px}.wish-message{font-size:17px;max-width:230px;min-height:48px;margin-top:16px}.take-friend{top:auto;bottom:163px;right:8%;font-size:20px}.avatar-status{top:auto;bottom:123px;font-size:10px;right:8%;max-width:230px}.garden-footer{padding:20px 7%;display:flex;flex-direction:column;align-items:center;gap:10px}.garden-footer nav{gap:24px;justify-content:center}.garden-footer a{font-size:13px;padding:8px 0}.small-print{font-size:9px;gap:9px}.quiet-button{font-size:10px;padding:8px 0}.firefly:nth-child(n+17){display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.firefly{opacity:.4}}

/* The headline is the tagline; the picture download sits at the right edge. */
.garden-copy h1{font-size:clamp(60px,5.7vw,95px);line-height:1.05;margin-bottom:32px}
.take-friend{right:4%;top:72%;max-width:290px;text-align:right;font-size:23px;line-height:1.35;padding:12px 16px;border:1px solid #fff5d744;border-radius:54% 46% 48% 52% / 45% 55% 45% 55%;background:#24351d77;backdrop-filter:blur(5px);transform:rotate(-4deg)}
.avatar-status{right:4%;top:84%}
@media(max-width:600px){.garden-copy h1{font-size:clamp(43px,11.5vw,63px);line-height:1.05;margin-bottom:25px}.take-friend{right:6%;top:auto;bottom:163px;max-width:225px;font-size:20px}.avatar-status{right:6%;top:auto;bottom:120px}}

/* Let the garden lead. A single small tagline, with little discoveries among the flowers. */
.garden-copy{position:static;margin:0;width:auto}
.garden-copy h1{position:absolute;left:7%;top:19%;margin:0;font-family:var(--serif);font-size:clamp(20px,2.1vw,32px);font-weight:400;line-height:1.3;letter-spacing:0;white-space:nowrap;text-shadow:0 1px 14px #fff5db}
.wish-place{position:absolute;left:7%;bottom:23%;margin:0}
.wish-button{font-size:21px;padding:16px 29px}
.wish-message{font-size:18px;max-width:280px}
.fairy-garden{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.garden-fairy{position:absolute;width:76px;height:76px;will-change:transform;filter:drop-shadow(0 0 9px #fff8c477)}
.garden-fairy img{width:100%;height:100%;object-fit:contain;animation:fairy-hover 1.6s ease-in-out infinite alternate}
.fairy-one{left:26%;top:47%;animation:fairy-wander-one 29s ease-in-out infinite}
.fairy-two{left:68%;top:77%;width:60px;height:60px;animation:fairy-wander-two 35s ease-in-out infinite}
.fairy-two img{transform:scaleX(-1);animation-name:fairy-hover-reverse}
.fairy-dust{position:absolute;top:68%;right:65%;display:flex;align-items:center;gap:9px;transform:rotate(-25deg);transform-origin:right}
.fairy-two .fairy-dust{right:auto;left:68%;transform:rotate(25deg)}
.fairy-dust i{width:3px;height:3px;flex:none;border-radius:50%;background:#fff9c8;box-shadow:0 0 7px 2px #ffe99e;animation:dust-glow 1.8s ease-in-out infinite alternate}
.fairy-dust i:nth-child(1){opacity:.15;animation-delay:-1.4s}.fairy-dust i:nth-child(2){opacity:.35;animation-delay:-1s}.fairy-dust i:nth-child(3){opacity:.6;animation-delay:-.6s}.fairy-dust i:nth-child(4){opacity:.9;animation-delay:-.2s}
@keyframes fairy-wander-one{0%,100%{left:26%;top:47%;transform:rotate(-8deg)}25%{left:44%;top:31%;transform:rotate(12deg)}50%{left:71%;top:61%;transform:rotate(-5deg)}75%{left:36%;top:73%;transform:rotate(10deg)}}
@keyframes fairy-wander-two{0%,100%{left:68%;top:77%;transform:rotate(9deg)}25%{left:48%;top:56%;transform:rotate(-12deg)}50%{left:13%;top:38%;transform:rotate(8deg)}75%{left:55%;top:26%;transform:rotate(-7deg)}}
@keyframes fairy-hover{to{transform:translateY(-5px) rotate(4deg)}}
@keyframes fairy-hover-reverse{to{transform:scaleX(-1) translateY(-5px) rotate(-4deg)}}
@keyframes dust-glow{to{opacity:.12;transform:translate(-5px,5px) scale(.4)}}
@media(max-width:600px){.garden-art{background-size:auto 760px}.garden:before{background:linear-gradient(180deg,#ffefd1 0%,#ffefd1 17%,#ffefd166 28%,transparent 43%)}.garden-copy h1{top:118px;left:6%;font-size:clamp(13px,3.8vw,22px);letter-spacing:0}.wish-place{left:6%;bottom:29%}.wish-button{font-size:18px;padding:12px 22px}.wish-message{font-size:15px;max-width:210px;min-height:44px;margin-top:13px}.garden-fairy{width:58px;height:58px}.fairy-two{width:48px;height:48px}}

@media(min-width:601px){.garden-copy h1{top:16%}}

/* Independent scenery stays visible when the garden background is cropped on a phone. */
.ufo-scene{position:absolute;left:5%;top:20%;width:52%;height:27%;z-index:0;pointer-events:none}
@media(max-width:600px){.ufo-scene{left:2%;top:19%;width:94%;height:34%}.garden-art{background-size:auto 650px}.garden:before{background:linear-gradient(180deg,#ffefd1 0%,#ffefd1 27%,#ffefd155 37%,transparent 47%)}}

/* Purpose-composed landscapes: the pyramid is built into the mountain, never overlaid. */
.garden-art{inset:0;background-image:url('assets/garden-clear-desktop.png');background-position:center;background-size:cover;animation:none}
@media(max-width:600px){.garden-art{background-image:url('assets/garden-clear-mobile.png');background-size:cover;background-position:center}.garden:before{display:none}.garden-copy h1{text-shadow:0 1px 12px #fff5d7}.wish-place{bottom:26%}}

@media(min-width:601px){.ufo-scene{top:12%;height:35%}}

/* Quiet, upright jellyfish-shaped visitors replace the fairies and their trails. */
.jellyfish-layer{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.sky-drone{position:absolute;width:46px;height:60px;opacity:.82;filter:drop-shadow(0 2px 2px #29332c33)}
.sky-drone img{width:100%;height:100%;object-fit:contain}
.drone-one{left:12%;top:38%;animation:drone-glide-one 37s linear infinite}
.drone-two{left:48%;top:14%;width:36px;height:48px;animation:drone-glide-two 43s linear infinite}
.hidden-sasquatch{position:absolute;left:38%;bottom:26%;width:52px;height:60px;object-fit:contain;z-index:1;pointer-events:none;opacity:.9;filter:drop-shadow(0 2px 1px #25351d88)}
@keyframes drone-glide-one{0%,100%{left:12%;top:38%}25%{left:24%;top:26%}50%{left:42%;top:34%}75%{left:28%;top:44%}}
@keyframes drone-glide-two{0%,100%{left:48%;top:14%}25%{left:34%;top:25%}50%{left:18%;top:20%}75%{left:44%;top:38%}}
@media(max-width:600px){.sky-drone{width:30px;height:44px}.drone-one{left:4%;top:23%;animation-name:drone-mobile-one}.drone-two{left:76%;top:20%;width:27px;height:38px;animation-name:drone-mobile-two}.hidden-sasquatch{left:8%;bottom:24%;width:37px;height:46px}}
@keyframes drone-mobile-one{0%,100%{left:4%;top:23%}25%{left:10%;top:33%}50%{left:38%;top:37%}75%{left:25%;top:27%}}
@keyframes drone-mobile-two{0%,100%{left:76%;top:20%}25%{left:55%;top:28%}50%{left:42%;top:20%}75%{left:68%;top:30%}}
