@font-face{font-family:ElSolTitle;src:url('assets/fonts/titre.woff') format('woff');font-weight:700;font-display:swap}@font-face{font-family:ElSolText;src:url('assets/fonts/texte.woff') format('woff');font-display:swap}@font-face{font-family:ElSolBrush;src:url('assets/fonts/brush.woff2') format('woff2');font-display:swap}@font-face{font-family:ElSolScript;src:url('assets/fonts/manuscrite.woff') format('woff');font-display:swap}
:root{--straw:#eee1bb;--cream:#faf6e9;--ink:#252b22;--yellow:#fdc636;--terra:#b74730;--green:#374936}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:ElSolText,Arial,sans-serif;background-color:var(--straw);background-image:radial-gradient(#8d783217 .6px,transparent .7px),linear-gradient(110deg,#f8edd050,transparent 40%);background-size:5px 5px,100% 100%}h1,h2,p,figure{margin:0}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}h1,h2{font-family:ElSolTitle,Georgia,serif;letter-spacing:-.055em;font-weight:700}h2{font-size:clamp(46px,5.6vw,80px);line-height:1.03}em{font-family:ElSolBrush,cursive;font-style:normal;font-weight:400;letter-spacing:-.02em;color:var(--terra)}a:focus-visible{outline:3px solid var(--terra);outline-offset:6px}.skip{position:absolute;top:-100px}.skip:focus{top:10px;left:10px;background:white;padding:15px;z-index:10}header{max-width:1440px;margin:auto;padding:28px 5%;display:flex;align-items:center;justify-content:space-between;gap:25px}.logo{width:175px;flex-shrink:0}.logo img{height:auto;filter:none;mix-blend-mode:normal}.header-note{font-size:14px}.pill{display:inline-flex;align-items:center;justify-content:center;gap:25px;padding:18px 26px;border-radius:50px;background:var(--ink);color:var(--cream);font-size:15px;transition:transform .2s,background .2s}.pill:hover{background:var(--terra);transform:translateY(-3px)}.pill span{font-size:24px;line-height:.7}.eyebrow{font-size:11px;letter-spacing:.22em;font-weight:700;line-height:1.8}.opening{max-width:1440px;min-height:840px;margin:auto;padding:65px 5% 90px;display:grid;grid-template-columns:1fr 1fr;gap:30px}.opening-copy{padding:45px 0 0;position:relative;z-index:2}.opening h1{font-size:clamp(60px,6.1vw,91px);line-height:1.02;margin:25px 0}.opening h1 span{font-family:ElSolBrush,cursive;font-weight:400;font-size:1.16em;color:var(--terra);line-height:.96;display:block;margin-top:12px;transform:rotate(-3deg);transform-origin:left}.intro{font-size:19px;line-height:1.6;margin-top:28px}.text-link{display:inline-flex;gap:22px;font-size:13px;border-bottom:1px solid;padding:10px 0;margin-top:25px}.opening-collage{position:relative;padding:15px 0 100px 15px}.main-frame{height:605px;width:82%;margin-left:auto;transform:rotate(4deg);border:12px solid var(--cream);box-shadow:0 15px 35px #5c472426;position:relative}.main-frame img{object-position:50% 45%}.main-frame figcaption{position:absolute;bottom:15px;left:10px;color:white;font-family:ElSolScript,cursive;font-size:34px;line-height:1.05;transform:rotate(-5deg);text-shadow:0 2px 8px #000}.drink-frame{position:absolute;bottom:18px;left:-35px;width:54%;height:250px;background:var(--cream);padding:9px 9px 58px;transform:rotate(-9deg);box-shadow:0 10px 22px #5c472424}.drink-frame figcaption{font-family:ElSolScript,cursive;font-size:22px;text-align:center;padding-top:8px;line-height:1.05}.sunburst{position:absolute;top:-38px;right:-20px;color:var(--terra);font-size:175px;line-height:1;transform:rotate(12deg)}.stamp{position:absolute;bottom:3px;right:0;background:var(--yellow);width:138px;height:138px;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;font-weight:700;letter-spacing:.14em;line-height:1.65;transform:rotate(12deg)}.scribble{position:absolute;width:115px;top:30px;left:-50px;fill:none;stroke:var(--terra);stroke-width:3;stroke-linecap:round}.ribbon{background:var(--terra);color:var(--cream);overflow:hidden;padding:23px 0;transform:rotate(-2deg);margin:0 -0px 45px}.ribbon>div{white-space:nowrap;word-spacing:18px;letter-spacing:.14em;font-size:16px;width:max-content;animation:drift 50s linear infinite}.ribbon span{color:var(--yellow);font-size:26px;vertical-align:middle}@keyframes drift{to{transform:translateX(-40%)}}.section{max-width:1440px;margin:auto;padding:90px 7%}.section-heading{text-align:center}.section-heading h2{margin:20px 0}.section p:not(.eyebrow){font-size:17px;line-height:1.7}.moments-grid{margin-top:65px;display:grid;grid-template-columns:1fr .9fr 1fr;gap:45px;align-items:center}.portrait{height:460px;transform:rotate(-4deg);padding:10px 10px 54px;background:var(--cream);box-shadow:0 10px 25px #5c47241c}.portrait img{object-position:center 40%}figcaption{font-family:ElSolScript,cursive;font-size:25px;line-height:1.1}.portrait figcaption,.apero figcaption{padding-top:14px;text-align:center}.quote{text-align:center}.quote>span{font-family:Georgia;font-size:100px;color:var(--terra);line-height:.5;display:block}.quote p{font-family:ElSolTitle,Georgia,serif;font-size:26px!important;line-height:1.4!important}.quote em{display:block;margin-top:15px;font-size:44px}.quote svg{width:70px;height:70px;stroke:var(--terra);fill:none;stroke-width:3;margin:22px auto 0;transform:rotate(8deg)}.apero{height:385px;transform:rotate(5deg);padding:10px 10px 53px;background:var(--cream);box-shadow:0 10px 25px #5c47241c}.feast{padding-top:100px}.feast-heading{max-width:750px}.feast-heading h2{margin:20px 0}.food-collage{height:730px;position:relative;margin-top:50px}.cheese{position:absolute;width:65%;height:500px;left:0;top:20px;transform:rotate(-3deg)}.cheese img{border-radius:47% 47% 2px 2px;object-position:center 58%}.cheese figcaption{padding:20px 5%;font-size:32px;color:var(--terra)}.plate{position:absolute;right:0;top:-60px;width:29%;height:345px;border:10px solid var(--cream);transform:rotate(8deg);box-shadow:0 10px 25px #5c47241c}.hands{position:absolute;right:2%;bottom:0;width:49%;height:350px;padding:10px 10px 58px;background:var(--cream);transform:rotate(4deg);box-shadow:0 10px 25px #5c47241c}.hands figcaption{text-align:center;padding-top:14px}.food-note{position:absolute;top:260px;right:7%;font-family:ElSolScript,cursive;font-size:40px;color:var(--terra);transform:rotate(-6deg)}.food-note svg{width:120px;height:80px;display:block;fill:none;stroke:currentColor;stroke-width:3}.party{background:var(--green);color:var(--cream);max-width:none;padding:90px max(7%,calc((100vw - 1240px)/2));display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;position:relative;margin-top:15px}.party h2{font-size:clamp(65px,7vw,100px);margin:25px 0}.party em{color:var(--yellow)}.party p{color:#e5e1d3}.party .small{font-size:12px!important;margin-top:20px}.party .pill{background:var(--yellow);color:var(--ink);margin-top:26px}.party-image{height:610px;position:relative;transform:rotate(4deg);border:12px solid #eee1bb}.party-image img{object-position:60%}.party-word{position:absolute;bottom:45px;left:25px;font-family:ElSolBrush,cursive;font-size:110px;color:var(--yellow);transform:rotate(-9deg);text-shadow:0 2px 12px #0004}.music{position:absolute;right:-25px;top:-70px;color:var(--yellow);font-family:Georgia;font-size:150px;transform:rotate(15deg)}.sweet{display:grid;grid-template-columns:1.1fr 1fr .65fr;align-items:center;gap:40px;padding-top:135px;padding-bottom:130px}.sweet h2{font-size:clamp(45px,4.8vw,68px);margin:22px 0}.sweet-photo{height:390px;padding:10px 10px 75px;background:var(--cream);transform:rotate(-5deg);box-shadow:0 10px 25px #5c47241c}.sweet-photo figcaption{padding-top:14px;text-align:center}.tiramisu{height:260px;transform:rotate(7deg)}.tiramisu img{border-radius:50% 50% 2px 2px}.closing{text-align:center;border-top:1px solid #a690592c;position:relative;padding-bottom:95px}.closing h2{font-size:clamp(48px,6.5vw,95px);margin:24px auto;max-width:1000px}.closing .pill{margin:28px 0 18px}.phone{display:block;font-size:17px}.closing-sun{display:block;color:var(--terra);font-size:110px;line-height:1;margin-bottom:22px}footer{background:var(--ink);color:var(--cream);padding:35px 6%;display:flex;gap:40px;align-items:center;justify-content:space-between;font-size:13px;line-height:1.7}footer img{width:150px;height:auto}footer a{border-bottom:1px solid #ffffff5c}.js-motion .reveal{opacity:0;translate:0 28px;transition:opacity .85s ease,translate .85s ease}.js-motion .reveal.visible{opacity:1;translate:0 0}
@media(min-width:1600px){.opening{min-height:870px}.party{gap:110px}}
@media(max-width:950px){.header-note{display:none}.opening{min-height:0;padding-top:30px;gap:15px}.opening h1{font-size:62px}.opening-collage{padding-bottom:100px}.main-frame{height:500px;width:90%}.drink-frame{left:-15px;height:210px;width:65%}.sunburst{font-size:125px;right:-5px}.stamp{width:105px;height:105px;font-size:10px}.moments-grid{gap:20px}.portrait{height:360px}.apero{height:310px}.quote p{font-size:20px!important}.quote em{font-size:35px}.party{gap:40px}.party-image{height:500px}.sweet{gap:25px}.sweet-photo{height:320px}.tiramisu{height:200px}footer{flex-wrap:wrap}}
@media(max-width:650px){header{padding:20px 6%}.logo{width:135px}header .pill{padding:13px 18px;font-size:13px;gap:12px}.opening{display:block;padding:22px 7% 55px}.opening-copy{padding:0}.opening h1{font-size:clamp(48px,12.7vw,75px);margin:20px 0}.opening .eyebrow{font-size:9px}.intro{font-size:16px}.opening-collage{margin-top:65px;padding:0 5px 95px 0}.main-frame{height:480px;width:83%;border-width:8px}.main-frame figcaption{font-size:28px}.drink-frame{bottom:0;left:-5px;width:57%;height:215px;padding-bottom:57px}.drink-frame figcaption{font-size:21px}.sunburst{top:-38px;right:-5px;font-size:120px}.stamp{bottom:0;right:0;width:110px;height:110px}.scribble{display:none}.ribbon{padding:15px 0;margin-bottom:0}.ribbon>div{font-size:12px;word-spacing:10px}.section{padding:65px 7%}h2{font-size:48px}.section p:not(.eyebrow){font-size:15px}.moments-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 20px;margin-top:45px}.portrait{height:320px;padding-bottom:60px}.portrait figcaption,.apero figcaption{font-size:21px}.quote p{font-size:18px!important}.quote em{font-size:32px}.apero{grid-column:1/-1;width:78%;margin:0 auto;height:380px}.food-collage{height:660px;margin-top:35px}.cheese{width:85%;height:340px}.cheese figcaption{font-size:26px;padding-top:14px;max-width:260px}.plate{width:40%;height:205px;top:250px;right:-8px}.hands{width:85%;height:245px;bottom:0;right:5%;padding-bottom:55px}.hands figcaption{font-size:22px}.food-note{font-size:29px;right:auto;left:0;top:365px}.food-note svg{display:none}.party{display:flex;flex-direction:column;gap:50px;padding:65px 7%;overflow:hidden}.party-copy{width:100%}.party h2{font-size:76px}.party-image{width:90%;height:420px}.party-word{font-size:90px;left:15px;bottom:35px}.music{font-size:115px;top:-55px;right:-10px}.sweet{grid-template-columns:1fr 1fr;gap:30px 20px}.sweet-title{grid-column:1/-1}.sweet h2{font-size:53px}.sweet-photo{height:310px;width:115%;padding-bottom:78px;z-index:1}.sweet-photo figcaption{font-size:22px}.tiramisu{height:200px;margin-left:15px}.closing h2{font-size:55px}.closing-sun{font-size:90px}footer{padding:35px 7%;gap:25px;display:grid;grid-template-columns:1fr 1fr}footer img{width:125px}footer a{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ribbon>div{animation:none}.js-motion .reveal{opacity:1;translate:none;transition:none}.pill{transition:none}}

/* Ajustements demandés : logo officiel, badge et cadrage du tiramisu. */
.stamp{padding-top:12px;}
.tiramisu{position:relative;overflow:hidden;border-radius:50% 50% 2px 2px;}
.tiramisu img{position:absolute;top:0;left:0;width:100%;height:140%;object-fit:cover;object-position:center top;border-radius:0;}

/* Contenir les décors inclinés sans provoquer de défilement horizontal. */
.ambiance-page{overflow-x:clip;}

html:has(body.ambiance-page){overflow-x:clip;}

/* Même apparition douce que le bloc 2 Événements. Les rotations des photos sont conservées. */
.opening-reveal{transition:opacity 1.05s ease,translate 1.2s cubic-bezier(.2,.7,.25,1);transition-delay:var(--opening-delay,0ms)}
.js-motion .opening-reveal:not(.visible){opacity:0;translate:0 22px}
@media(prefers-reduced-motion:reduce){.opening-reveal{transition:none}.js-motion .opening-reveal:not(.visible){opacity:1;translate:none}}
