/* TechGPT motion layer - styles. Paired with /assets/motion-fx.js and the self-hosted Motion library. */

/* Pre-state: hide hero pieces for the first frames so they can animate in (removed by JS, or after 3.5s as a failsafe) */
.mo-pre .h-badge,.mo-pre .h-name,.mo-pre .h-sub,.mo-pre .h-desc,.mo-pre .h-cta,.mo-pre .h-stats>div,.mo-pre .h-mark,.mo-pre .pg-title{opacity:0}

/* Scroll progress bar */
#mo-progress{position:fixed;top:0;left:0;height:2px;width:100%;background:linear-gradient(90deg,#C0392B,#E74C3C,#ff8a7a);transform-origin:0 50%;transform:scaleX(0);z-index:9996;pointer-events:none;box-shadow:0 0 12px rgba(231,76,60,.6)}

/* Split headline characters */
.h-name i.ch{display:inline-block;font-style:normal;will-change:transform,opacity}

/* Nav active link */
.n-links a.act{color:#fff}
.n-links a.act::after{width:100%}

/* Pointer glow on cards (desktop only, set by JS) */
.mo .mo-glow:hover{background-image:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),rgba(192,57,43,.16),transparent 65%)}

/* Hero ambient pulse behind the headline */
.h-content{position:relative}
.h-content::before{content:'';position:absolute;left:-10%;top:10%;width:70%;height:70%;background:radial-gradient(closest-side,rgba(192,57,43,.14),transparent);filter:blur(30px);z-index:-1;pointer-events:none;animation:moBreath 7s ease-in-out infinite}
@keyframes moBreath{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.12)}}

/* About condensed to one column */
.ab-grid.ab-one{grid-template-columns:1fr;max-width:820px}

/* Projects: filter bar, status pills, new card layout */
.pf-intro{font-size:14px;color:var(--gray);line-height:1.8;max-width:600px;margin:20px 0 0;font-weight:300}
.pf-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 26px}
.pf-btn{font-family:var(--font-m);font-size:10px;letter-spacing:2px;text-transform:uppercase;padding:10px 16px;background:none;border:1px solid var(--gray2);color:var(--gray);cursor:pointer;transition:color .2s,border-color .2s,background .2s}
.pf-btn:hover{color:var(--white);border-color:var(--red)}
.pf-btn.on{color:var(--white);border-color:var(--red);background:var(--red3)}
.pf-count{margin-left:auto;font-family:var(--font-m);font-size:10px;color:var(--gray);letter-spacing:1px}
.pf-more-wrap{margin-top:28px;text-align:center}
.pf-more{font-family:var(--font-m);font-size:10px;letter-spacing:3px;text-transform:uppercase;padding:14px 26px;background:none;border:1px solid var(--gray2);color:var(--white);cursor:pointer;transition:border-color .2s,background .2s}
.pf-more:hover{border-color:var(--red);background:var(--red3)}

.p-card.pc2{display:flex;flex-direction:column;min-height:300px}
.p-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.p-top .p-tag{margin-bottom:0}
.p-status{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-m);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--gray)}
.p-status::before{content:'';width:7px;height:7px;border-radius:50%;background:#4CAF50;box-shadow:0 0 0 0 rgba(76,175,80,.6);animation:moDot 2.2s ease-out infinite}
.p-status.s-building::before{background:#E6A817;box-shadow:0 0 0 0 rgba(230,168,23,.6)}
.p-status.s-ongoing::before{background:#4DA3FF;box-shadow:0 0 0 0 rgba(77,163,255,.6)}
.p-status.s-soon::before{background:#888;animation:none}
@keyframes moDot{0%{box-shadow:0 0 0 0 rgba(76,175,80,.55)}80%,100%{box-shadow:0 0 0 9px rgba(76,175,80,0)}}
.p-status.s-building{color:#E6A817}
.p-card.pc2 .p-desc{flex:1;font-size:13px}
.p-note{margin-top:14px;font-family:var(--font-m);font-size:10px;color:var(--white);letter-spacing:.5px;line-height:1.6;padding-left:12px;border-left:2px solid var(--red)}
.p-stack{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.p-stack span{font-family:var(--font-m);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--gray);border:1px solid var(--gray2);padding:3px 8px}
.p-links{display:flex;gap:18px;margin-top:18px;font-family:var(--font-m);font-size:10px;letter-spacing:2px;text-transform:uppercase}
.p-links a{color:var(--red);text-decoration:none;position:relative;z-index:2}
.p-links a:hover{color:var(--white)}
.p-links a.p-open::after{content:'';position:absolute;inset:-400px -400px -400px -400px;z-index:-1}
.p-card.pc2.is-hidden{display:none}
.p-card.pc2 .p-num{pointer-events:none}

/* Strategy section centred once the teaser form is gone */
.strat-grid.strat-one{grid-template-columns:1fr;max-width:760px}

@media (max-width:768px){
  .pf-count{margin-left:0;width:100%}
  .p-card.pc2{min-height:0}
}

/* Reduced motion: no pulses, no ambient effects */
@media (prefers-reduced-motion:reduce){
  .h-content::before,.p-status::before{animation:none}
  #mo-progress{display:none}
}
