:root{--background:#100d0b;--surface:#211915;--text:#f4eee5;--muted:#c6b7a8;--accent:#d68b52}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--background);color:var(--text);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img{display:block;max-width:100%}.wrap{width:min(100% - 7vw,1340px);margin-inline:auto}.skip-link{position:absolute;top:-80px;left:12px;padding:10px;background:var(--text);color:var(--background);z-index:20}.preview-note{padding:8px 20px;text-align:center;background:#3b291e;color:#fff2e6;font-size:.78rem;letter-spacing:.02em}.preview-note span{margin:0 8px}.site-header{height:88px;padding:0 3.5vw;display:flex;align-items:center;gap:45px;background:var(--background);position:relative;z-index:3}.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1.15;min-width:195px}.brand-main{font-weight:700;letter-spacing:.22em;font-size:.96rem}.brand-sub{font-size:.6rem;letter-spacing:.51em;margin-top:7px;color:var(--accent)}nav{display:flex;gap:36px;margin:auto}nav a,.header-contact{text-decoration:none;font-size:.85rem;font-weight:600;letter-spacing:.06em}nav a:hover,.header-contact:hover,.footer a:hover{color:var(--accent)}.header-contact{white-space:nowrap;border-bottom:1px solid var(--accent);padding-bottom:5px}.header-contact span{margin-left:14px;color:var(--accent)}.hero{height:min(730px,80vh);min-height:575px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center}.hero-image,.hero-shade{position:absolute;inset:0}.hero-image{background-size:cover;background-position:center 55%;transform:scale(1.02)}.hero-shade{background:linear-gradient(90deg,rgba(12,17,16,.83) 0%,rgba(12,17,16,.42) 53%,rgba(12,17,16,.05) 100%),linear-gradient(0deg,rgba(10,14,12,.55),transparent 38%)}.hero-content{position:relative;z-index:1;padding:40px 0 95px}.eyebrow{margin:0 0 22px;font-size:.78rem;letter-spacing:.29em;font-weight:700;color:var(--accent)}h1,h2,p{margin-top:0}h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:400;letter-spacing:-.035em}h1{font-size:clamp(4.2rem,8.7vw,9.1rem);line-height:1.02;max-width:870px;margin-bottom:25px}h2{font-size:clamp(2.7rem,5.2vw,5.6rem);line-height:1.13}.hero-text{font-size:clamp(1rem,1.5vw,1.24rem);max-width:535px;line-height:1.7;color:#eeeae3}.hero-actions{display:flex;align-items:center;gap:31px;margin-top:36px}.button{display:inline-flex;gap:28px;align-items:center;justify-content:center;min-height:56px;padding:14px 23px;text-decoration:none;font-size:.89rem;font-weight:700;white-space:nowrap;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button-light{background:var(--text);color:var(--background)}.text-link{text-underline-offset:7px;font-size:.9rem}.hero-foot{position:absolute;z-index:1;bottom:28px;left:0;right:0;display:flex;justify-content:space-between;font-size:.76rem;letter-spacing:.15em;text-transform:uppercase}.work-section{padding-top:105px;padding-bottom:115px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:43px}.section-heading h2{margin:0}.section-heading>p{max-width:385px;margin:0 0 7px;color:var(--muted);font-size:.96rem}.gallery{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:22px}.gallery-card{margin:0;min-width:0}.gallery-card img{height:clamp(300px,34vw,500px);width:100%;object-fit:cover;filter:saturate(.8);transition:filter .35s,transform .35s}.gallery-card:hover img{filter:saturate(1);transform:scale(1.015)}.gallery-card figcaption{display:grid;gap:2px;padding:18px 0 0}.gallery-card strong{font-family:'Playfair Display',Georgia,serif;font-size:1.48rem;font-weight:400}.gallery-card span{font-size:.86rem;color:var(--muted)}.gallery-card a{width:max-content;max-width:100%;font-size:.74rem;color:var(--muted);text-underline-offset:3px;margin-top:6px}.about-section{background:#e8e4d9;color:#252923}.about-inner{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:min(10vw,140px);padding-top:105px;padding-bottom:105px}.about-graphic{background:#171a17;min-height:440px;display:flex;align-items:center;justify-content:center;padding:8%;overflow:hidden}.about-graphic img{width:100%;filter:brightness(1.25)}.eyebrow-dark{color:#9b5f38}.about-copy h2{margin-bottom:25px}.about-copy>p:not(.eyebrow){max-width:560px;color:#4c514b;font-size:1.08rem;line-height:1.8}.underlined-link{display:inline-block;margin-top:20px;text-decoration:none;border-bottom:1px solid #8f5b38;padding-bottom:7px;font-weight:700;font-size:.9rem}.underlined-link span{margin-left:18px}.contact-section{text-align:center;padding-top:120px;padding-bottom:125px}.contact-section h2{max-width:860px;margin:0 auto 23px}.contact-section>p:not(.eyebrow){max-width:560px;color:var(--muted);margin:0 auto 32px;font-size:1.1rem}.button-accent{background:var(--accent);color:#171814}.button-accent:hover{background:#e5a470}.footer{border-top:1px solid #394039;padding:37px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:25px}.footer-inner>div:first-child{display:flex;flex-direction:column;line-height:1.3}.footer strong{font-size:.78rem;letter-spacing:.18em}.footer span{font-size:.64rem;letter-spacing:.29em;color:var(--accent)}.footer-links{display:flex;gap:24px}.footer-links a{text-decoration:none;font-size:.82rem}.footer small{color:var(--muted);font-size:.74rem}@media(max-width:900px){.site-header{height:76px}.header-contact{display:none}nav{margin-left:auto;margin-right:0}.section-heading{display:block}.section-heading>p{margin-top:20px}.gallery{grid-template-columns:1fr 1fr}.gallery-card:first-child{grid-column:span 2}.gallery-card:first-child img{height:420px}.about-inner{gap:6vw}.about-graphic{min-height:310px}}@media(max-width:650px){.wrap{width:min(100% - 40px,1340px)}.preview-note{font-size:.7rem}.site-header{padding:0 20px;gap:10px}.brand{min-width:0}.brand-main{font-size:.74rem;letter-spacing:.15em}.brand-sub{font-size:.49rem;letter-spacing:.34em}nav{gap:15px}nav a{font-size:.76rem}.hero{height:calc(100svh - 113px);min-height:570px;max-height:780px}.hero-image{background-position:60% center}.hero-shade{background:linear-gradient(90deg,rgba(12,17,16,.76),rgba(12,17,16,.22)),linear-gradient(0deg,rgba(10,14,12,.65),transparent 55%)}.hero-content{padding-bottom:70px}h1{font-size:clamp(3.5rem,14vw,5.8rem)}.hero-text{max-width:390px}.hero-actions{align-items:flex-start;flex-direction:column;gap:20px}.hero-foot{bottom:18px;font-size:.63rem}.work-section{padding-top:72px;padding-bottom:80px}.gallery{display:block}.gallery-card{margin-bottom:35px}.gallery-card img,.gallery-card:first-child img{height:clamp(330px,105vw,510px)}.section-heading{margin-bottom:30px}.about-inner{display:block;padding-top:75px;padding-bottom:78px}.about-graphic{min-height:250px;margin-bottom:53px}.contact-section{padding-top:85px;padding-bottom:90px}.footer-inner{align-items:flex-start;flex-direction:column}.footer-links{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.gallery-card img{transition:none}}
.gallery-card-5{grid-column:span 2}
.gallery-card-5 img{height:auto;aspect-ratio:3/2;object-fit:cover}

.gallery-card:first-child img{height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center 57%}

.reviews-section{padding-top:112px;padding-bottom:110px;border-bottom:1px solid #394039}
.reviews-heading{max-width:760px;margin-bottom:42px}
.reviews-heading h2{margin:0}
.reviews-empty{position:relative;background:var(--surface);border:1px solid #394039;padding:45px clamp(28px,6vw,88px) 48px;max-width:900px}
.reviews-empty[hidden]{display:none}
.quote-mark{display:block;color:var(--accent);font-family:Georgia,serif;font-size:5.6rem;line-height:.8;height:55px}
.reviews-empty p{font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.25;margin:12px 0 15px}
.reviews-empty>span:not(.quote-mark){display:block;color:var(--muted);max-width:580px}
.reviews-empty a{display:inline-block;color:var(--accent);font-size:.85rem;font-weight:700;text-decoration:none;border-bottom:1px solid currentColor;margin-top:28px;padding-bottom:6px}
.reviews-empty a span{margin-left:12px}
.reviews-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.review-card{margin:0;background:var(--surface);border:1px solid #394039;padding:38px clamp(28px,4vw,56px) 35px;display:flex;flex-direction:column;justify-content:space-between;min-height:270px}
.review-card::before{content:'“';color:var(--accent);font-family:Georgia,serif;font-size:5rem;line-height:.6;margin-bottom:25px}
.review-card blockquote{font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.35rem,2.1vw,1.8rem);line-height:1.45;margin:0 0 30px}
.review-card figcaption{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;border-top:1px solid #394039;padding-top:18px}
.review-card figcaption strong{font-size:.84rem;font-weight:700}
.review-card figcaption span{font-size:.8rem;color:var(--muted)}
@media(max-width:900px){.reviews-section{padding-top:80px;padding-bottom:80px}}
@media(max-width:650px){.reviews-nav{display:none}.reviews-section{padding-top:74px;padding-bottom:75px}.reviews-heading{margin-bottom:30px}.reviews-list{grid-template-columns:1fr}.review-card{min-height:0}.reviews-empty{padding:36px 28px 40px}}

/* A quiet campfire glow and drifting embers behind Joe's photography. */
.site-atmosphere{position:fixed;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,rgba(16,11,9,.05),rgba(16,11,9,.03) 58%,rgba(16,11,9,.16)),url('assets/campfire-embers-atmosphere.webp') center bottom/cover no-repeat}
.site-header,main,.footer{position:relative;z-index:1}
.site-header{z-index:3;border-bottom:1px solid rgba(216,139,82,.12)}
.hero-shade{background:linear-gradient(90deg,rgba(15,11,9,.84) 0%,rgba(22,13,9,.44) 53%,rgba(14,10,9,.12) 100%),linear-gradient(0deg,rgba(10,8,7,.63),transparent 40%)}
.about-section{background:linear-gradient(115deg,rgba(42,24,17,.91),rgba(22,16,13,.94) 62%,rgba(34,20,15,.91));color:var(--text);border-block:1px solid rgba(216,139,82,.18)}
.about-graphic{background:radial-gradient(circle at 50% 35%,rgba(122,63,30,.24),transparent 60%),#100d0b;border:1px solid rgba(216,139,82,.23)}
.about-copy>p:not(.eyebrow){color:var(--muted)}
.eyebrow-dark{color:var(--accent)}
.reviews-section{border-bottom-color:rgba(216,139,82,.23)}
.reviews-empty,.review-card{background:rgba(33,25,21,.88);border-color:rgba(216,139,82,.23)}
.review-card figcaption,.footer{border-color:rgba(216,139,82,.23)}
@media(max-width:650px){.site-atmosphere{background-image:linear-gradient(180deg,rgba(16,11,9,.05),rgba(16,11,9,.03) 58%,rgba(16,11,9,.16)),url('assets/campfire-embers-portrait.webp');background-position:center bottom;background-size:cover;min-height:100svh}.hero-shade{background:linear-gradient(90deg,rgba(15,11,9,.78),rgba(22,13,9,.28)),linear-gradient(0deg,rgba(10,8,7,.68),transparent 58%)}}

.review-form-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(28px,7vw,110px);margin-top:70px;padding-top:60px;border-top:1px solid rgba(216,139,82,.23)}
.review-form-wrap h3{font:400 clamp(2rem,3.4vw,3.5rem)/1.15 'Playfair Display',Georgia,serif;letter-spacing:-.025em;margin:0 0 20px}
.review-form-wrap>div>p:last-child{color:var(--muted);max-width:360px}
#review-form{display:flex;flex-direction:column;align-items:flex-start}
#review-form label{font-size:.92rem;font-weight:600;margin-bottom:8px}
#review-form label span{color:var(--muted);font-weight:400}
#review-form input,#review-form textarea{width:100%;font:inherit;color:var(--text);background:rgba(22,16,13,.82);border:1px solid rgba(216,139,82,.4);border-radius:0;padding:14px 16px;margin-bottom:23px}
#review-form textarea{resize:vertical;min-height:130px}
#review-form input:focus-visible,#review-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#review-form input::placeholder,#review-form textarea::placeholder{color:#b6a89b}
#review-form button{border:0;cursor:pointer}
#review-form button:disabled{opacity:.65;cursor:wait}
.review-form-status{min-height:1.5em;color:var(--muted);margin:16px 0 0}
.review-trap{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media(max-width:750px){.review-form-wrap{grid-template-columns:1fr;margin-top:55px;padding-top:45px;gap:24px}}
