/* Coming from Cinema 4D (from-cinema4d.html, tools/gen_from_cinema4d.py).
   A reel in the hero, picture cards that map Cinema 4D ideas onto Kinematic, four image-led bands,
   then moving over, fair is fair, the short comparison and the demos. Every class starts with c4-.
   Loads after signal.css, compare.css (table, faq, others) and sub.css (crumb, jump, pills, demo link, code). */

/* ── shared tile: a picture or a looping clip with a caption chip ── */
.c4-t{position:relative;margin:0;border:1px solid var(--line-2);border-radius:6px;overflow:hidden;background:#000;min-width:0;min-height:0}
.c4-t img,.c4-t video{width:100%;height:100%;object-fit:cover;display:block}
.c4-t.ui{background:#f2f2f0}
.c4-t.ui img{object-position:top left}
.c4-cap{position:absolute;left:10px;bottom:10px;max-width:calc(100% - 20px);font-family:var(--mono);font-size:10.5px;line-height:1.35;color:var(--fg);background:rgba(6,8,11,.84);padding:4px 8px;border-radius:3px}

/* ── hero ── */
.c4-hero{position:relative;padding-block:calc(var(--barh) + var(--navh) + 44px) 56px;overflow:hidden}
.c4-hero canvas{position:absolute;inset:0;width:100%;height:100%}
.c4-hero > .wrap{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);align-items:center}
.c4-hero .crumb b{color:var(--create);font-weight:400}
.c4-hero h1{font-size:clamp(46px,5.5vw,88px);line-height:.94;letter-spacing:-.05em}
.c4-hero h1 i{font-style:normal;background:linear-gradient(90deg,#30B9FE,#5B6DFF 45%,#8151FE 75%,#DD3BFC);-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.04em}
.c4-hero .sub{margin-top:22px;font-size:clamp(18px,1.42vw,21px);line-height:1.45;max-width:540px}
.c4-facts{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:24px;color:var(--mute)}
.c4-facts span{display:flex;align-items:center;gap:8px}
.c4-facts i{width:7px;height:7px;border-radius:50%;background:var(--c);flex:none}
.c4-hero .jump{margin-top:26px}
.c4-hfig{display:flex;flex-direction:column;gap:12px;min-width:0}
.c4-reel{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;aspect-ratio:16/10.2}
.c4-reel .c4-t{box-shadow:0 30px 60px rgba(0,0,0,.5)}
.c4-reel .big{grid-row:1/3}
.c4-chain{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:rgba(11,15,19,.82)}
.c4-chain > .mono{color:var(--dim);flex:1 1 100%}

/* ── you already know this ── */
.c4-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.c4-k{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;background:var(--ink-2);overflow:hidden;min-width:0;transition:border-color .2s,transform .2s}
.c4-k:hover{border-color:var(--line-2)}
.c4-k > .c4-t{border:0;border-bottom:1px solid var(--line);border-radius:0;aspect-ratio:16/10}
.c4-kb{padding:18px 20px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.c4-from{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:var(--mute);font-size:12.5px}
.c4-from span{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);border:1px solid var(--line-2);border-radius:3px;padding:2px 6px}
.c4-k h3{font-size:clamp(22px,1.85vw,27px);letter-spacing:-.03em;line-height:1.08;display:flex;align-items:baseline;gap:10px}
.c4-k h3 i{font-style:normal;font-family:var(--mono);font-size:15px;color:var(--create);flex:none;transform:translateY(-2px)}
.c4-k p{color:var(--mute);font-size:15px;line-height:1.5}
.c4-k .pills{margin-top:auto;padding-top:6px}
.c4-wsh{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:10px 30px;margin:64px 0 20px}
.c4-wsh h3{font-size:clamp(26px,2.6vw,38px);letter-spacing:-.04em;line-height:1}
.c4-wsh p{color:var(--mute);max-width:460px}
.c4-ws{grid-template-columns:repeat(4,minmax(0,1fr))}
.c4-ws .c4-t{aspect-ratio:4/3}
.c4-ws .c4-kb{padding:16px 18px 20px}
.c4-ws h3{font-size:clamp(20px,1.6vw,23px)}
.c4-flow{margin-top:14px;display:grid;grid-template-columns:minmax(0,4.6fr) minmax(0,7.4fr);gap:clamp(24px,4vw,56px);align-items:center;padding:clamp(22px,3vw,40px);border:1px solid var(--line-2);border-radius:10px;
  background:radial-gradient(120% 140% at 0% 0%,rgba(48,185,254,.09),transparent 60%),var(--ink-2)}
.c4-flowt{display:flex;flex-direction:column;gap:14px}
.c4-flowt .eyebrow{margin:0;color:var(--create)}
.c4-flowt h3{font-size:clamp(28px,3vw,44px);letter-spacing:-.045em;line-height:1}
.c4-flowt p{color:var(--mute)}
.c4-k1{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:14.5px}
.c4-duo{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:10px;aspect-ratio:16/7.4}

/* keycaps */
kbd{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 7px;border:1px solid var(--line-2);border-bottom-width:3px;border-radius:5px;background:var(--ink-3);font-family:var(--mono);font-size:12px;line-height:1;color:var(--fg);white-space:nowrap}
.c4-keyset{display:inline-flex;align-items:center;gap:4px;flex:none}
.c4-plus{font-family:var(--mono);font-size:11px;color:var(--dim)}

/* ── showcase bands ── */
.c4-show{border-top:1px solid var(--line)}
.c4-sw{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4.5vw,72px);align-items:center}
.c4-sw.flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.c4-sw.flip .c4-st{order:2}
.c4-st{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.c4-tag{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--c);margin-bottom:16px}
.c4-tag i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.c4-st .lede{margin-top:20px}
.c4-pts{list-style:none;display:grid;gap:12px;margin:24px 0 20px;padding:0}
.c4-pts li{display:grid;grid-template-columns:16px 1fr;gap:10px;color:var(--mute);font-size:16px;line-height:1.5}
.c4-pts li::before{content:"";width:8px;height:8px;margin-top:.55em;border-radius:50%;background:var(--c)}
.c4-pts b{color:var(--fg);font-weight:500}
.c4-st .code{width:100%;margin-bottom:18px}
.c4-st .code pre{font-size:12.5px}
.c4-st .code .p{color:var(--c)}
.c4-st .pills{margin-bottom:16px}
.c4-st .pills span i{background:var(--c)}
.c4-st .demo i{border-left-color:var(--c)}
.c4-col{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:10px;aspect-ratio:16/10.6;min-width:0}
.c4-col .big{grid-row:1/3}
.c4-col.tall{grid-template-columns:minmax(0,1fr) minmax(0,1.65fr)}
.c4-col .c4-t.ui img,.c4-col img[src*="projection-mapper"]{object-fit:cover;object-position:center}

/* ── moving over ── */
.c4-move{border-top:1px solid var(--line)}
.c4-block{padding-top:clamp(28px,3vw,44px);margin-top:clamp(28px,3vw,44px);border-top:1px solid var(--line);scroll-margin-top:calc(var(--barh) + var(--navh) + 70px)}
.sh + .c4-block{border-top:0;margin-top:0;padding-top:0}
.c4-bh{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1.2fr);gap:12px 28px;align-items:baseline;margin-bottom:26px}
.c4-n{color:var(--create)}
.c4-bh h3{font-size:clamp(26px,2.6vw,38px);letter-spacing:-.04em;line-height:1.02}
.c4-bh p{color:var(--mute);max-width:620px}

/* files: Cinema 4D on one end, Kinematic on the other, three lanes between */
.c4-ff{display:grid;grid-template-columns:172px minmax(0,1fr) 172px;gap:14px;align-items:stretch}
.c4-end{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:18px;border:1px solid var(--line-2);border-radius:8px;background:var(--ink-2)}
.c4-end b{font-family:var(--display);font-size:21px;letter-spacing:-.03em;font-weight:600}
.c4-end span{color:var(--dim);font-size:13.5px;line-height:1.35}
.c4-end.k{align-items:center;text-align:center;background:radial-gradient(100% 100% at 50% 0%,rgba(91,109,255,.14),transparent 70%),var(--ink-2)}
.c4-end.k svg{height:40px;width:auto;color:var(--fg)}
.c4-lanes{display:grid;gap:10px;min-width:0}
.c4-lane{position:relative;display:grid;grid-template-columns:168px minmax(0,1fr);gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--ink-2);--lc:#30B9FE}
.c4-lane.out{--lc:#DD3BFC}
.c4-lane.live{--lc:#9A5BFF}
.c4-lane::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:var(--lc)}
.c4-ll{color:var(--fg);display:flex;align-items:center;gap:6px}
.c4-ll i{font-style:normal;color:var(--lc)}
.c4-chips{display:flex;flex-wrap:wrap;gap:6px}
.c4-chips span{display:inline-flex;align-items:baseline;gap:7px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--lc) 40%,transparent);border-radius:4px;background:rgba(255,255,255,.02);font-size:14px}
.c4-chips b{font-weight:600}
.c4-chips em{font-style:normal;color:var(--dim);font-size:12.5px}
.c4-note{margin-top:14px;color:var(--mute);font-size:15px}
.c4-note a{color:var(--fg);border-bottom:1px solid var(--line-2);margin-left:6px}
.c4-note a:hover{border-color:var(--create)}

