.gallery-page{overflow-x:clip;background:var(--ivory)}.gallery-filters{width:min(var(--max),calc(100% - 40px));margin:0 auto;padding:8px 0 12px}.gallery-filters p{margin:0 0 10px;color:var(--teal);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.gallery-filters div{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px}.gallery-filters button{flex:none;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:white;color:var(--navy);font-weight:600;transition:background-color .3s var(--ease-soft),color .3s var(--ease-soft),border-color .3s var(--ease-soft),transform .3s var(--ease-out)}.gallery-filters button:hover{border-color:var(--navy);transform:translateY(-1px)}.gallery-filters button.is-active{background:var(--navy);color:white;border-color:var(--navy)}.gallery-block{padding:56px 0}.gallery-block-consultation,.gallery-block-equipment,.gallery-block-inside{background:white}.gallery-block h2,.gallery-journey h2{font-size:clamp(2rem,4vw,3.1rem);color:var(--navy)}.gallery-copy{margin-top:12px;max-width:42rem;color:var(--muted)}.gallery-layout{margin-top:28px;display:grid;grid-gap:16px;gap:16px}.gallery-item{position:relative;margin:0;min-width:0;border-radius:18px;overflow:hidden;background:var(--soft)}.gallery-item-btn{position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.gallery-item-img{object-fit:cover;object-position:center 30%;transform-origin:center 30%;transition:transform 1.1s var(--ease-out)}.gallery-item:hover .gallery-item-img{transform:scale(1.02)}.gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(11,23,48,.62));opacity:.85;transition:opacity .4s ease;pointer-events:none}.gallery-item:hover:after{opacity:1}.gallery-item figcaption{left:20px;right:72px;bottom:16px;color:white;font-family:var(--serif);font-size:1.3rem;line-height:1.2;transition:transform .45s var(--ease-out)}.gallery-item figcaption,.gallery-item-zoom{position:absolute;z-index:1;pointer-events:none}.gallery-item-zoom{right:16px;bottom:14px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.94);color:var(--navy);opacity:0;transform:scale(.8);transition:opacity .3s ease,transform .4s var(--ease-out)}.gallery-item-zoom svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.gallery-item-btn:focus-visible .gallery-item-zoom,.gallery-item:hover .gallery-item-zoom{opacity:1;transform:none}.gallery-item:hover figcaption{transform:translateY(-2px)}.gallery-item-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px;border-radius:18px}@media (hover:none){.gallery-item-zoom{opacity:1;transform:none}.gallery-item:hover .gallery-item-img,.gallery-named-btn:hover,.gallery-named-btn:hover .gallery-named-img{transform:none}.gallery-named-btn:hover:after{opacity:0}.gallery-named-btn:hover{box-shadow:0 1px 2px rgba(11,23,48,.06),0 12px 28px -18px rgba(11,23,48,.35)}}.gallery-layout-1{grid-template-columns:1fr}.gallery-layout-1 .gallery-item{aspect-ratio:16/8}.gallery-layout-3{grid-template-columns:1.4fr 1fr;grid-template-rows:repeat(2,270px)}.gallery-layout-3 .gallery-item:first-child{grid-row:span 2}.gallery-named{list-style:none;margin:32px 0 0;padding:0;column-count:3;column-gap:20px}.gallery-named li{page-break-inside:avoid;break-inside:avoid;margin-bottom:32px}.gallery-named-item{margin:0}.gallery-named-btn{position:relative;display:block;width:100%;padding:0;border:0;border-radius:18px;overflow:hidden;background:var(--soft);cursor:zoom-in;box-shadow:0 1px 2px rgba(11,23,48,.06),0 12px 28px -18px rgba(11,23,48,.35);transition:box-shadow .5s var(--ease-out),transform .5s var(--ease-out)}.gallery-named-img{display:block;width:100%;height:auto;transform-origin:center 35%;transition:transform .8s var(--ease-out)}.gallery-named-btn:after{content:"";position:absolute;inset:0;background:rgba(11,23,48,.08);opacity:0;transition:opacity .4s ease;pointer-events:none}.gallery-named-btn:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(11,23,48,.05),0 16px 30px -20px rgba(11,23,48,.32)}.gallery-named-btn:hover:after{opacity:1}.gallery-named-btn:hover .gallery-named-img{transform:scale(1.03)}.gallery-named-btn .gallery-item-zoom{z-index:1}.gallery-named-btn:focus-visible .gallery-item-zoom,.gallery-named-btn:hover .gallery-item-zoom{opacity:1;transform:none}.gallery-named-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px;border-radius:18px}.gallery-named figcaption{display:flex;flex-direction:column;gap:4px;padding:14px 4px 0}.gallery-named-title{color:var(--navy);font-family:var(--serif);font-size:1.3rem;line-height:1.25}.gallery-named-detail{color:var(--teal);font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.gallery-block-inside .gallery-named{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:32px 20px;gap:32px 20px;columns:auto}.gallery-block-inside .gallery-named li{min-width:0;margin-bottom:0}.gallery-block-inside .gallery-named-btn{box-shadow:none}.gallery-block-inside .gallery-named-img{aspect-ratio:4/3;object-fit:contain;background:var(--soft)}.gallery-journey{padding:56px 0}.gallery-journey ol{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:16px;gap:16px}.gallery-journey a{display:block;text-decoration:none;color:var(--navy);font-weight:650}.gallery-journey-thumb{position:relative;display:block;height:160px;overflow:hidden;border-radius:14px;margin-bottom:10px;background:var(--soft)}.gallery-journey-img{object-fit:cover;object-position:center 32%;transform-origin:center 32%;transition:transform .9s var(--ease-out)}.gallery-journey a:hover .gallery-journey-img{transform:scale(1.02)}.gallery-journey-label{display:flex;align-items:baseline;gap:10px}.gallery-journey-label span{color:var(--teal);font-family:var(--serif);font-size:1.15rem;font-weight:400}.gallery-journey a:hover .gallery-journey-label{color:var(--teal)}.gallery-lightbox{position:fixed;inset:0;z-index:200;background:rgba(11,23,48,.94);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px;padding:24px;overflow:hidden}.gallery-lightbox figure{margin:0;text-align:center;min-width:0}.gallery-lightbox img{max-width:100%;max-height:calc(100vh - 140px);max-height:calc(100dvh - 140px);width:auto;height:auto;object-fit:contain;border-radius:10px}.gallery-lightbox figcaption{color:white;margin-top:12px}.gallery-lightbox figcaption span{display:block;opacity:.7;font-size:.9rem}.gallery-lightbox-close,.gallery-lightbox-nav{width:48px;height:48px;display:grid;place-items:center;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.06);color:white;transition:background-color .25s ease,transform .3s var(--ease-out)}.gallery-lightbox-close:hover,.gallery-lightbox-nav:hover{background:rgba(255,255,255,.18);transform:scale(1.06)}.gallery-lightbox-close svg,.gallery-lightbox-nav svg{width:22px;height:22px}.gallery-lightbox-close{position:absolute;top:16px;right:16px}.gallery-lightbox :focus-visible{outline-color:var(--focus-ring)}@media (prefers-reduced-motion:no-preference){.gallery-lightbox{animation:gallery-fade .25s ease both}.gallery-lightbox img{animation:gallery-zoom .45s var(--ease-out) both}.gallery-lightbox.is-morph img{animation:none}}::view-transition-new(root),::view-transition-old(root){animation-duration:.3s}::view-transition-group(gallery-photo){animation-duration:.45s;animation-timing-function:var(--ease-out)}::view-transition-new(gallery-photo),::view-transition-old(gallery-photo){height:100%}@keyframes gallery-fade{0%{opacity:0}to{opacity:1}}@keyframes gallery-zoom{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@media (max-width:980px){.gallery-journey ol,.gallery-layout-3{grid-template-columns:1fr}.gallery-layout-3{grid-template-rows:none}.gallery-layout-3 .gallery-item:first-child{grid-row:auto}.gallery-layout-1 .gallery-item,.gallery-layout-3 .gallery-item{aspect-ratio:4/3}.gallery-named{column-count:2}.gallery-block-inside .gallery-named{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.gallery-filters{width:min(100% - 32px,var(--max))}.gallery-item figcaption{font-size:1.15rem;left:16px}.gallery-named{column-count:1}.gallery-named li{margin-bottom:28px}.gallery-named-title{font-size:1.2rem}.gallery-block-inside .gallery-named{grid-template-columns:1fr}.gallery-lightbox{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;padding:72px 12px 16px}.gallery-lightbox figure{grid-column:1/-1;grid-row:1}.gallery-lightbox-prev{grid-row:2;justify-self:start}.gallery-lightbox-next{grid-row:2;justify-self:end}}@media (prefers-reduced-motion:reduce){.gallery-filters button,.gallery-item-img,.gallery-journey-img,.gallery-lightbox-close,.gallery-lightbox-nav,.gallery-named-btn,.gallery-named-img{transition:none}.gallery-filters button:hover,.gallery-item:hover .gallery-item-img,.gallery-journey a:hover .gallery-journey-img,.gallery-named-btn:hover,.gallery-named-btn:hover .gallery-named-img{transform:none}}.gallery-block-cases{background:white}.gallery-cases{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:24px;gap:24px}.gallery-case{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--ivory);border:1px solid var(--line);border-radius:var(--radius)}.gallery-case-frame{position:relative;aspect-ratio:4/3;background:var(--soft)}.gallery-case-layer{position:absolute;inset:0}.gallery-case-img{object-fit:cover}.gallery-case-body{display:flex;flex:1 1;flex-direction:column;padding:18px 20px 20px}.gallery-case-meta{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 6px;color:var(--muted);font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.gallery-case-state{display:inline-flex;gap:8px;flex-shrink:0;font-weight:600;letter-spacing:.06em}.gallery-case-state span{opacity:.45;transition:opacity .9s var(--ease-soft),color .9s var(--ease-soft)}.gallery-case-state .is-current{opacity:1;color:var(--teal)}.gallery-case h3{margin:0 0 8px;color:var(--navy);font-family:var(--serif);font-size:1.3rem;font-weight:400;line-height:1.2}.gallery-case-summary{margin:0 0 14px;color:var(--ink);line-height:1.55}.gallery-case-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-top:auto}.gallery-case-link{color:var(--teal);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.gallery-case-link:hover{color:var(--navy)}.gallery-case-toggle{min-height:36px;padding:0 14px;color:var(--navy);font:inherit;font-size:.86rem;font-weight:700;background:white;border:1px solid var(--line);border-radius:999px;cursor:pointer}.gallery-case-link:focus-visible,.gallery-case-toggle:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.gallery-cases-note{margin:28px 0 0;color:var(--muted);font-size:.9rem;line-height:1.55}@media (max-width:980px){.gallery-cases{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}@media (max-width:640px){.gallery-cases{grid-template-columns:minmax(0,1fr)}}.gallery-block-people .gallery-named{columns:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:20px;gap:20px}.gallery-block-people .gallery-named li{margin:0}.gallery-block-people .gallery-named-img{aspect-ratio:4/5;object-fit:cover}@media (max-width:980px){.gallery-block-people .gallery-named{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}}@media (max-width:640px){.gallery-block-people .gallery-named{grid-template-columns:repeat(2,minmax(0,1fr))}}