/* Home announcement carousel — compact, looping, swipeable. Transform/opacity only (GPU friendly). */
.ann{padding:0 18px;--ann-ms:520ms}
.ann-vp{overflow:hidden;border-radius:20px;touch-action:pan-y;position:relative;opacity:0;transform:translateX(56px) scale(.98);animation:annIn .75s cubic-bezier(.16,1,.3,1) .12s forwards;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
@keyframes annIn{60%{opacity:1}to{opacity:1;transform:none}}
.ann-track{display:flex;will-change:transform;transition:transform var(--ann-ms) cubic-bezier(.22,1,.36,1)}
.ann-track.drag,.ann-track.jump{transition:none}
.ann-slide{flex:0 0 100%;min-width:0;display:flex;opacity:.35;transition:opacity var(--ann-ms) ease}
.ann-slide.is-active{opacity:1}
.ann-card{flex:1;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:20px;min-height:76px;position:relative;overflow:hidden;color:#fff;text-decoration:none;
  background:linear-gradient(135deg,#E5293C 0%,#B3162A 100%);box-shadow:0 8px 22px rgba(229,41,60,.28)}
.ann-card::before{content:'';position:absolute;inset:0;width:45%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.08),transparent);transform:translateX(-130%) skewX(-18deg);animation:annShine 7s ease-in-out 1.6s infinite;pointer-events:none;z-index:0}
@keyframes annShine{0%,55%{transform:translateX(-130%) skewX(-18deg)}85%,100%{transform:translateX(330%) skewX(-18deg)}}
.ann-card::after{content:'';position:absolute;width:120px;height:120px;border-radius:50%;top:-42px;right:-28px;background:rgba(255,255,255,.12);pointer-events:none}
a.ann-card{cursor:pointer}a.ann-card:active{filter:brightness(1.08)}
.ann-ico{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.12);border:1.5px solid rgba(255,255,255,.16);display:grid;place-items:center;flex:0 0 auto;font-size:21px;line-height:1;opacity:0;transform:scale(.7)}
.ann-body{flex:1;min-width:0;position:relative;z-index:1}
.ann-title{font-size:14.5px;font-weight:800;line-height:1.3;letter-spacing:-.005em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;opacity:0;transform:translateX(14px)}
.ann-desc{font-size:12.5px;line-height:1.45;color:rgba(255,255,255,.88);margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;opacity:0;transform:translateX(14px)}
.ann-arrow{width:18px;height:18px;stroke:rgba(255,255,255,.7);fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
/* staggered entrance each time a slide becomes active: icon → title → description */
.ann-slide.is-active .ann-ico{animation:annPop .45s cubic-bezier(.22,1,.36,1) .05s forwards,annFloat 3.2s ease-in-out .6s infinite}
.ann-slide.is-active .ann-title{animation:annSlide .5s cubic-bezier(.22,1,.36,1) .16s forwards}
.ann-slide.is-active .ann-desc{animation:annSlide .5s cubic-bezier(.22,1,.36,1) .26s forwards}
@keyframes annPop{to{opacity:1;transform:scale(1)}}
@keyframes annSlide{to{opacity:1;transform:none}}
@keyframes annFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-2.5px)}}
.ann-dots{display:flex;justify-content:center;gap:6px;margin-top:9px}
.ann-dot{width:6px;height:6px;border-radius:99px;border:0;padding:0;background:var(--tk-line,#D9DDE3);cursor:pointer;transition:width .3s ease,background .3s ease;position:relative}
.ann-dot::before{content:'';position:absolute;inset:-9px -4px}                 /* bigger touch target */
.ann-dot.on{width:20px;background:var(--r,#E53935)}
.ann-dot:focus-visible{outline:2px solid var(--r,#E53935);outline-offset:3px}
@media(max-width:360px){.ann{padding:0 14px}.ann-card{padding:12px 13px;gap:10px}.ann-ico{width:38px;height:38px;font-size:19px}.ann-title{font-size:13.5px}.ann-desc{font-size:12px}}
@media(prefers-reduced-motion:reduce){
  .ann-vp{animation:none;opacity:1;transform:none}
  .ann-track{transition:none}.ann-slide{transition:none;opacity:1}
  .ann-ico,.ann-title,.ann-desc{opacity:1!important;transform:none!important;animation:none!important}
  .ann-card::before{animation:none;display:none}
}
