@font-face{font-family:Cormorant;src:url('assets/fonts/cormorant-garamond.woff2') format('woff2');font-style:normal;font-weight:300 700;font-display:swap}
:root{--blush-bg-top:#FDF2F4;--blush-bg-bottom:#F7DDE2;--cream-card:#FFFBF7;--rose-deep:#B2506A;--rose-mid:#D98299;--rose-soft:#F0C3CD;--ink:#4A3B40;--ink-soft:#7A6A70;--gold:#C9A227}
*{box-sizing:border-box} [hidden]{display:none!important}
body{margin:0;min-height:100vh;min-height:100dvh;background:linear-gradient(155deg,var(--blush-bg-top),#fff8f4 48%,var(--blush-bg-bottom));color:var(--ink);font-family:Cormorant,Georgia,serif}
main{position:relative;z-index:2;min-height:100vh;min-height:100dvh;width:100%;padding:clamp(48px,9vh,100px) 20px 48px;display:flex;flex-direction:column;align-items:center;justify-content:center}
header{text-align:center;margin-bottom:20px}.eyebrow{font-size:clamp(15px,1.5vw,17px);letter-spacing:.16em;color:var(--ink-soft);margin:0 0 16px}h1{font-size:clamp(40px,8vw,58px);font-weight:400;color:var(--rose-deep);line-height:1.12;margin:0 0 12px;overflow-wrap:anywhere}.gold{color:var(--gold);font-size:20px}
#gate{text-align:center;max-width:330px;transition:opacity 260ms,transform 260ms}#gate.opening{opacity:0;transform:scale(1.06)}
#bud{display:block;margin:4px auto 12px;border:0;background:none;padding:12px 30px;cursor:pointer;border-radius:90px;color:inherit}#bud:focus-visible{outline:2px solid var(--rose-mid);outline-offset:8px}#bud:disabled{cursor:default}#bud img{display:block;filter:drop-shadow(0 10px 18px #b2506a15)}
#hint{font-size:17px;color:var(--ink-soft);letter-spacing:.055em;animation:pulse 2.4s ease-in-out infinite;margin:0 0 20px}#bud:disabled+#hint{animation:none}#counter,#card-day{font-size:15px;letter-spacing:.13em;color:var(--rose-deep);margin:0}#counter{margin-bottom:30px}
#card{width:100%;max-width:560px;background:var(--cream-card);border:1px solid #f0c3cd70;border-radius:18px;padding:28px;box-shadow:0 18px 50px -12px rgba(178,80,106,.28);outline:none}#card-day{text-align:center}.rule{display:flex;align-items:center;justify-content:center;gap:16px;margin:18px auto 26px;color:var(--rose-mid);max-width:170px}.rule:before,.rule:after{content:'';height:1px;flex:1;background:var(--rose-soft)}.rule span{font-size:20px}#note{font-size:1.125rem;line-height:1.75;max-width:34em;overflow-wrap:anywhere}#note p{margin:0 0 1.2em;white-space:pre-wrap}#note p:last-child{margin-bottom:0}#tomorrow{font-size:16px;letter-spacing:.09em;color:var(--ink-soft);margin:30px 0 0}.reveal{animation:reveal 420ms cubic-bezier(.22,1,.36,1) both}
.garden,#petals{position:fixed;inset:0;overflow:hidden;pointer-events:none}.garden{z-index:0}.corner{position:absolute;width:clamp(210px,35vw,480px);opacity:.32}.top{top:-45px;left:-70px;transform:rotate(8deg)}.bottom{right:-65px;bottom:-60px;transform:rotate(185deg)}#petals{z-index:1}#petals span{position:absolute;top:-40px;width:19px;height:27px;background:url('assets/petal.svg') center/contain no-repeat;opacity:var(--opacity);animation:drift var(--duration) var(--delay) linear infinite}
@keyframes drift{from{transform:translate3d(0,-40px,0) rotate(0) scale(var(--scale))}to{transform:translate3d(90px,110vh,0) rotate(260deg) scale(var(--scale))}}@keyframes pulse{50%{opacity:.55}}@keyframes reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:768px){#card{padding:40px}header{margin-bottom:26px}}
@media(prefers-reduced-motion:reduce){#petals{display:none}#hint{animation:none}#gate{transition:opacity 150ms}#gate.opening{transform:none}.reveal{animation:fade 150ms ease both}@keyframes fade{from{opacity:0}to{opacity:1}}}

.scatter{position:fixed;z-index:1;pointer-events:none;width:16px;height:24px;background:url(assets/petal.svg) center/contain no-repeat;animation:scatter 650ms ease-out both}@keyframes scatter{from{opacity:.6;transform:translate(0,0)}to{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--r))}}@media(prefers-reduced-motion:reduce){.scatter{display:none}}
