:root { --ink:#112019; --paper:#f5f3eb; --paper-soft:#ebe7d8; --sage:#83996d; --sage-dark:#607953; --line:#c9c5b6; --muted:#5e675e; --cream:#fbfaf4; --danger:#a04536; --serif:"Playfair Display", Georgia, serif; --sans:"DM Sans", Arial, sans-serif; --mono:"DM Mono", monospace; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:16px; line-height:1.6; } a { color:inherit; } img { display:block; max-width:100%; } button,input,select,textarea { font:inherit; }
.skip-link { position:absolute; left:-999px; top:1rem; z-index:10; padding:.6rem .9rem; background:var(--ink); color:#fff; } .skip-link:focus { left:1rem; }
.shell { width:min(1120px, calc(100% - 3rem)); margin:auto; }.site-header { min-height:74px; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem max(1.5rem, calc((100vw - 1120px)/2)); border-bottom:1px solid var(--line); background:rgba(245,243,235,.94); position:sticky; top:0; z-index:5; backdrop-filter:blur(8px); }.brand { display:flex; align-items:center; gap:.65rem; text-decoration:none; font-weight:700; font-size:1.25rem; letter-spacing:-.04em; }.brand img { width:34px; height:34px; } nav { display:flex; flex-wrap:wrap; gap:1rem; } nav a { color:var(--muted); font-size:.87rem; font-weight:600; text-decoration:none; } nav a:hover, nav a:focus-visible { color:var(--ink); text-decoration:underline; text-underline-offset:.3rem; }
.hero { padding:clamp(5rem, 12vw, 10rem) 0 clamp(4rem, 10vw, 8rem); background:linear-gradient(120deg,#dfe6c9 0%, var(--paper) 58%,#ece3cf 100%); }.hero__grid { display:grid; grid-template-columns:minmax(0,1fr) 270px; align-items:end; gap:4rem; }.eyebrow { margin:0 0:.8rem; color:var(--sage-dark); font:500 .72rem/1.3 var(--mono); letter-spacing:.12em; text-transform:uppercase; }.hero h1,.section-head h2,.about h1,.about h2 { max-width:15ch; margin:0; font:600 clamp(2.7rem,7vw,5.5rem)/.98 var(--serif); letter-spacing:-.045em; }.lede { max-width:55ch; margin:1.7rem 0 2rem; color:#344134; font-size:1.08rem; }.actions { display:flex; flex-wrap:wrap; gap:.8rem; }.button { display:inline-flex; min-height:46px; align-items:center; justify-content:center; padding:.7rem 1.1rem; border:1px solid var(--ink); background:transparent; color:var(--ink); font-weight:700; text-decoration:none; cursor:pointer; }.button--primary { border-color:var(--ink); background:var(--ink); color:var(--cream); }.button:hover,.button:focus-visible { outline:3px solid rgba(131,153,109,.45); outline-offset:3px; }.hero__note { border-left:1px solid var(--sage-dark); padding:.4rem 0 .4rem 1.1rem; color:#40503c; }.hero__note p { margin:.35rem 0; font-weight:600; line-height:1.35; }.hero__note small { color:var(--muted); }.status-dot { display:inline-block; width:.6rem; height:.6rem; border-radius:50%; background:#3e8a5a; box-shadow:0 0 0 .25rem rgba(62,138,90,.15); }
.section { padding:clamp(4.5rem,9vw,8rem) 0; } section[id] { scroll-margin-top:74px; }.section-head { margin-bottom:2.3rem; }.section-head h2 { font-size:clamp(2.2rem,5vw,4rem); }.section-copy { max-width:52ch; color:var(--muted); }.card-grid { display:grid; gap:1rem; }.card-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }.card-grid--three { grid-template-columns:repeat(3,minmax(0,1fr)); }.card,.tool-card { min-height:225px; padding:1.45rem; border:1px solid var(--line); background:var(--cream); }.card__number { color:var(--sage-dark); font:.75rem var(--mono); }.card h3,.tool-card h3,.founder h3 { margin:2.3rem 0 .45rem; font:600 1.6rem/1.1 var(--serif); }.card p,.tool-card p { color:var(--muted); }.mobile-nav { display:none; }.section--ink { background:var(--ink); color:var(--cream); }.section--ink .eyebrow { color:#b9cd9e; }.section--ink .section-head h2 { max-width:18ch; }.tool-card { display:flex; flex-direction:column; color:inherit; text-decoration:none; transition:transform .15s,border-color .15s; }.tool-card:hover,.tool-card:focus-visible { border-color:var(--sage-dark); transform:translateY(-3px); }.tool-card h3 { margin:.4rem 0 .2rem; }.tool-card__number { color:var(--sage-dark); }.tool-card__action { margin-top:auto; color:var(--sage-dark); font-weight:700; }.tool-card--soon { background:var(--paper-soft); }.tool-card--soon .tool-card__action { color:var(--muted); }
.featured-project { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr); margin-bottom:1rem; overflow:hidden; border:1px solid rgba(255,255,255,.24); border-radius:4px; background:#172b20; }.featured-project img { width:100%; height:100%; object-fit:cover; }.featured-project__copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(1.5rem,3vw,2.5rem); }.featured-project__copy .eyebrow { padding:.35rem .55rem; background:rgba(185,205,158,.12); }.featured-project__copy h3 { margin:0 0 .55rem; font:600 clamp(2.2rem,4vw,3.4rem)/1 var(--serif); }.featured-project__copy p:not(.eyebrow) { margin:0; color:#c6d0c3; }.featured-project__copy a { margin-top:1.3rem; color:#dce9bd; font-weight:700; text-decoration:none; }.featured-project__copy a:hover,.featured-project__copy a:focus-visible { text-decoration:underline; text-underline-offset:.25rem; }.project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }.project-card { display:flex; min-width:0; flex-direction:column; overflow:hidden; border:1px solid rgba(255,255,255,.24); border-radius:4px; background:#172b20; }.project-card img { width:100%; aspect-ratio:16/9; object-fit:cover; }.project-card__copy { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:1.35rem; }.project-card__copy .eyebrow { min-height:2.3em; }.project-card__copy h3,.private-project h3 { margin:0 0 .55rem; font:600 1.7rem/1.05 var(--serif); }.project-card__copy p:not(.eyebrow),.private-project p:not(.eyebrow) { margin:0; color:#c6d0c3; }.project-card__copy a { margin-top:auto; padding-top:1.2rem; color:#dce9bd; font-weight:700; text-decoration:none; }.project-card__copy a:hover,.project-card__copy a:focus-visible { text-decoration:underline; text-underline-offset:.25rem; }.private-project { display:grid; grid-template-columns:140px 1fr; align-items:center; gap:1.5rem; margin-top:1rem; padding:1.35rem; border:1px solid rgba(255,255,255,.24); background:linear-gradient(135deg,#1c3828,#102019); }.private-project > span { color:#dce9bd; font:500 2.4rem/1 var(--mono); letter-spacing:.12em; }.company-line { margin:1.1rem 0 0; color:#c6d0c3; }.company-line span { margin-right:.7rem; color:#b9cd9e; font:.72rem var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.section--sage { background:#dce4cc; }.about { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:3rem 4rem; }.about__heading h2 { max-width:13ch; font-size:clamp(2.7rem,4.5vw,4.5rem); }.about__intro { align-self:end; max-width:58ch; }.about__intro p { margin:0 0 1rem; }.founder { grid-column:1/-1; display:grid; grid-template-columns:220px minmax(0,1fr); gap:2rem; padding-top:2rem; border-top:1px solid rgba(17,32,25,.22); }.founder img { width:220px; aspect-ratio:4/5; object-fit:cover; border-radius:2px; filter:saturate(.8); }.founder h3 { margin:.3rem 0 .8rem; }.founder p { max-width:72ch; margin:.5rem 0; }.founder dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:1.5rem 0 0; }.founder dl div { padding:.6rem 0; border-top:1px solid rgba(17,32,25,.18); }.founder dt { color:var(--muted); font:.72rem var(--mono); text-transform:uppercase; }.founder dd { margin:.2rem 0 0; }
.commission-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-top:2.5rem; }.commission-gallery figure { margin:0; overflow:hidden; border:1px solid var(--line); background:var(--cream); }.commission-gallery img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; }.commission-gallery figcaption { padding:.8rem 1rem; color:var(--muted); font:.75rem var(--mono); text-transform:uppercase; }
.printing-teaser { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:4rem; }.printing-teaser h2 { max-width:13ch; margin:0; font:600 clamp(2.2rem,5vw,4rem)/.98 var(--serif); letter-spacing:-.045em; }.printing-teaser p:not(.eyebrow) { max-width:50ch; margin:1.3rem 0 1.7rem; }.printing-teaser__images { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }.printing-teaser__images img { width:100%; aspect-ratio:4/5; object-fit:cover; border:1px solid rgba(17,32,25,.2); }.printing-teaser__images img:last-child { margin-top:2rem; }
.work-list { border-top:1px solid rgba(255,255,255,.24); }.work-list article { display:grid; grid-template-columns:4rem 1fr; gap:1.25rem; padding:1.5rem 0; border-bottom:1px solid rgba(255,255,255,.24); }.work-list article > span { color:#b9cd9e; font:500 1rem var(--mono); }.work-list h3 { margin:0 0 .35rem; font:600 1.6rem/1.1 var(--serif); }.work-list p { max-width:65ch; margin:0; color:#c6d0c3; }
.contact-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:5rem; }.contact-links { display:grid; gap:.5rem; margin-top:1.5rem; }.contact-links a { color:var(--sage-dark); font-weight:700; }.contact-form { display:grid; gap:1rem; padding:1.5rem; border:1px solid var(--line); background:var(--cream); }.contact-form label { display:grid; gap:.4rem; color:#314032; font-size:.9rem; font-weight:700; }.contact-form label span { color:var(--muted); font-size:.75rem; font-weight:400; } .field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }.contact-form input,.contact-form select,.contact-form textarea { width:100%; min-height:44px; padding:.65rem; border:1px solid #aeb5a6; border-radius:0; background:#fffefa; color:var(--ink); }.contact-form textarea { min-height:130px; resize:vertical; }.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus { outline:3px solid rgba(131,153,109,.45); border-color:var(--sage-dark); }.honeypot { position:absolute; left:-9999px; }.form-status { min-height:1.5rem; margin:0; color:var(--sage-dark); font-weight:700; }.form-status--error { color:var(--danger); }.legal-page { max-width:780px; }.legal-page h1 { margin:0 0 2rem; font:600 clamp(2.7rem,7vw,5rem)/.98 var(--serif); letter-spacing:-.045em; }.legal-page h2 { margin:2.5rem 0 .5rem; font:600 1.6rem/1.2 var(--serif); }.legal-page p,.legal-page li { color:#344134; }.legal-page .updated { color:var(--muted); font:.75rem var(--mono); text-transform:uppercase; } footer { padding:1.6rem 0; border-top:1px solid var(--line); color:var(--muted); font-size:.85rem; } .footer__inner { display:flex; justify-content:space-between; gap:1.5rem; }.footer__inner div { display:grid; }.footer__inner nav { justify-content:flex-end; }.footer__inner a { color:var(--ink); }
@media (max-width:800px) { .hero__grid,.about,.contact-layout,.featured-project,.printing-teaser { grid-template-columns:1fr; gap:2.2rem; }.hero__note { max-width:350px; }.card-grid--two,.card-grid--three,.project-grid { grid-template-columns:1fr; }.commission-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }.featured-project { gap:0; }.featured-project img { aspect-ratio:16/9; }.featured-project__copy { padding:1.35rem; }.project-grid { gap:1.25rem; }.project-card__copy { padding:1.35rem; }.project-card__copy .eyebrow { min-height:0; }.project-card__copy h3 { font-size:2rem; }.private-project { grid-template-columns:1fr; gap:.7rem; }.company-line span { display:block; margin:0 0 .35rem; }.founder { grid-column:auto; grid-template-columns:160px 1fr; }.founder img { width:160px; }.founder dl { grid-template-columns:1fr; gap:0; }.section-head h2,.about h2 { max-width:20ch; } }
@media (any-pointer:coarse) and (max-width:1400px) { .about { grid-template-columns:1fr; gap:2.2rem; }.about__intro { max-width:72ch; }.founder { grid-column:auto; grid-template-columns:160px 1fr; }.founder img { width:160px; } }
@media (max-width:600px) { .site-header { padding:.75rem 1rem; }.site-header > .site-nav { display:none; } .mobile-nav { display:block; position:relative; } .mobile-nav summary { list-style:none; cursor:pointer; padding:.45rem .7rem; border:1px solid var(--line); font-weight:700; } .mobile-nav summary::-webkit-details-marker { display:none; } .mobile-nav[open] nav { position:absolute; right:0; top:calc(100% + .5rem); display:grid; min-width:180px; padding:.7rem; border:1px solid var(--line); background:var(--cream); box-shadow:0 .6rem 1.5rem rgba(17,32,25,.12); } .mobile-nav[open] nav a { padding:.35rem; } .shell { width:min(100% - 2rem,1120px); }.hero { padding-top:4.5rem; }.field-row,.founder,.commission-gallery { grid-template-columns:1fr; }.printing-teaser__images { gap:.6rem; }.printing-teaser__images img:last-child { margin-top:1rem; }.work-list article { grid-template-columns:3rem 1fr; }.founder img { width:130px; }.section { padding:4rem 0; }.footer__inner { display:grid; }.footer__inner nav { display:flex; justify-content:flex-start; gap:.75rem 1rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.tool-card { transition:none; } }
