@font-face{font-family:Playfair Display;src:url(./playfair-display-CFtfchNt.woff2)format("woff2");font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(./cormorant-garamond-BsRWmXhO.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:Cormorant Garamond;src:url(./cormorant-garamond-semibold-Co1r35X9.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:600}@font-face{font-family:Cormorant Garamond;src:url(./cormorant-garamond-bold-DajfzrDU.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:700}@font-face{font-family:Cormorant Garamond;src:url(./cormorant-garamond-italic-Dc_OZ8oc.woff2)format("woff2");font-display:swap;font-style:italic;font-weight:400}@font-face{font-family:Cormorant Garamond;src:url(./cormorant-garamond-semibold-italic-DCuhXWyK.woff2)format("woff2");font-display:swap;font-style:italic;font-weight:600}@font-face{font-family:Great Vibes;src:url(./great-vibes-q5-78SH_.woff2)format("woff2");font-display:swap}:root{--background:40 20% 96%;--foreground:30 10% 25%;--primary:36 45% 50%;--primary-foreground:40 20% 98%;--muted-foreground:30 8% 50%;--heart-ink:#653442}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:hsl(var(--background));min-height:100vh;color:hsl(var(--foreground));margin:0;font-family:Playfair Display,serif}img,svg,canvas{max-width:100%;display:block}button,a{font:inherit}button{background:0 0;border:0;padding:0}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid hsl(var(--primary));outline-offset:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#app{min-height:100vh}.page-shell{justify-content:center;align-items:center;min-height:100svh;padding:.5rem .25rem;display:flex}.page-shell__content{flex-direction:column;align-items:center;gap:.75rem;display:flex}.scratch-card{flex-direction:column;align-items:center;display:flex}.scratch-frame{-webkit-user-select:none;user-select:none;touch-action:none;display:inline-block;position:relative}.scratch-frame__base,.scratch-frame__overlay,.scratch-frame__canvas{position:absolute;top:0;left:0}.scratch-frame__base{visibility:hidden;width:100%;height:auto}.scratch-frame__overlay{pointer-events:none;width:100%;height:100%}.scratch-frame__canvas{cursor:crosshair;visibility:hidden;touch-action:none;width:100%;height:100%;transition:opacity .22s}.scratch-frame__canvas.is-revealed{opacity:0}.scratch-frame__loading{pointer-events:none;color:hsl(var(--muted-foreground));background-color:#0000000a;border-radius:.5rem;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.scratch-frame__loading-text{opacity:0;margin:0;animation:.22s .6s forwards scratch-loading-text}@keyframes scratch-loading-text{to{opacity:1}}.scratch-frame__loading[hidden]{display:none}.scratch-frame__svg{position:absolute;top:0;left:0}.scratch-frame__svg-intro{fill:var(--heart-ink);font-family:Parfumerie Script Text,Parfumerie Script,Great Vibes,cursive}.scratch-frame__svg-date,.scratch-frame__svg-name{fill:var(--heart-ink);font-family:Cormorant Garamond,serif}.scratch-card__slot{place-items:center;min-height:3.5rem;margin-top:.5rem;display:grid}.scratch-card__slot>*{grid-area:1/1}.scratch-card__hint{text-align:center;max-width:26rem;color:hsl(var(--foreground) / .85);margin:0;font-size:1rem;line-height:1.5rem;transition:opacity .22s,visibility 0s linear .22s}.scratch-card.is-revealed .scratch-card__hint{opacity:0;visibility:hidden}.scratch-card__fallback{color:hsl(var(--foreground));text-underline-offset:.25rem;cursor:pointer;margin-top:.75rem;text-decoration:underline}.calendar-modal[hidden]{display:none}.calendar-action{opacity:0;visibility:hidden;pointer-events:none;justify-content:center;align-items:center;transition:opacity .22s,transform .22s,visibility 0s linear .22s;display:flex;transform:translateY(8px)}.calendar-action.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:.7s,.7s,.7s;transform:translateY(0)}.calendar-button{min-height:3.5rem;color:hsl(var(--primary-foreground));background-image:linear-gradient(to right, hsl(var(--primary) / .9), hsl(var(--primary)));cursor:pointer;border-radius:9999px;align-items:center;gap:.75rem;padding:.75rem 2rem;transition:transform .3s,box-shadow .3s;display:inline-flex;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.calendar-button:disabled{cursor:default}.calendar-button:not(:disabled):hover{transform:scale(1.05);box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.calendar-button__icon{width:1.25rem;height:1.25rem}.calendar-button__label{letter-spacing:.15em;text-transform:uppercase;font-family:Playfair Display,serif;font-size:.875rem}.calendar-modal{z-index:50;background-color:#00000080;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.calendar-modal__panel{width:min(100%,24rem);color:hsl(var(--foreground));opacity:0;background:#fff;border-radius:1rem;padding:1.25rem;transition:opacity .18s,transform .18s;transform:translateY(8px)}.calendar-modal.is-open .calendar-modal__panel{opacity:1;transform:translateY(0)}.calendar-modal__close{cursor:pointer;margin-left:auto;padding:.25rem .5rem;display:inline-flex}.calendar-modal__title{margin:.5rem 0 0;font-size:1.5rem}.calendar-modal__description{color:hsl(var(--muted-foreground));margin:.75rem 0 0;line-height:1.5}.calendar-modal__actions{gap:.75rem;margin-top:1.25rem;display:grid}.button{border-radius:9999px;justify-content:center;align-items:center;min-height:3rem;padding:.75rem 1rem;display:inline-flex}.button--primary{color:hsl(var(--primary-foreground));background:hsl(var(--primary))}.button--secondary,.button--ghost{border:1px solid #0000001f}
