:root{--pine-900:#0b231a;--pine-800:#0f2e22;--pine-700:#164231;--pine-500:#1f7a4d;--berry:#c8102e;--berry-dark:#9c0b23;--gold:#e8c15a;--gold-light:#ffe7a3;--cream:#f6efe1;--ink:#2b1d14;--ink-soft:#6d5a4a;--font-display:"Playfair Display", Georgia, serif;--font-script:"Great Vibes", "Brush Script MT", cursive;--font-body:"Lato", system-ui, -apple-system, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{font-family:var(--font-body);color:var(--cream);background:radial-gradient(ellipse at top, #e8c15a1f, transparent 60%), radial-gradient(ellipse at bottom, var(--pine-700), var(--pine-900) 70%);background-color:var(--pine-900);background-attachment:fixed;min-height:100vh;overflow-x:hidden}button{font:inherit}.snow{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.flake{filter:blur(.5px);background:#fff;border-radius:50%;animation-name:snowfall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:-10px}@keyframes snowfall{to{transform:translate(var(--drift), 105vh)}}.page{z-index:1;max-width:640px;margin:0 auto;padding:32px 16px 24px;position:relative}.footer{z-index:1;text-align:center;color:#f6efe180;padding:16px 16px 32px;font-size:.85rem;position:relative}.brand{text-align:center;margin-bottom:28px}.brand__families{font-family:var(--font-display);letter-spacing:.02em;color:var(--cream);text-shadow:0 2px 18px #00000059;margin:8px 0 0;font-size:clamp(2.1rem,8vw,3.4rem);font-weight:800;line-height:1.1}.brand__amp{font-family:var(--font-script);color:var(--gold);padding:0 .08em;font-size:1.25em;font-weight:400}.brand__title{font-family:var(--font-script);color:var(--gold);text-shadow:0 0 24px #e8c15a59;margin:-4px 0 0;font-size:clamp(2.2rem,9vw,3.4rem)}.brand--small .brand__families{font-size:clamp(1.5rem,6vw,2.1rem)}.brand--small .brand__title{font-size:clamp(1.6rem,7vw,2.3rem)}.brand__holly{align-items:center;height:28px;display:inline-flex;position:relative}.leaf{background:var(--pine-500);border-radius:100% 0;width:34px;height:16px;display:inline-block}.leaf--l{margin-right:-4px;transform:rotate(-20deg)}.leaf--r{margin-left:-4px;transform:scaleX(-1)rotate(-20deg)}.berry{background:radial-gradient(circle at 35% 35%, #ff5a6e, var(--berry) 60%);z-index:1;border-radius:50%;width:11px;height:11px;margin:0 -1px;display:inline-block;position:relative}.berry:nth-child(3){transform:translateY(-6px)}.card{background:var(--cream);color:var(--ink);border-radius:18px;padding:28px 24px;position:relative;box-shadow:0 20px 50px #0006,inset 0 0 0 1px #e8c15a99}.card:before{content:"";background:repeating-linear-gradient(-45deg, var(--berry) 0 10px, white 10px 20px);border-radius:0 0 6px 6px;height:6px;position:absolute;top:0;left:18px;right:18px}.card h2{font-family:var(--font-display);color:var(--berry-dark);margin:4px 0 8px;font-size:1.6rem}.muted{color:var(--ink-soft);margin:0 0 18px;line-height:1.5}.reveal .muted{color:#f6efe1b3}.center{text-align:center}.row{gap:10px;display:flex}.row--end{flex-wrap:wrap;justify-content:flex-end;margin-top:18px}.input{width:100%;min-width:0;font:inherit;color:var(--ink);background:#fff;border:2px solid #e2d6bd;border-radius:10px;outline:none;flex:1;padding:12px 14px;transition:border-color .15s}.input:focus{border-color:var(--gold)}.field{margin:22px 0 18px;display:block}.field span{color:var(--ink-soft);margin-bottom:6px;font-size:.9rem;font-weight:700;display:block}.btn{cursor:pointer;color:#fff;background:linear-gradient(var(--berry), var(--berry-dark));white-space:nowrap;border:0;border-radius:10px;padding:12px 18px;font-weight:700;transition:transform .1s,box-shadow .1s,opacity .15s;box-shadow:0 3px #6e0718}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #6e0718}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--big{width:100%;font-family:var(--font-display);padding:16px;font-size:1.25rem;display:block}.btn--small{padding:8px 14px}.btn--ghost{color:var(--pine-500);box-shadow:inset 0 0 0 2px var(--pine-500);background:0 0;padding:8px 14px}.btn--ghost:active:not(:disabled){box-shadow:inset 0 0 0 2px var(--pine-500)}.chips{flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:flex}.chip{background:var(--pine-700);color:var(--cream);border-radius:999px;align-items:center;gap:6px;padding:7px 8px 7px 14px;font-weight:700;animation:.25s ease-out pop;display:inline-flex}.chip__x{color:inherit;cursor:pointer;background:#ffffff26;border:0;border-radius:50%;width:22px;height:22px;padding:0;line-height:1}.chip__x:hover{background:var(--berry)}@keyframes pop{0%{opacity:0;transform:scale(.6)}}.empty{color:var(--ink-soft);margin:18px 0 0;font-style:italic}.error{color:var(--berry);margin:0 0 14px;font-weight:700}.links{margin:0;padding:0;list-style:none}.links__row{border-bottom:1px dashed #dccfb3;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;display:flex}.links__name{font-size:1.05rem}.links__actions{gap:8px;display:flex}.reveal{text-align:center}.reveal__hello{font-family:var(--font-display);margin:0 0 6px;font-size:clamp(1.7rem,7vw,2.4rem)}.reveal__hint{color:#f6efe1cc;max-width:26em;min-height:3em;margin:0 auto;line-height:1.5}.reveal__footer{animation:.6s 1.2s both fade-up}.note{color:var(--gold-light);background:#f6efe114;border:1px solid #e8c15a66;border-radius:12px;margin:0 0 12px;padding:10px 16px;display:inline-block}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}}.gift-stage{justify-content:center;align-items:flex-end;height:400px;padding-bottom:20px;display:flex;position:relative}.gift{cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;background:0 0;border:0;width:190px;height:190px;padding:0;position:relative}.gift:focus-visible{outline:3px solid var(--gold);outline-offset:8px;border-radius:8px}.gift:disabled{cursor:default}.gift__box{background:linear-gradient(90deg, transparent 42%, var(--gold) 42% 58%, transparent 58%), linear-gradient(160deg, #e0263f, var(--berry) 45%, var(--berry-dark));border-radius:4px 4px 8px 8px;height:140px;position:absolute;bottom:0;left:10px;right:10px;box-shadow:inset 0 -12px 20px #0003,0 18px 30px #00000073}.gift__box:after{content:"";border-radius:inherit;background-image:radial-gradient(#ffffff40 2px,#0000 2.5px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask:linear-gradient(90deg,#000 42%,#0000 42% 58%,#000 58%);mask:linear-gradient(90deg,#000 42%,#0000 42% 58%,#000 58%)}.gift__lid{background:linear-gradient(90deg, transparent 42%, var(--gold) 42% 58%, transparent 58%), linear-gradient(170deg, #ee3550, var(--berry) 60%, var(--berry-dark));z-index:3;transform-origin:20% 100%;border-radius:6px;height:42px;position:absolute;bottom:136px;left:0;right:0;box-shadow:0 6px 10px #0000004d}.gift__bow{width:0;height:0;position:absolute;bottom:100%;left:50%}.bow{border:9px solid var(--gold);background:0 0;border-radius:50%/60% 60% 40% 40%;width:52px;height:36px;position:absolute;bottom:-6px}.bow--l{right:2px;transform:rotate(-18deg)}.bow--r{left:2px;transform:rotate(18deg)}.bow__knot{background:linear-gradient(var(--gold-light), var(--gold));border-radius:6px;width:22px;height:20px;position:absolute;bottom:-8px;left:-11px}.gift-stage--idle .gift{animation:2.6s ease-in-out infinite wiggle}.gift-stage--idle .gift:hover{animation-duration:1s}@keyframes wiggle{0%,70%,to{transform:rotate(0)}76%{transform:rotate(-5deg)translateY(-6px)}82%{transform:rotate(5deg)translateY(-6px)}88%{transform:rotate(-3deg)}94%{transform:rotate(2deg)}}.gift-stage--shaking .gift{animation:.9s ease-in both shake}@keyframes shake{0%{transform:translate(0)rotate(0)}10%{transform:translate(-4px)rotate(-4deg)}20%{transform:translate(4px,-2px)rotate(4deg)}30%{transform:translate(-6px)rotate(-6deg)}40%{transform:translate(6px,-3px)rotate(6deg)}50%{transform:translate(-8px)rotate(-7deg)}60%{transform:translate(8px,-4px)rotate(7deg)}70%{transform:translate(-8px)rotate(-8deg)}80%{transform:translate(8px,-6px)rotate(8deg)}90%{transform:scale(1.08,.9)translateY(6px)}to{transform:scale(1)}}.gift-stage--open .gift__lid{animation:.9s cubic-bezier(.2,.7,.3,1) forwards lid-off}@keyframes lid-off{0%{transform:translate(0)rotate(0)}40%{opacity:1;transform:translate(-40px,-120px)rotate(-25deg)}to{opacity:0;transform:translate(-220px,60px)rotate(-120deg)}}.name-card{background:var(--cream);width:min(300px,100% - 20px);color:var(--ink);box-shadow:0 14px 40px #00000073, inset 0 0 0 2px var(--gold);z-index:1;opacity:0;border-radius:14px;padding:18px 20px 20px;position:absolute;bottom:40px;left:50%;transform:translate(-50%,40px)scale(.5)}.gift-stage--open .name-card{animation:1s cubic-bezier(.18,.9,.3,1.25) .25s forwards rise}@keyframes rise{0%{opacity:1;transform:translate(-50%,40px)scale(.5)}to{opacity:1;transform:translate(-50%,-200px)scale(1)}}.name-card__label{text-transform:uppercase;letter-spacing:.18em;color:var(--ink-soft);font-size:.8rem;font-weight:700;display:block}.name-card__name{font-family:var(--font-display);color:var(--berry-dark);overflow-wrap:anywhere;margin-top:4px;font-size:clamp(2rem,9vw,2.8rem);font-weight:800;line-height:1.15;display:block}.gift-stage--open .gift__box{animation:2s ease-in-out .6s infinite alternate glow}@keyframes glow{to{box-shadow:inset 0 -12px 20px #0003,0 0 50px #e8c15a8c}}.confetti{z-index:4;pointer-events:none;width:0;height:0;position:absolute;bottom:150px;left:50%}.confetti__piece{opacity:0;border-radius:2px;width:8px;height:14px;animation:2.4s cubic-bezier(.15,.6,.35,1) forwards burst;position:absolute}.confetti__piece--round{border-radius:50%;width:9px;height:9px}@keyframes burst{0%{opacity:1;transform:translate(0)rotate(0)}45%{opacity:1;transform:translate(var(--x), var(--y)) rotate(var(--r))}to{opacity:0;transform:translate(calc(var(--x) * 1.15), calc(var(--y) + 520px)) rotate(calc(var(--r) * 2))}}@media (width<=480px){.card{padding:24px 18px}.row:not(.row--end){flex-direction:column}}@media (prefers-reduced-motion:reduce){.snow,.confetti{display:none}.gift-stage--idle .gift,.gift-stage--shaking .gift{animation:none}}
