/* Small, compositor-friendly movements. Content stays readable without JS. */
@keyframes cn-arrive{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes cn-pulse{0%{transform:scale(.88);opacity:.35}75%,100%{transform:scale(1.5);opacity:0}}
@keyframes cn-device-change{0%{opacity:.5;transform:translateY(5px)}100%{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
 .cn-arrive{animation:cn-arrive .72s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--cn-delay,0ms)}
 .cn-hero h1 em{background:linear-gradient(115deg,#2855ed 10%,#527bff 52%,#2855ed 90%);background-clip:text;-webkit-background-clip:text;color:transparent}
 .cn-product{position:relative;isolation:isolate;transition:transform .55s cubic-bezier(.2,.8,.2,1),box-shadow .55s;transform:perspective(1100px) rotateX(var(--cn-rx,0deg)) rotateY(var(--cn-ry,0deg)) rotate(2deg)}
 .cn-product:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;background:radial-gradient(400px circle at var(--cn-x,50%) var(--cn-y,30%),#ffffff50,transparent 65%);opacity:0;transition:opacity .4s}
 .cn-product.cn-hover:after{opacity:1}
 .cn-product.cn-hover{box-shadow:0 30px 70px #2855ed18}
 .cn-power{position:relative;isolation:isolate}
 .cn-power:before,.cn-power:after{content:"";position:absolute;inset:0;border:1px solid #5479f0;border-radius:50%;z-index:-1;opacity:0}
 .cn-product.cn-in-view .cn-power:before{animation:cn-pulse 3.6s ease-out infinite}
 .cn-product.cn-in-view .cn-power:after{animation:cn-pulse 3.6s 1.8s ease-out infinite}
 .cn-motion-paused .cn-power:before,.cn-motion-paused .cn-power:after{animation-play-state:paused!important}
 .cn-device-name.cn-changed{display:inline-block;animation:cn-device-change .32s ease-out}
 .cn-device-tabs button{transition:background .25s,color .25s,box-shadow .25s,transform .25s}
 .cn-device-tabs button[aria-selected=true]{box-shadow:0 3px 14px #2855ed12}
 .cn-plan,.cn-device-grid article{transition:translate .3s,border-color .3s,box-shadow .3s}
 .cn-header nav a,.cn-textlink{transition:color .2s}
 .cn-country-list span{transition:transform .25s,background .25s,border-color .25s}
 .cn-faq-list details[open] p{animation:cn-arrive .35s cubic-bezier(.16,1,.3,1)}
 .btn,.cn-login{transition:transform .22s,box-shadow .22s,background .22s}
 .btn:active,.cn-login:active{transform:scale(.975)}
 @media(hover:hover) and (pointer:fine){
  .cn-plan:hover,.cn-device-grid article:hover{translate:0 -6px;box-shadow:0 17px 40px #1720390d;border-color:#aebff3}
  .cn-plan-featured:hover{border-color:var(--accent)}
  .cn-country-list span:hover{transform:translateY(-3px);background:#ffffff15;border-color:#ffffff80}
  .btn:hover{transform:translateY(-2px);box-shadow:0 8px 22px #2855ed22}
  .cn-header nav a:hover,.cn-textlink:hover{color:var(--accent)}
 }
 @media(max-width:740px){.cn-product{transform:none}.cn-arrive{animation-duration:.55s}}
}
@media(prefers-reduced-motion:reduce){.cn-arrive,.cn-changed{opacity:1;transform:none}.cn-product{transform:none}.cn-power:before,.cn-power:after{display:none}}
