/* Portraits use the club's navy and lime palette; full-size photos retain their colour. */
.team-gallery{display:block}
.team-gallery .team-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:48px}
.team-gallery .team-heading h2{font-size:clamp(48px,5.2vw,78px)}
.team-gallery .team-heading p{color:var(--muted);font-size:16px;line-height:1.8;margin:25px 0 0}
.team-gallery .team-heading .gallery-hint{font-size:14px;flex-shrink:0;text-align:right;padding-bottom:5px}
.portrait-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:38px 22px}
.portrait-card{min-width:0}
.portrait-open{display:block}
.portrait-image{position:relative;display:block;aspect-ratio:1;background:transparent;border:0;isolation:isolate}
.portrait-image img{width:100%;height:100%;object-fit:contain;clip-path:circle(49.5% at 50% 50%);filter:grayscale(1) contrast(1.04);opacity:.88;transition:filter .35s,opacity .35s,transform .45s cubic-bezier(.2,.7,.2,1)}
.portrait-image:after{content:'';position:absolute;inset:0;clip-path:circle(49.5% at 50% 50%);background:#183e51;mix-blend-mode:color;opacity:.35;pointer-events:none;transition:opacity .35s}
.portrait-expand{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--bg);color:var(--accent);font-size:24px;z-index:1;border:1px solid var(--line)}
.portrait-open:hover img,.portrait-open:focus-visible img{filter:none;opacity:1;transform:scale(1.025)}
.portrait-open:hover .portrait-image:after,.portrait-open:focus-visible .portrait-image:after{opacity:0}
.portrait-open:hover .portrait-expand,.portrait-open:focus-visible .portrait-expand{background:var(--accent);color:var(--bg)}
.portrait-card h3{font:700 clamp(23px,2.1vw,31px)/1.12 Barlow,Impact,sans-serif;margin:16px 0 12px;overflow-wrap:anywhere}
.portrait-info{display:flex;justify-content:space-between;gap:8px;font-size:12px;line-height:1.7;color:var(--muted)}
.portrait-info>span{color:var(--accent)}
.portrait-info a:hover{color:var(--text);text-decoration:underline;text-underline-offset:4px}
.player-without-photo{display:flex;gap:20px;align-items:center;border-block:1px solid var(--line);padding:22px 0;margin-top:45px;color:var(--muted);font-size:14px}
.initials{width:62px;height:62px;background:var(--surface);display:grid;place-items:center;flex-shrink:0;font:700 30px Barlow;color:var(--muted)}
.player-without-photo h3{font:700 27px Barlow;color:var(--text);margin:0 0 5px}
.player-without-photo p{font-size:14px;margin:0}
.player-without-photo>div{flex:1}
.player-without-photo>a{margin-left:16px}
html.portrait-is-open{overflow:hidden;scrollbar-gutter:stable}
.portrait-viewer{position:fixed;inset:0;margin:0;border:0;padding:24px 36px 16px;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;background:#061521;color:var(--text);overflow:auto;overscroll-behavior:contain}
.portrait-viewer::backdrop{background:#061521}
.portrait-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:16px}
.viewer-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:48px}
.viewer-brand{font-weight:700;font-size:16px;letter-spacing:.5px}
.viewer-brand>span{font-weight:400;font-size:12px;letter-spacing:1px;color:var(--muted);margin-left:12px}
.viewer-toolbar>div{display:flex;gap:12px}
.portrait-viewer button{min-height:48px;min-width:48px;border:1px solid var(--line);background:var(--surface);color:var(--text);display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:10px 18px;font-size:14px;flex-shrink:0}
.portrait-viewer button[hidden]{display:none}
.portrait-viewer button:hover{background:var(--accent);color:var(--bg)}
.portrait-viewer .viewer-close>span{font-size:27px;line-height:1}
.viewer-stage{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;gap:24px;align-items:center;min-height:0}
.viewer-picture{height:100%;min-height:0;position:relative;display:flex;justify-content:center;align-items:center;touch-action:pan-y pinch-zoom}
.viewer-image{width:auto;height:auto;max-width:100%;max-height:100%;aspect-ratio:1;clip-path:circle(49.5% at 50% 50%);object-fit:contain;min-height:0;user-select:none;-webkit-user-drag:none}
.portrait-image img[src$="fabian-verhenne-wide.png"],.viewer-image[src$="fabian-verhenne-wide.png"]{clip-path:circle(48.5% at 50% 50%)}
.viewer-image.loading{opacity:.3}
.viewer-error{position:absolute;inset:0;align-content:center;text-align:center;padding:24px;background:var(--bg);font-size:16px;line-height:1.8}
.viewer-error[hidden]{display:none}
.viewer-original{display:block;text-decoration:underline;text-underline-offset:5px;color:var(--accent)}
.portrait-viewer .viewer-prev,.portrait-viewer .viewer-next{font-size:26px;padding:8px;width:56px;height:56px}
.viewer-caption{display:flex;justify-content:space-between;align-items:center;gap:24px;width:min(100%,850px);margin-inline:auto}
.viewer-caption h2{font:700 clamp(28px,3vw,42px)/1.1 Barlow;margin:0}
.viewer-caption p{font-size:14px;line-height:1.5;color:var(--muted);margin:8px 0 0}
.viewer-caption .viewer-count{font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--accent)}
#portrait-help{text-align:center;color:var(--muted);font-size:12px;margin:0;line-height:1.6}
@media(prefers-reduced-motion:no-preference){.portrait-viewer[open]{animation:viewer-in .2s ease-out}@keyframes viewer-in{from{opacity:0}to{opacity:1}}}
@media(max-width:1100px){.portrait-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 20px}.portrait-card h3{font-size:28px}.team-gallery .team-heading{gap:25px}.team-gallery .team-heading .gallery-hint{max-width:170px}}
@media(max-width:767px){.team-gallery .team-heading{display:block;margin-bottom:28px}.team-gallery .team-heading h2{font-size:clamp(43px,9vw,58px)}.team-gallery .team-heading p{max-width:none;margin-top:22px}.team-gallery .team-heading .gallery-hint{text-align:left;max-width:none;font-size:14px;margin-top:18px}.gallery-hint br{display:none}.portrait-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 14px}.portrait-card h3{font-size:25px;margin-top:13px}.portrait-info{flex-direction:column;gap:2px;font-size:12px}.portrait-expand{width:30px;height:30px;font-size:22px;bottom:7px;right:7px}.player-without-photo{gap:14px;flex-wrap:wrap;margin-top:30px}.player-without-photo>div{flex-basis:calc(100% - 90px)}.player-without-photo>span:not(.initials){margin-left:76px}.player-without-photo>a{margin-left:auto}.player-without-photo p{font-size:12px}.portrait-viewer{padding:16px 16px max(16px,env(safe-area-inset-bottom));padding-top:max(16px,env(safe-area-inset-top))}.portrait-viewer[open]{gap:16px}.viewer-brand{font-size:14px}.viewer-brand>span{display:none}.viewer-toolbar{gap:8px}.viewer-toolbar>div{gap:8px}.portrait-viewer button{padding:8px 12px;font-size:12px;gap:8px}.viewer-stage{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 48px;gap:12px;position:relative}.viewer-picture{grid-column:1;grid-row:1}.portrait-viewer .viewer-prev,.portrait-viewer .viewer-next{grid-column:1;grid-row:2;width:48px;height:48px}.viewer-prev{justify-self:start}.viewer-next{justify-self:end}.viewer-caption h2{font-size:31px}.viewer-caption p{font-size:12px}.viewer-caption .viewer-count{font-size:14px}#portrait-help{font-size:12px;max-width:270px;justify-self:center}}
@media(max-width:380px){.viewer-toolbar{flex-wrap:wrap}.viewer-brand{font-size:12px}.viewer-toolbar .viewer-fullscreen{max-width:98px;padding-inline:8px;line-height:1.3}.viewer-toolbar .viewer-close{padding-inline:10px}.viewer-caption h2{font-size:27px}}
@media(max-height:540px) and (orientation:landscape){.portrait-viewer{padding:12px 24px}.portrait-viewer[open]{grid-template-rows:44px minmax(0,1fr) auto;gap:8px}.viewer-stage{grid-template-columns:48px minmax(0,1fr) 48px;grid-template-rows:minmax(0,1fr)}.viewer-picture{grid-column:2}.portrait-viewer .viewer-prev{grid-column:1;grid-row:1}.portrait-viewer .viewer-next{grid-column:3;grid-row:1}.viewer-caption h2{font-size:25px}.viewer-caption p{margin-top:3px}#portrait-help{display:none}.viewer-toolbar{min-height:44px}.portrait-viewer button{min-height:44px}}
