/* Homepage Moments banner. The icon pops once. Themed bits fall the full viewport, then stop. */
.moment{position:relative;padding:0;margin:0;background:linear-gradient(100deg,#FFF7ED 0%,#FFF1EB 45%,#F0FDFA 100%);border-bottom:1px solid #F5E1D3}
html.moment-hide .moment,html.moment-pending .moment{display:none}
.moment .wrap{position:relative;z-index:1;display:flex;align-items:center;gap:8px;min-height:0;padding-top:12px;padding-bottom:12px}
.moment-art{position:relative;z-index:2;flex:0 0 auto;width:40px;height:40px;animation:m-pop .62s cubic-bezier(.2,.85,.2,1) both;transform-origin:center}
.moment-art svg{width:40px;height:40px;overflow:visible}
.moment-copy{flex:1 1 auto;min-width:0}
.moment-title{font-family:'Inter Tight',Inter,sans-serif;font-weight:750;font-size:16px;letter-spacing:-.015em;color:var(--navy);margin:0;line-height:1.2;white-space:normal;overflow:visible}
.moment-sub{font-size:14px;color:var(--s600);margin:2px 0 0;line-height:1.3;white-space:normal;overflow:visible}
.moment-link,.moment-static{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font-weight:inherit;white-space:normal}
.moment-link:hover .moment-title{text-decoration:underline;text-underline-offset:.12em}
.moment-link:focus-visible{outline:2px solid var(--acc2);outline-offset:2px;border-radius:8px}
.moment-close{position:relative;z-index:4;flex:0 0 auto;width:36px;height:36px;border:0;background:transparent;color:var(--s500);font-size:22px;line-height:1;border-radius:8px;cursor:pointer}
.moment-close:hover{background:rgba(15,23,42,.06)}
.moment-close:focus-visible{outline:2px solid var(--acc2);outline-offset:2px}
.m-ring{fill:none;stroke:#FED7AA;stroke-width:2}
.m-draw{fill:none;stroke:var(--acc2);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:160;stroke-dashoffset:0}
.m-fade,.m-bell{fill:#fff;stroke:var(--acc2);stroke-width:3}
.m-fill{fill:var(--acc2);stroke:none}

/* Themed bits drift down behind the text like confetti: one steady gravity fall (translate), with
   side-to-side flutter (transform) and tilt (rotate) layered on their own clocks. Staggered starts
   keep the stream continuous; the last piece clears by about 5.8s. */
.moment-burst{position:fixed;inset:0;z-index:30;overflow:hidden;pointer-events:none}
.bit{position:absolute;left:78px;top:42px;width:26px;height:26px;color:#0D9488;opacity:0;animation:m-fall var(--d) cubic-bezier(.45,.15,.85,.85) var(--t) both,m-fade var(--d) linear var(--t) both,m-sway var(--sw,.9s) ease-in-out calc(var(--t) - .45s) 6 alternate both,m-spin var(--sp,1.15s) ease-in-out var(--t) 5 alternate both}
.bit path,.bit circle{fill:currentColor}
.bit path[fill="none"]{fill:none}
.bit.c2{color:#F97362}
.bit.c3{color:#F59E0B}
.bit.c4{color:#C2410C}
.bit:nth-child(1){--bx:22px;--by:-46px;--fx:86px;--fy:28px;--t:0s;--d:4.7s}
.bit:nth-child(2){--bx:70px;--by:-38px;--fx:168px;--fy:18px;--t:.6s;--d:4.6s;--r:-1;--sw:1.05s;--sp:1s}
.bit:nth-child(3){--bx:118px;--by:-18px;--fx:236px;--fy:34px;--t:.3s;--d:4.8s;--sw:.75s;--sp:1.35s}
.bit:nth-child(4){--bx:46px;--by:6px;--fx:124px;--fy:58px;--t:.9s;--d:4.7s;--r:-1}
.bit:nth-child(5){--bx:150px;--by:-30px;--fx:280px;--fy:8px;--t:.15s;--d:4.6s;--sw:1.05s;--sp:1s}
.bit:nth-child(6){--bx:-18px;--by:-28px;--fx:36px;--fy:52px;--t:.75s;--d:4.8s;--r:-1;--sw:.75s;--sp:1.35s}
.bit:nth-child(7){--bx:96px;--by:14px;--fx:210px;--fy:62px;--t:.45s;--d:4.7s}
.bit:nth-child(8){--bx:180px;--by:-8px;--fx:300px;--fy:46px;--t:1.05s;--d:4.75s;--r:-1;--sw:1.05s;--sp:1s}
.bit:nth-child(9){--bx:34px;--by:-52px;--fx:110px;--fy:40px;--t:.075s;--d:4.8s;--sw:.75s;--sp:1.35s}
.bit:nth-child(10){--bx:132px;--by:-44px;--fx:248px;--fy:24px;--t:.675s;--d:4.7s;--r:-1}
.bit:nth-child(11){--bx:8px;--by:10px;--fx:72px;--fy:64px;--t:.375s;--d:4.6s;--sw:1.05s;--sp:1s}
.bit:nth-child(12){--bx:88px;--by:-8px;--fx:190px;--fy:54px;--t:.975s;--d:4.8s;--r:-1;--sw:.75s;--sp:1.35s}
.bit:nth-child(13){--bx:164px;--by:16px;--fx:292px;--fy:60px;--t:.225s;--d:4.7s}
.bit:nth-child(14){--bx:24px;--by:-16px;--fx:64px;--fy:6px;--t:.825s;--d:4.6s;--r:-1;--sw:1.05s;--sp:1s}
.bit:nth-child(15){--bx:210px;--by:-34px;--fx:340px;--fy:16px;--t:.525s;--d:4.8s;--sw:.75s;--sp:1.35s}
@keyframes m-pop{0%{transform:scale(.12);opacity:0}40%{transform:scale(1.62);opacity:1}68%{transform:scale(.92)}100%{transform:scale(1);opacity:1}}
@keyframes m-fall{from{translate:var(--bx) calc(var(--by) - 12vh)}to{translate:var(--fx) calc(var(--fy) + 100vh)}}
@keyframes m-fade{0%{opacity:0}10%{opacity:1}82%{opacity:1}100%{opacity:0}}
@keyframes m-sway{from{transform:translateX(-9px)}to{transform:translateX(9px)}}
@keyframes m-spin{from{rotate:calc(var(--r,1) * -24deg)}to{rotate:calc(var(--r,1) * 24deg)}}

@media (prefers-reduced-motion:reduce){
  .moment,.moment *{animation:none!important;transition:none!important}
  .moment-burst{display:none!important}
}
@media (max-width:760px){
  .moment .wrap{width:min(1200px,calc(100% - 16px));gap:8px;align-items:center;padding:8px 34px 8px 0;min-height:80px}
  .moment-art,.moment-art svg{width:32px;height:32px}
  .moment-link,.moment-static{gap:8px}
  .moment-title{font-size:16px;line-height:1.2}
  .moment-sub{font-size:13.5px;line-height:1.3}
  .moment-close{position:absolute;top:6px;right:2px;width:32px;height:32px}
  .bit{left:8%;top:0;width:18px;height:18px}
}
