:root{
  --ms-bg:#f5f1ea;
  --ms-paper:#fffdfa;
  --ms-ink:#171817;
  --ms-muted:#6b665f;
  --ms-dark:#181a18;
  --ms-dark-2:#232522;
  --ms-line:rgba(23,24,23,.14);
  --ms-light-line:rgba(255,255,255,.16);
  --ms-accent:#a46245;
  --ms-accent-light:#d9ad96;
  --ms-shell:min(1240px,calc(100% - 3rem));
  --ms-radius:24px;
  --ms-ease:cubic-bezier(.2,.75,.18,1);
  --ms-sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  color:var(--ms-ink);
  background:var(--ms-bg);
  font-family:var(--ms-sans);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;min-width:320px;background:var(--ms-bg);color:var(--ms-ink);font:16px/1.55 var(--ms-sans);text-rendering:optimizeLegibility;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-underline-offset:.2em}
button,input,textarea,select{font:inherit}
::selection{background:#ead7cc;color:var(--ms-ink)}
.ms-shell{width:var(--ms-shell);margin-inline:auto}

/* Header */
.ms-header{position:fixed;z-index:1000;inset:0 0 auto;background:rgba(245,241,234,.86);border-bottom:1px solid rgba(23,24,23,.08);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:background .35s ease,box-shadow .35s ease}
.ms-header.is-scrolled{background:rgba(255,253,250,.94);box-shadow:0 8px 30px rgba(0,0,0,.04)}
.ms-header-inner{width:var(--ms-shell);min-height:4.65rem;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:1.4rem}
.ms-wordmark{display:inline-flex;flex-direction:column;text-decoration:none;line-height:1.02}
.ms-wordmark strong{font-size:1rem;font-weight:820;letter-spacing:-.035em}
.ms-wordmark span{margin-top:.22rem;color:var(--ms-muted);font-size:.62rem;font-weight:730;letter-spacing:.09em;text-transform:uppercase}
.ms-nav{display:flex;align-items:center;gap:.15rem;font-size:.8rem;font-weight:720}
.ms-nav a{min-height:44px;display:inline-flex;align-items:center;padding-inline:.9rem;border-radius:999px;text-decoration:none;transition:background .2s ease,transform .2s ease}
.ms-nav a:hover{background:rgba(23,24,23,.06);transform:translateY(-1px)}
.ms-nav-contact{border:1px solid rgba(23,24,23,.24)}

/* Type / links */
.ms-kicker{margin:0 0 .8rem;color:var(--ms-accent);font-size:.67rem;font-weight:830;letter-spacing:.16em;text-transform:uppercase}
.ms-kicker-light{color:var(--ms-accent-light)}
.ms-text-link,.ms-external-link,.ms-contact-link{min-height:44px;display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:760}
.ms-inline-links{display:flex;flex-wrap:wrap;gap:.2rem 1.2rem;margin-top:1.25rem}
.ms-button{min-height:50px;display:inline-flex;align-items:center;justify-content:center;padding:.8rem 1.2rem;border:1px solid #fff;border-radius:999px;background:#fff;color:var(--ms-ink);text-decoration:none;font-weight:800;cursor:pointer;transition:transform .2s ease,background .2s ease}
.ms-button:hover{transform:translateY(-1px);background:#f4efe8}

/* Hero */
.ms-hero{position:relative;min-height:100svh;background:#bcb5aa;overflow:hidden;isolation:isolate}
.ms-hero-media{position:absolute;inset:-4% 0;z-index:0;will-change:transform}
.ms-hero-media img{width:100%;height:108%;object-fit:cover;object-position:50% 48%}
.ms-hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(10,10,10,.03) 0%,rgba(10,10,10,.03) 48%,rgba(10,10,10,.5) 100%),linear-gradient(0deg,rgba(10,10,10,.34) 0%,rgba(10,10,10,0) 46%)}
.ms-hero-content{position:relative;z-index:2;min-height:100svh;display:flex;align-items:flex-end;padding-top:7rem;padding-bottom:clamp(3rem,7vw,6rem)}
.ms-hero-copy{width:min(510px,42%);margin-left:auto;color:#fff}
.ms-hero-copy .ms-kicker{color:rgba(255,255,255,.74)}
.ms-hero h1{margin:0;max-width:7ch;font-size:clamp(4rem,7.4vw,7rem);line-height:.84;font-weight:760;letter-spacing:-.07em;text-wrap:balance;text-shadow:0 5px 28px rgba(0,0,0,.2)}
.ms-hero-copy>p:not(.ms-kicker){margin:1.1rem 0 0;max-width:26ch;color:rgba(255,255,255,.9);font-size:clamp(1rem,1.4vw,1.2rem);font-weight:620}
.ms-hero .ms-text-link{margin-top:1.3rem;color:#fff;text-decoration:none}
.ms-scroll-cue{position:absolute;z-index:3;left:50%;bottom:1.2rem;width:1px;height:42px;background:rgba(255,255,255,.32);overflow:hidden}
.ms-scroll-cue span{display:block;width:1px;height:16px;background:#fff;animation:ms-scroll-cue 1.8s ease-in-out infinite}
@keyframes ms-scroll-cue{0%{transform:translateY(-18px);opacity:0}25%{opacity:1}100%{transform:translateY(46px);opacity:0}}

/* Intro */
.ms-intro{padding:clamp(6rem,10vw,10rem) 0;background:var(--ms-paper)}
.ms-intro-grid{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr);gap:clamp(3rem,9vw,9rem);align-items:center}
.ms-intro-photo{margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:var(--ms-radius);background:#ddd6cc;box-shadow:0 28px 70px rgba(38,31,25,.09)}
.ms-intro-photo img{width:100%;height:100%;object-fit:cover}
.ms-intro-copy{max-width:650px}
.ms-intro-copy h2,.ms-section-heading h2,.ms-landscape-copy h2,.ms-person-copy h2,.ms-contact-copy h2{margin:0;font-size:clamp(3.1rem,6vw,5.8rem);line-height:.91;font-weight:710;letter-spacing:-.06em;text-wrap:balance}
.ms-intro-copy>p:not(.ms-kicker){max-width:31ch;margin:1.4rem 0 0;color:var(--ms-muted);font-size:clamp(1.05rem,1.65vw,1.3rem);line-height:1.55}

/* Topics: dark editorial block */
.ms-topics{padding:clamp(6rem,9vw,9rem) 0;background:var(--ms-dark);color:#fff}
.ms-topics-grid{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);gap:clamp(3rem,9vw,9rem);align-items:start}
.ms-section-heading{position:sticky;top:7.2rem}
.ms-section-heading .ms-kicker{color:var(--ms-accent-light)}
.ms-section-heading h2{max-width:7ch;color:#fff;font-size:clamp(3.5rem,6.4vw,6.4rem)}
.ms-topic-list{border-top:1px solid var(--ms-light-line)}
.ms-topic{display:grid;grid-template-columns:minmax(180px,.65fr) minmax(0,1fr);gap:2rem;padding:1.55rem 0 1.7rem;border-bottom:1px solid var(--ms-light-line)}
.ms-topic h3{margin:0;font-size:clamp(1.25rem,2vw,1.85rem);line-height:1.04;font-weight:700;letter-spacing:-.035em}
.ms-topic p{max-width:40ch;margin:.08rem 0 0;color:rgba(255,255,255,.58);font-size:.9rem}

/* Landscape: real sticky parallax / crossfade */
.ms-landscape-stage{position:relative;height:180svh;background:#555;--landscape-blend:0;--landscape-shift:0px}
.ms-landscape-sticky{position:sticky;top:0;height:100svh;overflow:hidden;isolation:isolate;background:#777}
.ms-landscape-layer{position:absolute;inset:-7%;margin:0;will-change:transform,opacity}
.ms-landscape-layer img{width:100%;height:114%;object-fit:cover;transform:translate3d(0,var(--landscape-shift),0) scale(1.04);will-change:transform}
.ms-landscape-layer-a{z-index:0}
.ms-landscape-layer-b{z-index:1;opacity:var(--landscape-blend)}
.ms-landscape-overlay{position:absolute;z-index:2;inset:0;background:linear-gradient(0deg,rgba(11,12,11,.48) 0%,rgba(11,12,11,.05) 58%),linear-gradient(90deg,rgba(11,12,11,.2),rgba(11,12,11,0) 62%)}
.ms-landscape-copy{position:relative;z-index:3;height:100%;display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:clamp(3rem,8vw,7rem);color:#fff}
.ms-landscape-copy h2{font-size:clamp(4.2rem,9vw,9rem);max-width:6ch;color:#fff;text-shadow:0 8px 35px rgba(0,0,0,.2)}

/* Marc on the move */
.ms-walk-photo{position:relative;margin:clamp(1.2rem,3vw,3rem);height:min(80svh,860px);min-height:560px;overflow:hidden;border-radius:clamp(18px,2vw,30px);background:#c9c2b8;box-shadow:0 26px 80px rgba(34,28,24,.12)}
.ms-walk-photo img{width:100%;height:110%;object-fit:cover;object-position:50% 38%;transform:translate3d(0,var(--walk-shift,0px),0) scale(1.03);will-change:transform}
.ms-walk-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.4),rgba(0,0,0,0) 52%);pointer-events:none}
.ms-walk-photo figcaption{position:absolute;z-index:2;left:clamp(1.5rem,6vw,6rem);bottom:clamp(1.5rem,5vw,4rem);color:#fff;font-size:clamp(2rem,4.5vw,4.4rem);font-weight:680;letter-spacing:-.055em;text-shadow:0 5px 25px rgba(0,0,0,.18)}

/* Person */
.ms-person{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(380px,.7fr);min-height:760px;background:var(--ms-paper);margin-top:clamp(2rem,5vw,5rem)}
.ms-person-photo{margin:0;min-height:760px;overflow:hidden;background:#d3ccc2}
.ms-person-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 48%}
.ms-person-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,6vw,6rem)}
.ms-person-copy h2{font-size:clamp(3rem,5vw,5rem)}
.ms-person-copy>p:not(.ms-kicker){max-width:34ch;margin:1.25rem 0 0;color:var(--ms-muted);font-size:1rem}
.ms-credentials{margin:1.6rem 0 0;padding:0;list-style:none;border-top:1px solid var(--ms-line)}
.ms-credentials li{padding:.78rem 0;border-bottom:1px solid var(--ms-line);font-size:.82rem;font-weight:680}

/* Contact */
.ms-contact{padding:clamp(6rem,9vw,9rem) 0;background:var(--ms-dark);color:#fff}
.ms-contact-grid{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(440px,1.28fr);gap:clamp(3rem,9vw,9rem);align-items:start}
.ms-contact-copy h2{font-size:clamp(3.2rem,5.6vw,5.6rem);max-width:7ch}
.ms-contact-copy>p:not(.ms-kicker){max-width:30ch;color:rgba(255,255,255,.62)}
.ms-contact-link{color:#fff}
.ms-contact-form-wrap{padding:clamp(1.3rem,3vw,2.2rem);border:1px solid rgba(255,255,255,.13);border-radius:20px;background:rgba(255,255,255,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.ms-test-notice{margin-bottom:1rem;padding:.85rem 1rem;border:1px solid rgba(255,255,255,.18);border-radius:10px;color:rgba(255,255,255,.76);font-size:.82rem}
.fs-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.fs-field{margin-bottom:1rem}.fs-field-wide{grid-column:1/-1}
.fs-field label{display:block;margin-bottom:.35rem;font-size:.79rem;font-weight:720}
.fs-field input,.fs-field textarea{width:100%;min-height:49px;padding:.78rem .85rem;border:1px solid rgba(255,255,255,.22);border-radius:9px;background:#fff;color:var(--ms-ink);transition:border-color .2s ease,box-shadow .2s ease}
.fs-field input:focus,.fs-field textarea:focus{border-color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.12)}
.fs-field textarea{min-height:11rem;resize:vertical}
.fs-field-error{display:block;margin-top:.3rem;color:#ffd5c8;font-size:.78rem}
.fs-checkbox{display:flex!important;gap:.65rem;align-items:flex-start}.fs-checkbox input{width:auto;min-height:0;margin-top:.2rem}
.fs-form-message{margin-bottom:1rem;padding:1rem;border-radius:9px;background:#fff;color:var(--ms-ink)}

/* Footer */
.ms-footer{padding:3.2rem 0 2.4rem;background:#101110;color:#fff}
.ms-footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2rem}
.ms-footer-brand{display:flex;flex-direction:column;gap:.25rem}.ms-footer-brand strong{font-size:1.25rem}.ms-footer-brand span{color:rgba(255,255,255,.48);font-size:.72rem}
.ms-back-top{font-size:.75rem;font-weight:700}
.ms-footer-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.14)}
.ms-footer-links a{display:grid;grid-template-columns:1fr auto;gap:.15rem .8rem;min-height:92px;padding:1rem 1rem 1rem 0;border-bottom:1px solid rgba(255,255,255,.14);text-decoration:none;transition:background .2s ease,padding-left .2s ease}
.ms-footer-links a:hover{background:rgba(255,255,255,.04);padding-left:.6rem}
.ms-footer-links small{grid-column:1/-1;color:rgba(255,255,255,.4);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em}
.ms-footer-links span{font-size:.78rem}

/* Reliable reveal system: visible by default, animated only with JS */
.js [data-reveal]{opacity:0;transition:opacity .85s var(--ms-ease),transform .95s var(--ms-ease);transition-delay:var(--reveal-delay,0ms);will-change:opacity,transform}
.js [data-reveal="up"]{transform:translate3d(0,42px,0)}
.js [data-reveal="left"]{transform:translate3d(-54px,0,0)}
.js [data-reveal="right"]{transform:translate3d(54px,0,0)}
.js [data-reveal="scale"]{transform:scale(.965);opacity:.25}
.js [data-reveal="hero"]{transform:translate3d(0,28px,0);opacity:0}
.js [data-reveal].is-visible{opacity:1;transform:none}

@media(max-width:980px){
  :root{--ms-shell:min(100% - 2rem,1240px)}
  .ms-nav a:not(.ms-nav-contact){display:none}
  .ms-hero-copy{width:min(560px,62%)}
  .ms-intro-grid,.ms-topics-grid,.ms-contact-grid{grid-template-columns:1fr}
  .ms-intro-photo{max-width:560px}
  .ms-section-heading{position:static;max-width:650px}
  .ms-section-heading h2{max-width:9ch}
  .ms-topic{grid-template-columns:minmax(160px,.55fr) minmax(0,1fr)}
  .ms-landscape-stage{height:155svh}
  .ms-person{grid-template-columns:1fr}.ms-person-photo{min-height:0;height:min(95vw,760px)}
  .ms-footer-links{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:650px){
  :root{--ms-shell:calc(100% - 1.4rem);--ms-radius:16px}
  .ms-header-inner{min-height:4.2rem}.ms-wordmark span{display:none}
  .ms-hero{min-height:92svh}.ms-hero-content{min-height:92svh;padding-bottom:2.6rem;align-items:flex-end}
  .ms-hero-media{inset:0}.ms-hero-media img{height:100%;object-position:45% 45%}
  .ms-hero-shade{background:linear-gradient(0deg,rgba(8,8,8,.7) 0%,rgba(8,8,8,.08) 70%)}
  .ms-hero-copy{width:100%;margin-left:0}.ms-hero h1{font-size:clamp(3.5rem,17vw,5rem)}
  .ms-scroll-cue{display:none}
  .ms-intro{padding:4.5rem 0}.ms-intro-grid{gap:2.4rem}.ms-intro-photo{aspect-ratio:4/5}
  .ms-intro-copy h2,.ms-section-heading h2,.ms-person-copy h2,.ms-contact-copy h2{font-size:clamp(2.8rem,13vw,4rem)}
  .ms-topics{padding:4.8rem 0}.ms-topics-grid{gap:2.6rem}.ms-topic{grid-template-columns:1fr;gap:.45rem;padding:1.3rem 0}
  .ms-landscape-stage{height:145svh}.ms-landscape-copy{padding-bottom:3rem}.ms-landscape-copy h2{font-size:clamp(4rem,19vw,6rem)}
  .ms-walk-photo{margin:.75rem;height:75svh;min-height:500px;border-radius:16px}.ms-walk-photo figcaption{font-size:2.2rem}
  .ms-person{margin-top:2rem}.ms-person-photo{height:min(105vw,650px)}.ms-person-copy{padding:3.5rem 1.25rem}
  .ms-contact{padding:4.8rem 0}.fs-form-grid{grid-template-columns:1fr}
  .ms-footer-top{flex-direction:column}.ms-footer-links{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .ms-scroll-cue span{animation:none}
  .js [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
  .ms-hero-media,.ms-landscape-layer img,.ms-walk-photo img{transform:none!important}
}

@media(forced-colors:active){
  .ms-header,.ms-contact-form-wrap,.ms-test-notice{border:1px solid CanvasText}
  .ms-hero-shade,.ms-landscape-overlay{display:none}
  .ms-hero-copy,.ms-landscape-copy{background:Canvas;padding:1rem;color:CanvasText}
  .ms-hero .ms-text-link,.ms-contact-link{color:LinkText}
}
