*{margin:0;padding:0;box-sizing:border-box}:root{--noir-chaud: #0d0a09;--bordeaux-profond: #1a0f0f;--bordeaux-moyen: #2d1515;--blush-rose: #e8c4c4;--blush-clair: #f5e6e0;--or-subtil: #c9a959;--or-pale: #e8d5a3;--ivoire: #f5ebe0;--blanc-casse: #faf6f2}html{scroll-behavior:smooth}body{font-family:Cormorant Garamond,Georgia,serif;background:var(--noir-chaud);color:var(--ivoire);line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--blush-rose);color:var(--bordeaux-profond)}.app{min-height:100vh;opacity:0;transition:opacity .8s cubic-bezier(.4,0,.2,1)}.app.loaded{opacity:1}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#0d0a094d,#0d0a0980 40%,#0d0a09d9,#0d0a09);z-index:2;pointer-events:none}.hero-image-wrapper{position:absolute;inset:0}.hero-image{width:100%;height:100%;object-fit:cover;object-position:center;animation:kenBurns 25s ease-in-out infinite alternate}@keyframes kenBurns{0%{transform:scale(1.05)}to{transform:scale(1.12)}}.hero-content{position:relative;z-index:3;text-align:center;padding:2rem}.hero-title{font-family:Italiana,serif;font-size:clamp(2.5rem,8vw,5rem);font-weight:400;letter-spacing:.15em;color:var(--blanc-casse);text-shadow:0 2px 40px rgba(0,0,0,.5);margin-bottom:.5rem;animation:fadeUp 1.2s cubic-bezier(.4,0,.2,1) .3s both}.hero-subtitle{font-family:Cormorant Garamond,serif;font-size:clamp(1.2rem,3vw,1.8rem);font-weight:300;font-style:italic;color:var(--blush-rose);letter-spacing:.3em;animation:fadeUp 1.2s cubic-bezier(.4,0,.2,1) .5s both}.hero-cta{display:inline-flex;align-items:center;gap:.75rem;margin-top:2.5rem;padding:1rem 2.25rem;font-family:Cormorant Garamond,serif;font-size:1.1rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--blush-rose);background:transparent;border:2px solid rgba(232,196,196,.5);border-radius:0;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);animation:fadeUp 1.2s cubic-bezier(.4,0,.2,1) .7s both}.hero-cta:hover{border-color:var(--blush-rose);color:var(--blanc-casse);background:#e8c4c414;box-shadow:0 0 32px #e8c4c433}.hero-cta:active{transform:scale(.98)}.hero-cta-arrow{font-size:.9rem;opacity:.8;transition:transform .3s ease}.hero-cta:hover .hero-cta-arrow{transform:translateY(4px)}.scroll-indicator{position:absolute;bottom:3rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.75rem;animation:fadeUp 1.2s cubic-bezier(.4,0,.2,1) .8s both}.scroll-line{width:1px;height:48px;background:linear-gradient(to bottom,var(--blush-rose),transparent);animation:scrollPulse 2s ease-in-out infinite}.scroll-text{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--blush-rose);opacity:.8}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scrollPulse{0%,to{opacity:.4}50%{opacity:1}}.message-section{position:relative;padding:6rem 1.5rem;display:flex;justify-content:center;align-items:center;min-height:80vh}.message-card{position:relative;max-width:680px;padding:4rem 3rem;opacity:0;transform:translateY(48px);transition:opacity 1s cubic-bezier(.4,0,.2,1),transform 1s cubic-bezier(.4,0,.2,1)}.message-section.reveal .message-card{opacity:1;transform:translateY(0)}.message-ornament{position:absolute;left:50%;transform:translate(-50%);width:60px;height:2px;background:linear-gradient(90deg,transparent,var(--or-subtil),var(--blush-rose),var(--or-subtil),transparent);opacity:.7}.message-ornament.top{top:0}.message-ornament.bottom{bottom:0}.message-text{font-size:clamp(1.15rem,2.2vw,1.35rem);font-weight:300;line-height:2;color:var(--blush-clair);font-style:italic;text-align:justify;hyphens:auto;-webkit-hyphens:auto;-ms-hyphens:auto}.message-signature{margin-top:2.5rem;text-align:right;font-size:1rem;font-weight:500;color:var(--or-pale);letter-spacing:.1em}.footer{padding:3rem;text-align:center;background:var(--bordeaux-profond);border-top:1px solid rgba(201,169,89,.15)}.heart-pulse{display:inline-block;font-size:1.5rem;animation:heartBeat 1.5s ease-in-out infinite}@keyframes heartBeat{0%,to{transform:scale(1)}14%{transform:scale(1.2)}28%{transform:scale(1)}42%{transform:scale(1.2)}56%{transform:scale(1)}}.footer p{margin-top:.5rem;font-size:.9rem;color:var(--blush-rose);opacity:.9}@media(max-width:640px){.message-card{padding:3rem 1.5rem}.message-text{text-align:left}.hero-title{letter-spacing:.1em}.hero-subtitle{letter-spacing:.15em}}
