/* Adapted from Whitespace: project-box cover/hover and gallery view-link.
   Native aspect ratios are retained; interactions are keyboard and touch compatible. */
.christmas-gallery,.portfolio-grid{display:block;columns:3;column-gap:30px}.christmas-gallery .photo,.portfolio-grid .photo{display:inline-block;width:100%;aspect-ratio:auto;height:auto;padding:0;margin:0 0 30px;break-inside:avoid;overflow:visible;vertical-align:top}.portfolio-grid .extra-photo{display:none}.portfolio-grid.expanded .extra-photo{display:inline-block}
.christmas-gallery .photo .photo-frame,.portfolio-grid .photo .photo-frame{display:block;position:relative;inset:auto;overflow:hidden;padding:0;margin:0;background:#eeeae3;line-height:0}.christmas-gallery .photo img,.portfolio-grid .photo img{width:100%;height:auto;aspect-ratio:auto;object-fit:contain;display:block;filter:none;transition:transform .65s ease}.photo .photo-frame .photo-overlay{display:block;position:absolute;inset:0;padding:0;line-height:1.4;color:white;background:linear-gradient(to bottom,#00000005 0%,#00000024 50%,#00000090 100%);opacity:0;transition:opacity .35s ease;pointer-events:none;text-shadow:none}.photo .photo-overlay .zoom-mark{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:0;color:#e9c982;font:300 36px/1 Arial,sans-serif;letter-spacing:0;text-transform:none;background:transparent}.photo .photo-overlay .photo-title{display:block;position:absolute;left:6%;right:6%;bottom:6%;padding:0;font:500 14px/1.5 'Raleway',Arial,sans-serif;letter-spacing:.07em;text-transform:uppercase;transform:translateY(8px);transition:transform .35s ease;background:transparent;text-shadow:none}.photo:focus-visible .photo-overlay{opacity:1}.photo:focus-visible .photo-title{transform:none}
@media(hover:hover) and (pointer:fine){.photo:hover img{transform:scale(1.025);filter:none}.photo:hover .photo-overlay{opacity:1}.photo:hover .photo-title{transform:translateY(0)}}
@media(hover:none){.photo .photo-frame .photo-overlay{opacity:1;background:linear-gradient(transparent 65%,#00000066)}.photo .photo-overlay .zoom-mark{display:none}.photo .photo-overlay .photo-title{font-size:12px;letter-spacing:.03em;transform:none}}
@media(max-width:650px){.christmas-gallery,.portfolio-grid{columns:2;column-gap:14px}.christmas-gallery .photo,.portfolio-grid .photo{margin-bottom:14px}.photo .photo-overlay .photo-title{font-size:12px;letter-spacing:.025em}.gallery-section .section-head{margin-bottom:35px}.lightbox-bar{padding:15px 10px}#large-photo{touch-action:pan-y pinch-zoom}}
@media(prefers-reduced-motion:reduce){.photo img,.photo .photo-overlay,.photo .photo-title{transition:none}.photo:hover img{transform:none}}

/* TechFolio portfolio-6: compact gutters, rounded images, floating caption,
   category controls and enlarged photo navigation adapted to this brand. */
.gallery-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;margin:0 0 32px}.gallery-filters[hidden]{display:none}.gallery-filters button{appearance:none;border:0;border-bottom:1px solid transparent;background:transparent;color:#686963;padding:10px 0;font:500 14px/1.5 'Raleway',sans-serif;cursor:pointer}.gallery-filters button[aria-pressed="true"]{color:#173b32;border-color:#ad8141}.gallery-filters button:focus-visible{outline:2px solid #ad8141;outline-offset:5px}
.portfolio-grid{column-gap:16px}.portfolio-grid .photo{margin-bottom:16px}.portfolio-grid .photo .photo-frame{border-radius:6px}.portfolio-grid .photo .photo-frame .photo-overlay{background:transparent}.portfolio-grid .photo .photo-overlay .photo-title{left:14px;right:14px;bottom:14px;padding:15px 54px 15px 17px;background:#fffffff2;border-radius:4px;color:#173b32;font-size:14px;letter-spacing:.02em;text-transform:none;box-shadow:0 3px 18px #00000015;transform:translateY(12px)}.portfolio-grid .photo .photo-overlay .zoom-mark{z-index:1;top:auto;left:auto;right:25px;bottom:24px;width:32px;height:32px;border-radius:50%;background:#173b32;color:#e9c982;font:300 25px/32px Arial;text-align:center;transform:none}.portfolio-grid .photo:focus-visible .photo-title{transform:none}
@media(hover:hover) and (pointer:fine){.portfolio-grid .photo:hover img{transform:scale(1.045)}.portfolio-grid .photo:hover .photo-title{transform:none}}
@media(hover:none){.portfolio-grid .photo .photo-frame .photo-overlay{opacity:1;background:linear-gradient(transparent 70%,#00000055)}.portfolio-grid .photo .photo-overlay .photo-title{left:8px;right:8px;bottom:8px;padding:7px 9px;font-size:12px;transform:none;background:#fffffff0}.portfolio-grid .photo .photo-overlay .zoom-mark{display:none}}
@media(max-width:650px){.portfolio-grid{column-gap:12px}.portfolio-grid .photo{margin-bottom:12px}.gallery-filters{gap:4px 18px;margin-bottom:24px}}
@media(prefers-reduced-motion:reduce){.portfolio-grid .photo:hover img{transform:none}}

/* Enlarged photo viewer from TechFolio: side controls and slide transitions. */
.glightbox-container .goverlay{background:rgba(8,12,10,.97)}.glightbox-container .gclose,.glightbox-container .gnext,.glightbox-container .gprev{background:rgba(255,255,255,.10);border-radius:50%;width:44px;height:44px;color:#fff}.glightbox-container .gclose:hover,.glightbox-container .gnext:hover,.glightbox-container .gprev:hover{background:rgba(255,255,255,.22)}.glightbox-container .gclose:focus-visible,.glightbox-container .gnext:focus-visible,.glightbox-container .gprev:focus-visible{outline:2px solid #e9c982;outline-offset:4px}.glightbox-container .gslide-image img{max-height:90vh}.glightbox-container .gslide-image img[style]{object-fit:contain}
@media(max-width:650px){.glightbox-container .gnext{right:8px}.glightbox-container .gprev{left:8px}.glightbox-container .gclose{right:10px;top:10px}}
@media(prefers-reduced-motion:reduce){.glightbox-container *{animation-duration:.01ms!important;transition-duration:.01ms!important}}
