:root{--bg:#fff;--fg:#000}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family:Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
  display:flex;
  align-items:center;
  justify-content:center;
}
.wrap{padding:32px;text-align:center;max-width:880px}
h1{font-size:clamp(28px,6vw,64px);margin:18px 0 8px;letter-spacing:0.02em}
.sub{opacity:.7;margin:0 0 22px}
.logo{display:flex;align-items:center;justify-content:center}
.spinner{
  width:108px;height:108px;border-radius:50%;
  position:relative;display:grid;place-items:center;
  background:conic-gradient(from 0deg, #000 0 48%, #fff 48% 52%, #000 52% 100%);
  box-shadow:0 10px 24px rgba(0,0,0,0.08);
  animation:yoYoSpin 2.1s ease-in-out infinite;
}
.spinner::before{
  content:"";
  position:absolute;
  left:50%; top:-28px;
  width:10px; height:44px;
  background:#000;
  border-radius:999px;
  transform:translateX(-50%);
  box-shadow:0 0 0 2px rgba(0,0,0,0.06);
}
.spinner::after{
  content:"";
  position:absolute;
  inset:18px;
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, #fff 0 38%, #000 39% 42%, #fff 43% 100%);
  border:10px solid #000;
  box-shadow:inset 0 0 0 10px #fff;
}

@keyframes yoYoSpin{
  0%{transform:rotate(0deg) scale(1)}
  20%{transform:rotate(90deg) scale(1.08)}
  45%{transform:rotate(180deg) scale(0.96)}
  70%{transform:rotate(270deg) scale(1.08)}
  100%{transform:rotate(360deg) scale(1)}
}

@media (prefers-reduced-motion:reduce){.spinner{animation:none}}
