@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}.star-jar-asset{z-index:15;pointer-events:auto;cursor:pointer;transform-origin:50% 82%;will-change:transform;background:0 0;border:0;width:min(18%,140px);padding:0;animation:none;position:absolute;bottom:52%;left:70%}.star-jar-asset:after{content:"";position:absolute;inset:-16px}.star-jar-asset--bouncing{animation:.72s ease-in-out starJarWiggle}.star-jar-image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;transform-origin:50% 82%;will-change:transform;width:100%;height:auto;animation:5.8s ease-in-out infinite starJarBob;display:block}.star-jar-hover-sparkles{color:#fff1a8;letter-spacing:.5rem;opacity:0;text-shadow:0 0 8px #ffd85dcc;font-family:Caveat,cursive;font-size:1.15rem;transition:opacity .18s,transform .18s;position:absolute;top:16%;left:50%;transform:translate(-50%,8px)rotate(-8deg)}.star-jar-asset:hover .star-jar-hover-sparkles,.star-jar-asset:focus-visible .star-jar-hover-sparkles{opacity:.9;transform:translate(-50%)rotate(2deg)}.star-jar-asset:hover .star-jar-image,.star-jar-asset:focus-visible .star-jar-image{filter:drop-shadow(0 12px 14px #ffd56161)}.star-jar-asset:focus-visible{outline-offset:5px;border-radius:30px;outline:3px solid #ffdd77d1}@keyframes starJarWiggle{0%,to{transform:translate(0,0)rotate(0)}25%{transform:translate(-3px,-3px)rotate(-4deg)}55%{transform:translate(3px,-7px)rotate(4deg)}80%{transform:translate(-1px,-2px)rotate(-2deg)}}@keyframes starJarBob{0%,to{transform:translateY(5px)rotate(-4deg)}50%{transform:translateY(-16px)rotate(4deg)}}@keyframes starJarBobReduced{0%,to{transform:translateY(2px)}50%{transform:translateY(-6px)}}.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{z-index:28}.scatter-flower.bloomed{z-index:40}.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{z-index:19}.scatter-pet.happy{z-index:40}.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)}.encouragement-backdrop{z-index:120;animation:.42s both encouragementBackdropIn}.encouragement-modal{width:min(390px,100vw - 42px);min-height:390px;color:var(--ink);text-align:center;background:radial-gradient(circle at 20% 12%,#ffffffdb,#0000 28%),radial-gradient(circle at 82% 78%,#f5b8cc33,#0000 30%),linear-gradient(#fffaf1 0%,#fff2e5 100%);border:2px solid #55463dc2;border-radius:42% 58% 48% 52%/45% 42% 58% 55%;flex-direction:column;justify-content:flex-start;align-items:center;padding:30px 38px 32px;animation:.7s cubic-bezier(.22,1,.36,1) both encouragementModalIn;display:flex;position:relative;overflow:hidden;box-shadow:0 22px 52px #3128223d,inset 0 0 0 8px #fff8ea24}.encouragement-modal:before,.encouragement-modal:after{content:"";pointer-events:none;border:1px solid #d885761f;border-radius:50%;position:absolute;transform:rotate(-12deg)}.encouragement-modal:before{inset:13px}.encouragement-modal:after{border-color:#efb3a61f;inset:20px 11px;transform:rotate(8deg)}.encouragement-close{z-index:2;top:20px;right:20px}.encouragement-ribbon{z-index:1;color:#fffaf2;background:#d98576;border-radius:999px 999px 10px 10px;margin:4px 0 0;padding:5px 16px 7px;font-family:Caveat,cursive;font-size:1.15rem;line-height:1;animation:.5s 80ms both encouragementCopyIn;position:relative;transform:rotate(-2deg);box-shadow:0 4px #8f524c29}.encouragement-star-stage{width:154px;height:142px;margin:8px 0 -2px;position:relative}.encouragement-star{color:#e7b84f;filter:drop-shadow(0 4px 8px #d8912447);width:92px;height:92px;animation:.95s cubic-bezier(.22,1,.36,1) .1s both goldStarSettle;position:absolute;top:31px;left:50%;transform:translate(-50%)}.encouragement-star-icon{z-index:1;color:currentColor;text-shadow:0 2px #ad7731,0 5px 8px #a66d2b40;font-family:Georgia,Times New Roman,serif;font-size:6rem;line-height:1;display:block;position:relative}.encouragement-sparkle{z-index:2;color:#f1c95f;text-shadow:0 0 7px #ffd75eb8;font-family:Caveat,cursive;font-style:normal;animation:1.8s ease-in-out infinite alternate encouragementSparkle;position:absolute}.encouragement-sparkle--one{font-size:1.05rem;top:8px;left:-13px}.encouragement-sparkle--two{font-size:1.35rem;animation-delay:-.7s;top:25px;right:-12px}.encouragement-sparkle--three{font-size:1.8rem;animation-delay:-1.1s;bottom:-6px;left:2px}.encouragement-ray{border:2px dashed #e7b84f6b;border-radius:50%;width:118px;height:118px;animation:.8s ease-out .18s both encouragementRaysIn;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(8deg)scale(.5)}.encouragement-ray--two{width:135px;height:82px;transform:translate(-50%,-50%)rotate(62deg)scale(.5)}.encouragement-ray--three{width:135px;height:82px;transform:translate(-50%,-50%)rotate(-62deg)scale(.5)}.encouragement-kicker{z-index:1;color:#c26d83;margin:0 0 15px;font-family:Caveat,cursive;font-size:2rem;line-height:1;animation:.5s .48s both encouragementCopyIn;position:relative}.encouragement-message{z-index:1;max-width:290px;margin:0;font-family:Nunito,sans-serif;font-size:1rem;font-weight:700;line-height:1.5;animation:.5s .65s both encouragementCopyIn;position:relative}.encouragement-note{background:#ffe7ecdb;border:1.5px solid #c26d834d;border-radius:16px 22px 15px 19px;width:100%;padding:24px 18px 19px;position:relative;transform:rotate(1.2deg);box-shadow:0 8px #c26d831a}.encouragement-note-tape{opacity:.88;background:#ffd39ab8;width:68px;height:20px;position:absolute;top:-10px;left:50%;transform:translate(-50%)rotate(-3deg)}.encouragement-signoff{color:#c26d83;margin:16px 0 0;font-family:Caveat,cursive;font-size:1.35rem;line-height:1;animation:.5s .8s both encouragementCopyIn}.star-flight{z-index:2;left:var(--star-origin-x);top:var(--star-origin-y);color:#f0bf4d;pointer-events:none;filter:drop-shadow(0 0 9px #ffd453e6);font-family:Georgia,serif;font-size:2.1rem;line-height:1;animation:.8s cubic-bezier(.22,1,.36,1) forwards starFlight;position:fixed}@keyframes encouragementModalIn{0%{opacity:0;transform:translateY(14px)scale(.88)rotate(-2deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}@keyframes encouragementBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes encouragementModalShellIn{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes goldStarModalIn{0%{opacity:0;transform:scale(.04)rotate(-540deg)}32%{opacity:1;transform:scale(.82)rotate(-80deg)}58%{transform:scale(1.18)rotate(165deg)}78%{transform:scale(.94)rotate(290deg)}to{opacity:1;transform:scale(1) rotate(var(--star-angle,0deg))}}@keyframes goldStarModalReducedIn{0%{opacity:0;transform:scale(.86)rotate(-24deg)}to{opacity:1;transform:scale(1) rotate(var(--star-angle,0deg))}}.encouragement-modal{clip-path:none;width:min(680px,100vw - 10px);min-height:650px;box-shadow:none;filter:drop-shadow(0 22px 20px #3128223d);background:0 0;border:0;border-radius:0;justify-content:center;padding:180px 165px;animation:.72s cubic-bezier(.22,1,.36,1) both encouragementModalShellIn}.encouragement-modal-star-shape{z-index:0;color:#e8b94f;stroke:#a86d2d;stroke-width:.9px;transform-origin:50%;width:100%;height:100%;animation:1.25s cubic-bezier(.16,1,.3,1) 40ms both goldStarModalIn,1.25s ease-out 40ms both goldStarGlow;position:absolute;inset:0}.encouragement-modal--love .encouragement-modal-star-shape{color:#e984a5;stroke:#a9486c}.encouragement-modal--encouragement .encouragement-modal-star-shape{color:#8ebd82;stroke:#4d8259}.encouragement-modal--together .encouragement-modal-star-shape{color:#efc957;stroke:#a87528}.encouragement-modal--reminds-me .encouragement-modal-star-shape{color:#78b8d5;stroke:#397899}.encouragement-modal--misc .encouragement-modal-star-shape{color:#aa8bce;stroke:#705095}.encouragement-modal--love .encouragement-message{color:#fff6f7}.encouragement-modal--encouragement .encouragement-message{color:#f5fff1}.encouragement-modal--together .encouragement-message{color:#fff9df}.encouragement-modal--reminds-me .encouragement-message{color:#f0fbff}.encouragement-modal--misc .encouragement-message{color:#fbf4ff}.encouragement-type-note{z-index:5;color:#5f4a3e;text-align:left;background:#ffe99b;border:1px solid #8e692c47;flex-direction:column;justify-content:center;width:168px;min-height:88px;padding:18px 14px 12px;animation:.6s cubic-bezier(.22,1,.36,1) .36s both encouragementTypeNoteIn;display:flex;position:absolute;top:13%;left:8%;transform:rotate(-7deg);box-shadow:3px 5px #5b432a21,0 8px 14px #5b432a26}.encouragement-type-note-tape{background:#ffcb89d1;width:58px;height:18px;position:absolute;top:-9px;left:50%;transform:translate(-50%)rotate(4deg)}.encouragement-type-note-label{color:#5f4a3eb8;margin-bottom:3px;font-family:Caveat,cursive;font-size:1.05rem;line-height:1}.encouragement-type-note strong{font-family:Caveat,cursive;font-size:1.35rem;font-weight:700;line-height:1.02}.encouragement-modal--love .encouragement-type-note{background:#ffd8e5;border-color:#a9486c4d}.encouragement-modal--encouragement .encouragement-type-note{background:#d9efcf;border-color:#4d82594d}.encouragement-modal--together .encouragement-type-note{background:#ffe99b;border-color:#a875284d}.encouragement-modal--reminds-me .encouragement-type-note{background:#d5effa;border-color:#3978994d}.encouragement-modal--misc .encouragement-type-note{background:#eadcf7;border-color:#7050954d}.encouragement-star-stage,.encouragement-message{z-index:3}.encouragement-star-stage{pointer-events:none;width:auto;height:auto;margin:0;position:absolute;inset:0}.encouragement-modal:before,.encouragement-modal:after{display:none}.encouragement-close{color:#9b7047;width:30px;height:30px;top:110px;right:94px}.encouragement-star{width:100px;height:100px;top:39px}.encouragement-star-icon{stroke:#a66d2b;stroke-width:1.25px;width:100%;height:100%}.encouragement-ray{border-color:#cd913257}.encouragement-tiny-sparkle{z-index:3;color:#cf8c2c;font-family:Georgia,serif;font-style:normal;line-height:1;animation:1.5s ease-in-out infinite alternate encouragementTinySparkle,.9s cubic-bezier(.22,1,.36,1) .42s both encouragementSparkleEntrance;position:absolute}.encouragement-message{color:#76534c;width:100%;max-width:285px;margin:0 auto;font-family:Caveat,cursive;font-size:1.75rem;font-weight:700;line-height:1.15;animation:.55s .62s both encouragementCopyIn;transform:rotate(-1deg)}.encouragement-modal .encouragement-message{color:#55403b;text-shadow:none}.encouragement-category-switcher{z-index:4;gap:9px;display:grid;position:absolute;top:50%;right:7%;transform:translateY(-50%)}.encouragement-category-button{color:#fffdf4;cursor:pointer;border:2px solid #fffcf0e6;border-radius:50%;place-items:center;width:38px;height:38px;padding:0;transition:transform .16s,filter .16s;display:grid;box-shadow:0 3px 7px #55463d33}.encouragement-category-button:hover,.encouragement-category-button:focus-visible{filter:brightness(1.08);transform:translate(-3px)scale(1.08)}.encouragement-category-button.is-active{outline-offset:2px;outline:2px solid #ffffffeb;transform:translate(-3px)scale(1)}.encouragement-category-button--love{background:#e984a5}.encouragement-category-button--encouragement{background:#79aa76}.encouragement-category-button--together{background:#e2b73e}.encouragement-category-button--reminds-me{background:#6da9c6}.encouragement-category-button--misc{background:#9b79c2}@keyframes encouragementTinySparkle{0%{opacity:.35;transform:scale(.7)rotate(-12deg)}to{opacity:1;transform:scale(1.15)rotate(12deg)}}@keyframes encouragementTypeNoteIn{0%{opacity:0;transform:translateY(-10px)rotate(-7deg)scale(.9)}to{opacity:1;transform:translateY(0)rotate(-7deg)scale(1)}}@keyframes goldStarGlow{0%{filter:drop-shadow(0 0 #ffdd6700)}45%{filter:drop-shadow(0 0 30px #ffdd67e6)}to{filter:drop-shadow(0 0 12px #ffdd674d)}}@keyframes encouragementSparkleEntrance{0%{opacity:0;transform:scale(0)rotate(-90deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes goldStarSettle{0%{opacity:0;transform:translate(-50%,58px)scale(.08)rotate(-240deg)}35%{opacity:1;transform:translate(-50%,-8px)scale(1.22)rotate(130deg)}62%{transform:translate(-50%,3px)scale(.92)rotate(280deg)}82%{transform:translate(-50%,-2px)scale(1.06)rotate(350deg)}to{opacity:1;transform:translate(-50%)scale(1)rotate(360deg)}}@keyframes starFlight{0%{opacity:0;transform:translate(-50%,-50%)scale(.45)rotate(-20deg)}18%{opacity:1}to{opacity:0;transform:translate(calc(50vw - var(--star-origin-x)), calc(50vh - var(--star-origin-y) - 105px)) scale(1.5) rotate(18deg)}}@keyframes encouragementCopyIn{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes encouragementSparkle{0%{opacity:.35;transform:scale(.82)rotate(-8deg)}to{opacity:1;transform:scale(1.08)rotate(8deg)}}@keyframes encouragementRaysIn{0%{opacity:0;transform:translate(-50%,-50%)rotate(0)scale(.25)}to{opacity:1;transform:translate(-50%,-50%)rotate(8deg)scale(1)}}@media (prefers-reduced-motion:reduce){.encouragement-backdrop,.star-jar-asset,.star-jar-asset--bouncing,.encouragement-modal,.encouragement-modal-star-shape,.encouragement-star,.encouragement-kicker,.encouragement-message,.encouragement-type-note,.encouragement-tiny-sparkle,.encouragement-ribbon,.encouragement-signoff,.encouragement-ray,.star-flight,.encouragement-sparkle{animation:none}.star-jar-image{animation:8s ease-in-out infinite starJarBobReduced}.star-flight{display:none}.encouragement-modal-star-shape{animation:.5s ease-out both goldStarModalReducedIn}}@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{scrollbar-width:none;flex-wrap:nowrap;gap:10px;min-width:0;display:flex;overflow-x:auto}.kdrama-thumbnails::-webkit-scrollbar{display:none}.kdrama-thumb{cursor:pointer;opacity:.8;background:#fffcf5eb;border:1.5px solid #55463d1f;border-radius:999px;flex:0 0 44px;width:44px;height:44px;padding:5px;transition:transform .2s,opacity .2s,box-shadow .2s,border-color .2s;box-shadow:0 8px 18px #55463d0f}.kdrama-thumb-dot{border-radius:999px;width:100%;height: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}.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}.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}.encouragement-modal{min-height:560px;padding:150px 86px}.encouragement-type-note{width:126px;min-height:78px;padding:15px 11px 10px;top:10%;left:6%}.encouragement-type-note strong{font-size:1.15rem}.encouragement-kicker{font-size:1.8rem}.encouragement-category-switcher{gap:6px;right:4%}.encouragement-category-button{width:32px;height:32px}.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}.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:var(--palette-paper,#fff8ea);--letter-line:color-mix(in srgb, var(--palette-accent,#b9675d) 9%, transparent);--letter-margin:color-mix(in srgb, var(--palette-accent,#b9675d) 38%, transparent);--letter-accent:var(--palette-accent,#b9675d);--letter-muted:color-mix(in srgb, var(--letter-accent) 68%, #55463d);--letter-scrollbar:var(--letter-accent);--letter-scrollbar-light:color-mix(in srgb, var(--letter-paper) 60%, transparent);--letter-envelope:var(--palette-envelope,#faebd9);--letter-envelope-note:color-mix(in srgb, var(--letter-paper) 45%, white);--letter-seal:var(--letter-accent);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}.letter-palette--cream{--palette-paper:#fff8ea;--palette-accent:#b9675d;--palette-envelope:#faebd9}.letter-palette--blue{--palette-paper:#e9f1ff;--palette-accent:#5573ad;--palette-envelope:#dbe8fc}.letter-palette--pink{--palette-paper:#ffdde2;--palette-accent:#ae4766;--palette-envelope:#fdcde2}.letter-palette--lavender{--palette-paper:#f0e9fa;--palette-accent:#765aa5;--palette-envelope:#e4d8f3}.letter-palette--sage{--palette-paper:#e8f0df;--palette-accent:#56794e;--palette-envelope:#d9e6ce}.letter-palette--peach{--palette-paper:#ffede3;--palette-accent:#b46354;--palette-envelope:#f9dccb}.letter-palette--lemon{--palette-paper:#fff8d5;--palette-accent:#8b711d;--palette-envelope:#f7eab8}.letter-palette--mint{--palette-paper:#e3f7ef;--palette-accent:#367c69;--palette-envelope:#ccebdd}.letter-palette--coral{--palette-paper:#ffe4dd;--palette-accent:#b7504c;--palette-envelope:#f9cfc5}.letter-palette--sky{--palette-paper:#e5f5fa;--palette-accent:#397a91;--palette-envelope:#d1eaf3}.letter-palette--teal{--palette-paper:#dff1ee;--palette-accent:#2f777b;--palette-envelope:#c5e3df}.letter-palette--apricot{--palette-paper:#fff0d9;--palette-accent:#a66632;--palette-envelope:#f8dfbc}.letter-palette--periwinkle{--palette-paper:#e9ebff;--palette-accent:#6262a9;--palette-envelope:#d9dcf7}.letter-palette--sand{--palette-paper:#f5eddd;--palette-accent:#917046;--palette-envelope:#e9dac2}.letter-palette--cocoa{--palette-paper:#eee2dc;--palette-accent:#81584b;--palette-envelope:#dfccc2}.letter-palette--plum{--palette-paper:#f3e5ed;--palette-accent:#874c72;--palette-envelope:#e8d1df}.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{--option-accent:var(--palette-accent);border:2px solid var(--ink);background:color-mix(in srgb, var(--palette-paper) 85%, white);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-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}.space-sign{z-index:18;cursor:pointer;touch-action:manipulation;background:0 0;border:0;width:135px;padding:0;position:absolute;top:43%;right:7%}.space-sign img{filter:drop-shadow(3px 6px 2px #392c203b);-webkit-user-select:none;user-select:none;width:100%;transition:transform .25s;display:block}.space-sign:hover img,.space-sign:focus-visible img{transform:translateY(-5px)rotate(2deg)}.space-sign:focus-visible{outline-offset:5px;border-radius:18px;outline:3px solid #794d77}.space-sign span{color:#644f48;opacity:0;pointer-events:none;background:#fff8ea;border:1px solid #9f826f;border-radius:14px;width:max-content;padding:5px 10px;font:700 1.2rem Caveat,cursive;transition:opacity .2s,transform .2s;position:absolute;bottom:100%;left:50%;transform:translate(-50%,5px)}.space-sign:hover span,.space-sign:focus-visible span{opacity:1;transform:translate(-50%,-3px)}.space-backdrop{z-index:125}.space-modal{--space-accent:#8c89ae;color:#55463d;text-align:center;background:#fff9ee;border:2px solid #8f786b;border-radius:30px 34px 29px;width:min(590px,100%);max-height:min(90dvh,850px);padding:27px 32px 22px;position:relative;overflow-y:auto;box-shadow:0 20px 55px #2a221f40,inset 0 0 0 7px #f1e1ca6b}.space-modal--soon{--space-accent:#c87e8d}.space-modal--together{--space-accent:#bd8a68}.space-modal :is(h2,h3,p,span,button){text-shadow:none!important}.space-header{padding:0 28px 12px;position:relative}.space-header h2{margin:1px 0;font:700 clamp(2.1rem,6vw,2.9rem)/1.05 Caveat,cursive}.space-modal button:focus-visible{outline-offset:3px;outline:2px solid #936385}.space-status{padding:5px 0 25px}.space-illustration{width:min(100%,370px);height:102px;color:var(--space-accent);margin:0 auto;position:relative}.space-path{opacity:.55;width:100%;height:100%;position:absolute;inset:0}.space-heart{filter:drop-shadow(1px 2px #744a502e);font-size:2.25rem;line-height:1;transition:left .8s,right .8s,transform .8s;position:absolute;top:45%}.space-heart--one{color:#dc91a0;left:6%;transform:rotate(-14deg)}.space-heart--two{color:#9e9bc4;right:6%;transform:rotate(13deg)}.space-illustration--soon .space-heart--one{left:32%;transform:rotate(-7deg)}.space-illustration--soon .space-heart--two{right:32%;transform:rotate(7deg)}.space-illustration--together .space-heart--one{animation:3s ease-in-out infinite spaceHug;left:43%;transform:rotate(-15deg)}.space-illustration--together .space-heart--two{animation:3s ease-in-out infinite reverse spaceHug;right:42%;transform:rotate(13deg)}.space-decor{color:#d6b77b;font-size:1.1rem;position:absolute}.space-decor--one{animation:3s ease-in-out infinite spaceTwinkle;top:9%;left:23%}.space-decor--two{animation:4s ease-in-out -1.2s infinite spaceTwinkle;top:5%;right:24%}.space-decor--three{color:#d78f9e;opacity:0;top:10%;left:51%}.space-illustration--soon .space-decor--three{opacity:1;animation:3s ease-in-out infinite spaceFloat}.space-illustration--together .space-decor--three{opacity:1;animation:2.7s ease-in-out infinite spaceTwinkle}.space-illustration--together .space-decor--one,.space-illustration--together .space-decor--two{animation:.75s ease-out 2 spaceCelebrate}.space-status h3{color:#6b5364;margin:-2px 0 3px;font:700 2.2rem/1.1 Caveat,cursive}.space-modal--soon .space-status h3{color:#a96576}.space-modal--together .space-status h3{color:#a47166}.space-timer{color:#584c62;font-variant-numeric:tabular-nums;margin:3px 0 0;font:700 clamp(1.65rem,5vw,2.25rem)/1.15 Caveat,cursive}.space-modal--soon .space-timer{color:#a96576;font-size:clamp(2.15rem,6vw,2.7rem)}.space-countdown{width:min(100%,440px);margin:17px auto 4px;position:relative}.space-countdown-units{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(6px,2vw,11px);display:grid}.space-countdown-unit{background:linear-gradient(145deg,#fffaf5,#f8e8ed);border:1.5px solid #d8bcc6;border-radius:18px 18px 22px 22px;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:91px;animation:.55s cubic-bezier(.2,1.4,.45,1) both spaceCountdownArrive;display:flex;position:relative;box-shadow:0 5px #e8cbd2,0 9px 16px #7a4e601f}.space-countdown-unit:nth-child(2),.space-countdown-unit:nth-child(4){background:linear-gradient(145deg,#fffaf5,#eeebf8);border-color:#c9c4de;box-shadow:0 5px #d8d3e9,0 9px 16px #5b54811f}.space-countdown-unit:nth-child(2){animation-delay:70ms}.space-countdown-unit:nth-child(3){animation-delay:.14s}.space-countdown-unit:nth-child(4){animation-delay:.21s}.space-countdown-unit:before{content:"♡";color:#d9a4b1;font:700 .8rem Caveat,cursive;position:absolute;top:5px;right:9px}.space-countdown-number{color:#805873;font-variant-numeric:tabular-nums;font:700 clamp(2rem,6vw,2.8rem)/1 Caveat,cursive;animation:.55s cubic-bezier(.2,1.5,.35,1) both spaceCountdownTick;display:block}.space-countdown-unit:nth-child(2n) .space-countdown-number{color:#696489}.space-countdown-label{color:#766574;letter-spacing:.07em;text-transform:uppercase;margin-top:4px;font:700 .69rem/1 sans-serif}.space-countdown-sparkle{z-index:1;color:#d1a564;pointer-events:none;font-size:1.45rem;line-height:1;animation:2.8s ease-in-out infinite spaceCountdownSparkle;position:absolute}.space-countdown-sparkle--one{top:-16px;left:-14px}.space-countdown-sparkle--two{animation-delay:-1.3s;bottom:-11px;right:-13px}.space-countdown-message{color:#ae697b;margin:15px 0 2px;font:700 1.7rem/1 Caveat,cursive;animation:3s ease-in-out infinite spaceFloat}.space-timer-caption{color:#8d7475;margin:3px 0;font:700 1.35rem Caveat,cursive}.space-visit-detail{color:#766a65;margin:9px 0 0;font-size:.78rem}.space-no-visit{color:#8d7475;margin:10px 0 0;font:700 1.35rem Caveat,cursive}@keyframes spaceTwinkle{50%{opacity:.3;transform:scale(.75)}}@keyframes spaceFloat{50%{transform:translateY(-9px)}}@keyframes spaceHug{50%{transform:translate(4px)rotate(-8deg)scale(1.08)}}@keyframes spaceCelebrate{0%{opacity:0;transform:scale(.2)rotate(-30deg)}60%{opacity:1;transform:scale(1.4)rotate(12deg)}to{transform:scale(1)}}@keyframes spaceCountdownArrive{0%{opacity:0;transform:translateY(12px)rotate(-3deg)scale(.88)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}@keyframes spaceCountdownTick{0%{opacity:.45;transform:translateY(-7px)scale(1.2)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes spaceCountdownSparkle{50%{opacity:.45;transform:translateY(-5px)rotate(25deg)scale(.8)}}@media (width<=760px){.space-backdrop{align-items:center}.space-modal{width:min(100%,530px);max-height:calc(100dvh - 24px);padding:23px 19px 18px}}@media (width<=400px){.space-countdown-unit{border-radius:14px 14px 18px 18px;min-height:77px}.space-countdown-number{font-size:2rem}.space-countdown-label{letter-spacing:.03em;font-size:.57rem}}@media (prefers-reduced-motion:reduce){.space-sign img,.space-heart,.space-decor,.space-countdown-unit,.space-countdown-number,.space-countdown-sparkle,.space-countdown-message{transition:none!important;animation:none!important}}@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}}
