@font-face{font-family:'Editorial Bodoni';src:url('assets/bodoni-moda.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Editorial Bodoni';src:url('assets/bodoni-moda-italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'Manrope';src:url('assets/manrope.ttf') format('truetype');font-weight:400;font-display:swap}
:root{
 --ink:#151112;--espresso:#2E211D;--bone:#F5F1EC;--linen:#E8E0D6;--garnet:#5C1A24;--mushroom:#8A7A6E;
 --color-bg:var(--bone);--color-surface:var(--linen);--color-text:var(--ink);--color-border:rgba(21,17,18,.25);
 --font-body:'Manrope',sans-serif;--font-display:'Editorial Bodoni',Georgia,serif;
 --text-xs:clamp(.75rem,.72rem + .12vw,.85rem);--text-sm:clamp(.875rem,.82rem + .18vw,1rem);
 --text-base:clamp(1rem,.93rem + .2vw,1.12rem);--text-xl:clamp(1.75rem,1.2rem + 2vw,3rem);
 --text-section:clamp(2.5rem,1.2rem + 4vw,5rem);--text-hero:clamp(3rem,1rem + 6.5vw,7.5rem);
 --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;
 --gutter:clamp(var(--space-6),6vw,var(--space-24));--section-space:clamp(var(--space-16),8vw,var(--space-32))
}
[data-theme=dark]{--color-bg:var(--espresso);--color-surface:var(--ink);--color-text:var(--bone);--color-border:rgba(245,241,236,.3)}
.preview-note{padding:var(--space-2) var(--space-4);text-align:center;background:var(--linen);color:var(--espresso);font-size:var(--text-xs)}
.header{position:absolute;left:0;right:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);padding:var(--space-6) var(--gutter);color:var(--bone);background:rgba(21,17,18,.62)}
.name-logo{display:flex;align-items:center;min-height:44px;width:230px;flex-shrink:0}
.header nav{display:flex;gap:var(--space-8);align-items:center}
.header nav a,.header button{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;min-height:44px;display:flex;align-items:center}
.header-controls{display:flex;gap:var(--space-4)}
#theme-toggle{padding:var(--space-2);opacity:.9}
#menu-toggle{display:none}
.header a:hover,.header button:hover{opacity:.65}
.hero{position:relative;min-height:min(920px,calc(100svh - 32px));padding:var(--space-32) var(--gutter) var(--space-20);color:var(--bone);display:flex;align-items:center;overflow:hidden;background:var(--espresso)}
.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-picture{position:absolute;inset:0}
.hero-image{left:34%;width:66%;object-position:38% 50%}
.hero-shade{background:linear-gradient(90deg,#151112 0%,#151112 27%,rgba(21,17,18,.8) 40%,rgba(21,17,18,.12) 70%,rgba(21,17,18,.03) 100%)}
.hero-content{position:relative;z-index:1;width:100%;max-width:1100px}
.eyebrow{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;line-height:1.6}
.hero h1{font-family:var(--font-display);font-size:var(--text-hero);line-height:.98;letter-spacing:-.055em;margin:var(--space-6) 0;max-width:12ch}
em{font-family:var(--font-display);font-style:italic}
.hero-copy{font-size:var(--text-base);max-width:34ch;margin-bottom:var(--space-8)}
.button{min-height:52px;display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-8);padding:var(--space-4) var(--space-6);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor}
.button span{font-size:var(--text-base)}
.button.light-outline{color:var(--bone)}
.button.light-outline:hover{background:var(--bone);color:var(--ink)}
.button.filled{background:var(--garnet);border-color:var(--garnet);color:var(--bone)}
.button.filled:hover{background:var(--espresso);border-color:var(--espresso)}
.button:active{opacity:.75}
.hero-bottom{position:absolute;z-index:2;bottom:var(--space-6);left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}
.hero-bottom a{font-size:var(--text-xs);min-height:44px;display:flex;align-items:center;gap:var(--space-4)}
.section{padding:var(--section-space) var(--gutter)}
h2{font-family:var(--font-display);font-size:var(--text-section);letter-spacing:-.045em;line-height:1.04}
h3{font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.03em}
.intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(var(--space-8),8vw,var(--space-32));align-items:center;background:var(--ink);color:var(--bone)}
.intro-image{position:relative;width:76%;margin-left:var(--space-8)}
.intro-image:before{content:'';position:absolute;top:-7%;left:-13%;width:100%;height:100%;background:var(--espresso)}
.intro-image>img:first-child{position:relative;width:100%;aspect-ratio:3/4;object-fit:cover}
.intro-image .signature{position:absolute;bottom:var(--space-5);right:var(--space-5);width:35px;height:85px;object-fit:contain}
.intro-copy .eyebrow{margin-bottom:var(--space-6)}
.intro-copy p:not(.eyebrow){margin:var(--space-8) 0;max-width:40ch}
.text-link{display:inline-flex;align-items:center;gap:var(--space-6);border-bottom:1px solid currentColor;font-size:var(--text-sm);padding:var(--space-3) 0;min-height:44px}
.text-link:hover{opacity:.65}
.section-top{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-16);align-items:end;margin-bottom:var(--space-16)}
.section-top .eyebrow{margin-bottom:var(--space-4)}
.section-top>p{max-width:40ch}
.image-spread{display:grid;grid-template-columns:1.1fr .75fr 1fr;align-items:start;gap:var(--space-8)}
.image-spread img{width:100%;object-fit:cover}
.spread-tall img{aspect-ratio:3/4}
.spread-small{margin-top:var(--space-24)}
.spread-small img{aspect-ratio:4/5}
.spread-wide{margin-top:var(--space-10)}
.spread-wide img{aspect-ratio:3/4}
figcaption{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;margin-top:var(--space-4)}
.experience{background:var(--color-surface);padding-top:var(--space-20)}
.experience-top{text-align:center;margin-bottom:var(--space-16)}
.experience-top .eyebrow{margin-bottom:var(--space-4)}
.service-layout{display:grid;grid-template-columns:.85fr 1fr;gap:clamp(var(--space-8),8vw,var(--space-32));align-items:start}
.service-photo{position:relative}
.service-photo img{width:100%;aspect-ratio:3/2;object-fit:cover}
.service-photo .service-secondary{width:64%;aspect-ratio:3/4;margin:var(--space-8) 0 0 auto}
.image-note{position:absolute;bottom:var(--space-4);left:var(--space-4);right:var(--space-4);font-size:var(--text-xs);color:var(--bone);background:rgba(21,17,18,.7);padding:var(--space-2) var(--space-3);max-width:max-content}
.service{border-top:1px solid var(--color-border);padding:var(--space-8) 0}
.service .eyebrow{margin-bottom:var(--space-4)}
.service h3{margin-bottom:var(--space-5)}
.service p:not(.eyebrow){max-width:38ch}
.service-copy .button{margin-top:var(--space-4);max-width:100%}
.about{background:var(--ink);color:var(--bone);display:grid;grid-template-columns:.8fr 1.2fr 1fr;gap:var(--space-8);align-items:center}
.about-heading{align-self:start}
.about-heading h2{margin-top:var(--space-6)}
.about-signature{width:58px;height:138px;object-fit:contain;margin-top:var(--space-12)}
.about-image{position:relative}
.about-image>img{width:100%;aspect-ratio:3/4;object-fit:cover}
.about-copy{margin-left:calc(-1 * var(--space-12));position:relative;padding:var(--space-6);background:var(--ink)}
.about-copy p{margin-top:var(--space-6)}
.about-copy .text-link{margin-top:var(--space-6)}
.questions{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--space-16)}
.questions .eyebrow{margin-bottom:var(--space-5)}
details{border-top:1px solid var(--color-border);padding:var(--space-5) 0}
details:last-child{border-bottom:1px solid var(--color-border)}
summary{cursor:pointer;font-size:var(--text-base);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:var(--space-8);min-height:44px}
summary:after{content:'+';font-size:var(--text-xl);font-weight:400}
details[open] summary:after{content:'−'}
details p{font-size:var(--text-sm);padding:var(--space-4) var(--space-8) var(--space-2) 0}
.contact{background:var(--garnet);color:var(--bone);text-align:center;padding-top:var(--space-24);padding-bottom:var(--space-24)}
.contact .eyebrow{max-width:none;margin-bottom:var(--space-6)}
.contact h2{font-size:var(--text-section);max-width:16ch;margin:0 auto var(--space-8)}
.contact-email{display:block;font-size:var(--text-sm);max-width:max-content;margin:var(--space-6) auto 0;min-height:44px;padding:var(--space-3)}
footer{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;gap:var(--space-8);padding:var(--space-12) var(--gutter);font-size:var(--text-xs)}
footer .text-link{justify-self:end}
.footer-logo{width:105px;min-height:100px}
.logo-mask{display:block;width:105px;height:100px;background:currentColor;mask:url('assets/lockup-ink.png') center/contain no-repeat;-webkit-mask:url('assets/lockup-ink.png') center/contain no-repeat}
@media(max-width:1100px){
 .header nav{gap:var(--space-5)}.name-logo{width:195px}.header{gap:var(--space-5)}
 .about{grid-template-columns:.8fr 1.2fr}.about-copy{grid-column:1/-1;margin:0;padding:0;max-width:55ch}
 .intro-image{width:85%;margin-left:var(--space-5)}
}
@media(max-width:760px){
 :root{--text-hero:clamp(3rem,.8rem + 10vw,5.6rem);--text-section:clamp(2.5rem,1rem + 7vw,4rem)}
 .header{padding:var(--space-4) var(--gutter);gap:var(--space-4)}.name-logo{width:190px}
 .header-controls{gap:var(--space-2)}.header button{font-size:var(--text-xs)}
 #menu-toggle{display:flex;align-items:center;padding:var(--space-2)}
 .header nav{display:none;position:absolute;top:100%;left:var(--gutter);right:var(--gutter);padding:var(--space-6);background:var(--ink);border:1px solid rgba(245,241,236,.25)}
 .header nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-2)}
 .hero{min-height:780px;padding-top:var(--space-32);padding-bottom:var(--space-24)}
 .hero-image{left:0;width:100%;object-position:50% 50%}.hero-shade{background:linear-gradient(90deg,rgba(21,17,18,.65),rgba(21,17,18,.24))}
 .hero h1{letter-spacing:-.045em;max-width:12ch}
 .hero-bottom{align-items:flex-start;flex-direction:column;gap:0}
 .intro,.section-top,.service-layout,.questions{grid-template-columns:1fr}
 .intro{gap:var(--space-16)}.intro-image{width:78%;max-width:360px;margin:var(--space-4) auto 0}
 .intro-copy p:not(.eyebrow){margin:var(--space-6) 0}
 .section-top{gap:var(--space-6);margin-bottom:var(--space-10)}
 .image-spread{grid-template-columns:1fr 1fr;gap:var(--space-5)}
 .spread-tall{grid-column:1/-1}.spread-tall img{aspect-ratio:4/5;max-height:600px}
 .spread-small,.spread-wide{margin-top:0}.spread-small img,.spread-wide img{aspect-ratio:3/4}
 figcaption{line-height:1.65}
 .service-layout{gap:var(--space-8)}.service-photo img{max-height:500px;object-position:50% 45%}
 .about{grid-template-columns:1fr 1fr;gap:var(--space-5)}
 .about-heading h2{font-size:var(--text-xl)}.about-heading .eyebrow{font-size:var(--text-xs);letter-spacing:.07em}
 .about-signature{margin-top:var(--space-8);width:45px;height:100px}
 .about-image>img{aspect-ratio:3/5}.about-image .image-note{position:relative;bottom:auto;left:auto;right:auto;padding:var(--space-3) 0;background:none;line-height:1.5}
 .about-copy{grid-column:1/-1;margin-top:var(--space-8)}
 .questions{gap:var(--space-8)}
 footer{grid-template-columns:1fr 2fr;gap:var(--space-5)}footer>.text-link{grid-column:2;justify-self:start}
}
@media(max-width:390px){.name-logo{width:168px}.header-controls{gap:0}.header{gap:var(--space-2)}.hero{min-height:770px}}
.standard-page{padding-top:180px;min-height:70vh}
.standard-page h1{font-family:var(--font-display);font-size:var(--text-section);margin-bottom:var(--space-8)}
.standard-page article{max-width:900px;margin:0 auto var(--space-16)}
.entry-content>*+*{margin-top:var(--space-6)}
.entry-content a{ text-decoration:underline}
.entry-content ul,.entry-content ol{padding-left:var(--space-6);list-style:revert}
.entry-content img{height:auto}
.entry-content h2,.entry-content h3{margin-top:var(--space-10)}
.entry-content blockquote{border-left:2px solid var(--garnet);padding-left:var(--space-6)}
.admin-bar .header{margin-top:32px}
@media(max-width:782px){.admin-bar .header{margin-top:46px}}
