/* Heartswill causes: illustrated cards, pictograms, proof journey, season strip. */
#cz-top{display:grid;gap:18px}
.cz-glance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.cz-glance>div{background:var(--card,#fff);border:1px solid var(--line,#f0e6e8);border-radius:20px;padding:18px 20px;display:grid;gap:4px;position:relative;overflow:hidden}
.cz-glance>div::after{content:"";position:absolute;right:-18px;top:-18px;width:70px;height:70px;border-radius:50%;background:var(--blush,#fdf1f2)}
.cz-glance b{font:500 2rem/1 var(--display,inherit);letter-spacing:-.02em;color:var(--ink,#1f1c22);position:relative;z-index:1}
.cz-glance span{font-size:.84rem;color:var(--mute,#57525c);position:relative;z-index:1}
.cz-glance>div{opacity:0;transform:translateY(10px);transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1)}
.cz-glance.in>div{opacity:1;transform:none}.cz-glance.in>div:nth-child(2){transition-delay:.08s}.cz-glance.in>div:nth-child(3){transition-delay:.16s}.cz-glance.in>div:nth-child(4){transition-delay:.24s}
.cz-filters{display:flex;flex-wrap:wrap;gap:8px}
.cz-filters button{border:1px solid var(--line,#f0e6e8);background:var(--card,#fff);color:var(--ink,#1f1c22);font:600 .86rem var(--body,system-ui);padding:8px 16px;border-radius:999px;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.cz-filters button:hover{border-color:var(--rose,#c00e29);transform:translateY(-1px)}
.cz-filters button.on{background:var(--rose,#c00e29);border-color:var(--rose,#c00e29);color:#fff}

.cz-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
.cz{background:var(--card,#fff);border:1px solid var(--line,#f0e6e8);border-radius:24px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 2px rgba(31,28,34,.04);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,opacity .5s;opacity:0;transform:translateY(16px)}
.cz.in{opacity:1;transform:none;transition-delay:var(--d,0ms)}
.cz:hover{transform:translateY(-4px);box-shadow:0 24px 50px -30px rgba(120,10,30,.45)}
.cz[hidden]{display:none}
.cz.feat{border-color:color-mix(in srgb,var(--rose,#c00e29) 40%,var(--line,#f0e6e8))}
.cz-art{position:relative;background:linear-gradient(180deg,color-mix(in srgb,var(--blush,#fdf1f2) 55%,var(--card,#fff)),var(--card,#fff));border-bottom:1px solid var(--line,#f0e6e8);aspect-ratio:240/130;display:grid;place-items:center}
.cz-art svg{width:100%;height:100%;display:block}
.cz-st{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:6px;font:700 .66rem var(--body,system-ui);letter-spacing:.1em;text-transform:uppercase;background:rgba(255,255,255,.9);color:var(--mute,#57525c);padding:5px 10px;border-radius:999px;backdrop-filter:blur(6px)}
.cz-st.s-pilot,.cz-st.s-active{color:#167a42}
.cz-dot{width:7px;height:7px;border-radius:50%;background:#22a35a;box-shadow:0 0 0 0 rgba(34,163,90,.5);animation:cz-ping 1.8s infinite}
.cz-feat{position:absolute;right:12px;top:12px;font:700 .66rem var(--body,system-ui);letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--grad-btn,var(--rose,#c00e29));padding:5px 10px;border-radius:999px}
.cz-body{padding:18px 20px 16px;display:grid;gap:10px}
.cz-body .cat{font:700 .68rem var(--body,system-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--rose,#c00e29)}
.cz-body h2{font-size:clamp(1.45rem,1.9vw,1.8rem);line-height:1.1;margin:-4px 0 0;overflow-wrap:break-word}
.cz-body .tagl{margin:0;font:400 1rem/1.4 var(--display,inherit);color:var(--ink,#1f1c22)}
.cz-ngo{font-size:.8rem;color:var(--mute,#57525c)}
/* what your money buys */
.cz-buy{background:var(--paper,#fbf7f1);border:1px solid var(--line,#f0e6e8);border-radius:16px;padding:12px 14px;display:grid;gap:8px}
.cz-buy-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.cz-buy-h span{font-size:.86rem;color:var(--mute,#57525c)}.cz-buy-h b{color:var(--ink,#1f1c22);font-size:1rem}
.cz-buy-h strong{color:var(--rose,#c00e29);font:600 1rem var(--body,system-ui)}
.cz-pic{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-height:24px}
.cz-pic i{width:22px;height:22px;border-radius:7px;background:var(--blush,#fdf1f2);display:grid;place-items:center;transform:translateY(4px);opacity:0}
.cz.in .cz-pic i{animation:cz-pop .5s ease-out forwards;animation-delay:calc(var(--d,0ms) + 250ms + var(--k) * 70ms)}
.cz-pic svg{width:14px;height:14px;fill:none;stroke:var(--rose,#c00e29);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cz-pic em{font:700 .8rem var(--body,system-ui);font-style:normal;color:var(--rose,#c00e29);margin-left:4px}
.cz-buy small{font-size:.76rem;color:var(--mute,#57525c)}
/* proof journey */
.cz-jr{list-style:none;margin:2px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);position:relative}
.cz-jr::before{content:"";position:absolute;left:16.6%;right:16.6%;top:15px;height:2px;background:repeating-linear-gradient(90deg,var(--line,#f0e6e8) 0 6px,transparent 6px 10px)}
.cz-jr li{display:grid;justify-items:center;gap:6px;font-size:.74rem;color:var(--mute,#57525c);position:relative;text-align:center}
.cz-jr li span{width:32px;height:32px;border-radius:50%;background:var(--card,#fff);border:1.5px solid var(--line,#f0e6e8);display:grid;place-items:center;transition:border-color .3s}
.cz-jr svg{width:15px;height:15px;fill:none;stroke:var(--rose,#c00e29);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cz-run{position:absolute;top:11px;left:16.6%;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:var(--rose,#c00e29);box-shadow:0 0 0 4px color-mix(in srgb,var(--rose,#c00e29) 18%,transparent);opacity:0}
.cz.live.in .cz-run{animation:cz-run 4.5s cubic-bezier(.6,0,.4,1) infinite}
.cz.live .cz-jr li span{border-color:color-mix(in srgb,var(--rose,#c00e29) 35%,var(--line,#f0e6e8))}
.cz-foot{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:.82rem;color:var(--mute,#57525c);border-top:1px solid var(--line,#f0e6e8);padding-top:12px}
.cz-foot b{color:var(--ink,#1f1c22)}
.cz-season{background:var(--blush,#fdf1f2);color:var(--rose,#c00e29);font-weight:600;padding:3px 10px;border-radius:999px;font-size:.74rem;white-space:nowrap}
.cz-more summary{cursor:pointer;font:600 .84rem var(--body,system-ui);color:var(--rose,#c00e29);list-style:none;display:flex;align-items:center;gap:6px}
.cz-more summary::-webkit-details-marker{display:none}
.cz-more summary::after{content:"+";font-size:1.1rem;line-height:1;transition:transform .25s}.cz-more[open] summary::after{transform:rotate(45deg)}
.cz-more dl{margin:8px 0 0;display:grid;gap:8px}.cz-more .cdef{display:grid;gap:2px}.cz-more dt{font:700 .68rem var(--body,system-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--mute,#57525c)}.cz-more dd{margin:0;font-size:.88rem}
.cz-more .note{margin:8px 0 0}
/* illustration motion: the same slow orbit and pulse as the hero */
.cz-art svg *{animation-play-state:paused}.cz.in .cz-art svg *{animation-play-state:running}
.cz-ring{transform-box:view-box;transform-origin:120px 70px;animation:cz-orb 60s linear infinite}.cz-ring.rev{animation-duration:90s;animation-direction:reverse}
.cz-pulse{transform-box:view-box;transform-origin:120px 70px;animation:cz-pulse 3.6s ease-out infinite}.cz-pulse.p2{animation-delay:1.8s}
.cz:not(.live) .cz-pulse{animation-duration:6s;stroke-opacity:.15}
@keyframes cz-orb{to{transform:rotate(360deg)}}
@keyframes cz-pulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.7);opacity:0}}
@keyframes cz-pop{to{transform:none;opacity:1}}
@keyframes cz-ping{0%{box-shadow:0 0 0 0 rgba(34,163,90,.5)}80%,100%{box-shadow:0 0 0 7px rgba(34,163,90,0)}}
@keyframes cz-run{0%{left:16.6%;opacity:0}8%{opacity:1}45%,55%{left:50%}92%{left:83.4%;opacity:1}100%{left:83.4%;opacity:0}}
/* season strip */
.cz-cal{display:grid;gap:14px;opacity:0;transform:translateY(12px);transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1)}.cz-cal.in{opacity:1;transform:none}
.cz-cal-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}.cz-cal-h h2{margin:0}
.cz-cal-grid{display:grid;grid-template-columns:minmax(120px,190px) repeat(12,minmax(0,1fr));gap:6px 4px;align-items:center;position:relative;font-size:.8rem}
.cz-m{text-align:center;font:600 .72rem var(--body,system-ui);color:var(--mute,#57525c);text-transform:uppercase;letter-spacing:.06em;padding-bottom:4px}
.cz-m.now{color:var(--rose,#c00e29)}
.cz-cn{font:600 .86rem var(--body,system-ui);color:var(--ink,#1f1c22);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:8px}
.cz-cal-grid i{height:14px;border-radius:5px;background:var(--line,#f0e6e8);opacity:.55}
.cz-cal-grid i.on{background:linear-gradient(90deg,#ff7070,var(--rose,#c00e29));opacity:1;transform:scaleX(0);transform-origin:left}
.cz-cal.in .cz-cal-grid i.on{animation:cz-bar .5s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--r) * 70ms + var(--k) * 25ms)}
.cz-now{position:absolute;top:0;bottom:0;width:2px;border-radius:2px;background:var(--rose,#c00e29);opacity:.35;left:calc(min(190px,max(120px,16%)) + (100% - min(190px,max(120px,16%))) * (var(--now) + .5) / 12)}
@keyframes cz-bar{to{transform:scaleX(1)}}
/* responsive */
@media (max-width:1060px){.cz-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.cz-glance{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .cz-grid{grid-template-columns:minmax(0,1fr)}
  .cz-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -4px;padding:2px 4px}.cz-filters::-webkit-scrollbar{display:none}.cz-filters button{flex:none}
  /* season strip turns vertical: months down, causes across as compact rows */
  .cz-cal-grid{grid-template-columns:minmax(0,1fr) repeat(12,10px);gap:8px 3px}
  .cz-m{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.62rem;padding:0 0 4px;justify-self:center}
  .cz-cal-grid i{height:18px;border-radius:4px}
  .cz-now{display:none}
  .cz-glance b{font-size:1.6rem}
}
:root[data-theme="dark"] .cz-art svg circle[fill="#fff"]{fill:var(--card,#1d1a1f)}
:root[data-theme="dark"] .cz-st{background:rgba(20,18,22,.75)}
@media (prefers-reduced-motion:reduce){.cz,.cz-glance>div,.cz-cal{opacity:1!important;transform:none!important;transition:none}.cz-art svg *,.cz-run,.cz-dot{animation:none!important}.cz-art animateMotion,.cz-art animate{display:none}.cz-trav{display:none}.cz-pic i{transform:none;opacity:1;animation:none!important}.cz-cal-grid i.on{transform:none;animation:none!important}}
