*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:#111;color:#eee;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.4}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid #fff;outline-offset:5px}.skip{position:fixed;top:-80px;left:16px;z-index:10;background:#fff;color:#111;padding:12px}.skip:focus{top:10px}header{position:sticky;top:0;z-index:5;height:65px;background:#222;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;padding:0 3%;gap:20px}nav{display:flex;gap:20px;white-space:nowrap;font-size:18px}nav a:hover,nav a[aria-current]{text-decoration:underline;text-underline-offset:5px}.brand{justify-self:center;max-width:100%;width:260px}.brand img{display:block;width:100%;height:auto}main{max-width:1500px;margin:auto}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding-top:70px}.card{position:relative;display:block;aspect-ratio:16/9;overflow:hidden}.card>img{width:100%;height:100%;object-fit:cover;display:block}.overlay{position:absolute;inset:0;background:rgba(80,80,80,.94);padding:6%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:16px;line-height:1.3;opacity:0;transition:opacity .15s;overflow:auto}.card:hover .overlay,.card:focus-visible .overlay{opacity:1}.intro{max-width:748px;margin:auto;padding:75px 24px 50px;text-align:center}.intro h1{font-size:28px;line-height:1.4;margin:0 0 20px}.intro p{color:#aaa;margin:0;line-height:1.5}.video{position:relative;aspect-ratio:16/9;max-width:1200px;margin:0 auto;background:#000}.video iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.video-link{max-width:1200px;margin:10px auto 48px;text-align:right;font-size:14px;color:#aaa}.video-link a{text-decoration:underline}.related{padding:25px 0}.related h2{text-align:center;font-size:20px;font-weight:400}.related .grid{padding-top:15px}footer{text-align:center;padding:50px 20px;color:#aaa;font-size:16px}@media(max-width:1000px){header{grid-template-columns:1fr auto}.brand{width:220px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));padding-top:30px}.overlay{font-size:14px}.intro{padding-top:45px}.video-link{padding-right:16px}}@media(max-width:600px){header{height:auto;min-height:110px;display:flex;flex-direction:column-reverse;gap:16px;padding:18px 16px}nav{font-size:16px;gap:26px}.brand{width:210px}.grid{grid-template-columns:1fr;padding-top:26px}.intro{padding:35px 20px}.intro h1{font-size:24px}.card .overlay{display:none}.video-link{margin-bottom:30px}footer{padding:30px 16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.overlay{transition:none}}

