/* ── TICKER STRIP ── */
.ticker{overflow:hidden;white-space:nowrap;padding:1rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  background:rgba(66,133,244,0.02);position:relative}
.ticker::before,.ticker::after{content:'';position:absolute;top:0;bottom:0;width:100px;z-index:2}
.ticker::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
.ticker::after{right:0;background:linear-gradient(90deg,transparent,var(--bg))}
.ticker-inner{display:inline-block;animation:tickerScroll 40s linear infinite}
.ticker.reverse .ticker-inner{animation-direction:reverse}
.ticker-item{display:inline-block;padding:0 2rem;font-size:0.9rem;letter-spacing:3px;text-transform:uppercase;color:var(--text3)}
.ticker-item .dot{display:inline-block;width:4px;height:4px;background:var(--gblue);border-radius:50%;margin-right:1rem;vertical-align:middle}
.ticker.gyellow .ticker-item .dot{background:var(--gyellow)}
.ticker.ggreen{background:rgba(52,168,83,0.02)}
.ticker.ggreen .ticker-item .dot{background:var(--ggreen)}
.ticker.gblue{background:rgba(66,133,244,0.02)}
.ticker.gblue .ticker-item .dot{background:var(--gblue)}
@keyframes tickerScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── SECTION SHARED ── */
section{position:relative;padding:8rem 3rem}
.section-label{font-size:0.9rem;letter-spacing:4px;text-transform:uppercase;margin-bottom:1rem;font-weight:600}
.section-title{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,5vw,3.5rem);line-height:1.1;margin-bottom:1.5rem}
.section-desc{color:var(--text2);max-width:600px;font-size:1rem;line-height:1.8;margin-bottom:4rem}
.reveal{opacity:0;transform:translateY(50px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.12s}.reveal-delay-2{transition-delay:.24s}.reveal-delay-3{transition-delay:.36s}.reveal-delay-4{transition-delay:.48s}

/* ── DATA FLOW CONNECTOR ── */
.data-flow{width:2px;height:120px;margin:0 auto;position:relative;overflow:hidden;
  background:linear-gradient(to bottom,transparent,rgba(66,133,244,0.05),transparent)}
.data-flow::before{content:'';position:absolute;top:-30px;left:50%;transform:translateX(-50%);width:2px;height:30px;
  background:linear-gradient(to bottom,transparent,var(--gblue));animation:flowDown 1.5s linear infinite;border-radius:2px;
  box-shadow:0 0 8px var(--gblue-glow),0 0 20px var(--gblue-glow)}
.data-flow::after{content:'';position:absolute;top:-50px;left:50%;transform:translateX(-50%);width:2px;height:20px;
  background:linear-gradient(to bottom,transparent,var(--gred));animation:flowDown 1.5s .7s linear infinite;border-radius:2px;
  box-shadow:0 0 8px var(--gred-glow)}
@keyframes flowDown{0%{top:-30px}100%{top:120px}}

/* ── CONCEPT SECTION ── */
#concept{background:var(--bg2);overflow:hidden}
#concept .section-label{color:var(--gred)}
.pipeline{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:wrap;margin-bottom:5rem;position:relative}
.pipeline-stage{text-align:center;flex:0 0 180px;position:relative;padding:2rem 1rem}
.pipeline-icon{width:80px;height:80px;margin:0 auto 1.2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--border);background:rgba(234,67,53,0.06);font-size:1.8rem;transition:all .5s;position:relative}
.pipeline-icon::before{content:'';position:absolute;inset:-4px;border-radius:50%;border:1px solid transparent;transition:all .5s;
  background:conic-gradient(from var(--gradient-angle),transparent,var(--gred),transparent) border-box;
  -webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;animation:rotateBorder 3s linear infinite}
.pipeline-stage:hover .pipeline-icon::before{opacity:1}
.pipeline-stage:hover .pipeline-icon{border-color:transparent;box-shadow:0 0 40px var(--gred-glow);transform:scale(1.15)}
.pipeline-name{font-family:var(--font-display);font-weight:700;font-size:0.95rem;letter-spacing:1px;margin-bottom:0.4rem}
.pipeline-desc{font-size:0.92rem;color:var(--text2);line-height:1.5}
.pipeline-arrow{flex:0 0 60px;text-align:center;color:var(--gred);font-size:1.2rem;opacity:0.3;position:relative}
.pipeline-arrow .arrow-flow{display:inline-block;animation:arrowPulse 2s ease-in-out infinite}
@keyframes arrowPulse{0%,100%{opacity:0.3;transform:translateX(0)}50%{opacity:0.8;transform:translateX(4px)}}
@keyframes rotateBorder{from{--gradient-angle:0deg}to{--gradient-angle:360deg}}

