/* Profile photo frame: original photos, cropped by layout rather than retouched. */
.profile-figure{min-width:0}
.portrait-frame{position:relative;width:100%;aspect-ratio:1;background:var(--bg);border:1px solid var(--circuit-border,var(--line));border-radius:13px;isolation:isolate;box-shadow:0 0 22px #2196f30d}
.portrait-window{position:absolute;inset:6px;overflow:hidden;border-radius:9px;background:var(--paper)}
.portrait-window .portrait-slide{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;filter:grayscale(1);opacity:0;z-index:0;will-change:clip-path}
.portrait-frame[data-active="0"] .portrait-original,.portrait-frame[data-active="1"] .portrait-formal{opacity:1;z-index:1}
.portrait-window .portrait-formal{object-position:50% 27%;transform:scale(1.2);transform-origin:50% 35%}
.portrait-trail{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;filter:drop-shadow(0 0 3px #2196f380);z-index:2}
.portrait-outline{stroke:#2196f3;stroke-width:1;opacity:.45}
.portrait-runner,.portrait-core{stroke-dasharray:16 84;stroke-linecap:round;animation:portrait-current 6s linear infinite;animation-play-state:paused}
.portrait-runner{stroke:#39afff;stroke-width:2;filter:drop-shadow(0 0 4px #2196f3)}
.portrait-core{stroke:#d2f3ff;stroke-width:.8}
.portrait-frame[data-running="true"] .portrait-runner,.portrait-frame[data-running="true"] .portrait-core{animation-play-state:running}
@keyframes portrait-current{to{stroke-dashoffset:-100}}
.portrait-controls{position:absolute;z-index:3;left:16px;right:16px;bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:16px;pointer-events:none}
.portrait-dots{display:flex;align-items:center;background:#101b25d9;border:1px solid #ffffff55;border-radius:30px;pointer-events:auto}
.portrait-dot{display:grid;place-items:center;width:44px;height:42px;padding:0}
.portrait-dot span{width:7px;height:7px;border-radius:50%;background:#b7c4cf}
.portrait-dot[aria-pressed="true"] span{background:#5cbcff;box-shadow:0 0 8px #2196f380}
.portrait-toggle{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid #ffffffa6;border-radius:50%;background:#101b25d9;color:#fff;font-size:20px;line-height:1;pointer-events:auto}
.portrait-toggle:hover,.portrait-dot:hover{background:#101b25}
.portrait-dot:first-child{border-radius:30px 0 0 30px}.portrait-dot:last-child{border-radius:0 30px 30px 0}
.personal-intro>.profile-figure{width:100%;margin:0}
@media(max-width:760px){.personal-intro>.profile-figure{width:75%;max-width:370px}.portrait-controls{left:12px;right:12px;bottom:12px}}
@media(prefers-reduced-motion:reduce){.portrait-slide{transition:none}.portrait-runner,.portrait-core{display:none;animation:none}}

/* A clipped photo reveal replaces the opacity crossfade. */
.portrait-frame[data-incoming="0"] .portrait-original,.portrait-frame[data-incoming="1"] .portrait-formal{opacity:1;z-index:2}
.portrait-mesh{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;opacity:0;background:#062c4966;clip-path:inset(0 0 100% 0)}
.portrait-mesh path{fill:none;stroke:#71c8ff;stroke-width:.7;vector-effect:non-scaling-stroke}
.portrait-mesh circle{fill:#c9efff}
.portrait-scanline{position:absolute;left:0;right:0;top:0;height:1px;background:#d3f4ff;box-shadow:0 0 6px #39afff;z-index:4;opacity:0;pointer-events:none}
.portrait-frame[data-scanning="true"] .portrait-mesh{opacity:1}
.portrait-frame[data-scanning="true"] .portrait-scanline{opacity:.9}
@media(prefers-reduced-motion:reduce){.portrait-mesh,.portrait-scanline{display:none}}
