/* A small invitation to explore the maker behind the portrait. */
.site-about-portrait.portrait-reveal { position:relative; }
.portrait-reveal-surface { position:relative; width:100%; aspect-ratio:1; overflow:hidden; isolation:isolate; background:transparent; touch-action:pan-y pinch-zoom; cursor:crosshair; }
.site-about-portrait .portrait-reveal-base { position:relative; z-index:1; display:block; transition:opacity 350ms var(--ease-out,cubic-bezier(.23,1,.32,1)); width:100%; height:auto; aspect-ratio:1; object-fit:cover; }
.portrait-reveal-full,.portrait-reveal-lens { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; opacity:0; transition:opacity 350ms var(--ease-out,cubic-bezier(.23,1,.32,1)); }
.portrait-reveal-full { z-index:2; }
.site-about-portrait .portrait-reveal-full img { width:100%; height:100%; object-fit:cover; }
.portrait-reveal-lens { z-index:3; display:block; }
.portrait-reveal-specks { position:absolute; inset:0; z-index:0; pointer-events:none; }
.portrait-reveal-speck-canvas { position:absolute; inset:0; display:block; width:100%; height:100%; transform-origin:50% 50%; }
.portrait-reveal[data-reveal="full"] .portrait-reveal-base { opacity:0; }
.portrait-reveal[data-reveal="lens"] .portrait-reveal-lens,.portrait-reveal[data-reveal="full"] .portrait-reveal-full { opacity:1; }
.portrait-reveal[data-reveal="full"] .portrait-reveal-lens { opacity:0; }
.portrait-reveal-controls { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0 0; }
.site-about-portrait .portrait-reveal-hint { font:12px/1.5 'DM Sans',sans-serif; color:var(--muted,#626262); max-width:210px; }
.portrait-reveal-toggle { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:9px 13px; border:1px solid var(--line,#d9d9d9); border-radius:24px; background:var(--bg,#fff); color:var(--fg,#151515); font:12px/1.2 'DM Sans',sans-serif; white-space:nowrap; cursor:pointer; }
.portrait-reveal-toggle::before { content:'↗'; color:var(--accent,#ec5b29); font-size:17px; }
.portrait-reveal-toggle[aria-pressed="true"]::before { content:'↙'; }
.portrait-reveal-toggle:focus-visible { outline:2px solid var(--accent,#ec5b29); outline-offset:5px; }
.portrait-reveal-toggle:disabled { opacity:.5; cursor:wait; }
.portrait-reveal--instant .portrait-reveal-base,.portrait-reveal--quiet .portrait-reveal-base,.portrait-reveal--instant .portrait-reveal-full,.portrait-reveal--instant .portrait-reveal-lens,.portrait-reveal--quiet .portrait-reveal-full,.portrait-reveal--quiet .portrait-reveal-lens { transition:none; }
@media (hover:hover) and (pointer:fine) { .portrait-reveal-toggle:hover { border-color:var(--accent,#ec5b29); } }
@media (prefers-reduced-motion:reduce) { .portrait-reveal-base,.portrait-reveal-full,.portrait-reveal-lens { transition:none; } .portrait-reveal-surface { transform:none!important; } }
@media (max-width:520px) { .portrait-reveal-controls { gap:10px; } .site-about-portrait .portrait-reveal-hint { max-width:165px; font-size:11px; } .portrait-reveal-toggle { padding-inline:11px; } }