.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:800px;margin:0 auto;text-align:center}
.stat-item{padding:2rem;border:1px solid var(--border);background:var(--bg-card);position:relative;transition:all .4s}
.stat-item::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gred),transparent)}
.stat-item::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at top,var(--gred-glow),transparent 70%);opacity:0;transition:opacity .4s;pointer-events:none}
.stat-item:hover::after{opacity:1}
.stat-item:hover{border-color:rgba(234,67,53,0.15);transform:translateY(-2px)}
.stat-num{font-family:var(--font-display);font-weight:700;font-size:2.5rem;color:var(--gred);margin-bottom:0.3rem;
  text-shadow:0 0 30px var(--gred-glow)}
.stat-label{font-size:0.9rem;letter-spacing:2px;text-transform:uppercase;color:var(--text2)}
.stat-source{position:relative;display:inline-block;margin-top:0.5rem;font-size:0.75rem;color:var(--text3);cursor:help;
  border-bottom:1px dotted var(--text3);letter-spacing:0.5px}
.stat-source .stat-tip{visibility:hidden;opacity:0;position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);
  width:280px;padding:0.75rem 1rem;background:var(--bg2);border:1px solid var(--border);color:var(--text2);
  font-size:0.8rem;line-height:1.5;letter-spacing:0;text-transform:none;text-align:left;z-index:100;
  transition:opacity .2s,visibility .2s;pointer-events:none}
.stat-source .stat-tip::before{content:'';position:absolute;bottom:100%;left:50%;transform:translateX(-50%);
  border:6px solid transparent;border-bottom-color:var(--border)}
.stat-source:hover .stat-tip{visibility:visible;opacity:1;pointer-events:auto}

/* ── CARD GRID (shared) ── */
.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:900px;perspective:1000px}
.card{padding:2.5rem;border:1px solid var(--border);background:var(--bg-card);position:relative;overflow:hidden;
  transition:transform .4s cubic-bezier(.16,1,.3,1),border-color .4s,box-shadow .4s;
  transform-style:preserve-3d;will-change:transform;
  --mouse-x:50%;--mouse-y:50%}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;transition:all .5s}
.card::after{content:'';position:absolute;inset:0;opacity:0;transition:opacity .5s;pointer-events:none}
/* Mouse spotlight overlay */
.card-spotlight{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;
  background:radial-gradient(circle 200px at var(--mouse-x) var(--mouse-y),rgba(255,255,255,0.06),transparent)}
.card:hover .card-spotlight{opacity:1}
.card:hover{border-color:rgba(255,255,255,0.1)}
.card-icon{font-size:2rem;margin-bottom:1.5rem;display:block;transition:transform .4s}
.card:hover .card-icon{transform:scale(1.2) translateY(-2px)}
.card-title{font-family:var(--font-display);font-weight:700;font-size:1.25rem;margin-bottom:0.75rem;position:relative}
.card-text{font-size:0.9rem;color:var(--text2);line-height:1.7;position:relative}

/* ── DIGITAL CARDS ── */
#digital{background:var(--bg)}
#digital .section-label{color:var(--gblue)}
#digital .section-title span{color:var(--gblue)}
#digital .card::before{background:linear-gradient(90deg,transparent,var(--gblue-dim),transparent)}
#digital .card::after{background:radial-gradient(ellipse at top,var(--gblue-glow),transparent 70%)}
#digital .card:hover::before{background:linear-gradient(90deg,transparent,var(--gblue),transparent)}
#digital .card:hover::after{opacity:1}
#digital .card:hover{border-color:rgba(66,133,244,0.15);box-shadow:0 8px 40px rgba(66,133,244,0.08)}
#digital .card .card-spotlight{background:radial-gradient(circle 200px at var(--mouse-x) var(--mouse-y),rgba(66,133,244,0.08),transparent)}

/* ── PHYSICAL CARDS ── */
#physical{background:var(--bg2)}
#physical .section-label{color:var(--gyellow)}
#physical .section-title span{color:var(--gyellow)}
#physical .card::before{background:linear-gradient(90deg,transparent,var(--gyellow-dim),transparent)}
#physical .card::after{background:radial-gradient(ellipse at top,var(--gyellow-glow),transparent 70%)}
#physical .card:hover::before{background:linear-gradient(90deg,transparent,var(--gyellow),transparent)}
#physical .card:hover::after{opacity:1}
#physical .card:hover{border-color:rgba(251,188,5,0.15);box-shadow:0 8px 40px rgba(251,188,5,0.08)}
#physical .card .card-spotlight{background:radial-gradient(circle 200px at var(--mouse-x) var(--mouse-y),rgba(251,188,5,0.08),transparent)}

