/* Square, edge-to-edge project photographs. Full originals remain in the viewer. */
.works-section{position:relative;background:linear-gradient(135deg,#f5f9ff,#fff)}
.works-featured{background:radial-gradient(ellipse at 95% 0,#c4efff55,transparent 50%),#f2f6fc}
.works-section .section-head p,.portfolio-gallery .section-head p{max-width:460px}
.works-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:30px 24px}
.work-card{min-width:0;margin:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none}
.work-card[hidden],.work-filters[hidden]{display:none}
.work-photo{position:relative;display:block;width:100%;height:auto;aspect-ratio:1;padding:0;border-radius:22px;background:#e3eaf2;overflow:hidden;isolation:isolate;box-shadow:0 12px 28px #13386612}
.work-photo img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:var(--photo-position,50% 50%);border-radius:inherit;transition:transform .3s ease}
.work-photo:hover img{transform:scale(1.035)}
.work-expand{position:absolute;right:16px;bottom:16px;display:grid;place-items:center;width:40px;height:40px;border:1px solid #ffffff90;border-radius:50%;background:#ffffffeb;color:#204d9e;box-shadow:0 3px 15px #0c244a25;font-size:24px;z-index:2}
.work-card figcaption{padding:17px 2px 0}
.work-category{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#26759c;font-weight:650;margin-bottom:7px}
.work-card h3{font-size:20px;line-height:1.35;letter-spacing:-.025em}
.works-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:35px;padding-top:25px;border-top:1px solid #dce6f2}
.works-bottom p{font-size:15px;max-width:650px}
.works-bottom .btn{flex-shrink:0}
/* One large square and four smaller squares form the homepage composition. */
.works-featured .works-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.works-featured .work-card{position:relative;aspect-ratio:1;isolation:isolate}
.works-featured .work-card:first-child{grid-column:span 2;grid-row:span 2}
.works-featured .work-photo{height:100%;width:100%;border-radius:22px}
.works-featured .work-photo:after{content:'';position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#08152fd9);pointer-events:none;z-index:1}
.works-featured .work-expand{top:15px;bottom:auto;right:15px}
.works-featured .work-card figcaption{position:absolute;bottom:0;left:0;right:0;padding:24px;pointer-events:none;z-index:3}
.works-featured .work-category{color:#ade9ff;font-size:10px}
.works-featured .work-card h3{font-size:21px;color:#fff;line-height:1.25;text-shadow:0 1px 5px #00122655}
.works-featured .work-card:first-child figcaption{padding:34px}
.works-featured .work-card:first-child h3{font-size:36px;max-width:500px}
/* The lead photograph occupies the whole square, without an inner frame. */
.hero-image.hero-real{width:100%;height:auto;aspect-ratio:1;padding:0;border:0;border-radius:28px;background:#172c46;align-self:center;box-shadow:0 20px 60px #1e65bd26,0 0 35px #38bfe519}
.hero-image.hero-real>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 44%;border-radius:inherit}
.hero-image.hero-real:after{content:'';position:absolute;inset:45% 0 0;border-radius:0 0 28px 28px;background:linear-gradient(transparent,#08162ce0);box-shadow:none;pointer-events:none;z-index:1}
.hero-real .image-caption{left:30px;right:30px;bottom:28px;background:none;backdrop-filter:none;padding:0;border:0;box-shadow:none;z-index:2}
.hero-real .image-caption strong{color:#fff;font-size:23px}
.hero-real .image-caption p{color:#cbe7fc;margin-top:5px}
.hero-real .image-caption a{display:inline-block;padding:4px 0}
.hero-real .badge-icon{background:#ffffffed}
.page-hero-image.real-photo{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;object-position:center;padding:0;border:0;border-radius:24px;box-shadow:0 16px 38px #2265be20}
.portfolio-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.85fr);gap:75px;align-items:center;padding:25px 0 70px}
.portfolio-intro h1{font-size:clamp(42px,4.3vw,68px);max-width:900px;line-height:1.13;padding-bottom:.1em}
.portfolio-intro p{font-size:19px;max-width:770px;margin:22px 0 27px}
.portfolio-cover{position:relative;aspect-ratio:1;margin:0;border-radius:26px;overflow:hidden;background:#162940;box-shadow:0 18px 40px #1a4a8c20;isolation:isolate}
.portfolio-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.portfolio-cover:after{content:'';position:absolute;inset:55% 0 0;background:linear-gradient(transparent,#091a32ed);z-index:1}
.portfolio-cover figcaption{position:absolute;left:28px;right:28px;bottom:25px;z-index:2;color:white}
.portfolio-cover figcaption span{display:block;color:#bcdef7;font-size:12px;margin-bottom:6px;letter-spacing:.05em;text-transform:uppercase}
.portfolio-cover figcaption strong{font-size:23px;font-weight:600}
.portfolio-gallery{padding-top:54px;background:#fff;border-top:1px solid #e2ebf5}
.work-filters{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px}
.work-filters button{display:flex;align-items:center;gap:9px;min-height:46px;border:1px solid #ceddf1;border-radius:30px;padding:10px 17px;background:#fff;color:#345274;font-size:14px;font-weight:600;line-height:1.4}
.work-filters button span{font-size:11px;opacity:.72}
.work-filters button[aria-pressed=true]{background:#2452dc;color:#fff;border-color:#2452dc;box-shadow:0 4px 16px #2452dc25}
.work-filters button:hover{border-color:#2452dc}
.gallery-count{font-size:13px;margin-bottom:25px}
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}
.work-video{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);background:#edf4fc;border:1px solid #d6e5f6;border-radius:22px;overflow:hidden}
.work-video video{display:block;width:100%;height:400px;background:#10233d;object-fit:contain}
.work-video>div{padding:26px;align-self:center;min-width:0}
.work-video h3{font-size:24px;line-height:1.3}
.work-video p{font-size:14px;margin:15px 0 23px}
.work-video .link{font-size:13px}
dialog.photo-viewer{width:min(1280px,calc(100% - 30px));max-width:none;height:min(900px,calc(100dvh - 30px));max-height:none;padding:0;border:1px solid #59769b;border-radius:18px;background:#101d30;color:#fff;overflow:hidden}
.photo-viewer::backdrop{background:#030b19ed;backdrop-filter:blur(8px)}
.photo-viewer[open]{display:flex;flex-direction:column}
.photo-viewer-toolbar{display:flex;align-items:center;gap:22px;padding:12px 18px;flex-shrink:0}
#photo-viewer-count{font-size:14px;font-variant-numeric:tabular-nums;color:#c7ddf5;margin-right:auto}
#photo-viewer-original{font-size:13px;color:#b6dff5;text-decoration:underline;text-underline-offset:3px}
.photo-viewer button{display:grid;place-items:center;border:1px solid #7690b666;background:#20334b;color:white;flex-shrink:0;width:46px;height:46px;border-radius:50%;font-size:32px;line-height:1}
.photo-viewer button:hover{background:#2452dc}
.photo-viewer-stage{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 18px;flex:1;min-height:0}
#photo-viewer-image{display:block;min-width:0;width:calc(100% - 122px);height:100%;object-fit:contain}
#photo-viewer-caption{margin:0;text-align:center;padding:17px 24px 22px;color:#dce9f7;font-size:16px;line-height:1.5;flex-shrink:0}
.work-photo:focus-visible,.work-filters button:focus-visible,.photo-viewer button:focus-visible,.photo-viewer a:focus-visible{outline:3px solid #079bcc;outline-offset:3px}
@media(max-width:1250px){.desktop-nav .nav-guide{display:none}.portfolio-intro{gap:45px}.work-video{grid-template-columns:1fr}.work-video video{height:440px}.work-video>div{padding:24px}.works-featured .work-card figcaption{padding:20px}.works-featured .work-card h3{font-size:18px}.works-featured .work-card:first-child h3{font-size:31px}}
@media(max-width:1050px){.desktop-nav{gap:11px}.desktop-nav>a{font-size:13px}.works-grid{gap:25px 18px}.work-card h3{font-size:18px}.portfolio-intro{gap:30px}.portfolio-intro h1{font-size:43px}.portfolio-intro p{font-size:17px}.works-featured .works-grid{gap:15px}.works-featured .work-card figcaption{padding:16px}.works-featured .work-card h3{font-size:16px}.works-featured .work-card:first-child h3{font-size:27px}.works-featured .work-card:first-child figcaption{padding:25px}.works-featured .work-category{font-size:9px}.hero-real .image-caption strong{font-size:19px}}
@media(max-width:760px){.works-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portfolio-intro{grid-template-columns:1fr;gap:28px;padding-bottom:40px}.portfolio-cover{max-width:560px;width:100%}.portfolio-intro p{font-size:17px}.works-bottom{align-items:flex-start;flex-direction:column;gap:18px}.video-grid{gap:18px}.work-video h3{font-size:21px}.works-featured .works-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.works-featured .work-card:first-child{grid-column:span 2;grid-row:auto}.works-featured .work-card:first-child h3{font-size:36px}.works-featured .work-card h3{font-size:21px}.works-featured .work-category{font-size:10px}.works-featured .work-card figcaption{padding:22px}.hero-real .image-caption{left:22px;right:22px;bottom:22px}.hero-real .image-caption strong{font-size:18px}.hero-real .image-caption p{font-size:12px}.hero-real .badge-icon{display:none}}
@media(max-width:600px){.works-grid{gap:24px 14px}.work-photo{border-radius:17px}.work-card figcaption{padding:12px 1px 0}.work-category{font-size:9px;letter-spacing:.055em;line-height:1.5;margin-bottom:5px}.work-card h3{font-size:15px;line-height:1.4}.work-expand{width:32px;height:32px;right:10px;bottom:10px;font-size:21px}.hero-image.hero-real{height:auto;aspect-ratio:1;border-radius:23px}.hero-image.hero-real:after{border-radius:0 0 23px 23px}.hero-real .image-caption strong{font-size:21px}.hero-real .image-caption p{font-size:13px}.hero-real .badge-icon{display:grid}.page-hero-image.real-photo{height:auto;aspect-ratio:1;border-radius:22px}.portfolio-intro h1{font-size:clamp(37px,9.8vw,54px)}.portfolio-intro .buttons{align-items:stretch}.portfolio-intro .btn{font-size:14px}.portfolio-cover{border-radius:23px}.portfolio-cover figcaption{left:22px;bottom:22px}.portfolio-cover figcaption strong{font-size:20px}.work-filters{gap:8px}.work-filters button{font-size:12px;padding:9px 13px;min-height:44px}.works-featured .works-grid{gap:14px}.works-featured .work-photo{border-radius:18px}.works-featured .work-card figcaption{padding:14px}.works-featured .work-card h3{font-size:16px}.works-featured .work-category{font-size:8px;letter-spacing:.035em}.works-featured .work-card:first-child h3{font-size:29px}.works-featured .work-card:first-child figcaption{padding:24px}.works-featured .work-expand{top:10px;right:10px}.video-grid{grid-template-columns:1fr;gap:24px}.work-video video{height:460px}.work-video>div{padding:24px}.work-video h3{font-size:25px}dialog.photo-viewer{width:100%;height:100dvh;max-height:100dvh;border:0;border-radius:0}.photo-viewer-toolbar{padding:12px;gap:12px}.photo-viewer-stage{position:relative;padding:0 8px 58px;gap:0}.photo-viewer-stage>button{position:absolute;bottom:0}.photo-viewer-prev{left:calc(50% - 56px)}.photo-viewer-next{right:calc(50% - 56px)}#photo-viewer-image{width:100%}#photo-viewer-caption{font-size:14px;padding:15px 20px 22px;padding-bottom:max(22px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.work-photo img{transition:none}.work-photo:hover img{transform:none}}
@media print{.works-section,.portfolio-gallery,.work-videos,.photo-viewer{display:none!important}}
