:root{--blue-950:#04163f;--blue-900:#071f57;--blue-800:#0a2f7a;--blue-700:#0e3f9e;--blue-600:#1757c4;--blue-400:#4f8ff0;--sky:#a9d0ff;--red:#e3262d;--red-dark:#a3101a;--yellow:#ffd23f;--white:#fff;--ink:#0b2a6e;--display:"Baloo 2", "Nunito", system-ui, sans-serif;--body:"Nunito", system-ui, sans-serif;--logo:"Barlow Semi Condensed", "Arial Narrow", sans-serif}*{box-sizing:border-box;margin:0}html,body{overscroll-behavior:none;background:var(--blue-950);-webkit-tap-highlight-color:transparent;height:100%;overflow:hidden}body{color:var(--white);font-family:var(--body);background:radial-gradient(110% 75% at 50% 40%, #1d63d8 0%, var(--blue-700) 32%, var(--blue-800) 58%, var(--blue-950) 100%);-webkit-user-select:none;user-select:none}.rays{z-index:0;pointer-events:none;background:repeating-conic-gradient(#ffffff13 0deg 7deg,#0000 7deg 18deg);width:240vmax;height:240vmax;margin:-120vmax 0 0 -120vmax;animation:90s linear infinite spin;position:fixed;top:42%;left:50%;-webkit-mask-image:radial-gradient(circle,#000 0%,#0009 18%,#0000 42%);mask-image:radial-gradient(circle,#000 0%,#0009 18%,#0000 42%)}.fx{pointer-events:none;z-index:40;width:100%;height:100%;position:fixed;inset:0}.fx-back{z-index:1}.envelope{z-index:30;flex-direction:column;justify-content:center;align-items:center;gap:34px;display:flex;position:fixed;inset:0}.env-kicker{font:800 clamp(30px, 8.6vw, 40px)/1.02 var(--display);text-align:center;text-shadow:0 4px 0 var(--blue-950);padding:0 24px}.env-kicker span{color:var(--yellow);display:block}.env-hint{font:800 12px var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--sky)}.env{--ew:min(78vw, 340px);width:var(--ew);height:calc(var(--ew) * .66);cursor:pointer;perspective:900px;background:0 0;border:0;padding:0;display:block;position:relative}.env>span{display:block;position:absolute}.env-back{background:linear-gradient(#0a2a72,#0d3a92);border-radius:10px;inset:0;box-shadow:0 24px 60px #020a2899}.env>.env-letter{z-index:1;color:var(--ink);background:#fff;background-image:linear-gradient(90deg, var(--red) 0 50%, var(--blue-600) 50% 100%);background-repeat:no-repeat;background-size:100% 6px;border-radius:6px;flex-direction:column;align-items:center;padding-top:7%;display:flex;inset:6% 7% 4%}.env-letter-kicker{font:800 12px var(--body);letter-spacing:.3em;text-transform:uppercase;color:var(--red);margin-right:-.3em}.env-letter-title{font:800 clamp(26px, 8vw, 34px)/1.1 var(--display);color:var(--blue-700)}.env-front{z-index:2;clip-path:polygon(0 0,50% 60%,100% 0,100% 100%,0 100%);background:linear-gradient(#1550bb,#0d3a92);border-radius:10px;inset:0}.env-front:after{content:"";background:linear-gradient(to top right,#0000 calc(50% - 1px),#a9d0ff80 50%,#0000 calc(50% + 1px)) 0 100%/50% 100% no-repeat,linear-gradient(to top left,#0000 calc(50% - 1px),#a9d0ff80 50%,#0000 calc(50% + 1px)) 100% 100%/50% 100% no-repeat;position:absolute;inset:0}.env-flap{transform-origin:50% 0;clip-path:polygon(0 0,100% 0,50% 100%);background:linear-gradient(#1b5fd0,#1147a8);height:62%;top:0;left:0;right:0}.env>.env-seal{z-index:4;background:#fff;border-radius:50%;place-items:center;width:76px;height:76px;margin:-38px 0 0 -38px;display:grid;top:62%;left:50%;box-shadow:0 8px 18px #020a2880,0 0 0 4px #ffffff59,0 0 34px #ffd23f73}.env-seal svg{width:46px;height:42px;margin-top:3px}.deck{z-index:3;position:fixed;inset:0;overflow:hidden}.page{touch-action:none;cursor:grab;will-change:transform;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.page:active{cursor:grabbing}.inner{z-index:3;width:100%;max-width:480px;padding:0 clamp(28px,8vw,44px);position:relative}.center{text-align:center;flex-direction:column;align-items:center;display:flex}.frame{pointer-events:none;z-index:2;width:min(100% - 32px,460px);height:calc(100% - 32px);position:absolute;top:16px;left:50%;overflow:visible;transform:translate(-50%)}.frame rect{stroke:#a9d0ff73;stroke-width:1.5px;stroke-dasharray:2 7;stroke-linecap:round}.chip{background:var(--white);color:var(--red);font:800 clamp(12px, 3.4vw, 14px)/1 var(--body);letter-spacing:.2em;text-transform:uppercase;border-radius:999px;padding:7px 18px 6px;display:inline-block;box-shadow:0 6px #04163f73}.pop-word{display:inline-block}.title{font:800 clamp(38px, 11vw, 50px)/1 var(--display);text-shadow:0 5px 0 var(--blue-950);margin:14px 0 4px}.title .pop-word{margin:0 .12em}.title.xl{color:var(--yellow);white-space:nowrap;margin:14px 0 10px;font-size:clamp(44px,12.4vw,64px)}.perks .title .pop-word{display:block}.body{font:700 clamp(18px, 5vw, 21px)/1.36 var(--body);color:#e6f0ff;text-wrap:balance;max-width:20em}.body strong{color:var(--white);font-weight:800}.body.sm{font-size:clamp(17px,4.6vw,19px)}mark{color:var(--yellow);background:0 0;font-weight:800;box-shadow:inset 0 -.22em #e3262dbf}.guest{flex-direction:column;align-items:center;margin:22px 0 8px;display:flex}.guest .pop-word{font:800 clamp(44px, 13vw, 60px)/.98 var(--display);text-shadow:0 6px 0 var(--blue-950)}.guest .pop-word:last-child{color:var(--white);text-shadow:-3px -3px 0 var(--red), 3px -3px 0 var(--red), -3px 3px 0 var(--red), 3px 3px 0 var(--red), 0 -3px 0 var(--red), 0 3px 0 var(--red), -3px 0 0 var(--red), 3px 0 0 var(--red), 0 10px 0 var(--blue-950);font-size:clamp(56px,17vw,80px);line-height:1.02}.stamp{background:var(--yellow);color:var(--red);font:800 clamp(34px, 10vw, 46px)/1.1 var(--display);box-shadow:0 0 0 4px var(--white), 0 0 0 7px var(--red), 0 14px 26px #04163f80;border-radius:14px;margin:10px 0 26px;padding:6px 22px 2px}.blitz{gap:0}.logo-card{background:var(--white);border-radius:22px;flex-direction:column;align-items:center;padding:14px 22px 12px;display:flex;box-shadow:0 10px #04163f59,0 20px 40px #04163f59}.logo{align-items:center;gap:8px;display:flex}.logo-heart{flex:none;width:58px;height:52px;overflow:visible}.logo-txt{flex-direction:column;align-items:flex-start;line-height:1;display:flex}.lg-dro{font:italic 700 13px/1 var(--logo);color:var(--red);text-transform:uppercase;letter-spacing:.04em;margin:0 0 1px 3px}.lg-name{font:800 clamp(30px, 9vw, 38px)/.92 var(--logo);letter-spacing:-.01em}.lg-name b{color:var(--blue-700);font-weight:800}.lg-name i{color:var(--red);margin-left:.12em;font-style:normal}.lg-line{background:var(--red);border-radius:2px;width:100%;height:3px;margin-top:4px;display:block}.logo-tag{font:italic 800 clamp(14px, 4vw, 16px) var(--body);color:var(--blue-700);margin-top:6px}.blitz-title{flex-direction:column;align-items:center;margin:22px 0 0;display:flex}.bt-small{font:800 clamp(44px, 13vw, 58px)/.9 var(--display);color:var(--white);text-shadow:0 5px 0 var(--blue-950);display:block}.bt-big{font:800 clamp(80px, 25vw, 112px)/.95 var(--display);color:var(--white);text-shadow:-4px -4px 0 var(--red), 4px -4px 0 var(--red), -4px 4px 0 var(--red), 4px 4px 0 var(--red), 0 -5px 0 var(--red), 0 5px 0 var(--red), -5px 0 0 var(--red), 5px 0 0 var(--red), 0 12px 0 var(--red-dark), 0 18px 22px #04163f8c;padding:0 .08em;display:block}.pulse-row{align-items:center;width:min(100%,330px);margin:6px 0 14px;display:flex}.pulse{flex:1;height:40px;overflow:visible}.pulse.flip{transform:scaleX(-1)}.pulse-ghost,.pulse-line{fill:none;stroke-width:3px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.pulse-ghost{stroke:#a9d0ff38}.pulse-line{stroke:var(--white);filter:drop-shadow(0 0 4px #a9d0ffe6)}.pulse-row>.pulse-heart{width:42px;height:42px;fill:var(--red);filter:drop-shadow(0 3px 0 var(--white)) drop-shadow(0 0 10px #e3262db3);flex:none;margin:0 2px}.ribbon{background:var(--red);color:var(--white);font:800 clamp(20px, 6vw, 26px)/1.1 var(--display);letter-spacing:.02em;clip-path:polygon(0 0,100% 0,calc(100% - 14px) 50%,100% 100%,0 100%,14px 50%);margin-bottom:14px;padding:8px 28px 6px;position:relative}.perks .title{margin-bottom:16px}.perk-grid{grid-template-columns:1fr 1fr;gap:12px;width:100%;display:grid}.perk{background:var(--white);color:var(--ink);text-align:center;border-radius:20px;flex-direction:column;align-items:center;padding:12px 8px 14px;display:flex;position:relative;box-shadow:0 7px #04163f66,0 16px 30px #04163f4d}.perk.gift,.perk.promo{background:linear-gradient(#fff 0%,#fff6d3 100%)}.perk-check{background:var(--yellow);width:32px;height:32px;color:var(--blue-800);border-radius:50%;place-items:center;display:grid;position:absolute;top:-9px;right:-7px;box-shadow:0 3px #04163f59}.perk-check svg{width:20px;height:20px}.dev{aspect-ratio:80/96;width:clamp(64px,18vw,80px);height:auto;margin-bottom:4px;overflow:visible}.perk-top{font:800 clamp(12px, 3.4vw, 14px)/1.1 var(--body);color:var(--blue-600)}.perk-main{font:800 clamp(19px, 5.4vw, 23px)/1.02 var(--display);color:var(--blue-800);margin-top:3px}.perk.promo .perk-main,.perk.gift .perk-main{color:var(--red)}.dev-body{fill:var(--blue-600)}.dev-body.white{fill:#eef3fb;stroke:#c7d5ea;stroke-width:2px}.dev-screen{fill:#dfe9d8;stroke:#9fb09a;stroke-width:1.5px}.dev-num{font:800 17px var(--logo);fill:#1b2a1b}.dev-unit{font:700 6px var(--body);fill:#3c4a3c}.dev-btn{fill:#8cc0ff}.dev-strip{fill:#f2f2f2;stroke:#c8c8c8}.dev-drop{fill:var(--red);transform-box:fill-box;transform-origin:50%}.dev-heart{fill:var(--red)}.gift-box{fill:var(--white);stroke:#d8d8e6;stroke-width:2px}.gift-rib{fill:var(--red)}.gift-bow{fill:var(--red);stroke:var(--red-dark);stroke-width:1.5px;stroke-linejoin:round}.tag{fill:var(--red)}.tag-hole{fill:#fff6d3}.tag-string{stroke:var(--blue-700);stroke-width:2.5px;stroke-linecap:round}.tag-pct{font:800 32px var(--display);fill:var(--yellow)}.cal{text-align:center;background:var(--white);width:min(56vw,214px);color:var(--blue-800);border-radius:20px;margin:22px 0 18px;padding:18px 0 10px;position:relative;box-shadow:0 9px #04163f66,0 22px 44px #04163f66}.cal:before{content:"";background:var(--red);border-radius:20px 20px 0 0;height:52px;position:absolute;top:0;left:0;right:0}.cal>span{display:block;position:relative}.cal>.cal-rings{justify-content:space-around;padding:0 22%;display:flex;position:absolute;top:-10px;left:0;right:0}.cal-rings i{background:linear-gradient(#fff,#b9c9e6);border-radius:5px;width:9px;height:24px;box-shadow:0 2px 3px #00000059}.cal-month{font:800 15px/28px var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--white);margin-bottom:8px;margin-right:-.22em}.cal-day{font:800 clamp(84px, 26vw, 104px)/.9 var(--display);color:var(--blue-700)}.cal-week{font:800 22px/1.3 var(--display);color:var(--red)}.clock-row{background:var(--yellow);color:var(--blue-800);border-radius:999px;align-items:center;gap:12px;margin-bottom:18px;padding:8px 22px 8px 10px;display:flex;box-shadow:0 6px #04163f66}.clock{width:44px;height:44px;overflow:visible}.clock>circle:first-child{fill:var(--white);stroke:var(--red);stroke-width:4px}.clock .ticks{fill:none;stroke:var(--blue-800);stroke-width:2.5px}.clock line{stroke:var(--blue-800);stroke-width:3.4px;stroke-linecap:round}.clock .pin{fill:var(--red)}.clock-row strong{font:800 clamp(24px, 7vw, 30px)/1 var(--display);padding-top:3px}.count{gap:8px;margin-bottom:20px;display:flex}.count>div{text-align:center;background:#04163f73;border-radius:14px;width:64px;padding:8px 0 7px;box-shadow:inset 0 0 0 1.5px #a9d0ff59}.digit{height:32px;display:block;position:relative;overflow:hidden}.digit b{font:800 clamp(25px, 7.2vw, 29px)/34px var(--display);color:var(--white);font-variant-numeric:tabular-nums;display:block}.count small{font:700 12.5px var(--body);letter-spacing:.06em;color:var(--sky)}.btn{cursor:pointer;min-height:50px;font:800 14px var(--body);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0 24px;text-decoration:none;display:inline-flex}.btn:focus-visible,.dots button:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.btn.solid{background:var(--red);color:var(--white);box-shadow:0 5px 0 var(--red-dark), 0 12px 24px #04163f66}.btn.ghost{background:var(--white);color:var(--blue-700);box-shadow:0 5px #04163f73}.where{text-align:center;flex-direction:column;align-items:center;height:100%;padding-top:max(40px,5vh);padding-bottom:max(30px,3.5vh);display:flex}.place{font:800 clamp(28px, 8vw, 36px)/1.05 var(--display);text-shadow:0 4px 0 var(--blue-950);margin-top:12px}.addr{font:700 clamp(15px, 4.2vw, 17px)/1.35 var(--body);color:#e6f0ff;text-wrap:balance;margin-top:6px}.addr>*{text-wrap:balance;display:block}.addr strong{color:var(--yellow);font-size:1.1em;font-weight:800}.addr .city{color:var(--sky)}.map{background:var(--blue-900);touch-action:auto;width:100%;min-height:150px;box-shadow:0 0 0 4px var(--white), 0 9px 0 4px #04163f66;border-radius:20px;flex:auto;margin:14px 0;overflow:hidden}.map iframe{border:0;width:100%;height:100%;display:block}.map-btns{gap:10px;width:100%;margin-top:4px;display:flex}.map-btns .solid{letter-spacing:.03em;flex:1;padding:0 10px;font-size:13px}.map-btns .ghost{padding:0 20px;font-size:13px}.big-heart{background:var(--white);border-radius:50%;place-items:center;width:128px;height:128px;display:grid;box-shadow:0 0 0 8px #ffffff2e,0 0 0 18px #ffffff12,0 18px 40px #04163f80}.big-heart svg{width:82px;height:74px;margin-top:6px;display:block;overflow:visible}.bye .body{margin-bottom:22px}.bye-btns{flex-direction:column;gap:14px;width:min(100%,320px);display:flex}.bye-btns .btn{letter-spacing:.03em;width:100%;font-size:13.5px}.bye-btns .ghost{text-transform:none;letter-spacing:0;font-size:15px}.bye-logo{background:var(--white);border-radius:16px;margin-top:26px;padding:10px 18px 8px;transform:scale(.82)}.floaters{z-index:5;pointer-events:none;position:fixed;inset:0;overflow:hidden}.fl{--size:64px;width:var(--size);height:var(--size);cursor:pointer;pointer-events:auto;background:var(--white);border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;left:50%;box-shadow:0 6px #04163f59,0 12px 24px #04163f59}.fl svg{width:58%;height:58%}.fl.heart svg{fill:var(--red)}.fl.cross svg{fill:var(--blue-600)}.fl.cross.white{background:var(--red)}.fl.cross.white svg{fill:var(--white)}.f1{--size:66px;margin-left:min(-50vw,-270px);bottom:-20px;transform:translate(-20%)}.f2{--size:52px;margin-left:min(-34vw,-190px);bottom:-34px}.f3{--size:58px;margin-left:max(34vw,190px);bottom:-24px}.f4{--size:56px;margin-left:max(30vw,150px);top:-30px}.dots{z-index:20;flex-direction:column;display:flex;position:fixed;top:50%;right:max(4px,50% - 240px);transform:translateY(-50%)}.dots button{cursor:pointer;background:0 0;border:0;place-items:center;width:22px;height:24px;padding:0;display:grid;position:relative}.dots button:before{content:"";background:#a9d0ff80;border-radius:50%;width:6px;height:6px}.dot-on{background:var(--yellow);width:12px;height:12px;box-shadow:0 0 0 2px var(--red);border-radius:50%;position:absolute;top:6px;left:5px}.swipe{z-index:4;color:var(--sky);font:800 11px var(--body);letter-spacing:.24em;text-transform:uppercase;pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;bottom:max(34px,5.5vh);left:0;right:0}.swipe b{margin-right:-.24em;font-weight:800}.swipe svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.rays{animation:none}}@media (width>=760px){.frame{height:calc(100% - 48px);top:24px}.f1{--size:120px;margin-left:-540px;bottom:-30px}.f2{--size:90px;margin-left:-380px;bottom:-50px}.f3{--size:110px;margin-left:360px;bottom:-40px}.f4{--size:100px;margin-left:390px;top:-40px}}@media (height<=760px){.guest{margin-top:14px}.stamp{margin-bottom:18px}.logo-card{padding:10px 18px 8px}.blitz-title{margin-top:12px}.bt-big{font-size:clamp(70px,21vw,92px)}.perks .title{margin:8px 0 12px;font-size:34px}.perk{padding:8px 6px 10px}.dev{width:58px}.when .cal{width:168px;margin:16px 0 12px;padding-top:14px}.when .cal-day{font-size:70px}.when .clock-row{margin-bottom:12px}.when .count{margin-bottom:14px}.big-heart{width:104px;height:104px}.big-heart svg{width:66px;height:60px}.bye-logo{margin-top:14px}}@media (height<=660px){.guest .pop-word{font-size:40px}.guest .pop-word:last-child{font-size:52px}.stamp{margin:6px 0 14px;font-size:30px}.bt-small{font-size:38px}.bt-big{font-size:70px}.perk-top{display:none}.dev{width:50px}.where{padding-top:30px;padding-bottom:22px}.map{margin:10px 0}.bye-logo{display:none}}
