/* V28: consistent photographic capability cards, original GPU projection, anchored menus. */
.nav-dropdown{position:relative}
.nav-panel,.nav-panel.simple-panel{top:calc(100% + 1px);left:-18px;right:auto;width:330px;max-width:calc(100vw - 48px);margin:0;padding:14px;display:block;border-radius:14px;background:var(--card);box-shadow:0 24px 60px #0003,0 3px 12px #0002}
.nav-panel small{font-size:9px;padding:5px 12px 0;margin-bottom:7px}
.nav-panel a{padding:12px;border-radius:8px;position:relative;padding-right:30px}
.nav-panel a:after{content:'↗';position:absolute;right:13px;top:14px;color:var(--muted);font-size:14px}
.nav-panel strong{font-size:14px;letter-spacing:-.015em;font-weight:500}
.nav-panel a span{font-size:11px;line-height:1.6;margin-top:2px}
.nav-dropdown>button svg{transition:transform .18s}
.nav-dropdown>button[aria-expanded=true] svg{transform:rotate(180deg)}
.gpu-card-media{overflow:hidden;isolation:isolate;background:#111}
.gpu-card-media .gpu-photo-plane{width:152%;height:152%;left:-26%;top:-24%;max-width:none}
.gpu-card-media .gpu-photo-plane>img{max-width:none;filter:saturate(.22) brightness(.74) contrast(1.12)}
.gpu-card-media:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0000 60%,#0009);pointer-events:none}
.gpu-card-caption{position:absolute;inset:auto 22px 15px;display:flex;justify-content:space-between;gap:10px;color:#eee;font-family:'Geist Mono',monospace;font-size:8px;letter-spacing:.09em;z-index:2}

.service-photo-media{position:relative;isolation:isolate;overflow:hidden;background:#111}
.service-photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;filter:saturate(.16) brightness(.78) contrast(1.08);transition:transform .9s cubic-bezier(.2,.65,.3,1),filter .9s}
.service-photo-media:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0000 45%,#0009);pointer-events:none}
.photo-caption{position:absolute;inset:auto 22px 15px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;color:#eee;font-family:'Geist Mono',monospace;font-size:8px;letter-spacing:.09em;z-index:2}
.cloud-photo .service-photo{object-position:44% 50%;filter:saturate(.15) brightness(.86) contrast(1.1)}
.connected-photo .service-photo{object-position:50% 44%}
.education-photo .service-photo{object-position:50% 57%;filter:saturate(.12) brightness(.72) contrast(1.08)}
@media(hover:hover){.service-tile:hover .service-photo{transform:scale(1.035);filter:saturate(.28) brightness(.86) contrast(1.08)}}
.photo-credit{flex-basis:100%;font-size:9px;color:var(--muted);line-height:1.8}
.photo-credit a{text-decoration:underline;text-underline-offset:3px}
.footer-bottom{flex-wrap:wrap}
@media(min-width:901px) and (max-width:1150px){.nav-wrap{gap:22px}.desktop-nav{gap:18px}.nav-actions{gap:5px}.nav-contact{display:none}}
@media(max-width:640px){.gpu-card-media .gpu-photo-plane{width:150%;height:150%;left:-25%;top:-23%}.gpu-card-caption,.photo-caption{inset:auto 14px 13px;font-size:6px;letter-spacing:.06em}.cloud-photo .photo-caption{display:none}.connected-photo .photo-caption,.education-photo .photo-caption{font-size:6px}.photo-credit{font-size:8px}}
@media(prefers-reduced-motion:reduce){.service-photo{transition:none!important}.service-tile:hover .service-photo{transform:none}}
