/* Homepage project-card visuals: ascii e, phone mock, knowledge graph */
.hc-visual{position:relative;height:260px;border-radius:10px;margin:14px 0 0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 100% at 50% 0%,rgba(255,255,255,.05),rgba(0,0,0,.35));border:1px solid var(--border-mid)}
.hc-e{background:radial-gradient(100% 90% at 50% 40%,rgba(255,138,0,.14),rgba(11,8,6,.9))}
.hc-e pre{margin:0;font:700 8px/1 "DM Mono",ui-monospace,Menlo,Consolas,monospace;white-space:pre;color:#FFC400;letter-spacing:0}
.hc-e pre b{font-weight:700}
.hc-graph canvas,.hc-graph img{position:absolute;inset:0;width:100%;height:100%;display:block}
.hc-graph img{object-fit:cover}
/* phone */
.hc-gym{align-items:flex-start;background:radial-gradient(100% 80% at 50% 0%,rgba(10,132,255,.16),rgba(0,0,0,.4))}
.hc-phone{position:relative;width:196px;height:340px;margin-top:16px;flex:none;border-radius:30px;background:#000;border:5px solid #2b2b30;box-shadow:0 0 0 1px #4a4a52,0 16px 40px rgba(0,0,0,.55);overflow:hidden;container-type:inline-size;font-family:-apple-system,BlinkMacSystemFont,"Inter","DM Sans",sans-serif;color:#fff}
.hc-phone::before{content:"";position:absolute;top:6px;left:50%;width:50px;height:14px;margin-left:-25px;border-radius:9px;background:#000;z-index:3;box-shadow:0 0 0 1px #1c1c20}
.hc-head{padding:24px 0 6px;display:grid;justify-items:center;gap:3px;background:rgba(28,28,30,.85);border-bottom:1px solid rgba(255,255,255,.08)}
.hc-av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:600;background:linear-gradient(180deg,#8e8e93,#636366)}
.hc-nm{font-size:9px;color:rgba(255,255,255,.85)}
.hc-thread{display:flex;flex-direction:column;gap:6px;padding:10px 8px}
.hc-m{max-width:82%;padding:6px 9px;border-radius:14px;font-size:10.5px;line-height:1.3;opacity:0;transform:translateY(6px) scale(.96);transition:opacity .35s ease,transform .4s cubic-bezier(.2,.9,.3,1.2)}
.hc-m.in{opacity:1;transform:none}
.hc-out{align-self:flex-end;background:#0a84ff;transform-origin:bottom right}
.hc-in{align-self:flex-start;background:#26252a;transform-origin:bottom left}
.hc-typ{align-self:flex-start;background:#26252a;display:flex;gap:3px;padding:8px 10px}
.hc-typ i{width:5px;height:5px;border-radius:50%;background:#8e8e93;animation:hc-dot 1s ease-in-out infinite}
.hc-typ i:nth-child(2){animation-delay:.15s}.hc-typ i:nth-child(3){animation-delay:.3s}
@keyframes hc-dot{0%,60%,100%{opacity:.35;transform:none}30%{opacity:1;transform:translateY(-2px)}}
.feature-link .arr{width:12px;height:12px;flex:none;align-self:center}
.explore-more .arr{width:11px;height:11px;vertical-align:-1px;margin-left:3px}
@media(max-width:760px){.hc-visual{height:240px}.hc-phone{height:320px}}
@media(prefers-reduced-motion:reduce){.hc-typ i{animation:none}.hc-m{transition:none}}
