@import "https://fonts.googleapis.com/css2?family=Caveat:wght@500;600;700&family=Nunito:wght@400;600;700&display=swap";:root{--ink:#55463d;--paper:#fff8ea;--pink:#d88576;--sky:#f4c9b8;--grass:#8ea477;--deep:#65765d;--wood:#9b6b49;--ocean:#7fa8b8}*{box-sizing:border-box}body{color:var(--ink);background:#efe6d6;margin:0;font-family:Nunito,sans-serif;overflow-x:hidden}button{font:inherit;color:inherit}.site-lock-screen{min-height:100dvh;color:var(--ink);background:radial-gradient(circle at top,#ffffff73,#0000 28%),linear-gradient(#f8eadf 0%,#f2dccd 52%,#e7d2c5 100%);place-items:center;padding:24px;display:grid;position:relative;overflow:hidden}.site-lock-screen:before,.site-lock-screen:after{content:"";pointer-events:none;position:absolute;inset:-15%}.site-lock-screen:before{filter:blur(2px);background:radial-gradient(circle at 20% 20%,#d8857633,#0000 18%),radial-gradient(circle at 78% 24%,#7fa8b82e,#0000 16%),radial-gradient(circle at 32% 78%,#8ea47729,#0000 18%),radial-gradient(circle at 72% 74%,#ffffff3d,#0000 20%)}.site-lock-screen:after{opacity:.28;background-image:linear-gradient(#fff8ea47 1px,#0000 1px),linear-gradient(90deg,#fff8ea29 1px,#0000 1px);background-size:40px 40px;transform:rotate(-8deg)scale(1.08)}.site-lock-orb{filter:blur(2px);opacity:.7;background:radial-gradient(circle,#fff8eae6,#fff8ea00);border-radius:999px;animation:14s ease-in-out infinite alternate lockOrbFloat;position:absolute}.site-lock-orb--one{width:210px;height:210px;top:5%;left:6%}.site-lock-orb--two{width:280px;height:280px;animation-delay:-4s;top:18%;right:4%}.site-lock-orb--three{width:160px;height:160px;animation-delay:-8s;bottom:10%;left:20%}.site-lock-card{z-index:1;border:3px solid var(--ink);text-align:center;background:linear-gradient(#fffcf4fa,#fff5e5f5),linear-gradient(90deg,#d8857614,#0000 20%,#7fa8b814);border-radius:32px 28px 34px 26px;width:min(520px,94vw);padding:32px 30px 28px;position:relative;overflow:hidden;box-shadow:0 18px #55463d1a,0 28px 60px #55463d2e}.site-lock-card:before{content:"";pointer-events:none;border:1px dashed #b9675d47;border-radius:22px;position:absolute;inset:14px}.site-lock-eyebrow{z-index:1;text-transform:lowercase;letter-spacing:.04em;color:#8b5f53;background:#f1dcbfd1;border:1.5px solid #55463d29;border-radius:999px;align-items:center;gap:8px;margin:0;padding:8px 14px;font-family:Caveat,cursive;font-size:1.4rem;display:inline-flex;position:relative;box-shadow:0 4px #55463d14}.site-lock-card h1{z-index:1;margin:18px 0 10px;font-family:Caveat,cursive;font-size:clamp(3rem,6vw,4.5rem);font-weight:700;line-height:.9;position:relative}.site-lock-copy{z-index:1;color:#8f6a5b;max-width:32rem;margin:0 auto 24px;font-family:Nunito,sans-serif;font-size:.98rem;line-height:1.55;position:relative}.site-lock-form{z-index:1;text-align:left;gap:10px;display:grid;position:relative}.site-lock-form label{color:#8b5f53;margin-left:6px;font-family:Caveat,cursive;font-size:1.45rem}.site-lock-input-row{grid-template-columns:1fr auto auto;gap:10px;display:grid}.site-lock-input-row input{width:100%;min-width:0;color:var(--ink);font:inherit;background:#fffaf0f0;border:2px solid #55463d42;border-radius:18px;padding:15px 16px;font-size:1rem;box-shadow:inset 0 1px #ffffffb3}.site-lock-reveal{color:#8b5f53;background:#fffaf0f0;border:2px solid #55463d42;border-radius:18px;width:56px;padding:0;box-shadow:inset 0 1px #ffffffb3}.site-lock-reveal:hover{filter:brightness(1.03)}.site-lock-reveal:active{transform:translateY(1px)}.site-lock-input-row input::placeholder{color:#886d60c7}.site-lock-input-row input:focus{border-color:#b9675d9e;outline:3px solid #d8857657}.site-lock-input-row button{color:#fff8ea;text-transform:lowercase;background:linear-gradient(#d88576,#be6f62);border:0;border-radius:18px;justify-content:center;align-items:center;gap:8px;min-height:56px;padding:0 18px;transition:transform .18s,box-shadow .18s,filter .18s;display:inline-flex;box-shadow:0 7px #55463d29}.site-lock-input-row button:hover{filter:brightness(1.03);transform:translateY(-1px)}.site-lock-input-row button:active{transform:translateY(4px);box-shadow:0 3px #55463d29}.site-lock-input-row .site-lock-reveal:active{box-shadow:inset 0 1px #ffffffb3}.site-lock-error,.site-lock-hint{z-index:1;margin:14px 0 0;font-family:Caveat,cursive;font-size:1.25rem;position:relative}.site-lock-error{color:#b24f59}.site-lock-hint{color:#947061}@media (width<=560px){.site-lock-input-row{grid-template-columns:1fr}.site-lock-reveal,.site-lock-input-row button{width:100%;min-height:52px}}@keyframes lockOrbFloat{0%{transform:translate(-6px)scale(.98)}to{transform:translate(10px,-12px)scale(1.05)}}.anniversary-app{background:radial-gradient(circle at 50% 8%, var(--app-backdrop-glow,#ffffff57), transparent 40%), linear-gradient(180deg, var(--app-backdrop-start,#faf1e7) 0%, var(--app-backdrop-mid,#f1e1d2) 54%, var(--app-backdrop-end,#ead8c6) 100%);--frame-fill:#efe6d6;--frame-border-start:#f3cf8e;--frame-border-mid:#d88676;--frame-border-end:#8f7bc0;--block-a:#ffd3abb3;--block-b:#ffa78f94;--block-c:#a0c7d280;--block-d:#7a996e7a;--block-e:#f9f1d79e;--text-halo:0 0 0 1px #fff8eaeb, 1px 0 0 #fff8eab8, -1px 0 0 #fff8eab8, 0 1px 0 #fff8eab8, 0 -1px 0 #fff8eab8, 0 6px 12px #55463d29, 0 0 18px #d8857624;--text-halo-strong:0 0 0 1px #fff8eafa, 1px 0 0 #fff8eae0, -1px 0 0 #fff8eae0, 0 1px 0 #fff8eae0, 0 -1px 0 #fff8eae0, 0 0 12px #55463d38, 0 0 18px #d8857629;height:100dvh;min-height:100dvh;color:var(--ink);transition:color .6s,background .8s;position:relative;overflow:hidden}.anniversary-app:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 18% 18%, var(--app-backdrop-haze-a,#ffffff38), transparent 32%), radial-gradient(circle at 82% 20%, var(--app-backdrop-haze-b,#ffffff2e), transparent 28%), radial-gradient(circle at 50% 84%, var(--app-backdrop-haze-c,#fff8ea1f), transparent 38%);opacity:.9;position:absolute;inset:0}.anniversary-app :is(h1,h2,h3,h4,h5,h6,p,small,strong,em,button,label,li,a){text-shadow:var(--text-halo);font-weight:700}.anniversary-app :is(.hero-copy h1,.hero-copy h2,.hero-copy p,.main-letter h2,.main-letter p,.main-letter .letter-date,.main-letter .letter-signoff,.main-letter-envelope small,.scatter-flower small,.scatter-pet small,.tent-asset em,.silverstone-pop,.explore-note,.anniversary-sign,.note-paper,.modal-eyebrow){text-shadow:var(--text-halo-strong)}.scene-frame{z-index:1;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.scene-canvas{--scene-width:1440px;--scene-height:900px;--scene-scale:min(calc(100vw / 1440), calc(100dvh / 900));width:var(--scene-width);height:var(--scene-height);transform:scale(var(--scene-scale));transform-origin:50%;background:linear-gradient(var(--frame-fill), var(--frame-fill)) padding-box, linear-gradient(135deg, var(--frame-border-start), var(--frame-border-mid), var(--frame-border-end)) border-box;border:5px solid #0000;border-radius:38px;position:relative;overflow:hidden;box-shadow:0 30px 70px #49392c2e,0 10px 24px #49392c1f,0 0 0 1px #fff8ea57,inset 0 0 0 8px #fff8ea2e}.heart-trail-layer{pointer-events:none;z-index:60;position:fixed;inset:0;overflow:hidden}.heart-trail{color:#e06b89;opacity:0;transform-origin:50%;filter:drop-shadow(0 2px 4px #55463d2e);will-change:transform, opacity;place-items:center;animation:1.15s ease-out forwards heartTrailFloat;display:grid;position:absolute}.heart-trail svg{width:100%;height:100%}.hero-copy{z-index:20;text-align:center;pointer-events:none;text-shadow:3px 3px #f39ed36e;width:700px;position:absolute;top:28px;left:50%;transform:translate(-50%)}.anniversary-app.night .hero-copy,.anniversary-app.dark .explore-note{text-shadow:3px 3px #7c074762}.hero-copy p{letter-spacing:.05em;margin:0;font-family:Caveat,cursive;font-size:max(14px,1.2rem);font-weight:700}.hero-copy h1{margin:2px 0 3px;font-family:Caveat,cursive;font-size:4.5rem;font-weight:700;line-height:.92}.hero-copy h1 span{color:var(--pink)}.hero-rule{color:var(--pink);justify-content:center;align-items:center;gap:10px;margin:8px 0;display:flex}.hero-rule i{border-top:1.5px solid;width:120px}.hero-copy h2{margin:0;font-family:Caveat,cursive;font-size:max(14px,1.8rem);font-weight:700}.hero-line{font-size:max(14px,2rem);font-style:italic;font-weight:700}.hero-message{isolation:isolate;width:fit-content;max-width:560px;margin:0 auto;position:relative}.hero-message:before{content:"";z-index:-1;-webkit-backdrop-filter:blur(5px);background:#ffffff14;position:absolute;inset:-12px -24px;-webkit-mask-image:radial-gradient(#000 35%,#0000 78%);mask-image:radial-gradient(#000 35%,#0000 78%)}.garden-stage{isolation:isolate;width:100%;height:100%;min-height:0;position:relative;overflow:hidden}.garden-entities{z-index:14;position:absolute;inset:0}.garden-layer{position:absolute;inset:0}.garden-layer--previous{pointer-events:none;z-index:1;filter:saturate(.9)blur(.6px)}.garden-layer--current{z-index:2}.garden-layer--current.is-entering .scatter-flower{animation:.9s cubic-bezier(.22,1,.36,1) both flowerSwapIn;animation-delay:var(--swap-delay,0s)}.garden-layer--current.is-entering .scatter-pet{animation:.9s cubic-bezier(.22,1,.36,1) both petSwapIn;animation-delay:var(--swap-delay,0s)}.garden-layer--previous .scatter-flower{animation:.72s cubic-bezier(.4,0,.2,1) both flowerSwapOut;animation-delay:var(--swap-delay,0s)}.garden-layer--previous .scatter-pet{animation:.72s cubic-bezier(.4,0,.2,1) both petSwapOut;animation-delay:var(--swap-delay,0s)}.scene-stack{z-index:0;pointer-events:none;position:absolute;inset:-1px 0 0}.theme-scene{z-index:1;pointer-events:none;position:absolute;inset:0}.theme-scene.previous{z-index:2;filter:blur(2px)saturate(.92);animation:1.2s forwards sceneFadeOut}.theme-scene.incoming{animation:1.2s forwards sceneFadeIn}@keyframes sceneFadeOut{0%{opacity:1}to{opacity:0}}@keyframes sceneFadeIn{0%{opacity:0;filter:blur(2px)saturate(.94)}to{opacity:1;filter:none}}.sky-layer{background:linear-gradient(#f8c8b5,#f7dfc5 72%,#f3c8a9) 0 0/100% 240%;animation:24s ease-in-out infinite alternate skyShift,12s ease-in-out infinite alternate skyPulse;position:absolute;inset:0 0 44%;overflow:hidden}.background-asset{z-index:1;filter:saturate(.95)brightness(1.02);background-image:url(/environment/misc/background.png);background-position:50% calc(100% + 240px);background-repeat:no-repeat;background-size:100%;position:absolute;inset:0}.background-asset:before,.background-asset:after{content:"";pointer-events:none;position:absolute;inset:0}.background-asset:before{background:radial-gradient(circle at 16% 24%, var(--block-a) 0 12%, transparent 13%), radial-gradient(circle at 34% 16%, var(--block-e) 0 8%, transparent 9%), radial-gradient(circle at 78% 18%, var(--block-b) 0 11%, transparent 12%), radial-gradient(circle at 72% 58%, var(--block-c) 0 13%, transparent 14%), radial-gradient(circle at 20% 68%, var(--block-d) 0 16%, transparent 17%), linear-gradient(152deg, transparent 0 22%, #fff8ea14 22% 24%, transparent 24% 100%), linear-gradient(26deg, transparent 0 39%, #ffe8c538 39% 42%, transparent 42% 100%), linear-gradient(164deg, #ffd6af3d 0 18%, transparent 18% 100%);mix-blend-mode:screen;opacity:.9}.background-asset:after{opacity:.75;background:linear-gradient(#ffffff14 0%,#fff0 18%,#fff6e600 54%,#5e544314 100%),radial-gradient(at bottom,#475c4a00 38%,#475c4a29 62%,#475c4a3d 100%),linear-gradient(90deg,#fff8ea14 0 15%,#0000 15% 30%,#fff8ea14 30% 46%,#0000 46% 64%,#fff8ea0f 64% 82%,#0000 82% 100%)}.sky-layer:before{content:"";opacity:.7;mix-blend-mode:soft-light;background:radial-gradient(circle at 18% 28%,#ffffff2e,#0000 24%),radial-gradient(circle at 82% 18%,#ffffff24,#0000 21%),radial-gradient(circle at 52% 72%,#fff4d61f,#0000 30%);animation:20s ease-in-out infinite alternate skyGlowSweep;position:absolute;inset:-12%}.theme-wash{opacity:.42;mix-blend-mode:soft-light;background-size:200% 200%;animation:8s ease-in-out infinite alternate washBreathe,26s linear infinite washSlide;position:absolute;inset:0}.mode-effects{z-index:2;pointer-events:none;position:absolute;inset:0}@keyframes washBreathe{0%{opacity:.28;transform:translateY(-1%)scale(1.02)}to{opacity:.44;transform:translateY(1%)scale(1.06)}}@keyframes washSlide{0%{background-position:0 0}to{background-position:120% 0}}@keyframes skyShift{0%{background-position:0 0}to{background-position:0 100%}}@keyframes skyPulse{0%{filter:saturate(.96)brightness()}to{filter:saturate(1.08)brightness(1.03)}}@keyframes skyGlowSweep{0%{transform:translate(-3%)translateY(1%)scale(1.02)}to{transform:translate(4%)translateY(-1%)scale(1.08)}}.clouds{z-index:3;pointer-events:none;position:absolute;inset:0}.cloud{filter:drop-shadow(0 8px 14px #55463d1f);will-change:transform;animation-name:cloudFloat;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;position:absolute}.cloud-image{width:100%;height:auto;animation-name:cloudBob;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;animation-duration:var(--cloud-bob-duration,6s);animation-delay:var(--cloud-bob-delay,0s);transform-origin:50%;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;will-change:transform;display:block;transform:translate(0,0)}@keyframes cloudFloat{0%{transform:translate3d(var(--cloud-shift-x-start,0px), var(--cloud-shift-y-start,0px), 0)}to{transform:translate3d(var(--cloud-shift-x-end,0px), var(--cloud-shift-y-end,0px), 0)}}@keyframes cloudBob{0%{transform:translate3d(0, var(--cloud-bob-start,0px), 0) rotate(calc(var(--cloud-tilt,0deg) - .6deg)) scale(1)}to{transform:translate3d(0, var(--cloud-bob-end,0px), 0) rotate(calc(var(--cloud-tilt,0deg) + .9deg)) scale(1.015)}}.mountain{clip-path:polygon(0 100%,25% 38%,43% 68%,62% 20%,100% 100%);opacity:.9;background:#7e9279;width:32%;height:28%;position:absolute;bottom:41%}.mountain-one{left:-2%}.mountain-two{opacity:.65;right:-5%;transform:scaleX(-1)}.ocean{background:linear-gradient(#7ea2ad,#8db3bb);border-top:2px solid #55463d59;height:17%;position:absolute;bottom:34%;left:0;right:0;overflow:hidden}.ocean span{border-top:2px solid #fff8eab3;border-radius:50%;width:120%;height:20px;animation:5s ease-in-out infinite wave;position:absolute;left:-10%}.ocean span:first-child{top:25%}.ocean span:nth-child(2){animation-delay:-2s;top:55%}.ocean span:nth-child(3){animation-delay:-4s;top:78%}@keyframes wave{50%{transform:translate(4%)}}.shore{clip-path:ellipse(80% 70% at 50% 100%);background:#d9ba8f;height:10%;position:absolute;bottom:27%;left:0;right:0}.grass{background:linear-gradient(#94a879,#7f956f);border-top:2px solid #55463d4d;position:absolute;inset:58% 0 0}.tree-asset{z-index:6;pointer-events:none;width:700px;position:absolute;bottom:35%;left:-18%}.tree-asset img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 16px 24px #55463d24);width:100%;height:auto;display:block}.tent-asset{z-index:16;cursor:pointer;pointer-events:auto;background:0 0;border:0;width:40%;padding:0;position:absolute;bottom:24%;left:31%}.tent-asset.tent-note-visible{z-index:19}.tent-image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(8px 8px #55463d2e);width:100%;height:auto;display:block}.tent-asset em{z-index:8;border:2px solid var(--ink);background:#f3dfb9;padding:8px 14px;font-family:Caveat,cursive;font-size:1.2rem;font-style:normal;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)rotate(-2deg);box-shadow:3px 4px #55463d33}.tent-asset:hover{transform:translateY(-4px)rotate(.4deg)}.mailbox{cursor:pointer;z-index:15;pointer-events:auto;background:0 0;border:0;width:280px;padding:0;position:absolute;bottom:2%;right:48%}.mailbox-image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:auto;transition:transform .25s;display:block}.mailbox:hover .mailbox-image{transform:translateY(-3px)rotate(-2deg)}@keyframes mailwiggle{25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}.silverstone-asset{cursor:pointer;z-index:15;filter:drop-shadow(0 14px 24px #55463d33);background:0 0;border:0;width:220px;padding:0;position:absolute;top:60%;left:64%;transform:rotate(-1.8deg)}.silverstone-image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;border-radius:18px;width:100%;height:auto;transition:transform .28s,filter .28s;display:block}.silverstone-asset:hover{transform:translateY(-4px)rotate(0)scale(1.02)}.silverstone-asset:hover .silverstone-image{filter:saturate(1.04)contrast(1.02);transform:scale(1.01)}.anniversary-app.night .silverstone-asset:hover .silverstone-image{filter:brightness(.67)saturate(.63)contrast(.93)hue-rotate(-10deg)}.silverstone-asset:focus-visible{outline:3px solid var(--pink);outline-offset:6px;border-radius:22px}.silverstone-pop{z-index:170;pointer-events:none;border:2px solid var(--ink);max-width:140px;color:var(--ink);opacity:0;background:#fff4dd;border-radius:999px;padding:9px 12px;font-family:Caveat,cursive;font-size:1.25rem;line-height:1;animation:1.2s ease-out forwards silverstonePop;position:fixed;box-shadow:4px 5px #55463d29}.silverstone-pop:after{content:"";background:inherit;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);width:10px;height:10px;position:absolute;bottom:-7px;left:18px;transform:rotate(45deg)}@keyframes silverstonePop{0%{opacity:0;transform:translate(-50%,-100%)scale(.85)rotate(-4deg)}14%{opacity:1;transform:translate(-50%,-110%)scale(1.04)rotate(2deg)}70%{opacity:1;transform:translate(-50%,-126%)scale(1)rotate(0)}to{opacity:0;transform:translate(-50%,-142%)scale(.96)rotate(0)}}.scatter-flower,.scatter-pet{z-index:24;cursor:pointer;background:0 0;border:0;position:absolute}.scatter-flower{z-index:27;transform:translate(-50%, -50%) rotate(var(--flower-rotation,0deg));will-change:transform, opacity, filter;padding:0;display:block;transform-origin:50%!important}.scatter-flower:hover,.scatter-flower.bloomed{z-index:28}.garden-layer--current.is-entering .scatter-flower,.garden-layer--previous .scatter-flower{transform:translate(-50%, -50%) rotate(var(--flower-rotation,0deg))}.flower-head{filter:drop-shadow(2px 3px #55463d2e);pointer-events:none;place-items:center;transition:all .25s;display:grid;position:absolute;inset:0}.flower-image{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.scatter-flower:hover .flower-head,.scatter-flower.bloomed .flower-head{transform:translateY(-6px)scale(1.08)}.scatter-flower small,.scatter-pet small,.tent-asset small{border:2px solid var(--ink);text-align:center;background:#fff8ea;border-radius:12px;width:200px;padding:8px 10px;font-family:Caveat,cursive;font-size:1.2rem;line-height:1.1;position:absolute;bottom:98%;left:50%;transform:translate(-50%);box-shadow:4px 5px #55463d29}.scatter-pet small{z-index:1;pointer-events:none;white-space:pre-line}.scatter-flower small:after,.scatter-pet small:after,.tent-asset small:after{content:"";background:inherit;border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);width:12px;height:12px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)rotate(45deg)}.scatter-flower small strong,.scatter-pet small strong,.tent-asset small strong{color:var(--pink);margin-bottom:3px;font-size:1.1rem;display:block}.scatter-pet{width:115px;height:105px;transform:translate(-50%, -50%) scale(var(--pet-scale,1));will-change:transform, opacity, filter}.scatter-pet:hover,.scatter-pet.happy{z-index:19}.garden-layer--current.is-entering .scatter-pet,.garden-layer--previous .scatter-pet{transform:translate(-50%, -50%) scale(var(--pet-scale,1))}.pet-head{pointer-events:none;filter:drop-shadow(2px 3px #55463d2e);place-items:center;transition:all .25s;display:grid;position:absolute;inset:0}.pet-image{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.scatter-pet:hover .pet-head,.scatter-pet.happy .pet-head{transform:translateY(-6px)scale(1.06)}.scatter-pet.happy .pet-image{animation:.55s 2 petbounce}.scatter-pet:hover .pet-image{display:block;transform:translateY(-2px)}@keyframes petbounce{50%{transform:translateY(-16px)rotate(-5deg)}}@keyframes flowerSwapIn{0%{opacity:0;filter:blur(5px)saturate(.85);transform:translate(-50%, calc(-50% + 30px)) rotate(var(--flower-rotation,0deg)) scale(.74)}60%{opacity:1;filter:blur(.6px)saturate(1.03);transform:translate(-50%, calc(-50% - 6px)) rotate(var(--flower-rotation,0deg)) scale(1.03)}to{opacity:1;filter:none;transform:translate(-50%, -50%) rotate(var(--flower-rotation,0deg)) scale(1)}}@keyframes petSwapIn{0%{opacity:0;filter:blur(5px)saturate(.85);transform:translate(-50%,calc(28px - 50%))scale(.72)rotate(-4deg)}58%{opacity:1;filter:blur(.6px)saturate(1.03);transform:translate(-50%,calc(-50% - 5px))scale(1.03)rotate(3deg)}to{opacity:1;filter:none;transform:translate(-50%, -50%) scale(var(--pet-scale,1)) rotate(0deg)}}@keyframes flowerSwapOut{0%{opacity:1;filter:blur()saturate();transform:translate(-50%, -50%) rotate(var(--flower-rotation,0deg)) scale(1)}to{opacity:0;filter:blur(5px)saturate(.84);transform:translate(-50%, calc(-50% - 24px)) rotate(calc(var(--flower-rotation,0deg) + 12deg)) scale(.9)}}@keyframes petSwapOut{0%{opacity:1;filter:blur()saturate();transform:translate(-50%, -50%) scale(var(--pet-scale,1)) rotate(0deg)}to{opacity:0;filter:blur(5px)saturate(.84);transform:translate(-50%, calc(-50% - 24px)) scale(calc(var(--pet-scale,1) * .9)) rotate(8deg)}}.anniversary-sign strong{font-size:1rem;font-weight:700}.explore-note{z-index:20;color:#fff8ea;text-shadow:3px 3px #f39ed36e;background-color:#ac307d88;border-radius:10px;margin:0;padding:4px 8px;font-family:Caveat,cursive;font-size:1.25rem;position:absolute;bottom:15px;left:50%;transform:translate(-50%)}.celestial{z-index:30;cursor:pointer;transform-origin:50%;background:0 0;border:0;width:120px;height:120px;padding:0;animation:7.5s ease-in-out infinite alternate celestialFloat;position:absolute;top:6%;right:9%}.celestial:before{content:"";filter:blur(2px);opacity:.85;background:radial-gradient(circle,#fff8ea33,#fff8ea00 68%);border-radius:50%;animation:4.8s ease-in-out infinite alternate celestialGlow;position:absolute;inset:12%}.celestial-image{z-index:1;object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 10px 18px #55463d2e);width:100%;height:100%;animation:5.8s ease-in-out infinite alternate celestialBob;display:block;position:relative}.celestial:hover{transform:translateY(-2px)scale(1.02)}.celestial:hover .celestial-image{animation-duration:4.4s}@keyframes celestialFloat{0%{transform:translateY(0)rotate(-2deg)}to{transform:translateY(-8px)rotate(2deg)}}@keyframes celestialBob{0%{transform:translateY(2px)rotate(-1.4deg)scale(.985)}to{transform:translateY(-2px)rotate(1.2deg)scale(1.015)}}@keyframes celestialGlow{0%{opacity:.6;transform:scale(.96)}to{opacity:.95;transform:scale(1.04)}}.stars{z-index:2;pointer-events:none;display:none;position:absolute;inset:0}.stars i{background:#fff4cc;border-radius:50%;width:3px;height:3px;animation:1.5s ease-in-out infinite alternate twinkle;position:absolute;box-shadow:0 0 8px #fff4cc}@keyframes twinkle{to{opacity:.2;transform:scale(.5)}}.fireflies{z-index:4;pointer-events:none;display:none;position:absolute;inset:0;overflow:hidden}.firefly{left:var(--fly-left,50%);top:var(--fly-top,50%);width:8px;height:8px;animation:fireflyDrift var(--fly-duration,10s) linear infinite, fireflyPulse 2.4s ease-in-out infinite;animation-delay:var(--fly-delay,0s), calc(var(--fly-delay,0s) * .6);will-change:transform, opacity, filter;margin:-4px 0 0 -4px;position:absolute}.firefly i{width:100%;height:100%;transform:scale(var(--fly-scale,1));background:radial-gradient(circle,#fffff0fa 0 24%,#0000 26%),radial-gradient(circle,#ffea96eb 0 54%,#0000 68%);border-radius:50%;animation:1.7s ease-in-out infinite alternate fireflyBlink;display:block;box-shadow:0 0 10px #ffeca4f2,0 0 22px #ffd67a9e}@keyframes fireflyDrift{0%{transform:translate(0,0)}18%{transform:translate3d(var(--fly-x1,20px), var(--fly-y1,-12px), 0)}40%{transform:translate3d(var(--fly-x2,-18px), var(--fly-y2,16px), 0)}62%{transform:translate3d(var(--fly-x3,24px), var(--fly-y3,-10px), 0)}82%{transform:translate3d(var(--fly-x4,-14px), var(--fly-y4,14px), 0)}to{transform:translate(0,0)}}@keyframes fireflyPulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes fireflyBlink{0%,to{transform:scale(calc(var(--fly-scale,1) * .84));filter:brightness(.95)}50%{transform:scale(calc(var(--fly-scale,1) * 1.18));filter:brightness(1.18)}}.night-rain{z-index:4;pointer-events:none;display:none;position:absolute;inset:0;overflow:hidden}.rain-drop{left:var(--rain-left,50%);top:var(--rain-top,0%);width:2px;height:var(--rain-height,24px);filter:drop-shadow(0 0 5px #fff8ea40);opacity:0;animation:rainFall var(--rain-duration,2s) linear infinite;animation-delay:var(--rain-delay,0s);will-change:transform, opacity;background:linear-gradient(#fff0 0%,#ffffff8c 30%,#f1faffe6 100%);border-radius:999px;margin-left:-1px;position:absolute;transform:translateY(-18px)rotate(-16deg)}@keyframes rainFall{0%{opacity:0;transform:translateY(-22px)rotate(-16deg)}10%{opacity:.8}to{opacity:0;transform:translate3d(calc(var(--rain-x,0px) * -1), 120px, 0) rotate(-16deg)}}.sunrise-glistens{z-index:4;pointer-events:none;display:none;position:absolute;inset:0;overflow:hidden}.sunrise-glint{left:var(--glint-left,50%);top:var(--glint-top,50%);width:var(--glint-size,8px);height:var(--glint-size,8px);margin:calc(var(--glint-size,8px) / -2) 0 0 calc(var(--glint-size,8px) / -2);animation:sunriseGlintDrift var(--glint-duration,4s) ease-in-out infinite, sunriseGlintPulse 2.8s ease-in-out infinite;animation-delay:var(--glint-delay,0s), calc(var(--glint-delay,0s) * .5);will-change:transform, opacity, filter;position:absolute}.sunrise-glint i{opacity:.78;background:radial-gradient(circle,#fffffffa 0 18%,#0000 22%),radial-gradient(circle,#fff0c1e6 0 42%,#0000 68%);border-radius:50%;width:100%;height:100%;display:block;transform:scale(.7);box-shadow:0 0 8px #fff6def2,0 0 18px #ffce8d80}@keyframes sunriseGlintDrift{0%{transform:translate(0,0)scale(.78)rotate(0)}35%{transform:translate3d(var(--glint-x,10px), calc(var(--glint-y,0px) * -1), 0) scale(1.05) rotate(14deg)}65%{transform:translate3d(calc(var(--glint-x,10px) * -.7), var(--glint-y,0px), 0) scale(.92) rotate(-10deg)}to{transform:translate(0,0)scale(.78)rotate(0)}}@keyframes sunriseGlintPulse{0%,to{opacity:.25;filter:brightness(.98)}45%{opacity:1;filter:brightness(1.18)}70%{opacity:.72;filter:brightness(1.05)}}.day-petals{z-index:4;pointer-events:none;display:none;position:absolute;inset:0;overflow:hidden}.day-petal{left:var(--petal-left,50%);top:var(--petal-top,10%);width:var(--petal-size,14px);height:var(--petal-size,14px);margin:calc(var(--petal-size,14px) / -2) 0 0 calc(var(--petal-size,14px) / -2);animation:petalDrift var(--petal-duration,10s) linear infinite, petalFlutter 2.7s ease-in-out infinite;animation-delay:var(--petal-delay,0s), calc(var(--petal-delay,0s) * .35);will-change:transform, opacity, filter;position:absolute}.day-petal i{transform-origin:50%;background:radial-gradient(circle at 35% 30%,#ffffffe0 0 12%,#0000 14%),radial-gradient(circle at 60% 65%,#fff0e8f5 0 42%,#ffcdc4f5 70%,#f8b0abeb 100%);border-radius:72% 28% 68% 32%/58% 42%;width:100%;height:100%;display:block;box-shadow:0 0 8px #fff8ea38}@keyframes petalDrift{0%{opacity:0;transform:translate3d(0, -18px, 0) rotate(var(--petal-rotate,0deg))}12%{opacity:.75}45%{transform:translate3d(var(--petal-x1,20px), var(--petal-y1,42px), 0) rotate(calc(var(--petal-rotate,0deg) + 70deg))}75%{transform:translate3d(var(--petal-x2,-18px), var(--petal-y2,88px), 0) rotate(calc(var(--petal-rotate,0deg) + 150deg))}to{opacity:0;transform:translate3d(var(--petal-x3,24px), var(--petal-y3,140px), 0) rotate(calc(var(--petal-rotate,0deg) + 220deg))}}@keyframes petalFlutter{0%,to{filter:brightness()}50%{filter:brightness(1.08)}}.theme-scene.night .sky-layer{background:linear-gradient(#252d48,#4a5871 75%,#6c7083)}.theme-scene.night .theme-wash{background:radial-gradient(circle at 70% 18%,#fff3ca3d,#0000 28%),linear-gradient(#14182f05,#1b213d61 72%,#05091633)}.theme-scene.night .stars{display:block}.theme-scene.night .fireflies{display:none}.theme-scene.sunset .fireflies,.theme-scene.night .night-rain,.theme-scene.day .day-petals{display:block}.theme-scene.night .ocean{background:linear-gradient(#405d70,#567787)}.theme-scene.night .background-asset{filter:saturate(.8)brightness(.8)contrast(.9)}.anniversary-app.night .tree-asset img{filter:brightness(.9)saturate(.7)contrast(.94)hue-rotate(-8deg)drop-shadow(0 16px 24px #0e122138)}.anniversary-app.night .silverstone-image{filter:brightness(.8)saturate(.8)contrast(.92)hue-rotate(-10deg)}.anniversary-app.night .flower-image,.anniversary-app.night .pet-image{filter:brightness(.9)saturate(.8)contrast(.93)hue-rotate(-6deg)}.theme-scene.night .cloud{opacity:.28}.anniversary-app.night{color:#f6ead9}.anniversary-app.night .modal-close,.anniversary-app.night .back-link,.anniversary-app.night .tent-menu button,.anniversary-app.night .envelopes>button,.anniversary-app.night .polaroid-row button,.anniversary-app.night .memory-reveal,.anniversary-app.night .screen,.anniversary-app.night .watch-chips span,.anniversary-app.night .scatter-flower small,.anniversary-app.night .scatter-pet small,.anniversary-app.night .tent-asset em{color:var(--ink)}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#31282294;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.tent-modal{scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#d88576c7 #fff4e6d9;width:min(950px,96vw);max-height:90vh;color:var(--ink);background:radial-gradient(circle at 0 0,#ffffffd1,#0000 34%),linear-gradient(#fffaf2 0%,#fff4e6 100%);border:2px solid #55463de0;border-radius:34px;padding:30px;position:relative;overflow:auto;box-shadow:0 24px 60px #31282233,inset 0 0 0 1px #fff6}.tent-modal::-webkit-scrollbar{width:12px}.tent-modal::-webkit-scrollbar-track{background:#fff4e6d9;border-radius:999px}.tent-modal::-webkit-scrollbar-thumb{background:linear-gradient(#e9a496f2,#d88576eb);border:3px solid #fff4e6d9;border-radius:999px}.tent-modal::-webkit-scrollbar-thumb:hover{background:linear-gradient(#efb3a6,#d88576)}.modal-close{color:#8f6258;cursor:pointer;background:0 0;border:0;place-items:center;width:36px;height:36px;padding:0;transition:color .16s,transform .16s;display:grid;position:absolute;top:18px;right:18px}.modal-close:hover{color:#c26573;animation:.36s cubic-bezier(.22,1,.36,1) modalCloseSpin}.modal-close:focus-visible{outline-offset:3px;border-radius:50%;outline:2px solid #b9675d9e}.modal-close:active{transform:scale(.86)}@keyframes modalCloseSpin{0%{transform:rotate(0)scale(1)}55%{transform:rotate(115deg)scale(1.12)}to{transform:rotate(180deg)scale(1)}}.modal-eyebrow{text-transform:uppercase;letter-spacing:.15em;margin:0;font-size:max(14px,.75rem);font-weight:700}.tent-modal h2{margin:0 0 4px;font-family:Caveat,cursive;font-size:3rem}.modal-intro{margin-top:0}.kdrama-view{gap:18px;display:grid}.kdrama-copy{max-width:760px}.kdrama-layout{grid-template-columns:minmax(200px,290px) minmax(0,1fr);align-items:stretch;gap:24px;display:grid}.kdrama-gallery{gap:14px;display:grid}.kdrama-poster-card{background:#fffcf7e0;border:1.5px solid #55463d2e;border-radius:28px;flex-direction:column;justify-content:space-between;gap:14px;min-height:0;padding:16px;display:flex;box-shadow:0 10px 24px #55463d14,inset 0 0 0 1px #ffffffb3}.kdrama-poster{object-fit:cover;background:#ead8b8;border:1.5px solid #55463d47;border-radius:22px;width:100%;display:block;box-shadow:inset 0 0 0 1px #fffaf059}.kdrama-poster-caption{text-align:center;gap:6px;display:grid}.poster-tag{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700}.kdrama-poster-caption p{margin:0;font-family:Nunito,sans-serif;font-size:.96rem;font-weight:700;line-height:1.45}.kdrama-title-block{align-content:start;gap:4px;display:grid}.kdrama-title-block h3{margin:0;font-family:Caveat,cursive;font-size:2.55rem;font-weight:700;line-height:1}.kdrama-ratings{align-content:start;gap:14px;padding-top:4px;display:grid}.rating-control{background:linear-gradient(#fffcf5f5,#fff4e9);border:1.5px solid #55463d29;border-radius:24px;padding:16px 16px 14px;box-shadow:0 10px 24px #55463d14,inset 0 0 0 1px #ffffffb3}.rating-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.rating-header h3{margin:0;font-family:Caveat,cursive;font-size:1.9rem;line-height:1}.rating-header span{font-size:.95rem;font-weight:700}.star-rating{min-height:42px;position:relative}.star-rating-visual{pointer-events:none;grid-template-columns:repeat(10,1fr);gap:4px;display:grid}.rating-star{aspect-ratio:1;width:100%;display:block;position:relative}.rating-star-filled{width:100%;height:100%;display:block}.rating-star-base{color:#55463d24;width:100%;height:100%;display:block}.rating-star-fill{color:#f0b43c;pointer-events:none;display:block;position:absolute;inset:0 auto 0 0;overflow:hidden}.star-rating-hitboxes{grid-template-columns:repeat(20,1fr);display:grid;position:absolute;inset:0}.star-hitbox{cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0}.star-hitbox:hover,.star-hitbox:focus-visible{background:#f0b43c24;outline:none}.star-hitbox:focus-visible{box-shadow:inset 0 0 0 2px #55463d8c}.kdrama-notes{gap:10px;margin-top:4px;display:grid}.kdrama-comment-list{gap:10px;display:grid}.kdrama-comment{background:#fffcf7eb;border:1.5px solid #55463d1f;border-radius:22px 22px 22px 8px;padding:15px 18px;position:relative;box-shadow:0 8px 20px #55463d0f,inset 0 0 0 1px #ffffff9e}.kdrama-comment:after{content:"";background:inherit;border-bottom:1.5px solid #55463d1f;border-left:1.5px solid #55463d1f;width:14px;height:14px;position:absolute;bottom:-8px;left:18px;transform:rotate(45deg)}.kdrama-comment p{color:#55463de0;margin:0;font-family:Nunito,sans-serif;font-size:.94rem;font-weight:700;line-height:1.5}.kdrama-carousel{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:4px 2px 0;display:grid}.carousel-nav{cursor:pointer;background:#fffcf5e6;border:1.5px solid #55463d2e;border-radius:999px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 8px 18px #55463d14}.carousel-nav svg{width:18px;height:18px}.kdrama-thumbnails{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.kdrama-thumb{cursor:pointer;opacity:.8;background:#fffcf5eb;border:1.5px solid #55463d1f;border-radius:18px;padding:0;transition:transform .2s,opacity .2s,box-shadow .2s,border-color .2s;overflow:hidden;box-shadow:0 8px 18px #55463d0f}.kdrama-thumb img{aspect-ratio:2/3;object-fit:cover;width:100%;display:block}.kdrama-thumb:hover,.kdrama-thumb.active{opacity:1;border-color:#55463d57;transform:translateY(-2px);box-shadow:0 12px 24px #55463d1a}.tent-menu{grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px;display:grid}.tent-menu button{border:2px solid var(--ink);cursor:pointer;background:#fffaf0;min-height:190px;padding:24px 16px;transform:rotate(-1deg);box-shadow:4px 5px #55463d2b}.tent-menu button:nth-child(2){transform:rotate(1deg)}.tent-menu button:hover{transform:translateY(-7px)}.tent-menu span{font-size:3rem;display:block}.tent-menu strong{font-family:Caveat,cursive;font-size:max(14px,1.8rem);font-weight:700;display:block}.tent-menu small{margin-top:5px;font-size:max(14px,1rem);font-weight:700;display:block}.back-link{cursor:pointer;background:0 0;border:0;margin-bottom:10px;font-family:Caveat,cursive;font-size:max(14px,1.25rem);font-weight:700}.envelopes{grid-template-columns:repeat(3,1fr);gap:18px;margin-top:20px;display:grid}.envelopes>button{border:2px solid var(--ink);cursor:pointer;background:#e8b5ac;height:220px;position:relative;overflow:hidden;box-shadow:4px 5px #55463d26}.envelopes>button:nth-child(2){background:#c8dae8}.envelopes>button:nth-child(3){background:#d5dfbd}.flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;background:#ffffff40;height:58%;transition:all .45s;position:absolute;inset:0 0 auto}.note-paper{border:2px solid var(--ink);background:#fffaf0;flex-direction:column;gap:8px;min-height:150px;padding:16px;font-family:Caveat,cursive;font-size:max(14px,1.25rem);font-weight:700;transition:all .45s;display:flex;position:absolute;bottom:-80%;left:10%;right:10%}.envelopes button.open .flap{transform:rotateX(165deg)}.envelopes button.open .note-paper{bottom:10%}.envelopes button small{z-index:5;position:absolute;bottom:8px;left:0;right:0}.polaroid-row{grid-template-columns:repeat(4,1fr);gap:15px;display:grid}.polaroid-row button{border:2px solid var(--ink);cursor:pointer;background:#fff;padding:10px 10px 16px;transform:rotate(-2deg);box-shadow:4px 5px #55463d26}.polaroid-row button:nth-child(2n){transform:rotate(2deg)translateY(12px)}.polaroid-row span{background:linear-gradient(#c7dfe7,#f2d6b0);place-items:center;height:130px;font-size:3.7rem;display:grid}.polaroid-row strong{margin-top:8px;font-family:Caveat,cursive;font-size:max(14px,1.3rem);font-weight:700;display:block}.memory-reveal{text-align:center;border:2px solid var(--ink);background:#fffaf0;max-width:500px;margin:25px auto 0;padding:20px;position:relative}.memory-reveal>button{background:0 0;border:0;position:absolute;top:8px;right:8px}.memory-reveal>span{font-size:4.5rem}.memory-reveal h3{margin:0;font-family:Caveat,cursive;font-size:max(14px,2rem);font-weight:700}.screen{text-align:center;background:#f5eedf;border:10px solid #74533f;place-content:center;min-height:260px;padding:25px;display:grid}.screen span{font-size:4rem}.screen p{font-family:Caveat,cursive;font-size:max(14px,2rem);font-weight:700}.watch-chips{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.watch-chips span{border:1.5px solid var(--ink);background:#e8d2aa;border-radius:999px;padding:7px 12px;font-family:Caveat,cursive;font-size:max(14px,1rem);font-weight:700}.spark{z-index:200;pointer-events:none;font-size:1.7rem;animation:.9s forwards sparkup;position:fixed}@keyframes sparkup{to{opacity:0;transform:translateY(-80px)scale(1.5)rotate(16deg)}}@media (width<=850px){.anniversary-sign{display:none}.tent-menu,.envelopes,.kdrama-layout,.kdrama-carousel{grid-template-columns:1fr}.carousel-nav{display:none}.kdrama-thumbnails{grid-template-columns:repeat(4,minmax(0,1fr))}.polaroid-row{grid-template-columns:repeat(2,1fr)}}@media (width<=760px){.anniversary-app{overflow:hidden}.scene-frame{transform-origin:50%;width:calc(100dvh - 16px);height:calc(100dvw - 16px);inset:50% auto auto 50%;transform:translate(-50%,-50%)rotate(90deg)}.scene-canvas{--scene-scale:min(calc((100dvw - 40px) / 900), calc((100dvh - 40px) / 1440))}.modal-backdrop{align-items:start;padding:12px;overflow-y:auto}.tent-modal,.main-letter{width:min(100%,100vw - 24px);max-height:calc(100dvh - 24px)}.tent-modal{padding:24px 18px}.kdrama-layout{gap:16px}.kdrama-thumbnails{grid-template-columns:repeat(2,minmax(0,1fr))}.carousel-nav{display:none}.main-letter{padding:34px 20px 28px}.main-letter h2{font-size:2.5rem}.main-letter p{font-size:max(14px,1.2rem)}.main-letter-envelope{aspect-ratio:260/190;width:min(100%,240px);height:auto}.envelopes,.tent-menu{grid-template-columns:1fr;gap:12px}.polaroid-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.polaroid-row span{height:95px;font-size:2.8rem}}@media (width>=1180px){.scene-canvas{--scene-scale:min(calc(100vw / 1500), calc(100dvh / 920))}.sky-layer{inset:0 0 40%}.background-asset{background-position:50% calc(100% + 180px);background-size:112%}.background-asset:before{opacity:.88;background:radial-gradient(circle at 18% 24%,#fff8ea5c,#0000 22%),radial-gradient(circle at 82% 16%,#fff3ca3d,#0000 20%),radial-gradient(circle at 50% 58%,#ffe7c429,#0000 26%)}.background-asset:after{opacity:.88;background:linear-gradient(#ffffff1f 0%,#fff0 16%,#fff6e600 52%,#4a3f321a 100%),radial-gradient(at bottom,#4c604900 34%,#4c604924 66%,#4c604942 100%)}}@media (width<=560px){.scene-canvas{--scene-scale:min(calc((100dvw - 32px) / 900), calc((100dvh - 32px) / 1440))}.spark{font-size:1.4rem}.silverstone-pop{max-width:100px;padding:6px 8px;font-size:.88rem}.tent-modal{border-radius:26px;padding:20px 14px}.tent-modal h2{font-size:2.15rem}.rating-header{flex-direction:column;align-items:flex-start}.rating-header h3{font-size:1.55rem}.kdrama-poster-caption strong{font-size:1.8rem}.kdrama-thumbnails{grid-template-columns:repeat(2,minmax(0,1fr))}.main-letter{padding:30px 16px 24px}.main-letter h2{font-size:2.2rem}.main-letter p{font-size:max(14px,1.1rem)}.main-letter .letter-signoff strong{font-size:max(14px,1.35rem)}.main-letter-envelope{width:min(100%,220px)}.polaroid-row span{height:95px;font-size:3rem}}.theme-scene.day .theme-wash{background:radial-gradient(circle at 48% 10%,#ffffff52,#0000 30%),linear-gradient(#fff4d614,#add1dc33 72%,#ffefd01a)}.theme-scene.sunrise .mode-effects{opacity:.8;mix-blend-mode:screen;background:radial-gradient(circle at 18% 22%,#ffffffe6 0 1.5px,#0000 3px),radial-gradient(circle at 36% 18%,#fff8dbf2 0 1.2px,#0000 3px),radial-gradient(circle at 58% 28%,#ffffffd9 0 1.4px,#0000 3px),radial-gradient(circle at 76% 16%,#ffecbde6 0 1.3px,#0000 3px),radial-gradient(circle at 86% 26%,#ffffffbf 0 1.1px,#0000 3px),radial-gradient(circle at 22% 48%,#fff8dbcc 0 1.2px,#0000 3px),radial-gradient(circle at 48% 42%,#ffffffe6 0 1.5px,#0000 3px),radial-gradient(circle at 70%,#ffeeccd1 0 1.3px,#0000 3px),radial-gradient(circle at 90% 44%,#ffffffe0 0 1.2px,#0000 3px);animation:3.2s ease-in-out infinite alternate sparkleGlint,24s linear infinite effectDrift}.theme-scene.sunrise .sky-layer{background:linear-gradient(#8f8ab4 0%,#efa895 52%,#ffd9ac 100%)}.theme-scene.sunrise .theme-wash{background:radial-gradient(circle at 22% 14%,#fff6cc8c,#0000 30%),linear-gradient(#ffc69114,#ffa07857 72%,#ffe6b81f)}.theme-scene.sunrise .ocean{background:linear-gradient(#7897ad,#94b2bc)}.theme-scene.sunrise .background-asset{filter:saturate(1.05)brightness(1.08)contrast(.98)}.theme-scene.sunrise .celestial-image{filter:drop-shadow(0 12px 20px #ef9f7847)}.theme-scene.sunrise .cloud{opacity:.72}.theme-scene.sunrise .sunrise-glistens{display:block}.theme-scene.day .mode-effects{opacity:.7;mix-blend-mode:soft-light;background:radial-gradient(circle at 20% 28%,#ffffff42,#0000 10%),radial-gradient(circle at 36% 22%,#ffffff2e,#0000 8%),radial-gradient(circle at 64% 30%,#fff3,#0000 9%),radial-gradient(circle at 82% 18%,#ffffff29,#0000 7%);animation:14s ease-in-out infinite alternate dayDust,32s linear infinite effectDrift}.theme-scene.day .celestial-image{filter:drop-shadow(0 12px 20px #5785a538)}.theme-scene.sunset .sky-layer{background:linear-gradient(#7c6a99 0%,#d97975 48%,#f3bd83 100%)}.theme-scene.sunset .theme-wash{background:radial-gradient(circle at 78% 12%,#ffe8b05c,#0000 28%),linear-gradient(#ffad8214,#ff6d6047 65%,#ffd99724)}.theme-scene.sunset .ocean{background:linear-gradient(#6e7f91,#7e99a4)}.theme-scene.sunset .background-asset{filter:saturate(.92)brightness(.93)contrast(1.02)}.theme-scene.sunset .cloud{opacity:.55}.theme-scene.sunset .mode-effects{opacity:.75;mix-blend-mode:screen;background:radial-gradient(circle at 16% 28%,#ffe7b161,#0000 7%),radial-gradient(circle at 40% 18%,#ffba8457,#0000 6%),radial-gradient(circle at 72% 34%,#fff6cd47,#0000 8%),radial-gradient(circle at 88% 20%,#ffd18a3d,#0000 6%);animation:16s ease-in-out infinite alternate emberGlow,28s linear infinite effectDrift}.theme-scene.sunset .celestial-image{filter:drop-shadow(0 12px 20px #d9786747)}.theme-scene.night .celestial-image{filter:drop-shadow(0 12px 20px #7e90b847)}.sunset .hero-copy,.sunrise .hero-copy{color:#5b4138}@keyframes sparkleGlint{0%{filter:brightness()blur(.1px);opacity:.55;transform:translateY(-1%)scale(.98)}to{filter:brightness(1.25)blur(.35px);opacity:.95;transform:translateY(1%)scale(1.04)}}@keyframes dayDust{0%{transform:translate(-2%,1%)}to{transform:translate(2%,-1%)}}@keyframes emberGlow{0%{opacity:.48;transform:translate(-1%,1%)}to{opacity:.84;transform:translate(1.5%,-1%)}}@keyframes effectDrift{0%{background-position:0 0}to{background-position:120px 80px}}@keyframes heartTrailFloat{0%{opacity:0;transform:translate(0,0)scale(.65)rotate(0)}15%{opacity:1}to{opacity:0;transform:translateY(-76px)scale(1.35)rotate(16deg)}}.letter-backdrop{background:#312822a3}.main-letter{--letter-paper:#fff8ea;--letter-line:#d885760f;--letter-margin:#d8857659;--letter-accent:#b9675d;--letter-muted:#9a7564;--letter-scrollbar:#b9675de6;--letter-scrollbar-light:#fff8ea8c;--letter-envelope:#f1e3e9;--letter-envelope-note:#fffaf0;--letter-seal:#e06b89;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--letter-scrollbar) var(--letter-scrollbar-light);background:var(--letter-paper);width:min(680px,94vw);max-height:90vh;color:var(--ink);border:3px solid var(--ink);background-image:linear-gradient(var(--letter-line) 1px, transparent 1px);background-size:100% 32px;border-radius:20px 26px 18px 25px;padding:44px 48px 42px;position:relative;overflow:auto;box-shadow:12px 14px #3128223d}.main-letter--blue{--letter-paper:#e9f1ff;--letter-line:#6987bf1a;--letter-margin:#6987bf6b;--letter-accent:#5573ad;--letter-muted:#65759a;--letter-scrollbar:#5573ade6;--letter-scrollbar-light:#e9f1ff99;--letter-envelope:#dbe8fc;--letter-envelope-note:#f6f9ff;--letter-seal:#718dca}.main-letter--mailbox{--letter-paper:#aa5044;--letter-line:transparent;--letter-margin:transparent;--letter-accent:#fff4df;--letter-muted:#ffe0bf;--letter-scrollbar:#ffeacad9;--letter-scrollbar-light:#692f2873;background-color:#aa5044;background-image:linear-gradient(110deg,#ffffff24,#0000 28% 72%,#4a1d1a38),repeating-linear-gradient(90deg,#ffffff09 0 2px,#0000 2px 12px);border-color:#542d28;border-radius:34px 34px 22px 22px;box-shadow:inset 0 2px #fff3,inset 0 -12px 20px #4d1c1933,12px 14px #3128223d}.main-letter--mailbox:before{display:none}.main-letter:before{content:"";background:var(--letter-margin);width:2px;position:absolute;top:0;bottom:0;left:22px}.main-letter::-webkit-scrollbar{width:12px}.main-letter::-webkit-scrollbar-track{background:var(--letter-scrollbar-light);border-left:1px solid #55463d14;border-radius:0 24px 22px 0}.main-letter::-webkit-scrollbar-thumb{background:var(--letter-scrollbar);border:3px solid var(--letter-scrollbar-light);border-radius:999px;box-shadow:inset 0 1px #ffffff40}.main-letter::-webkit-scrollbar-thumb:hover{filter:brightness(1.1)}.main-letter::-webkit-scrollbar-thumb:active{filter:brightness(.88)}.main-letter::-webkit-scrollbar-corner{background:0 0}.mailbox-letter-picker{text-align:center;justify-items:center;gap:10px;padding:8px 0 4px;display:grid}.mailbox-inbox-heading{justify-items:center;gap:3px;display:grid}.mailbox-inbox-icon{color:#fff4df;background:#53272238;border:2px solid #fff4dfad;border-radius:13px 13px 7px 7px;place-items:center;width:58px;height:48px;display:grid;box-shadow:inset 0 1px #ffffff1f}.mailbox-letter-kicker{color:var(--letter-muted);letter-spacing:.16em;text-transform:uppercase;margin:0;font-family:Nunito,sans-serif!important;font-size:.75rem!important;font-weight:800!important}.mailbox-letter-picker h2{margin-bottom:0}.main-letter--mailbox .mailbox-letter-kicker{color:#ffe0bf}.main-letter--mailbox .mailbox-letter-picker h2{color:#fff4df;text-shadow:1px 2px #4e231f61}.mailbox-letter-intro{max-width:340px;color:var(--letter-muted);margin:0 0 14px!important;font-size:1.28rem!important}.main-letter--mailbox .mailbox-letter-intro{color:#fff0d7}.mailbox-letter-options{background:linear-gradient(#3a1c1b61,#0000 34%),#7b3934;border:3px solid #592e29;border-radius:12px 12px 20px 20px;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;width:min(480px,100%);margin-top:13px;padding:22px 16px 16px;display:grid;position:relative;box-shadow:inset 0 3px 9px #3918176b,0 2px #ffffff24}.mailbox-letter-option{border:2px solid var(--ink);min-height:150px;color:var(--option-accent);cursor:pointer;font:inherit;border-radius:8px 14px 9px 12px;align-content:center;place-items:center;gap:5px;transition:transform .2s,box-shadow .2s;display:grid;box-shadow:4px 5px #2f161552}.mailbox-letter-option:hover{transform:translate(-2px,-3px)rotate(-1deg);box-shadow:7px 8px #2f161552}.mailbox-letter-option--cream{--option-accent:#b9675d;background:#fff8ea}.mailbox-letter-option--blue{--option-accent:#5573ad;background:#e9f1ff}.mailbox-letter-option-month{font-family:Caveat,cursive;font-size:2rem;font-weight:700}.mailbox-letter-option-date{color:var(--ink);letter-spacing:.08em;text-transform:uppercase;font-family:Nunito,sans-serif;font-size:.67rem;font-weight:800}.main-letter-gate{justify-items:center;gap:12px;margin:10px 0 24px;display:grid}.letter-back-button{color:var(--letter-muted);cursor:pointer;background:0 0;border:0;align-self:start;align-items:center;gap:5px;margin:0 0 6px;font-family:Nunito,sans-serif;font-size:.78rem;font-weight:800;display:inline-flex}.letter-back-button:hover{color:var(--letter-accent)}.main-letter-envelope{border:2px solid var(--ink);background:var(--letter-envelope);cursor:pointer;width:260px;height:190px;position:relative;overflow:hidden;box-shadow:4px 5px #55463d26}.main-letter-envelope .flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;background:#ffffff40;height:58%;transition:all .45s;position:absolute;inset:0 0 auto}.heart-seal{color:var(--letter-seal);z-index:4;place-items:center;display:grid;position:absolute;top:56%;left:50%;transform:translate(-50%,-50%)}.heart-seal svg{filter:drop-shadow(0 1px #ffffff38);width:36px;height:36px}.main-letter-envelope .note-paper{background:var(--letter-envelope-note);border:2px solid var(--ink);flex-direction:column;gap:8px;min-height:150px;padding:16px;font-family:Caveat,cursive;font-size:1.25rem;transition:all .45s;display:flex;position:absolute;bottom:-80%;left:10%;right:10%}.main-letter-envelope small{z-index:5;font-family:Caveat,cursive;font-size:1rem;position:absolute;bottom:8px;left:0;right:0}.main-letter-envelope:hover .flap{transform:scale(1.02)}.main-letter-envelope:hover .note-paper{bottom:-74%}.letter-gate-copy{color:#8d6a5b;text-align:center;margin:0;font-family:Nunito,sans-serif;font-size:.95rem;line-height:1.4}.main-letter-copy{animation:.45s both letterReveal}@keyframes letterReveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.main-letter h2{color:var(--letter-accent);margin:0 0 16px;font-family:Caveat,cursive;font-size:3.2rem;font-weight:700}.main-letter p{margin:0 0 18px;font-family:Caveat,cursive;font-size:max(14px,1.55rem);font-weight:700;line-height:1.45}.main-letter .letter-date{text-transform:uppercase;letter-spacing:.16em;color:var(--letter-muted);font-family:Nunito,sans-serif;font-size:max(14px,.75rem);font-weight:700}.main-letter .letter-signoff{text-align:right;margin-top:28px}.main-letter .letter-signoff strong{color:var(--letter-accent);font-size:max(14px,1.7rem);font-weight:700}@media (width<=560px){.main-letter{padding:38px 24px 32px}.main-letter p{font-size:max(14px,1.3rem)}.main-letter h2{font-size:2.7rem}.mailbox-letter-options{gap:10px}.mailbox-letter-option{min-height:130px}.celestial small{font-size:max(14px,.85rem);font-weight:700}}.anniversary-app.sunrise{--app-backdrop-start:#f9eee9;--app-backdrop-mid:#f3ddd7;--app-backdrop-end:#ead8e6;--app-backdrop-glow:#ffe8ce6b;--app-backdrop-haze-a:#fff6e64d;--app-backdrop-haze-b:#f7e0ff33;--app-backdrop-haze-c:#fff0db24;--frame-fill:#f8e4cf;--frame-border-start:#ffd98d;--frame-border-mid:#ef9d79;--frame-border-end:#8f83d8;--block-a:#ffd6a0d1;--block-b:#ffa67eb3;--block-c:#a69ae88f;--block-d:#f5c49294;--block-e:#fff4c2cc}.anniversary-app.day{--app-backdrop-start:#f4f7fb;--app-backdrop-mid:#e5f0f6;--app-backdrop-end:#dce7ef;--app-backdrop-glow:#ffffff80;--app-backdrop-haze-a:#ffffff47;--app-backdrop-haze-b:#dff2ff3d;--app-backdrop-haze-c:#fff6d61f;--frame-fill:#f6eddc;--frame-border-start:#ffe08b;--frame-border-mid:#78c7d0;--frame-border-end:#89a86d;--block-a:#ffeaa1bd;--block-b:#78c7d08f;--block-c:#99b4748a;--block-d:#f7b9a38f;--block-e:#fff8e2d6}.anniversary-app.sunset{--app-backdrop-start:#f8edea;--app-backdrop-mid:#f2d8db;--app-backdrop-end:#ead8ee;--app-backdrop-glow:#ffebd661;--app-backdrop-haze-a:#fff4e83d;--app-backdrop-haze-b:#ffdee133;--app-backdrop-haze-c:#f6e5ff29;--frame-fill:#f4e1d4;--frame-border-start:#ffb36f;--frame-border-mid:#ef7c6f;--frame-border-end:#b57be6;--block-a:#ffb36fc2;--block-b:#ef7c6f9e;--block-c:#b57be68a;--block-d:#f3bd838f;--block-e:#ffebc5c2}.anniversary-app.night{--app-backdrop-start:#eceffd;--app-backdrop-mid:#dfe7fa;--app-backdrop-end:#cfdaf0;--app-backdrop-glow:#f8f0ff52;--app-backdrop-haze-a:#ffffff29;--app-backdrop-haze-b:#d7e1ff2e;--app-backdrop-haze-c:#fff6d614;--frame-fill:#1f2740;--frame-border-start:#7fd5ff;--frame-border-mid:#7b8bff;--frame-border-end:#f08dd2;--block-a:#7fd5ff94;--block-b:#7b8bff80;--block-c:#f08dd275;--block-d:#6fcea66b;--block-e:#f9efc1b3;color:#f6ead9;--text-halo:0 1px 0 #181f34cc, 0 0 0 1px #181f34e6, 0 6px 12px #0c102061, 0 0 18px #7fd5ff24;--text-halo-strong:0 0 0 1px #181f34fa, 1px 0 0 #181f34eb, -1px 0 0 #181f34eb, 0 1px 0 #181f34eb, 0 -1px 0 #181f34eb, 0 0 12px #0c10204d, 0 0 18px #7fd5ff1f}.anniversary-app.night .heart-trail{color:#ffd2e0;filter:drop-shadow(0 2px 8px #ffd2e047)}.campfire-asset{z-index:16;cursor:pointer;background:0 0;border:0;width:258px;padding:0;transition:transform .24s,filter .24s;position:absolute;bottom:30%;left:20%}.campfire-tooltip{border:2px solid var(--ink);width:max-content;max-width:150px;color:var(--ink);opacity:0;pointer-events:none;background:#fff8e8;border-radius:999px;padding:6px 10px;font-family:Caveat,cursive;font-size:1.1rem;line-height:1;transition:opacity .2s,transform .2s;position:absolute;bottom:106%;left:50%;transform:translate(-50%,6px)rotate(-2deg);box-shadow:3px 4px #55463d2e}.campfire-asset:hover .campfire-tooltip,.campfire-asset:focus-visible .campfire-tooltip{opacity:1;transform:translate(-50%)rotate(-2deg)}@keyframes campfireGlow{0%{opacity:.68;transform:translate(-50%)scale(.9)}to{opacity:1;transform:translate(-50%)scale(1.08)}}@keyframes campfireFlicker{0%{transform:translate(-50%)scale(.94,1.05)rotate(-2deg)}to{transform:translate(-50%)scale(1.05,.95)rotate(3deg)}}.campfire-backdrop{background:#2a1f1ca8}.campfire-modal{width:min(820px,96vw);max-height:90vh;color:var(--ink);background:radial-gradient(circle at 9% 4%,#ffe08b57,#0000 25%),linear-gradient(145deg,#fffaf0,#fff0df);border:2px solid #55463dd6;border-radius:34px;padding:30px;position:relative;overflow:auto;box-shadow:0 26px 70px #1e15114d,inset 0 0 0 1px #ffffff70}.campfire-modal-header{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;padding-right:44px;display:grid}.campfire-modal-mark{background:linear-gradient(145deg,#ffeab3,#ffd494);border:2px solid #74482c47;border-radius:20px 24px 18px 22px;place-items:center;width:64px;height:64px;font-size:2.25rem;display:grid;transform:rotate(-4deg);box-shadow:4px 5px #784e2f21}.campfire-modal-header h2{color:#8b5038;margin:0;font-family:Caveat,cursive;font-size:3rem;line-height:.92}.campfire-modal-header p:not(.modal-eyebrow){color:#8c6b5a;margin:5px 0 0;font-size:.98rem}.meal-picker-panel{text-align:center;align-content:center;justify-items:center;gap:14px;min-height:316px;padding:10px 12px 4px;display:grid}.meal-picker-kicker{color:#a66a4b;letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.73rem;font-weight:800}.meal-card{text-align:left;background:radial-gradient(circle at 8% 5%,#ffeda8c2,#0000 23%),#fffaf1;border:1.5px solid #804e3133;border-radius:28px 22px 28px 18px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:18px;width:min(570px,100%);padding:24px 26px;display:grid;box-shadow:0 12px 24px #593e2e17,inset 0 0 0 1px #ffffffb3}.meal-card-emoji{background:#ffe5ad;border-radius:50%;place-items:center;width:82px;height:82px;font-size:3rem;display:grid}.meal-card h3{color:#754333;margin:0;font-family:Caveat,cursive;font-size:2.25rem;line-height:1}.meal-card p{color:#806657;margin:7px 0 0;font-size:.96rem;line-height:1.48}.meal-tags{flex-wrap:wrap;gap:6px;margin-top:13px;display:flex}.meal-tags span{color:#895a42;text-transform:lowercase;background:#f4dfc0;border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:800}.meal-primary-action{cursor:pointer;color:#fffaf0;background:linear-gradient(#d8754c,#b95842);border:0;border-radius:15px;justify-content:center;align-items:center;gap:8px;padding:13px 17px;font-family:Nunito,sans-serif;font-size:.91rem;font-weight:800;line-height:1;text-decoration:none;transition:transform .18s,box-shadow .18s,filter .18s;display:inline-flex;box-shadow:0 6px #813f2d33}.meal-primary-action:hover{filter:brightness(1.04);transform:translateY(-2px);box-shadow:0 8px #813f2d2e}.meal-primary-action:active{transform:translateY(3px);box-shadow:0 3px #813f2d2e}.meal-picker-note{color:#9b7561;justify-content:center;align-items:center;gap:6px;margin:0;font-size:.82rem;line-height:1.4;display:flex}@media (width<=650px){.campfire-modal{border-radius:27px;width:min(100%,100vw - 24px);max-height:calc(100dvh - 24px);padding:24px 16px}.campfire-modal-header h2{font-size:2.4rem}.meal-card{text-align:center;grid-template-columns:1fr;gap:10px;padding:20px}.meal-card-emoji{margin:0 auto}.meal-tags{justify-content:center}.meal-choice-picker{grid-template-columns:1fr}.meal-choice{min-height:70px}.meal-card--cuisine{padding:20px}}.campfire-fallback{position:absolute;inset:0}.campfire-image{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 10px 11px #4d2b1742);transform-origin:50% 88%;width:100%;height:100%;transition:filter .2s;display:block}.campfire-asset:hover .campfire-image,.campfire-asset:focus-visible .campfire-image{filter:drop-shadow(0 16px 13px #592c164f)saturate(1.1);animation:.48s ease-in-out infinite alternate campfireImageHop}@keyframes campfireImageHop{0%{transform:translateY(0)rotate(-2deg)scale(1)}to{transform:translateY(-7px)rotate(2deg)scale(1.045)}}.meal-picker-topline{justify-content:space-between;align-items:center;gap:10px;width:min(570px,100%);display:flex}.meal-wallet{color:#397e92;align-items:center;gap:5px;margin:0;font-size:.82rem;font-weight:800;display:inline-flex}.meal-skipped-toggle{color:#8c6857;cursor:pointer;background:#fffaf2b8;border:1px solid #8b5c4633;border-radius:999px;align-items:center;gap:5px;padding:5px 8px;font-family:Nunito,sans-serif;font-size:.7rem;font-weight:900;transition:transform .18s,background .18s;display:inline-flex}.meal-skipped-toggle:hover{background:#fff8ec;transform:translateY(-1px)}.meal-skipped-toggle span{color:#9a5542;background:#efd6cb;border-radius:50%;place-items:center;min-width:17px;height:17px;font-size:.64rem;display:grid}.meal-skipped-panel{text-align:left;background:#fffaf2c7;border:1.5px solid #90685233;border-radius:20px 16px 20px 18px;width:min(570px,100%);padding:14px;box-shadow:0 7px 18px #593e2e0d}.meal-skipped-panel-header{justify-content:space-between;align-items:start;gap:12px;display:flex}.meal-skipped-panel-header p{color:#875844;margin:0;font-family:Caveat,cursive;font-size:1.45rem;line-height:.9}.meal-skipped-panel-header div>span{color:#8d7162;margin-top:5px;font-size:.72rem;font-weight:700;display:block}.meal-skipped-panel-header>span{color:#9a5542;background:#efd6cb;border-radius:50%;place-items:center;min-width:26px;height:26px;font-size:.72rem;font-weight:900;display:grid}.meal-skipped-list{gap:7px;max-height:210px;margin:12px 0 0;padding:0 3px 0 0;list-style:none;display:grid;overflow:auto}.meal-skipped-list li{background:#f6e8d780;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 9px;display:grid}.meal-skipped-list li>span{font-size:1.2rem}.meal-skipped-list li>div{gap:2px;min-width:0;display:grid}.meal-skipped-list strong{color:#6f5143;text-overflow:ellipsis;white-space:nowrap;font-family:Caveat,cursive;font-size:1.22rem;line-height:.9;overflow:hidden}.meal-skipped-list small{color:#9d7965;letter-spacing:.09em;text-transform:uppercase;font-size:.62rem;font-weight:900}.meal-skipped-list button{color:#337687;cursor:pointer;background:#dceef0;border:0;border-radius:9px;align-items:center;gap:4px;padding:6px 8px;font-family:Nunito,sans-serif;font-size:.68rem;font-weight:900;display:inline-flex}.meal-skipped-list button:hover:not(:disabled){filter:brightness(.98)}.meal-skipped-list button:disabled{cursor:wait;opacity:.6}.meal-skipped-empty{color:#987663;margin:14px 0 2px;font-size:.78rem;font-weight:700}.meal-choice-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(570px,100%);display:grid}.meal-choice{color:#6e584d;cursor:pointer;text-align:left;border:1.5px solid #0000;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-height:84px;padding:13px 14px;font-family:Nunito,sans-serif;transition:transform .2s,box-shadow .2s,border-color .2s,filter .2s;display:grid}.meal-choice:hover:not(:disabled){filter:brightness(1.02);transform:translateY(-2px)}.meal-choice:focus-visible{outline-offset:3px;outline:3px solid #4a859773}.meal-choice:disabled{cursor:wait}.meal-choice--cuisine{background:radial-gradient(circle at 16% 18%,#ffffffeb 0 3px,#0000 4px),radial-gradient(circle at 82% 79%,#ffffffad 0 2px,#0000 3px),linear-gradient(135deg,#e5f5f3,#cfebed);border-radius:24px 14px 24px 18px;box-shadow:0 5px #3d80901f}.meal-choice--dish{background:repeating-linear-gradient(-45deg,#ffffff2b 0 5px,#0000 5px 11px),linear-gradient(135deg,#fff0d4,#ffe2b2);border-radius:14px 25px 16px 23px;box-shadow:0 5px #a86a3f1f}.meal-choice.is-active{border-color:currentColor;transform:translateY(-2px)}.meal-choice--cuisine.is-active{color:#287287;box-shadow:0 7px #307b8c2e}.meal-choice--dish.is-active{color:#9b5938;box-shadow:0 7px #a45e372b}.meal-choice-icon{background:#ffffffb3;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.meal-choice>span:last-child{gap:3px;display:grid}.meal-choice strong{font-family:Caveat,cursive;font-size:1.45rem;line-height:.88}.meal-choice small{color:#806a5e;font-size:.7rem;font-weight:800;line-height:1.2}.meal-card{position:relative;overflow:hidden}.meal-skip-action{z-index:1;color:#a45e45;cursor:pointer;background:#fff8eddb;border:1px solid #874d3833;border-radius:50%;place-items:center;width:30px;height:30px;transition:transform .18s,background .18s;display:grid;position:absolute;top:11px;left:12px}.meal-skip-action:hover{background:#f7d9ce;transform:scale(1.08)rotate(4deg)}.meal-skip-action:focus-visible{outline-offset:2px;outline:3px solid #b4644959}.meal-card-type{letter-spacing:.11em;text-transform:uppercase;align-items:center;gap:5px;font-weight:900;display:inline-flex;color:#a66a4b!important;margin:0 0 7px!important;font-size:.68rem!important;line-height:1!important}.meal-card--cuisine{text-align:center;grid-template-columns:1fr;justify-items:center;padding:24px 48px}.meal-card--cuisine .meal-card-emoji{background:#d5eff1;width:94px;height:94px}.meal-card--cuisine .meal-card-type,.meal-card--cuisine .meal-tags{justify-content:center}.meal-card--cuisine .meal-card-type{color:#337b8d!important}.meal-rarity{color:#786255;letter-spacing:.11em;text-transform:uppercase;background:#e2d5c4c7;border-radius:999px;padding:4px 8px;font-size:.65rem;font-weight:900;position:absolute;top:11px;right:13px}.meal-card--rare{background:radial-gradient(circle at 8% 5%,#d3e8ffeb,#0000 23%),#f9fbff;border-color:#6480b475}.meal-card--rare .meal-card-emoji{background:#d9eafa}.meal-card--rare .meal-rarity{color:#456a9d;background:#dbeaff}.meal-card--legendary{background:radial-gradient(circle at 8% 5%,#ffea8ee6,#0000 26%),#fffaf1;border-color:#d0963a94;box-shadow:0 12px 24px #94672326,inset 0 0 0 1px #ffffffb3,0 0 24px #ffc24433}.meal-card--legendary .meal-card-emoji{background:#ffe69b}.meal-card--legendary .meal-rarity{color:#96670c;background:#ffe69a}.gacha-roll-stage{background:#fffaf1d9;border:1.5px solid #804e3130;border-radius:28px 22px 28px 18px;align-content:center;justify-items:center;width:min(620px,100%);min-height:300px;padding:24px 30px;animation:.32s ease-out both gachaStageArrive;display:grid;position:relative;overflow:hidden;box-shadow:0 12px 24px #593e2e14,inset 0 0 0 1px #ffffffb8}.gacha-roll-stage h3{color:#754333;margin:5px 0 0;font-family:Caveat,cursive;font-size:2.45rem;line-height:1}.gacha-roll-stage>p:not(.gacha-roll-kicker){color:#806657;margin:7px 0 0;font-size:.96rem;line-height:1.4}.gacha-roll-kicker{color:#a66a4b;letter-spacing:.11em;text-transform:uppercase;align-items:center;gap:6px;margin:0 0 8px;font-size:.76rem;font-weight:900;display:inline-flex}.gacha-roll-stage--wish{background:#38375f;border-color:#5b4d8270;min-height:340px;padding:0}.gacha-wish-sky{border-radius:inherit;background:radial-gradient(circle at 20% 28%,#ffffffe6 0 2px,#0000 3px),radial-gradient(circle at 75% 65%,#fffc 0 1.5px,#0000 2.5px),radial-gradient(circle at 38% 70%,#fff6c6e6 0 1px,#0000 2px),radial-gradient(circle at 91% 39%,#ffffffe0 0 1.5px,#0000 2.5px),linear-gradient(135deg,#38375f 0%,#635889 48%,#ab7999 75%,#f0ad82 100%);position:absolute;inset:0;overflow:hidden;box-shadow:0 8px 18px #654b7533}.gacha-sky-star{z-index:1;color:#fff8c6;filter:drop-shadow(0 0 4px #fff7c0f0);width:12px;height:12px;margin:-6px;animation:1.4s ease-in-out infinite alternate gachaStarTwinkle;display:block;position:absolute}.gacha-sky-star:before{content:"✦";font-size:.96rem;line-height:1;position:absolute;inset:0}.gacha-wish-orb{z-index:2;color:#fff7c1;cursor:pointer;font:inherit;filter:drop-shadow(0 0 8px #fff4a9f2);background:0 0;border:0;grid-template-columns:1fr;align-content:center;place-items:center;gap:3px;animation:.78s ease-in-out infinite alternate gachaWishPulse;display:grid;position:absolute;inset:0}.gacha-wish-orb>span{color:#fffbe4;text-shadow:0 1px 4px #2f2a4fc7;font-family:Caveat,cursive;font-size:1.28rem;font-weight:800;line-height:1}.gacha-wish-orb>svg{width:48px;height:48px}.gacha-wish-orb:hover:not(:disabled){color:#fffdf0;filter:drop-shadow(0 0 12px #fff7b6)}.gacha-wish-orb:focus-visible{outline-offset:-10px;border-radius:50%;outline:2px solid #fff9d5}.gacha-wish-orb:disabled{cursor:wait}.gacha-wish-comet{opacity:0;background:linear-gradient(90deg,#0000,#fff6c8 72%,#fff);border-radius:999px;width:86px;height:4px;position:absolute;transform:rotate(-27deg);box-shadow:0 0 8px #fff8cef0}.gacha-wish-sky.is-wishing .gacha-wish-comet{animation:1.06s ease-in infinite gachaComet}.gacha-wish-comet--one{top:18px;left:-69px}.gacha-wish-comet--two{animation-delay:.36s;top:55px;left:-96px}.gacha-wish-comet--three{animation-delay:.72s;top:7px;left:-125px}.gacha-roll-stage--wheel{background:radial-gradient(circle at 50% 52%,#ffe899b3,#0000 36%),#fffaf1}.gacha-wheel-wrap{place-items:center;width:192px;height:192px;display:grid;position:relative}.gacha-wheel{cursor:pointer;width:182px;height:182px;font:inherit;appearance:none;background:conic-gradient(#eaa36d 0deg 72deg,#f7d58a 72deg 144deg,#93b9aa 144deg 216deg,#dd9dab 216deg 288deg,#a8c5d8 288deg 360deg);border:7px solid #fff7e8;border-radius:50%;padding:0;position:relative;box-shadow:0 0 0 2px #965b3a42,0 8px 17px #66422829}.gacha-wheel.is-spinning{animation:2.18s cubic-bezier(.12,.72,.12,1) both gachaWheelSpin}.gacha-wheel:hover:not(:disabled){filter:brightness(1.05)saturate(1.08)}.gacha-wheel:focus-visible{outline-offset:5px;outline:3px solid #9f523bc7}.gacha-wheel:disabled{cursor:wait}.gacha-wheel-slot{background:#fffcefb8;border:1px solid #ffffffbd;border-radius:50%;place-items:center;width:37px;height:37px;margin:-18.5px;font-size:1.35rem;display:grid;position:absolute;top:50%;left:50%;box-shadow:0 2px 4px #5d3f2d1f}.gacha-wheel-hub{color:#fff9dd;background:#c5694f;border:3px solid #fff7e8;border-radius:50%;place-items:center;width:48px;height:48px;margin:auto;display:grid;position:absolute;inset:0;box-shadow:0 2px #68372638}.gacha-wheel-pointer{z-index:2;filter:drop-shadow(0 2px 1px #592f1f38);border:12px solid #0000;border-top:27px solid #9e533b;border-bottom:0;width:0;height:0;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.gacha-roll-stage--cards{background:radial-gradient(circle at 51% 56%,#ffdea49e,#0000 36%),#fffaf1}.gacha-card-deck{width:240px;height:132px;position:relative}.gacha-draw-card{color:#fff7e8;cursor:pointer;width:84px;height:114px;font:inherit;transform-origin:50% 115%;background:repeating-linear-gradient(135deg,#ffefca59 0 4px,#0000 4px 8px),#cf7d61;border:2px solid #8b4e3c7a;border-radius:13px 11px 14px 10px;align-content:center;justify-items:center;gap:7px;padding:0;transition:border-color .16s,box-shadow .16s,filter .16s;display:grid;position:absolute;top:8px;left:78px;box-shadow:0 7px 11px #5d372a2e}.gacha-draw-card>span{font-family:Caveat,cursive;font-size:2.9rem;font-weight:800;line-height:.7}.gacha-draw-card i{background:#fff5d9d1;border-radius:99px;width:41px;height:2px}.gacha-draw-card--1{z-index:1;transform:translate(-51px)rotate(-13deg)}.gacha-draw-card--2{z-index:3;transform:translateY(-12px)rotate(2deg)}.gacha-draw-card--3{z-index:2;transform:translate(70px)translateY(-8px)rotate(16deg)}.gacha-draw-card:hover:not(:disabled),.gacha-draw-card:focus-visible{filter:brightness(1.07);border-color:#ffe6a2;outline:0;box-shadow:0 0 0 3px #ffe7a06b,0 9px 14px #5d372a3d}.gacha-draw-card.is-picked{border-color:#ffe4a0;box-shadow:0 0 0 3px #ffe69799,0 10px 16px #5d372a47}.gacha-card-deck.is-shuffling .gacha-draw-card{cursor:wait}.gacha-card-deck.is-shuffling .gacha-draw-card--1{animation:1.7s cubic-bezier(.45,0,.55,1) infinite gachaCardOne}.gacha-card-deck.is-shuffling .gacha-draw-card--2{animation:1.7s cubic-bezier(.45,0,.55,1) infinite gachaCardTwo}.gacha-card-deck.is-shuffling .gacha-draw-card--3{animation:1.7s cubic-bezier(.45,0,.55,1) infinite gachaCardThree}.meal-empty-card{text-align:left;background:#fffaf1b8;border:1.5px dashed #aa674173;border-radius:28px 22px 28px 18px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:17px;width:min(570px,100%);padding:25px 27px;display:grid}.meal-empty-card>span{color:#bd704c;background:#f4dfc0;border-radius:50%;place-items:center;width:76px;height:76px;display:grid}.meal-empty-card h3{color:#754333;margin:0;font-family:Caveat,cursive;font-size:2.1rem;line-height:1}.meal-empty-card p{color:#806657;margin:7px 0 0;font-size:.94rem;line-height:1.46}.meal-roll-action{min-width:205px}.meal-primary-action:disabled{cursor:not-allowed;opacity:.56;filter:grayscale(.2)}.meal-primary-action:disabled:hover{transform:none;box-shadow:0 6px #813f2d33}.meal-picker-note.has-notice{color:#a45e3f}@keyframes gachaStageArrive{0%{opacity:0;transform:translateY(7px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes gachaWishPulse{0%{transform:scale(.82)rotate(-8deg)}to{transform:scale(1.12)rotate(8deg)}}@keyframes gachaStarTwinkle{0%{opacity:.35;transform:scale(.62)rotate(0)}to{opacity:1;transform:scale(1.18)rotate(20deg)}}@keyframes gachaComet{0%{opacity:0;transform:translate(0)rotate(-27deg)}16%{opacity:1}72%{opacity:1}to{opacity:0;transform:translate(315px)rotate(-27deg)}}@keyframes gachaWheelSpin{0%{transform:rotate(0)}to{transform:rotate(var(--gacha-wheel-finish,1062deg))}}@keyframes gachaCardOne{0%,to{z-index:1;transform:translate(-51px)rotate(-13deg)}33%{z-index:3;transform:translate(70px)translateY(-8px)rotate(16deg)}66%{z-index:2;transform:translate(5px)translateY(-12px)rotate(2deg)}}@keyframes gachaCardTwo{0%,to{z-index:3;transform:translateY(-12px)rotate(2deg)}33%{z-index:1;transform:translate(-51px)rotate(-13deg)}66%{z-index:2;transform:translate(70px)translateY(-8px)rotate(16deg)}}@keyframes gachaCardThree{0%,to{z-index:2;transform:translate(70px)translateY(-8px)rotate(16deg)}33%{z-index:3;transform:translateY(-12px)rotate(2deg)}66%{z-index:1;transform:translate(-51px)rotate(-13deg)}}.currency-wallet{z-index:35;color:#d77a87;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#fffaf2d1;border:1.5px solid #b9675d57;border-radius:999px;justify-content:flex-start;align-items:center;gap:8px;width:50px;height:50px;padding:0 15px;transition:width .22s,transform .16s,border-color .16s,background .16s,padding .22s;display:flex;position:absolute;top:28px;right:28px;overflow:hidden;box-shadow:0 5px #55463d1a,0 10px 20px #55463d21,inset 0 1px #fffc}.currency-wallet:hover,.currency-wallet:focus-visible{background:#fffaf2f5;border-color:#b9675d85;width:184px;padding-inline:16px;transform:translateY(-2px)}.currency-wallet svg{color:#d77a87;flex:none}.currency-wallet span{color:#9f665d;white-space:nowrap;letter-spacing:.02em;opacity:0;flex:none;font-family:Caveat,cursive;font-size:1.05rem;font-weight:800;line-height:1;transition:opacity .14s 60ms,transform .18s 60ms;display:block;transform:translate(-5px)}.currency-wallet strong{color:#754333;white-space:nowrap;opacity:0;flex:none;margin:0;font-family:Nunito,sans-serif;font-size:.95rem;font-weight:800;line-height:1;transition:opacity .14s 90ms,transform .18s 90ms;display:block;transform:translate(-5px)}.currency-wallet:hover :is(span,strong),.currency-wallet:focus-visible :is(span,strong){opacity:1;transform:translate(0)}.currency-wallet small{color:#9f665d;opacity:0;pointer-events:none;background:#fffaf2f0;border-radius:999px;width:max-content;padding:5px 8px;font-size:.66rem;transition:opacity .16s;position:absolute;top:calc(100% + 9px);right:0}.currency-wallet:hover small,.currency-wallet:focus-visible small{opacity:1}.fragment-backdrop{-webkit-backdrop-filter:blur(5px)saturate(1.08);backdrop-filter:blur(5px)saturate(1.08);background:#5d413d80}.fragment-modal{width:min(540px,100vw - 30px);color:var(--ink);background:radial-gradient(circle at 11% 7%,#fffffff2,#0000 25%),radial-gradient(circle at 91% 91%,#f4c9b87a,#0000 34%),linear-gradient(155deg,#fffdf5 0%,#fff5e8 56%,#f8e8de 100%);border:2px solid #55463dcc;border-radius:32px 28px 34px 26px;padding:30px;position:relative;overflow:hidden;box-shadow:0 18px #55463d1a,0 30px 65px #55463d47,inset 0 0 0 1px #ffffffc7}.fragment-modal:before{content:"";pointer-events:none;border:1px dashed #b9675d52;border-radius:23px 20px 25px 18px;position:absolute;inset:11px}.fragment-modal:after{content:"♥";color:#d8857624;pointer-events:none;font-family:Caveat,cursive;font-size:4.5rem;line-height:1;position:absolute;bottom:8px;right:22px;transform:rotate(12deg)}.fragment-modal>*{z-index:1;position:relative}.fragment-modal :is(h2,p,span,strong,small,button){text-shadow:none}.fragment-close{z-index:2;color:#9d645a;position:absolute;top:20px;right:20px}.fragment-close:hover{color:#b75668}.fragment-header{align-items:center;gap:14px;padding:4px 40px 0 3px;display:flex}.fragment-symbol{color:#c26d69;background:linear-gradient(145deg,#ffe8df,#f6d1c2);border:1.5px solid #b9675d47;border-radius:50% 48% 52% 46%;flex:none;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 5px #55463d14,inset 0 1px #ffffffbf}.fragment-header h2{color:#754333;letter-spacing:0;align-items:center;gap:6px;margin:0;font-family:Caveat,cursive;font-size:2.05rem;font-weight:700;line-height:.95;display:flex}.fragment-header h2 svg{color:#d77a87;flex:none}.fragment-balance{background:#fffdf6ad;border:1.5px solid #b9675d38;border-radius:21px 18px 22px 17px;margin-top:22px;padding:13px 17px;box-shadow:0 6px #55463d0d}.fragment-balance>span{color:#a86a61;margin-bottom:3px;font-family:Caveat,cursive;font-size:1.06rem;font-weight:800;line-height:1;display:block}.fragment-balance>div{align-items:baseline;gap:7px;display:flex}.fragment-balance svg{color:#d67a77;align-self:center}.fragment-balance strong{color:#754333;letter-spacing:-.045em;font-size:2.15rem;font-weight:800}.fragment-entry{margin-top:16px}.fragment-hint{color:#9b7769;margin:0 0 8px;font-family:Caveat,cursive;font-size:1.05rem;font-weight:700}.fragment-input-wrap{background:#fffdf7e0;border:1.5px solid #55463d38;border-radius:17px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;transition:border-color .16s,box-shadow .16s;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffffd1}.fragment-input-wrap:focus-within{border-color:#b9675d9e;box-shadow:0 0 0 3px #d8857626}.fragment-input-wrap>span{color:#c17b70;padding-left:13px;font-size:.8rem;font-weight:800}.fragment-input-wrap input{color:#754333;min-width:0;font:inherit;background:0 0;border:0;outline:0;padding:13px 10px;font-size:.86rem}.fragment-input-wrap input::placeholder{color:#8f6a5b94}.fragment-input-wrap button{color:#fff8ea;cursor:pointer;background:linear-gradient(#e89a8c,#d88576);border:0;border-left:1px solid #55463d26;justify-content:center;align-self:stretch;align-items:center;width:48px;padding:0;font-size:.76rem;font-weight:800;transition:transform .15s,filter .15s;display:inline-flex}.fragment-input-wrap button:hover{filter:brightness(1.04);transform:translateY(-1px)}.fragment-response{color:#9b7769;min-height:19px;margin-top:10px;padding-left:1px;font-size:.72rem;line-height:1.4;transition:color .18s}.fragment-response.is-success{color:#9e7650}.fragment-response.is-error{color:#b75668}@media (width<=650px){.fragment-modal{padding:27px 22px}.fragment-balance strong{font-size:1.75rem}.fragment-input-wrap button{padding-inline:11px}}
