.xc-page{max-width:1120px;margin:0 auto;padding:2rem 1rem 4rem}.xc-hero{padding:2rem 0}.xc-hero p{max-width:750px;line-height:1.7}.xc-wordmark{font-size:clamp(2rem,5vw,3.5rem)}.xc-primary{color:var(--saycompute-primary)}.xc-accent{color:var(--saycompute-accent)}.xc-eyebrow{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600}.xc-search{display:flex;gap:1rem;flex-wrap:wrap;align-items:end;margin-bottom:2rem}.xc-search label{display:block;margin-bottom:.4rem}.xc-search input,.xc-search select{padding:.6rem;border:1px solid #94a3b8;border-radius:.4rem;max-width:100%}.xc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:1.15rem}.xc-card,.xc-empty{border:1px solid #cbd5e1;border-radius:.75rem;padding:1.4rem;margin-bottom:1rem;background:var(--panel-bg,#fff);overflow-wrap:anywhere}.xc-card h2{font-size:1.25rem;margin-bottom:.6rem}.xc-card p{line-height:1.65}.xc-card form+form{margin-top:1.5rem}.xc-editor{display:block;width:100%;box-sizing:border-box;font:14px/1.55 ui-monospace,monospace;margin:.6rem 0 1rem;padding:1rem;border:1px solid #94a3b8;border-radius:.4rem}.xc-pagination{display:flex;justify-content:space-between;margin-top:1rem}.xc-prose{white-space:pre-wrap}.xc-card summary{cursor:pointer;font-weight:600;margin-bottom:1rem}

.xc-collection-row { display: flex; gap: 1rem; overflow-x: auto; padding-bottom: .5rem; }
.xc-collection-card { display: flex; flex-direction: column; gap: .25rem; min-width: 220px; max-width: 260px; text-decoration: none; color: inherit; }
.xc-collection-card img, .xc-collection-image { max-width: 100%; border-radius: 8px; }

.xc-pack-icon { display: inline-block; font-size: 4rem; line-height: 1; }
svg.xc-pack-icon { width: 1em; height: 1em; flex-shrink: 0; vertical-align: middle; }
.xc-pack-icon-hero, .xc-hero > .xc-pack-icon { font-size: 6rem; }
.xc-pack-icon-inline, .xc-empty li > .xc-pack-icon { font-size: 2.3rem; margin: 0 .35rem 0 0; vertical-align: -0.15em; }
.xc-pack-desc { min-height: 3.2em; color: #334155; }
.xc-badge { display: inline-block; padding: .15rem .5rem; border-radius: 999px; background: color-mix(in srgb, var(--xc-ink, var(--saycompute-accent)) 16%, #fff); color: color-mix(in srgb, var(--xc-ink, var(--saycompute-accent)) 70%, #06341f); font-size: .75rem; font-weight: 700; }
.xc-pack-meta { font-size: .85rem; color: #64748b; }

.xc-pack-card {
  --xc-ink: var(--saycompute-accent);
  --xc-accent: var(--saycompute-primary);
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  color: #172238;
  background: linear-gradient(160deg, #fff 40%, color-mix(in srgb, var(--xc-accent) 9%, #fff));
  border-color: color-mix(in srgb, var(--xc-ink) 38%, #cbd5e1);
  box-shadow: 0 8px 20px color-mix(in srgb, var(--xc-ink) 10%, transparent);
  transition: transform .18s ease, box-shadow .18s ease;
}
.xc-pack-card:hover, .xc-pack-card:focus-within {
  transform: translateY(-3px);
  box-shadow: 0 14px 28px color-mix(in srgb, var(--xc-ink) 22%, transparent);
}
.xc-pack-card:focus-visible, .xc-pack-card a:focus-visible { outline: 3px solid var(--xc-ink); outline-offset: 3px; }
.xc-pack-card .xc-pack-body { padding: 1.05rem 1.2rem 1.2rem; border-top: 3px solid var(--xc-ink); flex: 1; }
.xc-pack-card .xc-eyebrow { color: var(--xc-ink); }
.xc-pack-card h2 { margin: .15rem 0 .45rem; }
.xc-pack-card h2 a { color: inherit; text-decoration: none; }
.xc-pack-card h2 a:hover { color: var(--xc-ink); }

.xc-pack-banner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 11.5rem;
  color: var(--xc-ink);
  isolation: isolate;
  background:
    radial-gradient(ellipse at 8% 8%, color-mix(in srgb, var(--xc-accent) 65%, #fff), transparent 65%),
    linear-gradient(135deg, color-mix(in srgb, var(--xc-ink) 38%, #fff), color-mix(in srgb, var(--xc-accent) 30%, #fff));
}
.xc-pack-banner::before {
  content: "";
  position: absolute;
  width: 7.4rem;
  height: 7.4rem;
  border-radius: 1.8rem;
  background: #ffffffeb;
  border: 1px solid #fff;
  box-shadow: 0 10px 24px color-mix(in srgb, var(--xc-ink) 20%, transparent);
  z-index: 1;
}
.xc-pack-banner .xc-pack-icon {
  position: relative;
  z-index: 1;
  font-size: 5rem;
}
.xc-pack-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .45;
  pointer-events: none;
}
.xc-pack-card[data-pattern="stripes"] .xc-pack-banner::after {
  background: repeating-linear-gradient(-28deg, color-mix(in srgb, var(--xc-ink) 28%, transparent) 0 8px, transparent 8px 16px);
}
.xc-pack-card[data-pattern="dots"] .xc-pack-banner::after {
  background-image: radial-gradient(color-mix(in srgb, var(--xc-ink) 42%, #fff) 1.4px, transparent 1.6px);
  background-size: 14px 14px;
}
.xc-pack-card[data-pattern="grid"] .xc-pack-banner::after {
  background-image:
    linear-gradient(color-mix(in srgb, var(--xc-ink) 22%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--xc-ink) 22%, transparent) 1px, transparent 1px);
  background-size: 18px 18px;
}
.xc-pack-card[data-pattern="chevron"] .xc-pack-banner::after {
  background-image:
    linear-gradient(135deg, var(--xc-ink) 25%, transparent 25%),
    linear-gradient(225deg, var(--xc-ink) 25%, transparent 25%);
  background-size: 36px 36px;
  opacity: .14;
}
.xc-pack-card[data-pattern="waves"] .xc-pack-banner::after {
  background:
    radial-gradient(circle at 20% 80%, color-mix(in srgb, var(--xc-ink) 28%, transparent) 0 18%, transparent 19%),
    radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--xc-ink) 22%, transparent) 0 16%, transparent 17%);
}
.xc-pack-card[data-pattern="diag"] .xc-pack-banner::after {
  background: linear-gradient(35deg, transparent 35%, color-mix(in srgb, var(--xc-ink) 24%, transparent) 35% 55%, transparent 55%);
}

.xc-pack-card[data-pattern="waves"] .xc-pack-banner::before { border-radius: 50%; }
.xc-pack-card[data-pattern="diag"] .xc-pack-banner::before { border-radius: 2.5rem .9rem; }

@media (prefers-reduced-motion: reduce) {
  .xc-pack-card { transition: none; }
  .xc-pack-card:hover, .xc-pack-card:focus-within { transform: none; }
}
