:root{--navy:#0e1a2b;--navy-2:#13223a;--navy-3:#1a2b44;--line:#2e3f58;--line-2:#4a5b76;--gold:#d4b26a;--gold-soft:#e2c88e;--ink:#f4f1ea;--muted:#b5bdc9;--muted-2:#8c97aa;--red:#9e2b32;--fir:#1f4a38;--fir-2:#173a2c;--paper:#f2e8d3;--snow:#f4f7fa;--serif-display:"Cormorant Garamond", Georgia, serif;--serif:"EB Garamond", Georgia, serif;--sans:"Josefin Sans", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#08111d}@media (width<=600px){:root{--page:var(--navy)}html,body{overscroll-behavior-y:none}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{background:var(--page);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--page);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input{font:inherit;color:inherit}a,button,input,select,label{touch-action:manipulation}button{cursor:pointer}a{color:var(--gold)}.app{background:var(--navy);flex-direction:column;max-width:480px;min-height:100lvh;margin:0 auto;display:flex;position:relative;overflow-x:clip}.label{font-family:var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-size:12px}.small{font-family:var(--sans);letter-spacing:.08em;color:var(--muted);font-size:12px}h1,h2,h3{font-family:var(--serif-display);margin:0;font-weight:600;line-height:1.12}h1,h2,h3,[style*=--serif-display]{font-variant-numeric:lining-nums}.prose{-webkit-hyphens:auto;hyphens:auto;flex-direction:column;gap:14px;font-size:18px;line-height:1.62;display:flex}.prose p{margin:0}.btn{border:1px solid var(--line-2);min-height:52px;font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);background:0 0;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-size:13px;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.45;cursor:default}.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--navy);font-weight:600;position:relative;overflow:hidden}.btn-outline-gold{border-color:var(--gold);color:var(--gold);font-weight:600}.btn-gold:after{content:"";background:linear-gradient(100deg,#0000 30%,#ffffff73 50%,#0000 70%);animation:3.4s ease-in-out infinite shimmer;position:absolute;inset:0}.input{border:1px solid var(--line-2);width:100%;height:54px;color:var(--ink);font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;background:#0a1422;border-radius:0;padding:0 14px;font-size:17px}.input::placeholder{color:var(--muted-2);letter-spacing:.12em;text-transform:none}.input:focus{outline:2px solid var(--gold);outline-offset:1px}.card{border:1px solid var(--line);padding:16px}.topbar{padding:52px 12px 10px}@media (width<=600px){.topbar{padding-top:calc(env(safe-area-inset-top) + 4px)}}.card-gold{border:1px solid var(--gold);padding:20px 18px}@keyframes fall{0%{transform:translateY(-30px)}50%{transform:translate(14px,50vh)}to{transform:translate(-6px,105vh)}}@keyframes twinkle{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}@keyframes starpulse{0%,to{filter:drop-shadow(0 0 4px #d4b26a80)}50%{filter:drop-shadow(0 0 14px #ffe296f2)}}@keyframes doorglow{0%,to{box-shadow:0 0 10px #d4b26a59,inset 0 0 8px #d4b26a26}50%{box-shadow:0 0 26px #ffd682bf,inset 0 0 14px #d4b26a59}}@keyframes shimmer{0%{transform:translate(-120%)}60%,to{transform:translate(220%)}}@keyframes pulse{0%,to{box-shadow:0 0 #d4b26a73}50%{box-shadow:0 0 0 10px #d4b26a00}}@keyframes flicker{0%,to{box-shadow:0 0 22px #ffc86e2e}20%{box-shadow:0 0 30px #ffc86e47}45%{box-shadow:0 0 18px #ffc86e24}70%{box-shadow:0 0 34px #ffc86e4d}}@keyframes stampin{0%{opacity:0;transform:scale(2.2)rotate(-24deg)}55%{opacity:1;transform:scale(.92)rotate(-6deg)}75%{transform:scale(1.04)rotate(-9deg)}to{opacity:1;transform:scale(1)rotate(-8deg)}}@keyframes burst{0%{opacity:0;transform:translate(0)scale(.4)}15%{opacity:1}to{transform:translate(var(--dx), var(--dy)) scale(1);opacity:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(3px)}}@keyframes lightblink{0%,to{opacity:.25;transform:scale(.75);box-shadow:0 0 #0000}50%{opacity:1;transform:scale(1.15);box-shadow:0 0 12px}}.loader{animation:.3s loaderin}@keyframes loaderin{0%{opacity:0}}.loader-lights{gap:14px;display:flex}.loader-lights span{border-radius:50%;width:10px;height:10px;animation:1.1s ease-in-out infinite lightblink}.photo-flip{transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,.1,.2,1);display:block;position:absolute;inset:0}.photo-face{backface-visibility:hidden;background:#f3ecdd;flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute;inset:0;box-shadow:0 3px 8px #00000073}.photo-back{padding:12px 10px;transform:rotateY(180deg)}@keyframes fadeup{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.snow{pointer-events:none;z-index:5;position:absolute;inset:0;overflow:hidden}.snow-fixed{z-index:30;width:min(480px,100%);position:fixed;inset:0 auto 0 50%;transform:translate(-50%)}.snow-local .flake{animation-name:fall-local}@keyframes fall-local{0%{transform:translateY(-20px)}to{transform:translate(10px,300px)}}.flake{background:#fff;border-radius:50%;animation-name:fall;animation-timing-function:linear;animation-iteration-count:infinite;position:absolute;top:0}.light{border-radius:50%;width:6px;height:6px;animation:2.4s ease-in-out infinite twinkle;position:absolute}.star{animation:3.2s ease-in-out infinite starpulse}.today{animation:2.6s ease-in-out infinite doorglow;position:relative;overflow:hidden}.today:after{content:"";background:linear-gradient(100deg,#0000 30%,#ffecbe47 50%,#0000 70%);animation:3.6s ease-in-out infinite shimmer;position:absolute;inset:0}.pulse{animation:2.2s ease-out infinite pulse}.candle{animation:4s ease-in-out infinite flicker}.stamp-in{animation:1.1s cubic-bezier(.2,.8,.2,1) both stampin}.spark{width:6px;height:6px;margin:-3px 0 0 -3px;animation:1.4s ease-out both burst;position:absolute;top:50%;left:50%}.float{animation:4s ease-in-out infinite float}.shake{animation:.45s ease-in-out shake}.fadeup{animation:.6s ease-out both fadeup}@keyframes wave{0%,70%,to{box-shadow:0 0 #d4b26a00}82%{background:#2a3f60;box-shadow:0 0 22px #ffd682e6,inset 0 0 10px #d4b26a80}}@keyframes titleglow{0%,to{text-shadow:0 0 10px #d4b26a40}50%{text-shadow:0 0 26px #ffe296d9}}.finale-door{animation:6s ease-in-out infinite wave}.finale-title{animation:4s ease-in-out infinite titleglow}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.new-dot{background:var(--gold);border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block;box-shadow:0 0 6px #ffd682b3}@media (prefers-reduced-motion:reduce){.finale-door,.finale-title,.flake,.light,.star,.today,.today:after,.pulse,.candle,.float,.btn-gold:after,.shake{animation:none!important}.stamp-in{animation:none;transform:rotate(-8deg)}.spark{display:none}.fadeup{animation:none}.photo-flip{transition:none}.loader-lights span{opacity:.8;animation:none}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
