:root{--paper:#f5f0e7;--paper-2:#ebe3d5;--ink:#2b241e;--ink-soft:#5a4f45;--walnut:#5c3b24;--hemlock:#3e4a3c;--brass:#a87b43;--line:#d8ccb8;--white:#fffdf8;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", "URW Palladio L", Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--wrap:1200px;--gutter:clamp(16px, 4vw, 40px);--radius:2px}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--sans);-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:var(--walnut);text-underline-offset:3px}a:hover{color:var(--ink)}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em}h1{font-size:clamp(2.2rem,5vw,3.8rem)}h2{font-size:clamp(1.6rem,3vw,2.3rem)}h3{font-size:1.3rem}p{margin:0 0 1em}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}.muted{color:var(--ink-soft)}.kicker{font:600 .75rem/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:.9em}.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--paper);padding:8px 14px;z-index:100}.skip:focus{left:8px}:focus-visible{outline:2px solid var(--brass);outline-offset:3px}.btn{display:inline-block;font:600 .85rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;padding:1em 1.6em;border:1px solid var(--hemlock);background:var(--hemlock);color:var(--white);border-radius:var(--radius);cursor:pointer;transition:background .2s,color .2s,border-color .2s}.btn:hover{background:var(--ink);border-color:var(--ink);color:var(--white)}.btn:disabled{opacity:.6;cursor:progress}.btn-small{padding:.75em 1.1em;font-size:.75rem}.btn-ghost{background:0 0;color:inherit;border-color:initial}.btn-ghost:hover{background:var(--white);color:var(--ink);border-color:var(--white)}.btn-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.btn-light:hover{background:var(--white);color:var(--ink);border-color:var(--white)}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.8em}.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}.brand{text-decoration:none;color:var(--ink);display:flex;flex-direction:column;line-height:1.1}.brand-name{font:500 1.45rem/1.1 var(--serif);letter-spacing:.01em}.brand-sub{font:600 .62rem/1.6 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}.nav{display:flex;align-items:center;gap:clamp(14px,2.5vw,30px)}.nav a:not(.btn){color:var(--ink);text-decoration:none;font-size:.95rem;padding:6px 0;border-bottom:1px solid transparent}.nav a:not(.btn):hover,.nav a.is-current:not(.btn){border-bottom-color:var(--brass)}@media(max-width:560px){.header-inner{flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.brand-sub{display:none}.nav{gap:16px}}.banner{position:relative;isolation:isolate;color:var(--white);background:var(--ink);min-height:clamp(280px,42vh,440px);display:flex;align-items:flex-end;overflow:hidden}.banner-hero{min-height:clamp(460px,82vh,860px)}.banner-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.banner::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(25,20,16,.6) 0%,rgba(25,20,16,.2) 55%,transparent 80%),linear-gradient(180deg,rgba(25,20,16,.15) 0%,rgba(25,20,16,.25) 45%,rgba(25,20,16,.78) 100%)}.banner-plain{background:repeating-linear-gradient(92deg,rgba(255,255,255,.025) 0 2px,transparent 2px 9px),repeating-linear-gradient(88deg,rgba(0,0,0,8%) 0 1px,transparent 1px 23px),linear-gradient(160deg,#4a3221,#2b241e 70%)}.banner-content{width:100%;padding-top:72px;padding-bottom:clamp(36px,7vh,72px)}.banner h1{max-width:16ch;text-wrap:balance}.banner .lead{font-size:clamp(1.05rem,1.6vw,1.25rem);max-width:40ch;color:rgba(255,253,248,.88)}.banner .kicker{color:#e2c08f}.banner-phone{margin:1.1em 0 0;font-size:1.05rem;color:rgba(255,253,248,.88)}.banner-phone a{color:#e2c08f;font:500 1.3rem var(--serif);text-decoration:none;white-space:nowrap}.banner-phone a:hover{color:var(--white);text-decoration:underline}.banner-no-lead h1:last-child{margin-bottom:0}.intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,96px);padding-top:clamp(64px,10vw,120px);padding-bottom:clamp(48px,8vw,96px)}.intro h2{font-size:clamp(1.8rem,3.4vw,2.6rem);text-wrap:balance}.intro-body{font-size:1.08rem;color:var(--ink-soft);padding-top:2.2em}@media(max-width:800px){.intro{grid-template-columns:1fr}.intro-body{padding-top:0}}.pillars{background:var(--hemlock);color:var(--paper);padding:clamp(56px,8vw,96px)0}.pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,56px)}.pillar{border-top:1px solid rgba(245,240,231,.3);padding-top:22px}.pillar-num{font:italic 1rem var(--serif);color:#d6b07c}.pillar h3{margin-top:.4em;font-size:1.55rem}.pillar p{color:rgba(245,240,231,.8);margin:0}@media(max-width:800px){.pillars-grid{grid-template-columns:1fr}}.featured{padding-top:clamp(64px,9vw,112px);padding-bottom:clamp(64px,9vw,112px)}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:28px}.section-head h2{margin:0}.link-arrow{font-weight:600;text-decoration:none}.link-arrow:hover{text-decoration:underline}.gallery{display:flex;flex-wrap:wrap;gap:10px}.gallery::after{content:"";flex-grow:999999}.gallery-fill::after{display:none}.g-item{position:relative;flex:var(--ar)1 calc(var(--ar) * 240px);aspect-ratio:var(--ar);overflow:hidden;background:var(--paper-2);display:block}.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .3s}.g-item:hover img{transform:scale(1.03);filter:brightness(1.04)}.g-cap{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;font-size:.85rem;color:var(--white);background:linear-gradient(transparent,rgba(20,16,12,.7));opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}.g-item:hover .g-cap,.g-item:focus-visible .g-cap{opacity:1;transform:none}@media(min-width:1100px){.g-item{flex-basis:calc(var(--ar) * 300px)}}@media(max-width:520px){.gallery{gap:6px}.g-item{flex-basis:calc(var(--ar) * 160px)}}.work{padding-top:clamp(40px,6vw,72px);padding-bottom:clamp(64px,9vw,112px)}.empty{color:var(--ink-soft);font-style:italic}.lightbox{border:0;padding:0;margin:0;width:100vw;height:100vh;max-width:none;max-height:none;height:100dvh;background:rgba(20,16,12,.96);color:var(--paper)}.lightbox::backdrop{background:rgba(20,16,12,.96)}.lightbox[open]{display:grid;grid-template-rows:1fr auto}.lb-stage{display:flex;align-items:center;justify-content:center;padding:56px 64px 8px;min-height:0;touch-action:pan-y}.lb-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 10px 40px rgba(0,0,0,.4)}.lb-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px 18px;font-size:.9rem}.lb-caption{color:rgba(245,240,231,.85)}.lb-count{color:rgba(245,240,231,.55);font-variant-numeric:tabular-nums;white-space:nowrap}.lb-btn{position:absolute;background:0 0;border:0;color:var(--paper);font:300 2.4rem/1 var(--sans);width:56px;height:56px;cursor:pointer;opacity:.75}.lb-btn:hover{opacity:1}.lb-close{top:6px;right:10px;font-size:2rem}.lb-prev{left:6px;top:50%;transform:translateY(-50%)}.lb-next{right:6px;top:50%;transform:translateY(-50%)}@media(max-width:600px){.lb-stage{padding:56px 8px 8px}.lb-prev,.lb-next{top:auto;bottom:4px;transform:none}.lb-bar{padding-bottom:64px}}.prose-wrap{padding-top:clamp(48px,8vw,96px);padding-bottom:clamp(48px,8vw,96px)}.prose{max-width:680px;font-size:1.1rem}.prose>p:first-child{font:1.4rem/1.5 var(--serif);color:var(--ink)}.prose h3{margin-top:1.8em;font-size:1.5rem}.prose p{color:var(--ink-soft)}.inquiry{display:grid;grid-template-columns:minmax(0,1.6fr)minmax(0,1fr);gap:clamp(32px,6vw,80px);padding-top:clamp(40px,6vw,72px);padding-bottom:clamp(64px,9vw,112px)}@media(max-width:860px){.inquiry{grid-template-columns:1fr}}.inquiry-form fieldset{border:0;padding:0;margin:0 0 28px}.inquiry-form legend{font:500 1.35rem var(--serif);margin-bottom:14px;padding:0}.inquiry-form label{display:block;font-size:.85rem;font-weight:600;letter-spacing:.02em;margin-bottom:16px;color:var(--ink)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}@media(max-width:560px){.field-row{grid-template-columns:1fr}}.inquiry-form input,.inquiry-form select,.inquiry-form textarea{display:block;width:100%;margin-top:6px;font:1rem/1.4 var(--sans);color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;transition:border-color .2s,box-shadow .2s}.inquiry-form textarea{resize:vertical;min-height:140px}.inquiry-form input:focus,.inquiry-form select:focus,.inquiry-form textarea:focus{outline:none;border-color:var(--hemlock);box-shadow:0 0 0 3px rgba(62,74,60,.15)}.req{color:var(--brass)}.hp{position:absolute;left:-1e4px;width:1px;height:1px;overflow:hidden}.cf-turnstile{margin-bottom:20px}.fine{font-size:.85rem;margin-top:12px}.form-error{background:#f6e3dc;border-left:3px solid #a4462a;color:#6b2a17;padding:12px 16px;margin-bottom:24px}.inquiry-aside{border-top:1px solid var(--line);padding-top:24px;align-self:start}@media(min-width:861px){.inquiry-aside{border-top:0;border-left:1px solid var(--line);padding:0 0 0 clamp(24px,4vw,48px);position:sticky;top:100px}}.inquiry-aside p{margin-bottom:.3em}.direct-phone{font:500 1.5rem var(--serif)}.message-page{padding-top:clamp(80px,14vw,160px);padding-bottom:clamp(80px,14vw,160px);max-width:760px}.site-footer{background:var(--ink);color:var(--paper);padding-top:56px}.site-footer a{color:#e2c08f;text-decoration:none}.site-footer a:hover{text-decoration:underline;color:#e2c08f}.site-footer .muted{color:rgba(245,240,231,.6)}.footer-inner{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;padding-bottom:40px}.footer-brand{font:500 1.4rem var(--serif);margin-bottom:.3em}.footer-contact p{margin-bottom:.3em}.footer-legal{border-top:1px solid rgba(245,240,231,.12);padding-top:20px;padding-bottom:28px;font-size:.8rem}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}.about{display:grid;grid-template-columns:minmax(0,680px)minmax(0,360px);gap:clamp(32px,6vw,96px);justify-content:space-between;align-items:start}.about-figure{margin:0;position:sticky;top:110px}.about-figure img{width:100%;box-shadow:0 18px 40px -18px rgba(43,36,30,.45)}.about-figure figcaption{font:italic 1.05rem var(--serif);color:var(--ink-soft);margin-top:12px}@media(max-width:860px){.about{grid-template-columns:1fr}.about-figure{position:static;max-width:360px}}.job-nav{padding-top:clamp(40px,6vw,64px)}.job-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.job-nav a{display:inline-block;padding:7px 14px;border:1px solid var(--line);border-radius:999px;font-size:.88rem;color:var(--ink);text-decoration:none;background:var(--white);transition:border-color .2s,background .2s}.job-nav a:hover{border-color:var(--hemlock);background:var(--paper)}.job{padding-top:clamp(48px,7vw,88px);scroll-margin-top:80px}.job:last-of-type{padding-bottom:clamp(64px,9vw,112px)}.job-head{display:grid;grid-template-columns:auto 1fr auto;gap:8px 28px;align-items:baseline;border-top:1px solid var(--line);padding-top:22px;margin-bottom:24px}.job-num{font:italic 1.4rem var(--serif);color:var(--brass);margin:0;min-width:2ch}.job-head h2{margin:0 0 .3em}.job-summary{color:var(--ink-soft);max-width:62ch;margin:0}.job-count{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:0;white-space:nowrap}@media(max-width:640px){.job-nav ul{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 calc(var(--gutter) * -1);padding:0 var(--gutter)4px}.job-nav ul::-webkit-scrollbar{display:none}.job-nav li{flex:none}.job-head{grid-template-columns:1fr;gap:4px}.job-num{font-size:1.1rem}}@media(max-width:520px){.gallery::after{display:none}}