.gallery-page { background:var(--bg); }
.gallery-page main, .gallery-page section, .gallery-page .wrap { min-width:0; }
.gallery-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; }
.gallery-intro { background:var(--ink);color:#fff;padding:65px 0 54px;overflow:hidden; }
.gallery-intro .eyebrow { color:#fff; }
.gallery-intro-row { display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.65fr);gap:80px;align-items:end;margin-top:24px; }
.gallery-intro h1 { font-size:clamp(36px,5.8vw,78px);font-weight:500;line-height:1.18;letter-spacing:-.065em;animation:gallery-enter .7s var(--ease) both; }
.gallery-intro p { color:#c5c5c5;font-size:19px;max-width:380px;padding-bottom:5px;animation:gallery-enter .7s .12s var(--ease) both; }
.gallery-workspace { padding:0 0 80px; }
.gallery-tabs { display:flex;gap:36px;border-bottom:1px solid #c9c9c9; }
.gallery-tabs button { min-height:78px;padding:17px 0;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;background:none;font-size:16px;line-height:1.4;font-weight:800;transition:border-color .2s,color .2s; }
.gallery-tabs button[aria-selected=true] { border-bottom-color:var(--orange);color:#a3340f; }
.gallery-toolbar { display:flex;justify-content:space-between;align-items:center;gap:25px;padding:28px 0 34px; }
.gallery-filters { display:flex;flex-wrap:wrap;gap:8px; }
.gallery-filters button { min-height:44px;border:1px solid #bbb;border-radius:4px;background:transparent;padding:10px 15px;font-size:12px;line-height:1.4;font-weight:800; }
.gallery-filters button[aria-pressed=true] { background:var(--ink);border-color:var(--ink);color:#fff; }
.gallery-filters button:hover { border-color:var(--ink); }
.gallery-toolbar>p { font-size:12px;white-space:nowrap; }
.gallery-loading { padding:50px 0;font-size:17px; }
.gallery-loading a { text-decoration:underline; }
.gallery-loading button { border:0;border-bottom:1px solid var(--ink);background:none;padding:8px 0;min-height:44px; }
.gallery-compare-heading { display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:22px; }
.gallery-compare-heading h3 { font-size:25px;font-weight:400;line-height:1.4;max-width:850px; }
.gallery-compare-controls { display:flex;align-items:center;gap:15px;flex-shrink:0; }
.gallery-compare-controls>span { font-size:12px;min-width:42px;text-align:center; }
.gallery-arrow { display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #999;border-radius:4px;background:transparent;font-size:25px;line-height:1; }
.gallery-arrow:hover { background:var(--orange);border-color:var(--orange);color:var(--ink); }
.gallery-compare { --reveal:50%;position:relative;aspect-ratio:16/9;overflow:hidden;background:#d9d9d9;isolation:isolate; }
.gallery-compare-image-layer { position:absolute;inset:0;pointer-events:none; }
.gallery-compare-image-layer>img { width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none; }
.gallery-compare .gallery-after-layer { clip-path:inset(0 0 0 var(--reveal)); }
.gallery-compare:focus-within { outline:3px solid var(--orange);outline-offset:5px; }
.gallery-compare-line { position:absolute;inset:0 auto 0 var(--reveal);width:2px;background:#fff;box-shadow:0 0 6px #0007;pointer-events:none;transform:translateX(-1px); }
.gallery-compare-line:after { content:'↔';display:flex;align-items:center;justify-content:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;background:var(--orange);color:var(--ink);border:2px solid #fff;border-radius:50%;font-size:23px;box-shadow:0 2px 12px #0004; }
.gallery-image-label { position:absolute;top:18px;padding:7px 12px;background:#1d1d1de6;color:#fff;font-size:12px;font-weight:800;pointer-events:none; }
.gallery-image-label.before { left:18px; }.gallery-image-label.after { right:18px; }
.gallery-compare-range { position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y; }
.gallery-compare-foot { display:flex;justify-content:space-between;align-items:center;gap:25px;margin:13px 0 34px; }
.gallery-compare-foot p { font-size:12px; }
.gallery-compare-foot>div { display:flex;gap:20px; }
.gallery-compare-foot button { border:0;background:none;border-bottom:1px solid #777;min-height:44px;padding:8px 0;font-size:12px;font-weight:800; }
.gallery-index-heading { display:flex;justify-content:space-between;gap:30px;align-items:center;border-top:1px solid #c9c9c9;padding-top:30px;margin:0 0 22px; }
.gallery-index-heading h3 { font-size:18px;font-weight:500; }
.gallery-index-heading p { font-size:12px; }
.gallery-pair-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 22px; }
.gallery-pair { padding:0;border:0;background:transparent;text-align:left;min-width:0; }
.gallery-pair-images { position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;aspect-ratio:16/9;background:#ddd;overflow:hidden;outline:2px solid transparent;outline-offset:4px;transition:outline-color .2s; }
.gallery-pair[aria-pressed=true] .gallery-pair-images { outline-color:var(--orange); }
.gallery-pair-images img { width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease); }
.gallery-pair:hover .gallery-pair-images img { transform:scale(1.035); }
.gallery-pair-title { display:block;font-size:13px;font-weight:800;line-height:1.5;padding-top:13px;min-height:50px; }
.gallery-section-copy { max-width:760px;font-size:17px;margin:0 0 30px; }
.gallery-image-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 25px; }
.gallery-work-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 30px; }
.gallery-tile { border:0;background:none;min-width:0;padding:0;text-align:left; }
.gallery-tile-media { position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#ddd; }
.gallery-tile-media>img { width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease); }
.gallery-tile:hover .gallery-tile-media>img { transform:scale(1.035); }
.gallery-enlarge { position:absolute;right:12px;bottom:12px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#fff;color:var(--ink);font-size:21px;border-radius:50%; }
.gallery-tile-title { display:block;font-size:15px;line-height:1.5;font-weight:800;padding-top:14px;min-height:44px; }
.gallery-work-grid .gallery-tile-title { font-size:17px; }
.gallery-empty { border-top:1px solid #ccc;padding:35px 0;font-size:17px; }
.gallery-next-step { background:var(--orange);padding:55px 0; }
.gallery-next-step>.wrap { display:flex;justify-content:space-between;align-items:center;gap:40px; }
.gallery-next-step .eyebrow:before { background:var(--ink); }
.gallery-next-step h2 { font-size:34px;font-weight:500;margin:15px 0; }
.gallery-next-step p { color:var(--ink);font-size:16px; }
.gallery-next-step .button.primary { flex-shrink:0;background:var(--ink);border-color:var(--ink);color:#fff; }
.gallery-lightbox { width:min(1400px,calc(100% - 40px));max-width:none;max-height:calc(100svh - 40px);padding:20px;background:var(--ink);color:#fff;border:0;border-radius:5px;overflow:auto; }
.gallery-lightbox::backdrop { background:#000d;backdrop-filter:blur(4px); }
.gallery-lightbox-top { display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:16px; }
.gallery-lightbox-top h2 { font-size:20px;line-height:1.5;letter-spacing:-.03em; }
.gallery-lightbox-close { min-width:48px;min-height:48px;padding:0;border:1px solid #777;background:none;color:#fff;font-size:32px;line-height:1;border-radius:4px; }
.gallery-lightbox>img { width:100%;height:min(70svh,900px);object-fit:contain;background:#121212; }
.gallery-lightbox-bottom { display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:16px; }
.gallery-lightbox-bottom>span { font-size:12px;color:#ccc; }
.gallery-lightbox-bottom>div { display:flex;gap:10px; }
.gallery-lightbox .gallery-arrow { color:#fff;border-color:#777; }
.gallery-lightbox .gallery-arrow:hover { color:var(--ink); }
@keyframes gallery-enter { from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none} }
@media(max-width:1050px) { .gallery-intro-row{gap:45px}.gallery-intro p{font-size:17px}.gallery-toolbar{align-items:flex-start}.gallery-pair-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-next-step>.wrap{display:block}.gallery-next-step .button{margin-top:25px}.gallery-work-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media(max-width:640px) {
  .gallery-intro{padding:38px 0 32px}.gallery-intro-row{grid-template-columns:minmax(0,1fr);gap:20px;margin-top:20px}.gallery-intro h1{font-size:40px}.gallery-intro p{font-size:16px;max-width:350px;padding:0}
  .gallery-tabs{gap:0;justify-content:space-between}.gallery-tabs button{min-height:72px;padding:13px 7px;font-size:12px;max-width:34%;white-space:normal}.gallery-tabs button:first-child{padding-left:0}.gallery-tabs button:last-child{padding-right:0}
  .gallery-toolbar{display:block;padding:22px 0 27px}.gallery-filters{gap:7px}.gallery-filters button{padding:10px 12px;font-size:11px;min-height:44px}.gallery-toolbar>p{margin-top:17px;font-size:12px}
  .gallery-compare-heading{align-items:flex-start;gap:17px;flex-direction:column;margin-bottom:18px}.gallery-compare-heading h3{font-size:22px;line-height:1.45}.gallery-compare-controls{width:100%;justify-content:space-between}.gallery-arrow{width:46px;height:46px}.gallery-compare-controls>span{margin-left:auto;margin-right:5px}
  .gallery-compare{aspect-ratio:4/3;margin:0 -22px}.gallery-compare-image-layer>img{object-fit:cover}.gallery-image-label{top:12px;font-size:11px;padding:6px 10px}.gallery-image-label.before{left:12px}.gallery-image-label.after{right:12px}.gallery-compare-line:after{width:46px;height:46px}
  .gallery-compare-foot{align-items:flex-start;flex-direction:column;gap:5px;margin:15px 0 25px}.gallery-compare-foot>div{justify-content:space-between;width:100%;gap:20px}.gallery-compare-foot p{font-size:12px}.gallery-compare-foot button{font-size:12px}
  .gallery-index-heading{padding-top:25px;margin-bottom:20px;display:block}.gallery-index-heading h3{font-size:17px}.gallery-index-heading p{margin-top:8px}.gallery-pair-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 15px}.gallery-pair-title{font-size:12px;padding-top:12px;min-height:48px}
  .gallery-section-copy{font-size:15px;margin-bottom:24px}.gallery-image-grid,.gallery-work-grid{grid-template-columns:minmax(0,1fr);gap:30px}.gallery-tile-title,.gallery-work-grid .gallery-tile-title{font-size:15px}.gallery-tile-media{aspect-ratio:4/3}.gallery-workspace{padding-bottom:50px}
  .gallery-next-step{padding:40px 0}.gallery-next-step h2{font-size:29px}.gallery-next-step p{font-size:15px}.gallery-next-step .button{width:100%;justify-content:space-between;font-size:13px;min-height:52px}
  .gallery-lightbox{width:calc(100% - 20px);max-height:calc(100svh - 20px);padding:15px}.gallery-lightbox-top{gap:15px;margin-bottom:12px}.gallery-lightbox-top h2{font-size:15px}.gallery-lightbox>img{height:62svh}.gallery-lightbox-close{min-width:44px;min-height:44px}.gallery-lightbox-bottom{margin-top:12px}
}
@media(prefers-reduced-motion:reduce) { .gallery-page *, .gallery-page *:before, .gallery-page *:after{animation:none!important;transition:none!important} }
