:root{--paper:#EFE9DE;--paper-2:#F5F1E8;--ink:#171310;--forest:#1B3A2E;--rust:#A53E23;--taupe:#6B6359;--rule:#CFC5AF;--rule-strong:#B8AC92;--serif:"Fraunces",Georgia,serif;--editorial:"Instrument Serif",Georgia,serif;--mono:"JetBrains Mono",ui-monospace,monospace;--pad:clamp(1rem,4vw,4.5rem);--max:1440px;--fs-body:16px;--fs-label:10.5px}@media (min-width:720px){:root{--fs-body:17px}}@media (min-width:1100px){:root{--fs-body:18px}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:var(--fs-body);line-height:1.55;font-weight:380;font-variation-settings:"opsz" 14,"SOFT" 100;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}::selection{background:var(--forest);color:var(--paper)}a{color:inherit}img,svg{display:block;max-width:100%;height:auto}.grain{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.32;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.09  0 0 0 0 0.075 0 0 0 0 0.063  0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}.ledger{position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(to bottom,transparent calc(100% - 1px),rgba(23,19,16,.03) 100%);background-size:100% 36px}.label{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.22em;text-transform:uppercase;color:var(--taupe)}.top{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:.75rem var(--pad);border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05)}.top .status{display:none;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.22em;text-transform:uppercase;color:var(--taupe)}.top .status .dot{color:var(--rust);margin-right:.4rem}.top .mark{display:flex;align-items:center;gap:.55rem;text-decoration:none;color:var(--ink);justify-self:center}.top .mark svg{width:24px;height:24px;flex:none}.top .mark span{font-family:var(--serif);font-style:italic;font-weight:400;font-size:15px;letter-spacing:-.01em;white-space:nowrap}.top .actions{display:flex;gap:.5rem;align-items:center;justify-self:end}.top .actions .tel{display:none;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);text-decoration:none}.top .actions .tel:hover{color:var(--ink)}.cta{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;padding:.55rem .8rem .5rem;border:1px solid var(--ink);color:var(--ink);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;transition:background .3s,color .3s;white-space:nowrap}.cta:hover{background:var(--ink);color:var(--paper)}.cta:after{content:"↗";font-family:var(--serif);font-size:12px;letter-spacing:0;transition:transform .3s}.cta:hover:after{transform:translate(2px,-2px)}@media (min-width:720px){.top{grid-template-columns:1fr auto 1fr}.top .status{display:inline-flex;gap:1rem}.top .actions .tel{display:inline-flex}}.hero{position:relative;max-width:var(--max);margin:0 auto;padding:clamp(2.5rem,7vw,6rem) var(--pad) clamp(2rem,5vw,4rem);display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width:900px){.hero{grid-template-columns:200px 1fr;gap:3rem;padding-top:clamp(4rem,7vw,7rem)}}.hero__meta{display:flex;flex-direction:column;gap:.75rem;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.22em;text-transform:uppercase;color:var(--taupe)}.hero__meta b{color:var(--ink);font-weight:500}.hero__meta .rx{font-family:var(--serif);font-style:italic;font-size:42px;line-height:1;color:var(--rust);font-weight:300;letter-spacing:-.02em;text-transform:none;margin-top:.25rem}.hero__meta .rule{height:1px;background:var(--rule-strong);width:3rem}@media (max-width:899px){.hero__meta{flex-direction:row;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center}.hero__meta .rx{font-size:28px;margin:0}.hero__meta .rule{display:none}}.hero h1{margin:0;font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(2.75rem,11vw,10rem);line-height:.94;letter-spacing:-.035em;color:var(--ink);font-variation-settings:"opsz" 144,"SOFT" 80}.hero h1 .word{display:block;overflow:hidden}.hero h1 .word>span{display:inline-block;will-change:transform}.hero h1 .accent{color:var(--forest)}.hero h1 .dot{color:var(--rust)}.hero__main{display:flex;flex-direction:column}.hero__top{display:flex;gap:clamp(1.25rem,2.5vw,2.5rem);align-items:flex-start}.hero__top h1{flex:1;min-width:0}.hero__top .gallery{flex:0 0 auto;width:clamp(200px,24vw,290px)}@media (max-width:900px){.hero__top{flex-direction:column}.hero__top .gallery{width:100%;max-width:520px}}.hero__lede{margin:clamp(1.25rem,2.5vw,2rem) 0 0;max-width:38ch;font-family:var(--editorial);font-style:italic;font-size:clamp(1.1rem,1.6vw,1.35rem);line-height:1.4;color:#2a231d}.hero__lede:before{content:"« ";color:var(--rust)}.hero__lede:after{content:" »";color:var(--rust)}.hero__foot{margin-top:clamp(2rem,4vw,3rem);padding-top:1rem;border-top:1px solid var(--rule);display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}@media (min-width:720px){.hero__foot{grid-template-columns:repeat(4,1fr);gap:1.5rem}}.hero__foot dl{margin:0}.hero__foot dt{margin-bottom:.3rem;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.22em;text-transform:uppercase;color:var(--taupe)}.hero__foot dd{margin:0;font-family:var(--serif);font-size:15px;line-height:1.35}.hero__foot dd em{font-family:var(--editorial);font-style:italic;color:var(--forest)}.gallery{position:relative;display:flex;flex-direction:column;gap:.55rem}.gallery__cap{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe)}.gallery__cap .count{font-variant-numeric:tabular-nums}.gallery__cap .count b{color:var(--ink);font-weight:500}.gallery__stage{position:relative;aspect-ratio:3/4;background:var(--paper-2);border:1px solid var(--rule);overflow:hidden;touch-action:pan-y;user-select:none;cursor:grab}.gallery__stage:active{cursor:grabbing}.gallery__stage:after{content:"";position:absolute;inset:6px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);pointer-events:none;z-index:3}.gallery__track{display:flex;height:100%;width:100%;transition:transform .7s cubic-bezier(.65,0,.35,1)}.gallery__slide{flex:0 0 100%;margin:0;height:100%;position:relative}.gallery__ph{position:absolute;inset:0;display:flex;align-items:flex-end;padding:1rem;font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe)}.gallery__ph[data-tone="1"]{background:radial-gradient(ellipse at 30% 20%,color-mix(in srgb,var(--forest) 22%,var(--paper-2)),var(--paper-2) 65%)}.gallery__ph[data-tone="2"]{background:radial-gradient(ellipse at 70% 35%,color-mix(in srgb,var(--rust) 16%,var(--paper-2)),var(--paper-2) 60%)}.gallery__ph[data-tone="3"]{background:radial-gradient(ellipse at 50% 80%,color-mix(in srgb,var(--forest) 28%,var(--paper-2)),var(--paper-2) 55%)}.gallery__ph[data-tone="4"]{background:radial-gradient(ellipse at 20% 60%,color-mix(in srgb,var(--ink) 24%,var(--paper-2)),var(--paper-2) 72%)}.gallery__slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.gallery__slide figcaption{position:absolute;bottom:1rem;left:1rem;right:1rem;z-index:2;font-family:var(--serif);font-style:italic;font-size:14px;line-height:1.2;color:var(--ink);background:color-mix(in srgb,var(--paper) 92%,transparent);padding:.35rem .55rem;display:inline-block;width:auto;max-width:calc(100% - 1rem);border:1px solid var(--rule)}.gallery__dots{display:flex;gap:.35rem;padding:.2rem 0;flex-wrap:wrap}.gallery__dots button{all:unset;box-sizing:border-box;cursor:pointer;width:18px;height:2px;background:var(--rule-strong);transition:background .3s,width .3s}.gallery__dots button.on{background:var(--ink);width:30px}.gallery__dots button:hover{background:var(--forest)}@media (max-width:900px){.gallery__stage{aspect-ratio:4/3}}.parallax{border-block:1px solid var(--rule);background:var(--paper-2);overflow:hidden;position:relative}.parallax:before,.parallax:after{content:"";position:absolute;top:0;bottom:0;width:clamp(3rem,8vw,7rem);z-index:2;pointer-events:none}.parallax:before{left:0;background:linear-gradient(to right,var(--paper-2),transparent)}.parallax:after{right:0;background:linear-gradient(to left,var(--paper-2),transparent)}.parallax__row{overflow:hidden;padding:.7rem 0}.parallax__row+.parallax__row{border-top:1px solid var(--rule)}.parallax__track{display:flex;gap:clamp(1.5rem,3vw,3rem);width:max-content;white-space:nowrap;will-change:transform}.parallax__track>span{display:inline-flex;align-items:center;gap:clamp(1.5rem,3vw,3rem);flex:none}.parallax__row--a{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.4rem,3.2vw,2.4rem);letter-spacing:-.01em;color:var(--ink);font-variation-settings:"opsz" 144,"SOFT" 70}.parallax__row--a i{color:var(--rust);font-style:normal;font-weight:400}.parallax__row--a .parallax__track{animation:panL 28s linear infinite}.parallax__row--b{font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--taupe)}.parallax__row--b i{color:var(--rust);font-style:normal}.parallax__row--b .parallax__track{animation:panR 38s linear infinite}@keyframes panL{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes panR{0%{transform:translate(-50%)}to{transform:translate(0)}}.parallax:hover .parallax__track{animation-play-state:paused}.manifesto{max-width:var(--max);margin:0 auto;padding:clamp(3.5rem,8vw,6rem) var(--pad);display:grid;gap:1.5rem;grid-template-columns:1fr}@media (min-width:900px){.manifesto{grid-template-columns:240px 1fr;gap:3rem}}.manifesto .chapter{display:flex;flex-direction:column;gap:.4rem}.manifesto .chapter .num{font-family:var(--serif);font-style:italic;font-size:40px;line-height:1;color:var(--forest);font-weight:300;letter-spacing:-.02em;text-transform:none}.manifesto .body{font-family:var(--editorial);font-size:clamp(1.25rem,2.2vw,1.85rem);line-height:1.4;color:#1f1a16;max-width:48ch}.manifesto .body em{font-style:italic;color:var(--forest)}.manifesto .sig{margin-top:1.5rem;display:flex;align-items:center;gap:1rem;font-family:var(--serif);font-style:italic;font-size:18px;color:var(--forest)}.manifesto .sig .line{height:1px;background:var(--rule-strong);flex:1;max-width:80px}.section-head{display:grid;gap:.75rem;grid-template-columns:1fr;align-items:baseline;padding-bottom:1.5rem;border-bottom:1px solid var(--rule)}@media (min-width:720px){.section-head{grid-template-columns:1fr auto}}.section-head h2{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(2rem,6vw,4rem);line-height:1;letter-spacing:-.025em;font-variation-settings:"opsz" 144,"SOFT" 50}.section-head h2 em{font-style:italic;color:var(--forest);font-weight:300}.soins{max-width:var(--max);margin:0 auto;padding:clamp(2rem,5vw,4rem) var(--pad);border-top:1px solid var(--rule)}.soins__list{list-style:none;margin:1rem 0 0;padding:0}.soin{display:grid;grid-template-columns:2.5rem 1fr;gap:1rem;align-items:baseline;padding:1.5rem 0;border-bottom:1px solid var(--rule);transition:background .35s}@media (min-width:720px){.soin{grid-template-columns:4.5rem minmax(14ch,1fr) minmax(0,1.4fr) auto;gap:2rem;padding:1.75rem 0}}.soin:hover{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--forest) 4%,transparent),transparent)}.soin__num{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.5rem,2.5vw,2.1rem);color:var(--rust);line-height:1}.soin__title{font-family:var(--serif);font-weight:380;font-size:clamp(1.25rem,2.2vw,1.8rem);line-height:1.1;letter-spacing:-.015em;font-variation-settings:"opsz" 144,"SOFT" 60}.soin__title em{font-family:var(--editorial);font-style:italic;color:var(--forest);font-weight:400}.soin__desc{grid-column:2;color:#332b24;font-size:15px;line-height:1.5;margin-top:.3rem}@media (min-width:720px){.soin__desc{grid-column:auto;margin-top:0;max-width:40ch}}.soin__meta{grid-column:2;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.22em;text-transform:uppercase;color:var(--taupe);margin-top:.25rem}@media (min-width:720px){.soin__meta{grid-column:auto;margin-top:0;white-space:nowrap}}.quote{margin:clamp(3rem,6vw,5rem) 0 0;background:var(--forest);color:var(--paper);padding:clamp(3rem,8vw,6rem) var(--pad);position:relative;overflow:hidden}.quote:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(ellipse 80% 60% at 50% 0%,color-mix(in srgb,#2E5643 60%,transparent),transparent 60%),linear-gradient(to bottom,transparent 70%,rgba(0,0,0,.25))}.quote__inner{max-width:1000px;margin:0 auto;position:relative;display:grid;gap:1.5rem}.quote .mark{font-family:var(--serif);font-style:italic;font-size:clamp(3.5rem,10vw,7rem);line-height:.8;color:color-mix(in srgb,var(--paper) 30%,transparent)}.quote blockquote{margin:0;font-family:var(--editorial);font-style:italic;font-size:clamp(1.5rem,4vw,2.75rem);line-height:1.22;letter-spacing:-.01em;max-width:24ch}.quote blockquote em{font-family:var(--serif);font-style:italic;color:#e7c9a1}.quote cite{display:flex;align-items:center;gap:1rem;font-style:normal;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.22em;text-transform:uppercase;color:color-mix(in srgb,var(--paper) 72%,transparent)}.quote cite .dash{width:2rem;height:1px;background:color-mix(in srgb,var(--paper) 50%,transparent)}.pratique{max-width:var(--max);margin:0 auto;padding:clamp(3rem,7vw,5rem) var(--pad);display:grid;gap:2rem;grid-template-columns:1fr}@media (min-width:900px){.pratique{grid-template-columns:1.15fr .85fr;gap:3rem}}.pratique h3{margin:0 0 1.25rem;font-family:var(--serif);font-weight:300;font-size:clamp(1.75rem,4vw,2.75rem);letter-spacing:-.02em;line-height:1;font-variation-settings:"opsz" 144,"SOFT" 60}.pratique h3 em{font-style:italic;color:var(--forest);font-weight:300}.schedule{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:1.25rem}.schedule .row{display:grid;grid-template-columns:1fr auto;padding:.7rem 0;border-bottom:1px dashed var(--rule);font-family:var(--serif);font-size:16px;align-items:center}.schedule .row:last-child{border-bottom:0}.schedule .row .h{font-family:var(--mono);font-size:11.5px;letter-spacing:.14em;color:var(--taupe)}.schedule .row.closed .h{color:var(--rust)}.notes{font-family:var(--editorial);font-style:italic;font-size:16px;color:#382e26;max-width:40ch;margin:0 0 1.25rem}.cta-row{display:flex;gap:.75rem;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;padding:.8rem 1.1rem;border:1px solid var(--ink);color:var(--ink);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.22em;text-transform:uppercase;transition:background .3s,color .3s,border-color .3s}.btn:hover,.btn.primary{background:var(--ink);color:var(--paper)}.btn.primary:hover{background:var(--forest);border-color:var(--forest)}.btn:after{content:"→";transition:transform .3s}.btn:hover:after{transform:translate(3px)}.card{background:var(--paper-2);border:1px solid var(--rule);padding:clamp(1.25rem,3vw,2rem);position:relative}.card:before{content:"";position:absolute;inset:6px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);pointer-events:none}.card .tag{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.22em;text-transform:uppercase;color:var(--rust);margin-bottom:1rem}.card h4{margin:0 0 .75rem;font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(1.4rem,3vw,1.9rem);line-height:1.05;letter-spacing:-.02em}.card .addr{margin:0;font-family:var(--serif);font-size:16px;line-height:1.55}.card .addr strong{font-weight:500}.card .phone{display:block;margin-top:.85rem;padding-top:.85rem;border-top:1px solid var(--rule);font-family:var(--mono);font-size:13px;letter-spacing:.08em;color:var(--ink);text-decoration:none}.card .phone:before{content:"tél.  ";color:var(--taupe);font-size:var(--fs-label);letter-spacing:.22em;text-transform:uppercase}.card .pluscode{display:flex;align-items:center;gap:.75rem;margin-top:1rem;padding:.65rem .75rem;background:var(--paper);border:1px dashed var(--rule-strong);text-decoration:none;color:var(--ink);transition:background .3s,border-color .3s}.card .pluscode:hover{background:#e7dfcb;border-color:var(--forest)}.card .pluscode span{font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--taupe)}.card .pluscode b{font-family:var(--mono);font-size:13px;letter-spacing:.08em;font-weight:500;color:var(--forest);margin-left:auto}.col{display:flex;flex-direction:column;gap:1rem}.map{position:relative;border:1px solid var(--rule);overflow:hidden;background:var(--paper-2);aspect-ratio:4/3}.map iframe{width:100%;height:100%;border:0;display:block;filter:sepia(.28) saturate(.7) contrast(.92) brightness(1.02) hue-rotate(-8deg)}.map:after{content:"";position:absolute;inset:6px;border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);pointer-events:none;z-index:2}.map__cap{position:absolute;top:.75rem;left:.75rem;z-index:3;background:var(--paper);color:var(--ink);padding:.4rem .7rem;border:1px solid var(--rule-strong);font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;display:flex;align-items:center;gap:.5rem}.map__cap .rx{color:var(--rust);font-family:var(--serif);font-style:italic;font-size:14px;letter-spacing:0;text-transform:none;line-height:1}.map__link{position:absolute;bottom:.75rem;right:.75rem;z-index:3;text-decoration:none;background:var(--ink);color:var(--paper);padding:.45rem .7rem;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;display:inline-flex;align-items:center;gap:.5rem;transition:background .3s}.map__link:hover{background:var(--forest)}.map__link:after{content:"↗"}footer{border-top:1px solid var(--rule);background:var(--paper-2);padding:clamp(2.5rem,5vw,4rem) var(--pad) 1.5rem}.foot{max-width:var(--max);margin:0 auto;display:grid;gap:1.5rem;grid-template-columns:1fr;align-items:end}@media (min-width:760px){.foot{grid-template-columns:1.2fr .9fr .9fr}}.foot .wordmark{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(2.25rem,6vw,4.25rem);line-height:.9;letter-spacing:-.03em;font-variation-settings:"opsz" 144,"SOFT" 70}.foot .wordmark em{color:var(--forest)}.foot ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem;font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;color:var(--taupe)}.foot ul a{text-decoration:none;color:inherit}.foot ul a:hover{color:var(--ink)}.foot .fine{grid-column:1/-1;margin-top:2rem;padding-top:.85rem;border-top:1px solid var(--rule);display:flex;justify-content:space-between;gap:.75rem;flex-wrap:wrap;font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe)}.foot .fine .rx{color:var(--rust);font-family:var(--serif);font-style:italic;font-size:14px;letter-spacing:0;text-transform:none}.reveal{opacity:0;transform:translateY(16px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}.reveal.on{opacity:1;transform:none}.hero h1 .word>span{transform:translateY(102%);transition:transform 1s cubic-bezier(.22,.61,.36,1)}.hero.loaded h1 .word>span{transform:translateY(0)}.hero.loaded h1 .word:nth-child(1)>span{transition-delay:.1s}.hero.loaded h1 .word:nth-child(2)>span{transition-delay:.22s}.hero.loaded h1 .word:nth-child(3)>span{transition-delay:.34s}.hero__lede,.hero__meta,.hero__foot{opacity:0;transition:opacity 1s ease}.hero.loaded .hero__lede{opacity:1;transition-delay:.65s}.hero.loaded .hero__meta{opacity:1;transition-delay:.85s}.hero.loaded .hero__foot{opacity:1;transition-delay:1.05s}@media (prefers-reduced-motion:reduce){.hero h1 .word>span{transform:none;transition:none}.hero__lede,.hero__meta,.hero__foot{opacity:1;transition:none}.reveal{opacity:1;transform:none;transition:none}}
