@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
:root{--bg:#070b15;--bg2:#0b1121;--panel:#0e1729;--panel2:#111d32;--edge:rgba(142,184,220,.15);--edge2:rgba(142,184,220,.25);--text:#ecf6ff;--muted:#93a5ba;--soft:#c2d2e2;--cyan:#50ecde;--blue:#6d9cff;--violet:#b4a1ff;--amber:#ffcc8a;--red:#ff899d;--r:18px;--shadow:0 22px 90px rgba(0,0,0,.34);--max:1216px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;color:var(--text);background:var(--bg);font-family:'DM Sans',system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.68;-webkit-font-smoothing:antialiased}body:before{content:'';position:absolute;left:0;top:0;width:100%;height:760px;background:radial-gradient(ellipse 50% 56% at 73% 20%,rgba(34,93,141,.18),transparent 74%),radial-gradient(ellipse 45% 45% at 3% 10%,rgba(42,73,134,.13),transparent 75%);z-index:-1;pointer-events:none}::selection{background:#317d88;color:white}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}img,svg{max-width:100%}img{display:block}button,input,textarea,select{font:inherit}button{cursor:pointer}p{margin:0 0 20px;color:var(--soft)}h1,h2,h3,h4{font-family:'Space Grotesk',sans-serif;line-height:1.14;letter-spacing:-.045em;margin:0 0 20px;font-weight:600}h1{font-size:clamp(2.8rem,5.8vw,5.65rem);letter-spacing:-.068em;line-height:1.04}h2{font-size:clamp(2.2rem,4vw,3.4rem)}h3{font-size:1.4rem;letter-spacing:-.03em}h4{font-size:1.05rem;letter-spacing:-.015em}.wrap{max-width:var(--max);padding:0 28px;margin:0 auto}.section{padding:112px 0;position:relative}.section-tight{padding:72px 0}.section-dark{background:linear-gradient(180deg,rgba(15,24,43,.45),rgba(15,24,43,.18));border-top:1px solid var(--edge);border-bottom:1px solid var(--edge)}.eyebrow{text-transform:uppercase;letter-spacing:.17em;color:var(--cyan);font:600 11px/1.5 'IBM Plex Mono',monospace;display:inline-flex;align-items:center;gap:11px;margin-bottom:22px}.eyebrow:before{content:'';width:19px;height:1px;background:var(--cyan)}.eyebrow.no-line:before{display:none}.eyebrow-light{color:var(--blue)}.lead{font-size:1.12rem;line-height:1.85;max-width:640px}.muted{color:var(--muted)}.text-small{font-size:.86rem}.text-center{text-align:center}.text-center .lead{margin-left:auto;margin-right:auto}.gradient-text{background:linear-gradient(110deg,#8cdbff 2%,#50ecde 42%,#c0b3ff 94%);-webkit-background-clip:text;background-clip:text;color:transparent}.mini-label{font:500 10px/1.5 'IBM Plex Mono',monospace;color:#9bafc3;letter-spacing:.12em;text-transform:uppercase}.display-number{font:600 2.05rem/1.1 'Space Grotesk',sans-serif;letter-spacing:-.05em}.btn{border:1px solid transparent;padding:13px 21px;display:inline-flex;align-items:center;justify-content:center;gap:11px;border-radius:9px;font-size:.91rem;font-weight:700;line-height:1.35;transition:transform .2s,background .2s,border-color .2s,box-shadow .2s;text-align:center;white-space:normal}.btn svg,.text-link svg{width:17px;height:17px;flex:none}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--cyan);color:#071823;box-shadow:0 8px 33px rgba(80,236,222,.13)}.btn-primary:hover{background:#88fff3;box-shadow:0 11px 40px rgba(80,236,222,.23)}.btn-secondary{border-color:#405369;background:#172338;color:#edf7ff}.btn-secondary:hover{border-color:var(--cyan);background:#1b3245}.btn-ghost{color:#dcf0ff;border-color:var(--edge2);background:rgba(13,23,40,.4)}.btn-ghost:hover{border-color:#78dcd7}.btn-small{padding:10px 15px;font-size:.8rem}.btn-group{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.text-link{display:inline-flex;gap:8px;align-items:center;color:var(--cyan);font-size:.9rem;font-weight:700}.text-link:hover{color:#b4fff8}.text-link svg{transition:transform .2s}.text-link:hover svg{transform:translateX(3px)}.topbar{height:78px;position:sticky;top:0;z-index:100;background:rgba(7,11,21,.88);backdrop-filter:blur(20px);border-bottom:1px solid rgba(148,195,224,.1)}.topbar .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:inline-flex;gap:11px;align-items:center;white-space:nowrap;font:700 1.37rem/1 'Space Grotesk',sans-serif;letter-spacing:-.05em}.brand b{font-weight:700;color:var(--cyan)}.brandmark{height:35px;width:35px;display:inline-grid;place-items:center;background:linear-gradient(150deg,#1a344d,#0d1e33);border:1px solid #3a8f9c;border-radius:10px;box-shadow:inset 0 0 15px rgba(51,223,215,.1),0 0 22px rgba(28,186,190,.12)}.brandmark svg{width:24px;height:24px}.nav{display:flex;align-items:center;gap:28px;margin-left:auto}.nav a{color:#a6b8c9;font-size:.84rem;font-weight:600;transition:color .2s}.nav a:hover,.nav a[aria-current='page']{color:var(--cyan)}.nav .nav-cta{display:none}.nav-action{margin-left:20px}.nav-toggle{display:none;background:none;border:1px solid var(--edge2);color:#fff;padding:9px;border-radius:9px;width:42px;height:42px;align-items:center;justify-content:center}.nav-toggle svg{width:23px;height:23px}.hero{padding:99px 0 110px;position:relative;overflow:hidden}.hero .wrap{position:relative;z-index:1}.hero:after{content:'';position:absolute;top:13%;right:-210px;width:630px;height:630px;border:1px solid rgba(75,183,189,.07);border-radius:50%;box-shadow:0 0 0 90px rgba(76,177,204,.025),0 0 0 210px rgba(57,88,136,.018);pointer-events:none}.hero-grid{display:grid;grid-template-columns:1fr 1.09fr;gap:44px;align-items:center}.hero-copy{max-width:645px}.hero h1{margin-bottom:26px}.hero .lead{max-width:545px}.hero .btn-group{margin-top:32px}.micro-proof{display:flex;gap:16px;flex-wrap:wrap;margin-top:38px;color:#99abbb;font:.78rem 'IBM Plex Mono',monospace}.micro-proof span{display:inline-flex;align-items:center;gap:9px}.micro-proof i{width:5px;height:5px;border-radius:50%;background:#51eadf;box-shadow:0 0 12px #51eadf}.hero-footnote{font-size:.72rem;color:#7d96ac;margin-top:13px}.section-heading{max-width:740px;margin-bottom:48px}.section-heading.center{margin:0 auto 50px;text-align:center}.section-heading.center .lead{margin:auto}.section-heading p:last-child{margin-bottom:0}.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.card-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{border:1px solid var(--edge);border-radius:var(--r);background:linear-gradient(152deg,rgba(20,33,53,.85),rgba(12,19,33,.88));padding:29px;position:relative;overflow:hidden;transition:border-color .25s,transform .25s,background .25s}.card:hover{border-color:rgba(80,236,222,.4);transform:translateY(-3px)}.card h3{font-size:1.25rem;margin:22px 0 12px}.card p{font-size:.91rem;color:var(--muted);margin:0}.card .text-link{margin-top:23px}.card-icon{width:45px;height:45px;border:1px solid rgba(80,236,222,.23);border-radius:13px;background:rgba(45,126,136,.1);display:grid;place-items:center;color:var(--cyan)}.card-icon svg{width:23px;height:23px}.card-icon.purple{color:var(--violet);border-color:rgba(180,161,255,.23);background:rgba(180,161,255,.09)}.card-icon.blue{color:#92bbff;border-color:rgba(146,187,255,.24);background:rgba(146,187,255,.08)}.card-tag{font:500 .68rem 'IBM Plex Mono',monospace;color:#8ea9be;letter-spacing:.12em;text-transform:uppercase}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.split.reverse>:first-child{order:2}.split p{max-width:610px}.list-check{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:15px}.list-check li{display:flex;align-items:flex-start;gap:12px;font-size:.93rem;color:var(--soft)}.list-check svg{flex:none;width:19px;height:19px;color:var(--cyan);margin-top:4px}.step-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;counter-reset:step}.step{border-top:1px solid #2c6d7d;padding:25px 10px 0 0;position:relative}.step:before{content:'';position:absolute;top:-5px;left:0;width:8px;height:8px;background:var(--cyan);box-shadow:0 0 18px rgba(80,236,222,.65);border-radius:50%}.step .num{font:500 .76rem 'IBM Plex Mono',monospace;color:var(--cyan);margin-bottom:25px}.step h3{font-size:1.2rem;margin-bottom:12px}.step p{font-size:.88rem;color:var(--muted)}.feature-band{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--edge);border-radius:16px;overflow:hidden;background:#0f192b}.feature-band>div{padding:28px;border-right:1px solid var(--edge)}.feature-band>div:last-child{border-right:0}.feature-band svg{color:var(--cyan);width:23px;height:23px;margin-bottom:14px}.feature-band strong{display:block;font-size:.91rem;margin-bottom:6px}.feature-band p{font-size:.78rem;margin:0;color:var(--muted)}.signal-chip{display:inline-flex;gap:9px;align-items:center;border:1px solid rgba(80,236,222,.25);background:rgba(34,104,117,.12);border-radius:30px;padding:7px 12px;color:#8af3e9;font:500 .69rem 'IBM Plex Mono',monospace;letter-spacing:.08em}.signal-chip span{background:var(--cyan);width:6px;height:6px;border-radius:100%;box-shadow:0 0 10px var(--cyan)}.dashboard{padding:13px;background:#0c1424;border:1px solid #274356;border-radius:21px;box-shadow:0 30px 120px rgba(0,0,0,.5),0 0 0 8px rgba(29,75,103,.075);position:relative}.dashboard::before{content:'';position:absolute;inset:-15px;border:1px dashed rgba(90,212,224,.12);border-radius:30px;pointer-events:none}.dash-top{padding:12px 14px;display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid var(--edge);margin-bottom:13px}.dash-top strong{font:600 .78rem 'Space Grotesk',sans-serif}.dash-status{color:#75e8cf;font:.63rem 'IBM Plex Mono',monospace}.dash-status:before{content:'●';margin-right:6px}.dash-content{display:grid;grid-template-columns:1.15fr .85fr;gap:11px}.camera-feed{position:relative;border:1px solid #365264;background:#07101b;min-height:208px;border-radius:10px;overflow:hidden}.camera-feed img{width:100%;height:100%;object-fit:cover}.cam-label{position:absolute;top:12px;left:12px;font:.64rem 'IBM Plex Mono',monospace;color:#dcfcff;background:rgba(4,12,23,.75);border:1px solid rgba(150,228,231,.22);padding:5px 8px;border-radius:5px}.cam-dot{position:absolute;top:16px;right:14px;background:#fd8b91;border-radius:50%;width:7px;height:7px;box-shadow:0 0 9px #fd8b91}.dash-side{display:flex;flex-direction:column;gap:10px}.dash-stat{border:1px solid #263a50;background:#111d30;border-radius:9px;padding:13px}.dash-stat strong{display:block;font:600 1.42rem 'Space Grotesk',sans-serif;margin:3px 0}.dash-stat p{font:.65rem 'IBM Plex Mono',monospace;color:#8facc3;margin:0}.dash-stat small{font:.65rem 'IBM Plex Mono',monospace;color:var(--cyan)}.dash-lower{margin-top:11px;display:grid;grid-template-columns:1.25fr .75fr;gap:11px}.dash-graph,.dash-events{border:1px solid #253a50;background:#0c1729;border-radius:9px;padding:12px;min-height:134px}.bars{display:flex;align-items:flex-end;height:75px;gap:9px;border-bottom:1px solid #33475b;padding:3px 3px 0}.bars span{display:block;flex:1;height:var(--h);background:linear-gradient(180deg,#56eadf,#245ca7);border-radius:4px 4px 0 0;opacity:.87;transition:height .45s ease}.bars span:nth-child(2n){background:linear-gradient(180deg,#8fa4ff,#344792)}.tiny-row{display:flex;gap:8px;justify-content:space-between;font:.59rem 'IBM Plex Mono',monospace;color:#7993ab;margin-top:6px}.dash-event{border-top:1px solid #1e364b;padding-top:8px;margin-top:8px;display:flex;align-items:center;gap:8px;font:.67rem 'IBM Plex Mono',monospace;color:#c0d4e2}.event-dot{width:6px;height:6px;background:#f9ba80;border-radius:50%;flex:none}.event-dot.teal{background:#69eadb}.dash-caption{font:.68rem 'IBM Plex Mono',monospace;color:#7e98ac;margin-top:12px;text-align:right}.section-visual{min-height:380px;border:1px solid var(--edge);background:radial-gradient(circle at 70% 30%,rgba(38,90,135,.19),transparent 49%),linear-gradient(150deg,#0e1c30,#0a1324);border-radius:20px;display:grid;place-items:center;overflow:hidden;position:relative;padding:25px}.section-visual:after{content:'';position:absolute;inset:0;background-image:linear-gradient(to right,rgba(142,184,220,.04) 1px,transparent 1px),linear-gradient(to bottom,rgba(142,184,220,.04) 1px,transparent 1px);background-size:39px 39px;pointer-events:none}.section-visual>*{z-index:1}.visual-ring{width:275px;height:275px;border:1px solid rgba(77,224,224,.45);border-radius:50%;position:relative;display:grid;place-items:center;box-shadow:0 0 80px rgba(37,178,188,.07),inset 0 0 80px rgba(37,178,188,.05)}.visual-ring:before,.visual-ring:after{content:'';position:absolute;border-radius:50%;inset:27px;border:1px dashed rgba(103,200,224,.29)}.visual-ring:after{inset:64px;border-style:solid;border-color:rgba(103,200,224,.23)}.ring-core{position:relative;z-index:3;text-align:center}.ring-core svg{width:62px;height:62px;color:var(--cyan);filter:drop-shadow(0 0 15px rgba(61,224,222,.6))}.ring-core b{font:.74rem 'IBM Plex Mono',monospace;color:#cdf9fb;display:block;margin-top:12px}.orbit-label{position:absolute;border:1px solid #386078;background:#13273a;padding:8px 10px;border-radius:8px;font:.63rem 'IBM Plex Mono',monospace;color:#a5dce8}.orbit-label.one{top:30px;right:15px}.orbit-label.two{bottom:30px;left:10px}.orbit-label.three{bottom:65px;right:-23px}.tech-stack{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:28px}.tech-stack>div{background:#111d30;border:1px solid var(--edge);border-radius:11px;padding:14px 16px}.tech-stack strong{font-size:.83rem}.tech-stack p{font-size:.76rem;margin:4px 0 0}.case-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.case{border:1px solid var(--edge);border-radius:17px;overflow:hidden;background:#0e182a}.case-graphic{height:185px;background:linear-gradient(130deg,#102a40,#121a37);position:relative;overflow:hidden;display:grid;place-items:center}.case-graphic:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(78,222,233,.18),transparent 60%),linear-gradient(transparent 93%,rgba(141,207,231,.08) 95%);background-size:100% 100%,100% 25px}.case-graphic svg{width:100%;height:100%;position:relative;z-index:1}.case-copy{padding:28px}.case-copy h3{font-size:1.3rem;margin:8px 0 12px}.case-copy p{font-size:.9rem;color:var(--muted)}.case-copy .text-link{margin-top:8px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metric-card{background:#111d30;border:1px solid var(--edge);border-radius:15px;padding:24px}.metric-card svg{width:21px;height:21px;color:var(--cyan);margin-bottom:18px}.metric-card h3{font-size:1rem;line-height:1.3;letter-spacing:-.02em}.metric-card p{font-size:.8rem;margin:0}.outline-table{width:100%;border-collapse:collapse;border:1px solid var(--edge);border-radius:12px;overflow:hidden;display:table;font-size:.9rem}.outline-table th,.outline-table td{padding:18px 20px;text-align:left;vertical-align:top;border-bottom:1px solid var(--edge)}.outline-table th{background:#112039;color:#c8e5f4;font:600 .77rem 'IBM Plex Mono',monospace;letter-spacing:.04em}.outline-table tr:last-child td{border-bottom:none}.outline-table td{color:#9db1c4}.outline-table tr td:first-child{color:#e1f2ff;font-weight:700}.cta-panel{padding:56px 60px;background:radial-gradient(circle at 86% 40%,rgba(52,163,169,.18),transparent 40%),linear-gradient(120deg,#132a3e,#111a33);border:1px solid rgba(83,204,210,.29);border-radius:24px;display:flex;align-items:center;justify-content:space-between;gap:35px;position:relative;overflow:hidden}.cta-panel:after{content:'';position:absolute;right:-85px;top:-120px;width:360px;height:360px;border-radius:50%;border:1px solid rgba(118,221,235,.2);pointer-events:none}.cta-panel h2{font-size:clamp(2rem,3.5vw,3rem);max-width:610px;margin-bottom:13px}.cta-panel p{max-width:560px;margin:0}.cta-panel .btn-group{flex:none}.site-footer{border-top:1px solid var(--edge);background:#070d18;padding:70px 0 24px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.3fr;gap:40px;padding-bottom:58px}.footer-intro p{max-width:340px;font-size:.88rem;margin:19px 0 23px}.footer-col h4{font-size:.92rem;margin-bottom:18px}.footer-col a{display:block;color:#9cadc1;margin:10px 0;font-size:.85rem}.footer-col a:hover{color:var(--cyan)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--edge);padding-top:23px;font-size:.77rem;color:#8294a9}.footer-bottom p{margin:0;color:inherit;font-size:inherit}.footer-bottom a:hover{color:var(--cyan)}.footer-bottom-links{display:flex;gap:22px}.page-hero{padding:90px 0 82px;position:relative;overflow:hidden;border-bottom:1px solid var(--edge)}.page-hero:before{content:'';position:absolute;width:620px;height:400px;right:-110px;top:-140px;background:radial-gradient(ellipse,rgba(70,139,178,.17),transparent 70%);pointer-events:none}.page-hero .wrap{position:relative}.page-hero h1{font-size:clamp(2.85rem,5.3vw,4.9rem);max-width:870px}.page-hero .lead{max-width:720px}.page-hero .btn-group{margin-top:30px}.breadcrumb{color:#90a4b9;font:.72rem 'IBM Plex Mono',monospace;display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-bottom:43px}.breadcrumb a{color:#94bfcf}.breadcrumb a:hover{color:var(--cyan)}.breadcrumb span{color:#617a90}.content-split{display:grid;grid-template-columns:1.7fr .8fr;gap:55px;align-items:start}.sticky-sidebar{position:sticky;top:110px}.toc{border:1px solid var(--edge);background:#0e182a;border-radius:15px;padding:24px}.toc h3{font-size:.94rem;margin-bottom:16px}.toc a{display:block;color:#92a9bd;font-size:.8rem;padding:8px 0;border-top:1px solid rgba(142,184,220,.09)}.toc a:hover{color:var(--cyan)}.detail h2{font-size:2.25rem;margin:52px 0 18px}.detail h2:first-child{margin-top:0}.detail h3{font-size:1.3rem;margin:30px 0 12px}.detail p,.detail li{color:#b7c8d9;font-size:1rem;line-height:1.9}.detail ul,.detail ol{margin:17px 0 26px;padding-left:25px}.detail li{margin:9px 0}.detail strong{color:#eff9ff}.detail .callout{padding:24px 26px;border-left:3px solid var(--cyan);background:#122034;border-radius:0 12px 12px 0;margin:30px 0}.detail .callout p{margin:0}.detail table{width:100%;border-collapse:collapse;margin:26px 0;font-size:.88rem}.detail th,.detail td{border:1px solid #263c50;padding:15px 17px;text-align:left;vertical-align:top}.detail th{color:#c9eaff;background:#142239}.detail td{color:#afc4d5}.faq-list{border-top:1px solid var(--edge)}.faq-list details{border-bottom:1px solid var(--edge);padding:19px 0}.faq-list summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;font-family:'Space Grotesk',sans-serif;font-weight:600;color:#e2f5ff;font-size:1.05rem}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';font:400 1.5rem 'IBM Plex Mono',monospace;color:var(--cyan)}.faq-list details[open] summary:after{content:'−'}.faq-list p{margin:13px 0 0;color:#98acbf;font-size:.93rem}.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.blog-card{border:1px solid var(--edge);border-radius:17px;overflow:hidden;background:#0e1829;display:flex;flex-direction:column;transition:border-color .2s,transform .2s}.blog-card:hover{border-color:rgba(80,236,222,.36);transform:translateY(-3px)}.blog-cover{aspect-ratio:1.65;background:#152940;display:block;overflow:hidden}.blog-cover img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.blog-card:hover .blog-cover img{transform:scale(1.04)}.blog-body{padding:24px;display:flex;flex-direction:column;flex:1}.blog-meta{font:500 .66rem 'IBM Plex Mono',monospace;color:var(--cyan);letter-spacing:.07em;text-transform:uppercase;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.blog-body h3{font-size:1.28rem;line-height:1.34;margin-bottom:13px}.blog-body p{font-size:.86rem;line-height:1.75;color:var(--muted);flex:1}.blog-body .text-link{margin-top:8px}.featured-article{display:grid;grid-template-columns:1.1fr 1fr;background:#101d31;border:1px solid var(--edge);border-radius:20px;overflow:hidden;margin-bottom:27px}.featured-article .blog-cover{aspect-ratio:auto;min-height:300px}.featured-article .blog-body{padding:39px}.featured-article h3{font-size:clamp(1.5rem,2.7vw,2.25rem)}.article-head{padding:66px 0 45px;border-bottom:1px solid var(--edge)}.article-head .wrap{max-width:1040px}.article-head h1{font-size:clamp(2.6rem,5vw,4.5rem);max-width:920px}.article-head .lead{max-width:780px}.article-meta{font:.78rem 'IBM Plex Mono',monospace;color:#91a6bb;display:flex;gap:22px;flex-wrap:wrap;margin-top:28px}.article-banner{max-width:1038px;margin:38px auto 0;padding:0 28px}.article-banner img{width:100%;border:1px solid var(--edge2);border-radius:19px}.article-main{padding:60px 0 100px}.article-main .content-split{grid-template-columns:minmax(0,1fr) 266px;gap:76px}.article-main .detail h2{font-size:clamp(1.8rem,3vw,2.28rem)}.article-main .detail a:not(.btn){color:var(--cyan);text-decoration:underline;text-decoration-color:rgba(80,236,222,.35);text-underline-offset:3px}.article-main .detail a:hover{color:#aefff8}.article-related{padding-top:70px;border-top:1px solid var(--edge)}.authorline{display:flex;align-items:center;gap:14px;margin-top:35px;padding-top:24px;border-top:1px solid var(--edge)}.author-avatar{width:42px;height:42px;border:1px solid #3b7e92;border-radius:12px;display:grid;place-items:center;color:var(--cyan);background:#14293b}.authorline b{display:block;font-size:.85rem}.authorline span{font-size:.76rem;color:var(--muted)}.form-panel{border:1px solid var(--edge2);border-radius:20px;padding:34px;background:linear-gradient(145deg,#122238,#0b1627);box-shadow:var(--shadow)}.form-panel h3{font-size:1.65rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:.78rem;font-weight:700;color:#cadfeb}.field input,.field select,.field textarea{width:100%;border:1px solid #314760;background:#0b1525;color:#edf9ff;border-radius:9px;padding:12px 14px;outline:none;transition:border-color .2s}.field textarea{resize:vertical;min-height:126px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cyan)}.field input::placeholder,.field textarea::placeholder{color:#738aa2}.form-note{font-size:.75rem;color:#91a4b9;margin:12px 0 16px}.form-status{font-size:.88rem;margin-top:13px;display:none;padding:13px;border-radius:8px}.form-status.show{display:block}.form-status.success{background:rgba(52,165,136,.14);color:#8bf0d0;border:1px solid rgba(70,206,171,.26)}.form-status.error{background:rgba(200,81,104,.12);color:#ffb7c2;border:1px solid rgba(200,81,104,.3)}.form-status a{text-decoration:underline}.contact-info{display:grid;gap:18px}.contact-tile{padding:25px;border:1px solid var(--edge);background:#0e1829;border-radius:13px;display:flex;gap:18px}.contact-tile .card-icon{flex:none}.contact-tile h3{font-size:1.04rem;margin:0 0 6px}.contact-tile p{font-size:.88rem;margin:0;color:var(--muted)}.contact-tile a{color:var(--cyan);word-break:break-word}.privacy-note{font-size:.77rem;color:#8198ae}.legal-page{max-width:850px}.legal-page h2{font-size:2rem;margin-top:44px}.legal-page h3{font-size:1.26rem;margin-top:30px}.legal-page p,.legal-page li{color:#b1c5d7;line-height:1.9}.legal-page a{color:var(--cyan);text-decoration:underline}.pill-list{display:flex;gap:8px;flex-wrap:wrap;margin:26px 0}.pill{padding:6px 10px;border:1px solid #30475a;border-radius:40px;color:#acbecf;font:500 .71rem 'IBM Plex Mono',monospace}.site-map-lines{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.process-node{border:1px solid var(--edge2);border-radius:14px;background:#122035;padding:25px;position:relative}.process-node .number{font:.72rem 'IBM Plex Mono',monospace;color:var(--cyan)}.process-node h3{font-size:1.12rem;margin:15px 0 9px}.process-node p{font-size:.8rem;color:var(--muted);margin:0}.process-node svg{color:var(--cyan);width:23px;height:23px}.demo-banner{font:.7rem 'IBM Plex Mono',monospace;color:#81aabc;padding:7px 10px;border-radius:7px;border:1px solid #2a4c5a;background:#122233;display:inline-block}.prefooter{padding:0 0 108px}.skip-link{position:absolute;top:-100px;left:14px;z-index:300;color:#071923;background:var(--cyan);padding:10px 14px;border-radius:8px}.skip-link:focus{top:12px}.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}.alert-tag{padding:3px 7px;border-radius:4px;background:rgba(255,206,137,.1);color:#ffcc8a;font:.64rem 'IBM Plex Mono',monospace}.alert-tag.teal{background:rgba(80,236,222,.1);color:var(--cyan)}.not-found{min-height:66vh;display:flex;align-items:center;text-align:center}.not-found h1{font-size:8rem;color:var(--cyan)}.not-found .lead{margin:0 auto 28px}.grid-overlay{background-image:linear-gradient(to right,rgba(98,164,203,.045) 1px,transparent 1px),linear-gradient(to bottom,rgba(98,164,203,.045) 1px,transparent 1px);background-size:50px 50px}.tabs{display:flex;gap:9px;flex-wrap:wrap;margin:0 0 22px}.tab{border:1px solid var(--edge2);background:#101d30;border-radius:8px;padding:8px 15px;color:#9bb2c5;font-size:.77rem;font-weight:700}.tab.active,.tab[aria-selected='true']{border-color:var(--cyan);color:#071823;background:var(--cyan)}.blog-intro{max-width:800px}.inline-banner{padding:19px 23px;border:1px solid #315467;border-radius:13px;background:#112236;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:27px 0}.inline-banner p{font-size:.85rem;margin:0}.inline-banner a{flex:none}.table-scroll{overflow-x:auto}.table-scroll table{min-width:570px}
@media(max-width:1050px){.nav{gap:17px}.nav-action{margin-left:0}.hero-grid{gap:24px}.footer-grid{grid-template-columns:1.5fr 1fr 1fr}.footer-grid .footer-col:last-child{grid-column:2/-1}.split{gap:38px}.cta-panel{padding:44px}.case-grid,.card-grid{gap:14px}.metric-grid{grid-template-columns:repeat(2,1fr)}.article-main .content-split{gap:34px}}
@media(max-width:800px){.topbar{height:70px}.nav-toggle{display:inline-flex}.nav-action{display:none}.nav{display:none;position:absolute;top:70px;left:0;right:0;background:#0b1423;border-bottom:1px solid var(--edge2);padding:20px 28px 28px;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 25px 35px rgba(0,0,0,.45)}.nav.open{display:flex}.nav a{padding:13px 3px;border-bottom:1px solid rgba(150,190,220,.08);font-size:.97rem}.nav .nav-cta{display:inline-flex;margin-top:16px;align-self:flex-start}.wrap{padding:0 21px}.hero{padding:65px 0 74px}.hero-grid,.split,.content-split,.article-main .content-split{grid-template-columns:1fr;gap:46px}.hero .dashboard{max-width:620px;margin:auto}.split.reverse>:first-child{order:0}.card-grid,.blog-grid{grid-template-columns:repeat(2,1fr)}.section{padding:76px 0}.section-tight{padding:53px 0}.page-hero{padding:65px 0 60px}.feature-band{grid-template-columns:repeat(2,1fr)}.feature-band>div:nth-child(2){border-right:0}.feature-band>div:nth-child(-n+2){border-bottom:1px solid var(--edge)}.step-grid{grid-template-columns:repeat(2,1fr);gap:30px}.footer-grid{grid-template-columns:repeat(2,1fr)}.footer-grid .footer-col:last-child{grid-column:auto}.featured-article{grid-template-columns:1fr}.featured-article .blog-cover{aspect-ratio:1.8;min-height:0}.sticky-sidebar{position:static}.toc{display:none}.cta-panel{display:block}.cta-panel .btn-group{margin-top:26px}.case-grid{grid-template-columns:1fr 1fr}.article-head{padding:44px 0 30px}.article-banner{margin-top:26px;padding:0 20px}.article-main{padding:45px 0 70px}}
@media(max-width:560px){h1{font-size:clamp(2.65rem,12vw,4rem)}h2{font-size:2.1rem}.section-heading{margin-bottom:33px}.lead{font-size:1rem;line-height:1.75}.card-grid,.card-grid.two,.blog-grid,.case-grid,.metric-grid,.site-map-lines,.tech-stack{grid-template-columns:1fr}.step-grid{grid-template-columns:1fr;gap:22px}.step .num{margin-bottom:13px}.footer-grid{grid-template-columns:1fr 1fr;gap:24px}.footer-intro{grid-column:1/-1}.footer-grid .footer-col:last-child{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:10px}.cta-panel{padding:32px 24px}.btn-group .btn{width:100%}.feature-band{grid-template-columns:1fr}.feature-band>div{border-right:none;border-bottom:1px solid var(--edge)}.feature-band>div:last-child{border:0}.form-grid{grid-template-columns:1fr}.form-panel{padding:23px 18px}.dashboard{padding:8px}.dash-content{grid-template-columns:1.15fr .85fr;gap:7px}.camera-feed{min-height:165px}.dash-stat{padding:8px}.dash-stat strong{font-size:1rem}.dash-stat p{font-size:.54rem}.dash-lower{grid-template-columns:1fr;gap:7px}.dash-events{min-height:auto}.case-graphic{height:178px}.featured-article .blog-body{padding:25px}.detail h2{font-size:1.85rem}.outline-table th,.outline-table td{padding:12px}.inline-banner{display:block}.inline-banner a{margin-top:12px}.visual-ring{width:245px;height:245px}.orbit-label.three{right:1px}.article-head h1{font-size:2.55rem}.article-meta{gap:10px}.card{padding:24px}.micro-proof{gap:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

.article-main .detail{min-width:0}.article-main .table-scroll{max-width:100%;overflow-x:auto}


/* SiliconCloud motion layer — simulated analytics, no real camera feed.
   All animation is gated by viewport visibility and reduced-motion preferences. */
.retail-feed-art{display:block;position:absolute;inset:0;width:100%;height:100%}
.camera-feed{isolation:isolate}
.camera-feed:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(to bottom,transparent 0px,transparent 7px,rgba(72,220,229,.018) 8px);opacity:.8}
.dashboard.motion-active .retail-feed-art .motion-1{animation:sc-track-one 8.4s ease-in-out infinite}
.dashboard.motion-active .retail-feed-art .motion-2{animation:sc-track-two 9.5s ease-in-out infinite}
.dashboard.motion-active .retail-feed-art .motion-3{animation:sc-track-three 7.6s ease-in-out infinite}
.dashboard.motion-active .retail-feed-art .camera-scan-ui{animation:sc-camera-sweep 8.4s linear infinite}
.dashboard.motion-active .retail-feed-art .target-tracer{animation:sc-target-dash 2.3s linear infinite;stroke-dasharray:17 9}
.dashboard.motion-active .retail-feed-art .target-box{animation:sc-target-luminance 3.8s ease-in-out infinite}
.dashboard.motion-active .retail-feed-art .target-box-group:nth-child(2) .target-box{animation-delay:-1.25s}
.dashboard.motion-active .retail-feed-art .target-box-group:nth-child(3) .target-box{animation-delay:-2.4s}
.dashboard.motion-active .cam-dot,.dashboard.motion-active .dash-status:before{animation:sc-status-pulse 2.6s ease-in-out infinite}
.dashboard.motion-active .bars span{transform-origin:bottom center;animation:sc-graph-live 5.8s ease-in-out infinite;will-change:transform}
.dashboard.motion-active .bars span:nth-child(2){animation-delay:-3.2s;animation-duration:4.9s}
.dashboard.motion-active .bars span:nth-child(3){animation-delay:-1.6s;animation-duration:6.2s}
.dashboard.motion-active .bars span:nth-child(4){animation-delay:-4.1s;animation-duration:5.6s}
.dashboard.motion-active .bars span:nth-child(5){animation-delay:-.7s;animation-duration:5.1s}
.dashboard.motion-active .bars span:nth-child(6){animation-delay:-2.8s;animation-duration:6.8s}
.dashboard.motion-active .bars span:nth-child(7){animation-delay:-1.3s;animation-duration:5.4s}
.dashboard.motion-active .bars span:nth-child(8){animation-delay:-4.8s;animation-duration:6s}
.dashboard.motion-active .dash-graph{position:relative}
.dashboard.motion-active .dash-graph:after{content:'';position:absolute;top:0;left:16%;width:31%;height:1px;background:linear-gradient(90deg,transparent,rgba(95,248,240,.76),transparent);animation:sc-graph-scan 9s linear infinite;pointer-events:none;opacity:.72}
.dash-event [data-sim-event]{display:inline-block;transition:opacity .32s ease,transform .32s ease}
.dash-event.sim-update [data-sim-event]{animation:sc-new-event .65s ease both}
.dash-event .event-dot{box-shadow:0 0 0 0 transparent}
.dashboard.motion-active .dash-event:nth-of-type(2) .event-dot,.dashboard.motion-active .dash-event:first-of-type .event-dot{animation:sc-status-pulse 2.8s ease-in-out infinite}
.dash-stat strong.value-tick{animation:sc-value-tick .5s ease-out}
.visual-ring{isolation:isolate}
.orbit-tracer{position:absolute;inset:-1px;pointer-events:none;border-radius:50%;display:block;transform-origin:center;z-index:2}
.orbit-tracer:after{content:'';position:absolute;top:-4px;left:calc(50% - 4px);width:8px;height:8px;border-radius:50%;background:#62f8e8;box-shadow:0 0 11px #5ceede,0 0 22px rgba(53,218,218,.58)}
.orbit-tracer.tracer-b{inset:26px;opacity:.75}
.orbit-tracer.tracer-b:after{width:6px;height:6px;top:-3px;left:calc(50% - 3px);background:#a4a5ff;box-shadow:0 0 12px #918bff}
.section-visual.motion-active .tracer-a{animation:sc-orbit 14s linear infinite}
.section-visual.motion-active .tracer-b{animation:sc-orbit 10s linear infinite reverse}
.section-visual.motion-active .visual-ring:before{animation:sc-orbit 70s linear infinite}
.section-visual.motion-active .visual-ring .ring-core svg{animation:sc-core-glow 4.8s ease-in-out infinite}
.section-visual.motion-active .orbit-label.one{animation:sc-label-float 5.8s ease-in-out infinite}
.section-visual.motion-active .orbit-label.two{animation:sc-label-float 6.5s ease-in-out infinite -2.1s}
.section-visual.motion-active .orbit-label.three{animation:sc-label-float 5.5s ease-in-out infinite -3.8s}
.case-graphic .case-art{overflow:visible}
.case.motion-active .case-art-footfall .visitor-one{animation:sc-icon-visitor1 4.4s ease-in-out infinite}
.case.motion-active .case-art-footfall .visitor-two{animation:sc-icon-visitor2 4.8s ease-in-out infinite}
.case.motion-active .case-art-footfall .footfall-arrow{animation:sc-icon-arrow 2.8s ease-in-out infinite}
.case.motion-active .case-art-queue .queue-path{animation:sc-icon-queue 2.6s linear infinite}
.case.motion-active .case-art-security .security-check{animation:sc-icon-check 4.8s ease-in-out infinite}
.case.motion-active .case-art-zone .zone-light{animation:sc-icon-zone 4.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.case.motion-active .case-art-zone .zone-b{animation-delay:-1.6s}
.case.motion-active .case-art-zone .zone-c{animation-delay:-3.2s}
.case.motion-active .case-art-multistore g[stroke],.case.motion-active .case-art-report g[stroke]{animation:sc-icon-line-light 5.4s ease-in-out infinite}
/* Motion details use transform / opacity for smooth rendering. */
@keyframes sc-track-one{0%,100%{transform:translate(0,0)}25%{transform:translate(14px,-7px)}55%{transform:translate(31px,4px)}78%{transform:translate(17px,10px)}}
@keyframes sc-track-two{0%,100%{transform:translate(0,0)}26%{transform:translate(-16px,5px)}60%{transform:translate(-25px,-11px)}82%{transform:translate(-12px,-5px)}}
@keyframes sc-track-three{0%,100%{transform:translate(0,0)}30%{transform:translate(17px,9px)}64%{transform:translate(32px,-6px)}86%{transform:translate(14px,-8px)}}
@keyframes sc-camera-sweep{0%{transform:translateY(-115px);opacity:0}7%{opacity:.8}77%{opacity:.65}100%{transform:translateY(540px);opacity:0}}
@keyframes sc-target-dash{to{stroke-dashoffset:-52}}
@keyframes sc-target-luminance{0%,100%{stroke:#56eadf;stroke-opacity:.92}50%{stroke:#a8f9ff;stroke-opacity:.63}}
@keyframes sc-status-pulse{0%,100%{opacity:1;filter:brightness(1)}50%{opacity:.45;filter:brightness(1.45)}}
@keyframes sc-graph-live{0%,100%{transform:scaleY(.93)}24%{transform:scaleY(1)}50%{transform:scaleY(.88)}76%{transform:scaleY(.98)}}
@keyframes sc-graph-scan{0%{transform:translateX(-70%);opacity:0}12%,75%{opacity:.72}100%{transform:translateX(240%);opacity:0}}
@keyframes sc-new-event{0%{opacity:.2;transform:translateX(-7px)}100%{opacity:1;transform:translateX(0)}}
@keyframes sc-value-tick{0%{transform:translateY(4px);opacity:.65;color:#6deee7}100%{transform:none;opacity:1}}
@keyframes sc-orbit{to{transform:rotate(360deg)}}
@keyframes sc-core-glow{0%,100%{filter:drop-shadow(0 0 10px rgba(61,224,222,.38));opacity:1}50%{filter:drop-shadow(0 0 22px rgba(61,224,222,.8));opacity:.88}}
@keyframes sc-label-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes sc-icon-visitor1{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}
@keyframes sc-icon-visitor2{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes sc-icon-arrow{0%,100%{opacity:.5;transform:translateY(5px)}50%{opacity:1;transform:translateY(-7px)}}
@keyframes sc-icon-queue{to{stroke-dashoffset:-60}}
@keyframes sc-icon-check{0%,100%{stroke-dasharray:95;stroke-dashoffset:0;opacity:1}50%{stroke-dasharray:95;stroke-dashoffset:95;opacity:.35}70%{stroke-dashoffset:0;opacity:1}}
@keyframes sc-icon-zone{0%,100%{opacity:.65;transform:scale(.96)}35%{opacity:1;transform:scale(1.04)}65%{opacity:.4;transform:scale(.96)}}
@keyframes sc-icon-line-light{0%,100%{opacity:.9}50%{opacity:.5}}
@media(prefers-reduced-motion:reduce){.dashboard .retail-feed-art .tracked-motion,.dashboard .retail-feed-art .camera-scan-ui,.dashboard .retail-feed-art .target-tracer,.dashboard .retail-feed-art .target-box,.dashboard .bars span,.dashboard .dash-event,.dashboard .dash-event [data-sim-event],.dashboard .dash-stat strong,.visual-ring *, .case-art *{animation:none!important;transform:none!important;transition:none!important}.camera-feed:after{opacity:0}.orbit-tracer{display:none}}
