:root{--cream:#fff9f1;--surface:#fff;--ink:#2d2a26;--ink-secondary:#6f6a63;--ink-tertiary:#a8a29a;--green:#42cc8c;--green-deep:#1f8a5d;--green-50:#e8f8f0;--rose-50:#ffedf1;--amber-50:#fff4d6;--lilac-50:#f6e9fa;--peach-50:#ffefdd;--night-deep:#181210;--night-warm:#2a1e14;--ember-glow:#ffb44d;--night-gradient:linear-gradient(to bottom, var(--night-deep), var(--night-warm));--sp-xs:4px;--sp-sm:8px;--sp-md:12px;--sp-lg:16px;--sp-xl:24px;--sp-xxl:32px;--sp-xxxl:48px;--radius-sm:12px;--radius-md:20px;--radius-lg:28px;--radius-pill:999px;--shadow-soft:0 8px 24px #2d2a2614;--shadow-soft-small:0 4px 12px #2d2a2614;--font:"Urbanist", -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}body{font-family:var(--font);background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}.text-display{letter-spacing:-.5px;color:var(--ink);font-size:32px;font-weight:800;line-height:1.15}.text-title{color:var(--ink);font-size:24px;font-weight:700;line-height:1.2}.text-heading{color:var(--ink);font-size:18px;font-weight:700;line-height:1.3}.text-body{color:var(--ink);font-size:16px;font-weight:400;line-height:1.5}.text-body-strong{color:var(--ink);font-size:16px;font-weight:600;line-height:1.5}.text-caption{color:var(--ink-secondary);font-size:13px;font-weight:500;line-height:1.4}.text-overline{letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-secondary);font-size:12px;font-weight:600;line-height:1.3}.text-stat{color:var(--green-deep);font-size:44px;font-weight:900;line-height:1.1}.btn{justify-content:center;align-items:center;gap:var(--sp-sm);height:56px;padding:0 var(--sp-xl);border-radius:var(--radius-pill);font-family:var(--font);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;font-size:17px;font-weight:600;text-decoration:none;transition:transform .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-filled{background:var(--green);color:#fff;box-shadow:var(--shadow-soft-small)}.btn-secondary{background:var(--green-50);color:var(--green-deep)}.btn-text{color:var(--green-deep);background:0 0}.btn-on-dark{color:#ffffffe6;background:#ffffff1f}.card{background:var(--surface);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:var(--sp-lg)}.landing{max-width:960px;padding:var(--sp-lg) var(--sp-xl) var(--sp-xxxl);margin:0 auto}.landing-header{padding:var(--sp-sm) 0;justify-content:space-between;align-items:center;display:flex}.wordmark{font:600 22px var(--font-fun);color:var(--green-deep)}.wordmark b{color:var(--ember-glow);font-weight:600}.hero{text-align:center;padding:var(--sp-xxl) 0;align-items:center;gap:var(--sp-lg);flex-direction:column;display:flex}.hero-cake{justify-content:center;min-height:220px;display:flex}.hero-title{font-family:var(--font-fun);margin:0;font-weight:600}.landing h2.text-title,.landing h3.text-heading{font-family:var(--font-fun);font-weight:600}.btn-fun{font-family:var(--font-fun);box-shadow:0 6px 0 var(--green-deep);transition:transform .2s var(--ease-spring), box-shadow .2s;font-size:19px;font-weight:600}.btn-fun:active{box-shadow:0 2px 0 var(--green-deep);transform:translateY(4px)}.step-art{width:96px;height:96px}.how-art{width:120px;height:120px;margin:0 auto;display:block}.hero-sub{max-width:480px;color:var(--ink-secondary);margin:0}.hero-actions{gap:var(--sp-md);flex-wrap:wrap;justify-content:center;display:flex}.impact{margin:var(--sp-lg) 0}.impact-card{background:var(--night-gradient);color:#fff4e6;text-align:left;border-radius:28px;padding:20px 0 20px 20px}.impact-top{justify-content:space-between;align-items:center;padding-right:14px;display:flex}.impact-overline{letter-spacing:.08em;text-transform:uppercase;color:var(--ember-glow);font-size:12px;font-weight:800}.impact-info{color:#cdbba6;width:30px;height:30px;font:700 15px var(--font-fun);cursor:pointer;background:#fff4e61f;border:0;border-radius:50%}.impact-lead{color:#cdbba6;margin:8px 20px 4px 0;font-size:15px;line-height:1.4}.impact-total{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0;display:flex}.impact-number{font:700 44px/1.05 var(--font-fun);color:#fff4e6;font-variant-numeric:tabular-nums}.impact-unit{color:#cdbba6;font-size:15px;font-weight:700}.impact-how{color:#cdbba6;margin:10px 20px 0 0;font-size:14px;line-height:1.5}.impact-how a{color:var(--ember-glow)}.impact-equiv-title{margin-top:16px}.impact-tiles{scroll-snap-type:x mandatory;scrollbar-width:none;gap:10px;margin:10px 0 0;padding:0 20px 4px 0;list-style:none;display:flex;overflow-x:auto}.impact-tiles::-webkit-scrollbar{display:none}.impact-tile{box-sizing:border-box;scroll-snap-align:start;background:#fff4e61a;border-radius:20px;flex-direction:column;flex:none;gap:10px;width:172px;min-height:200px;padding:12px 14px 14px;display:flex}.impact-icon{width:64px;height:64px}.impact-text{color:#fff4e6;flex-direction:column;font-size:14.5px;font-weight:600;line-height:1.3;display:flex}.impact-before{color:#cdbba6}.impact-figure{font:600 30px/1.1 var(--font-fun);color:var(--ember-glow);font-variant-numeric:tabular-nums}.impact-eco{text-align:center;align-items:center;gap:var(--sp-sm);padding:var(--sp-lg) 0;flex-direction:column;display:flex}.impact-planet{height:110px;margin-top:var(--sp-sm)}.steps{padding:var(--sp-xl) 0;text-align:center}.steps-grid{gap:var(--sp-lg);margin-top:var(--sp-lg);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.step-card{text-align:center;align-items:center;gap:var(--sp-sm);flex-direction:column;display:flex}.step-card h3,.step-card p{margin:0}.step-rose{background:var(--rose-50)}.step-amber{background:var(--amber-50)}.step-lilac{background:var(--lilac-50)}.how-we-calculate{max-width:640px;padding:var(--sp-xl) 0;text-align:center;scroll-margin-top:var(--sp-lg);margin:0 auto}.how-we-calculate p{color:var(--ink-secondary)}.faq{max-width:640px;padding:var(--sp-xl) 0;scroll-margin-top:var(--sp-lg);margin:0 auto}.faq>h2{text-align:center}.faq-entry h3{margin:var(--sp-lg) 0 var(--sp-xs)}.faq-entry p{color:var(--ink-secondary);margin:0}.get-app{text-align:center;align-items:center;gap:var(--sp-lg);padding:var(--sp-xxl) 0;flex-direction:column;display:flex}.get-app-text{max-width:420px;color:var(--ink-secondary);margin:0}.landing-footer{align-items:center;gap:var(--sp-xs);text-align:center;padding-top:var(--sp-xxl);flex-direction:column;display:flex}.footer-contact{color:var(--green-deep);text-decoration:none}.footer-contact:hover{text-decoration:underline}.footer-languages{gap:var(--sp-md);display:flex}.footer-languages [aria-current=page]{color:var(--ink-secondary);font-weight:700}.share-intro{background:var(--cream);min-height:100dvh;padding:18vh var(--sp-xl) 40px;text-align:center;flex-direction:column;align-items:center;display:flex}.share-hero{height:140px}.share-title{margin:var(--sp-xl) 0 0}.share-msg{margin:var(--sp-xl) 0 0;max-width:480px}.share-spacer{flex:1}.wish-box{align-items:stretch;gap:var(--sp-sm);width:min(90vw,420px);margin-top:var(--sp-xl);text-align:left;flex-direction:column;display:flex}.wish-label{color:var(--ink-secondary)}.wish-input{font-family:var(--font);color:var(--ink);background:var(--surface);border:1px solid var(--green-50);border-radius:var(--radius-md);box-shadow:var(--shadow-soft-small);padding:var(--sp-md) var(--sp-lg);resize:none;outline:none;font-size:16px}.wish-input:focus{border-color:var(--green)}.wish-input::placeholder,.wish-privacy{color:var(--ink-tertiary)}.share-cta{min-width:60vw;max-width:320px}.blow-screen{background:var(--night-gradient);min-height:100dvh;padding:var(--sp-xxl) var(--sp-xl);text-align:center;flex-direction:column;justify-content:space-between;align-items:center;display:flex}.blow-hint{color:#ffffffd9;margin:0;font-size:16px;font-weight:600}.blow-mic-note{color:#ffffff8c;margin:var(--sp-xs) 0 0;font-size:13px}.blow-candle{padding:var(--sp-xxl) 0;filter:drop-shadow(0 0 40px #ffb44d40);flex:1;justify-content:center;align-items:flex-end;display:flex}.blow-greeting{color:var(--ember-glow);margin:0;font-size:18px;font-weight:700}.congrats{background:var(--cream);min-height:100dvh;padding:var(--sp-xxl) var(--sp-xl);text-align:center;align-items:center;gap:var(--sp-lg);flex-direction:column;display:flex}.congrats-art{height:140px}.congrats-text{max-width:460px;color:var(--ink-secondary);margin:0}.congrats-co2{color:var(--green-deep)}.congrats-impact{width:100%;max-width:520px}.congrats-getapp{align-items:center;gap:var(--sp-md);padding:var(--sp-lg) 0;flex-direction:column;display:flex}.congrats-getapp h2,.congrats-getapp p{margin:0}.consent-banner{left:var(--sp-md);right:var(--sp-md);bottom:calc(var(--sp-md) + env(safe-area-inset-bottom));z-index:10;justify-content:space-between;align-items:center;gap:var(--sp-sm);max-width:560px;padding:var(--sp-md);background:var(--surface,#fff);border-radius:16px;flex-wrap:wrap;margin:0 auto;display:flex;position:fixed;box-shadow:0 6px 24px #0000001f}.consent-text{flex:240px;margin:0}.consent-actions{gap:var(--sp-sm);display:flex}.privacy{max-width:680px;padding:var(--sp-xl) var(--sp-md) var(--sp-xxl);margin:0 auto}.privacy h2{margin-top:var(--sp-xl)}.privacy p{color:var(--ink-secondary)}.privacy-back{color:var(--green-deep);text-decoration:none}:root{--font-fun:"Fredoka", var(--font);--font-hand:"Caveat", "Bradley Hand", cursive;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.2, 1.18, .32, 1);--dot-pop:cubic-bezier(.2, 1.35, .32, 1);--ease-soft:cubic-bezier(.22, .72, .18, 1)}.reveal{background:radial-gradient(circle at 50% 38%,#fff4e4,#f4dfc5);flex-direction:column;min-height:100dvh;display:flex;overflow:hidden}.reveal-premium{color:#fff3d6;background:radial-gradient(circle at 50% 40%,#4a2f63,#1f1430 75%)}.reveal-stage{flex:1;min-height:440px;position:relative}.envelope{perspective:900px;position:absolute;inset:0}.envelope.hop{animation:env-hop 1.8s var(--ease-soft) infinite;cursor:pointer}.envelope:focus-visible{outline:none}.envelope:focus-visible .env-seal{outline:3px solid var(--green);outline-offset:3px}@keyframes env-hop{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-8px)rotate(-1.5deg)}}.env-back,.env-pocket,.env-flap{width:260px;transition:transform .62s var(--ease-out), opacity .42s;margin-left:-130px;position:absolute;left:50%}.env-back{z-index:1;background:#e3bf92;border-radius:12px;height:170px;bottom:20%}.env-pocket{clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%);z-index:3;background:#f1d5af;border-radius:12px;height:170px;bottom:20%}.env-flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;z-index:4;background:#e8c596;height:112px;bottom:calc(20% + 58px)}.envelope.opened .env-flap{z-index:0;transition:transform .62s var(--ease-out), opacity .42s, z-index 0s linear .2s;transform:rotateX(180deg)}.env-seal{color:#fff;z-index:5;width:40px;height:40px;transition:transform .3s var(--ease-out), opacity .3s;background:#e0457a;border-radius:50%;place-items:center;margin-left:-20px;font-size:18px;display:grid;position:absolute;bottom:calc(20% + 44px);left:50%;box-shadow:0 3px #b02e5e}.envelope.opened .env-seal{opacity:0;transform:scale(.4)}.envelope.drop .env-back,.envelope.drop .env-pocket{opacity:0;transform:translateY(140%)}.envelope.drop .env-flap{opacity:0;transform:translateY(260%)rotateX(180deg)}.envelope.drop .env-back,.envelope.drop .env-pocket,.envelope.drop .env-flap,.envelope.drop .env-seal{pointer-events:none}.envelope.premium .env-back{background:#3a2748}.envelope.premium .env-pocket{background:linear-gradient(160deg,#5a3e72,#3f2a52)}.envelope.premium .env-flap{background:linear-gradient(#634680,#4e3766)}.envelope.premium.opened .env-flap{background:linear-gradient(110deg,#c9a514,#fff3a6 30%,#eede1f 45%,#b8860b 65%,#fff3a6 85%)}.envelope.premium .env-seal{color:#6b4a10;background:radial-gradient(circle at 35% 30%,#fff3a6,#eede1f 45%,#b8860b);box-shadow:0 3px #8a6a0c,0 0 18px #ffd678cc}.envelope.premium.opened .env-seal{transform:scale(1.7)}.rays{opacity:0;background:repeating-conic-gradient(from 0deg, #ffd67873 0 6deg, #ffd67800 6deg 18deg);width:600px;height:600px;transition:opacity .6s, transform 1s var(--ease-out), bottom .9s var(--ease-out);pointer-events:none;border-radius:50%;margin:0 0 -300px -300px;position:absolute;bottom:calc(20% + 150px);left:50%;transform:scale(.2);-webkit-mask:radial-gradient(circle,#000 12%,#0000 66%);mask:radial-gradient(circle,#000 12%,#0000 66%)}.rays.on{opacity:1;animation:16s linear infinite rays-spin;transform:scale(1)}.rays.centre{bottom:50%}@keyframes rays-spin{to{rotate:360deg}}.env-card{z-index:2;transform-origin:50% 100%;width:200px;transition:transform .76s var(--ease-out), bottom .76s var(--ease-out);perspective:1400px;margin-left:-100px;position:absolute;bottom:calc(20% + 8px);left:50%;transform:scale(.55)}.env-card.rising{transform:translateY(-176px)scale(.55)}.env-card.centred{z-index:6;cursor:pointer;bottom:calc(50% - 140px);transform:scale(1)}.env-card.glow .flip-front,.env-card.glow .flip-back{border-radius:14px;box-shadow:0 0 28px #ffc85a99}.flipper{aspect-ratio:5/7;width:100%;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;transition:transform .76s var(--ease-spring);position:relative}.flipper.inside{transform:rotateY(180deg)}.flip-front,.flip-back{backface-visibility:hidden;transition:visibility 0s linear .17s;position:absolute;inset:0}.flip-back,.flipper.inside .flip-front{visibility:hidden}.flipper.inside .flip-back{visibility:visible}.flip-back{transform:rotateY(180deg)}.card-face{border-radius:14px;position:absolute;inset:0;overflow:hidden;box-shadow:0 6px 20px #3c281433,inset 0 0 0 1px #0000000d;container-type:inline-size}.card-art{width:100%;height:100%;position:absolute;inset:0}.card-title{font-family:var(--font-fun);text-align:center;overflow-wrap:anywhere;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-weight:700;line-height:1.02;display:-webkit-box;position:absolute;overflow:hidden}.card-foil{background:linear-gradient(107.2deg,#c9a514 0%,#fff3a6 20%,#eede1f 35%,#b8860b 55%,#fff3a6 70%,#c9a514 100%) 0 0/250% 100% no-repeat,#c9a514;color:#0000;-webkit-background-clip:text;background-clip:text;animation:2.4s linear infinite foil}.card-foil.still{animation:none}@keyframes foil{0%{background-position:-66.667% 0}to{background-position:100% 0}}.card-sheen{animation:sheen 1.2s var(--ease-out) 1.4s forwards;pointer-events:none;background:linear-gradient(105deg,#0000 38%,#fffc 50%,#0000 62%) 130% 0/260% 100%;border-radius:14px;position:absolute;inset:0}@keyframes sheen{to{background-position:-130% 0}}.card-inside{color:var(--ink);background:radial-gradient(circle at 12% 8%,#ffe3ea 0 2cqw,#0000 2.2cqw),radial-gradient(circle at 88% 6%,#e8f8f0 0 3cqw,#0000 3.2cqw),#fffdf8}.inside-text{text-align:center;position:absolute;top:9cqw;left:8cqw;right:8cqw}.inside-text.solo{top:50%;transform:translateY(-50%)}.inside-msg{font-family:var(--font-hand);overflow-wrap:anywhere;font-size:11cqw;font-weight:700;line-height:1.05}.solo .inside-msg{font-size:14cqw}.inside-from{font-family:var(--font-hand);color:#c23b62;margin-top:2cqw;font-size:9cqw;font-weight:600}.inside-cake{pointer-events:none;justify-content:center;display:flex;position:absolute;bottom:5cqw;left:0;right:0}.card-photo{box-sizing:border-box;background:#fff;border-radius:3cqw;height:92cqw;padding:1.6cqw;position:absolute;top:6cqw;left:6cqw;right:6cqw;overflow:hidden;box-shadow:0 1cqw 3cqw #00000026}.card-photo img{object-fit:cover;border-radius:2cqw;width:100%;height:100%;display:block}.card-photo img.developing{animation:2.6s cubic-bezier(.65,0,.35,1) both develop}@keyframes develop{0%{filter:sepia()brightness(1.9)contrast(.35)}45%{filter:sepia()brightness(1.2)contrast(.8)}to{filter:none}}@media (prefers-reduced-motion:reduce){.card-photo img.developing{animation:none}}.card-photo.missing{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A8A29A' stroke-width='1.6' stroke-linecap='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='3'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E") 50%/18cqw no-repeat,#f6eee4}.report-photo{color:inherit;opacity:.75}.inside-song{background:var(--amber-50,#fff4d6);max-width:80%;font:700 4.5cqw/1.2 var(--font);color:var(--ink);white-space:nowrap;text-overflow:ellipsis;border-radius:99px;padding:1.2cqw 3.5cqw;position:absolute;bottom:3.5cqw;left:50%;overflow:hidden;transform:translate(-50%)}.card-inside:has(.inside-song) .inside-cake{bottom:12cqw}.song-chip{background:var(--amber-50,#fff4d6);color:var(--ink);font:700 15px var(--font);cursor:pointer;border:0;border-radius:99px;align-items:center;gap:8px;padding:8px 14px;display:inline-flex}.song-chip.playing{background:var(--ink);color:var(--cream)}.song-bars{align-items:flex-end;gap:2px;height:14px;display:inline-flex}.song-bars i{background:var(--ember-glow);transform-origin:bottom;border-radius:2px;width:3px;height:100%;animation:.9s ease-in-out infinite song-bar}.song-bars i:nth-child(2){animation-delay:-300ms}.song-bars i:nth-child(3){animation-delay:-600ms}@keyframes song-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.song-bars i{animation:none}}.reveal-foot{padding:0 var(--sp-xl) calc(var(--sp-xxl) + env(safe-area-inset-bottom));align-items:center;gap:var(--sp-md);text-align:center;flex-direction:column;justify-content:flex-end;min-height:150px;display:flex}.reveal-title{font-family:var(--font-fun);text-wrap:balance;margin:0;font-size:30px;font-weight:600;line-height:1.1}.reveal-sub{margin:0}.reveal-premium .reveal-sub,.reveal-premium .wish-label,.reveal-premium .wish-privacy{color:#d8c6ee}.share-intro-cake{margin-top:var(--sp-xl)}.blow-flames{font-family:var(--font-fun);color:#cdbba6;align-items:center;gap:6px;font-weight:600;display:flex}.blow-flame-dot{background:var(--ember-glow);width:9px;height:14px;transition:opacity .2s, transform .3s var(--dot-pop);border-radius:50%/62% 62% 38% 38%}.blow-flame-dot.off{opacity:.2;transform:scale(.7)}.blow-flames-left{margin-left:4px}.blow-foot{align-items:center;gap:var(--sp-xs);flex-direction:column;display:flex}.blow-now{font-family:var(--font-fun);color:#fff4e6;margin:0;font-size:32px;font-weight:600}.blow-tap-hint{margin:var(--sp-sm) 0 0;border-radius:var(--radius-pill);background:var(--ember-glow);color:#3a2410;animation:pop-in .36s var(--dot-pop);padding:10px 16px;font-size:14px;font-weight:800}@keyframes pop-in{0%{opacity:0;transform:scale(.7)}}.party-title{font-family:var(--font-fun);text-wrap:balance;margin:0;font-size:38px;font-weight:700;line-height:1.05}.party-title span{animation:letter .56s var(--dot-pop) both;display:inline-block}.party-title span:nth-child(3n+1){color:#e0457a}.party-title span:nth-child(3n+2){color:var(--green-deep)}.party-title span:nth-child(3n){color:#d98a1e}@keyframes letter{0%{opacity:0;transform:translateY(24px)scale(.4)rotate(-12deg)}to{opacity:1;transform:none}}.congrats-cake{margin:var(--sp-sm) 0}.co2-card{text-align:left;background:var(--green-50);border-radius:var(--radius-md);align-items:center;gap:12px;width:100%;max-width:460px;padding:12px 16px;display:flex}.co2-leaf{background:var(--green);color:#fff;border-radius:14px;flex:none;place-items:center;width:42px;height:42px;display:grid}.co2-line{font-family:var(--font-fun);color:var(--green-deep);font-size:20px;font-weight:600}@media (prefers-reduced-motion:reduce){.envelope.hop,.rays.on,.card-foil,.card-sheen,.party-title span,.blow-tap-hint{animation:none}.env-card,.flipper,.env-back,.env-pocket,.env-flap,.rays{transition:none}}.card-lab{flex-wrap:wrap;gap:24px;padding:24px;display:flex}.card-lab figure{font:600 13px var(--font-body,sans-serif);gap:6px;margin:0;display:grid}.card-lab-card,.card-lab-single{position:relative}.card-lab-single .card-face{box-shadow:none;border-radius:0}