/* ── SEMANTIC / ONTOLOGY CARDS ── */
#semantic{background:var(--bg)}
#semantic .section-label{color:var(--ggreen)}
#semantic .section-title span{color:var(--ggreen)}
#semantic .card::before{background:linear-gradient(90deg,transparent,var(--ggreen-dim),transparent)}
#semantic .card::after{background:radial-gradient(ellipse at top,var(--ggreen-glow),transparent 70%)}
#semantic .card:hover::before{background:linear-gradient(90deg,transparent,var(--ggreen),transparent)}
#semantic .card:hover::after{opacity:1}
#semantic .card:hover{border-color:rgba(52,168,83,0.15);box-shadow:0 8px 40px rgba(52,168,83,0.08)}
#semantic .card .card-spotlight{background:radial-gradient(circle 200px at var(--mouse-x) var(--mouse-y),rgba(52,168,83,0.08),transparent)}

/* ── CONVERGENCE ── */
#convergence{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--bg)}
#converge-canvas{position:absolute;inset:0;z-index:0}
.convergence-bg{position:absolute;inset:0;display:flex;z-index:1}
.convergence-bg .side{flex:1;position:relative;opacity:0.07}
.convergence-bg .side-digital{background:linear-gradient(135deg,var(--gblue),transparent 70%)}
.convergence-bg .side-physical{background:linear-gradient(225deg,var(--gyellow),transparent 70%)}
.convergence-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:400px;height:400px;border-radius:50%;z-index:1;
  background:radial-gradient(circle,rgba(255,255,255,0.06),transparent 70%);filter:blur(80px);animation:centerPulse 4s ease-in-out infinite}
@keyframes centerPulse{0%,100%{opacity:0.4;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.3)}}
.convergence-content{position:relative;z-index:2;text-align:center;max-width:800px;padding:0 2rem}
.convergence-content .section-label{color:var(--text3)}
.convergence-content .section-title{font-size:clamp(2.2rem,5vw,4rem);margin-bottom:1rem}
.convergence-content .section-title .g-blue{color:var(--gblue);text-shadow:0 0 30px var(--gblue-glow)}
.convergence-content .section-title .g-yellow{color:var(--gyellow);text-shadow:0 0 30px var(--gyellow-glow)}
.convergence-desc{color:var(--text2);font-size:1.05rem;margin-bottom:4rem;max-width:550px;margin-left:auto;margin-right:auto}
.converge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem;text-align:left}
.converge-item{padding:1.8rem;border:1px solid var(--border);background:var(--converge-item-bg);backdrop-filter:blur(10px);
  transition:all .4s;position:relative;overflow:hidden;--mouse-x:50%;--mouse-y:50%}
.converge-item::before{content:'';position:absolute;inset:0;
  background:radial-gradient(circle 150px at var(--mouse-x) var(--mouse-y),rgba(255,255,255,0.04),transparent);
  opacity:0;transition:opacity .4s;pointer-events:none}
.converge-item:hover::before{opacity:1}
.converge-item:hover{border-color:rgba(255,255,255,0.12);transform:translateY(-3px)}
.converge-item .ci-label{font-size:0.85rem;letter-spacing:2px;text-transform:uppercase;margin-bottom:0.5rem}
.converge-item:nth-child(odd) .ci-label{color:var(--gblue)}
.converge-item:nth-child(even) .ci-label{color:var(--gyellow)}
.converge-item .ci-title{font-family:var(--font-display);font-weight:700;font-size:1.1rem;margin-bottom:0.4rem}
.converge-item .ci-text{font-size:0.85rem;color:var(--text2);line-height:1.6}

/* ── FOOTER ── */
footer{padding:8rem 3rem 3rem;text-align:center;border-top:1px solid var(--border);background:var(--bg);position:relative;overflow:hidden}
footer::before{content:'';position:absolute;bottom:-200px;left:50%;transform:translateX(-50%);width:600px;height:400px;
  background:radial-gradient(ellipse,rgba(234,67,53,0.08),transparent 70%);pointer-events:none}
.footer-tagline{font-family:var(--font-display);font-weight:700;font-size:clamp(1.5rem,4vw,3.5rem);margin-bottom:1.5rem;
  background:linear-gradient(135deg,var(--gblue),var(--gred),var(--gyellow));background-size:200% 200%;
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  animation:gradientShift 5s ease-in-out infinite}
@keyframes gradientShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.footer-sub{color:var(--text3);font-size:0.85rem;letter-spacing:2px;text-transform:uppercase}

