.portfolio-cursor{position:fixed;top:0;left:0;z-index:2147483647;pointer-events:none;background:#fff1d7;mix-blend-mode:difference;opacity:0;transition:opacity .18s,background .2s;contain:layout style;display:flex;align-items:center;justify-content:center}
.portfolio-cursor.is-visible{opacity:1}.portfolio-cursor.is-magnetic{background:#fff1d7aa}.portfolio-cursor.is-media::after{content:'';position:absolute;inset:0;margin:auto;width:24px;height:24px;background:#181713;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 18 18 6M6 6h12v12' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}.portfolio-cursor.is-pressed{opacity:.65}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.custom-pointer,.custom-pointer a,.custom-pointer button,.custom-pointer [role=tab]{cursor:none!important}}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.portfolio-cursor{display:none}}

/* Warm highlights keep link accents intact instead of inverting them to blue. */
.portfolio-cursor.is-magnetic{mix-blend-mode:normal;background:rgba(229,181,139,.16);box-shadow:inset 0 0 0 1px rgba(229,181,139,.35)}
/* Project hover: a single hollow ring, with delayed label reveal. */
.portfolio-cursor.is-case{mix-blend-mode:difference;background:transparent;color:#fff;box-shadow:none;border:1.5px solid #fff;border-radius:50%!important;outline:none}
.portfolio-cursor::before{position:absolute;inset:0;display:grid;place-items:center;content:'READ CASE';font:700 10px/1.2 Arial,sans-serif;letter-spacing:.14em;color:#fff;white-space:nowrap;opacity:0;transition:opacity .2s}
.portfolio-cursor.is-case::before{opacity:1;transition-delay:.12s}
