:root{--paper:#fff2f7;--court:#ff7aa8;--court-deep:#c2185b;--lime:#ffdce8;--coral:#ff5e95;--coral-deep:#d63a72;--ink:#7a2347;--tan:#ffc2db;--card:#fffafd}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Nunito,sans-serif;color:var(--ink);background:radial-gradient(circle at 15% 8%,#fff2f8 0%,transparent 42%),radial-gradient(circle at 88% 14%,#ffe0ee 0%,transparent 40%),var(--paper);background-attachment:fixed;overflow-x:hidden;position:relative;line-height:1.6}.wrap{position:relative;z-index:2;max-width:640px;margin:0 auto;padding:0 22px}.decor{position:fixed;z-index:1;pointer-events:none;opacity:.5;animation:bob 8s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-18px) rotate(8deg)}}@media (prefers-reduced-motion:reduce){.decor{animation:none}*{animation-duration:1ms!important}}header{text-align:center;padding:56px 0 30px}.kicker{font-weight:700;color:var(--coral-deep);font-size:1rem;letter-spacing:.02em;margin-bottom:22px}.pup-wrap{position:relative;width:188px;height:188px;margin:38px auto 8px}.pup-photo{width:188px;height:188px;border-radius:50%;object-fit:cover;border:5px solid #fff;box-shadow:0 0 0 3px var(--court),0 12px 20px #b3205c47;display:block}.pup-hat{position:absolute;top:-14px;left:50%;transform:translate(-74%) rotate(-20deg);width:56px;height:auto;filter:drop-shadow(0 4px 5px rgba(0,0,0,.18))}h1{font-family:Fredoka,sans-serif;font-weight:700;color:var(--court-deep);font-size:clamp(2.5rem,10vw,4rem);line-height:1;letter-spacing:-.01em}h1 .paw-ty{color:var(--coral)}.lede{font-size:1.2rem;max-width:30ch;margin:14px auto 0;color:#9a5b74}.reveal{opacity:0;transform:translateY(18px);animation:up .8s forwards}.reveal.d1{animation-delay:.15s}.reveal.d2{animation-delay:.3s}.reveal.d3{animation-delay:.45s}@keyframes up{to{opacity:1;transform:translateY(0)}}.panel{background:var(--card);border:2px solid var(--court);border-radius:26px;padding:30px 26px;margin:26px 0;box-shadow:0 12px 0 -2px var(--lime)}.panel h2{font-family:Fredoka,sans-serif;font-weight:600;color:var(--court-deep);font-size:1.6rem;text-align:center;margin-bottom:18px}.row{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1.5px dashed #f2c9db}.row:last-child{border-bottom:0}.row .pawico{flex:0 0 30px;margin-top:2px}.row .rt{flex:1}.row .rlabel{font-family:Fredoka,sans-serif;font-weight:500;color:var(--coral-deep);font-size:1.05rem}.row .rval{font-size:1.15rem;font-weight:700;color:var(--ink)}.row .rval a{color:var(--court);text-decoration:underline;text-underline-offset:2px}.row .rsub{font-size:1rem;color:#a06b81;font-weight:600}.row .rsub a{color:var(--court-deep);text-decoration:underline;font-weight:800}.count-wrap{text-align:center;margin:30px 0 8px}.count-wrap h2{font-family:Fredoka,sans-serif;font-weight:500;color:var(--court-deep);font-size:1.3rem;margin-bottom:14px}.countdown{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.unit{background:var(--court);color:#fff;border-radius:18px;padding:14px 8px;min-width:74px;box-shadow:0 6px 0 -1px var(--court-deep)}.unit .n{font-family:Fredoka,sans-serif;font-weight:700;font-size:2rem;line-height:1}.unit .u{font-size:.8rem;font-weight:700;text-transform:lowercase;opacity:.9;margin-top:5px}.rsvp{text-align:center;margin:34px 0 10px}.rsvp h2{font-family:Fredoka,sans-serif;font-weight:600;color:var(--court-deep);font-size:1.7rem;margin-bottom:16px}.field{font-family:Nunito,sans-serif;font-size:1.1rem;font-weight:600;text-align:center;padding:13px 20px;border-radius:40px;border:2px solid var(--court);background:#fff;color:var(--ink);width:min(340px,92%);outline:none;margin-bottom:14px;transition:.2s}.field::placeholder{color:#d98bae;font-weight:600}.field:focus{border-color:var(--coral);box-shadow:0 0 0 4px #ff7a4d2e}.dogcheck{display:inline-flex;gap:9px;align-items:center;justify-content:center;font-size:1.08rem;font-weight:700;color:#9a5b74;cursor:pointer;margin-bottom:18px;width:100%}.dogcheck input{width:20px;height:20px;accent-color:var(--coral);cursor:pointer}.choice{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn{font-family:Fredoka,sans-serif;font-weight:600;font-size:1.05rem;color:#fff;background:var(--coral);padding:15px 34px;border:none;border-radius:40px;cursor:pointer;box-shadow:0 6px 0 -1px var(--coral-deep);transition:transform .12s,box-shadow .12s}.btn:hover{transform:translateY(-2px);box-shadow:0 8px 0 -1px var(--coral-deep)}.btn:active{transform:translateY(3px);box-shadow:0 3px 0 -1px var(--coral-deep)}.btn.ghost{background:#fff;color:var(--court-deep);box-shadow:0 6px 0 -1px var(--lime)}.note{margin-top:16px;font-size:1.05rem;font-weight:700;color:var(--coral-deep);min-height:1.4em}.done{display:none;background:var(--card);border:2px solid var(--court);border-radius:26px;padding:34px 26px;box-shadow:0 12px 0 -2px var(--lime)}.done.show{display:block;animation:up .6s forwards}.done .big{font-size:2.6rem}.done h3{font-family:Fredoka,sans-serif;font-weight:700;color:var(--court-deep);font-size:2rem;margin:6px 0 8px}.done p{font-size:1.2rem;font-weight:600;color:#9a5b74;max-width:34ch;margin:0 auto}footer{text-align:center;padding:26px 0 64px;color:var(--court-deep);font-family:Fredoka,sans-serif;font-weight:500;font-size:1.2rem}footer .paws{font-size:1.3rem;margin-bottom:4px}@media (max-width:480px){header{padding:40px 0 20px}}.reclub-or{display:flex;align-items:center;gap:12px;color:#a06b81;font-weight:700;max-width:280px;margin:22px auto 14px}.reclub-or:before,.reclub-or:after{content:"";flex:1;height:1.5px;background:#f2c9db}.btn.reclub{display:inline-block;text-decoration:none;background:#fff;color:var(--court-deep);box-shadow:0 6px 0 -1px var(--lime)}
