.project-card-title{color:#1c1917;transition:color .3s ease}html.dark .project-card-title{color:var(--color-fg)}.projects-content .group:hover .project-card-title{color:var(--project-accent,var(--color-accent-violet))}.project-card-bar{position:absolute;top:0;left:0;right:0;height:1px;border-radius:.75rem .75rem 0 0;background:linear-gradient(90deg,transparent,var(--project-accent,rgb(168 85 247)) 50%,transparent);opacity:.85;transition:opacity .3s ease}.projects-content .group:hover .project-card-bar{opacity:1}.project-card-glow{position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .5s ease;pointer-events:none;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgb(168 85 247/.16),transparent 62%)}@supports (color:color-mix(in srgb,red 16%,transparent)){.project-card-glow{background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--project-accent,rgb(168 85 247)) 16%,transparent),transparent 62%)}}.projects-content .group:hover .project-card-glow{opacity:1}.project-card-border-glow{position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .5s ease;pointer-events:none;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgb(168 85 247/.4),transparent 62%);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;padding:1px}@supports (color:color-mix(in srgb,red 40%,transparent)){.project-card-border-glow{background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--project-accent,rgb(168 85 247)) 40%,transparent),transparent 62%)}}.projects-content .group:hover .project-card-border-glow{opacity:1}.projects-content .group:hover{box-shadow:var(--shadow-soft,0 8px 32px rgba(0,0,0,.04)),0 4px 16px rgb(var(--accent-violet-rgb)/.06),0 8px 24px rgb(0 0 0/.06)}html.dark .projects-content .group:hover{box-shadow:var(--shadow-soft,0 8px 32px rgba(0,0,0,.04)),0 4px 16px rgb(var(--accent-violet-rgb)/.12),0 12px 32px rgb(0 0 0/.28)}.tag-accent{color:rgb(var(--accent-violet-rgb));border-color:rgb(var(--accent-violet-rgb)/.2);background:rgb(var(--accent-violet-rgb)/.06);transition:color .3s ease,border-color .3s ease,background .3s ease}.tag-accent[data-accent-idx="0"]{color:rgb(var(--accent-pink-rgb));border-color:rgb(var(--accent-pink-rgb)/.5);background:rgb(var(--accent-pink-rgb)/.15)}.tag-accent[data-accent-idx="1"]{color:rgb(var(--accent-violet-rgb));border-color:rgb(var(--accent-violet-rgb)/.5);background:rgb(var(--accent-violet-rgb)/.15)}.tag-accent[data-accent-idx="2"]{color:rgb(var(--accent-blue-rgb));border-color:rgb(var(--accent-blue-rgb)/.5);background:rgb(var(--accent-blue-rgb)/.15)}.tag-accent[data-accent-idx="3"]{color:rgb(var(--accent-teal-rgb));border-color:rgb(var(--accent-teal-rgb)/.5);background:rgb(var(--accent-teal-rgb)/.15)}.tag-accent[data-accent-idx="4"]{color:rgb(var(--accent-gold-rgb));border-color:rgb(var(--accent-gold-rgb)/.5);background:rgb(var(--accent-gold-rgb)/.15)}.projects-content .group:hover .tag-accent[data-accent-idx="0"]{background:rgb(var(--accent-pink-rgb)/.25);border-color:transparent}.projects-content .group:hover .tag-accent[data-accent-idx="1"]{background:rgb(var(--accent-violet-rgb)/.25);border-color:transparent}.projects-content .group:hover .tag-accent[data-accent-idx="2"]{background:rgb(var(--accent-blue-rgb)/.25);border-color:transparent}.projects-content .group:hover .tag-accent[data-accent-idx="3"]{background:rgb(var(--accent-teal-rgb)/.25);border-color:transparent}.projects-content .group:hover .tag-accent[data-accent-idx="4"]{background:rgb(var(--accent-gold-rgb)/.25);border-color:transparent}.cta-ghost-btn{background:color-mix(in srgb,rgb(var(--accent-violet-rgb)) 6%,white);color:rgb(107 114 128);border:1px solid rgb(var(--accent-violet-rgb)/.2);text-decoration:none;transition:background .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease,transform .3s ease}html.dark .cta-ghost-btn{background:color-mix(in srgb,rgb(var(--accent-violet-rgb)) 10%,rgb(15 15 20/.4));color:rgb(156 163 175);border-color:rgb(var(--accent-violet-rgb)/.22)}.cta-ghost-btn:hover{background:color-mix(in srgb,rgb(var(--accent-violet-rgb)) 14%,transparent);color:rgb(var(--accent-violet-rgb));border-color:rgb(var(--accent-violet-rgb)/.4);box-shadow:0 4px 12px rgb(var(--accent-violet-rgb)/.12)}html.dark .cta-ghost-btn:hover{background:color-mix(in srgb,rgb(var(--accent-violet-rgb)) 18%,rgb(15 15 20/.6));border-color:rgb(var(--accent-violet-rgb)/.45)}.cta-ghost-glow{position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .4s ease;pointer-events:none;background:radial-gradient(260px circle at var(--mx,0) var(--my,-40px),rgb(var(--accent-violet-rgb)/.12),transparent 65%)}@supports (color:color-mix(in srgb,red 12%,transparent)){.cta-ghost-glow{background:radial-gradient(260px circle at var(--mx,0) var(--my,-40px),color-mix(in srgb,rgb(var(--accent-violet-rgb)) 12%,transparent),transparent 65%)}}.cta-ghost-btn:hover .cta-ghost-glow{opacity:1}.cta-ghost-arrow{opacity:.4;transition:opacity .3s ease,transform .3s cubic-bezier(.16,1,.3,1)}.cta-ghost-btn:hover .cta-ghost-arrow{opacity:1;transform:translate(1px,-1px)}