/* A collection of small photo books, with a stable inner crop for 3D hover. */
.portfolio-grid.album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:46px 30px;max-width:none}
.portfolio-grid.album-grid[data-count="1"]{grid-template-columns:minmax(0,1fr);max-width:560px}
.portfolio-grid.album-grid[data-count="2"],.portfolio-grid.album-grid[data-count="3"]{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr))}
.album-grid[data-odd="true"] .album-last{grid-column:1/-1;justify-self:center;width:calc((100% - 30px)/2)}
.album-card[hidden],.album-empty[hidden],.album-thumb[hidden],.lightbox button[hidden],#lightbox-image[hidden],.album-image-error[hidden]{display:none!important}
.album-card{display:block;text-align:left}
.album-card .album-art{display:block;aspect-ratio:16/11;border-radius:16px;border-width:7px;overflow:visible;box-shadow:var(--photo-shadow),0 3px 0 #d9ddce}
.album-mosaic{display:grid;width:100%;height:100%;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:5px;background:white;border-radius:9px;overflow:hidden;clip-path:inset(0 round 9px);-webkit-backface-visibility:hidden;backface-visibility:hidden}
.album-cover{grid-row:1/-1}
.album-cover,.album-peek{display:block;min-width:0;min-height:0;overflow:hidden}
.album-mosaic[data-preview="1"] .album-cover{grid-column:1/-1}
.album-mosaic[data-preview="2"] .album-peek{grid-row:1/-1}
.album-card img{display:block;width:100%;height:100%;object-fit:cover;backface-visibility:hidden}
.album-card img.monochrome,.album-card:hover img.monochrome,.album-thumb img.monochrome{filter:grayscale(1)}
.album-count{position:absolute;top:14px;left:14px;z-index:4;padding:6px 12px;background:#ffffffe0;border:1px solid #ffffffdb;border-radius:30px;backdrop-filter:blur(10px);color:var(--ink);font-size:9px;letter-spacing:.7px;box-shadow:0 3px 10px #2428200d}
.album-open{position:absolute;right:14px;bottom:14px;z-index:4;width:38px;height:38px;display:grid;place-items:center;border:1px solid #ffffffc0;border-radius:50%;background:#ffffffca;backdrop-filter:blur(10px);box-shadow:0 5px 12px #24282015}
.album-open svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.album-caption{display:block;padding:24px 4px 0}
.album-category{display:block;font-size:8px;letter-spacing:2.1px;color:var(--sage);margin-bottom:7px}
.album-title{display:block;font:38px/1.12 var(--serif);letter-spacing:-.6px;color:var(--ink)}
.album-description{display:block;font-size:12px;color:var(--muted);margin-top:9px;line-height:1.75}
.album-link{display:inline-block;font-size:10px;padding:7px 0 3px;margin-top:5px;border-bottom:1px solid var(--edge);color:var(--sage)}
.album-empty{text-align:center;color:var(--muted);padding:40px 0;font-size:13px}

/* A transparent dialog leaves the page visible through an optical soft blur. */
.lightbox.album-lightbox{background:transparent;color:var(--ink);padding:22px 5%;isolation:isolate;overflow-y:auto}
.album-lightbox[open]{display:grid;place-items:center;animation:album-dialog-enter .45s var(--depth-ease) both}
.album-lightbox::backdrop{background:#24282038;-webkit-backdrop-filter:blur(16px) saturate(.85);backdrop-filter:blur(16px) saturate(.85)}
.album-lightbox::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 12% 25%,#f9eec679,transparent 23%),radial-gradient(circle at 88% 75%,#e2edce61,transparent 22%);filter:blur(28px)}
.album-viewer{max-height:calc(100dvh - 44px);overflow-y:auto;width:min(100%,1080px);padding:24px 28px 16px;background:color-mix(in srgb,var(--paper) 88%,transparent);border:1px solid #ffffffe0;border-radius:25px;box-shadow:0 35px 100px -25px #15201a55,inset 0 1px 0 white}
.album-viewer-header{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:18px}
.album-viewer-header .eyebrow{font-size:8px;letter-spacing:2px;margin:0 0 5px}
.album-viewer-header h2{font:34px/1.1 var(--serif);margin:0;letter-spacing:-.5px}
.album-lightbox .lightbox-close{position:static;flex:none;background:#ffffffa6;border:1px solid #ffffffc7;color:var(--ink);box-shadow:0 4px 12px #2428200b}
.album-lightbox .lightbox-close:hover{background:white}
.album-lightbox figure{display:block;height:auto;margin:0}
.album-stage{height:min(55dvh,620px);position:relative;display:flex;align-items:center;justify-content:center;min-height:180px;touch-action:pan-y pinch-zoom;user-select:none}
.album-lightbox #lightbox-image{display:block;width:auto;height:auto;max-width:calc(100% - 104px);max-height:100%;object-fit:contain;border-radius:10px;box-shadow:0 22px 45px -23px #24282066}
.album-lightbox .lightbox-prev,.album-lightbox .lightbox-next{top:calc(50% - 22px);width:44px;height:44px;background:#ffffffb8;color:var(--ink);border:1px solid #ffffffd6;box-shadow:0 5px 16px #24282010;backdrop-filter:blur(12px)}
.album-lightbox .lightbox-prev{left:0}
.album-lightbox .lightbox-next{right:0}
.album-lightbox .lightbox-prev:hover,.album-lightbox .lightbox-next:hover{background:white}
.album-lightbox figcaption{font-size:10px;margin-top:14px;padding:0 52px;color:var(--muted);min-height:18px}
#lightbox-counter{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--sage)}
.album-filmstrip{display:flex;gap:9px;width:fit-content;max-width:100%;overflow-x:auto;margin:17px auto 0;padding:4px 4px 8px;scrollbar-width:thin;scrollbar-color:#cbd3c2 transparent;overscroll-behavior-x:contain}
.album-thumb{display:block;flex:0 0 65px;width:65px;height:52px;padding:3px;background:transparent;border:1px solid transparent;border-radius:9px;opacity:.6;transition:opacity .25s,border-color .25s;cursor:pointer}
.album-thumb img{width:100%;height:100%;object-fit:cover;border-radius:5px}
.album-thumb[aria-current="true"]{opacity:1;border-color:var(--sage);background:#ffffff87}
.album-thumb:hover,.album-thumb:focus-visible{opacity:1}
.album-viewer-hint{text-align:center;font-size:9px;color:var(--muted);margin:5px 0 0}
.album-image-error{font-size:12px;padding:35px;text-align:center;color:var(--muted)}
@keyframes album-dialog-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}

/* Keep the shadow on the outer frame and crop only its inner photograph. */
.hero-frame .photo-surface,.approach-photo .photo-surface{display:block;width:100%;height:100%;overflow:hidden;border-radius:9px;clip-path:inset(0 round 9px);backface-visibility:hidden}
.hero-frame .photo-surface img,.approach-photo .photo-surface img{backface-visibility:hidden}
.hero-frame{overflow:visible}
.hero-frame::after{border-radius:0 0 9px 9px}
.hero-frame::before{border-radius:9px}
.approach-photo{overflow:visible}

/* Answers have a feathered halo, rather than a coloured rectangular panel. */
.faq-list details{position:relative;isolation:isolate;border-radius:0;transition:border-color .3s}
.faq-list details[open]{background:transparent;border-color:var(--line);border-radius:0}
.faq-list details::before{content:'';position:absolute;inset:0 -24px;z-index:-1;pointer-events:none;opacity:0;background:radial-gradient(ellipse closest-side at 50% 50%,color-mix(in srgb,var(--sage) 12%,transparent),color-mix(in srgb,var(--sage) 6%,transparent) 55%,transparent 100%);transition:opacity .35s}
.faq-list details[open]::before{opacity:1}

@media(max-width:800px){.portfolio-grid.album-grid{gap:34px 22px}.album-grid[data-odd="true"] .album-last{width:calc((100% - 22px)/2)}.album-title{font-size:33px}.album-lightbox{padding:16px 3%}.album-viewer{padding:21px 20px 14px}.album-stage{height:52dvh}.album-lightbox #lightbox-image{max-width:calc(100% - 80px)}.album-lightbox .lightbox-prev,.album-lightbox .lightbox-next{width:38px;height:38px;top:calc(50% - 19px)}.album-lightbox figcaption{padding:0 40px}}
@media(max-width:600px){.portfolio-grid.album-grid,.portfolio-grid.album-grid[data-count="2"],.portfolio-grid.album-grid[data-count="3"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}.portfolio-grid.album-grid[data-count="1"]{grid-template-columns:minmax(0,1fr);max-width:320px}.album-grid[data-odd="true"] .album-last{width:calc((100% - 14px)/2)}.album-card .album-art{aspect-ratio:4/5;border-width:5px;border-radius:12px}.album-mosaic{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr) minmax(0,.35fr);gap:3px;border-radius:7px;clip-path:inset(0 round 7px)}.album-cover{grid-row:1;grid-column:1/-1}.album-peek{grid-row:2}.album-mosaic[data-preview="1"] .album-cover{grid-row:1/-1}.album-mosaic[data-preview="2"] .album-peek{grid-row:2;grid-column:1/-1}.album-count{top:7px;left:7px;padding:4px 7px;font-size:7px;letter-spacing:0}.album-open{right:7px;bottom:7px;width:28px;height:28px}.album-open svg{width:15px;height:15px}.album-caption{padding:18px 1px 0}.album-category{font-size:6px;letter-spacing:1.4px;margin-bottom:6px}.album-title{font-size:27px;letter-spacing:-.4px}.album-description{font-size:10px;line-height:1.6;margin-top:7px}.album-link{font-size:8px;margin-top:3px}.lightbox.album-lightbox{padding:12px}.album-viewer{padding:18px 12px 13px;border-radius:20px}.album-viewer-header{padding:0 5px;margin-bottom:16px}.album-viewer-header h2{font-size:30px}.album-viewer-header .eyebrow{font-size:7px}.album-lightbox .lightbox-close{width:37px;height:37px}.album-stage{height:51dvh}.album-lightbox #lightbox-image{max-width:100%;border-radius:8px}.album-lightbox .lightbox-prev{left:5px}.album-lightbox .lightbox-next{right:5px}.album-lightbox figcaption{padding:0 6px;font-size:9px;margin-top:13px}.album-thumb{flex-basis:55px;width:55px;height:46px}.album-filmstrip{gap:5px;margin-top:13px}.album-viewer-hint{font-size:8px;margin-top:4px}.hero-frame .photo-surface{border-radius:8px;clip-path:inset(0 round 8px)}.hero-frame::after{border-radius:0 0 8px 8px}.hero-frame::before{border-radius:8px}.faq-list details::before{inset:0 -8px}}
@media(prefers-reduced-motion:reduce){.album-lightbox[open]{animation:none}.album-thumb,.faq-list details::before{transition:none}}

.album-viewer-header>div{min-width:0}.album-viewer-header h2,.album-title{overflow-wrap:anywhere}

/* Respect the photographer’s colours in every photo surface. */
.hero-frame img,.hero-frame:hover img,.photo-card img,.photo-card:hover img,.approach-photo img{filter:none}
.hero-frame::before,.hero-frame::after,.image-wrap::after,.approach-photo::after{display:none}
.album-thumb{opacity:1}

.contact-channels{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin:24px 0;overflow-wrap:anywhere}.message-actions{flex-wrap:wrap}.message-actions .button{white-space:normal;text-align:center}

.back-to-top{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));z-index:30;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink);box-shadow:0 6px 24px #24282024;cursor:pointer;touch-action:manipulation}
.back-to-top[hidden],body.dialog-open .back-to-top{display:none}
.back-to-top svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.back-to-top:hover{background:var(--pale)}
.back-to-top:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
