:root{--ink:#171a17;--dark:#171b18;--ivory:#f3efe6;--gold:#c5a878;--muted:#615b50;--sand:#e9decf;--line:#cfc7b8}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font:16px/1.65 system-ui,-apple-system,sans-serif}a{color:inherit;text-underline-offset:.25em}a:focus-visible{outline:2px solid #ad792d;outline-offset:5px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.02;letter-spacing:-.055em}h1{font-size:clamp(4rem,8.2vw,8.15rem)}h2{font-size:clamp(3.35rem,7vw,6.5rem)}h3{font-size:clamp(2.05rem,3.4vw,3.2rem)}em{font-weight:400;color:#806038}.wrap{width:min(100% - 10vw,1280px);margin:auto}.skip{position:absolute;z-index:3;top:-100px;background:var(--ivory);padding:10px}.skip:focus{top:0}.nav{min-height:79px;display:flex;align-items:center;justify-content:space-between;gap:20px}.nav a{text-decoration:none}.brand,.nav nav{display:flex;align-items:center;gap:clamp(10px,3vw,38px);font-size:.84rem}.brand{gap:12px;font-weight:650}.brand b{font:700 26px Georgia,serif;letter-spacing:-.09em}.brand b span,.nav-contact span{color:#805a27}.nav-contact{border-bottom:1px solid #a9906f;font-size:.85rem;font-weight:650}
.hero,.contact,footer{background:var(--dark);color:var(--ivory)}.hero{background:radial-gradient(ellipse at 75% 47%,#2f342c 0%,#191d19 48%,#151815 80%)}.hero-inner{display:flex;align-items:center;min-height:610px;padding-block:65px 40px}.hero h1{position:relative;z-index:1}.hero em,.contact em{color:var(--gold)}.hero .kicker{margin-bottom:27px}.kicker,.num,.hero-end{font-family:ui-monospace,monospace;font-size:.73rem;letter-spacing:.13em;font-weight:550}.kicker{color:#6f502c}.hero .kicker,.contact .kicker{color:var(--gold)}.kicker i{display:inline-block;width:7px;height:7px;border:1px solid currentColor;transform:rotate(45deg);margin:0 10px 1px 2px}.intro{color:#dbd4c5;max-width:440px;font-size:1.09rem;margin:25px 0 28px}.button{display:inline-flex;gap:25px;align-items:center;justify-content:space-between;padding:13px 19px;background:#d1b588;color:#171a17;font-size:.88rem;font-weight:700;text-decoration:none}.button:hover{background:#efcf9b}.hero-end{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #504b3e;padding-block:18px;color:#d0c1aa}.hero-end a{text-decoration:none}
.section{padding-block:clamp(68px,10vw,145px)}.section h2{margin-top:15px}.service-list{margin-top:52px;border-top:1px solid var(--line)}.service{display:grid;grid-template-columns:65px 1fr 1.12fr;gap:28px;padding:35px 0;border-bottom:1px solid var(--line)}.num{color:#705335;padding-top:8px}.lead{font-size:1.12rem;color:#4f493e;line-height:1.5;margin-top:12px}.service p+p,.profile p+p{margin-top:13px}.arrow{display:inline-flex;gap:14px;font-weight:650;font-size:.88rem;margin-top:17px}.arrow span{color:#79552e}.lavaux{background:var(--sand)}.section-intro{display:grid;grid-template-columns:1.3fr 1fr;gap:32px;align-items:end}.section-intro>p{max-width:480px}.experiences{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:45px}.experiences article{padding:clamp(21px,4vw,49px);border:1px solid #b4a28a;background:#f3e9da}.experiences h3{margin:12px 0 15px}.glyph{height:110px;background:radial-gradient(ellipse,#ede0cb,transparent 70%);margin-bottom:20px;border-bottom:1px solid #cab89e}.glyph svg{display:block;width:100%;height:95px;fill:none;stroke:#755c38;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.example{display:grid;grid-template-columns:1fr 2fr auto;align-items:center;gap:25px;border-top:1px solid #b4a28a;margin-top:30px;padding-top:22px}.example .arrow{margin:0}.profile,.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(25px,7vw,105px);align-items:center}.profile .lead{margin:19px 0}.portrait{margin-top:18px;min-height:280px;background:radial-gradient(circle,#363c30,#1b201b);display:grid;place-items:center;color:var(--gold);font:clamp(4rem,12vw,10rem)/1 Georgia,serif;letter-spacing:-.12em}.portrait img{width:min(50%,160px);height:auto;display:block;border-radius:50%;filter:grayscale(1);border:1px solid var(--gold)}.contact-grid{grid-template-columns:1fr 1fr}.contact-grid>div+div{max-width:440px}.contact .button{margin-top:22px}.contact-location{font-size:.88rem;color:#ccc0aa;margin-top:20px}footer .wrap{display:flex;justify-content:space-between;border-top:1px solid #514a3c;padding-block:20px;font-size:.8rem;color:#e0d7c7}
@media(max-width:850px){.hero-inner{min-height:auto}.service{grid-template-columns:48px 1fr 1.2fr;gap:16px}.example{grid-template-columns:1fr 2fr}.example .arrow{grid-column:2}.hero h1{font-size:clamp(3.8rem,9vw,6rem)}}
@media(max-width:660px){.wrap{width:calc(100% - 36px)}.nav{flex-wrap:wrap;gap:8px;padding:11px 0 13px}.nav nav{order:3;width:100%;padding-top:7px;border-top:1px solid var(--line);justify-content:space-between}.section-intro,.experiences,.profile,.contact-grid{grid-template-columns:1fr}.hero-inner{padding-block:55px 70px}.hero h1{font-size:clamp(3.2rem,11vw,4.9rem)}.hero-end{font-size:.6rem;letter-spacing:.05em}.service{grid-template-columns:36px 1fr}.service>div:last-child{grid-column:2}.example{grid-template-columns:1fr;gap:10px}.example .arrow{grid-column:auto}.portrait{min-height:170px}.profile .portrait img{max-height:320px;object-position:50% 40%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Successive crops of the same movement run behind the page content. */
.hero,.section{position:relative;isolation:isolate}
.hero::before,.section::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:url("mouvement.svg") no-repeat var(--movement-position);
  background-size:var(--movement-size);
  opacity:var(--movement-opacity);
  mask-image:var(--movement-mask);
}
.hero{
  --movement-position:left 22vw top -755px;
  --movement-size:max(1350px,130vw) auto;
  --movement-opacity:.28;
  --movement-mask:linear-gradient(90deg,transparent 18%,#000 82%);
}
.mandats{
  --movement-position:right 39vw top -295px;
  --movement-size:max(1250px,119vw) auto;
  --movement-opacity:.18;
  --movement-mask:radial-gradient(ellipse at 5% 8%,#000 1%,transparent 46%);
}
.lavaux{
  --movement-position:left 15vw top -455px;
  --movement-size:max(1200px,108vw) auto;
  --movement-opacity:.14;
  --movement-mask:radial-gradient(ellipse at 89% 18%,#000 3%,transparent 56%);
}
.parcours{
  --movement-position:right 24vw top -500px;
  --movement-size:max(1180px,113vw) auto;
  --movement-opacity:.14;
  --movement-mask:radial-gradient(ellipse at 0% 73%,#000,transparent 53%);
}
.contact{
  --movement-position:left 26vw top -710px;
  --movement-size:max(1440px,134vw) auto;
  --movement-opacity:.25;
  --movement-mask:linear-gradient(95deg,transparent 38%,#000 100%);
}
@media(max-width:660px){
  .hero{
    --movement-position:left -225px top -395px;
    --movement-size:1030px auto;
    --movement-opacity:.23;
    --movement-mask:linear-gradient(115deg,transparent 25%,#000 100%);
  }
  .mandats,.lavaux,.parcours,.contact{--movement-opacity:.11}
}
.contact-email{margin-top:9px;color:#e0d7c7;font-size:.88rem;overflow-wrap:anywhere}
