/* Responsive refinement; original artwork and uncropped portfolio preserved. */
:root{--gutter:clamp(20px,4vw,56px)}
/* Glow + grain direction: cinematic depth stays concentrated around the hero and section transitions. */
body{position:relative;overflow-x:hidden;background:radial-gradient(circle at 76% 7%,rgba(218,162,89,.13),transparent 23rem),radial-gradient(circle at 6% 38%,rgba(65,83,105,.12),transparent 28rem),var(--bg)}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.045;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.38) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgba(0,0,0,.3) 0 1px,transparent 1px 5px);mix-blend-mode:soft-light}
header,main,footer{position:relative;z-index:1}
.hero{position:relative}
.hero::before{content:"";position:absolute;z-index:-1;width:min(48vw,560px);height:min(48vw,560px);right:-9%;top:-7%;border-radius:50%;background:radial-gradient(circle,rgba(218,162,89,.2),rgba(218,162,89,.07) 34%,transparent 70%);filter:blur(8px);pointer-events:none}
.hero-photo{position:relative}
.hero-photo::after{content:"";position:absolute;inset:14% -3% -5% 36%;z-index:-1;border:1px solid rgba(218,162,89,.22);border-radius:50%;box-shadow:0 0 0 32px rgba(218,162,89,.035),0 0 0 76px rgba(218,162,89,.02);pointer-events:none}
.portfolio,.services,.contact{position:relative}
.portfolio::before,.services::before,.contact::before{content:"";position:absolute;left:0;right:0;top:0;display:block;width:100%;height:1px;margin:0;background:linear-gradient(90deg,transparent,rgba(218,162,89,.5),transparent)}
.portfolio::before{opacity:.55}.services::before,.contact::before{opacity:.35}
.approach{position:relative;overflow:hidden}
.approach::after{content:"";position:absolute;width:360px;height:360px;right:-150px;top:-140px;border:1px solid rgba(121,80,36,.18);border-radius:50%;box-shadow:0 0 0 36px rgba(121,80,36,.04),0 0 0 80px rgba(121,80,36,.025);pointer-events:none}
.approach-profile{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr);gap:clamp(32px,6vw,88px);align-items:center;margin-top:clamp(48px,7vw,86px);position:relative;z-index:1}.ed-portrait{margin:0;max-width:380px;justify-self:start;position:relative;background:var(--bg);border:1px solid rgba(121,80,36,.4);padding:10px;box-shadow:18px 18px 0 rgba(121,80,36,.08)}.ed-portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 42%;filter:saturate(.78) contrast(1.04)}.ed-portrait figcaption{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 4px 3px;color:#a7773b;font-size:.72rem;letter-spacing:.04em}.ed-portrait figcaption span:last-child{color:#6e5940}.profile-copy{max-width:520px}.profile-copy .eyebrow{color:#795024;margin-bottom:18px}.profile-copy h3{font-size:clamp(1.5rem,2.5vw,2.4rem);line-height:1.12;margin-bottom:18px}.profile-copy p:not(.eyebrow){color:#48505a;max-width:470px;margin:0;font-size:1.05rem}
.wrap{width:min(1200px,calc(100% - var(--gutter)*2))}
header{min-height:100px;flex-wrap:wrap;padding-block:20px}
header .brand{max-width:min(260px,100%);min-width:0}
nav{flex-wrap:wrap;gap:clamp(16px,2.3vw,32px)}
nav a{min-height:44px;display:inline-flex;align-items:center;font-size:.9rem}
.hero{padding-top:clamp(44px,6vw,76px)}
h1{font-size:clamp(2.45rem,6.1vw,5.7rem);letter-spacing:-.045em;line-height:1.1;text-wrap:balance}
h2{line-height:1.18;text-wrap:balance}
.hero-bottom{gap:28px;margin:32px 0 42px;flex-wrap:wrap}
.hero-bottom p{flex:1 1 480px;max-width:650px}
.hero-bottom .button{flex:0 1 auto}
.button{min-height:48px;line-height:1.45;gap:16px;max-width:100%;text-align:center;border-radius:3px;transition:background .16s,color .16s}
.hero-photo img{background:var(--surface)}
.hero-photo figcaption{font-size:.85rem}
.section{padding-block:clamp(64px,7vw,100px)}
.services,.contact{grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:clamp(32px,6vw,88px)}
.service-list article>div,.section-heading,.contact>div,form{min-width:0}
.work-heading{gap:32px}.work-heading>p{font-size:1rem}
.video-card{border-bottom:1px solid var(--line)}
.video-card video{aspect-ratio:16/9}
.work-caption{gap:12px;padding-bottom:24px}
.work-caption>div{min-width:0}
.work-caption .eyebrow{font-size:.8rem}
.work-caption h3{font-size:1.1rem}
.work-caption>span{flex-shrink:0;font-size:.8rem}
.more-work summary,.identity summary{min-height:56px;font-weight:500}
.photo-grid figcaption{font-size:.83rem;line-height:1.5;flex-wrap:wrap}
.photo-grid a{display:block;outline-offset:4px}
.photo-grid img{background:var(--surface)}
.photo-heading{align-items:baseline}
.approach-title>*{min-width:0}
.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.steps p{font-size:1rem}
label{font-size:.9rem}
.form-pair{grid-template-columns:repeat(2,minmax(0,1fr))}
input,textarea,select{border-radius:3px;border-color:#626973}
input,select{min-height:48px}
.small{font-size:.85rem;line-height:1.6}
.secondary{min-height:44px;font-size:.9rem}
.form-actions{gap:12px 20px}
.email,footer p{overflow-wrap:anywhere}
footer{flex-wrap:wrap}
dialog{width:max-content;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:16px;border-radius:4px}
#large-photo{max-width:100%;max-height:calc(100dvh - 155px);width:auto;height:auto}
#close-photo{min-height:44px;border-radius:3px}
@media(max-width:1000px){.hero-bottom p{flex-basis:100%}.services,.contact{gap:36px}.work-caption{flex-wrap:wrap}.work-caption>span{text-align:left}.form-pair{grid-template-columns:1fr}}
@media(max-width:720px){header{gap:12px;align-items:flex-start}header .brand{max-width:230px}nav{width:100%;justify-content:space-between;gap:8px 14px}.services,.contact{grid-template-columns:1fr}.section-heading{max-width:520px}.service-list article:first-child{margin-top:0}.approach-title{flex-direction:column;align-items:flex-start;gap:24px}.steps{grid-template-columns:1fr;gap:30px;margin-top:38px}.work-heading{display:block}.work-heading>p{max-width:none}.photo-heading{display:block}.contact{gap:36px}}
@media(max-width:420px){h1{font-size:clamp(2rem,9.2vw,2.6rem)}.hero-bottom .button{width:100%}.button{padding-inline:16px}.form-actions{align-items:stretch}.form-actions>.button{width:100%}.work-caption{display:block}.work-caption>span{display:block;margin-top:8px;max-width:none}footer{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
/* Keep intrinsic text widths from expanding narrow grid tracks at 200% text size. */
h1,h2,h3,.eyebrow,.tags,.text-link{overflow-wrap:anywhere}
form{grid-template-columns:minmax(0,1fr)}form>*{min-width:0}
@media(max-width:720px){.services,.contact,.steps{grid-template-columns:minmax(0,1fr)}.section-heading{max-width:100%}.form-pair{grid-template-columns:minmax(0,1fr)}}
@media(max-width:720px){.approach-profile{grid-template-columns:minmax(0,1fr);gap:30px;margin-top:48px}.ed-portrait{max-width:340px}}
.hero-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.34fr);align-items:center;gap:clamp(32px,7vw,92px)}.hero-message{min-width:0}.hero-message p{max-width:650px}.hero-message .button{margin-top:26px}.hero-profile{margin:0;justify-self:end;width:min(100%,250px);position:relative;background:var(--bg);border:1px solid rgba(218,162,89,.48);padding:8px;box-shadow:14px 14px 0 rgba(218,162,89,.08);transform:rotate(1.2deg)}.hero-profile img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 42%;filter:saturate(.78) contrast(1.04)}.hero-profile figcaption{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 3px 2px;color:var(--gold);font-size:.7rem;letter-spacing:.03em}.hero-profile figcaption span:last-child{color:var(--muted)}
@media(max-width:720px){.hero-bottom{grid-template-columns:minmax(0,1fr);gap:34px}.hero-profile{justify-self:start;width:min(100%,230px)}.hero-message .button{width:auto}}

/* Give the personal introduction a stronger first impression on larger screens. */
.hero-bottom{grid-template-columns:minmax(0,1fr) minmax(260px,.38fr)}
.hero-profile{width:min(100%,330px)}
@media(max-width:720px){.hero-bottom{grid-template-columns:minmax(0,1fr)}.hero-profile{width:min(100%,240px)}}
