/* ============================================================
   TAPFLASH | OUR TECHNOLOGY
   ============================================================ */
body { overflow-x: hidden; }
.technology-hero { position: relative; overflow: hidden; padding: 112px 0 94px; color: white; background: #08111f; }
.hero-grid-pattern { position: absolute; inset: 0; opacity: .2; background-image: linear-gradient(rgba(148,163,184,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(148,163,184,.12) 1px, transparent 1px); background-size: 42px 42px; mask-image: radial-gradient(circle at 70% 45%, black, transparent 65%); animation:techGridDrift 18s linear infinite; }
.tech-orb { position: absolute; border-radius: 50%; filter: blur(70px); pointer-events: none; }.tech-orb--blue { width: 420px; height: 420px; right: 12%; top: 10%; background: rgba(37,99,235,.18); }.tech-orb--green { width: 280px; height: 280px; right: 2%; bottom: -12%; background: rgba(34,197,94,.16); }
.technology-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.dark-eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 25px; padding: 7px 13px; border: 1px solid rgba(255,255,255,.12); border-radius: 99px; color: #bfdbfe; background: rgba(255,255,255,.045); font-size: 11px; font-weight: 600; }.dark-eyebrow span { width: 6px; height: 6px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(34,197,94,.1); }
.technology-copy h1 { max-width: 650px; color: white; font-size: clamp(43px, 5.3vw, 68px); line-height: 1.04; }.technology-copy h1 span { color: #60a5fa; position: relative; }.technology-copy h1 span::after { content: ''; position: absolute; left: 0; bottom: -3px; width: 100%; height: 4px; border-radius: 4px; background: var(--green); transform: scaleX(0); transform-origin: left; animation: lineGrow .8s .7s forwards; }
.technology-copy > p { max-width: 590px; margin: 24px 0 32px; color: #94a3b8; font-size: 17px; line-height: 1.75; }.technology-actions { display: flex; flex-wrap: wrap; gap: 12px; }.technology-actions svg, .foundation-link svg, .technology-cta-actions svg { width: 16px; height: 16px; }.tech-primary { color: var(--navy); background: white; }.tech-ghost { color: white; border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.045); }
.hero-tech-stats { display: flex; gap: 0; margin-top: 45px; }.hero-tech-stats div { min-width: 112px; padding-right: 24px; }.hero-tech-stats div + div { padding-left: 24px; border-left: 1px solid rgba(255,255,255,.11); }.hero-tech-stats strong, .hero-tech-stats span { display: block; }.hero-tech-stats strong { color: white; font: 800 20px 'Manrope'; }.hero-tech-stats span { margin-top: 3px; color: #64748b; font-size: 9px; text-transform: uppercase; letter-spacing: .05em; }

/* Network hero visual */
.network-visual { position: relative; min-height: 560px; isolation:isolate; animation: visualIn .9s .2s both cubic-bezier(.2,.8,.2,1); }.network-visual::before { content:'';position:absolute;z-index:0;left:50%;top:50%;width:500px;height:500px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 78%,rgba(59,130,246,.13) 91%,rgba(34,197,94,.06) 96%,transparent 100%);mask-image:radial-gradient(circle,transparent 0 20%,black 52%,transparent 72%);transform:translate(-50%,-50%);animation:radarSweep 7s linear infinite; }.network-ring { position: absolute; z-index:1;top: 50%; left: 50%; border: 1px solid rgba(96,165,250,.18); border-radius: 50%; transform: translate(-50%,-50%); }.network-ring--outer { width: 460px; height: 460px; animation:networkRingPulse 5s ease-in-out infinite; }.network-ring--inner { width: 270px; height: 270px; border-style: dashed; animation: slowSpin 24s linear infinite; }
.network-line { position: absolute;z-index:1; top: 50%; left: 50%; height: 1px; width: 390px; background: linear-gradient(90deg, transparent, rgba(96,165,250,.45), transparent); transform-origin: left;overflow:visible; }.network-line::after { content:'';position:absolute;top:-3px;left:4%;width:7px;height:7px;border-radius:50%;background:#60a5fa;box-shadow:0 0 14px rgba(96,165,250,.95);animation:dataPacket 3.4s linear infinite; }.network-line--one { transform: rotate(42deg) translateX(-50%); }.network-line--two { transform: rotate(-38deg) translateX(-50%); }.network-line--two::after { background:#22c55e;box-shadow:0 0 14px rgba(34,197,94,.95);animation-delay:-1.7s; }
.network-core { position: absolute; z-index: 2; top: 50%; left: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 164px; height: 164px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; background: rgba(15,29,50,.92); box-shadow: 0 0 0 12px rgba(37,99,235,.06), 0 25px 60px rgba(0,0,0,.35); transform: translate(-50%,-50%); backdrop-filter: blur(14px); animation:coreBreath 3.8s ease-in-out infinite; }.core-logo { display: grid; place-items: center; width: 42px; height: 42px; margin-bottom: 11px; border-radius: 13px; background: var(--blue); box-shadow: 0 10px 28px rgba(37,99,235,.35); font: 800 18px 'Manrope'; animation:coreLogoSignal 2.4s ease-in-out infinite; }.network-core strong { font: 700 13px 'Manrope'; }.network-core small { display: flex; align-items: center; gap: 5px; margin-top: 5px; color: #94a3b8; font-size: 7px; }.network-core small span { width: 5px; height: 5px; border-radius: 50%; background: var(--green);animation:signalPulse 1.5s ease-in-out infinite; }
.network-node { position: absolute; z-index: 3; display:grid;grid-template-columns:33px minmax(94px,1fr);align-items:center;gap:9px 10px; min-width: 178px; padding: 11px 13px 10px; border: 1px solid rgba(255,255,255,.11); border-radius: 14px; background: rgba(15,29,50,.9); box-shadow: 0 16px 35px rgba(0,0,0,.24); backdrop-filter: blur(12px);animation:nodeOnline 5.2s ease-in-out infinite; }.network-node > span { display: grid; place-items: center; width: 33px; height: 33px; border-radius: 10px; color: #60a5fa; background: rgba(37,99,235,.12); }.network-node svg { width: 15px; }.network-node strong, .network-node small { display: block; }.network-node strong { font-size: 10px; }.network-node small { margin-top: 3px; color: #64748b; font-size: 7px; }.node-copy small {display:flex;align-items:center;gap:4px}.node-copy small i{display:block;width:4px;height:4px;border-radius:50%;background:#22c55e;box-shadow:0 0 7px rgba(34,197,94,.75);animation:signalPulse 1.5s ease-in-out infinite}.node-sensor { top: 4%; left: 0; }.node-ai { top: 10%; right: -5%;animation-delay:-1.3s; }.node-location { bottom: 6%; left: -2%;animation-delay:-2.6s; }.node-analytics { right: -6%; bottom: 11%;animation-delay:-3.9s; }.node-ai > span, .node-location > span { color: var(--green); background: rgba(34,197,94,.1); }
.node-live{position:relative;grid-column:1/-1;overflow:hidden;height:32px;border-top:1px solid rgba(255,255,255,.065);padding-top:7px}
.node-live--sensor{display:flex;align-items:center;gap:3px}.node-live--sensor i{flex:1;height:30%;border-radius:3px;background:linear-gradient(to top,#2563eb,#60a5fa);transform-origin:center;animation:sensorWave 1.15s ease-in-out infinite}.node-live--sensor i:nth-child(2n){animation-delay:-.25s}.node-live--sensor i:nth-child(3n){animation-delay:-.55s}.node-live--sensor i:nth-child(5n){animation-delay:-.8s}
.node-live--ai{display:flex;align-items:center;justify-content:center;gap:13px}.node-live--ai b{position:relative;z-index:2;width:7px;height:7px;border:1px solid #4ade80;border-radius:50%;background:#102a2a;box-shadow:0 0 8px rgba(74,222,128,.4);animation:aiNodeThink 1.8s ease-in-out infinite}.node-live--ai b:nth-child(2){animation-delay:-.6s}.node-live--ai b:nth-child(3){animation-delay:-1.2s}.node-live--ai span,.node-live--ai em{position:absolute;top:17px;width:42px;height:1px;background:linear-gradient(90deg,transparent,#4ade80,transparent);animation:aiConnection 1.8s ease-in-out infinite}.node-live--ai span{left:29px}.node-live--ai em{right:29px;animation-delay:-.9s}
.node-live--location{background-image:linear-gradient(rgba(96,165,250,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(96,165,250,.1) 1px,transparent 1px);background-size:13px 13px}.node-live--location span{position:absolute;left:53%;top:12px;width:7px;height:7px;border:2px solid #4ade80;border-radius:50% 50% 50% 0;background:#0f1d32;rotate:-45deg;animation:locationPin 2s ease-in-out infinite}.node-live--location b{position:absolute;width:3px;height:3px;border-radius:50%;background:#60a5fa;animation:locationPing 2.8s ease-out infinite}.node-live--location b:nth-of-type(1){left:19%;top:17px}.node-live--location b:nth-of-type(2){right:18%;top:11px;animation-delay:-.9s}.node-live--location b:nth-of-type(3){left:70%;bottom:4px;animation-delay:-1.8s}.node-live--location i{position:absolute;left:53%;top:17px;width:8px;height:8px;border:1px solid rgba(74,222,128,.65);border-radius:50%;animation:locationRadius 2s ease-out infinite}
.node-live--analytics{display:flex;align-items:flex-end;gap:5px;padding-inline:5px}.node-live--analytics i{flex:1;height:28%;border-radius:3px 3px 0 0;background:linear-gradient(to top,#1d4ed8,#60a5fa);animation:analyticsBar 2.6s ease-in-out infinite}.node-live--analytics i:nth-child(2){height:48%;animation-delay:-.3s}.node-live--analytics i:nth-child(3){height:35%;animation-delay:-.6s}.node-live--analytics i:nth-child(4){height:72%;background:linear-gradient(to top,#15803d,#4ade80);animation-delay:-.9s}.node-live--analytics i:nth-child(5){height:58%;animation-delay:-1.2s}.node-live--analytics i:nth-child(6){height:88%;animation-delay:-1.5s}.node-live--analytics span{position:absolute;left:7px;right:7px;bottom:5px;height:18px;background:linear-gradient(90deg,rgba(96,165,250,.7),rgba(74,222,128,.8));clip-path:polygon(0 76%,18% 50%,36% 63%,55% 20%,72% 42%,100% 5%,100% 16%,72% 53%,55% 31%,36% 74%,18% 61%,0 88%);opacity:.7;animation:analyticsLine 3s ease-in-out infinite}
/* Larger instrument cards make each live visualization easy to read. */
.network-node{grid-template-columns:39px minmax(112px,1fr);gap:11px;min-width:205px;min-height:118px;padding:14px 15px 12px;border-radius:16px;background:rgba(15,29,50,.94);box-shadow:0 18px 42px rgba(0,0,0,.3)}
.network-node>span{width:39px;height:39px;border-radius:11px}.network-node svg{width:18px}.network-node strong{font-size:11px}.network-node small{font-size:7.5px}.node-copy small i{width:5px;height:5px}
.node-live{height:54px;padding-top:9px;border-top-color:rgba(255,255,255,.08)}
.node-sensor{top:1%;left:-2%}.node-ai{top:7%;right:-8%}.node-location{bottom:1%;left:-4%}.node-analytics{right:-9%;bottom:6%}
.node-live--ai span,.node-live--ai em{top:29px;width:55px}.node-live--ai span{left:31px}.node-live--ai em{right:31px}
.node-live--location span{top:20px;width:10px;height:10px}.node-live--location b{width:4px;height:4px}.node-live--location b:nth-of-type(1){top:30px}.node-live--location b:nth-of-type(2){top:18px}.node-live--location b:nth-of-type(3){bottom:7px}.node-live--location i{top:28px;width:10px;height:10px}
.signal-dot { position: absolute; z-index: 4; width: 7px; height: 7px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 5px rgba(34,197,94,.08); animation: signalPulse 2.2s ease-in-out infinite; }.signal-dot--one { top: 29%; left: 30%; }.signal-dot--two { top: 37%; right: 23%; animation-delay: -.7s; }.signal-dot--three { left: 32%; bottom: 27%; animation-delay: -1.4s; }

/* Signal strip */
.signal-strip { border-bottom: 1px solid var(--border); background: white; }.signal-strip-grid { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-top: 22px; padding-bottom: 22px; }.signal-strip-grid > span { color: var(--text); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }.signal-strip-grid > div { display: flex; align-items: center; gap: 7px; color: var(--navy); font-size: 11px; font-weight: 600; }.signal-strip-grid > div svg { width: 15px; color: var(--blue); }.signal-strip-grid > svg { width: 14px; color: #cbd5e1; }

/* Architecture */
.architecture-section { padding: 116px 0; background: #f8fafc; }.architecture-heading { max-width: 710px; margin-bottom: 58px; }.section-kicker { display: inline-block; margin-bottom: 13px; color: var(--blue); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }.architecture-heading h2, .pipeline-heading h2, .foundation-copy h2, .stack-heading h2 { color: var(--navy); font-size: clamp(32px,4vw,48px); line-height: 1.1; }.architecture-heading p, .pipeline-heading p { max-width: 650px; margin-top: 17px; color: var(--text); font-size: 15px; line-height: 1.75; }
.architecture-stack { display: grid; gap: 20px; }.layer-card { display: grid; grid-template-columns: 58px minmax(270px,.8fr) minmax(400px,1.2fr); gap: 28px; align-items: center; min-height: 350px; padding: 34px; border: 1px solid var(--border); border-radius: 28px; background: white; transition: transform .25s ease, box-shadow .25s ease; }.layer-card:hover { transform: translateY(-3px); box-shadow: 0 25px 55px rgba(15,23,42,.08); }.layer-index { align-self: stretch; display: flex; flex-direction: column; align-items: center; justify-content: space-between; padding: 4px 0; border-right: 1px solid var(--border); }.layer-index span { color: #94a3b8; font: 700 10px 'Manrope'; }.layer-index svg { width: 20px; color: var(--blue); }.layer-name { color: var(--blue); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }.layer-copy h3 { margin: 8px 0 12px; font-size: 24px; line-height: 1.2; }.layer-copy p { color: var(--text); font-size: 13px; line-height: 1.7; }.layer-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 21px; }.layer-tags span { padding: 5px 8px; border: 1px solid var(--border); border-radius: 99px; color: #64748b; background: #f8fafc; font-size: 8px; font-weight: 600; }
.sensor-console, .ai-console, .analytics-console { min-height: 250px; padding: 19px; border: 1px solid rgba(255,255,255,.08); border-radius: 19px; color: white; background: #0d1728; box-shadow: 0 20px 45px rgba(15,23,42,.15); }.console-header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,.08); color: #cbd5e1; font-size: 9px; }.console-header > span:first-child { display: flex; align-items: center; gap: 6px; }.console-header svg { width: 13px; color: var(--blue); }.console-live { display: flex; align-items: center; gap: 5px; color: #86efac; }.console-live i { width: 5px; height: 5px; border-radius: 50%; background: var(--green); }.console-row { display: grid; grid-template-columns: 95px 1fr 42px; gap: 9px; align-items: center; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.06); font-size: 8px; }.console-row > span { display: flex; align-items: center; gap: 6px; color: #94a3b8; }.console-row svg { width: 12px; }.console-row strong { text-align: right; font-size: 8px; }.console-row .good { color: #86efac; }.signal-bar { overflow: hidden; height: 4px; border-radius: 8px; background: rgba(255,255,255,.07); }.signal-bar i { display: block; height: 100%; border-radius: inherit; background: var(--blue); }.waveform { display: flex; align-items: center; gap: 4px; height: 39px; margin-top: 7px; }.waveform i { flex: 1; height: 30%; border-radius: 5px; background: rgba(34,197,94,.45); }.waveform i:nth-child(3n) { height: 80%; }.waveform i:nth-child(2n) { height: 52%; }.waveform i:nth-child(5n) { height: 95%; }
.ai-console { background: #101b30; }.ai-topbar, .ai-topbar > div { display: flex; align-items: center; }.ai-topbar { justify-content: space-between; padding-bottom: 15px; border-bottom: 1px solid rgba(255,255,255,.08); }.ai-topbar > div { gap: 8px; }.ai-avatar { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 9px; color: var(--green); background: rgba(34,197,94,.1); }.ai-avatar svg { width: 14px; }.ai-topbar strong, .ai-topbar small { display: block; }.ai-topbar strong { font-size: 9px; }.ai-topbar small { display: flex; align-items: center; gap: 4px; margin-top: 2px; color: #64748b; font-size: 7px; }.ai-topbar small i { width: 4px; height: 4px; border-radius: 50%; background: var(--green); }.response-time { padding: 4px 7px; border-radius: 99px; color: #86efac; background: rgba(34,197,94,.08); font-size: 6px; }.ai-message { width: fit-content; max-width: 86%; margin-top: 14px; padding: 9px 11px; border-radius: 11px; color: #cbd5e1; background: rgba(255,255,255,.06); font-size: 8px; line-height: 1.5; }.ai-message--user { margin-left: auto; color: white; background: var(--blue); border-bottom-right-radius: 3px; }.ai-message--bot { display: flex; align-items: flex-start; gap: 7px; border-bottom-left-radius: 3px; }.ai-message--bot svg { width: 11px; flex-shrink: 0; color: var(--green); }.ai-thinking { display: flex; gap: 3px; width: fit-content; margin-top: 8px; padding: 7px 9px; border-radius: 9px; background: rgba(255,255,255,.05); }.ai-thinking span { width: 4px; height: 4px; border-radius: 50%; background: #64748b; animation: thinking 1.1s infinite; }.ai-thinking span:nth-child(2) { animation-delay: .15s; }.ai-thinking span:nth-child(3) { animation-delay: .3s; }
.analytics-console { background: #0d1728; }.analytics-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 13px; border-bottom: 1px solid rgba(255,255,255,.08); }.analytics-head strong, .analytics-head span { display: block; }.analytics-head span { color: #94a3b8; font-size: 8px; }.analytics-head strong { margin-top: 2px; font-size: 7px; }.analytics-head > span { display: flex; align-items: center; gap: 4px; color: #86efac; }.analytics-head svg { width: 9px; }.analytics-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 13px 0; }.analytics-stats > div { padding: 10px; border-radius: 10px; background: rgba(255,255,255,.04); }.analytics-stats small, .analytics-stats strong, .analytics-stats em { display: block; }.analytics-stats small { color: #64748b; font-size: 6px; }.analytics-stats strong { margin: 3px 0; font: 700 15px 'Manrope'; }.analytics-stats em { color: #86efac; font-size: 6px; font-style: normal; }.analytics-chart { display: flex; align-items: flex-end; gap: 6px; height: 70px; }.analytics-chart span { flex: 1; border-radius: 3px 3px 0 0; background: rgba(37,99,235,.6); }.analytics-chart span:nth-child(3n) { background: var(--green); }

/* Pipeline */
.pipeline-section { padding: 110px 0; color: white; background: #0b1324; }.pipeline-heading { max-width: 720px; margin-bottom: 52px; }.pipeline-heading h2 { color: white; }.pipeline-heading p { color: #94a3b8; }.section-kicker--green { color: var(--green); }.pipeline { display: grid; grid-template-columns: 1fr 30px 1fr 30px 1fr; gap: 15px; align-items: center; }.pipeline-step { display: flex; align-items: flex-start; gap: 14px; min-height: 164px; padding: 23px; border: 1px solid rgba(255,255,255,.09); border-radius: 19px; background: rgba(255,255,255,.035); }.pipeline-icon { display: grid; place-items: center; flex-shrink: 0; width: 39px; height: 39px; border-radius: 11px; color: #60a5fa; background: rgba(37,99,235,.12); }.pipeline-icon svg { width: 17px; }.pipeline-step small { display: block; color: var(--green); font-size: 7px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }.pipeline-step strong { display: block; margin: 7px 0; font: 700 13px 'Manrope'; }.pipeline-step p { color: #94a3b8; font-size: 10px; line-height: 1.6; }.pipeline-arrow { width: 19px; color: #334155; }

/* Foundation and stack */
.foundation-section { padding: 116px 0; }.foundation-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 85px; align-items: center; }.foundation-copy > p { margin: 20px 0 27px; color: var(--text); font-size: 14px; line-height: 1.75; }.foundation-link { display: inline-flex; align-items: center; gap: 7px; color: var(--blue); font-size: 12px; font-weight: 700; }.foundation-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }.foundation-cards article { display: flex; gap: 13px; padding: 21px; border: 1px solid var(--border); border-radius: 18px; background: #f8fafc; }.foundation-cards article > span { display: grid; place-items: center; flex-shrink: 0; width: 37px; height: 37px; border-radius: 10px; color: var(--blue); background: rgba(37,99,235,.09); }.foundation-cards svg { width: 16px; }.foundation-cards h3 { font-size: 13px; }.foundation-cards p { margin-top: 6px; color: var(--text); font-size: 10px; line-height: 1.6; }
.stack-section { padding: 92px 0; border-top: 1px solid var(--border); background: #f8fafc; }.stack-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; }.stack-heading h2 { max-width: 680px; }.stack-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 38px; }.stack-chips span { display: flex; align-items: center; gap: 9px; padding: 12px 16px; border: 1px solid var(--border); border-radius: 12px; color: var(--navy); background: white; font-size: 11px; font-weight: 600; box-shadow: 0 8px 20px rgba(15,23,42,.04); }.stack-chips svg { width: 16px; color: var(--blue); }

/* CTA */
.technology-cta-section { padding: 0 0 110px; background: #f8fafc; }.technology-cta { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr auto; gap: 45px; align-items: end; padding: 56px; border-radius: 30px; color: white; background: var(--blue); }.cta-circuit { position: absolute; inset: 0; opacity: .16; background-image: linear-gradient(90deg, transparent 49%, white 50%, transparent 51%), linear-gradient(transparent 49%, white 50%, transparent 51%); background-size: 60px 60px; mask-image: linear-gradient(90deg, transparent, black); }.technology-cta > div:not(.cta-circuit) { position: relative; z-index: 1; }.technology-cta > div > span { display: flex; align-items: center; gap: 6px; margin-bottom: 14px; color: #dcfce7; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }.technology-cta > div > span svg { width: 13px; }.technology-cta h2 { color: white; font-size: clamp(30px,4vw,43px); }.technology-cta p { max-width: 640px; margin-top: 13px; color: rgba(255,255,255,.76); font-size: 13px; }.technology-cta-actions { display: flex; flex-direction: column; gap: 9px; }.technology-cta-actions .btn { justify-content: center; }.technology-cta-actions .btn:first-child { color: var(--navy); background: white; }.technology-cta-actions .btn:last-child { color: white; border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.08); }

/* Reveal + motion */
[data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .65s cubic-bezier(.2,.8,.2,1), transform .65s cubic-bezier(.2,.8,.2,1); }[data-reveal].revealed { opacity: 1; transform: none; }[data-reveal-group] > * { opacity: 0; transform: translateY(18px); transition: opacity .55s cubic-bezier(.2,.8,.2,1), transform .55s cubic-bezier(.2,.8,.2,1); }[data-reveal-group].revealed > * { opacity: 1; transform: none; }[data-reveal-group].revealed > *:nth-child(2) { transition-delay: .08s; }[data-reveal-group].revealed > *:nth-child(3) { transition-delay: .16s; }[data-reveal-group].revealed > *:nth-child(4) { transition-delay: .24s; }[data-reveal-group].revealed > *:nth-child(5) { transition-delay: .32s; }
@keyframes lineGrow { to { transform: scaleX(1); } }@keyframes visualIn { from { opacity: 0; transform: translateX(25px); } to { opacity: 1; transform: none; } }@keyframes slowSpin { to { transform: translate(-50%,-50%) rotate(360deg); } }@keyframes signalPulse { 50% { opacity: .35; transform: scale(.7); } }@keyframes thinking { 0%,60%,100% { transform: translateY(0); opacity: .4; } 30% { transform: translateY(-3px); opacity: 1; } }
@keyframes techGridDrift { to { background-position:42px 42px; } }
@keyframes radarSweep { to { transform:translate(-50%,-50%) rotate(360deg); } }
@keyframes networkRingPulse { 0%,100% { opacity:.55;scale:.98; } 50% { opacity:1;scale:1.035; } }
@keyframes dataPacket { 0% { left:3%;opacity:0; } 15%,80% { opacity:1; } 100% { left:96%;opacity:0; } }
@keyframes coreBreath { 0%,100% { box-shadow:0 0 0 12px rgba(37,99,235,.05),0 25px 60px rgba(0,0,0,.35); } 50% { box-shadow:0 0 0 22px rgba(37,99,235,.09),0 25px 70px rgba(37,99,235,.18); } }
@keyframes coreLogoSignal { 0%,100% { filter:brightness(1);scale:1; } 50% { filter:brightness(1.3);scale:1.06; } }
@keyframes nodeOnline { 0%,100% { translate:0 0;border-color:rgba(255,255,255,.1); } 45% { translate:0 -5px;border-color:rgba(96,165,250,.34); } 55% { translate:0 -5px;border-color:rgba(34,197,94,.3); } }
@keyframes sensorWave{0%,100%{height:24%;opacity:.45}50%{height:92%;opacity:1}}
@keyframes aiNodeThink{0%,100%{scale:.75;opacity:.45}50%{scale:1.3;opacity:1;box-shadow:0 0 13px rgba(74,222,128,.8)}}
@keyframes aiConnection{0%,100%{opacity:.2;scale:.7 1}50%{opacity:1;scale:1 1}}
@keyframes locationPin{0%,100%{translate:0 0}50%{translate:0 -4px;filter:drop-shadow(0 4px 5px rgba(74,222,128,.6))}}
@keyframes locationPing{0%{box-shadow:0 0 0 0 rgba(96,165,250,.5);opacity:1}100%{box-shadow:0 0 0 8px rgba(96,165,250,0);opacity:.25}}
@keyframes locationRadius{0%{scale:.4;opacity:.9}100%{scale:3.2;opacity:0}}
@keyframes analyticsBar{0%,100%{scale:1 .55;opacity:.55}50%{scale:1 1;opacity:1}}
@keyframes analyticsLine{0%,100%{translate:-3px 2px;opacity:.4}50%{translate:3px -3px;opacity:1}}

/* Responsive */
@media (max-width: 1050px) { .technology-hero-grid { grid-template-columns: 1fr; gap: 55px; }.technology-copy { max-width: 760px; }.network-visual { max-width: 650px; width: 100%; margin: 0 auto; }.layer-card { grid-template-columns: 48px 1fr; }.layer-card > :last-child { grid-column: 2; }.foundation-grid { gap: 45px; } }
@media (max-width: 820px) { .technology-hero { padding: 88px 0 75px; }.signal-strip-grid { flex-wrap: wrap; justify-content: center; }.signal-strip-grid > span { width: 100%; text-align: center; }.architecture-section, .pipeline-section, .foundation-section { padding: 86px 0; }.pipeline { grid-template-columns: 1fr; }.pipeline-arrow { margin: 0 auto; transform: rotate(90deg); }.foundation-grid { grid-template-columns: 1fr; }.technology-cta { grid-template-columns: 1fr; }.technology-cta-actions { flex-direction: row; justify-content: flex-start; } }
@media (max-width: 600px) { .technology-copy h1 { font-size: 40px; }.technology-copy > p { font-size: 15px; }.technology-actions { flex-direction: column; }.technology-actions .btn { justify-content: center; }.hero-tech-stats { flex-wrap: wrap; }.hero-tech-stats div { min-width: 95px; }.hero-tech-stats div + div { padding-left: 16px; }.network-visual { min-height: 510px; transform: scale(.82); transform-origin: center; margin: -25px auto; animation: none; }.network-ring--outer { width: 390px; height: 390px; }.node-sensor { left: -5%; }.node-ai { right: -7%; }.node-location { left: -5%; }.node-analytics { right: -7%; }.layer-card { grid-template-columns: 1fr; padding: 24px; }.layer-index { flex-direction: row; padding-bottom: 14px; border-right: 0; border-bottom: 1px solid var(--border); }.layer-card > :last-child { grid-column: 1; }.sensor-console, .ai-console, .analytics-console { min-height: 235px; padding: 14px; }.foundation-cards { grid-template-columns: 1fr; }.stack-heading { display: block; }.technology-cta { padding: 38px 25px; }.technology-cta-actions { flex-direction: column; }.signal-strip-grid > svg { display: none; } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } [data-reveal],[data-reveal-group] > * { opacity: 1 !important; transform: none !important; } }