/* ── CONCEPT DIAGRAM ── */
.concept-diagram{max-width:920px;margin:5rem auto;position:relative}
.concept-diagram .diagram-label{text-align:center;font-size:0.9rem;letter-spacing:3px;text-transform:uppercase;color:var(--text3);margin-bottom:1.5rem}
.concept-svg{width:100%;height:auto;display:block}
.flow-anim{stroke-dasharray:8 4;animation:dashFlow 1.2s linear infinite}
.flow-anim-reverse{stroke-dasharray:8 4;animation:dashFlow 1.2s linear infinite reverse}
.feedback-path{stroke-dasharray:6 6;animation:dashFlow 2.5s linear infinite reverse}
@keyframes dashFlow{to{stroke-dashoffset:-24}}
.diagram-node rect{transition:all .4s ease}
.core-pulse{animation:corePulse 3s ease-in-out infinite}
@keyframes corePulse{0%,100%{opacity:.08}50%{opacity:.18}}

/* ── PAGE HEADER (inner pages) ── */
.page-header{padding:10rem 3rem 5rem;text-align:center;position:relative;background:var(--bg2)}
.page-header .section-title{max-width:700px;margin:0 auto 1.5rem;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.3}
.page-header .section-desc{max-width:600px;margin:0 auto;text-align:center}

/* ── VALUE PROPS (home) ── */
.value-props{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:960px;margin:0 auto;padding:0 3rem}
.value-prop{text-align:center;padding:2.5rem 1.5rem}
.value-prop-icon{font-size:2.2rem;margin-bottom:1rem;display:block}
.value-prop h3{font-family:var(--font-display);font-weight:700;font-size:1.15rem;margin-bottom:0.75rem}
.value-prop p{font-size:0.9rem;color:var(--text2);line-height:1.7;margin-bottom:1.5rem}
.value-prop a{color:var(--gblue);font-size:0.8rem;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;transition:color .3s}
.value-prop a:hover{color:var(--text)}

/* ── SOLUTIONS GRID (home + solutions page) ── */
.solutions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;max-width:960px;margin:0 auto}
.solution-card{padding:2rem;border:1px solid var(--border);background:var(--bg-card);transition:all .4s;position:relative;text-decoration:none;color:var(--text);display:block}
.solution-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--gblue-dim),transparent)}
.solution-card:hover{border-color:rgba(66,133,244,0.15);transform:translateY(-3px);box-shadow:0 8px 30px rgba(66,133,244,0.08)}
.solution-card-icon{font-size:1.8rem;margin-bottom:1rem;display:block}
.solution-card h3{font-family:var(--font-display);font-weight:700;font-size:1.05rem;margin-bottom:0.5rem}
.solution-card p{font-size:0.85rem;color:var(--text2);line-height:1.6}

/* ── CTA BANNER ── */
.cta-banner{text-align:center;padding:6rem 3rem;background:var(--bg2);position:relative}
.cta-banner::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,var(--gblue-glow),transparent 70%);pointer-events:none}
.cta-banner h2{font-family:var(--font-display);font-weight:700;font-size:clamp(1.5rem,4vw,2.5rem);margin-bottom:1.5rem;position:relative}
.cta-banner .cta-btn{display:inline-block;padding:1rem 2.5rem;border:1px solid var(--gblue);color:var(--gblue);
  font-family:var(--font-body);font-size:0.85rem;letter-spacing:2px;text-transform:uppercase;text-decoration:none;
  transition:all .4s;position:relative}
.cta-banner .cta-btn:hover{background:var(--gblue);color:var(--bg);box-shadow:0 0 40px var(--gblue-glow)}

/* ── MULTI-COLUMN FOOTER ── */
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;max-width:960px;margin:0 auto;padding:0 3rem;text-align:left}
.footer-col h4{font-family:var(--font-display);font-weight:700;font-size:0.85rem;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:1rem;color:var(--text)}
.footer-col ul{list-style:none}
.footer-col ul li{margin-bottom:0.5rem}
.footer-col ul a{color:var(--text2);text-decoration:none;font-size:0.8rem;letter-spacing:0.5px;transition:color .3s}
.footer-col ul a:hover{color:var(--gblue)}
.footer-brand{font-family:var(--font-display);font-weight:700;font-size:1.3rem;letter-spacing:2px;color:var(--gblue);margin-bottom:0.75rem}
.footer-brand span{color:var(--text)}
.footer-brand-desc{font-size:0.85rem;color:var(--text2);line-height:1.6}
.footer-bottom{text-align:center;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--border)}

/* ── CAPABILITY CARDS (platform page) ── */
.capability-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:900px;margin:0 auto}

/* ── VALUES GRID (company page) ── */
.values-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:900px;margin:0 auto}
