:root{
  --ink:#3f5873;
  --ink-2:#58718a;
  --blue:#dcecff;
  --blue-deep:#7195b8;
  --blue-line:#abc7df;
  --green:#a7b89a;
  --paper:#fffefa;
  --cream:#fffdf8;
  --brown:#bd8769;
  --shadow:0 12px 34px rgba(63,88,115,.08);
  --script:"Segoe Script","Snell Roundhand","URW Chancery L","Apple Chancery",cursive;
  --serif:Georgia,"Times New Roman",serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;min-height:100vh;color:var(--ink);font-family:var(--serif);overflow-x:hidden;
  background:
    radial-gradient(ellipse at 8% 18%,rgba(213,233,251,.35),transparent 18rem),
    radial-gradient(ellipse at 95% 45%,rgba(221,236,250,.35),transparent 20rem),
    radial-gradient(ellipse at 14% 80%,rgba(231,239,222,.22),transparent 19rem),
    var(--paper);
}
.paper-texture{position:fixed;inset:0;z-index:-2;opacity:.13;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.19'/%3E%3C/svg%3E")}
button,input{font:inherit}button{cursor:pointer}.script{font-family:var(--script);font-weight:400}

.corner{position:fixed;z-index:-1;width:150px;height:150px;pointer-events:none;opacity:.8}.corner-tl{left:0;top:0}.corner-tr{right:0;top:0}.corner-bl{left:0;bottom:0}.corner-br{right:0;bottom:0}
.wc-star{position:absolute;display:block;line-height:1;filter:blur(.15px);text-shadow:0 0 8px rgba(120,150,180,.08)}.wc-star.blue{color:#a9c5e2}.wc-star.green{color:#a8b99a}.wc-star.big{font-size:64px;opacity:.7}.wc-star.small{font-size:31px;opacity:.72}.wc-star.tiny{font-size:20px;opacity:.6}
.corner-tl .big{left:20px;top:20px;transform:rotate(-12deg)}.corner-tl .small{left:98px;top:72px;transform:rotate(15deg)}.corner-tl .tiny{left:28px;top:112px}
.corner-tr .big{right:17px;top:29px;transform:rotate(10deg)}.corner-tr .small{right:97px;top:17px}.corner-tr .tiny{right:28px;top:116px}
.corner-bl .big{left:18px;bottom:20px;transform:rotate(10deg)}.corner-bl .small{left:92px;bottom:104px}.corner-bl .tiny{left:102px;bottom:20px}
.corner-br .big{right:17px;bottom:24px;transform:rotate(-10deg)}.corner-br .small{right:95px;bottom:105px}.corner-br .tiny{right:108px;bottom:17px}

.hero{position:relative;max-width:920px;margin:0 auto;padding:16px 18px 12px;text-align:center}.bear{display:block;width:132px;margin:0 auto -15px;filter:drop-shadow(0 8px 12px rgba(95,72,58,.08))}
.title-cloud{position:relative;max-width:700px;margin:auto;padding:32px 18px 28px}.title-cloud:before{content:"";position:absolute;inset:-8px -10px -3px;z-index:-1;opacity:.9;background:radial-gradient(ellipse at 13% 52%,rgba(214,232,249,.83) 0 26%,transparent 28%),radial-gradient(ellipse at 31% 43%,rgba(224,239,253,.88) 0 34%,transparent 36%),radial-gradient(ellipse at 56% 50%,rgba(217,235,252,.88) 0 43%,transparent 45%),radial-gradient(ellipse at 81% 46%,rgba(215,233,250,.8) 0 30%,transparent 32%),radial-gradient(ellipse at 52% 68%,rgba(232,243,253,.9) 0 43%,transparent 45%);filter:blur(.5px)}
.title-top{margin:0;color:#3d5872;font-size:clamp(2.9rem,11vw,5.5rem);line-height:.84}.hero h1{margin:13px 0 0;color:#3d5872;font-size:clamp(2.45rem,9vw,4.75rem);line-height:.93}.heart-line{display:flex;align-items:center;justify-content:center;gap:12px;margin:15px auto 0}.heart-line span{width:80px;height:1px;background:#7898b7}.heart-line b{font-size:22px;color:#7698b9;font-weight:400}
.intro{max-width:700px;margin:12px auto 4px;color:#405c77;font-size:clamp(1.52rem,5.2vw,2.12rem);line-height:1.25}.privacy-note{display:inline-block;margin:9px auto 0;padding:7px 13px;border-radius:999px;background:rgba(239,247,254,.78);border:1px solid #e1edf7;color:#6b8197;font-size:.72rem;letter-spacing:.01em}
main{max-width:1010px;margin:auto;padding:0 16px 90px}.how-it-works{max-width:750px;margin:14px auto 28px;text-align:center;padding:11px 20px;color:#6a7f94}.how-it-works .soft-heart{display:block;color:#7b9cbd;font-size:20px;margin-bottom:5px}.how-it-works p{margin:0;font-size:.78rem;line-height:1.65}.loading{text-align:center;padding:44px;color:#8298ad;font-style:italic}.gift-list{display:grid;gap:23px}

.category{position:relative;padding-top:12px}.category:before{content:"";position:absolute;left:16px;right:14px;top:39px;height:48px;border-radius:50%;background:rgba(217,234,250,.57);filter:blur(8px);z-index:-1}.category-head{display:flex;align-items:center;gap:12px;min-height:72px;padding:0 12px 5px}.category-icon{width:70px;height:70px;flex:0 0 70px;display:grid;place-items:center}.category-icon svg{width:68px;height:68px;overflow:visible;filter:drop-shadow(0 4px 6px rgba(89,112,134,.06))}.category-head h2{margin:0;padding:9px 15px 8px;border-radius:48% 52% 50% 50%/52% 45% 55% 48%;background:rgba(224,239,253,.65);color:#405c77;font-size:.94rem;line-height:1.1;text-transform:uppercase;letter-spacing:.055em;font-weight:400;box-shadow:inset 0 0 16px rgba(255,255,255,.45)}
.items{padding:1px 10px 5px 26px}.gift{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px 2px;border-bottom:1px solid rgba(185,207,226,.37)}.gift:last-child{border-bottom:0}.gift-info{position:relative;padding-left:17px}.gift-info:before{content:"♥";position:absolute;left:0;top:1px;color:#7899ba;font-size:.72rem}.gift-name{font-size:.91rem;line-height:1.35;color:#405975}.pill{display:inline-flex;align-items:center;gap:4px;margin-top:5px;border-radius:999px;padding:3px 7px;background:rgba(237,247,255,.8);color:#6d86a0;font-size:.61rem}.pill.complete{background:#f0f3ef;color:#7b8f76}.gift-action{border:1px solid #abc4dc;border-radius:14px;padding:8px 10px;background:rgba(255,255,255,.75);color:#547594;font-size:.67rem;min-width:78px;transition:.15s ease;box-shadow:0 4px 11px rgba(91,120,149,.06)}.gift-action:hover{background:#edf6ff;transform:translateY(-1px)}.gift-action:disabled{cursor:default;background:transparent;color:#99a5ae;border-color:#d8e0e6;box-shadow:none;transform:none}

.other-gift{position:relative;max-width:700px;margin:42px auto 0;text-align:center;padding:29px 24px 31px}.other-gift:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:48% 52% 47% 53%/45% 48% 52% 55%;background:radial-gradient(ellipse at 25% 46%,rgba(225,239,252,.69),transparent 52%),radial-gradient(ellipse at 72% 53%,rgba(217,234,250,.57),transparent 55%)}.little-ball{width:68px;margin:0 auto -4px}.little-ball svg{display:block;width:100%}.other-gift h2{font-size:clamp(2rem,8vw,3.15rem);line-height:1.05;margin:0 0 4px}.other-gift p{max-width:540px;margin:0 auto 16px;color:#6d8195;font-size:.78rem;line-height:1.65}.button{border:0;border-radius:14px;padding:11px 17px;background:#789abd;color:#fff;font-size:.75rem;box-shadow:0 8px 18px rgba(76,112,150,.14)}.button-outline{background:rgba(255,255,255,.72);color:#557592;border:1px solid #b7cee3;box-shadow:none}.button-soft{background:#eef5fb;color:#5f7891;box-shadow:none}.extras-public{margin-top:17px;text-align:left;display:grid;gap:7px}.extra-public{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:12px;background:rgba(248,251,253,.72);font-size:.72rem}.extra-public span:last-child{color:#81937d;font-size:.61rem;white-space:nowrap}.gift-meta{font-size:.67rem;color:#7d92a6}

.closing{position:relative;text-align:center;margin:44px auto 0;padding:25px 14px;color:#405c77}.closing-cloud{position:absolute;left:50%;top:50%;width:min(620px,95vw);height:155px;transform:translate(-50%,-50%);z-index:-1;background:radial-gradient(ellipse at 23% 58%,rgba(222,237,251,.46),transparent 49%),radial-gradient(ellipse at 68% 46%,rgba(217,234,250,.44),transparent 56%);filter:blur(2px)}.closing p{font-size:clamp(1.65rem,6vw,2.35rem);margin:0;line-height:1.15}.closing strong{display:block;font-size:clamp(1.75rem,6.5vw,2.55rem);font-weight:400;line-height:1.12}.tiny-heart{font-size:22px;margin-top:9px;color:#7598b9}

.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:18px;background:rgba(52,72,91,.3);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:.2s ease}.modal.open{opacity:1;pointer-events:auto}.modal-card{position:relative;width:min(100%,430px);border-radius:25px;padding:25px 22px 21px;background:#fffefa;text-align:center;box-shadow:0 30px 80px rgba(38,59,79,.23);border:1px solid #e2ecf4}.modal-card h3{margin:7px 0 10px;font-size:1.02rem;font-weight:400}.modal-card>p{font-size:.88rem}.modal-small{font-size:.69rem!important;color:#7b8e9f;line-height:1.55}.modal-bear{font-size:37px}.modal-close{position:absolute;right:14px;top:12px;border:0;background:transparent;color:#8396a7;font-size:26px}.modal-actions{display:flex;gap:8px;justify-content:center;margin-top:18px}.field{text-align:left;display:block;margin-top:18px}.field span{display:block;font-size:.67rem;margin-bottom:7px;color:#6b8298}.field input{width:100%;border:1px solid #ccddea;border-radius:13px;padding:12px 13px;outline:none;color:#425d79;background:#fbfdff}.field input:focus{border-color:#87a9ca;box-shadow:0 0 0 3px rgba(135,169,202,.12)}.toast{position:fixed;left:50%;bottom:20px;z-index:70;transform:translate(-50%,30px);width:min(calc(100% - 32px),430px);padding:13px 16px;border-radius:14px;background:#415d78;color:#fff;box-shadow:0 18px 45px rgba(38,59,79,.24);text-align:center;font-size:.74rem;opacity:0;pointer-events:none;transition:.25s ease}.toast.show{opacity:1;transform:translate(-50%,0)}

@media(min-width:760px){.hero{padding-top:25px}.bear{width:145px}.gift-list{grid-template-columns:1fr 1fr;column-gap:44px;row-gap:28px;align-items:start}.category-head{padding-left:8px}.category-head h2{font-size:1rem}.items{padding-left:29px}.gift{padding:11px 2px}.corner{width:190px;height:190px}.wc-star.big{font-size:83px}.wc-star.small{font-size:38px}.wc-star.tiny{font-size:24px}}
@media(max-width:520px){.corner{opacity:.47}.corner-tl,.corner-tr{top:18px}.desktop-break{display:none}.hero{padding-left:8px;padding-right:8px}.bear{width:120px}.title-cloud{padding-left:4px;padding-right:4px}.privacy-note{font-size:.65rem}.how-it-works{padding-left:8px;padding-right:8px}.category-head{gap:7px;padding-left:2px}.category-icon{width:59px;height:59px;flex-basis:59px}.category-icon svg{width:58px;height:58px}.category-head h2{font-size:.79rem;padding-left:11px;padding-right:11px}.items{padding-left:12px;padding-right:3px}.gift{grid-template-columns:minmax(0,1fr) 78px}.gift-name{font-size:.83rem}.gift-action{min-width:74px;padding:8px 6px}.corner-bl,.corner-br{position:absolute;top:auto;bottom:-8px}}
/* Hero uses the original invitation artwork supplied for Felipe. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.hero{max-width:1024px;padding:0 0 14px}.invitation-header{display:block;width:100%;height:auto;margin:0 auto;mix-blend-mode:multiply}.intro-copy{max-width:700px;margin:13px auto 3px;padding:0 18px;color:#405c77;font-size:.93rem;line-height:1.68}.hero .privacy-note{margin-top:8px}
@media(min-width:760px){.hero{padding-top:0}.invitation-header{max-width:920px}.intro-copy{font-size:1rem}}
