/* Occasional decorative previews: brief feedback, slow continuous orbit. */
.photo-word{display:inline;padding:0;border:0;border-radius:0;background:none;font:inherit;color:inherit;line-height:inherit;text-decoration:underline;text-decoration-color:var(--muted);text-decoration-thickness:1px;text-underline-offset:4px;cursor:pointer}
html[data-input=pointer] .photo-word:active{transform:none}
@media(hover:hover) and (pointer:fine){.photo-word:hover{color:var(--ink);text-decoration-color:var(--ink)}}
.photo-preview{position:fixed;inset:auto;margin:0;padding:0;border:0;background:transparent;color:var(--muted);overflow:visible;isolation:isolate;opacity:0;transform:scale(.95);transition:opacity 200ms var(--ease-out),transform 200ms var(--ease-out),display 200ms allow-discrete,overlay 200ms allow-discrete;pointer-events:none}
.photo-preview:popover-open{opacity:1;transform:scale(1);pointer-events:auto}
@starting-style{.photo-preview:popover-open{opacity:0;transform:scale(.95)}}
.photo-preview::backdrop{background:transparent;pointer-events:none}
.photo-canvas{position:absolute;left:0;top:0;width:300px;height:300px;transform-origin:top left;pointer-events:none}
.photo-preview[data-kind=fan] .photo-canvas{width:320px;height:230px}
.photo-orbit{position:absolute;inset:0;animation:photo-orbit-turn 40s linear infinite;animation-play-state:paused}
.orbit-slot{position:absolute;width:62px;height:78px;margin-left:-31px;margin-top:-39px}
.orbit-photo{width:100%;height:100%;animation:photo-orbit-counterturn 40s linear infinite;animation-play-state:paused}
.photo-preview:popover-open .photo-orbit,.photo-preview:popover-open .orbit-photo{animation-play-state:running}
.orbit-photo img,.fan-photo img{display:block;width:100%;height:100%;object-fit:cover;border:3px solid white;border-radius:7px;box-shadow:0 5px 13px #161d2426}
.fan-photo{position:absolute;width:128px;height:166px;top:24px;left:96px;transform:translateY(10px) rotate(0deg);transition:transform 200ms var(--ease-out);pointer-events:none}
.fan-left{z-index:1}.fan-right{z-index:2}.fan-front{z-index:3}
.photo-preview:popover-open .fan-left{transform:translate(-68px,22px) rotate(-12deg)}
.photo-preview:popover-open .fan-right{transform:translate(68px,22px) rotate(12deg)}
.photo-preview:popover-open .fan-front{transform:translateY(0) rotate(0deg)}
@starting-style{.photo-preview:popover-open .fan-photo{transform:translateY(10px) rotate(0deg)}}
.photo-sample-label{position:absolute;bottom:1px;left:50%;transform:translateX(-50%);font:9px/1.4 ui-monospace,monospace;white-space:nowrap;color:var(--muted);background:var(--bg);border-radius:3px;padding:1px 5px;pointer-events:none}
@keyframes photo-orbit-turn{to{transform:rotate(360deg)}}
@keyframes photo-orbit-counterturn{to{transform:rotate(-360deg)}}
.photo-preview[data-static] .photo-orbit,.photo-preview[data-static] .orbit-photo{animation-play-state:paused}
.photo-preview[data-static],.photo-preview[data-static] .fan-photo{transition:none!important}
@media(prefers-reduced-motion:reduce){.photo-preview,.photo-preview:popover-open{transform:none!important;transition:opacity 160ms var(--ease-out),display 160ms allow-discrete,overlay 160ms allow-discrete!important}.photo-preview .photo-orbit,.photo-preview .orbit-photo{animation:none!important}.photo-preview .fan-photo{transition:none!important}.photo-preview[data-static]{transition:none!important}}
@media print{.photo-preview{display:none!important}.photo-word{text-decoration:none}}

/* The orbit surrounds the trigger; its empty center must not intercept hover or taps. */
.photo-preview[data-kind=orbit]:popover-open{pointer-events:none}
.photo-preview[data-kind=orbit]:popover-open .orbit-photo{pointer-events:auto}

/* Photo hover feedback lives on the image, separate from orbit/fan transforms. */
.orbit-photo img,.fan-photo img{transform:scale(1);transition:transform var(--motion-press,160ms) var(--ease-out)}
@media(hover:hover) and (pointer:fine){
 .photo-preview:popover-open .fan-photo{pointer-events:auto}
 .photo-preview:popover-open .orbit-slot:hover,.photo-preview:popover-open .fan-photo:hover{z-index:4}
 .photo-preview:not([data-static]):popover-open .orbit-photo:hover img,
 .photo-preview:not([data-static]):popover-open .fan-photo:hover img{transform:scale(1.05)}
}
.photo-preview[data-static] .orbit-photo img,.photo-preview[data-static] .fan-photo img{transition:none!important}
@media(prefers-reduced-motion:reduce){
 .photo-preview .orbit-photo img,.photo-preview .fan-photo img{transform:none!important;transition:none!important}
}
@media(prefers-reduced-motion:reduce) and (hover:hover) and (pointer:fine){
 .photo-preview:popover-open .orbit-photo:hover img,.photo-preview:popover-open .fan-photo:hover img{outline:2px solid var(--accent);outline-offset:2px}
}

/* Profile hover cards: compact, hand-built previews (LinkedIn and GitHub cannot be embedded). */
.photo-preview[data-kind=linkedin] .photo-canvas{width:300px;height:186px}
.photo-preview[data-kind=github] .photo-canvas{width:300px;height:210px}
.profile-card{position:relative;width:100%;height:100%;box-sizing:border-box;overflow:hidden;border-radius:14px;background:var(--surface,#fff);border:1px solid var(--line);box-shadow:0 8px 12px #26311e08,0 22px 45px #26311e14;color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-align:left;pointer-events:auto}
.profile-banner{display:block;width:100%;height:75px;object-fit:cover}
.profile-avatar{position:absolute;top:44px;left:16px;width:62px;height:62px;border-radius:50%;object-fit:cover;border:3px solid var(--surface,#fff);box-shadow:0 2px 6px #26311e1f}
.profile-body{padding:36px 16px 16px}
.profile-name{display:block;font-size:15px;line-height:20px;font-weight:600;letter-spacing:-.01em}
.profile-headline{margin:2px 0 0;font-size:12.5px;line-height:17px;color:var(--ink)}
.profile-location{margin:2px 0 0;font-size:11.5px;line-height:16px;color:var(--muted)}
.profile-card.github{padding:16px}
.profile-head{display:flex;align-items:center;gap:12px}
.profile-avatar-wrap{position:relative;flex:none;width:52px;height:52px}
.github .profile-avatar{position:static;display:block;width:52px;height:52px;border:0;box-shadow:none;background:var(--soft)}
.profile-status-emoji{position:absolute;right:-4px;bottom:-4px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--surface,#fff);border:1px solid var(--line);font-size:12px;line-height:1}
.profile-handle{margin:0;font-size:12px;line-height:16px;color:var(--muted)}
.profile-graph{margin-top:14px}
.profile-graph-label{margin:0 0 6px;font-size:11.5px;line-height:16px;color:var(--muted)}
.profile-graph-label b{font-weight:600;color:var(--ink)}
.contribution-grid{display:grid;grid-template-rows:repeat(7,10px);grid-auto-flow:column;grid-auto-columns:10px;gap:3px;width:max-content;max-width:100%;margin-left:auto;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,#000 38%);mask-image:linear-gradient(to right,transparent,#000 38%)}
.contribution-grid i{display:block;border-radius:2px;background:var(--soft)}
.contribution-grid i[data-level="1"]{background:#c9d8c3}
.contribution-grid i[data-level="2"]{background:#9fb897}
.contribution-grid i[data-level="3"]{background:#6f8e6a}
.contribution-grid i[data-level="4"]{background:var(--accent)}