/* Corrections measured from the supplied Adobe Portfolio archives. */
:root{--page-bg:#222;--header-bg:#222;--title-color:#eee;--description-color:#888;--hover-gray:rgba(102,102,102,.9);--font-body:"Source Sans 3",Arial,sans-serif}
body{background:var(--page-bg);font-family:var(--font-body)}
header{display:flex;gap:0;background:var(--header-bg);padding:0 3%;height:65px;min-height:65px}
header>nav{flex:0 0 30%;width:30%;font-size:18px;line-height:24px;color:#fff}
nav a[aria-current]{font-weight:400;text-decoration:none}
nav a:hover{text-decoration:none}
.brand-wrap{flex:1;width:40%;min-width:0}
.brand{display:block;width:100%;max-width:100%;padding:0 5% 0 7%;text-align:center;font-size:22px;line-height:30px}
.brand img{display:inline-block;width:auto;height:auto;max-width:100%;max-height:65px;vertical-align:middle}
.header-space{flex:0 0 30%;width:30%}
.mobile-nav{display:none}
.overlay{background:var(--hover-gray);color:#fff}
.intro{max-width:700px;padding:80px 0 50px}
.intro h1{color:var(--title-color);font-size:28px;line-height:50px;margin:0 0 20px;font-weight:400}
.intro p{color:var(--description-color);font-size:16px;line-height:22px}
.intro p+p{margin-top:14px}
.intro p a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:932px){
 header{padding:0 5%;position:sticky;flex-direction:row;gap:0;min-height:65px;height:65px}
 header>nav,.header-space{display:none}
 .brand-wrap{width:100%}
 .brand{width:100%;padding:0 39px;margin:-5px 0}
 .brand img{max-height:60px}
 .mobile-nav{display:block;position:absolute;right:5%;top:20px}
 .mobile-nav summary{width:24px;cursor:pointer;list-style:none;padding:2px 0}
 .mobile-nav summary::-webkit-details-marker{display:none}
 .mobile-nav summary span{display:block;height:2px;background:#fff;margin:4px 0}
 .mobile-nav nav{position:absolute;right:0;top:45px;display:flex;flex-direction:column;gap:22px;padding:24px;min-width:180px;background:var(--header-bg);box-shadow:0 8px 16px #0004}
 .mobile-nav summary:focus-visible{outline:2px solid white;outline-offset:6px}
 .intro{padding:40px 24px 30px}
}
@media(max-width:540px){.intro{padding:29px 20px 21px}.intro h1{font-size:20px;line-height:29px;margin-bottom:13px}}

/* Requested normal weight, including headings and the current menu item. */
body,h1,h2,h3,nav a,nav a[aria-current],strong,b{font-weight:400;font-synthesis:none}

/* Tighter gallery spacing and smaller regular typography. */
main > .grid{padding-top:12px}
header > nav,.mobile-nav nav{font-size:16px;line-height:22px}
.overlay{font-size:14px;line-height:20px}
.intro h1{font-size:24px;line-height:34px}
.intro p{font-size:15px;line-height:21px}
.related h2{font-size:18px}
footer{font-size:14px}
@media(max-width:600px){main > .grid{padding-top:10px}.intro h1{font-size:20px;line-height:28px}}

/* Only the active navigation item is bold. */
nav a[aria-current="page"]{font-weight:700}
/* Same first-content gap on every page. */
:root{--content-gap:12px}
main>.grid,.project{padding-top:var(--content-gap)}
.project .intro{padding-top:0}
.text-page{max-width:700px;margin:auto;padding:var(--content-gap) 24px 40px}
.text-page h1{font-size:24px;line-height:34px;margin:0 0 20px;font-weight:400}
.text-page p{color:#aaa;font-size:15px;line-height:1.5}
.contact-details p{margin:0 0 10px}
.contact-details a{text-decoration:underline;text-underline-offset:3px}
.contact-page{text-align:center}
.about-page{max-width:900px}
.about-page>h1{margin-bottom:34px}
.about-page section+section{margin-top:42px}
.about-page h2{margin:0 0 14px;font-size:16px;line-height:24px;letter-spacing:.08em}
.about-page p{max-width:700px;margin:0}
.about-page p a{text-decoration:underline;text-underline-offset:3px}
.about-video{position:relative;aspect-ratio:16/9;max-width:900px;margin:24px auto 0;background:#000}
.about-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
form label{display:block;margin-bottom:20px;font-size:15px}
input,textarea{display:block;width:100%;margin-top:8px;background:#292929;border:1px solid #777;color:#eee;padding:12px;font:inherit;border-radius:0}
textarea{resize:vertical}button{font:inherit;font-weight:400;padding:10px 28px;background:#ddd;color:#222;border:0;cursor:pointer}button:disabled{opacity:.6;cursor:wait}
input:focus,textarea:focus{outline:2px solid #ddd;outline-offset:2px}
.honey{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.video iframe{display:block}
@media(max-width:600px){:root{--content-gap:10px}main>.grid{padding-top:var(--content-gap)}}

.video video{display:block;width:100%;height:100%;object-fit:contain;background:#000}

/* Two portrait Instagram videos on one project page. */
.instagram-grid{display:grid;grid-template-columns:repeat(2,minmax(0,414px));justify-content:center;align-items:start;gap:2px;max-width:830px;margin:0 auto;padding:0}
.instagram-grid:has(>.instagram-item:only-child){grid-template-columns:minmax(0,414px)}
.instagram-viewport{position:relative;aspect-ratio:414/690;overflow:hidden;background:#222}
.instagram-viewport iframe{position:absolute;display:block;width:143%;height:calc(100% + 369px);left:-21.5%;top:-69px;border:0;background:#222}
.instagram-source{margin:8px 0 0;text-align:center;color:#777;font-size:13px}
.instagram-source a,.format-link a{text-decoration:underline;text-underline-offset:3px}
.format-link{margin:14px auto 48px;text-align:center;color:#888;font-size:14px}
@media(max-width:760px){.instagram-grid{grid-template-columns:minmax(0,414px);gap:2px;padding:0 10px}.format-link{margin-top:18px}}
@media(max-width:480px){.instagram-grid{padding:0}}
