@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--ink:#49352f;--muted:#856e61;--gold:#d99b22;--cream:#fff8ec;--rose:#f4dfd5}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--cream)}
body{min-height:100svh;overflow-x:hidden;background:radial-gradient(ellipse at 50% 15%,#fffdf8 0,#fff8ec 48%,#f9e9d8 100%)}
.ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 78%,#f7dfc755,transparent 28%),radial-gradient(circle at 88% 18%,#ffe8a655,transparent 25%)}
.experience{position:relative;z-index:1;min-height:100svh;display:grid;place-items:center;padding:28px 20px 48px}
.slide{display:none;width:min(100%,720px);text-align:center;animation:arrive .7s ease both}.slide.active{display:block}
.eyebrow{font-size:.7rem;letter-spacing:.22em;font-weight:600;color:#b08342;margin-bottom:28px}
h1,h2{font-family:'Playfair Display',serif;font-weight:500;letter-spacing:-.035em;line-height:1.13;margin:0 auto 22px}
h1{font-size:clamp(3.2rem,10vw,6rem)}h2{font-size:clamp(2.35rem,7vw,4.2rem)}
h1 em,h2 em{color:#bd8529;font-weight:500}
.lead,.message{font-size:clamp(1rem,2.7vw,1.17rem);line-height:1.85;color:var(--muted);max-width:550px;margin:0 auto 32px}
.mini-flower{font-size:3.5rem;margin-bottom:20px;animation:float 4s ease-in-out infinite}
.primary{border:0;border-radius:999px;background:#49352f;color:#fffaf2;padding:16px 25px;font:600 .95rem 'DM Sans',sans-serif;cursor:pointer;box-shadow:0 8px 24px #49352f22;transition:transform .2s,box-shadow .2s}
.primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px #49352f2c}.primary span{margin-left:12px;color:#f4cc67}
.hint{margin-top:24px;color:#ad9582;font-size:.78rem;letter-spacing:.04em}
.ornament{font-size:2.6rem;color:#d8a43c;margin:0 0 22px;animation:float 4s ease-in-out infinite}
.progress{position:fixed;z-index:5;bottom:0;left:0;width:100%;height:4px;background:#eadbca}.progress span{display:block;height:100%;width:0;background:#d7a13b;transition:width .5s ease}
.reveal .flower-scene{display:none;margin:12px auto 0;max-width:440px}.reveal.blooming .flower-scene{display:block;animation:arrive .9s ease both}
.sun-glow{position:absolute;width:260px;height:260px;left:50%;transform:translateX(-50%);border-radius:50%;background:#ffe7a366;filter:blur(25px);margin-top:25px}
.bouquet{position:relative;width:min(100%,400px);overflow:visible;filter:drop-shadow(0 20px 20px #a87a4020)}
.bloom{transform-origin:center;animation:sway 5s ease-in-out infinite}
.dedication{max-width:570px;margin:10px auto 0;animation:arrive .9s ease both}.dedication[hidden]{display:none}.small-heart{font-size:2.2rem;color:#c47a78;margin-bottom:12px}.dedication p{color:var(--muted);line-height:1.8;font-size:1.03rem}.dedication .signature{font-family:'Playfair Display',serif;font-size:1.35rem;color:#a77525;margin-top:22px}
.text-button{border:0;background:transparent;color:#9a7655;text-decoration:underline;text-underline-offset:4px;padding:14px;cursor:pointer;font:500 .85rem 'DM Sans',sans-serif}
.petals{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:3}.petal{position:absolute;top:-30px;width:11px;height:16px;background:#f3c64f;border-radius:80% 10% 80% 10%;opacity:.8;animation:fall linear forwards}
@keyframes arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes fall{to{transform:translate3d(80px,110vh,0) rotate(620deg);opacity:0}}
@media(min-width:700px){.experience{padding-top:40px}.slide{padding:20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

.music-toggle{position:fixed;z-index:6;right:18px;top:18px;border:1px solid #ead8bd;background:#fffaf1eF;color:#6d4c2b;border-radius:999px;padding:10px 14px;font:600 .78rem 'DM Sans',sans-serif;box-shadow:0 5px 18px #49352f18;cursor:pointer;backdrop-filter:blur(8px)}
.music-toggle[hidden]{display:none}