/* keys */
.c4-kgrid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.25fr) minmax(0,1.1fr);gap:14px}
.c4-kcard{border:1px solid var(--line);border-radius:8px;background:var(--ink-2);padding:20px 22px;display:flex;flex-direction:column;gap:10px;min-width:0}
.c4-kcard h4{font-weight:400;color:var(--dim);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px}
.c4-mcard{align-items:center;justify-content:center;text-align:center;gap:16px;background:radial-gradient(100% 90% at 50% 20%,rgba(154,91,255,.12),transparent 70%),var(--ink-2)}
.c4-mouse{width:100%;max-width:240px;height:auto}
.c4-mcard p{color:var(--mute);font-size:14.5px;max-width:260px}
.c4-kr{display:grid;grid-template-columns:minmax(98px,auto) minmax(0,1fr);gap:12px;align-items:center;font-size:14.5px;color:var(--mute);padding:5px 0;border-bottom:1px solid var(--line)}
.c4-kr:last-of-type{border-bottom:0}
.c4-tip{margin-top:8px;padding:14px 16px;border-left:2px solid var(--create);background:rgba(48,185,254,.06);color:var(--mute);font-size:14.5px;line-height:1.5;border-radius:0 6px 6px 0}
.c4-tip b{color:var(--fg);font-weight:500;display:block;margin-bottom:2px}

