@charset "UTF-8";
#article-275 .spinner{
  width: min(40px, calc(40 / 640 * 100vw));
  height: min(40px, calc(40 / 640 * 100vw));
  border: min(4px, calc(4 / 640 * 100vw)) solid rgba(0,0,0,0.08);
  border-top-color: #3498db;
  border-radius: 50%;
  animation: spin 0.9s linear infinite;
  display:inline-block;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

/* prefers-reduced-motion ‚É”z—¶ */
@media (prefers-reduced-motion: reduce){
  #article-275 .spinner {
    animation: none; opacity: 0.8;
  }
}


#article-275 .dot-pulse {
  display: inline-flex;
  gap: 8px;
  align-items: center;
}
#article-275 .dot-pulse span {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #2d9cdb;
  transform-origin: center;
  animation: dotPulse 0.9s cubic-bezier(.2,.6,.2,1) infinite;
}
#article-275 .dot-pulse span:nth-child(2) {
  animation-delay: 0.12s;
}
#article-275 .dot-pulse span:nth-child(3) {
  animation-delay: 0.24s;
}
@keyframes dotPulse {
  0%{ transform: scale(1); opacity:0.6; }
  50%{ transform: scale(1.6); opacity:1; }
  100%{ transform: scale(1); opacity:0.6; }
}
@media (prefers-reduced-motion: reduce) {
  #article-275 .dot-pulse span {
    animation: none;
    opacity: 0.85;
    transform: none;
  }
}
@media screen and (max-width: 768px) {
  #article-275 .dot-pulse {
    gap: calc(16 / 640 * 100vw);
  }
  #article-275 .dot-pulse span {
    width: calc(10 / 640 * 100vw);
    height: calc(10 / 640 * 100vw);
  }
}


#article-275 .bouncing-dots {
  display: inline-flex;
  gap: 8px;
  align-items: flex-end;
  height: 20px;
}
#article-275 .bouncing-dots span {
  display: inline-flex;
  width: 8px;
  height: 8px;
  background-color: #ff6b6b;
  border-radius: 50%;
  animation: bounce 0.9s cubic-bezier(.28,.84,.42,1) infinite;
}
#article-275 .bouncing-dots span:nth-child(2) {
  animation-delay: 0.12s;
}
#article-275 .bouncing-dots span:nth-child(3) {
  animation-delay: 0.24s;
}
@keyframes bounce{
  0%{ transform: translateY(0); }
  50%{ transform: translateY(-10px); }
  100%{ transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  #article-275 .bouncing-dots span {
    animation: none;
  }
}
@media screen and (max-width: 768px) {
  #article-275 .bouncing-dots {
    gap: calc(16 / 640 * 100vw);
    height: calc(20 / 640 * 100vw);
  }
  #article-275 .bouncing-dots span {
    width: calc(16 / 640 * 100vw);
    height: calc(16 / 640 * 100vw);
  }
}



#article-275 .loading-bar {
  width: min(260px, calc(260 / 640 * 100vw));
  height: min(6px, calc(6 / 640 * 100vw));
  background-color: rgba(0,0,0,0.06);
  border-radius: min(6px, calc(6 / 640 * 100vw));
  overflow: hidden;
  margin-inline: auto;
}
#article-275 .loading-bar__inner {
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg,#6a11cb,#2575fc);
  animation: barMove 1.2s cubic-bezier(.2,.6,.2,1) infinite;
}
@keyframes barMove {
  0%{ transform: translateX(-100%); }
  50%{ transform: translateX(20%); }
  100%{ transform: translateX(100%); }
}
@media (prefers-reduced-motion: reduce){
  #article-275 .loading-bar__inner {
    animation: none;
  }
}


#article-275 .skeleton {
  display: flex;
  align-items: flex-start;
  gap: min(12px, calc(12 / 640 * 100vw));
  width: min(320px, calc(320 / 640 * 100vw));
  margin-inline: auto;
}
#article-275 .skeleton__thumb {
  width: min(100px, calc(100 / 640 * 100vw));
  height: min(80px, calc(80 / 640 * 100vw));
  background-color: #e6e6e6;
  border-radius: 6px;
}
#article-275 .skeleton__lines div {
  width: min(220px, calc(220 / 640 * 100vw));
  height: min(12px, calc(12 / 640 * 100vw));
  background: linear-gradient(90deg, #e6e6e6, #f5f5f5, #e6e6e6);
  background-size: 200% 100%;
  border-radius: 6px;
  margin-bottom: min(8px, calc(8 / 640 * 100vw));
  animation: shimmer 1.2s linear infinite;
}
@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position:-200% 0; }
}
@media (prefers-reduced-motion: reduce) {
  #article-275 .skeleton__lines div { animation: none; }
}


