:root{--ink:#171715;--paper:#f2f0eb;--muted:#a5a29b;--gold:#c6ad86;--line:rgba(255,255,255,.16);--dark-line:rgba(23,23,21,.17);--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.site-header{height:82px;position:absolute;z-index:10;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 6.5%;border-bottom:1px solid var(--line);color:#fff}.wordmark{font-family:var(--serif);font-size:27px;letter-spacing:-2px}.wordmark span,.period,.contact-orb span{color:var(--gold)}.nav{display:flex;align-items:center;gap:35px;font-size:11px;letter-spacing:.11em;text-transform:uppercase}.nav a{opacity:.78;transition:opacity .2s}.nav a:hover,.nav a.active{opacity:1}.nav-contact{border:1px solid rgba(255,255,255,.5);padding:12px 15px}.nav-contact span{padding-left:13px;color:var(--gold)}.menu-toggle{display:none}
.hero{height:min(900px,100svh);min-height:680px;position:relative;display:flex;align-items:center;overflow:hidden;background:#111}.hero-image{position:absolute;inset:0;background-image:url("assets/olivier-perrin-hero.png");background-size:cover;background-position:center 48%;transform:scale(1.015)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,7,7,.8) 0%,rgba(7,7,7,.52) 43%,rgba(7,7,7,.12) 100%),linear-gradient(0deg,rgba(5,5,5,.62),transparent 45%,rgba(5,5,5,.23))}.hero-content{position:relative;z-index:1;color:#fff;margin-left:12%;padding-top:40px;max-width:760px}.eyebrow,.overline,.section-kicker,.project-meta,.project-disclaimer,.hero-note,.scroll-cue{font-size:9px;letter-spacing:.19em}.eyebrow{display:flex;align-items:center;gap:12px;color:#dedbd4}.eyebrow-line{width:29px;height:1px;background:var(--gold)}h1{font-family:var(--serif);font-weight:400;font-size:clamp(76px,12vw,160px);line-height:.92;letter-spacing:-.075em;margin:39px 0 28px}h1 em,h2 em{font-weight:400;color:var(--gold)}h1 em{font-style:italic}.hero-subtitle{font-size:clamp(20px,2.4vw,29px);line-height:1.4;font-weight:400;letter-spacing:-.035em;margin:0;color:#f2f0eb}.hero-subtitle span{color:#c0bdb6}.hero-actions{display:flex;align-items:center;gap:30px;margin-top:38px}.button{display:inline-flex;align-items:center;gap:32px;padding:16px 19px;font-size:10px;letter-spacing:.04em;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-light{background:#f1eee8;color:#171715}.button-light span,.button-dark span{font-size:16px}.text-link{font-size:10px;letter-spacing:.05em;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:8px}.text-link span{padding-left:10px;color:var(--gold)}.hero-note{position:absolute;right:6.5%;bottom:70px;display:flex;align-items:center;gap:16px;color:#e0ddd7;font-size:8px}.note-rule{height:1px;width:44px;background:var(--gold)}.scroll-cue{position:absolute;bottom:34px;left:6.5%;color:#c4c0b8;font-size:8px;display:flex;align-items:center;gap:10px}.scroll-dot{width:5px;height:5px;background:var(--gold);border-radius:50%}
.section-wrap{padding-left:12%;padding-right:12%}.intro{display:grid;grid-template-columns:.7fr 2fr;gap:40px;padding-top:140px;padding-bottom:150px}.section-kicker{display:flex;gap:17px;color:#77736c;align-items:center}.section-kicker span:first-child{color:#b79c72}.section-kicker span:last-child{letter-spacing:.16em}.intro-copy{max-width:780px}.overline{color:#a38b67;margin:0 0 24px}.intro h2,.heading-right h2,.contact h2{font-family:var(--serif);font-size:clamp(38px,5.1vw,68px);font-weight:400;line-height:1.15;letter-spacing:-.045em;margin:0}.intro h2 em,.heading-right h2 em,.contact h2 em{color:#a58a63}.intro-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-top:30px}.body-copy{font-size:13px;line-height:1.9;color:#6e6b64;max-width:500px}.circle-link{flex:0 0 50px;height:50px;border:1px solid #bcb5a9;border-radius:50%;display:grid;place-items:center;font-size:19px;transition:background .2s}.circle-link:hover{background:#e1d8c9}
.projects{padding-top:105px;padding-bottom:125px;background:#e8e5de}.section-heading{display:grid;grid-template-columns:.7fr 2fr;gap:40px;margin-bottom:52px}.section-heading .overline{margin-top:38px}.heading-right{display:flex;justify-content:space-between;align-items:flex-end;gap:30px}.heading-right p{max-width:220px;color:#77736c;font-size:11px;line-height:1.8;margin-bottom:5px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.project-visual{height:300px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#f5f0e7}.visual-one{background:radial-gradient(ellipse at 65% 35%,#756b5b 0,#35332d 28%,#191a18 68%)}.visual-two{background:radial-gradient(ellipse at 40% 30%,#8a7761 0,#514536 28%,#22201d 72%)}.visual-three{background:radial-gradient(ellipse at 55% 50%,#5e645c 0,#30352f 35%,#191b18 75%)}.project-visual:after{content:"";position:absolute;inset:12px;border:1px solid rgba(255,255,255,.2)}.visual-index{position:absolute;left:28px;top:27px;font-size:10px;letter-spacing:.1em;color:#d2c2a8}.visual-symbol{font-family:var(--serif);font-size:104px;font-weight:400;color:rgba(232,218,194,.78)}.visual-type{position:absolute;left:29px;bottom:28px;font-size:9px;line-height:1.8;letter-spacing:.2em}.project-meta{display:flex;justify-content:space-between;gap:8px;margin-top:22px;color:#938a7c;font-size:8px;letter-spacing:.1em}.project-card h3{font-family:var(--serif);font-weight:400;font-size:24px;letter-spacing:-.03em;margin:14px 0 8px}.project-card>p{font-size:11px;line-height:1.8;color:#77736c;margin:0;max-width:340px}.project-disclaimer{color:#8b857b;font-size:9px;letter-spacing:.04em;margin:40px 0 0}
.manifesto{position:relative;background:#151613;color:#f1eee8;min-height:720px;overflow:hidden}.manifesto-image{position:absolute;inset:0 0 0 48%;background:url("assets/olivier-perrin-hero.png") center/cover;opacity:.4;filter:grayscale(1)}.manifesto-overlay{position:absolute;inset:0;background:linear-gradient(90deg,#151613 0%,#151613 35%,rgba(21,22,19,.8) 65%,rgba(21,22,19,.28) 100%)}.manifesto-content{position:relative;max-width:920px;padding:100px 0 100px 12%}.manifesto .section-kicker{color:#b7b1a6}.manifesto .overline{margin-top:70px}.manifesto h2{font-family:var(--serif);font-size:clamp(55px,7vw,90px);font-weight:400;line-height:1.03;letter-spacing:-.05em;margin:0}.values{display:flex;gap:38px;margin-top:65px;max-width:750px}.values>div{display:flex;gap:13px;align-items:flex-start;flex:1}.values>div>span{font-size:9px;color:var(--gold);padding-top:3px}.values p{font-size:10px;line-height:1.8;color:#aaa69e;margin:0}.values strong{font-size:12px;color:#f3f0e8;font-weight:500}
.contact{display:grid;grid-template-columns:.7fr 1.6fr .8fr;gap:38px;padding-top:135px;padding-bottom:135px}.contact-main .overline{margin-bottom:24px}.contact h2{font-size:clamp(48px,6vw,76px)}.contact-main .body-copy{margin:25px 0 30px}.button-dark{background:#191a17;color:#f2f0eb}.button-dark:hover{background:#38362f}.contact-side{align-self:end;padding-bottom:6px}.contact-orb{width:82px;height:82px;border:1px solid #c2b7a4;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:29px;letter-spacing:-2px}.contact-side p{font-family:var(--serif);font-size:18px;line-height:1.5;max-width:210px;margin:24px 0}.dark-link{display:inline-block;color:#48453f;border-color:#b7b0a5}.dark-link span{color:#a58a63}
.footer{background:#171815;color:#b8b4ab;padding:28px 6.5%;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer .wordmark{color:#f5f1e9}.footer p,.footer div{font-size:9px;letter-spacing:.06em}.footer div{display:flex;gap:22px}.footer a:hover{color:#fff}
@media(min-width:1500px){.hero-content{margin-left:15%}.section-wrap{padding-left:15%;padding-right:15%}.manifesto-content{padding-left:15%}}
@media(max-width:900px){.site-header{padding:0 5%;height:72px}.nav{gap:19px;font-size:9px}.section-wrap{padding-left:7%;padding-right:7%}.intro,.section-heading{grid-template-columns:.55fr 2fr;gap:25px}.heading-right{display:block}.heading-right p{margin-top:18px}.project-grid{gap:14px}.project-visual{height:240px}.project-card h3{font-size:21px}.manifesto-content{padding-left:7%;padding-right:7%}.contact{grid-template-columns:.5fr 1.5fr .7fr;gap:25px}.hero-content{margin-left:8%}}
@media(max-width:640px){.site-header{height:66px}.menu-toggle{display:flex;flex-direction:column;gap:5px;background:none;border:0;padding:10px;z-index:12}.menu-toggle span{width:24px;height:1px;background:#fff;display:block}.nav{display:none;position:absolute;top:65px;left:0;right:0;background:#171815;padding:25px 7%;align-items:stretch;flex-direction:column;gap:0}.nav.open{display:flex}.nav a{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12)}.nav .nav-contact{border:0;padding:15px 0}.hero{min-height:700px;height:95svh;max-height:900px}.hero-image{background-position:59% center}.hero-shade{background:linear-gradient(90deg,rgba(7,7,7,.76),rgba(7,7,7,.32)),linear-gradient(0deg,rgba(5,5,5,.55),transparent 60%)}.hero-content{margin:0;padding:20px 7% 0}.eyebrow{font-size:8px;letter-spacing:.12em}.hero-content h1{font-size:clamp(68px,17vw,104px);margin:32px 0 23px}.hero-subtitle{font-size:23px}.hero-actions{gap:20px;align-items:flex-start;flex-direction:column;margin-top:30px}.button{padding:15px 16px}.hero-note{right:7%;bottom:65px;font-size:7px;gap:9px}.note-rule{width:23px}.scroll-cue{left:7%;font-size:7px;bottom:27px}.intro{display:block;padding-top:85px;padding-bottom:90px}.intro-copy{margin-top:42px}.intro h2,.heading-right h2{font-size:clamp(37px,10vw,52px)}.intro-bottom{align-items:center;gap:18px}.body-copy{font-size:12px}.circle-link{flex-basis:43px;height:43px}.projects{padding-top:75px;padding-bottom:80px}.section-heading{display:block;margin-bottom:35px}.section-heading .overline{margin-top:25px}.heading-right p{max-width:300px}.project-grid{grid-template-columns:1fr;gap:38px}.project-visual{height:310px}.project-card h3{font-size:25px}.project-disclaimer{line-height:1.8}.manifesto{min-height:auto}.manifesto-image{inset:0;background-position:62% center;opacity:.23}.manifesto-overlay{background:linear-gradient(90deg,rgba(21,22,19,.95),rgba(21,22,19,.65))}.manifesto-content{padding:75px 7% 80px}.manifesto .overline{margin-top:55px}.manifesto h2{font-size:clamp(57px,14vw,76px)}.values{flex-direction:column;gap:24px;margin-top:45px}.values p{font-size:11px}.contact{display:block;padding-top:85px;padding-bottom:85px}.contact-main{margin-top:45px}.contact h2{font-size:clamp(49px,12vw,68px)}.contact-side{margin-top:65px}.contact-orb{width:67px;height:67px;font-size:24px}.contact-side p{font-size:17px}.footer{padding:25px 7%;flex-wrap:wrap}.footer p{order:3;width:100%;margin:0}.footer div{gap:15px}.footer div a{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

#admin-link{font-size:9px;letter-spacing:.08em;color:#c6ad86;opacity:.8}#admin-link:hover{opacity:1}

.custom-content{position:relative;z-index:2}.custom-info{margin:18px auto;max-width:760px;padding:18px 22px;border:1px solid rgba(198,173,134,.45);background:rgba(25,26,23,.82);color:#f2f0eb}.custom-info h3{font:400 21px var(--serif);margin:0 0 8px}.custom-info p{font-size:12px;line-height:1.8;margin:0;color:#d0ccc3}.intro .custom-content,.projects .custom-content,.contact .custom-content{grid-column:1/-1;width:100%}.intro .custom-info,.projects .custom-info,.contact .custom-info{background:#fffefa;color:#191a17;border-color:#dedbd3}.intro .custom-info p,.projects .custom-info p,.contact .custom-info p{color:#6e6b64}

.availability{display:grid;grid-template-columns:.7fr 2fr;gap:40px;padding-top:115px;padding-bottom:120px}
.availability-main{max-width:780px}.availability-main h2{font:400 clamp(42px,5.5vw,68px)/1.15 var(--serif);letter-spacing:-.045em;margin:0}
.availability-main h2 em{color:#a58a63;font-weight:400}.availability-main .body-copy{margin:22px 0 28px}
.availability-list{border-top:1px solid var(--dark-line);margin-top:26px}
.availability-row{display:grid;grid-template-columns:1fr 1.2fr;gap:20px;padding:17px 0;border-bottom:1px solid var(--dark-line);align-items:center}
.availability-day{font-size:12px;font-weight:600}.availability-hours{font-size:12px;color:#6e6b64;text-align:right}.availability-empty{font-size:12px;color:#77736c;padding:20px 0}
.availability-note{font-size:10px;line-height:1.8;color:#918b80;margin-top:20px}
@media(max-width:640px){.availability{display:block;padding-top:80px;padding-bottom:85px}.availability-main{margin-top:42px}.availability-row{grid-template-columns:1fr 1fr}.availability-hours{font-size:11px}}
