/* Yunling Prismatic Scroll / integrated 2026-10-22.
   Adapted from work/gemini-prism-20261022, commit
   64d633e9f36e12b43d0087dabaa3b8d7ba310405 (yunling-builder).
   Gemini / AI Mode inspired edge light; local CSS, no library or external asset.
   Gradients change only on bounded interactions; idle motion is opacity-only. */
.yl-prism-target{isolation:isolate}
.yl-prism-relative{position:relative}
.yl-prism-ring{
  position:absolute;inset:0;z-index:3;display:block;box-sizing:border-box;
  border-radius:inherit;pointer-events:none;opacity:0;
  --yl-prism-angle:200deg;
  transition:opacity 420ms cubic-bezier(.23,1,.32,1);
}
.yl-prism-ring::before,.yl-prism-ring::after{
  content:"";position:absolute;inset:0;box-sizing:border-box;
  border-radius:inherit;padding:2px;pointer-events:none;
  background:conic-gradient(from var(--yl-prism-angle),
    transparent 0deg,#63c5ee 50deg,#789bf9 105deg,#b2a5f7 161deg,
    #f0b4d0 200deg,#e8c488 247deg,#73caba 288deg,
    transparent 339deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
}
/* Blur is confined to small controls, never the form or expanded assistant. */
.yl-prism-target[data-yl-prism-kind="cta"]>.yl-prism-ring::after{
  inset:1px;padding:4px;opacity:.34;filter:blur(4px);
}
.yl-prism-target:not([data-yl-prism-kind="cta"])>.yl-prism-ring::after{display:none}
.yl-prism-target.yl-prism-quiet>.yl-prism-ring{opacity:.25}
.yl-prism-target.yl-prism-live>.yl-prism-ring{opacity:.96;transition-duration:160ms}
.yl-prism-target:focus-within>.yl-prism-ring{opacity:.76}
.yl-prism-target[data-yl-prism-kind="form"]:focus-within>.yl-prism-ring{opacity:.52}
@media(hover:hover) and (pointer:fine){
  .yl-prism-target:where(a,button):hover>.yl-prism-ring{opacity:.86}
}
/* The prism owns these edges; old foil sweeps must not cover the same control. */
.yl-prism-target>.yl-finish-foil{display:none!important}
body.event-page[data-anniversary-experience="2"] #mobileSignupDock.yl-prism-target{border-color:#c3d7f083}
body.event-page[data-anniversary-experience="2"] .wizard-progress progress::-webkit-progress-value{
  background:linear-gradient(95deg,#65c9d4,#8aa4f3 36%,#be9fea 64%,#e9c48c);
}
body.event-page[data-anniversary-experience="2"] .wizard-progress progress::-moz-progress-bar{
  background:linear-gradient(95deg,#65c9d4,#8aa4f3 36%,#be9fea 64%,#e9c48c);
}
html[data-yl-motion="off"] .yl-prism-ring,
html[data-yl-finish="quiet"] .yl-prism-ring,
body[data-ann-motion="off"] .yl-prism-ring,
body[data-registration-complete="true"] #mobileSignupDock .yl-prism-ring{display:none!important}
@supports not ((mask-composite:exclude) or (-webkit-mask-composite:xor)){
  .yl-prism-ring::before,.yl-prism-ring::after{display:none}
  .yl-prism-ring{border:1px solid #b7c6df}
}
@media(prefers-reduced-motion:reduce),(forced-colors:active){
  .yl-prism-ring{display:none!important;transition:none!important}
}
@media(prefers-contrast:more),(prefers-reduced-transparency:reduce){
  .yl-prism-ring::after{display:none!important}
}
@media print{.yl-prism-ring{display:none!important}}

/* Exactly one canonical focus control can own this edge; artwork stays untouched. */
.yl-prism-target[data-yl-prism-kind="focus"]>.yl-prism-ring{transition-duration:var(--motion-normal,260ms);transition-timing-function:var(--ease-standard,cubic-bezier(.22,1,.36,1))}
.yl-prism-target[data-yl-prism-kind="focus"].yl-prism-live>.yl-prism-ring{transition-duration:var(--motion-fast,180ms)}
