/* A little stationery magic, built without an animation dependency. */
.motion-toggle{position:fixed;bottom:16px;left:16px;z-index:30;border:1px solid #cdd2bf;border-radius:30px;background:#f9f7efee;color:#4d6345;padding:10px 14px;font-size:11px;box-shadow:0 3px 16px #303b2d0d;cursor:pointer}
.hero-copy>*{animation:welcome-in .85s both cubic-bezier(.16,1,.3,1)}
.hero-copy>:nth-child(2){animation-delay:.12s}.hero-copy>:nth-child(3){animation-delay:.24s}.hero-copy>:nth-child(4){animation-delay:.36s}.hero-copy>:nth-child(5){animation-delay:.45s}
@keyframes welcome-in{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
.art{perspective:1000px;animation:welcome-in 1.2s .25s both}.paper{transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s;transform:rotate(-7deg) rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));will-change:transform}
.art:hover .paper{box-shadow:0 24px 48px #35412c20}.sticky{animation:sticky-drift 5s ease-in-out infinite}.art-star{animation:star-turn 12s linear infinite}.paper svg>g:last-child path{animation:steam 3.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.paper svg>g:last-child path+path{animation-delay:-1.9s}
@keyframes sticky-drift{50%{transform:translateY(-8px) rotate(3deg)}}@keyframes star-turn{to{transform:rotate(180deg)}}@keyframes steam{0%,100%{opacity:.3;transform:translateY(3px)}50%{opacity:.9;transform:translateY(-7px)}}
.secret-note{display:block;margin:18px auto 0;border:1px solid #bac2ab;color:var(--green);border-radius:24px;background:#f9f7ef;padding:11px 18px;font-size:12px;position:relative;z-index:2;transition:background .2s,transform .2s}.secret-note:hover{background:#e5e8d9;transform:rotate(-2deg)}
.note-dialog{text-align:center;overflow-x:hidden;overflow-y:auto;max-height:calc(100dvh - 32px);padding:45px 30px}.note-dialog .postmark{font:12px monospace;letter-spacing:3px;color:var(--accent);border:2px solid #bd694966;border-radius:50%;width:90px;height:90px;display:grid;place-content:center;margin:0 auto 25px;transform:rotate(-12deg)}.note-dialog h2{font-size:39px}.note-dialog .handwritten{font-size:30px;margin:25px 0 0}.note-dialog .primary{margin-top:25px;justify-content:center}
dialog[open]{animation:unfold .4s cubic-bezier(.16,1,.3,1)}@keyframes unfold{from{opacity:0;transform:translateY(25px) rotate(-3deg) scale(.95)}to{opacity:1;transform:none}}
.reveal-pending{opacity:0;transform:translateY(24px)}.reveal-ready{opacity:1;transform:none;transition:opacity .7s,transform .7s cubic-bezier(.16,1,.3,1)}
.meal,.date{transition:transform .2s,background .2s,border-color .2s,box-shadow .2s}.meal:hover,.date:hover{transform:translateY(-3px);box-shadow:0 7px 16px #303b2d0b}.meal:has(input:checked) .food{animation:food-pop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes food-pop{0%{transform:scale(.8) rotate(-12deg)}65%{transform:scale(1.2) rotate(8deg)}100%{transform:none}}.time{animation:welcome-in .25s both}.primary:active{transform:scale(.98)}
.plan-progress{display:flex;gap:6px;margin:0 0 24px}.plan-progress span{height:4px;flex:1;border-radius:8px;background:#d6dbc9;transition:background .35s,transform .35s}.plan-progress span.complete{background:#64794f;transform:scaleY(1.5)}.summary dd.updated{animation:ink-in .4s ease}@keyframes ink-in{from{opacity:.3;transform:translateY(5px)}to{opacity:1;transform:none}}
.confetti-stage{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:100}.confetti{position:absolute;top:25%;left:50%;font-size:22px;color:var(--confetti-color);animation:confetti-flight 1.8s ease-out both;animation-delay:var(--delay)}@keyframes confetti-flight{0%{opacity:0;transform:translate(0,0) rotate(0)}10%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--spin))}}
html.motion-paused *,html.motion-paused *::before,html.motion-paused *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-paused .reveal-pending{opacity:1;transform:none}.motion-paused .paper{transform:rotate(-7deg)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal-pending{opacity:1;transform:none}.paper{transform:rotate(-7deg)}html{scroll-behavior:auto}}
