/* Shared quiz border: keep both pages on the same animation treatment. */
[data-quiz-perimeter]{position:relative;}
/* Each dash pattern repeats twice per circuit, keeping matching comets exactly half a perimeter apart. */
.ts-perimeter{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);overflow:visible;pointer-events:none;opacity:0.95;}
.ts-perimeter rect{fill:none;stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:var(--dash-length) calc(var(--perimeter) / 2 - var(--dash-length));animation:ts-perimeter-travel var(--travel-time) linear infinite;animation-timing-function:var(--travel-easing,linear);}
.ts-perimeter .light-bloom{filter:blur(3px);}
.ts-perimeter .light-bloom rect{stroke-width:7px;}
.ts-perimeter .light-core{filter:drop-shadow(0 0 2px rgba(94,255,235,.85));}
.ts-perimeter .light-shine{stroke:#effffc;stroke-width:2.8px;filter:drop-shadow(0 0 3px #8ff3e9);}
.ts-perimeter .light-static{display:none;stroke:#8ff3e9;stroke-width:2px;opacity:.4;}
@keyframes ts-perimeter-travel{from{stroke-dashoffset:var(--dash-start);}to{stroke-dashoffset:calc(var(--dash-start) - var(--perimeter));}}
@media(prefers-reduced-motion:reduce){
  .ts-perimeter{opacity:.85;}
  .ts-perimeter rect{animation:none;stroke-dasharray:none;}
  .ts-perimeter .light-moving{display:none;}
  .ts-perimeter .light-static{display:block;}
}
