/* Shared light editorial direction. Loaded after the component styles. */
:root{--bg:#f8f7f2;--panel:#ffffff;--line:#d9dfd5;--ink:#24382f;--muted:#637167;--lime:#315f4d;--soft:#edf1e9;--accent:#315f4d}
body{background:var(--bg);color:var(--ink);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
html{scroll-padding-top:115px}a{transition:color .18s,background .18s,border-color .18s}a:focus-visible,button:focus-visible{outline:2px solid #52785f;outline-offset:5px}::selection{background:#dce8cc;color:#213a2c}
.wrap{max-width:1260px;padding-left:60px;padding-right:60px}
header{max-width:none;position:sticky;top:0;z-index:20;height:88px;padding:0 max(40px,calc((100vw - 1200px)/2));background:#f8f7f2f5;backdrop-filter:blur(12px);border-color:var(--line)}
.wordmark{font-size:18px;letter-spacing:-.5px;font-weight:550;gap:12px;color:var(--ink)}.brand-icon{margin:0;width:35px;height:35px;display:grid;place-items:center;font-family:'Instrument Serif',Georgia,serif;font-size:24px;font-style:italic;letter-spacing:-2px;background:#315f4d;color:#fff;border-radius:2px;padding-right:3px}.dot{color:#536d57}
header nav{font-size:13px;gap:30px;color:#54665b}.resume{font-size:12px;padding:9px 16px;border-color:#bdc9bb;border-radius:2px;background:transparent}.resume:hover{background:#edf1e8;border-color:#6f8970}.resume span{color:var(--accent);margin-left:20px}
.eyebrow{font-size:10px;letter-spacing:1.5px;color:#596a5c}.hero{padding-top:85px;padding-bottom:75px;gap:35px;grid-template-columns:1.15fr 1fr}.hero .eyebrow{font-size:9px;letter-spacing:1px;margin-bottom:30px}.status-dot,.node-indicator{background:#5d7f51;box-shadow:none}
.hero h1{font-size:clamp(55px,5.6vw,80px);line-height:1.07;font-weight:450;letter-spacing:-3px;margin-bottom:30px}.hero h1 .serif{color:#4f6e54}.intro{font-size:20px;line-height:1.7;letter-spacing:-.4px;max-width:490px}.hero-detail{font-size:14px;color:#5e6b60;line-height:1.85;margin-top:20px}.actions{margin-top:32px;gap:30px}.button{background:#315f4d;color:#fff;font-size:13px;font-weight:500;border-radius:2px;padding:14px 20px;gap:32px}.button:hover{background:#234c3b}.text-link{font-size:14px;color:#344e3e}.byline{margin-top:38px;font-size:11px;gap:14px;color:#5d6960}.byline img{width:50px;height:50px;filter:grayscale(.7);border:3px solid #fff;box-shadow:0 1px 8px #223b2110}.byline div>span{font-size:10px;margin-top:3px}.byline strong{color:#38523d}
.network-art{height:460px;background-image:radial-gradient(#8ba07f48 .75px,transparent .75px);background-size:19px 19px}.art-top,.art-bottom{font-size:8px;color:#5b6c56;letter-spacing:1px}.art-bottom i{background:#507749}.orbit{border-color:#acbea14d}.orbit-one{width:295px;height:295px}.orbit-two{width:410px;height:410px}.network-lines path{stroke:#90a47f}.network-lines .flow{stroke:#4e7950;animation-duration:18s}.core{border-color:#a1b196;border-radius:5px;background:#e6eddf;box-shadow:0 12px 30px #455d2410;gap:14px}.core-label{color:#576f4d;font-size:8px}.core strong{color:#345237;font-size:12px}.core-footer{color:#586e4c;font-size:6px}.core-footer b{background:#62834d}.switch-symbol i{background:#f9fbf6;border-color:#a0b28e;border-top-color:#66854e}.art-node>span:last-child{background:var(--bg);color:#596b4d;font-size:7px}.node-glyph{background:#f4f6ef;border-color:#a9bb98;color:#516f3e;box-shadow:0 3px 10px #354e2410;border-radius:5px}
.stats{border-color:var(--line);padding-top:29px;padding-bottom:29px}.stats strong{font-size:43px;font-weight:400;letter-spacing:-2px;color:#2e4538}.stats strong span{font-size:24px;color:#566c51}.stats>div>span{font-size:12px;color:#5e6b60}.stats>div{padding-left:28px;border-color:#d9dfd5}
.section{padding-top:95px;padding-bottom:95px}.section-head{margin-bottom:38px;gap:30px}.section-head .eyebrow{margin-bottom:18px}h2{font-size:51px;font-weight:450;line-height:1.1;letter-spacing:-1.8px}h2 .serif{color:#556e53}.section-head>p{font-size:14px;line-height:1.8;color:#5d685e}.project{background:#fff;border-color:#d9e0d3;border-radius:3px;box-shadow:none}.featured{grid-template-columns:1fr 1.08fr;margin-bottom:28px}.project-copy{padding:38px}.project .eyebrow{color:#5a6c58;font-size:9px;letter-spacing:1px;margin-bottom:22px}h3{font-weight:450;font-size:31px;letter-spacing:-.9px;line-height:1.2;color:#2b4434}.project p:not(.eyebrow){font-size:14px;line-height:1.9;color:#5e6b5f}.tags{margin:24px 0;gap:7px}.tags span{font-size:9px;line-height:1.5;color:#526b50;border-color:#d4dfce;background:#f6f8f2;border-radius:2px;padding:5px 9px}.project-link{font-size:13px;margin-top:28px;padding-top:19px;border-color:#e0e6da;color:#31553d}.project-link span{color:#4f6f46}.project-link:hover{color:#1a412d}.project-grid{gap:28px}.small-project-copy{padding:32px}.small-project h3{font-size:32px}
.cloud-project{grid-template-columns:1.12fr 1fr}.cloud-diagram{background:radial-gradient(#97aa8450 .75px,transparent .75px),#f0f4eb;background-size:18px 18px;border-color:#d8e1d0;padding:28px 24px}.cloud-diagram-label,.cloud-diagram-footer{font-size:8px;color:#576c48;letter-spacing:.4px}.cloud-diagram-label span:last-child{color:#537049}.cloud-diagram-footer{font-size:7px}.cloud-diagram-footer span:last-child{color:#5b6c52}.cloud-diagram svg rect{fill:#fff;stroke:#91aa80}.cloud-diagram svg rect:first-of-type{fill:#e2ecd8;stroke:#718b5e}.cloud-diagram svg path{stroke:#8ca179}.cloud-diagram svg path[stroke]{stroke:#4d7650}.diagram-title{fill:#3c583e;font-size:14px}.diagram-small{fill:#567147;font-size:8px}.project .project-status{font-size:9px;line-height:1.8;color:#586b4d}.project-status .status-dot{background:#6a8a4c}
.terminal{background:#f3f6ef;border-color:#d0ddc6;border-radius:4px;margin:30px 28px 30px 0;transform:none;box-shadow:0 8px 24px #5260390a}.terminal-bar{background:#eaf0e3;border-color:#d0ddc6;color:#5a6d50;font-size:9px;padding:13px 16px}.terminal-bar i{background:#aec09c}.terminal-bar i:first-child{background:#719151}.terminal-body{padding:20px 24px}.project .terminal p{color:#3b573d;font-size:11px;margin:9px 0}.project .terminal .terminal-comment{color:#5d6b55;font-size:9px}.project .terminal .terminal-sub{color:#5d6b57;font-size:9px;padding-left:34px;margin-bottom:20px}.terminal .lime{color:#50703c}.terminal-result{border-color:#c5d5b9;padding-top:18px}.terminal-result>span{font-size:8px;color:#576d48}.terminal-result strong{color:#3b683e;font-size:20px}.terminal-result strong span{font-size:9px;color:#5b6b4f}.project .terminal .tiny{font-size:7px;color:#5e6a55}
.dns-art{background:radial-gradient(ellipse at center,#e0ead5,#f0f4e9);border-color:#dce5d4;height:205px;gap:28px}.dns-art>span{font-size:9px;color:#5a6e4b}.dns-art i{color:#5d6b4e}.dns-art b{color:#556e3c;filter:none;font-size:65px}.dns-art>div{font-size:10px;color:#48623c}.dns-art em{color:#606c54}.photo-art{background:#edf0e7;border-color:#dce3d5;height:205px}.photo-tile{border-color:#fff;box-shadow:0 7px 18px #53613d22}.photo-art>span{color:#4f6845;font-size:9px;background:#edf0e7e8;padding:3px 8px;border-radius:2px}
.ha-project{margin-top:28px;margin-bottom:0}.ha-routines{background:radial-gradient(#98ae8850 .7px,transparent .7px),#f0f4eb;background-size:18px 18px;border-color:#dbe5d3;padding:30px}.ha-routine-heading{font-size:8px;color:#5b6d50}.ha-routine-heading>span:last-child{color:#546f40}.ha-routine{background:#fff;border-color:#d0dec6;border-radius:3px;padding:23px 20px}.ha-routine-icon{color:#556e40}.ha-routine>div>span{font-size:8px;color:#5a6d4d}.ha-routine strong{font-size:30px;color:#375337}.project .ha-routine p{font-size:9px;color:#5d6d57}.ha-routines-foot{font-size:7px;color:#5b6a4e}
.experience-section{background:#edf1e8;border-color:#dce3d5;padding-top:85px;padding-bottom:85px}.experience-layout{gap:80px}.experience-intro{font-size:14px;color:#5b6c58;line-height:1.9}.timeline article{border-color:#c8d5bd;padding-left:30px;padding-bottom:37px}.timeline article:before{background:#97ac85}.timeline article:first-child:before{background:#5e804a;box-shadow:0 0 0 5px #dce7d1}.timeline h3{font-size:25px;line-height:1.3;color:#304a34;font-weight:450}.timeline .eyebrow{font-size:9px;color:#5d6c56;gap:15px}.current{color:#546c42}.timeline .company{font-size:13px;color:#526d44}.timeline p,.timeline ul{font-size:13px;color:#5b6a55;line-height:1.9}.timeline li{margin-bottom:5px}.timeline li::marker{color:#5d6d4e}
.lab-inventory{background:#eef3e7;border-color:#cfddc4;border-radius:3px 3px 0 0;padding:20px 24px}.lab-inventory>span{font-size:10px;color:#586d48}.lab-inventory b{font-size:23px;color:#456d3b}.lab-layout.expanded-lab{border-color:#cfddc4;border-radius:0 0 3px 3px;grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.home-topology{background:radial-gradient(#a6b89255 .75px,transparent .75px),#fafbf6;background-size:16px 16px;padding:25px 22px}.map-heading,.inspector-label{font-size:8px;color:#5a6a4e;letter-spacing:.5px}.map-heading>span:last-child{color:#507141}.device{background:#fff;border-color:#c5d3b7;border-radius:3px;box-shadow:none;padding:15px 12px}.device:hover{background:#f0f6e9;border-color:#91ad77}.device.selected{background:#e6efd9;border-color:#70924e;box-shadow:0 0 0 1px #a9c38a30}.device-icon{color:#546d3d;font-size:23px}.device-copy strong{font-size:12px;color:#3b5735;font-weight:550;line-height:1.5}.device-copy>span{font-size:10px;color:#606b55;line-height:1.6}.device-arrow{color:#586e43;font-size:13px}.device.selected .device-arrow{color:#4a723a}.backbone>.device{width:270px}.backbone>.device .device-copy strong{font-size:13px}.backbone>.device[data-node=isp]{background:#f3f7ed;border-color:#d4dfca;width:205px}.backbone>.device[data-node=isp] .device-copy strong{font-size:12px}.map-link{background:#a3b88c;height:31px}.map-link>span{font-size:7px;color:#5e6d50}.port-strip i{background:#edf2e7;border-color:#b0c399}.port-strip i:nth-child(-n+6){background:#83a55d}.network-zones{gap:12px}.network-zones:before,.network-zones:after,.network-zone:before{border-color:#a3b88c;background-color:#a3b88c}.network-zones:before{background:none}.network-zone{background:#f0f4ea;border-color:#d5e0ca;padding:12px 9px;border-radius:3px}.zone-label{font-size:8px;color:#5a6d4b;letter-spacing:.2px;min-height:26px}.zone-label>span:last-child{color:#5e6c52}.network-zone .device{padding:12px 8px;gap:7px;min-height:80px}.network-zone .device-icon{font-size:20px}.network-zone .device-copy strong{font-size:11px;line-height:1.5}.network-zone .device-copy>span{font-size:9px}.sync-link{color:#556e40;font-size:7px}.vm-link{border-color:#93ae78}.vm-link span{font-size:6px;color:#5b6a4a}.compute-zone [data-node=ha]{background:#eaf2df;border-color:#9ab982}.map-legend{color:#5c6b4f;font-size:8px;line-height:1.8}.legend-line{border-color:#96ad7d}.map-caption{font-size:8px;color:#5e6a53}.lab-inspector{background:#eaf0e1;border-left-color:#cfddc4;padding:25px 26px}.lab-inspector .detail-icon{background:#dbe8cd;border-color:#b4c89f;color:#526f3d;box-shadow:none;border-radius:6px}.lab-inspector h3{font-size:28px;color:#3d5c36}.node-detail .eyebrow{font-size:9px;color:#5b6c4e}.lab-inspector>p:not(.eyebrow){font-size:13px;color:#5b6d4f;line-height:1.9}.lab-inspector .tags span{font-size:9px;border-color:#c6d7b6;background:#f4f8ed;color:#596b4c}.device-facts{border-color:#c7d9b5}.device-facts>div{border-color:#c7d9b5;font-size:11px}.device-facts dt{color:#5e6d52}.device-facts dd{color:#566f43}.inspector-note>span{color:#55703b}.inspector-note p{font-size:11px;color:#5b6a4e}.detail-foot{color:#5c6a4f;font-size:8px}.inspector-project{color:#497139;border-color:#c2d5ae;font-size:12px}.study{background:#f1f5ea;border-color:#d4dfc7;border-radius:3px;padding:25px 28px}.study-symbol{color:#5a6e43}.study .eyebrow{font-size:8px;color:#5e6d4e}.study h3{font-size:21px;color:#4c6a3d}.study p:not(.eyebrow){font-size:12px;color:#5e6d53}.study-pill{color:#586e40;border-color:#c7d6b8;background:#f8faf3;font-size:8px}
.credentials{border-color:#d6e1cc;padding-top:30px;padding-bottom:30px}.credential-icon{color:#5a6b46;font-size:30px}.credentials strong{font-size:14px;color:#4b673d}.credentials strong>span{font-size:11px;color:#5c6a50}.contact{padding-top:90px;padding-bottom:65px}.contact .eyebrow{font-size:9px;color:#5b6c4e;letter-spacing:1px}.contact h2{font-size:84px;letter-spacing:-3px}.contact h2 .serif{color:#537045}.contact-arrow{color:#556f3c;border-color:#bbcfaa;width:90px;height:90px;top:20px}.contact-arrow:hover{background:#e7efdc}.contact-bottom p{font-size:14px;color:#5b6a4f}.contact-bottom>a{color:#536f40;border-color:#bfd0ae}footer{border-color:#d8e2cf;color:#5e6a55;padding-top:25px;padding-bottom:25px;font-size:11px}footer .wordmark{color:#586e42;font-size:26px}footer>div{font-size:11px}.skip{background:#335b43;color:#fff}
/* Case studies share the same paper, typography, and diagram palette. */
.case-hero{padding-top:45px;padding-bottom:45px}.case-back{color:#5c6a4e;font-size:11px}.case-hero>.eyebrow{color:#5b6d4e;font-size:10px}.case-hero h1{font-weight:450;font-size:clamp(55px,6vw,82px);color:#2b4434}.case-hero h1 .serif{color:#526c46}.case-intro{color:#5b6a53;font-size:20px;line-height:1.8}.case-stats{border-color:#d6e1cb;background:transparent;padding-top:27px;padding-bottom:27px}.case-stats>div{border-color:#d6e1cb}.case-stats strong{color:#4f7041;font-size:32px}.case-stats span{color:#5e6d50;font-size:11px}.case-body{grid-template-columns:205px minmax(0,1fr);gap:70px;padding-top:65px}.case-sidebar>.eyebrow{font-size:9px;color:#5e6d52}.case-sidebar nav{font-size:13px;color:#566c47}.case-sidebar nav a{border-color:#dce6d2;padding:14px 0}.case-sidebar nav a>span{font-size:9px;color:#5b6a4f}.case-author{font-size:11px;color:#586e4a}.case-author span{font-size:9px;color:#5e6b55}.case-question{font-size:11px;color:#556e43}.case-flow{border-color:#d1dfc3;background:radial-gradient(#9db58740 .7px,transparent .7px),#edf3e5;background-size:17px 17px;box-shadow:none;border-radius:3px;padding:25px}.case-flow figcaption{font-size:9px;color:#5c6d4e}.flow-step{border-color:#c1d4ae;background:#f8fbf2;border-radius:3px;padding:17px 12px}.flow-step>span{font-size:9px;color:#586b4a}.flow-step strong{font-size:12px;color:#556f40}.flow-step p{font-size:10px;color:#5e6d54}.case-flow>p{font-size:9px;color:#5c6c4f;line-height:1.9}.case-section>.eyebrow{font-size:9px;color:#5a6d4c}.case-section h2{font-size:36px;font-weight:450;color:#395b35;line-height:1.2}.case-section>p{font-size:16px;line-height:1.95;color:#5d6d55}.case-section h3{font-size:22px;color:#536f41;font-weight:500}.case-callout{background:#eaf3e0;border-left-color:#93b774;padding:25px 28px}.case-callout>span{font-size:9px;color:#596e49}.case-callout p{font-size:19px;color:#536d42;line-height:1.7}.case-next{border-color:#d9e6ce}.case-next h2{font-size:39px}.related-projects a{font-size:13px;border-color:#d9e5ce;color:#596f4a}.related-projects a span{color:#586d47}.case-contact p{font-size:14px;color:#5e6d53}.case-contact a{font-size:24px;color:#546f42}.ha-integrations>div{background:#f2f8e9;border-color:#cfe1bd;border-radius:3px}.ha-integrations>div>span{color:#586f46}.ha-integrations strong{color:#566d45}.ha-integrations p{font-size:12px;color:#5c6b52}
@media(min-width:1450px){.hero{padding-top:100px;padding-bottom:85px}.network-art{height:490px}.hero h1{font-size:84px}}
@media(max-width:1100px){.wrap{padding-left:36px;padding-right:36px}header{padding:0 36px}.hero{gap:20px;padding-top:70px}.hero h1{font-size:62px}.intro{font-size:18px}.hero-detail{font-size:13px}.hero .eyebrow{font-size:8px}.network-art{height:430px}.project-copy{padding:30px}.cloud-diagram{padding:24px 20px}.cloud-diagram-label{font-size:7px}.lab-layout.expanded-lab{grid-template-columns:minmax(0,1.7fr) minmax(250px,1fr)}.lab-inspector{padding:24px 20px}.case-body{grid-template-columns:175px minmax(0,1fr);gap:40px}.case-sidebar nav{font-size:12px}.case-section>p{font-size:15px}.contact h2{font-size:76px}.credentials strong>span{font-size:10px}}
@media(max-width:760px){html{scroll-padding-top:140px}.wrap{padding-left:24px;padding-right:24px}header{height:110px;padding:16px 24px 10px;display:grid;grid-template-columns:1fr auto;gap:13px}.wordmark{font-size:17px;gap:10px}.brand-icon{width:30px;height:30px;font-size:22px}header .resume{grid-column:2;grid-row:1;font-size:11px;padding:7px 12px}header .resume span{margin-left:10px}header nav{display:flex;grid-column:1/-1;grid-row:2;justify-content:space-between;gap:15px;font-size:11px;padding-top:9px;border-top:1px solid #e0e7d8}.hero{padding-top:45px;padding-bottom:35px;gap:0;grid-template-columns:1fr}.hero .eyebrow{font-size:8px;letter-spacing:.6px;gap:8px;margin-bottom:25px}.hero h1{font-size:54px;letter-spacing:-2.5px;line-height:1.08;margin-bottom:25px}.intro{font-size:18px;line-height:1.8;max-width:100%}.hero-detail{font-size:13px}.actions{gap:24px;margin-top:28px}.button{font-size:12px;padding:13px 16px;gap:25px}.text-link{font-size:13px}.byline{font-size:10px;margin-top:30px}.byline div>span{font-size:9px}.network-art{height:365px;margin-top:38px}.orbit-one{width:240px;height:240px}.orbit-two{width:330px;height:330px}.core{width:180px;height:135px}.core strong{font-size:11px}.art-top,.art-bottom{font-size:7px}.art-node>span:last-child{font-size:6px}.stats{grid-template-columns:1fr 1fr;gap:22px 0;padding-top:25px;padding-bottom:25px}.stats>div{padding-left:24px}.stats>div:nth-child(odd){padding-left:0;border-color:#d8e2cd}.stats strong{font-size:38px}.stats strong span{font-size:23px}.stats>div>span{font-size:11px}.section{padding-top:65px;padding-bottom:65px}h2{font-size:45px;letter-spacing:-1.5px}.section-head{margin-bottom:30px;display:block}.section-head>p{font-size:13px;margin-top:22px}.featured,.cloud-project{grid-template-columns:1fr}.project-copy,.small-project-copy{padding:27px}.project .eyebrow{font-size:8px;margin-bottom:18px}.project h3,.small-project h3{font-size:30px}.project p:not(.eyebrow){font-size:14px;line-height:1.85}.tags span{font-size:9px}.project-link{font-size:13px}.cloud-diagram{padding:23px;border-top:1px solid #d6e2cb;border-left:0}.cloud-diagram-label{font-size:7px}.cloud-diagram-footer{font-size:6px}.terminal{margin:0 22px 27px}.terminal-body{padding:17px 20px}.project .terminal p{font-size:10px}.project .terminal .terminal-sub{font-size:8px}.project .terminal .terminal-comment{font-size:8px}.project .terminal .tiny{font-size:6px}.project-grid{grid-template-columns:1fr;gap:24px}.dns-art,.photo-art{height:190px}.dns-art>span{font-size:8px}.ha-project{margin-top:24px}.ha-routines{padding:24px;border-top:1px solid #d5e2c8;border-left:0}.ha-routine-heading{font-size:7px}.ha-routine>div>span{font-size:7px}.project .ha-routine p{font-size:8px}.ha-routines-foot{font-size:6px}.experience-section{padding:65px 0}.experience-layout{grid-template-columns:1fr;gap:38px}.experience-intro{font-size:14px}.timeline h3{font-size:24px}.timeline .eyebrow{font-size:8px}.timeline p,.timeline ul{font-size:13px}.lab-inventory{grid-template-columns:1fr 1fr;gap:16px 10px;padding:20px}.lab-inventory>span{font-size:9px;gap:8px}.lab-inventory b{font-size:23px}.lab-layout.expanded-lab{grid-template-columns:1fr}.home-topology{padding:22px 16px}.map-heading{font-size:7px;line-height:1.8;flex-wrap:wrap}.map-heading>span:last-child{font-size:6px}.backbone>.device{width:250px;padding:13px 15px}.backbone>.device .device-copy strong{font-size:13px}.device-copy>span{font-size:10px}.backbone>.device[data-node=isp]{width:195px}.network-zones{grid-template-columns:1fr;gap:15px;padding-left:18px;margin-top:28px}.network-zones:before{left:0;right:auto;top:-14px;bottom:15px;width:1px;height:auto;border:0;background:#b1c69b}.network-zones:after{top:-14px;height:1px;left:0;width:50%;background:#b1c69b}.network-zone:before{top:50%;left:-19px;width:18px;height:1px;background:#b1c69b}.network-zone{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr);padding:14px;align-items:stretch}.zone-label{grid-column:1/-1;font-size:8px;min-height:0;margin-bottom:12px;flex-wrap:nowrap}.network-zone .device{padding:12px 9px;gap:7px;min-height:84px;display:flex;flex-direction:column;align-items:flex-start}.network-zone .device-copy strong{font-size:11px}.network-zone .device-copy>span{font-size:9px}.network-zone .device-icon{font-size:20px}.wireless-zone .device+.device{margin-top:0;grid-column:3}.sync-link{font-size:0;align-self:center;height:auto;gap:0}.sync-link span{font-size:17px;transform:rotate(90deg)}.vm-link{width:100%;height:1px;border-left:0;border-top:1px dashed #9fbf80;align-self:center}.vm-link span{display:none}.map-legend{font-size:8px;gap:12px;line-height:1.8}.map-caption{font-size:8px}.lab-inspector{border-left:0;border-top:1px solid #cfddc4;padding:26px;min-height:510px}.inspector-label{font-size:8px}.lab-inspector h3{font-size:29px}.lab-inspector>p:not(.eyebrow){font-size:14px}.device-facts>div{font-size:12px}.inspector-note p{font-size:12px}.study{padding:22px;gap:15px;flex-wrap:wrap}.study .eyebrow{font-size:8px}.study h3{font-size:21px}.study p:not(.eyebrow){font-size:12px}.study-pill{font-size:8px;margin-left:39px}.credentials{grid-template-columns:1fr;gap:27px}.credentials strong{font-size:14px}.credentials strong>span{font-size:11px}.contact{padding-top:65px;padding-bottom:45px}.contact h2{font-size:56px;letter-spacing:-2px}.contact .eyebrow{font-size:7px;letter-spacing:.4px}.contact-arrow{width:55px;height:55px;top:4px;font-size:38px}.contact-bottom{display:block}.contact-bottom p{font-size:13px;margin-bottom:25px}.contact-bottom>a{font-size:13px}footer{font-size:10px;padding-top:22px;padding-bottom:22px}footer>div{font-size:11px;gap:15px}.case-hero{padding-top:30px;padding-bottom:35px}.case-back{font-size:10px;margin-bottom:30px}.case-hero>.eyebrow{font-size:8px;letter-spacing:.5px}.case-hero h1{font-size:51px;letter-spacing:-2px}.case-intro{font-size:17px;line-height:1.8}.case-stats{grid-template-columns:1fr 1fr;gap:25px 0;padding-top:25px;padding-bottom:25px}.case-stats>div{padding-left:20px}.case-stats>div:nth-child(odd){padding-left:0;border:0}.case-stats strong{font-size:29px}.case-stats span{font-size:10px}.case-body{grid-template-columns:1fr;gap:28px;padding-top:30px;padding-bottom:45px}.case-sidebar{position:static;border-bottom:1px solid #dbe7ce}.case-sidebar nav{display:flex;flex-direction:row;flex-wrap:wrap;gap:7px}.case-sidebar nav a{font-size:11px;border:1px solid #cadcb9;background:#f1f6e8;border-radius:2px;padding:6px 10px;gap:6px}.case-sidebar nav a>span{font-size:8px}.case-author,.case-question{display:none}.case-flow{padding:18px;margin-bottom:40px}.case-flow figcaption{font-size:8px}.flow-step{padding:14px 11px}.flow-step strong{font-size:12px}.flow-step p{font-size:10px}.case-flow>p{font-size:9px}.case-section h2{font-size:31px}.case-section>p{font-size:15px;line-height:1.9}.case-section h3{font-size:22px}.case-section>.eyebrow{font-size:9px}.case-callout{padding:22px}.case-callout p{font-size:18px}.case-next{grid-template-columns:1fr;gap:25px;padding-top:35px;padding-bottom:30px}.case-next h2{font-size:35px}.related-projects a{font-size:13px}.case-contact p{font-size:12px}.case-contact a{font-size:22px}.ha-integrations>div{padding:18px}.ha-integrations p{font-size:11px}}
@media(prefers-reduced-motion:reduce){a,button{transition:none}.network-lines .flow{animation:none}}
.map-link>span{background:#fafbf6;padding-left:2px}
/* Brief, one-time entrances and feedback on elements that invite interaction. */
@keyframes editorial-entrance{from{opacity:.45;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:no-preference){
 .opening-entrance{animation:editorial-entrance 480ms cubic-bezier(.2,.65,.3,1) var(--entrance-delay,0ms) backwards}
 .section-entrance{animation:editorial-entrance 430ms cubic-bezier(.2,.65,.3,1) backwards}
 .project{transition:border-color 200ms ease,box-shadow 200ms ease}
 .button,.device,.contact-arrow{transition:transform 180ms ease,background 180ms ease,border-color 180ms ease}
 .project-link>span,.text-link>span,.resume>span,.related-projects a>span,.button>span{display:inline-block;transition:transform 180ms ease}
 .network-art.motion-controlled .flow{animation-play-state:paused}
 .network-art.motion-controlled.artwork-visible .flow{animation-play-state:running}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .project:hover{border-color:#a9bda2;box-shadow:0 8px 22px #28463008}
 .project-link:hover>span,.text-link:hover>span,.resume:hover>span,.related-projects a:hover>span{transform:translate(2px,-2px)}
 .button:hover{transform:translateY(-1px)}
 .button:hover>span{transform:translateX(2px)}
 .device:hover{transform:translateY(-1px)}
 .contact-arrow:hover{transform:translate(1px,-1px)}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto!important}
 .opening-entrance,.section-entrance,.network-lines .flow{animation:none!important;transform:none!important;opacity:1!important}
 .project,.button,.device,.contact-arrow,.project-link>span,.text-link>span,.resume>span,.related-projects a>span,.button>span{transition:none!important}
}
