/* Portfolio presentation. Shared A4T tokens remain the brand source. */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-gutter:stable}
body{margin:0;background:#fafaf8;color:var(--color-ink,#17201d);font:16px/1.55 var(--font-sans,Arial,sans-serif)}
a{color:inherit}button,summary{font:inherit}button{cursor:pointer}button[hidden],[hidden]{display:none!important}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--color-blue,#2858d6);outline-offset:5px}
.skip{position:absolute;left:-9999px}.skip:focus{left:18px;top:12px;z-index:50;background:white;padding:12px}
.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}
.site-head,main,footer{max-width:1680px;margin:auto;padding-inline:clamp(18px,3vw,52px)}
.site-head{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:86px;border-bottom:1px solid var(--color-line,#d7dcd6);position:relative;z-index:10}
.brand{font-size:14px;font-weight:700;text-decoration:none;letter-spacing:.015em;white-space:nowrap;display:inline-flex;align-items:center;min-height:44px;gap:10px}.brand span{font-weight:400;color:#526267}
.primary-nav{display:flex;align-items:center;gap:24px;font-size:13px}.primary-nav>a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}.primary-nav>a:hover,.primary-nav>a[aria-current]{text-decoration:underline;text-underline-offset:6px}
.collection-menu{margin:0}.collection-menu summary{display:flex;align-items:center;gap:30px;min-height:44px;cursor:pointer;list-style:none}.collection-menu summary::-webkit-details-marker{display:none}.collection-menu[open] summary span{transform:rotate(45deg)}
.collection-menu nav{position:absolute;top:calc(100% - 1px);right:clamp(18px,3vw,52px);background:#fafaf8;border:1px solid var(--color-line,#d7dcd6);padding:18px;display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:4px 24px;box-shadow:0 18px 40px #17201d0d}
.collection-menu nav a{display:flex;align-items:center;min-height:44px;text-decoration:none;padding:4px 8px}.collection-menu nav a:hover,.collection-menu nav a[aria-current]{background:#eaf0e8}
main{padding-top:44px;padding-bottom:80px}.eyebrow{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.12em;color:#526267}.eyebrow::before,.eyebrow::after{display:none}
.intro{display:grid;grid-template-columns:1.15fr 1fr;column-gap:8%;align-items:end;margin:0 0 34px}.intro .eyebrow{grid-column:1/-1;margin:0 0 18px}.intro h1,.gallery-head h1{font-size:clamp(40px,4.5vw,70px);line-height:1.04;font-weight:500;letter-spacing:-.055em;margin:0}.intro h1{grid-row:2/4;max-width:720px}.intro>p:not(.eyebrow){font-size:16px;color:#526267;max-width:520px;margin:0 0 16px}.intro .enquiry-link{font-size:13px;justify-self:start}
.enquiry-link{display:inline-flex;align-items:center;min-height:44px;text-underline-offset:6px}.opening{margin-bottom:66px}.opening-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px}.opening-head p{font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin:0;color:#526267}
.gallery{display:flex;flex-direction:column;gap:4px}.gallery-row{display:flex;justify-content:center;align-items:start;gap:4px}.photo{display:block;position:relative;min-width:0;cursor:zoom-in;text-decoration:none;touch-action:pan-y}.photo img{display:block;width:100%;height:auto;background:#e6e9e7}.photo::after{content:'↗';position:absolute;bottom:12px;right:12px;display:grid;place-items:center;width:34px;height:34px;background:#fafaf8;color:#17201d;opacity:0;transition:opacity .18s}.photo:hover::after,.photo:focus-visible::after{opacity:1}
.gallery:not([data-layout-ready]){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;align-items:start}
.section-title{font-size:12px;text-transform:uppercase;letter-spacing:.09em;font-weight:650;border-top:1px solid var(--color-line,#d7dcd6);padding-top:20px;margin:58px 0 22px}
.service-grid,.personal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 18px}.service-grid:has(>.index-link:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.index-link{display:block;text-decoration:none}.index-link img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:#e6e9e7}.index-title{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:clamp(20px,2vw,28px);font-weight:450;letter-spacing:-.025em;margin-top:12px}.index-title::after{content:'↗';font-size:19px;transition:transform .2s}.index-link:hover .index-title::after{transform:translate(3px,-3px)}.index-link:hover .index-title{text-decoration:underline;text-underline-offset:6px}.personal-grid .index-title{font-size:20px}.index-count,.photo-number{display:none}
img[data-focal="50% 30%"]{object-position:50% 30%}img[data-focal="50% 58%"]{object-position:50% 58%}img[data-focal="70% 50%"]{object-position:70% 50%}
.gallery-head{margin:0 0 32px;max-width:960px}.back{display:inline-flex;align-items:center;min-height:44px;font-size:13px;text-decoration:none}.back:hover{text-decoration:underline;text-underline-offset:5px}.gallery-head .eyebrow{margin:16px 0 12px}.gallery-head h1{margin:0 0 18px}.deck{font-size:17px;color:#526267;max-width:660px;margin:0}
.collection-jump{display:flex;flex-wrap:wrap;gap:4px 24px;border-top:1px solid var(--color-line,#d7dcd6);border-bottom:1px solid var(--color-line,#d7dcd6);padding:10px 0;margin:0 0 40px}.collection-jump a{display:inline-flex;align-items:center;min-height:44px;font-size:13px;text-decoration:none;color:#526267}.collection-jump a:hover,.collection-jump a[aria-current]{color:#17201d;text-decoration:underline;text-underline-offset:6px}
.swipe-hint{display:none}
.story{margin:0 0 76px;scroll-margin-top:28px}.story-head{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--color-line,#d7dcd6);padding-top:8px;margin-bottom:14px}.story h2{font-size:15px;letter-spacing:.015em;font-weight:500;margin:0}.view-story{border:0;border-radius:0;padding:8px 0 8px 12px;min-height:44px;background:transparent;color:#526267;font-size:12px;white-space:nowrap}.view-story:hover{text-decoration:underline;text-underline-offset:5px}
.story-deck{max-width:720px;margin:0 0 20px;color:#526267;font-size:14px;line-height:1.55}
.album-story{margin:0;border-top:1px solid var(--color-line,#d7dcd6)}
.album-story:last-of-type{border-bottom:1px solid var(--color-line,#d7dcd6)}
.album-preview{list-style:none;display:grid;grid-template-columns:minmax(180px,28%) 1fr;min-height:174px;align-items:stretch;gap:clamp(22px,4vw,68px);cursor:pointer;padding:12px 0}
.album-preview::-webkit-details-marker{display:none}
.album-preview img{display:block;width:100%;height:170px;object-fit:cover;background:#e6e9e7}
.album-preview img[data-preview-focus="upper"]{object-position:center 17%}
.album-preview img[data-preview-focus="upper-quarter"]{object-position:center 25%}
.album-preview-copy{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;min-width:0}
.album-preview-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#526267}
.album-preview h2.album-preview-title{font-size:clamp(23px,2.4vw,38px);line-height:1.15;font-weight:450;letter-spacing:-.035em;margin:0}
.album-preview-action{font-size:12px;color:#526267;margin-top:4px}
.album-preview-action span{display:inline-block;margin-left:12px;transition:transform .2s}
.album-preview:hover .album-preview-action span{transform:translate(3px,-3px)}
.album-story[open] .album-preview-action{color:#17201d}
.album-story[open] .album-preview-action span{transform:rotate(135deg)}
.album-story-content{padding:18px 0 52px}
.album-story-content .story-head{border-top:0}
.collection-next{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;border-top:1px solid var(--color-line,#d7dcd6);padding-top:18px}.collection-next a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;text-underline-offset:5px}
.enquiry{margin-top:68px;border-top:1px solid var(--color-line,#d7dcd6);padding-top:28px}.enquiry h2{font-size:clamp(28px,3vw,42px);letter-spacing:-.04em;font-weight:500;margin:0 0 12px}.enquiry p{max-width:620px;color:#526267;margin:0 0 14px}
footer{border-top:1px solid var(--color-line,#d7dcd6);padding-top:24px;padding-bottom:32px;display:flex;justify-content:space-between;gap:50px;font-size:12px;color:#526267}footer p{max-width:600px;margin:12px 0}footer nav{display:flex;align-content:start;justify-content:end;flex-wrap:wrap;gap:0 18px;max-width:480px}footer nav a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}footer nav a:hover{text-decoration:underline}
#viewer{border:0;border-radius:0;padding:0;margin:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;background:#101312;color:#f5f5f0;overflow:hidden;color-scheme:dark}
#viewer[open]{display:flex;flex-direction:column}#viewer::backdrop{background:#101312}#viewer:fullscreen{height:100dvh;width:100vw}
.viewer-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-shrink:0;padding:12px max(20px,env(safe-area-inset-right)) 12px max(20px,env(safe-area-inset-left));min-height:76px}.viewer-context{min-width:0}.viewer-context p{font-size:14px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-context span{font-size:11px;color:#b9c4bf}.viewer-actions{display:flex;gap:8px;flex-shrink:0}
#viewer button{border:1px solid #58645d;background:transparent;color:#f5f5f0;border-radius:0;min-width:44px;min-height:44px;padding:8px 12px;font-size:12px}#viewer button:hover{background:#29322e}#viewer button:disabled{opacity:.28;cursor:default}#viewer button:focus-visible{outline:3px solid #b8e5d3;outline-offset:3px}
.viewer-stage{position:relative;flex:1;min-height:0;display:flex;justify-content:center;align-items:center;padding:4px 72px 12px;touch-action:pan-y pinch-zoom}.viewer-stage[aria-busy="true"]{opacity:.5}.viewer-stage img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;user-select:none}.viewer-arrow{position:absolute;top:calc(50% - 24px);z-index:1;font-size:22px!important}#previous-photo{left:16px}#next-photo{right:16px}
.viewer-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;flex-shrink:0;padding:0 20px max(8px,env(safe-area-inset-bottom));font-size:11px;color:#b9c4bf}.viewer-footer button,.viewer-collection-link{margin-left:auto}.viewer-collection-link{display:inline-flex;align-items:center;min-height:40px;color:#f5f5f0;font-size:12px;text-underline-offset:5px}.viewer-collection-link[hidden]{display:none}.viewer-overview{display:flex;flex-shrink:0;gap:8px;overflow-x:auto;padding:8px 20px 16px;max-height:108px}.viewer-overview button{flex:0 0 88px;padding:2px!important;border-color:transparent!important}.viewer-overview button[aria-current="true"]{border-color:#e9f3ec!important}.viewer-overview img{display:block;width:80px;height:58px;object-fit:contain}.viewer-overview:focus{outline:none}#viewer-error{margin:0;text-align:center;font-size:13px}
@media(min-width:1800px){.intro{margin-bottom:42px}}
@media(max-width:1000px){.personal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.intro{column-gap:5%}.intro h1{font-size:clamp(40px,5.5vw,60px)}.site-return{display:none!important}.primary-nav{gap:20px}.gallery:not([data-layout-ready]){grid-template-columns:repeat(2,minmax(0,1fr))}footer{display:block}footer nav{justify-content:start;max-width:none}}
@media(max-width:640px){.site-head{min-height:74px;gap:12px}.brand{font-size:13px;display:block;line-height:1.4;padding-top:5px}.brand span{display:block;font-size:11px}.primary-nav{gap:16px;font-size:12px}.collection-menu summary{gap:12px}.collection-menu nav{left:18px;right:18px;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px;padding:12px}.collection-menu nav a{font-size:12px}main{padding-top:28px;padding-bottom:54px}.intro{display:block;margin-bottom:18px}.intro .eyebrow{margin-bottom:14px}.intro h1{font-size:42px;margin-bottom:18px;max-width:450px}.intro>p:not(.eyebrow){font-size:15px;margin:0 0 6px}.opening{margin-bottom:40px}.opening-head{margin-bottom:12px}.gallery{gap:4px}.gallery:not([data-layout-ready]){grid-template-columns:1fr}.gallery.mobile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.photo{width:100%;max-width:100%;margin:auto}.gallery-row{gap:4px}.service-grid,.personal-grid,.service-grid:has(>.index-link:nth-child(2):last-child){grid-template-columns:1fr;gap:30px}.section-title{margin-top:42px}.index-title,.personal-grid .index-title{font-size:23px}.story{margin-bottom:48px}.story h2{font-size:14px}.story-head{gap:8px}.collection-jump{gap:0 18px;padding-block:8px;margin-bottom:28px}.collection-jump a{font-size:12px}.gallery-head h1{font-size:44px}.deck{font-size:15px}.viewer-bar{padding:10px 12px;gap:8px;min-height:74px}.viewer-context p{font-size:12px;white-space:normal;line-height:1.3}.viewer-actions{gap:4px}#viewer button{padding:6px 9px;font-size:11px}#fullscreen-viewer{display:none!important}.viewer-stage{padding:0 0 6px}.viewer-arrow{top:auto;bottom:10px;background:#101312bf!important}#previous-photo{left:12px}#next-photo{right:12px}.viewer-footer{padding-inline:12px;min-height:58px}.viewer-footer>span{max-width:160px;font-size:10px}.enquiry{margin-top:44px}.photo::after{display:none}}
@media(max-width:640px){.gallery.mobile-grid{display:block;position:relative}.gallery.mobile-grid .photo{position:absolute;margin:0}.album-preview{grid-template-columns:38% 1fr;gap:16px;min-height:136px;padding:10px 0}.album-preview img{height:116px}.album-preview h2.album-preview-title{font-size:20px}.album-preview-label{font-size:9px}.album-preview-action{font-size:11px}.album-story{margin-bottom:0}.album-story-content{padding:16px 0 34px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Keep wayfinding available throughout longer photo stories. */
.site-head{position:sticky;top:0;background:#fafaf8}
.story{scroll-margin-top:112px}.section-title{max-width:none;scroll-margin-top:110px}
#viewer .viewer-context p{color:#f5f5f0}
@media(max-width:640px){.swipe-hint{display:block;margin:16px 0 4px;font-size:11px;color:#526267}.collection-jump{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:thin}.collection-jump a{flex-shrink:0}.story{scroll-margin-top:96px}}

/* Portfolio home: a dark focal chapter between the light introduction and collections. */
.intro-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px 26px;justify-self:start}
.intro-contact{display:inline-flex;align-items:center;min-height:44px;padding:0 17px;background:#17201d;color:#fafaf8;text-decoration:none;font-size:13px;transition:background .2s}
.intro-contact:hover{background:#35433d}
.opening{background:#111714;color:#f6f5ef;padding:clamp(18px,2.6vw,40px);margin-inline:calc(-1 * clamp(18px,3vw,52px));margin-bottom:66px}
.opening-head{margin-bottom:18px}.opening-head p{color:#c3cec7}.opening-head p span{color:#87988e;margin-left:8px}
.opening .view-story{color:#f6f5ef}
.opening .photo{overflow:hidden;background:#26302a}.opening .photo img{transition:transform .55s cubic-bezier(.2,.7,.25,1)}
.opening .photo:hover img,.opening .photo:focus-visible img{transform:scale(1.02)}
.opening-caption{position:absolute;inset:auto 0 0;display:flex;flex-direction:column;gap:1px;padding:36px 15px 15px;background:linear-gradient(transparent,rgba(5,10,7,.82));color:#fff;pointer-events:none}
.opening-caption span{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#d7e0d9}
.opening-caption strong{font-size:clamp(16px,1.45vw,23px);font-weight:500;letter-spacing:-.02em;line-height:1.2}
.opening-note{color:#c3cec7;font-size:12px;letter-spacing:.01em;margin:18px 0 0}
.enquiry-feature{background:#17201d;color:#f6f5ef;padding:clamp(28px,4vw,64px);margin-inline:calc(-1 * clamp(18px,3vw,52px));border:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:32px}
.enquiry-feature .enquiry-kicker{grid-column:1/-1;color:#b8c9be;font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:18px}
.enquiry-feature h2{font-size:clamp(32px,4vw,56px);line-height:1.08;margin-bottom:16px}
.enquiry-feature p{color:#c3cec7;margin-bottom:0}
.enquiry-feature .enquiry-link{grid-column:2;grid-row:2/4;align-self:end;padding:0 20px;background:#e9d5b0;color:#17201d;text-decoration:none;font-size:13px;white-space:nowrap;transition:background .2s}
.enquiry-feature .enquiry-link:hover{background:#fff0d2}
@media(max-width:640px){.intro-actions{gap:6px 17px;margin-top:15px}.opening{padding:18px;margin-bottom:40px}.opening-head{margin-bottom:12px}.opening-caption{padding:30px 14px 13px}.opening-caption strong{font-size:18px}.opening-note{margin-top:14px}.enquiry-feature{display:block;padding:30px 22px}.enquiry-feature .enquiry-kicker{display:block;margin-bottom:20px}.enquiry-feature p{margin-bottom:22px}.enquiry-feature .enquiry-link{width:max-content}}
