/* Change these variables to adjust the overall design. */
:root{--background:#fff;--ink:#101010;--logo-width:420px;--gallery-height:54vh;--gallery-gap:22px;--card-width:29vw;--header-space:105px}
*{box-sizing:border-box}html{background:var(--background);color:var(--ink)}body{margin:0;font-family:Arial,Helvetica,sans-serif;font-weight:500}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible,.gallery:focus-visible{outline:1px solid #111;outline-offset:6px}a:hover{opacity:.55}.header{padding:56px 24px 0;text-align:center}.brand{display:block;width:min(var(--logo-width),90%);margin:auto}.brand img{display:block;width:100%;height:auto}nav{display:flex;justify-content:center;gap:55px;margin-top:32px;font-size:1.0625rem;letter-spacing:1.5px}nav a{padding:8px 0}main{margin-top:var(--header-space)}.gallery{display:flex;gap:var(--gallery-gap);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding:0 30px 18px;overscroll-behavior-x:contain;touch-action:pan-x pan-y;cursor:grab}.gallery::-webkit-scrollbar{display:none}.gallery.dragging{cursor:grabbing;user-select:none}.card{flex:0 0 var(--card-width);min-width:270px;text-align:center}.card a:hover{opacity:1}.card img{width:100%;height:var(--gallery-height);min-height:320px;max-height:620px;object-fit:cover;display:block;transition:filter .35s;user-select:none;pointer-events:none}.card a:hover img{filter:brightness(.96)}.card h2{font-size:1.125rem;font-weight:500;letter-spacing:2px;line-height:1.5;margin:24px 8px 9px}.card p{font-size:0.9375rem;letter-spacing:1.4px;line-height:1.5;margin:0 8px 20px}.page{max-width:1060px;margin:0 auto;padding:0 40px 60px}.page h1,.project-title{font-size:1.625rem;font-weight:500;letter-spacing:2px;margin:0 0 30px}.body-copy{font-family:Arial,Helvetica,sans-serif;font-size:1.0625rem;line-height:1.8;letter-spacing:.15px}.intro{font-size:1.375rem;line-height:1.6;max-width:760px;margin:0 0 60px}.about-photo{width:42%;max-height:600px;object-fit:cover;float:left;margin:0 60px 40px 0}.person{margin:0 0 45px}.person h2,.collaborators h2{font-size:1.1875rem;font-weight:500;letter-spacing:1px;line-height:1.5}.collaborators{clear:both;padding-top:45px}.collaborators ul{list-style:none;padding:0;columns:3;font-family:Arial,sans-serif;font-size:1.0rem;line-height:2}.contact{max-width:650px;min-height:380px;text-align:center}.contact section{margin-bottom:38px}.contact h2{font-size:1.125rem;font-weight:500;margin:0 0 14px}.contact .email{font-family:Arial,sans-serif;font-size:1.0625rem;display:inline-block;padding:7px}.project-head{text-align:center;margin-bottom:40px;padding:0 24px}.project-title{margin-bottom:18px}.metadata{font-family:Arial,sans-serif;font-size:0.9375rem;line-height:1.8;white-space:pre-line}.project-images{display:flex;gap:22px;overflow:auto;padding:0 30px 25px;scroll-snap-type:x proximity}.project-images img{height:59vh;max-height:760px;max-width:85vw;object-fit:contain;flex:0 0 auto;scroll-snap-align:center}.project-description{max-width:780px;padding:40px 28px;margin:auto}.back{display:inline-block;font-size:1.0rem;letter-spacing:1px;padding:10px 0;margin-top:20px}footer{text-align:center;font-size:0.75rem;letter-spacing:1px;padding:48px 20px 30px}body[data-view="projects"] footer{padding-top:60px}
@media(min-width:1600px){:root{--card-width:25vw;--header-space:130px}}
@media(max-width:700px){:root{--logo-width:296px;--gallery-height:380px;--gallery-gap:19px;--card-width:280px;--header-space:109px}.header{padding:38px 20px 0}nav{gap:38px;margin-top:22px;font-size:1.0rem;letter-spacing:1px}.gallery{padding-left:20px;padding-right:20px}.card{min-width:0}.card h2{font-size:1.0rem;margin-top:22px;letter-spacing:1.5px}.card p{font-size:0.875rem;letter-spacing:1px}.page{padding:0 25px 35px}.intro{font-size:1.1875rem;margin-bottom:35px}.about-photo{float:none;width:100%;margin:0 0 35px}.collaborators ul{columns:2;font-size:0.875rem}.page h1,.project-title{font-size:1.375rem}.project-images{padding:0 20px 20px;gap:19px}.project-images img{height:52vh;max-width:90vw}.contact{min-height:350px}footer{font-size:0.75rem;line-height:1.6}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.brand span{display:block;font-size:2.625rem;letter-spacing:5px;line-height:1.1;white-space:nowrap}.card p:empty{display:none}.project-images video{height:59vh;max-width:85vw;object-fit:contain;flex:0 0 auto}.project-images .media-item{flex:0 0 auto}.project-images .media-item img{display:block}.page-minimal{text-align:center;min-height:340px}.error-state{text-align:center;min-height:340px;padding:30px}.error-state button{background:white;border:1px solid black;padding:12px 20px;margin-top:15px}
@media(max-width:700px){.brand span{font-size:1.875rem;letter-spacing:3px}.project-images video{height:52vh;max-width:90vw}}
/* Access improvements retain the horizontal portfolio layout. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:12px;left:12px;z-index:10;background:white;padding:12px 18px;border:2px solid black;transform:translateY(-160%);font-family:Arial,sans-serif}
.skip-link:focus{transform:none}a:focus-visible,button:focus-visible,.gallery:focus-visible,.project-images:focus-visible{outline:2px solid #101010;outline-offset:4px}main:focus{outline:none}
nav a,footer a{min-height:44px;display:inline-flex;align-items:center}footer nav{font-family:Arial,sans-serif;font-size:0.875rem;letter-spacing:0;gap:24px;margin-top:12px;flex-wrap:wrap}footer span{font-size:0.875rem}.legal{max-width:780px;min-height:400px}.legal a,.body-copy a{text-decoration:underline;text-underline-offset:3px}.legal h1{font-family:Arial,Helvetica,sans-serif}.legal p{margin:0 0 22px}.body-copy{overflow-wrap:anywhere}nav{flex-wrap:wrap}.brand span{white-space:normal;overflow-wrap:anywhere}.project-images{align-items:start}.project-images:focus{outline-offset:-3px}
@media(max-width:380px){nav{gap:22px}.brand span{font-size:clamp(20px,8vw,30px)}}
@media(forced-colors:active){a:focus-visible,button:focus-visible{outline:2px solid Highlight}}
.video-item{margin:0;flex:0 0 auto;max-width:85vw}.video-item figcaption{max-width:640px;margin-top:12px;font-size:1.0rem;line-height:1.5}.video-item video{display:block}a:hover{opacity:1;text-decoration:underline;text-underline-offset:4px}.brand:hover{text-decoration:none}
.card video{width:100%;height:var(--gallery-height);min-height:320px;max-height:620px;object-fit:cover;display:block;pointer-events:none;user-select:none}
.motion-control{display:block;margin:18px auto 0;min-height:44px;padding:10px 18px;background:var(--background);border:1px solid #aaa;font-size:.875rem;letter-spacing:.4px;cursor:pointer}
@media(max-width:700px){.video-item{max-width:90vw}}
