:root{--tg-navy: #001E2D;--tg-blue: #47B9F8;--tg-blue-light: #5EC9FF;--tg-blue-dark: #2C9FDE;--tg-offwhite: #E7EBF0;--tg-gray: #C9D2DA;--tg-white: #FFFFFF;--tg-blue-action: #066FAA;--tg-blue-ui: #088DD7;--tg-navy-800: #00293D;--tg-navy-700: #003652;--tg-navy-600: #004466;--tg-navy-500: #005F8F;--tg-slate: #576D7F;--tg-success: #0F7B4F;--tg-warning: #8A5A00;--tg-error: #B3261E;--surface-base: var(--tg-offwhite);--surface-raised: var(--tg-white);--surface-inverse: var(--tg-navy);--surface-inverse-2: var(--tg-navy-800);--text-primary: var(--tg-navy);--text-secondary: var(--tg-slate);--text-link: var(--tg-blue-action);--text-link-hover: var(--tg-navy);--text-on-dark: var(--tg-offwhite);--text-on-dark-muted: var(--tg-gray);--text-on-dark-accent:var(--tg-blue);--border-light: #D3DAE2;--border-on-dark: var(--tg-navy-600);--accent-on-dark: var(--tg-blue);--accent-on-light: var(--tg-blue-action);--division-accent: var(--tg-blue);--division-accent-light:var(--tg-blue-light);--division-accent-action:var(--tg-blue-action);--font-display: "Archivo", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "Menlo", monospace;--fs-display: clamp(3rem, 1.6rem + 5.75vw, 6.5rem);--fs-h1: clamp(2.4rem, 1.55rem + 3.49vw, 4.5rem);--fs-h2: clamp(1.95rem, 1.42rem + 2.16vw, 3.25rem);--fs-h3: clamp(1.55rem, 1.26rem + 1.2vw, 2.25rem);--fs-h4: clamp(1.3rem, 1.16rem + .58vw, 1.63rem);--fs-h5: clamp(1.13rem, 1.06rem + .29vw, 1.3rem);--fs-lead: clamp(1.13rem, 1.02rem + .45vw, 1.38rem);--fs-body: 1.0625rem;--fs-small: .9375rem;--fs-caption: .8125rem;--fs-eyebrow: .75rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold:600;--fw-bold: 700;--lh-display: .98;--lh-heading: 1.1;--lh-snug: 1.3;--lh-body: 1.65;--ls-display: -.03em;--ls-heading: -.02em;--ls-body: 0em;--ls-eyebrow: .14em;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 2.5rem;--sp-8: 3rem;--sp-9: 4rem;--sp-10: 5rem;--sp-11: 6rem;--sp-12: 8rem;--section-y-sm: clamp(3rem, 2rem + 4vw, 4.5rem);--section-y: clamp(4.5rem, 3rem + 6vw, 8rem);--section-y-lg: clamp(6rem, 3.5rem + 9vw, 11rem);--container: 1320px;--container-wide: 1560px;--container-text: 760px;--gutter: clamp(1.25rem, .6rem + 2.6vw, 3rem);--grid-gap: clamp(1.25rem, .8rem + 1.8vw, 2rem);--radius-sm: 4px;--radius: 8px;--radius-lg: 14px;--radius-pill:999px;--shadow-sm: 0 1px 2px rgba(0,30,45,.06), 0 1px 3px rgba(0,30,45,.08);--shadow: 0 4px 12px rgba(0,30,45,.08), 0 2px 4px rgba(0,30,45,.05);--shadow-lg: 0 18px 40px rgba(0,30,45,.14), 0 6px 12px rgba(0,30,45,.07);--ease: cubic-bezier(.22,.61,.36,1);--dur-fast: .14s;--dur: .24s;--dur-slow: .42s;--header-h: 84px;--header-h-sm:64px;--z-header: 100;--z-overlay: 200}.division-smarthome,body.division-smarthome{--division-accent: var(--tg-blue-light)}body{background:var(--surface-base);color:var(--text-primary);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5{font-family:var(--font-display);color:var(--text-primary);text-wrap:balance;margin:0}h1{font-size:var(--fs-h1);font-weight:var(--fw-bold);line-height:var(--lh-heading);letter-spacing:var(--ls-heading)}h2{font-size:var(--fs-h2);font-weight:var(--fw-bold);line-height:var(--lh-heading);letter-spacing:var(--ls-heading)}h3{font-size:var(--fs-h3);font-weight:var(--fw-semibold);line-height:var(--lh-snug);letter-spacing:-.015em}h4{font-size:var(--fs-h4);font-weight:var(--fw-semibold);line-height:var(--lh-snug)}h5{font-size:var(--fs-h5);font-weight:var(--fw-semibold);line-height:var(--lh-snug)}p{margin:0 0 var(--sp-4);max-width:var(--container-text)}a{color:var(--text-link);text-decoration:none;transition:color var(--dur-fast) var(--ease)}a:hover{color:var(--text-link-hover)}::selection{background:var(--tg-blue);color:var(--tg-navy)}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--tg-blue-ui);outline-offset:2px;border-radius:var(--radius-sm)}.section{padding-block:var(--section-y)}.section--sm{padding-block:var(--section-y-sm)}.section--lg{padding-block:var(--section-y-lg)}.section--light{background:var(--surface-base);color:var(--text-primary)}.section--white{background:var(--surface-raised);color:var(--text-primary)}.section--dark{background:var(--surface-inverse);color:var(--text-on-dark)}.section--dark :is(h1,h2,h3,h4,h5){color:var(--text-on-dark)}.section--dark p{color:var(--text-on-dark-muted)}.section--dark a{color:var(--tg-blue)}.section--dark a:hover{color:var(--tg-blue-light)}.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.container--wide{max-width:var(--container-wide)}.container--text{max-width:var(--container-text)}.eyebrow{font-family:var(--font-body);font-size:var(--fs-eyebrow);font-weight:var(--fw-semibold);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--accent-on-light);display:inline-flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.eyebrow:before{content:"";width:28px;height:2px;background:currentColor}.section--dark .eyebrow{color:var(--tg-blue)}.lead{font-size:var(--fs-lead);line-height:1.5;color:var(--text-secondary)}.section--dark .lead{color:var(--tg-gray)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-3);font-family:var(--font-body);font-size:var(--fs-small);font-weight:var(--fw-semibold);letter-spacing:.01em;line-height:1;padding:1.125rem 2rem;min-height:52px;border-radius:var(--radius-sm);border:1.5px solid transparent;cursor:pointer;text-align:center;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur-fast) var(--ease)}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--tg-blue-action);color:var(--tg-white);border-color:var(--tg-blue-action)}.btn--primary:hover{background:var(--tg-navy);border-color:var(--tg-navy);color:var(--tg-white)}.btn--primary-dark{background:var(--tg-blue);color:var(--tg-navy);border-color:var(--tg-blue)}.btn--primary-dark:hover{background:var(--tg-blue-light);border-color:var(--tg-blue-light);color:var(--tg-navy)}.btn--secondary{background:transparent;color:var(--tg-navy);border-color:var(--tg-navy)}.btn--secondary:hover{background:var(--tg-navy);color:var(--tg-white)}.btn--secondary-dark{background:transparent;color:var(--tg-offwhite);border-color:var(--tg-navy-500)}.btn--secondary-dark:hover{background:var(--tg-offwhite);color:var(--tg-navy);border-color:var(--tg-offwhite)}.btn--text{padding:0 0 3px;min-height:0;background:none;border:none;color:var(--accent-on-light);font-weight:var(--fw-semibold);border-bottom:2px solid transparent;border-radius:0}.btn--text:hover{border-bottom-color:currentColor}.section--dark .btn--text{color:var(--tg-blue)}.btn--lg{padding:1.3rem 2.5rem;min-height:60px;font-size:var(--fs-body)}.btn--sm{padding:.75rem 1.25rem;min-height:42px;font-size:var(--fs-caption)}.btn--full{width:100%}.card{background:var(--surface-raised);border:1px solid var(--border-light);border-radius:var(--radius);padding:var(--sp-7);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.card:hover{border-color:var(--tg-blue-ui);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card--flat:hover{transform:none;box-shadow:var(--shadow)}.card--dark{background:var(--tg-navy-800);border-color:var(--border-on-dark);color:var(--text-on-dark)}.card--dark:hover{border-color:var(--tg-blue)}.card-solution{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:480px;padding:var(--sp-7);border-radius:var(--radius);overflow:hidden;isolation:isolate;background:var(--tg-navy);color:var(--tg-white)}.card-solution__media{position:absolute;inset:0;z-index:-2;object-fit:cover;width:100%;height:100%;transition:transform var(--dur-slow) var(--ease)}.card-solution:hover .card-solution__media{transform:scale(1.05)}.card-solution:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#001e2d26,#001e2d8c 45%,#001e2df0)}.card-solution h3{color:var(--tg-white)}.card-solution p{color:var(--tg-gray)}.card-project{display:flex;flex-direction:column;gap:var(--sp-4)}.card-project__img{aspect-ratio:4/3;width:100%;object-fit:cover;border-radius:var(--radius);overflow:hidden}.card-project__meta{font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);font-weight:var(--fw-medium)}.grid{display:grid;gap:var(--grid-gap)}.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}.grid--4{grid-template-columns:repeat(4,1fr)}@media(max-width:991px){.grid--3,.grid--4{grid-template-columns:repeat(2,1fr)}}@media(max-width:639px){.grid--2,.grid--3,.grid--4{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-5)}.field label{font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--text-primary)}.field input,.field select,.field textarea{font-family:var(--font-body);font-size:var(--fs-body);color:var(--text-primary);background:var(--tg-white);border:1.5px solid var(--tg-gray);border-radius:var(--radius-sm);padding:.875rem 1rem;min-height:52px;width:100%;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--tg-blue-ui);box-shadow:0 0 0 3px #088dd72e;outline:none}.field input::placeholder,.field textarea::placeholder{color:#8fa0ae}.field .hint{font-size:var(--fs-caption);color:var(--text-secondary)}.field .error{font-size:var(--fs-caption);color:var(--tg-error);font-weight:var(--fw-medium)}.site-header{position:sticky;top:0;z-index:var(--z-header);height:var(--header-h);background:var(--tg-navy);color:var(--tg-offwhite);border-bottom:1px solid var(--tg-navy-600)}.site-header .nav-link{color:var(--tg-offwhite);font-size:var(--fs-small);font-weight:var(--fw-medium);padding-block:var(--sp-2);border-bottom:2px solid transparent}.site-header .nav-link:hover,.site-header .nav-link[aria-current=page]{color:var(--tg-blue);border-bottom-color:var(--tg-blue)}.site-header .division-switch{font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.1em;color:var(--tg-gray)}.site-footer{background:var(--tg-navy);color:var(--tg-gray);padding-block:var(--sp-11) var(--sp-6)}.site-footer :is(h4,h5){color:var(--tg-white)}.site-footer a{color:var(--tg-gray)}.site-footer a:hover{color:var(--tg-blue)}.site-footer .footer-bottom{border-top:1px solid var(--tg-navy-600);margin-top:var(--sp-9);padding-top:var(--sp-5);font-size:var(--fs-caption)}.divider{height:1px;background:var(--border-light);border:0}.section--dark .divider{background:var(--border-on-dark)}.tag{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-caption);font-weight:var(--fw-medium);padding:.35rem .75rem;border-radius:var(--radius-pill);background:#088dd71a;color:var(--tg-blue-action)}.section--dark .tag{background:#47b9f824;color:var(--tg-blue)}.stat__value{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:var(--fw-bold);line-height:1;letter-spacing:var(--ls-heading);color:var(--accent-on-light)}.section--dark .stat__value{color:var(--tg-blue)}.stat__label{font-size:var(--fs-small);color:var(--text-secondary);margin-top:var(--sp-2)}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}:root{--radius-sm: 0px;--radius: 0px;--radius-lg: 0px}.card{background:transparent;border:0;padding:0;box-shadow:none}.card:hover{border-color:transparent;box-shadow:none;transform:none}.card--dark{background:transparent;border:0}.card-project__img,.card-solution{border-radius:0}.card-project__img{aspect-ratio:3/2;overflow:hidden;position:relative}.card-project__img img,.card-project__img>*{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}.card-project:hover .card-project__img img,.card-project:hover .card-project__img>*{transform:scale(1.04)}.card-project__title{display:inline;background-image:linear-gradient(currentColor,currentColor);background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .4s var(--ease)}.card-project:hover .card-project__title{background-size:100% 1px}.card-project__meta{font-size:var(--fs-caption);letter-spacing:.1em;text-transform:uppercase;font-weight:var(--fw-semibold);color:var(--accent-on-light)}.card-project__meta--muted{color:var(--text-secondary)}.hero-editorial{position:relative;min-height:clamp(560px,82vh,900px);display:flex;align-items:flex-end;padding:var(--sp-9) 0 var(--sp-9);isolation:isolate;background:var(--tg-navy);overflow:hidden}.hero-editorial__media{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover}.hero-editorial__media img,.hero-editorial__media video{width:100%;height:100%;object-fit:cover}.hero-editorial:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,#001e2dcc,#001e2d73 42%,#001e2d1a 78%),linear-gradient(0deg,#001e2d8c,#001e2d00 55%)}.hero-editorial__inner{max-width:62ch}.hero-editorial h1{color:var(--tg-white);font-size:var(--fs-display);line-height:.98;letter-spacing:-.03em;text-wrap:balance}.hero-editorial__rule{width:64px;height:3px;background:var(--tg-blue);margin:var(--sp-5) 0}.hero-editorial__credit{position:absolute;right:var(--gutter);bottom:var(--sp-4);font-size:var(--fs-caption);color:#ffffffb8;letter-spacing:.04em;z-index:1}.section-statement{font-size:var(--fs-h1);line-height:1.04;letter-spacing:-.025em;max-width:20ch;text-wrap:balance;margin-bottom:var(--sp-8)}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--sp-6);border-bottom:1px solid var(--border-light);padding-bottom:var(--sp-4);margin-bottom:var(--sp-8)}.filter-bar__item{background:none;border:0;padding:0 0 var(--sp-3);font-size:var(--fs-body);font-weight:var(--fw-medium);color:var(--text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:calc(var(--sp-4) * -1 - 1px);transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.filter-bar__item:hover{color:var(--text-primary)}.filter-bar__item.is-active{color:var(--text-primary);border-bottom-color:var(--tg-blue-ui)}.grid--editorial{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--grid-gap) var(--gutter)}.grid--editorial>*{grid-column:span 3}.grid--editorial>.is-wide{grid-column:span 6}.grid--editorial>.is-third{grid-column:span 2}@media(max-width:991px){.grid--editorial>*,.grid--editorial>.is-third{grid-column:span 3}}@media(max-width:639px){.grid--editorial>*,.grid--editorial>.is-wide,.grid--editorial>.is-third{grid-column:span 6}}.btn{border-radius:0;letter-spacing:.08em;text-transform:uppercase;font-size:var(--fs-caption);font-weight:var(--fw-semibold)}.btn--ghost-light{background:transparent;color:var(--tg-white);border:1px solid rgba(255,255,255,.55)}.btn--ghost-light:hover{background:var(--tg-white);color:var(--tg-navy);border-color:var(--tg-white)}:root{--section-y: clamp(5rem, 9vw, 8.5rem);--section-y-lg: clamp(7rem, 13vw, 12rem)}.img-cover{width:100%;height:100%;object-fit:cover;display:block}.img-bleed{width:100vw;margin-left:calc(50% - 50vw)}.hero-slides{position:absolute;inset:0;z-index:-2;overflow:hidden;background:var(--tg-navy)}.hero-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.4s var(--ease),visibility 0s linear 1.4s;will-change:opacity}.hero-slide.is-active{opacity:1;visibility:visible;transition:opacity 1.4s var(--ease),visibility 0s linear 0s}.hero-slide>img,.hero-slide>video{width:100%;height:100%;object-fit:cover;display:block}.hero-slide.is-still.is-active>img{animation:tg-drift 11s linear forwards}@keyframes tg-drift{0%{transform:scale(1.02) translateZ(0)}to{transform:scale(1.11) translate3d(0,-1.2%,0)}}.hero-progress{position:absolute;left:0;bottom:var(--sp-7);z-index:2;display:flex;gap:10px;padding-inline:var(--gutter)}.hero-progress__bar{width:52px;height:2px;background:#ffffff47;border:0;padding:0;cursor:pointer;position:relative;overflow:hidden}.hero-progress__bar:after{content:"";position:absolute;inset:0;background:var(--tg-blue);transform:scaleX(0);transform-origin:left}.hero-progress__bar.is-active:after{animation:tg-fill var(--slide-dur,7s) linear forwards}.hero-progress__bar.is-done:after{transform:scaleX(1)}@keyframes tg-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.hero-editorial__inner{position:relative;z-index:1}.scroll-stage{position:relative;height:320vh;background:var(--tg-navy)}.scroll-stage__pin{position:sticky;top:0;height:100vh;overflow:hidden;display:grid;place-items:center;isolation:isolate}.scroll-stage__media{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;will-change:transform}.scroll-stage__media>img,.scroll-stage__media>video{width:100%;height:100%;object-fit:cover;display:block}.scroll-stage__scrim{position:absolute;inset:0;z-index:-1;background:rgba(0,30,45,var(--scrim,.72))}.scroll-stage__panel{position:absolute;width:100%;padding-inline:var(--gutter);max-width:var(--container);will-change:opacity,transform}.scroll-stage__panel h2{color:var(--tg-white);font-size:var(--fs-h1);line-height:1.04;letter-spacing:-.025em;max-width:22ch;text-wrap:balance}.scroll-stage__panel p{color:var(--tg-gray);font-size:var(--fs-lead);line-height:1.5;max-width:52ch;margin-top:var(--sp-5)}.scroll-stage__panel .eyebrow{color:var(--tg-blue)}.scroll-stage__credit{position:absolute;left:var(--gutter);bottom:var(--sp-5);z-index:1;font-size:var(--fs-caption);color:#fff9;letter-spacing:.04em}@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}.hero-slide.is-still.is-active>img{animation:none}.hero-progress__bar.is-active:after{animation:none;transform:scaleX(1)}.scroll-stage{height:auto}.scroll-stage__pin{position:relative;height:auto;padding:var(--section-y-lg) 0}.scroll-stage__panel{position:relative;opacity:1!important;transform:none!important;margin-inline:auto}.scroll-stage__panel+.scroll-stage__panel{margin-top:var(--sp-9)}.scroll-stage__scrim{background:#001e2db8}}.tg-logo{--logo-a:#1B5E86;--logo-b:#A8B0B4;display:block}.tg-logo--light{--logo-a:var(--tg-blue,#47B9F8);--logo-b:#E7EBF0 }.tg-logo--mono{--logo-a:currentColor;--logo-b:currentColor }
