/* The home's banner (default/index.pug, public/js/hero-art.js): an idea is handwritten, its line becomes a moving
   drawing of it, which crumples into the next idea. One drawing stays still for visitors who ask for less motion. */
.cq-hero--art { position: relative; overflow: hidden; isolation: isolate; }
.cq-hero--ink { padding: 88px var(--cq-gutter); text-align: left; background: var(--cq-color-canvas, #fff); }
.cq-ink-split { width: 100%; max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: center; gap: 40px; }

/* the words: large and tight, with room around them */
.cq-ink-words { display: grid; gap: 20px; justify-items: start; }
.cq-hero-title { margin: 0; font-size: clamp(40px, 5vw, 58px); font-weight: 600; letter-spacing: -0.035em; line-height: 1.04; text-wrap: balance; }
html body .cq-hero--ink .cq-hero-title { color: var(--cq-color-ink, #0a0a0b); }
.cq-hero-sub { margin: 0; max-width: 36ch; color: var(--cq-color-text-muted, #5f5f5f); font-size: 18px; line-height: 1.5; letter-spacing: -0.005em; }
.cq-hero--ink .cq-cta { justify-content: flex-start; margin-top: 8px; }
.cq-hero--ink .cq-cta .btn { display: inline-flex; align-items: center; justify-content: center; height: 44px; padding: 0 20px; border-radius: 10px; font-size: 15px; font-weight: 500; }
/* one quiet arrival: the words come into focus */
.cq-hero-split > * { animation: cq-arrive .9s cubic-bezier(.2, .7, .2, 1) both; }
.cq-hero-split > :nth-child(2) { animation-delay: .12s; }
.cq-hero-split > :nth-child(3) { animation-delay: .24s; }
@keyframes cq-arrive { from { opacity: 0; filter: blur(8px); transform: translateY(8px); } to { opacity: 1; filter: none; transform: none; } }

/* the drawing: one line, its dots and crosses once the words are written, and a ground under what walks or rolls */
.cq-ink { width: 100%; height: auto; overflow: visible; color: var(--cq-color-ink, #0a0a0b); }
.cq-ink-line { fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.cq-ink-marks { fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; opacity: 0; transition: opacity .3s ease; }
.cq-ink.is-marked .cq-ink-marks { opacity: 1; }
.cq-ink-ground { fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-dasharray: 2 9; opacity: 0; transition: opacity .8s ease; }
.cq-ink.is-walking .cq-ink-ground { opacity: .35; }

@media (max-width: 899px) {
  .cq-ink-split { grid-template-columns: minmax(0, 1fr); }
  .cq-hero--ink { text-align: center; }
  .cq-ink-words { justify-items: center; }
  .cq-hero--ink .cq-cta { justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .cq-hero-split > * { animation: none; } }
