.site-header nav>a{position:relative}
.site-header nav>a:after{content:'';position:absolute;bottom:3px;left:50%;width:5px;height:5px;border-radius:50%;background:var(--ink);opacity:0;translate:-50% 3px;transition:opacity .2s,translate .2s}
.site-header nav>a[aria-current=location]:after{opacity:1;translate:-50% 0}
.project-card{position:relative;overflow:hidden}
.project-card img{transition:scale .35s cubic-bezier(.2,.8,.2,1)}
.project-arrow{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:28px;height:28px;background:var(--background);color:var(--ink);border-radius:50%;font-size:18px;transition:translate .25s}
@media(hover:hover) and (pointer:fine){.project-card:hover img{scale:1.035}.project-card:hover .project-arrow{translate:2px -2px}}
.project-card:focus-visible .project-arrow{translate:2px -2px}
.experience-timeline details{overflow-anchor:none}
.experience-timeline .experience-disclosure{position:absolute;right:16px;top:16px;display:inline-block;min-width:18px;width:18px;height:18px;transform:none!important}
.experience-disclosure:before,.experience-disclosure:after{content:'';position:absolute;left:1px;top:8px;width:16px;height:2px;background:currentColor;transition:transform .3s,opacity .3s}
.experience-disclosure:after{transform:rotate(90deg)}
.experience-timeline details[data-expanded=true] .experience-disclosure:after{transform:rotate(180deg);opacity:0}
.character-reaction{max-width:min(280px,calc(100vw - 24px));transform-origin:center bottom;line-height:1.6}
.motion-paused .project-card img{transition:none}.motion-paused .project-card:hover img{scale:1}
@media(prefers-reduced-motion:reduce){.project-card:hover img{scale:1}.project-arrow,.experience-disclosure:after,.site-header nav>a:after{transition:none}}

/* Compact experience layout; keep the shared typography scale. */
.experience{padding-block:56px;gap:40px}
.experience h2{margin-bottom:24px}
.experience-timeline{margin-bottom:0}
.experience-timeline>li{margin-bottom:10px}
.experience-timeline>li:last-child{margin-bottom:0}
.experience-timeline>li:after{height:calc(100% + 10px)}
.experience-timeline details{border-radius:12px}
.experience-timeline summary,.experience-timeline details[open] summary{padding:14px 44px 14px 16px}
.experience-meta{margin-bottom:6px;gap:8px}
.experience-timeline summary .company{margin-bottom:4px}
.experience-timeline summary h3{margin-top:4px}
.experience-description{padding:0 16px 14px}
.experience-description>p{padding-top:12px;margin-bottom:0}
.experience-description .previous-role{margin-top:14px}
.experience-model{height:360px}
@media(max-width:760px){.experience{padding-block:40px;gap:28px}.experience h2{margin-bottom:20px}.experience-model{height:260px}.experience-timeline summary,.experience-timeline details[open] summary{padding-block:12px}.experience-timeline .experience-disclosure{top:14px}}

.character-reaction{border-radius:16px;max-width:min(240px,calc(100vw - 24px));padding:10px 14px}
.character-reaction[data-tail=bottom]:after{content:'';position:absolute;left:var(--tail-x,50%);bottom:-5px;width:8px;height:8px;background:inherit;border-right:1px solid #cfe6c5;border-bottom:1px solid #cfe6c5;transform:translateX(-50%) rotate(45deg)}

.sharing-preview{width:180px;height:100px;object-fit:cover;object-position:top;border-radius:8px;flex-shrink:0}.sharing-link>div{flex:1;min-width:0}@media(max-width:600px){.sharing-link{flex-wrap:wrap;gap:14px}.sharing-preview{width:100%;height:auto;aspect-ratio:1200/630}.sharing-link>div{flex-basis:75%}}

.project-caption{display:block;padding:9px 10px;font-family:Inter,sans-serif;font-size:12px;line-height:1.5;color:var(--muted);background:var(--background);text-align:left}.project-card .project-arrow{bottom:44px}@media(max-width:760px){.project-caption{font-size:10px;padding:7px 5px}}
