/* Clean idle states; a fine glitter surface appears only on pointer hover. */
:root{--button-radius:999px}
.crystal-button.crystal-button{border-radius:var(--button-radius);position:relative;isolation:isolate;overflow:visible;border:1px solid #776987;background:transparent;color:inherit;box-shadow:none;transition:background-color .18s,border-color .18s,box-shadow .18s,transform .18s;transform:none}
.crystal-button.crystal-button::before,.crystal-button.crystal-button::after{content:none;animation:none;filter:none;mask:none;-webkit-mask:none}
.crystal-button:is(.primary,.nav-cta,.contact-circle){background:#a57aff;color:#1b1227;border-color:#a57aff;box-shadow:none}
.crystal-button.crystal-button>span:not(.crystal-field){color:inherit}
.crystal-button.crystal-button svg{stroke:currentColor}
.crystal-button.crystal-button:focus-visible{outline:3px solid #b68aff;outline-offset:5px;box-shadow:none}
.crystal-button.crystal-button:active{transform:scale(.975);border-color:#d1acff;box-shadow:inset 0 0 0 1px #dbbfff55,0 0 0 3px #a57aff24,0 0 24px #a57aff4d}
.portfolio-filter.crystal-button[aria-pressed=false]{background:transparent;color:inherit;border-color:#776987;box-shadow:none}
.portfolio-filter.crystal-button[aria-pressed=true]{background:#a57aff;color:#1b1227;border-color:#d2b7ff;box-shadow:inset 0 0 0 1px #e5d4ff60,0 0 0 2px #a57aff20,0 0 16px #a57aff30}
.orbit-core.crystal-button{background:transparent;color:var(--violet);box-shadow:none}
.orbit-link:focus-visible .orbit-core.crystal-button{background:transparent;color:var(--violet);border-color:#b68aff;box-shadow:0 0 0 3px #a57aff25;transform:none}
.orbit-link:focus-visible .orbit-core.crystal-button svg{stroke:currentColor}
.crystal-button .crystal-field{position:absolute!important;inset:1px;display:block!important;width:auto!important;height:auto!important;border-radius:inherit;margin:0!important;padding:0!important;line-height:0!important;font-size:0!important;pointer-events:none;z-index:-1;overflow:hidden;transform:none!important;visibility:hidden;opacity:0;transition:opacity .16s,visibility .16s;background-image:radial-gradient(circle at 1.25px 1.25px,#7d40c56e 0 .65px,#be8eff52 .85px,transparent 1.15px);background-size:2.5px 2.5px}
.crystal-field::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle at 1.25px 1.25px,#f6eaff 0 .38px,#d6aaff .68px,#b57aff8c .95px,transparent 1.25px);background-size:2.5px 2.5px;mask-image:radial-gradient(ellipse 95px 55px at var(--spark-x,50%) var(--spark-y,50%),#000 4%,#000b 36%,#0004 66%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 95px 55px at var(--spark-x,50%) var(--spark-y,50%),#000 4%,#000b 36%,#0004 66%,transparent 100%);opacity:.95}
.crystal-field::after{content:'';position:absolute;inset:-60%;background:linear-gradient(115deg,transparent 42%,#ecd4ff00 46%,#f3e3ff50 50%,#d6b4ff16 54%,transparent 59%);opacity:0;transform:translateX(-70%)}
.crystal-point{position:absolute;left:var(--cx);top:var(--cy);width:1.25px;height:1.25px;border-radius:40%;background:#fff3ff;box-shadow:0 0 2px #e6c4ff,0 0 4px #c18bff;opacity:0;transform:translate(-50%,-50%) scale(.5)}
@media(hover:hover) and (pointer:fine){
 .crystal-button.crystal-button:hover{background:#a57aff12;border-color:#ba91f1;box-shadow:0 0 18px #a57aff28;transform:none}
 .crystal-button:is(.primary,.nav-cta,.contact-circle):hover{background:#b28aff;color:#1b1227;border-color:#dcc5ff;box-shadow:inset 0 1px 0 #eadbff80,0 0 20px #a57aff40}
 .portfolio-filter.crystal-button[aria-pressed=false]:hover{background:#a57aff12;color:inherit;border-color:#ba91f1;box-shadow:0 0 18px #a57aff28}
 .portfolio-filter.crystal-button[aria-pressed=true]:hover{background:#bd99ff;color:#1b1227;border-color:#eadbff;box-shadow:inset 0 0 0 1px #f5eaff80,0 0 0 2px #a57aff40,0 0 28px #b084ff70}
 .orbit-link:hover .orbit-core.crystal-button{background:#a57aff12;color:var(--violet);border-color:#ba91f1;box-shadow:0 0 18px #a57aff28;transform:none}
 .orbit-link:hover .orbit-core.crystal-button svg{stroke:currentColor}
 .crystal-button:hover .crystal-field,.orbit-link:hover .crystal-field{visibility:visible;opacity:1}
 .crystal-button:hover .crystal-point,.orbit-link:hover .crystal-point{animation:violet-grain-glint var(--ct,2.8s) var(--cd,0s) ease-in-out infinite}
 .crystal-button:hover .crystal-field::after,.orbit-link:hover .crystal-field::after{animation:violet-grain-sheen 2.6s ease-in-out infinite}
 .crystal-button.crystal-button:active{transform:scale(.975);border-color:#eadbff;box-shadow:inset 0 0 0 1px #eadbff80,0 0 0 3px #a57aff40,0 0 30px #a57aff70}
}
@keyframes violet-grain-glint{0%,25%,70%,100%{opacity:0;transform:translate(-50%,-50%) scale(.45)}42%{opacity:.2}51%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}62%{opacity:.2;transform:translate(-50%,-50%) scale(.7)}}
@keyframes violet-grain-sheen{0%,8%{opacity:0;transform:translateX(-65%)}35%,55%{opacity:.7}80%,100%{opacity:0;transform:translateX(65%)}}
@media(prefers-reduced-motion:reduce){.crystal-button .crystal-point,.crystal-button .crystal-field::after{animation:none!important}.crystal-button.crystal-button:active{transform:none}}
