/* Responsive editorial portfolio navigation and image layouts. */
html{scroll-padding-top:7rem}body{min-width:0}img{max-width:100%}.topbar{position:sticky;top:0;z-index:100;background:#fff;align-items:center}.topbar nav{display:flex;align-items:center;gap:1.25rem}.nav-dropdown{position:relative}.nav-dropdown summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:.5rem}.nav-dropdown summary:after{content:'⌄'}.nav-dropdown[open] summary:after{content:'⌃'}.nav-dropdown>div{position:absolute;top:100%;left:0;min-width:220px;background:#fff;padding:.75rem;box-shadow:0 12px 30px #0002;border:1px solid #ddd}.nav-dropdown>div a{display:block;padding:.7rem .8rem;white-space:normal}.nav-dropdown>div a:hover,.nav-dropdown>div a:focus-visible{background:#f0f2f3}.menu-toggle{display:none}.topbar a,.topbar summary{font-size:.875rem}.topbar a:focus-visible,summary:focus-visible,button:focus-visible{outline:2px solid #304b60;outline-offset:4px}.project-meta:empty{display:none}.food-page .mini-gallery{width:100%;max-width:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem 1rem}.food-page .mini-photo{min-width:0;margin:0}.food-page .mini-frame{aspect-ratio:4/3;background:#f5f5f5}.food-page .mini-frame img{width:100%;height:100%;object-fit:contain}.food-page figcaption,.portrait-page figcaption{font-size:.875rem;line-height:1.6;margin-top:.65rem}.gallery-intro{font-size:1rem;line-height:1.9;max-width:56rem}.portrait-opening{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:4rem;align-items:center;margin:2rem 0 4rem}.portrait-opening figure{margin:0}.portrait-opening img{max-height:650px;width:100%;object-fit:contain}.portrait-opening h2{font-size:clamp(1.7rem,3vw,3rem);line-height:1.45}.portrait-opening p{font-size:1rem;line-height:1.9}.portrait-page .mini-gallery{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:none;gap:2rem 1.5rem}.portrait-page .mini-frame{aspect-ratio:3/4;background:#f5f5f5}.portrait-page .mini-frame img{width:100%;height:100%;object-fit:contain}.mini-copyright{font-size:.65rem;max-width:100%}.section-tabs{gap:.5rem 1.3rem}.section-tabs a{min-height:44px;display:inline-flex;align-items:center}.image-rights{font-size:.875rem}.category-section{scroll-margin-top:6rem}.topbar nav>a{padding:.7rem 0}.article-card p{line-height:1.85}.article-card a{display:inline-block;padding:.5rem 0}.cloud-project{padding-bottom:3rem}
@media(max-width:1100px){.topbar{flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:1rem 5%;gap:0}.menu-toggle{display:flex;align-items:center;gap:.6rem;min-height:44px;padding:.5rem .8rem;background:white;border:1px solid #ccc;font-size:.875rem}.topbar nav{display:none;flex-basis:100%;width:100%;flex-direction:column;align-items:stretch;gap:0;padding:1rem 0;max-height:calc(100dvh - 90px);overflow:auto}.topbar nav.is-open{display:flex}.topbar nav>a,.nav-dropdown summary{padding:.8rem .4rem;min-height:44px;border-bottom:1px solid #e5e5e5;font-size:1rem}.nav-dropdown>div{position:static;box-shadow:none;min-width:0;border:0;border-left:2px solid #b8c4ca;margin:.5rem 0 .5rem .4rem;padding:.2rem .8rem}.nav-dropdown>div a{font-size:1rem}.nav-dropdown summary{justify-content:space-between}.food-page .mini-gallery{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.food-page .mini-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem .75rem}.portrait-opening{grid-template-columns:1fr;gap:1.5rem;margin-bottom:2.5rem}.portrait-opening img{max-height:70vh}.portrait-page .mini-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem .8rem}.mini-copyright{font-size:.5rem}.topbar .wordmark{max-width:65%}.topbar .studio-brand{font-size:1.2rem}.page-heading{padding-top:2.5rem}.archive-controls{flex-wrap:wrap}.search-box input{max-width:100%}.project-grid,.article-grid{min-width:0}footer,.timeline-row{overflow-wrap:anywhere}.gallery-intro{line-height:1.85}}
@media(max-width:360px){.portrait-page .mini-gallery{grid-template-columns:1fr}.menu-toggle{padding:.4rem}.topbar .studio-brand{font-size:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Shared baseline: logo ink and adjacent lettering have identical visible height. */
.studio-brand{display:inline-block;white-space:nowrap;line-height:1.3;letter-spacing:.06em}
.studio-brand>span{display:inline;font:inherit;letter-spacing:inherit;line-height:inherit}
.studio-brand .mark{display:inline-block;width:auto;height:.9em;max-width:none;object-fit:contain;transform:none;vertical-align:-.1em;margin:0 .18em 0 0}
.topbar .studio-brand,footer .studio-brand,html[lang=en] .topbar .studio-brand,html[lang=en] footer .studio-brand{font-size:1.3rem;font-weight:400;line-height:1.3}
.inline-mark{display:inline-block;width:auto;max-width:none;transform:none}
/* 1.6rem -> .6rem: 62.5% less vertical padding per award. */
.award-row{padding:.6rem 0;gap:.5rem 1.2rem;align-items:start}
.award-row h2{font-size:1.25rem;line-height:1.35;margin:0 0 .2rem}
.award-row p,.award-row p:not(.eyebrow){margin:.15rem 0;line-height:1.4;font-size:.875rem}
.award-row .eyebrow{margin:0 0 .15rem;font-size:.75rem;line-height:1.4}
.award-row time{font-size:1.15rem;line-height:1.5}
.award-row details{margin:.15rem 0 0}.award-row summary{line-height:1.5;cursor:pointer}
.award-row details p{max-width:65rem;margin:.5rem 0;line-height:1.6}
.color-entry{display:block;margin-top:1rem;font-size:1rem;line-height:1.6}
.color-management{scroll-margin-top:7rem}.color-management h2{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.45;margin-bottom:1rem}
.color-management p{font-size:1rem;line-height:1.9}.color-intro{max-width:60rem}
.color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin:2rem 0}
.color-management h3{font-size:1.15rem;line-height:1.5;margin:0 0 .6rem}
.color-grid>div{border-top:1px solid var(--line);padding-top:1rem}.color-experience{border-top:1px solid var(--line);padding-top:1.5rem;max-width:65rem}
@media(max-width:760px){.color-grid{grid-template-columns:1fr;gap:1.2rem}.award-row{gap:.15rem;padding:.6rem 0}.award-row>a{margin-top:.15rem}}
@media(max-width:600px){.topbar .studio-brand,footer .studio-brand,html[lang=en] .topbar .studio-brand,html[lang=en] footer .studio-brand{font-size:1.1rem}}

.photographer-portrait{width:min(100%,360px);aspect-ratio:1;margin:0 0 2rem;border-radius:24px;overflow:hidden;background:#777}
.photographer-portrait img,.home-profile-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.home-profile-photo{display:block;width:148px;max-width:100%;aspect-ratio:1;border-radius:18px;overflow:hidden;margin:1rem 0 1.3rem;background:#777}
.home-visuals{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:2rem;align-items:start;margin-top:0;margin-bottom:3rem}
.home-visuals figure{margin:0;min-width:0}.home-visuals a{display:block}.home-visuals img{display:block;width:100%;height:auto}.home-visuals figure:nth-child(2){max-width:300px;justify-self:end;margin-top:4rem}
.home-visuals figcaption{font-size:.875rem;line-height:1.6;padding-top:.7rem;color:#666}
@media(max-width:600px){.photographer-portrait{width:min(100%,300px);border-radius:20px}.home-visuals{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1rem}.home-visuals figure:nth-child(2){margin-top:2rem}.home-visuals figcaption{font-size:.8rem}}

/* One full character of space after the studio mark, throughout the site. */
.studio-brand .mark,.inline-mark{margin-right:1em}.studio-brand{gap:0}
.venice-page .mini-gallery{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none;width:100%;gap:2rem 1.3rem}
.venice-page .mini-frame{aspect-ratio:3/2;background:#f5f5f5}.venice-page .mini-frame img{width:100%;height:100%;object-fit:contain}
.venice-page figcaption{font-size:.875rem;line-height:1.6;margin-top:.7rem}
.venice-report{margin:3rem 0;padding:2rem 0;border-top:1px solid var(--line);max-width:60rem}.venice-report h2{font-size:1.5rem;line-height:1.5}.venice-report p{line-height:1.8}
.publication-image{display:block!important;max-width:320px}.publication-image img{display:block;width:100%;height:auto}
@media(max-width:800px){.venice-page .mini-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.venice-page .mini-gallery{grid-template-columns:1fr}.topbar .wordmark{max-width:calc(100% - 106px)}.topbar .studio-brand{font-size:1rem}}

@media(max-width:480px){.topbar .studio-brand,footer .studio-brand{font-size:1rem}html[lang=en] .topbar .studio-brand,html[lang=en] footer .studio-brand{font-size:.9rem;letter-spacing:0}}

.editorial-plates{display:flex;justify-content:center;align-items:center;gap:2rem;margin:0 auto 3rem;max-width:1050px}.editorial-plates figure{flex:1;min-width:0;margin:0;text-align:center}.editorial-plates img{display:block;width:100%;height:clamp(220px,29vw,350px);object-fit:contain}.editorial-plates figcaption{font-size:.875rem;line-height:1.6;color:#666;margin-top:.75rem}.single-plate{max-width:760px;margin-top:2rem}.single-plate img{height:300px}
.portfolio-carousel{max-width:1120px;margin:2rem auto 0;outline-offset:4px}.carousel-stage{background:#f5f5f4}.carousel-slide{margin:0}.carousel-slide[hidden]{display:none!important}.carousel-slide img{display:block;width:100%;height:clamp(220px,34vw,420px);max-height:55vh;object-fit:contain}.carousel-slide figcaption{min-height:3rem;display:flex;justify-content:center;align-items:center;text-align:center;background:white;padding:.65rem 1rem;font-size:.9rem;line-height:1.6}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:.7rem;flex-wrap:wrap;border-top:1px solid var(--line);padding:.5rem 0}.carousel-controls[hidden]{display:none}.carousel-controls button{min-width:44px;min-height:44px;background:white;border:1px solid #ddd;padding:.5rem .75rem;cursor:pointer;color:#333}.carousel-count{font-size:.875rem;font-variant-numeric:tabular-nums}.carousel-dots{display:flex;gap:0}.carousel-dots button{border:0;padding:0;min-width:32px}.carousel-dots span{display:block;width:6px;height:6px;border-radius:50%;background:#ccc;margin:auto}.carousel-dots [aria-pressed=true] span{background:#343434}.portfolio-carousel:focus-visible,.carousel-controls button:focus-visible{outline:2px solid #304b60;outline-offset:3px}
@media(max-width:600px){.editorial-plates{gap:1rem;margin-bottom:2rem}.editorial-plates img{height:230px}.editorial-plates figcaption{font-size:.8rem}.single-plate img{height:260px}.portfolio-carousel{margin-top:1rem}.carousel-slide img{height:240px;max-height:45vh}.carousel-controls{gap:.35rem}.carousel-dots{flex-basis:100%;justify-content:center}}

/* Larger 16:9 photographic window; framing is reversible and keeps source files intact. */
.portfolio-carousel{width:min(1456px,100%);max-width:1456px}
.carousel-slide img{width:100%;height:auto;max-height:none;aspect-ratio:16/9;object-fit:cover;object-position:50% 50%}
.personal-portrait{margin:2rem 0 0;max-width:360px}.personal-portrait img{height:auto;max-height:420px;object-fit:contain}
.compact-rights-inline{font-size:.7em}
.mini-copyright.compact-rights{font-size:.455rem}
.flickr-arrow{display:inline-block;color:#c52525;-webkit-text-stroke:.3px currentColor}
.timeline-row{padding:.72rem 0;row-gap:.9rem}
.timeline-row h2{margin:.12rem 0 .36rem;line-height:1.35}
.timeline-row p{margin-bottom:.3rem;line-height:1.45}
.timeline-row .eyebrow{margin-top:0;margin-bottom:.3rem}
@media(max-width:760px){.mini-copyright.compact-rights{font-size:.35rem}.timeline-row{row-gap:.24rem}.carousel-slide img{height:auto;max-height:none;aspect-ratio:16/9}}
.photo-credit.compact-rights{font-size:6.3px}

/* Consistent arrow treatment across links, navigation and carousel controls. */
a .link-arrow,button .link-arrow{display:inline-block;font-family:Arial,sans-serif;font-size:1rem;font-weight:400;line-height:1;letter-spacing:0;color:#c52525;-webkit-text-stroke:.3px currentColor;vertical-align:baseline}
a:hover .link-arrow,a:focus-visible .link-arrow,button:hover .link-arrow{color:#c52525}

.article-card .publication-image{display:block!important;width:100%;max-width:320px;padding:0;margin:0 0 1rem}.article-card .publication-image img{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:contain;background:#f5f5f4}.article-card .publication-image[hidden]{display:none!important}
.carousel-dots{max-width:100%;flex-wrap:wrap;justify-content:center}

/* Preserve the entire portrait within the fixed 16:9 carousel window. */
.carousel-slide img.carousel-portrait{object-fit:contain;object-position:center;background:#fff}

/* V24 publication links */
.publication-sources{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;margin-top:1rem}.publication-sources a{max-width:100%;overflow-wrap:anywhere}

/* V25 case studies: quiet typography and full-image framing. */
.case-index,.case-home,.case-story{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,5rem);align-items:center;margin-top:3rem;margin-bottom:5rem}.case-index img,.case-home img{width:100%;height:auto;display:block}.case-home{padding-top:3rem;padding-bottom:3rem;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.case-index h2,.case-home h2,.case-story h2,.case-closing h2{font-size:clamp(1.5rem,3vw,2.8rem);line-height:1.5;font-weight:400;margin:.7rem 0 1rem}.case-index p,.case-home p,.case-story p,.case-closing p{font-size:1rem;line-height:1.95}.case-hero,.case-photo{margin-top:1rem;margin-bottom:3.5rem}.case-hero img,.case-photo img{display:block;width:100%;max-height:760px;object-fit:contain;height:auto;background:#f5f5f3}.case-hero figcaption,.case-photo figcaption{font-size:.8rem;color:#67645e;margin-top:1rem}.case-story{align-items:start}.case-facts{margin-top:2rem;border-top:1px solid var(--line)}.case-facts>div{display:grid;grid-template-columns:6rem 1fr;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line);font-size:.85rem;line-height:1.65}.case-facts dt{color:#777}.case-facts dd{margin:0}.case-closing{padding:2rem 0 4rem;margin-top:2rem}.case-closing a{display:inline-block;padding:.6rem 0}.case-single{grid-template-columns:1fr!important;max-width:1100px!important}.case-single .mini-frame{height:auto;aspect-ratio:auto}.case-single img{width:100%;height:auto;object-fit:contain}.publication-image{background:#f5f5f4}
@media(max-width:760px){.case-index,.case-home,.case-story{grid-template-columns:1fr;gap:1.5rem;margin-top:2rem;margin-bottom:3rem}.case-heading h1{font-size:clamp(1.8rem,7.7vw,3rem)}.case-facts>div{grid-template-columns:5rem 1fr}.case-hero,.case-photo{margin-bottom:2rem}}

.mini-photo[hidden],.project-preview[hidden],.case-photo[hidden],.case-hero[hidden]{display:none!important}

/* Keep the existing 400px Google selections at a restrained editorial scale. */
.case-hero,.case-photo{max-width:800px;margin-left:auto;margin-right:auto}
.case-heading h1{text-wrap:balance}
.case-closing{padding-left:clamp(1rem,4vw,4rem);padding-right:clamp(1rem,4vw,4rem)}
.nav-dropdown summary:after,.nav-dropdown[open] summary:after{content:'';display:inline-block;width:.4rem;height:.4rem;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg);margin:-.2rem .25rem 0 .4rem}
.nav-dropdown[open] summary:after{transform:rotate(225deg);margin-top:.2rem}
.menu-toggle>span{font-size:0;display:inline-block;width:16px;height:12px;background:linear-gradient(currentColor,currentColor)0 0/100% 1px no-repeat,linear-gradient(currentColor,currentColor)0 50%/100% 1px no-repeat,linear-gradient(currentColor,currentColor)0 100%/100% 1px no-repeat}