/* first hour */
.c4-hour{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}
.c4-hour li{position:relative;padding-top:22px;min-width:0;display:flex;flex-direction:column;gap:6px}
.c4-hour li::before{content:"";position:absolute;left:0;right:-14px;top:0;height:2px;background:linear-gradient(90deg,#30B9FE,#5B6DFF 35%,#8151FE 62%,#DD3BFC);background-size:500% 100%}
.c4-hour li:nth-child(2)::before{background-position:25% 0}
.c4-hour li:nth-child(3)::before{background-position:50% 0}
.c4-hour li:nth-child(4)::before{background-position:75% 0}
.c4-hour li:nth-child(5)::before{background-position:100% 0;right:0}
.c4-hour li::after{content:"";position:absolute;left:0;top:-5px;width:12px;height:12px;border-radius:50%;background:var(--ink);border:2px solid var(--fg)}
.c4-hour .mono{color:var(--dim)}
.c4-hour b{font-family:var(--display);font-size:20px;font-weight:600;letter-spacing:-.025em;line-height:1.15}
.c4-hour p{color:var(--mute);font-size:15px;line-height:1.5}
.c4-hour a{color:var(--fg);border-bottom:1px solid var(--line-2)}
.c4-hour a:hover{border-color:var(--create)}

/* ── fair is fair ── */
.c4-fair{border-top:1px solid var(--line)}
.c4-ahead{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,4vw,64px);align-items:start}
.c4-ahead .lede{margin-top:18px}
.c4-al{list-style:none;padding:0;margin:0;border-top:1px solid var(--line-2)}
.c4-al li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
.c4-an{color:var(--dim);padding-top:4px}
.c4-al b{display:block;font-family:var(--display);font-weight:600;font-size:clamp(19px,1.6vw,22px);letter-spacing:-.025em;line-height:1.2}
.c4-al span:not(.c4-an){display:block;color:var(--mute);font-size:15.5px;margin-top:4px}
.c4-both{margin-top:28px;padding:18px 22px;border-left:2px solid var(--create);background:rgba(48,185,254,.05);border-radius:0 6px 6px 0;font-size:17px;max-width:900px}
.c4-both b{font-weight:600}

/* ── side by side and price ── */
.c4-pricesec{border-top:1px solid var(--line)}
.c4-pr{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:14px;align-items:start}
.c4-price{display:grid;gap:10px}
.c4-price > div{display:flex;flex-direction:column;gap:6px;padding:22px 24px;border:1px solid var(--line-2);border-radius:8px;background:var(--ink-2)}
.c4-price .mono{color:var(--mute);display:flex;align-items:center;gap:8px}
.c4-price .mono i{width:8px;height:8px;border-radius:50%;background:var(--create)}
.c4-price b{font-family:var(--display);font-weight:600;letter-spacing:-.05em;line-height:.95}
.c4-pk{background:radial-gradient(120% 120% at 0% 0%,rgba(48,185,254,.14),transparent 65%),var(--ink-2)!important}
.c4-pk b{font-size:clamp(64px,7vw,104px);background:linear-gradient(90deg,#30B9FE,#5B6DFF 50%,#DD3BFC);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.04em}
.c4-po b{font-size:clamp(30px,3vw,42px);color:var(--mute)}
.c4-price small{color:var(--mute);font-size:14px;line-height:1.45}
.c4-price sup,.c4-tbl sup{font-family:var(--mono);font-size:.55em;color:var(--create);margin-left:2px}
.c4-pr .tbl{--accent:#30B9FE}
.c4-pr .tbl .r > div{padding-block:11px}
.c4-pricesec .legend{margin-top:12px}
.c4-notes{margin:14px 0 0;padding-left:18px;color:var(--dim)}
.c4-notes a{color:var(--mute);border-bottom:1px solid var(--line-2)}
.c4-notes a:hover{color:var(--fg)}
.c4-faqw{margin-top:clamp(48px,5vw,80px);padding-top:clamp(36px,4vw,56px);border-top:1px solid var(--line);scroll-margin-top:calc(var(--barh) + var(--navh) + 70px)}
.c4-h2s{font-size:clamp(32px,3.6vw,54px)}
.c4-faqw .lede a{color:var(--fg);border-bottom:1px solid var(--line-2)}
.c4-faqw .lede a:hover{border-color:var(--create)}

/* ── demos ── */
.c4-demosec{border-top:1px solid var(--line)}
.c4-demos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.c4-dm{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;background:var(--ink-2);overflow:hidden;transition:border-color .2s,transform .2s;min-width:0}
.c4-dm:hover{border-color:var(--c);transform:translateY(-2px)}
.c4-dp{display:block;aspect-ratio:16/9;background:#000;overflow:hidden;border-bottom:1px solid var(--line)}
.c4-dp img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.c4-dm:hover .c4-dp img{transform:scale(1.04)}
.c4-db{display:flex;flex-direction:column;gap:7px;padding:15px 17px 18px;flex:1}
.c4-dw{display:flex;align-items:center;gap:7px;color:var(--dim);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.c4-dw i{width:7px;height:7px;border-radius:50%;background:var(--c)}
.c4-db b{font-family:var(--display);font-weight:600;font-size:19px;letter-spacing:-.025em;line-height:1.15}
.c4-dl{color:var(--mute);font-size:14.5px;line-height:1.45}
.c4-dgo{margin-top:auto;padding-top:6px;color:var(--c)}

/* ── closing ── */
.c4-band{margin-top:0;background:radial-gradient(90% 160% at 100% 0%,rgba(221,59,252,.1),transparent 60%),radial-gradient(90% 160% at 0% 100%,rgba(48,185,254,.1),transparent 60%),var(--ink-2)}
.c4-bc{display:flex;flex-wrap:wrap;gap:10px}
.c4-oe{margin-top:48px}

/* ── narrower screens ── */
@media (max-width:1180px){
  .c4-ws{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c4-demos{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c4-kgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .c4-mcard{grid-column:1/-1;flex-direction:row;text-align:left}
  .c4-mouse{max-width:200px}
  .c4-hour{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:34px}
  .c4-hour li::before{right:0}
}
@media (max-width:1080px){
  .c4-hero > .wrap,.c4-sw,.c4-sw.flip,.c4-flow,.c4-ahead,.c4-pr{grid-template-columns:1fr}
  .c4-sw.flip .c4-st{order:0}
  .c4-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .c4-bh{grid-template-columns:auto minmax(0,1fr)}
  .c4-bh p{grid-column:1/-1}
  .c4-ff{grid-template-columns:1fr}
  .c4-end{flex-direction:row;align-items:baseline;gap:12px;padding:14px 18px}
  .c4-end.k{justify-content:center;align-items:center}
  .c4-end.k svg{height:28px}
  .c4-price{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .c4-hero{padding-top:calc(var(--barh) + var(--navh) + 30px)}
  .c4-reel{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;aspect-ratio:auto}
  .c4-reel .big{grid-row:auto;grid-column:1/-1;aspect-ratio:16/10}
  .c4-reel .c4-t:not(.big){aspect-ratio:1/1}
  .c4-reel .c4-cap,.c4-col .c4-cap{font-size:9.5px;left:6px;bottom:6px;max-width:calc(100% - 12px)}
  .c4-grid,.c4-ws,.c4-demos,.c4-kgrid{grid-template-columns:1fr}
  .c4-mcard{flex-direction:column;text-align:center}
  .c4-duo{grid-template-columns:1fr;aspect-ratio:auto}
  .c4-duo .c4-t{aspect-ratio:16/10}
  .c4-col,.c4-col.tall{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;aspect-ratio:auto}
  .c4-col .big{grid-row:auto;grid-column:1/-1;aspect-ratio:16/10}
  .c4-col.tall .big{aspect-ratio:4/5}
  .c4-col .c4-t:not(.big){aspect-ratio:1/1}
  .c4-lane{grid-template-columns:1fr;gap:10px}
  .c4-price{grid-template-columns:1fr}
  .c4-hour{grid-template-columns:1fr;row-gap:26px}
  .c4-kr{grid-template-columns:minmax(0,auto) minmax(0,1fr)}
  .c4-al li{grid-template-columns:34px minmax(0,1fr)}
  .c4-end{flex-wrap:wrap}
}
