/* VibrantRevolve "tech studio" layer: blueprint grid, aurora, mono labels, glow cards, terminal, ticker. Purely visual; safe to remove. */
:root{--tx-cyan:34,211,238;--tx-violet:139,92,246;--tx-mono:'JetBrains Mono','Fira Code','Cascadia Code',ui-monospace,Consolas,monospace}
html[data-theme="light"]{--tx-cyan:8,145,178;--tx-violet:109,40,217}

/* Blueprint grid behind every page, fading out toward the bottom */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(rgba(var(--accent-rgb,255,215,0),.045) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--accent-rgb,255,215,0),.045) 1px,transparent 1px);
  background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,#000 25%,transparent 78%);mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,#000 25%,transparent 78%)}
html[data-theme="light"] body::before{opacity:.7}

/* Aurora in the hero */
.hero{position:relative;isolation:isolate}
.tx-aurora{position:absolute;inset:-10% -5% 0;z-index:-1;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.tx-aurora i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.38;will-change:transform;animation:tx-float 18s ease-in-out infinite alternate}
.tx-aurora i:nth-child(1){width:46vw;height:46vw;max-width:620px;max-height:620px;left:-8%;top:-12%;background:rgb(var(--accent-rgb,255,215,0));opacity:.2}
.tx-aurora i:nth-child(2){width:38vw;height:38vw;max-width:520px;max-height:520px;right:-6%;top:6%;background:rgb(var(--tx-violet));animation-duration:22s;animation-delay:-6s;opacity:.26}
.tx-aurora i:nth-child(3){width:32vw;height:32vw;max-width:440px;max-height:440px;left:38%;top:36%;background:rgb(var(--tx-cyan));opacity:.22;animation-duration:26s;animation-delay:-11s}
html[data-theme="light"] .tx-aurora i{opacity:.18}
@keyframes tx-float{to{transform:translate3d(6%,8%,0) scale(1.15)}}

/* Mono labels */
.tx-eyebrow{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1rem;padding:.32rem .8rem;border-radius:999px;border:1px solid rgba(var(--accent-rgb,255,215,0),.28);background:rgba(var(--accent-rgb,255,215,0),.06);color:var(--accent);font:600 .72rem/1 var(--tx-mono);letter-spacing:.12em;text-transform:uppercase}
.tx-eyebrow b{color:var(--text-muted);font-weight:500}
.tx-eyebrow::after{content:"_";animation:tx-blink 1.1s steps(1) infinite}
@keyframes tx-blink{50%{opacity:0}}
.hero-badge,.stat-item p,.float-tag{font-family:var(--tx-mono)!important}
.stat-item p{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem!important}
.hero-badge .dot{box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:tx-ping 2s infinite}
@keyframes tx-ping{70%{box-shadow:0 0 0 9px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}

/* Section headings: soft glow only (never touch their colour) */
.section-header h2{text-shadow:0 0 40px rgba(var(--accent-rgb,255,215,0),.18)}

/* Glow cards */
@media (hover:hover){
.card:hover,.service-card:hover,.pricing-card:hover,.portfolio-item:hover{box-shadow:0 0 0 1px rgba(var(--accent-rgb,255,215,0),.35),0 24px 60px -24px rgba(var(--accent-rgb,255,215,0),.35),0 0 90px -34px rgba(var(--tx-cyan),.45)}
}

/* Terminal window */
.tx-bar{display:flex;align-items:center;gap:.4rem;margin:-.2rem 0 .9rem;padding-bottom:.7rem;border-bottom:1px solid rgba(255,255,255,.07);font:500 .72rem var(--tx-mono);color:var(--text-muted)}
.tx-bar i{width:10px;height:10px;border-radius:50%;background:#ff5f57}.tx-bar i:nth-child(2){background:#febc2e}.tx-bar i:nth-child(3){background:#28c840}
.tx-bar span{margin-left:.6rem}
.code-window .code-line{clip-path:inset(0 100% 0 0);animation:tx-type .8s steps(30) forwards}
.code-window .code-line:nth-child(2){animation-delay:.2s}.code-window .code-line:nth-child(3){animation-delay:.9s}.code-window .code-line:nth-child(4){animation-delay:1.6s}
.code-window .code-line:nth-child(5){animation-delay:2.3s}.code-window .code-line:nth-child(6){animation-delay:2.7s}.code-window .code-line:nth-child(7){animation-delay:3.3s}.code-window .code-line:nth-child(8){animation-delay:3.9s}
@keyframes tx-type{to{clip-path:inset(0 0 0 0)}}
.tx-out{margin-top:.6rem;font:500 .8rem var(--tx-mono);color:rgb(var(--tx-cyan));opacity:0;animation:tx-in .5s 4.4s forwards}
.tx-out em{font-style:normal;color:#28c840}
.tx-out::after{content:"▍";margin-left:.3rem;animation:tx-blink 1s steps(1) infinite}
@keyframes tx-in{to{opacity:1}}

/* Stack ticker */
.tx-marquee{position:relative;overflow:hidden;border-block:1px solid rgba(var(--accent-rgb,255,215,0),.14);background:rgba(var(--accent-rgb,255,215,0),.03);padding:.85rem 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.tx-track{display:flex;width:max-content;gap:2.4rem;animation:tx-scroll 38s linear infinite}
.tx-marquee:hover .tx-track{animation-play-state:paused}
.tx-track span{font:600 .8rem var(--tx-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);white-space:nowrap}
.tx-track span::before{content:"◆";margin-right:2.4rem;color:var(--accent);opacity:.6;font-size:.6rem;vertical-align:middle}
@keyframes tx-scroll{to{transform:translateX(-50%)}}

/* Cursor light (desktop only) */
.tx-glow{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;z-index:0;opacity:0;background:radial-gradient(circle,rgba(var(--accent-rgb,255,215,0),.10),transparent 62%);transition:opacity .4s;will-change:transform}
.tx-glow.on{opacity:1}

/* Footer status pill */
.tx-status{display:inline-flex;align-items:center;gap:.6rem;margin-top:1.2rem;padding:.45rem .9rem;border-radius:999px;border:1px solid rgba(40,200,64,.3);background:rgba(40,200,64,.07);color:var(--text-secondary);font:500 .72rem var(--tx-mono);letter-spacing:.04em}
.tx-status::before{content:"";width:8px;height:8px;border-radius:50%;background:#28c840;box-shadow:0 0 10px #28c840;animation:tx-ping 2s infinite}

@media (max-width:760px){
  body::before{background-size:40px 40px}
  .tx-aurora i{filter:blur(50px);animation:none;opacity:.2}
  .tx-aurora i:nth-child(3){display:none}
  body::before{position:absolute;height:100vh}
  .tx-glow{display:none}
  .tx-track{animation-duration:30s}
}
@media (prefers-reduced-motion:reduce){
  .tx-aurora i,.tx-track,.tx-eyebrow::after,.tx-out::after{animation:none}
  .code-window .code-line{clip-path:none;animation:none}.tx-out{opacity:1;animation:none}
}
.pricing-card.featured{padding-top:3.4rem}
