.photo-section{padding-block:var(--space-3xl);scroll-margin-top:var(--header-height)}
.photo-section-heading{display:flex;justify-content:space-between;align-items:end;gap:var(--space-xl);margin-bottom:var(--space-xl)}
.photo-section-heading h2{font-family:GarageUI,Onest,sans-serif;font-size:clamp(30px,3vw,42px);font-weight:600;line-height:1.15;letter-spacing:-.02em;margin:0;text-wrap:balance}
.photo-section-heading p{font-size:15px;line-height:1.65;color:#cad7e6;margin:0}
.photo-all{display:inline-flex;align-items:center;gap:var(--space-xl);min-height:44px;white-space:nowrap;text-decoration:none;font-size:14px;flex:none}
.photo-all>span{color:#ff946d;font-size:21px}.photo-all:hover{color:#ff946d}
.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2xl) var(--space-xl);align-items:start}
.photo-section .photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg)}
.photo-item{margin:0;min-width:0}.photo-open{display:block;text-decoration:none}
.photo-crop{position:relative;width:100%;aspect-ratio:3/2;overflow:hidden;background:#142337}
.photo-crop>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transition:transform 260ms cubic-bezier(.22,1,.36,1)}
.photo-crop>img[data-photo-focus=right]{object-position:100% 50%}
.photo-open:hover .work-photo{transform:scale(1.025)}
.photo-crop::after,.photo-frame::after{position:absolute;inset:0;content:"";box-shadow:inset 0 0 0 1px #9bbcff20;pointer-events:none}
.photo-expand{position:absolute;z-index:1;right:var(--space-md);bottom:var(--space-md);display:grid;place-items:center;width:44px;height:44px;background:#07111ee6;color:#f1f6fc;font-size:23px;line-height:1;border:1px solid #e5edf34d}
.photo-item figcaption{font-size:14px;line-height:1.5;color:#d6e0ec;margin-top:var(--space-md)}
.photo-dialog{width:min(1100px,calc(100vw - 32px),calc((100svh - 144px)*1.5));max-height:calc(100svh - 24px);padding:0;margin:auto;border:0;background:#0c1b2b;color:#eef4fb;overflow:auto;overscroll-behavior:contain;font-family:Onest,Arial,sans-serif}
.photo-dialog::backdrop{background:#020913ed}
.photo-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:var(--space-sm) var(--space-lg)}
.photo-dialog-top p{font-size:13px;line-height:1.5;color:#c2d1e2;margin:0}
.photo-close{width:44px;height:44px;border:0;background:transparent;color:var(--ink);font-size:30px;line-height:1;cursor:pointer;flex:none}
.photo-close:hover{color:#ff946d}
.photo-frame{position:relative;width:100%;aspect-ratio:3/2;background:#07111e;overflow:hidden}
.photo-frame>img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.photo-load-status{position:absolute;z-index:1;left:var(--space-lg);bottom:var(--space-lg);right:var(--space-lg);font-size:13px;line-height:1.6;margin:0;padding:var(--space-md);background:#07111ef0;color:#e4edf7}
.photo-dialog-bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--space-xl);padding:var(--space-sm) var(--space-lg)}
.photo-dialog-bottom>p{font-size:14px;line-height:1.5;margin:0}
.photo-pagination{display:flex;align-items:center;gap:var(--space-md);flex:none}
.photo-pagination button{width:44px;height:44px;border:0;background:transparent;color:#f1f6fc;font-size:30px;line-height:1;cursor:pointer}
.photo-pagination button:hover{color:#ff946d}.photo-pagination span{min-width:52px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:#c7d6e8}
.photo-page-intro{font-size:16px;line-height:1.7;color:#c7d6e8;margin:0 0 var(--space-2xl);max-width:60ch}
.photo-more{margin-top:var(--space-lg)}
.photo-album-nav{display:flex;gap:var(--space-2xl);flex-wrap:wrap;margin-bottom:var(--space-2xl)}
.photo-album-nav a{display:flex;align-items:center;min-height:44px;font-size:15px;color:#f0f5fb;text-decoration-color:#ff835b;text-underline-offset:6px}
.photo-album-group{scroll-margin-top:calc(var(--header-height) + 24px);margin-bottom:var(--space-3xl)}
.photo-album-group h2{font-family:GarageUI,Onest,sans-serif;font-size:30px;line-height:1.2;font-weight:550;letter-spacing:-.02em;margin:0 0 var(--space-xl)}
.photo-album-group>p{font-size:14px;line-height:1.6;color:#c4d3e4;margin:calc(-1 * var(--space-md)) 0 var(--space-xl)}
@media(max-width:700px){.photo-section{padding-block:var(--space-2xl)}.photo-section-heading{display:block;margin-bottom:var(--space-lg)}.photo-section-heading h2{font-size:30px}.photo-section-heading p{font-size:13px}.photo-all{margin-top:var(--space-sm);font-size:13px}.photo-grid{grid-template-columns:1fr;gap:var(--space-xl)}.photo-item figcaption{font-size:13px;margin-top:var(--space-sm)}.photo-expand{right:var(--space-sm);bottom:var(--space-sm)}.photo-dialog{width:calc(100vw - 24px);max-height:calc(100svh - 24px)}.photo-dialog-top{padding:var(--space-xs) var(--space-sm);gap:var(--space-sm)}.photo-dialog-top p{font-size:11px}.photo-dialog-bottom{align-items:start;gap:var(--space-sm);padding:var(--space-sm)}.photo-dialog-bottom>p{font-size:12px;padding-top:var(--space-sm)}.photo-pagination{gap:var(--space-xs)}.photo-pagination span{min-width:42px;font-size:11px}.photo-pagination button{width:40px;min-height:44px}.photo-page-intro{font-size:14px;margin-bottom:var(--space-xl)}}
@media(prefers-reduced-motion:reduce){.photo-crop>img{transition:none}}
@media(max-width:700px){.photo-section .photo-grid{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-bottom:8px;scrollbar-width:thin;scrollbar-color:#778fa44d transparent}.photo-section .photo-item{flex:0 0 84%;scroll-snap-align:start}.photo-section .photo-item figcaption{font-size:12px}.photo-section .photo-expand{width:36px;height:36px;font-size:20px}.photo-section .photo-more{margin-top:8px}}
