<div class="cdp"><div class="sources"><span>WEB</span><span>APP</span><span>STORE</span></div><div class="arrows">↓ ↓ ↓</div><div class="core"><i></i><b>PROFILE</b><small>ONE CUSTOMER</small></div><div class="arrows">↙ ↓ ↘</div><div class="outputs"><span>EMAIL</span><span>ADS</span><span>APP</span></div></div>
.cdp{width:min(90%,450px);display:grid;justify-items:center;gap:clamp(2px,1vmin,8px);font:900 clamp(10px,max(3.7vmin,1vw),16px)/1 sans-serif;letter-spacing:.06em}.sources,.outputs{width:100%;display:flex;justify-content:space-between;gap:6px}.sources span,.outputs span{flex:1;text-align:center;padding:clamp(6px,1.5vmin,13px);border:1px solid var(--line);background:var(--surface)}.sources span{animation:source 3s infinite}.sources span:nth-child(2){animation-delay:.4s}.sources span:nth-child(3){animation-delay:.8s}.arrows{color:var(--accent);font-size:clamp(15px,3.8vmin,32px);white-space:pre}.core{width:70%;min-height:clamp(36px,9vmin,75px);display:flex;align-items:center;justify-content:center;gap:8px;background:var(--fg);color:var(--bg);animation:core 3s infinite}.core i{width:clamp(16px,3vmin,27px);aspect-ratio:1;border:3px solid var(--accent);border-radius:50%}.core small{font-size:max(10px,1vw,.65em);color:var(--bg)}.outputs span{animation:output 3s steps(1) infinite}.outputs span:nth-child(2){animation-delay:.5s}.outputs span:nth-child(3){animation-delay:1s}@keyframes source{0%,20%,100%{transform:translateY(0)}35%{transform:translateY(5px);border-color:var(--accent)}}@keyframes core{0%,40%,100%{box-shadow:none}55%,75%{box-shadow:0 0 0 5px var(--accent)}}@keyframes output{0%,40%,100%{background:var(--surface);color:var(--fg)}45%,70%{background:var(--accent);color:white}}