/* A light layer of motion; no layout or application state lives here. */
body{isolation:isolate}
.love-atmosphere{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;contain:strict}
.love-haze{position:absolute;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,#f0a5c02b,transparent 68%);animation:love-breathe 12s ease-in-out infinite alternate}
.love-haze:nth-child(1){left:-150px;top:12%}.love-haze:nth-child(2){right:-140px;top:48%;animation-delay:-5s}
.love-atmosphere>svg{position:absolute;width:32px;height:32px;stroke:#c9588040;stroke-width:1;fill:#f4bed016;animation:love-drift 14s ease-in-out infinite alternate}
.love-atmosphere>svg:nth-of-type(1){left:4%;top:24%;rotate:-16deg}.love-atmosphere>svg:nth-of-type(2){right:4%;top:67%;width:22px;height:22px;animation-delay:-7s;rotate:15deg}
.love-effects{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:1200;contain:strict}
.love-particle{position:absolute;left:0;top:0;width:var(--love-size,18px);height:var(--love-size,18px);color:var(--love-color,#c93c69);will-change:transform,opacity}
.love-particle svg{width:100%;height:100%;fill:currentColor;stroke:#fff7fb;stroke-width:1.1;filter:drop-shadow(0 2px 2px #9b2c5020)}
.love-cursor{position:fixed;top:0;left:0;width:21px;height:21px;pointer-events:none;z-index:1201;color:#b52e59;opacity:0;transition:opacity .15s;will-change:transform}
.love-cursor.is-visible{opacity:.7}.love-cursor svg{width:100%;height:100%;fill:#f8d4e3;stroke:currentColor;stroke-width:1.5}
.primary,.subtle-button{position:relative;isolation:isolate;overflow:hidden;transition:background .22s,box-shadow .22s,transform .22s,border-color .22s}
.primary:not(:disabled):active,.subtle-button:not(:disabled):active{transform:translateY(2px) scale(.98)}
.love-ripple{position:absolute;border-radius:50%;width:28px;height:28px;background:#fff8fc65;pointer-events:none;z-index:-1;transform:translate(-50%,-50%)}
.subtle-button .love-ripple{background:#c8567d30}
.nav-item{transition:background .24s,color .24s,box-shadow .24s,transform .24s}
.nav-item svg{transition:transform .28s cubic-bezier(.2,.8,.3,1.4)}
.nav-item.active svg{animation:love-nav-pop .48s cubic-bezier(.2,.8,.3,1.4)}
.draw-card,.fire-card,.wish-top,.fire-side,.journey-map-card,.shore-wish,.meeting-memory{transition:border-color .35s,box-shadow .35s}
.love-reveal-pending{opacity:0;translate:0 16px}
.love-reveal-in{animation:love-unfold .65s cubic-bezier(.2,.75,.25,1) both;animation-delay:var(--love-delay,0ms)}
.panel.active{animation:love-page-in .42s ease-out}
dialog[open]{animation:love-dialog-in .28s cubic-bezier(.18,.8,.25,1)}
.brand-icon{animation:love-brand-breathe 5s ease-in-out infinite}
.wish-ocean{box-shadow:0 14px 40px #b23f6410}
textarea,input,select{transition:border-color .22s,box-shadow .22s}
textarea:focus,input:focus,select:focus{box-shadow:0 0 0 4px #edb0c42b}
@media(hover:hover) and (pointer:fine){
 .primary:not(:disabled):hover{transform:translateY(-3px);box-shadow:0 9px 23px #a32d5633}
 .subtle-button:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 6px 15px #a32d5614}
 .nav-item:hover svg{transform:translateY(-2px) rotate(-7deg)}
 .draw-card:hover,.fire-card:hover,.wish-top:hover,.fire-side:hover,.journey-map-card:hover{border-color:#cf7b9b;box-shadow:0 16px 40px #a13b6014}
 .shore-wish:hover,.meeting-memory:hover{border-color:#c97596;box-shadow:0 8px 23px #a13b6017}
}
@keyframes love-unfold{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}
@keyframes love-page-in{from{opacity:.35;translate:0 8px}to{opacity:1;translate:0 0}}
@keyframes love-dialog-in{from{opacity:0;translate:0 12px;scale:.97}to{opacity:1;translate:0 0;scale:1}}
@keyframes love-nav-pop{0%{transform:scale(.85)}55%{transform:scale(1.16) rotate(-7deg)}100%{transform:scale(1)}}
@keyframes love-brand-breathe{0%,100%{box-shadow:0 0 0 0 #d7588020}50%{box-shadow:0 0 0 6px #d7588000}}
@keyframes love-drift{from{translate:0 0}to{translate:12px -24px}}
@keyframes love-breathe{from{opacity:.5;scale:.9}to{opacity:1;scale:1.12}}
@media(max-width:900px){.love-haze{width:230px;height:230px}.love-atmosphere>svg{width:22px;height:22px}.love-cursor{display:none}.love-reveal-pending{translate:0 10px}}
@media(prefers-reduced-motion:reduce){
 .love-atmosphere,.love-effects,.love-cursor,.love-ripple{display:none!important}
 .love-reveal-pending{opacity:1;translate:none}
 .love-reveal-in,.panel.active,dialog[open],.brand-icon,.nav-item.active svg{animation:none!important}
 .primary,.subtle-button,.nav-item,.nav-item svg,.draw-card,.fire-card,.wish-top,.fire-side,.journey-map-card,.shore-wish,.meeting-memory,textarea,input,select{transition:none!important}
 .primary:not(:disabled):hover,.subtle-button:not(:disabled):hover,.primary:not(:disabled):active,.subtle-button:not(:disabled):active,.nav-item:hover svg{transform:none}
}
