.page{flex-direction:column;min-height:100dvh;display:flex}.hero{padding:calc(18px + var(--safe-top)) calc(20px + var(--safe-right)) 76px calc(20px + var(--safe-left));background:linear-gradient(165deg, var(--green) 0%, var(--green-night) 100%);color:#fff;border-radius:0 0 36px 36px;position:relative;overflow:hidden}.hero:before,.hero:after{content:"";background:var(--leaf);opacity:.28;pointer-events:none;border-radius:50%;position:absolute}.hero:before{width:220px;height:220px;top:-70px;right:-60px}.hero:after{opacity:.2;width:130px;height:130px;bottom:-50px;left:-40px}.hero-inner{gap:10px;width:min(100%,520px);margin:0 auto;display:grid;position:relative}.hero-title{animation:rise .5s var(--ease-out) both;font-size:clamp(28px,8.4vw,38px)}.hero-sub{color:#d8efc5;max-width:34ch;font-size:16px;font-weight:600}.crowd-pill{background:var(--orange);color:#2b1700;border-radius:999px;justify-self:start;margin-top:4px;padding:7px 14px;font-size:14px;font-weight:800}.sheet{width:min(100%,552px);padding:0 calc(16px + var(--safe-right)) 0 calc(16px + var(--safe-left));flex:1;margin:-52px auto 0}.view{gap:14px;display:grid}.view>:nth-child(2){animation-delay:60ms}.view>:nth-child(3){animation-delay:.12s}.label{color:var(--ink-soft);letter-spacing:.02em;margin-bottom:8px;font-size:14px;font-weight:800;display:block}.label-spaced{margin-top:22px}.field-error,.form-error{color:var(--danger);font-size:14px;font-weight:700}.field-error{margin-top:6px}.field-error:empty{display:none}.form-error{background:var(--danger-soft);border-radius:14px;padding:10px 14px}.form-notice{background:var(--orange-soft);color:#5a3300;border-radius:16px;padding:12px 16px;font-weight:700}.pledge-form{gap:14px;display:grid}.presets{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.preset{border:2px solid var(--line);text-align:left;min-height:92px;transition:transform .15s var(--ease-spring), background-color .15s, border-color .15s;background:#fff;border-radius:20px;align-content:start;gap:2px;padding:12px 14px;display:grid}.preset:active{transform:scale(.97)}.preset-emoji{font-size:22px;line-height:1}.preset-title{font-family:var(--font-display);white-space:nowrap;font-size:17px;font-weight:800;line-height:1.1}.preset-note{color:var(--ink-soft);font-size:13px;font-weight:700;line-height:1.25}.preset[aria-pressed=true]{border-color:var(--green);background:var(--green);color:#fff}.preset[aria-pressed=true] .preset-note{color:#d8efc5}.stepper{grid-template-columns:64px minmax(0,1fr) 64px;align-items:stretch;gap:10px;display:grid}.stepper-btn{border:2px solid var(--leaf);background:var(--leaf-soft);min-height:64px;color:var(--green-deep);font-family:var(--font-display);-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:transform .1s var(--ease-out), background-color .15s;border-radius:20px;font-size:34px;font-weight:800;line-height:1}.stepper-btn:active{background:var(--leaf);transform:scale(.94)}.stepper-field{border:2px solid var(--line);background:#fff;border-radius:20px;justify-content:center;align-items:baseline;gap:8px;padding:0 10px;display:flex}.stepper-field:focus-within{border-color:var(--green);box-shadow:0 0 0 4px #7dc2434d}.stepper-input{width:4ch;min-width:0;color:var(--ink);font-family:var(--font-display);text-align:right;font-variant-numeric:tabular-nums;background:0 0;border:0;padding:0;font-size:40px;font-weight:800;line-height:60px}.stepper-input:focus{outline:none}.stepper-unit{color:var(--ink-soft);font-size:16px;font-weight:800}@media (width<=389px){.stepper{grid-template-columns:48px minmax(0,1fr) 48px;gap:6px}.stepper-btn{border-radius:16px;font-size:30px}.stepper-field{flex-direction:column;justify-content:center;align-items:center;gap:0;padding:4px 6px 6px}.stepper-input{text-align:center;width:100%;line-height:48px}.stepper-unit{font-size:13px;line-height:1}}.preview{background:var(--card)}.preview-title{color:var(--green-deep);margin-bottom:12px;font-size:20px}.cta-bar{z-index:5;padding:18px 16px calc(14px + var(--safe-bottom));background:linear-gradient(to bottom, #fffbf200, var(--cream) 28%);gap:10px;margin:0 -16px;display:grid;position:sticky;bottom:0}.cta-cancel{min-height:48px;font-size:17px}.loading-card{color:var(--ink-soft);justify-items:center;gap:14px;padding:36px 20px;font-weight:700;display:grid}.spinner{border:5px solid var(--leaf-soft);border-top-color:var(--green);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}.thanks-card,.results-card{text-align:center;justify-items:center;gap:14px;display:grid}.frog-phone{background:radial-gradient(circle at 50% 55%, var(--leaf-soft) 0 58%, transparent 60%);border-radius:50%;width:190px;height:190px;margin:-64px 0 -6px}.frog-phone.frog-failed{display:none}.pledge-badge{background:var(--orange-soft);color:#5a3300;font-family:var(--font-display);overflow-wrap:anywhere;border-radius:999px;max-width:100%;padding:10px 20px;font-size:20px;font-weight:700}.pledge-badge strong{font-weight:800}.thanks-note{color:var(--ink-soft);font-weight:700}.thanks-card .impact-grid,.results-card .impact-grid{text-align:left;width:100%}.crowd-box{gap:8px;display:grid}.crowd-kicker,.results-kicker{color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;font-size:14px;font-weight:800}.crowd-row,.results-row{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.crowd-total{color:var(--green);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:56px;font-weight:800;line-height:1}.crowd-unit,.crowd-meta,.crowd-goal{color:var(--ink-soft);font-weight:800}.crowd-unit{font-family:var(--font-display);font-size:22px}.results-row{justify-content:center}.results-total{color:var(--green);font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:72px;font-weight:800;line-height:.95}.results-unit{font-family:var(--font-display);color:var(--green-deep);font-size:24px;font-weight:800}.results-people,.results-mine{color:var(--ink-soft);font-weight:700}.results-mine{background:var(--orange-soft);color:#5a3300;border-radius:16px;padding:12px 16px}.disclaimer{color:#7a8a7f;font-size:12px;line-height:1.4}.foot{padding:26px 20px calc(26px + var(--safe-bottom));color:#7a8a7f;text-align:center;font-size:13px;font-weight:700}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=640px){.hero{border-radius:0 0 48px 48px}}
