
/* Shared timing for the restored purple accents and local UI motion. */
:root{--ease:cubic-bezier(.22,1,.36,1);--motion-ui:.32s;--motion-reveal:.64s}
.catalog-children{display:grid;grid-template-rows:0fr;visibility:hidden;padding:0;animation:none;transition:grid-template-rows var(--motion-ui) var(--ease),visibility 0s var(--motion-ui)}
.catalog-group.is-expanded .catalog-children{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows var(--motion-ui) var(--ease),visibility 0s}
.catalog-items{min-height:0;overflow:hidden}
.catalog-items:after{content:'';display:block;height:20px}
.catalog-items .directory-row:focus-visible{outline-offset:-2px}
.directory-list{position:relative}
.directory-list:before{content:'';position:absolute;left:-12px;top:0;width:2px;height:16px;background:var(--accent);pointer-events:none;opacity:var(--marker-visible,0);transform:translateY(var(--marker-y,0px));transition:transform var(--motion-ui) var(--ease),opacity var(--motion-ui) var(--ease)}
.intro-entry .entry-name:before{content:'';position:absolute;left:-12px;top:calc(50% - 8px);width:2px;height:16px;background:var(--accent);pointer-events:none;opacity:0;transform:translateX(-3px);transition:opacity var(--motion-ui) var(--ease),transform var(--motion-ui) var(--ease)}
.intro-entry:is(:hover,:focus-visible) .entry-name:before{opacity:1;transform:translateX(0)}
.intro-identity,.intro-lower{animation-duration:var(--motion-reveal);animation-timing-function:var(--ease)}
.entry-plus,.category-meta i,.theme-icon,.link-arrow{transition-duration:var(--motion-ui);transition-timing-function:var(--ease)}
.intro-identity .intro-title{transition-duration:var(--motion-ui);transition-timing-function:var(--ease)}
/* Fixed physical stroke width prevents the larger Back icon looking heavier. */
.ui-arrow path{vector-effect:non-scaling-stroke}
.back-symbol .ui-arrow{width:14px;height:14px;vertical-align:-.08em}
@media(max-width:700px){.directory-list:before,.intro-entry .entry-name:before{left:-10px}}
@media(prefers-reduced-motion:reduce){
  .catalog-children,.directory-list:before,.entry-plus,.category-meta i,.theme-icon,.link-arrow,.intro-identity .intro-title{transition:none}
  .intro-entry .entry-name:before{transition:none}
}

/* All diagonal navigation arrows share one fixed size, independent of label typography. */
.back-symbol .ui-arrow,.resume-contact .ui-arrow,.link-arrow .ui-arrow,.catalog-artwork .ui-arrow{width:16px;height:16px;stroke-width:1.25;vertical-align:middle}
.back-symbol,.link-arrow{display:inline-flex;align-items:center;justify-content:center;line-height:1}

