:root{--forest-dark:#0a1226;--forest-soft:#101a2e;--forest-mid:#1a2540;--forest-deep:#1f2a47;--tan:#a83a4e;--tan-deep:#7d2a3a;--mustard:#f9e26b;--mustard-deep:#d9c14f;--brown:#a83a4e;--brown-deep:#7d2a3a;--cream:#fff;--cream-soft:#cbd0d8;--sage:#8c97aa;--border-soft:#ffffff1f;--border-tan:#a83a4e73;--border-mustard:#f9e26b59;--primary:var(--forest-dark);--accent:var(--tan);--highlight:var(--mustard);--bg:var(--forest-dark);--text-main:var(--cream);--text-muted:var(--cream-soft);--error:#d97757;--success:#95c66c;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--space-4xl:140px;--radius-sm:3px;--radius-md:6px;--radius-lg:12px;--radius-xl:20px;--radius-full:9999px;--font-heading:"Fraunces", "Times New Roman", Georgia, serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, system-ui, sans-serif;--maxw:1280px;--maxw-narrow:880px;--maxw-wide:1440px;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-in-out-cubic:cubic-bezier(.65, 0, .35, 1);--header-h:80px;--shadow-sm:0 1px 2px #00000040;--shadow-md:0 4px 16px #00000059;--shadow-lg:0 20px 50px #00000080;--shadow-mustard:0 8px 30px #f9e26b2e;--shadow-gold:var(--shadow-mustard);--ivoire:var(--cream);--ivoire-soft:var(--forest-soft);--noir:var(--forest-dark);--noir-soft:var(--forest-soft);--or:var(--mustard);--or-soft:var(--mustard);--or-deep:var(--tan);--fil-rouge:var(--brown);--bleu-nuit:var(--forest-soft);--gris:var(--cream-soft);--gris-clair:var(--border-soft);--border:var(--border-soft);--font-serif:var(--font-heading);--font-sans:var(--font-body)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;background:var(--forest-dark)}body{font-family:var(--font-body);color:var(--text-main);background:var(--forest-dark);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;font-weight:400;line-height:1.7;overflow-x:hidden}img,video{max-width:100%;height:auto;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}a{color:inherit;text-decoration:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:.01em;text-transform:uppercase;color:var(--cream);margin:0;font-weight:500;line-height:1.1}em,i{font-style:normal}p{margin:0}::selection{background:var(--mustard);color:var(--forest-dark)}.gold,.tan{color:var(--tan)}.mustard{color:var(--mustard)}.cream{color:var(--cream)}.brown{color:var(--brown)}.eyebrow{font-family:var(--font-heading);letter-spacing:.24em;text-transform:uppercase;color:var(--tan);font-size:12px;font-weight:500}.eyebrow.on-dark{color:var(--tan)}.h-display{font-family:var(--font-heading);letter-spacing:.005em;text-transform:uppercase;font-size:clamp(1.9rem,4.2vw,3.2rem);font-weight:600;line-height:1.1}.h1{font-family:var(--font-heading);letter-spacing:.005em;text-transform:uppercase;font-size:clamp(1.8rem,3.6vw,2.6rem);font-weight:600;line-height:1.12}.h2{font-family:var(--font-heading);letter-spacing:.01em;text-transform:uppercase;font-size:clamp(1.5rem,2.8vw,2rem);font-weight:500;line-height:1.15}.h3{font-family:var(--font-heading);text-transform:uppercase;font-size:clamp(1.4rem,2vw,1.7rem);font-weight:500;line-height:1.2}.lead{font-family:var(--font-body);color:var(--cream-soft);font-size:clamp(1.02rem,1.18vw,1.15rem);font-weight:400;line-height:1.7}.lead.on-dark{color:var(--cream-soft)}.body-text{color:var(--cream-soft);font-size:1rem;font-weight:400;line-height:1.75}.container{width:100%;max-width:var(--maxw);padding:0 var(--space-lg);margin:0 auto}.container-wide{width:100%;max-width:var(--maxw-wide);padding:0 var(--space-lg);margin:0 auto}.container-narrow{width:100%;max-width:var(--maxw-narrow);padding:0 var(--space-lg);margin:0 auto}.section{padding:var(--space-3xl) 0;position:relative}.section--tight{padding:var(--space-2xl) 0}.section-dark,.section-ivoire{background:var(--forest-dark);color:var(--cream)}.section-alt{background:var(--forest-soft);color:var(--cream)}@media (width<=768px){.section{padding:var(--space-2xl) 0}.container,.container-wide,.container-narrow{padding:0 var(--space-md)}}.stitch-border{pointer-events:none;opacity:0;z-index:1;width:calc(100% + 2px);height:calc(100% + 2px);transition:none;position:absolute;inset:-1px;overflow:visible}.stitch-border rect,.stitch-border circle{fill:none;stroke:var(--stitch-color,var(--tan));stroke-width:1.5px;stroke-linecap:round;stroke-dasharray:5 3;stroke-dashoffset:0}.btn,.hdr-call,.hdr-gallery,.hdr-burger,.reapage-filter{--stitch-color:var(--mustard)}.has-stitch:hover>.stitch-border,.has-stitch:focus-visible>.stitch-border,.has-stitch.is-active>.stitch-border,.has-stitch.is-open>.stitch-border{opacity:1}.has-stitch:hover>.stitch-border rect,.has-stitch:hover>.stitch-border circle,.has-stitch:focus-visible>.stitch-border rect,.has-stitch:focus-visible>.stitch-border circle,.has-stitch.is-active>.stitch-border rect,.has-stitch.is-active>.stitch-border circle,.has-stitch.is-open>.stitch-border rect,.has-stitch.is-open>.stitch-border circle{animation:1.4s linear infinite stitch-march}.has-stitch:hover,.has-stitch:focus-visible,.has-stitch.is-active,.has-stitch.is-open{border-color:#0000!important;transition:none!important}@keyframes stitch-march{0%{stroke-dashoffset:0}to{stroke-dashoffset:-8px}}@media (prefers-reduced-motion:reduce){.has-stitch:hover>.stitch-border rect,.has-stitch:hover>.stitch-border circle,.has-stitch:focus-visible>.stitch-border rect,.has-stitch:focus-visible>.stitch-border circle{animation:none}}.has-needle-cursor,.has-needle-cursor *{cursor:none!important}.has-needle-cursor input[type=text],.has-needle-cursor input[type=email],.has-needle-cursor input[type=tel],.has-needle-cursor input[type=search],.has-needle-cursor input[type=number],.has-needle-cursor input[type=password],.has-needle-cursor textarea{cursor:text!important}.cursor-needle{pointer-events:none;z-index:99999;will-change:transform;opacity:0;width:26px;height:26px;transition:opacity .15s;position:fixed;top:0;left:0}.cursor-needle svg{width:100%;height:100%;transition:transform .18s var(--ease-out-expo);display:block}.needle-pressed .cursor-needle svg{transform:rotate(180deg)scale(.85)!important}.needle-dragging .cursor-needle svg{transform:rotate(135deg)scale(.9)!important}.needle-dragging .cursor-thread-svg path{stroke-width:1.8px;opacity:.9}.cursor-thread-svg{pointer-events:none;z-index:99998;will-change:contents;width:100vw;height:100vh;position:fixed;inset:0;overflow:visible}.btn{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;border-radius:var(--radius-full);color:var(--mustard);border:1px solid var(--mustard);cursor:pointer;white-space:nowrap;background:0 0;justify-content:center;align-items:center;gap:10px;padding:14px 28px;font-size:13px;font-weight:600;line-height:1;transition:border-color .25s,background .25s;display:inline-flex;position:relative}.btn:hover{background:#f9e26b0f;border-color:#0000}.btn-primary,.btn-outline,.btn-outline-dark{color:var(--mustard);border:1px solid var(--mustard);background:0 0}.btn-primary:hover,.btn-outline:hover,.btn-outline-dark:hover{color:var(--mustard);background:#f9e26b0f;border-color:#0000}.btn>.stitch-border{opacity:0;transition:opacity .22s}.btn:hover>.stitch-border,.btn:focus-visible>.stitch-border{opacity:1}.btn:hover>.stitch-border rect,.btn:focus-visible>.stitch-border rect,.btn:hover>.stitch-border circle,.btn:focus-visible>.stitch-border circle{animation:1.4s linear infinite stitch-march}.btn-link,.btn-link.on-dark{font-family:var(--font-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--mustard);transition:gap .3s var(--ease-out-expo);border:none;align-items:center;gap:8px;padding:4px 0;font-size:13px;font-weight:600;display:inline-flex;position:relative}.btn-link:after{content:"";background:var(--mustard);transform-origin:0;height:1.5px;transition:transform .35s var(--ease-out-expo);position:absolute;bottom:0;left:0;right:28px;transform:scaleX(0)}.btn-link:hover{gap:14px}.btn-link:hover:after{transform:scaleX(1)}.thread-divider{margin:var(--space-xl) auto;align-items:center;gap:16px;max-width:200px;display:flex}.thread-divider:before,.thread-divider:after{content:"";background:linear-gradient(to right, transparent, var(--tan), transparent);flex:1;height:1px}.thread-divider-dot{background:var(--mustard);width:8px;height:8px;box-shadow:0 0 12px var(--mustard);border-radius:50%}.card{background:var(--forest-soft);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:var(--space-xl);color:var(--cream);transition:border-color .3s,background .3s}.card:hover{border-color:#0000}.card-dark{background:var(--forest-soft);border:1px solid var(--border-soft);color:var(--cream)}.form-group{margin-bottom:var(--space-md);flex-direction:column;gap:6px;display:flex}.form-label{font-family:var(--font-heading);letter-spacing:.18em;text-transform:uppercase;color:var(--tan);font-size:11px;font-weight:500}.form-input,.form-textarea,.form-select{border:1px solid var(--border-soft);border-radius:var(--radius-sm);color:var(--cream);width:100%;font-size:15px;font-family:var(--font-body);background:#ffffff0a;padding:14px 16px;transition:border-color .3s,box-shadow .3s,background .3s}.form-input::placeholder,.form-textarea::placeholder{color:#f5ebe159}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--mustard);background:#ffffff0f;outline:none;box-shadow:0 0 0 3px #f9e26b1a}.form-textarea{resize:vertical;min-height:140px}.reveal{opacity:0;transition:opacity 1s var(--ease-out-expo), transform 1s var(--ease-out-expo);transform:translateY(40px)}.reveal.is-visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.reveal-delay-5{transition-delay:.5s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.reveal{opacity:1;transform:none}}.img-placeholder{aspect-ratio:4/5;background:linear-gradient(135deg, var(--forest-soft) 0%, var(--forest-mid) 50%, var(--forest-soft) 100%);border-radius:var(--radius-md);color:#f5ebe159;width:100%;font-family:var(--font-heading);letter-spacing:.28em;text-transform:uppercase;border:1px solid var(--border-soft);justify-content:center;align-items:center;font-size:11px;font-weight:400;display:flex;position:relative;overflow:hidden}.img-placeholder:after{content:"Photo à venir";justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.img-placeholder--square{aspect-ratio:1}.img-placeholder--wide{aspect-ratio:16/10}.img-placeholder--tall{aspect-ratio:3/4}.marquee{width:100%;padding:var(--space-lg) 0;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);background:var(--forest-soft);-webkit-user-select:none;user-select:none;touch-action:pan-y;position:relative;overflow:hidden}.marquee-track{white-space:nowrap;will-change:transform;gap:64px;display:flex}.marquee-item{font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.06em;color:var(--tan);align-items:center;gap:64px;font-size:clamp(1.4rem,2.6vw,2rem);font-weight:400;display:inline-flex}.marquee-item:after{content:"✦";color:var(--mustard);font-size:.6em}.page-loader{background:var(--forest-dark);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.page-loader-ring{width:120px;height:120px;position:relative}.page-loader-ring>svg{width:100%;height:100%;animation:1.6s linear infinite page-loader-spin}.page-loader-needle{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.page-loader-needle svg{animation:1.6s ease-in-out infinite page-loader-bob;transform:rotate(180deg)}@keyframes page-loader-spin{to{transform:rotate(360deg)}}@keyframes page-loader-bob{0%,to{transform:rotate(180deg)translateY(0)}50%{transform:rotate(180deg)translateY(-1.5px)}}@media (prefers-reduced-motion:reduce){.page-loader-ring>svg,.page-loader-needle svg{animation:none}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}strong,b{color:var(--cream);font-weight:600}
