:root{--ink:#171717;--sand:#d8c2a6;--paper:#f4f0e9;--muted:#726c66;--line:#d9d1c6}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit}a:focus-visible{outline:2px solid #a97648;outline-offset:5px}.skip-link{position:absolute;left:-9999px;top:1rem;z-index:9;background:#fff;padding:.5rem 1rem}.skip-link:focus{left:1rem}.site-header{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.5rem max(5vw,24px);background:var(--ink);color:var(--sand)}.brand{display:inline-flex;flex-direction:column;width:max-content;text-decoration:none;line-height:1.15}.brand>span{font-size:1.55rem;font-weight:300;letter-spacing:.035em}.brand small{font-size:.54em;margin-left:.18em}.brand strong{font-size:.76rem;letter-spacing:.31em;font-weight:600;margin-top:.34rem}.site-header nav{display:flex;gap:clamp(1rem,3vw,2.5rem);flex-wrap:wrap}.site-header nav a{text-decoration:none;font-size:.82rem;letter-spacing:.07em}.site-header nav a:hover,.contact-links a:hover{color:#fff}.hero{position:relative;min-height:clamp(550px,75vh,850px);display:flex;align-items:center;overflow:hidden;background:var(--ink);color:var(--paper);border-top:1px solid #333}.hero-inner{position:relative;z-index:1;width:min(900px,85%);margin:4rem max(7vw,24px)}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;font-weight:700;margin:0 0 1.5rem}.hero .eyebrow{color:var(--sand)}h1,h2,h3,p{margin-top:0}h1,h2{font-weight:400;line-height:1.12;letter-spacing:-.045em}h1{font-size:clamp(3.5rem,8vw,8rem);max-width:950px;margin-bottom:2rem}h1 em{font-style:normal;color:var(--sand)}.hero-inner>p:not(.eyebrow){font-size:clamp(1.05rem,1.7vw,1.3rem);max-width:530px;color:#d3cfca}.button{display:inline-flex;gap:3rem;align-items:center;margin-top:1.6rem;background:var(--sand);color:var(--ink);text-decoration:none;padding:1rem 1.35rem;font-size:.85rem;font-weight:700}.button:hover{background:#edd7bb}.hero-mark{position:absolute;right:-.05em;bottom:-.27em;font-size:clamp(25rem,52vw,62rem);line-height:1;letter-spacing:-.12em;color:#202020;pointer-events:none}.section{padding:clamp(5rem,10vw,10rem) max(7vw,24px);scroll-margin-top:2rem}.section h2{font-size:clamp(2.7rem,5vw,5.5rem)}.about{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.about .section-copy{font-size:clamp(1.1rem,1.5vw,1.35rem);max-width:650px;padding-top:2.5rem}.about .section-copy p+p{color:var(--muted);margin-top:2rem}.services{background:#e9e3da;display:grid;grid-template-columns:1fr 1fr;gap:8vw}.services .section-heading>p:last-child{color:var(--muted)}.service-list{list-style:none;padding:0;margin:0}.service-list li{display:flex;gap:2rem;align-items:baseline;border-top:1px solid #bfb6aa;padding:1.15rem 0;font-size:clamp(1.1rem,2vw,1.7rem)}.service-list li:last-child{border-bottom:1px solid #bfb6aa}.service-list span{font-size:.7rem;color:var(--muted)}.projects-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:3rem}.projects-heading>p{max-width:310px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.project-image{aspect-ratio:4/5;background-color:#d8d0c4;background-size:cover;background-position:center;position:relative;overflow:hidden}.project-image:before{content:"Project image coming soon";position:absolute;inset:0;display:grid;place-items:center;padding:2rem;text-align:center;color:#746858;font-size:.85rem;letter-spacing:.07em}.project-image img{width:100%;height:100%;object-fit:cover;display:block}.project-image.has-image:before{display:none}.project-image span{position:absolute;left:1rem;top:1rem;background:var(--paper);padding:.25rem .55rem;font-size:.7rem}.project-caption{padding:1.15rem 0}.project-caption h3{font-size:1.12rem;font-weight:500;margin-bottom:.15rem}.project-caption p{color:var(--muted);font-size:.85rem}.contact{background:var(--ink);color:var(--paper)}.contact .eyebrow{color:var(--sand)}.contact h2{max-width:750px}.contact>p:not(.eyebrow){font-size:clamp(1.1rem,1.6vw,1.35rem);color:#c8c4bf;max-width:750px;margin:2rem 0 4rem}.contact-email{display:inline-flex;align-items:center;gap:1rem;max-width:100%;font-size:clamp(1.5rem,4.6vw,4.5rem);line-height:1.3;letter-spacing:-.045em;text-decoration:none;border-bottom:1px solid var(--sand);overflow-wrap:anywhere}.contact-email:hover{color:var(--sand)}.contact-links{display:flex;gap:2.5rem;margin-top:2.5rem}.contact-links a{text-decoration:none;color:var(--sand)}footer{background:#111;color:var(--sand);padding:3rem max(7vw,24px);display:flex;justify-content:space-between;align-items:end;gap:2rem}footer>div{display:flex;gap:2rem;color:#aaa;font-size:.75rem}footer>div a{text-decoration:none}@media(max-width:800px){.site-header{align-items:flex-start;flex-direction:column}.about,.services{grid-template-columns:1fr;gap:2rem}.about .section-copy{padding-top:0}.project-grid{grid-template-columns:1fr 1fr}.projects-heading{display:block}.project-image{aspect-ratio:4/3}footer,footer>div{flex-direction:column;align-items:flex-start;gap:1rem}}@media(max-width:560px){.site-header nav{gap:.65rem 1.2rem}.site-header nav a{font-size:.75rem}.hero{min-height:620px}.hero-inner{width:auto;margin:4rem 24px}.hero-mark{font-size:26rem;right:0}.project-grid{grid-template-columns:1fr}.projects-heading{margin-bottom:1rem}.project-image{aspect-ratio:4/3}.contact-links{flex-direction:column;gap:1rem}}

/* Project photographs: show the full frame and let visitors enlarge it. */
.project-image{display:block;aspect-ratio:3/2;text-decoration:none;cursor:zoom-in;background:#e8e1d7;transition:transform .25s ease,box-shadow .25s ease;z-index:0}
.project-image img{object-fit:contain;transition:transform .25s ease}
.project-image:hover,.project-image:focus-visible{transform:scale(1.035);box-shadow:0 16px 36px #17171726;z-index:2}
.project-image .view-hint{left:auto;top:auto;bottom:1rem;right:1rem;opacity:0;transition:opacity .2s;background:var(--ink);color:var(--paper);padding:.4rem .7rem}
.project-image:hover .view-hint,.project-image:focus-visible .view-hint{opacity:1}
#image-viewer{position:fixed;inset:0;max-width:100vw;max-height:100vh;width:100vw;height:100vh;border:0;margin:0;padding:4rem 2rem 2rem;background:#171717ef;color:white}
#image-viewer::backdrop{background:#000b}
#image-viewer img{display:block;width:100%;height:100%;object-fit:contain}
.viewer-close{position:absolute;right:1.5rem;top:1rem;background:transparent;border:0;color:white;font-size:2.5rem;line-height:1;cursor:pointer}
@media(max-width:800px){.project-image{aspect-ratio:3/2}}
@media(max-width:560px){.project-image{aspect-ratio:3/2}#image-viewer{padding:3.5rem .5rem .5rem}}
@media(prefers-reduced-motion:reduce){.project-image,.project-image img{transition:none}}

/* Drawn arrows avoid iOS rendering the arrow character as an emoji. */
.arrow-icon{display:inline-block;flex:none;vertical-align:-.12em;width:1em;height:1em;stroke:currentColor}
.view-hint .arrow-icon{width:.9em;height:.9em;margin-left:.25em}