#article-275 .dual-ring {
  position: relative;
  display: inline-block;
  width: min(48px, calc(48 / 640 * 100vw));
  height: min(48px, calc(48 / 640 * 100vw));
}
#article-275 .dual-ring::before,
#article-275 .dual-ring::after {
  content: '';
  position: absolute;
  inset: 0;
  border: min(4px, calc(4 / 640 * 100vw)) solid rgb(204, 204, 204, 0.2);
  border-radius: 50%;
}
#article-275 .dual-ring::before {
  border-top-color: #ffb86b;
  animation: spin 1.1s linear infinite;
}
#article-275 .dual-ring::after {
  border-bottom-color: #6a11cb;
  scale: 0.75;
  animation: spin 1.6s linear reverse infinite;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  #article-275 .dual-ring::before,
  #article-275 .dual-ring::after { animation:none; }
}


#article-275 .rotating-squares {
  position: relative;
  display: inline-block;
  width: min(48px, calc(48 / 640 * 100vw));
  height: min(48px, calc(48 / 640 * 100vw));
}
#article-275 .rotating-squares span {
  position: absolute;
  inset: 50%;
  translate: -50% -50%;
  width: min(18px, calc(18 / 640 * 100vw));
  height: min(18px, calc(18 / 640 * 100vw));
  background-color: #1abc9c;
  margin: 0 auto;
  transform-origin: center;
  animation: rotateSquare 1.2s cubic-bezier(.2, .8, .2, 1) infinite;
}
#article-275 .rotating-squares span:nth-child(1) {
  transform: translate(-12px, -12px);
  animation-delay: 0s;
}
#article-275 .rotating-squares span:nth-child(2) {
  transform: translate(12px, -12px);
  animation-delay: 0.15s;
}
#article-275 .rotating-squares span:nth-child(3) {
  transform: translate(12px, 12px);
  animation-delay: 0.3s;
}
#article-275 .rotating-squares span:nth-child(4) {
  transform: translate(-12px, 12px);
  animation-delay: 0.45s;
}
@keyframes rotateSquare{
  0%{ transform: scale(0.6) rotate(0deg); opacity:0.6; }
  50%{ transform: scale(1.05) rotate(180deg); opacity:1; }
  100%{ transform: scale(0.6) rotate(360deg); opacity:0.6; }
}
@media (prefers-reduced-motion: reduce) {
  #article-275 .rotating-squares span { animation:none; }
}


#article-275 .circle-progress {
  display: inline-grid;
  width: min(80px, calc(80 / 640 * 100vw));
  height: min(80px, calc(80 / 640 * 100vw));
  border-radius: 50%;
  place-items: center;
  background: conic-gradient(#3498db calc(var(--p, 65) * 1%), rgba(0, 0, 0, 0.08) 0);
  --p: 65;
  font-weight: 600;
  color: #222;
}
#article-275 .circle-progress span {
  font-size: min(14px, calc(14 / 640 * 100vw));
  background-color: #fff;
  padding: 6px 8px;
  border-radius: 6px;
}


#article-275 .wave-loader {
  position: relative;
  width: 100%;
  max-width: min(320px, calc(320 / 640 * 100vw));
  height: 10px;
  border-radius: min(999px, calc(999 / 640 * 100vw));
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.2));
  margin-inline: auto;
  overflow: hidden;
}
#article-275 .wave-loader::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.35), rgba(255,255,255,0));
  transform: translateX(-100%);
  animation: wave 1.1s linear infinite;
}
@keyframes wave {
  100% { transform: translateX(100%); }
}
@media (prefers-reduced-motion: reduce) {
  #article-275 .wave-loader::before{ animation:none; }
}


#article-275 .pulse-halo {
  position: relative;
  display: inline-block;
  width: min(48px, calc(48 / 640 * 100vw));
  height: min(48px, calc(48 / 640 * 100vw));
  border-radius: 50%;
  background-color: #6a11cb;
}
#article-275 .pulse-halo::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  box-shadow: 0 0 0 6px rgba(106, 17, 203, 0.18);
  animation: halo 1.4s ease-out infinite;
}
@keyframes halo {
  0%{ transform: scale(1); opacity:1; }
  100%{ transform: scale(1.9); opacity:0; }
}
@media (prefers-reduced-motion: reduce) {
  #article-275 .pulse-halo::after{ animation:none; opacity:0.6; }
}