:root{--tech-ink:var(--ink);--tech-purple:var(--surface-brand);--tech-muted:var(--text-body)}
.tech-lead{color:#514958; font-family:var(--sans);font-size:var(--type-lead);font-weight:400;line-height:1.45;}
.tech-body{color:var(--tech-muted); font-family:var(--sans);font-size:var(--type-body);font-weight:400;line-height:1.72;}
.tech-body p{margin:0 0 18px; font-family:var(--sans);font-size:var(--type-body);font-weight:400;line-height:1.72;}
.tech-dark-btn,.light-btn,.tech-outline-btn,.purple-outline{padding:15px 21px}
.tech-dark-btn{align-self:flex-start;margin-top:22px;background:var(--tech-purple);color:#fff}
.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.button-row .tech-dark-btn{margin-top:0}
.tech-outline-btn{border:1px solid #756a7e;color:#30283a}

.tech-hero{display:grid;grid-template-columns:.94fr 1.06fr;min-height:620px;background:var(--surface-muted);color:var(--tech-ink)}
.tech-hero-copy{display:flex;flex-direction:column;justify-content:center;padding:85px 5vw}
.tech-hero .eyebrow{}
.tech-hero h1{margin:25px 0 30px;letter-spacing:-.07em; font-family:var(--display);font-size:var(--type-h1);font-weight:600;line-height:.94;}
.tech-hero .tech-lead{max-width:680px;margin:0 0 28px; font-family:var(--sans);font-size:var(--type-lead);font-weight:400;line-height:1.45;}
.tech-hero .tech-body{max-width:690px; font-family:var(--sans);font-size:var(--type-body);font-weight:400;line-height:1.72;}
.tech-hero-image{position:relative;min-height:620px;background:linear-gradient(0deg,rgba(22,16,30,.53),transparent 48%),url('https://images.unsplash.com/photo-1581092160607-ee22621dd758?auto=format&fit=crop&w=1800&q=88') center/cover}
.tech-image-label,.capability-image>div{position:absolute;right:27px;bottom:24px;left:27px;display:flex;justify-content:space-between;color:#fff;font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.signal{position:absolute;border:1px solid rgba(255,255,255,.62);border-radius:50%}
.signal::after{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:50%;background:#cdbce5;transform:translate(-50%,-50%)}
.signal-a{top:25%;left:18%;width:90px;height:90px}
.signal-b{top:47%;right:19%;width:120px;height:120px}
.signal-c{bottom:21%;left:38%;width:70px;height:70px}

.real-world,.why-lorawan,.tech-stack{padding:var(--section-space-y) var(--page-gutter)}
.real-world{background:var(--surface-soft)}
.real-world header,.tech-stack header{display:grid;grid-template-columns:1.08fr .92fr;gap:8vw;max-width:1480px;margin:0 auto 72px}
.real-world h2,.lorawan-copy h2,.why-lorawan h2,.tech-stack h2,.aws-tech-copy h2,.tech-lxc h2,.capability-content h2,.tech-final h2{margin:20px 0 28px;letter-spacing:-.058em; font-family:var(--display);font-size:var(--type-h2);font-weight:600;line-height:.98;}
.real-world header>div:last-child{align-self:end;color:#665f6b;font-size:15px;line-height:1.7}
.real-world header p{margin:0 0 17px}
.action-flow{display:grid;grid-template-columns:repeat(4,1fr);max-width:1480px;margin:auto;border-top:1px solid #cec8d1;border-left:1px solid #cec8d1}
.action-flow article{position:relative;min-height:235px;padding:28px 30px;border-right:1px solid #cec8d1;border-bottom:1px solid #cec8d1}
.action-flow span,.reason-grid span,.delivery-grid span,.lxc-key-grid span{color:#765896;font-size:10px;letter-spacing:.12em}
.action-flow i{display:block;width:10px;height:10px;margin-top:28px;border-radius:50%;background:#8667ad;box-shadow:0 0 0 12px #ece6f2}
.action-flow h3{margin:25px 0 12px; font-family:var(--display);font-size:var(--type-h3);font-weight:600;line-height:1.16;}
.action-flow p{color:#6b6370;line-height:1.6;font-size:var(--type-card);}

.lorawan-section{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:60px 6vw;align-items:stretch;padding:var(--section-space-y) var(--page-gutter);background:var(--surface-muted)}
.lorawan-copy{max-width:730px}
.lorawan-copy .tech-lead{margin-bottom:30px; font-family:var(--sans);font-size:var(--type-lead);font-weight:400;line-height:1.45;}
.lorawan-path{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;align-self:stretch;gap:0;min-height:0;padding:34px 20px 25px;border:1px solid #c7bdd1;background:rgba(255,255,255,.55)}
.path-label{position:absolute;top:27px;left:28px;color:#71677a;font-size:9px;letter-spacing:.11em;text-transform:uppercase}
.path-node{display:grid;place-content:center;width:52px;aspect-ratio:1;border:1px solid #bdb1ca;border-radius:50%;background:#f4f1f6;text-align:center}
.path-node small{color:#896fa8;font-size:7px}
.path-node b{margin-top:2px;font-size:9px;line-height:1.08}
.path-highlight{background:#3a2469;color:#fff;box-shadow:0 0 0 8px rgba(78,48,117,.12)}
.path-highlight small{color:#d8cae9}
.lorawan-path>i{color:#856da2;font-size:9px;font-style:normal;line-height:.75;transform:rotate(90deg)}
.path-meta{position:absolute;right:16px;bottom:10px;left:16px;display:flex;justify-content:space-between;gap:8px;color:#776e7e;font-size:7px;text-transform:uppercase}

.why-lorawan{background:var(--surface-muted)}
.why-lorawan>header{display:grid;grid-template-columns:1fr .85fr;gap:8vw;align-items:end;max-width:1480px;margin:0 auto 65px}
.why-lorawan>header .tech-lead{margin:0; font-family:var(--sans);font-size:var(--type-lead);font-weight:400;line-height:1.45;}
.reason-grid{display:grid;grid-template-columns:repeat(5,1fr);max-width:1480px;margin:auto;border-top:1px solid #ccc6cf;border-left:1px solid #ccc6cf}
.reason-grid article{min-height:310px;padding:28px 24px;border-right:1px solid #ccc6cf;border-bottom:1px solid #ccc6cf}
.reason-grid h3{margin:65px 0 15px;letter-spacing:-.035em; font-family:var(--display);font-size:var(--type-h3);font-weight:600;line-height:1.16;}
.reason-grid p{color:#6c6470;line-height:1.65;font-size:var(--type-card);}
.lorawan-section>.comparison-wrap{grid-column:1/-1;width:100%}
.comparison-wrap{display:grid;grid-template-columns:.65fr 1.35fr;gap:7vw;max-width:1480px;margin:10px auto 0}
.comparison-wrap h3{margin:22px 0 0;letter-spacing:-.05em; font-family:var(--display);font-size:var(--type-h3);font-weight:600;line-height:1.16;}
.comparison-table{border-top:1px solid #bbb4bf}
.compare-row{display:grid;grid-template-columns:1fr repeat(3,1.1fr);border-bottom:1px solid #d1ccd3}
.compare-row>*{padding:18px 16px;border-right:1px solid #d1ccd3}
.compare-row span{color:#6b6470;font-size:12px;text-transform:uppercase}
.compare-row b{font-size:13px;font-weight:500}
.compare-head b{font-size:15px;font-weight:600}
.compare-row .highlight{background:#e7dfef;color:#432b66}

.tech-stack{background:var(--surface-dark);color:#fff}
.tech-stack header>div:last-child{align-self:end;color:#c2b9c8;line-height:1.7}
.tech-stack .tech-lead{color:#e1dbe5; font-family:var(--sans);font-size:var(--type-lead);font-weight:400;line-height:1.45;}
.stack-flow{display:flex;align-items:center;max-width:1480px;margin:0 auto 35px;padding:25px;border:1px solid rgba(255,255,255,.17)}
.stack-flow>div{display:grid;flex:1;min-height:125px;padding:18px;border-left:2px solid #8c6cb1;align-content:center}
.stack-flow span{color:#ab96c4;font-size:9px}
.stack-flow b{margin:9px 0 6px;font:600 15px Manrope,sans-serif}
.stack-flow small{color:#a9a0ae;font-size:9px}
.stack-flow>i{padding:0 5px;color:#927da8;font-style:normal}
.stack-cards{display:grid;grid-template-columns:repeat(5,1fr);max-width:1480px;margin:auto}
.stack-cards article{min-height:230px;padding:27px;border:1px solid rgba(255,255,255,.13);border-right:0}
.stack-cards article:last-child{border-right:1px solid rgba(255,255,255,.13)}
.stack-cards h3{margin:0 0 35px; font-family:var(--display);font-size:var(--type-h3);font-weight:600;line-height:1.16;}
.stack-cards p{color:#b7aebd;line-height:1.6;font-size:var(--type-card);}

.tech-aws{display:grid;grid-template-columns:1.05fr .95fr;gap:8vw;align-items:center;padding:var(--section-space-y) var(--page-gutter);background:var(--surface-muted)}
.aws-tech-copy{max-width:730px}
.aws-tech-copy .tech-lead{margin-bottom:30px; font-family:var(--sans);font-size:var(--type-lead);font-weight:400;line-height:1.45;}
.aws-tech-visual{display:grid;grid-template-columns:62px minmax(0,1fr) 108px;grid-template-rows:auto minmax(330px,1fr) auto;gap:7px;min-height:620px;padding:10px;border:1px solid #c7bfd0;background:#f8f7f3;box-shadow:0 22px 55px rgba(42,31,52,.08)}
.tech-arch-panel{min-width:0;padding:8px;border:1px solid #bcb1c8;background:#eeeaf3;box-shadow:0 7px 16px rgba(43,29,62,.08)}
.tech-arch-panel h3{margin:0 0 7px;color:#3d237c;font:600 10px/1.15 var(--display);letter-spacing:.04em;text-align:center;text-transform:uppercase}
.tech-arch-ux{grid-column:2;grid-row:1}
.tech-arch-third{grid-column:1;grid-row:2;display:grid;place-content:center;padding:5px;background:#e9e4ef}
.tech-arch-third h3{margin:0;font-size:9px;line-height:1.35}
.tech-arch-systems{grid-column:2;grid-row:2;background:#e4ddef}
.tech-arch-network{grid-column:3;grid-row:2;background:#ded5eb}
.tech-arch-devices{grid-column:2;grid-row:3;background:#e9e4ef}
.tech-arch-columns{display:grid;grid-template-columns:.72fr 1.28fr 1fr;gap:5px}
.tech-system-grid{display:grid;grid-template-columns:.9fr 1.12fr 1.12fr .86fr;gap:6px}
.tech-arch-group{display:flex;flex-direction:column;gap:3px;min-width:0}
.tech-arch-group b,.tech-arch-group span,.device-architecture b,.device-architecture span{display:block;min-width:0;padding:4px 5px;border:1px solid #b9adca;background:#f4f1f6;color:#332a3d;font-size:8px;font-weight:500;line-height:1.1;text-align:center}
.tech-arch-group b{background:#d2c5e6;color:#2d185e;font-weight:600}
.tech-arch-group .is-accent{border-color:#7256a0;background:#9f89c5;color:#fff}
.tech-arch-network .tech-arch-group{gap:4px}
.device-architecture{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}
.device-architecture b{grid-column:1/-1;background:#cfc2e3;color:#2d185e;font-weight:600}
.button-row .tech-outline-btn{align-self:center}

.tech-lxc{display:grid;grid-template-columns:1fr .72fr;gap:6vw;padding:var(--section-space-y) var(--page-gutter);background:var(--surface-brand);color:#fff}
.tech-lxc-intro{max-width:760px}
.tech-lxc .tech-lead{color:#e1d8ea; font-family:var(--sans);font-size:var(--type-lead);font-weight:400;line-height:1.45;}
.tech-lxc-intro>p:not(.tech-lead){color:#c8bdd3; font-family:var(--sans);font-size:var(--type-body);font-weight:400;line-height:1.45;}
.light-btn{background:#fff;color:#30205b}
.purple-outline{border:1px solid rgba(255,255,255,.45);color:#fff}
.lxc-problems{align-self:center;padding:35px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05)}
.mini-label{color:#cdbbe1;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.lxc-problems ul{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;margin:20px 0 0;padding:0;list-style:none}
.lxc-problems li{padding:11px 0;border-bottom:1px solid rgba(255,255,255,.13);color:#eee8f3;font-size:15px;line-height:1.35}
.lxc-key-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);margin-top:20px;border-top:1px solid rgba(255,255,255,.18);border-left:1px solid rgba(255,255,255,.18)}
.lxc-key-grid article{min-height:210px;padding:26px;border-right:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18)}
.lxc-key-grid span{color:#c4b0dc}
.lxc-key-grid h3{margin:36px 0 14px; font-family:var(--display);font-size:var(--type-h3);font-weight:600;line-height:1.16;}
.lxc-key-grid p{color:#d7cddd;line-height:1.55;font-size:var(--type-body);}

.tech-capabilities{display:grid;grid-template-columns:minmax(0,var(--split-media)) minmax(0,var(--split-text));align-items:stretch;background:var(--surface-muted)}
.capability-image{position:relative;min-height:0;background:linear-gradient(0deg,rgba(24,17,34,.5),transparent 46%),url('assets/problem-inspection-wide.webp') center/cover}
.capability-content{padding:var(--section-space-y) 6vw}
.capability-content h2{margin-top:20px; font-family:var(--display);font-size:var(--type-h2);font-weight:600;line-height:.98;}
.capability-content>.tech-body{max-width:740px; font-family:var(--sans);font-size:var(--type-body);font-weight:400;line-height:1.72;}
.delivery-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:34px 0 15px;border-top:1px solid #cbc5ce;border-left:1px solid #cbc5ce}
.delivery-grid article{display:grid;grid-template-columns:auto 1fr;gap:0 12px;align-content:start;min-height:145px;padding:20px;border-right:1px solid #cbc5ce;border-bottom:1px solid #cbc5ce}
.delivery-grid h3{margin:0 0 10px; font-family:var(--display);font-size:var(--type-h3);font-weight:600;line-height:1.16;}
.delivery-grid p{grid-column:1/-1;color:#6b6370;line-height:1.5;font-size:var(--type-card);}

.tech-final{padding:var(--section-space-y) max(10vw,70px);background:var(--surface-brand);color:#fff;text-align:center}
.tech-final .eyebrow{}
.tech-final h2{max-width:1200px;margin:30px auto; font-family:var(--display);font-size:var(--type-h2);font-weight:600;line-height:.98;}
.tech-final .tech-lead{max-width:850px;margin:0 auto 18px;color:#e1d8e9; font-family:var(--sans);font-size:var(--type-lead);font-weight:400;line-height:1.45;}
.tech-final>p:not(.tech-lead){max-width:760px;margin:auto;color:#c2b8cd; font-family:var(--sans);font-size:var(--type-body);font-weight:400;line-height:1.45;}
.tech-final .light-btn{display:inline-flex;margin-top:35px}

@media(max-width:1050px){.tech-hero,.real-world header,.lorawan-section,.why-lorawan>header,.tech-stack header,.tech-aws,.tech-lxc,.tech-capabilities{grid-template-columns:1fr}
.tech-hero-image{min-height:620px}
.action-flow,.reason-grid{grid-template-columns:repeat(2,1fr)}
.lorawan-path{min-height:500px}
.comparison-wrap{grid-template-columns:1fr}
.stack-flow{overflow-x:auto}
.stack-flow>div{min-width:145px}
.stack-cards,.lxc-key-grid{grid-template-columns:repeat(2,1fr)}
.capability-image{min-height:620px}
}

@media(max-width:650px){.tech-hero-copy{padding:78px 22px}
.tech-hero-image{min-height:470px}
.real-world,.lorawan-section,.why-lorawan,.tech-stack,.tech-aws,.tech-lxc,.capability-content,.tech-final{padding:80px 22px}
.action-flow,.reason-grid,.stack-cards,.lxc-key-grid,.delivery-grid{grid-template-columns:1fr}
.lorawan-path{display:grid;min-height:auto;padding:75px 28px}
.path-node{width:100%;aspect-ratio:auto;padding:20px;border-radius:0}
.lorawan-path>i{text-align:center;transform:rotate(90deg)}
.path-meta{display:none}
.compare-row{grid-template-columns:.8fr repeat(3,1fr)}
.compare-row>*{padding:12px 7px;font-size:9px!important}
.aws-tech-visual{grid-template-columns:1fr 1fr;grid-template-rows:auto;min-height:0;transform:none}
.tech-arch-ux{grid-column:1/-1;grid-row:1}
.tech-arch-systems{grid-column:1/-1;grid-row:2}
.tech-arch-third{grid-column:1;grid-row:3;min-height:90px}
.tech-arch-network{grid-column:2;grid-row:3}
.tech-arch-devices{grid-column:1/-1;grid-row:4}
.tech-system-grid{grid-template-columns:1fr 1fr}
.device-architecture{grid-template-columns:repeat(3,1fr)}
.button-row{flex-direction:column}
.button-row .btn{justify-content:space-between}
.capability-image{min-height:470px}
.tech-final{padding-left:22px;padding-right:22px}
}

