@font-face{font-family:Roobert;src:url(/fonts/Roobert-Light.otf) format("opentype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Roobert;src:url(/fonts/Roobert-Regular.otf) format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roobert;src:url(/fonts/Roobert-Medium.otf) format("opentype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Roobert;src:url(/fonts/Roobert-SemiBold.otf) format("opentype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Roobert;src:url(/fonts/Roobert-Bold.otf) format("opentype");font-weight:700;font-style:normal;font-display:swap}:root{--rich-black: #040203;--pure-white: #FFFFFF;--bright-grey: #F5F5F5;--pale-grey: #E9E9E9;--sonic-silver: #747474;--accent-red: #EF5A45;--accent-blue: #1F7DC1;--shadow-sm: 0 4px 10px rgba(38, 37, 39, .08);--shadow-lg: -9px 17px 36px rgba(38, 37, 39, .08);--radius-sm: 12px;--radius-md: 24px;--radius-lg: 32px;--radius-xl: 48px;--radius-pill: 999px;--s-1: 8px;--s-2: 16px;--s-3: 32px;--s-4: 48px;--s-5: 64px;--s-6: 80px;--s-7: 96px;--s-8: 112px;--container: 1240px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Roobert,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:400;color:var(--rich-black);background:var(--pure-white);line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--s-3)}section{padding:var(--s-8) 0}.dark{background:var(--rich-black);color:var(--pure-white)}.light{background:var(--pure-white);color:var(--rich-black)}.muted{background:var(--bright-grey);color:var(--rich-black)}.eyebrow{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.16em;color:var(--sonic-silver);margin-bottom:var(--s-3);display:inline-flex;align-items:center;gap:10px}.eyebrow:before{content:"";width:24px;height:1px;background:currentColor;opacity:.6}.dark .eyebrow{color:#fff9}h1,h2,h3{font-weight:500;line-height:1.05;letter-spacing:-.02em}h2{font-size:clamp(36px,5vw,64px)}h3{font-size:clamp(22px,2vw,28px);font-weight:600;letter-spacing:-.01em;line-height:1.25}p{font-size:17px;line-height:1.55;color:var(--sonic-silver)}.dark p{color:#ffffffb8}.lead{font-size:clamp(18px,1.6vw,22px);line-height:1.5;font-weight:400}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:18px 32px;border-radius:var(--radius-pill);font-size:16px;font-weight:500;letter-spacing:-.005em;transition:all .2s ease;white-space:nowrap}.btn-filled{background:var(--rich-black);color:var(--pure-white)}.btn-filled:hover{background:var(--pure-white);color:var(--rich-black);box-shadow:inset 0 0 0 1.5px var(--rich-black)}.dark .btn-filled{background:var(--pure-white);color:var(--rich-black)}.dark .btn-filled:hover{background:transparent;color:var(--pure-white);box-shadow:inset 0 0 0 1.5px var(--pure-white)}.btn-outlined{background:transparent;color:var(--rich-black);box-shadow:inset 0 0 0 1.5px var(--rich-black)}.btn-outlined:hover{background:var(--rich-black);color:var(--pure-white)}.dark .btn-outlined{color:var(--pure-white);box-shadow:inset 0 0 0 1.5px #fff6}.dark .btn-outlined:hover{background:var(--pure-white);color:var(--rich-black);box-shadow:inset 0 0 0 1.5px var(--pure-white)}.btn-arrow{font-size:18px;transition:transform .2s ease}.btn:hover .btn-arrow{transform:translate(3px)}.site-header{position:absolute;top:0;left:0;right:0;z-index:10;padding:var(--s-3) 0}.site-header .container{display:flex;align-items:center;justify-content:space-between}.logo img{height:48px;width:auto}.nav-cta{font-size:14px;font-weight:500;color:#ffffffb8;display:inline-flex;align-items:center;gap:8px;transition:color .2s}.nav-cta:hover{color:var(--pure-white)}.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:180px 0 var(--s-8);overflow:hidden;isolation:isolate}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 90% 60% at 85% 20%,rgba(239,90,69,.35),transparent 60%),radial-gradient(ellipse 100% 80% at 15% 100%,rgba(31,125,193,.28),transparent 65%);z-index:-1;pointer-events:none}.hero:after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='1'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.4'/></svg>");opacity:.18;mix-blend-mode:overlay;z-index:-1;pointer-events:none}.hero-tag{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;border-radius:var(--radius-pill);background:#ffffff0f;border:1px solid rgba(255,255,255,.16);font-size:13px;font-weight:500;letter-spacing:.04em;margin-bottom:var(--s-4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-tag .dot{width:6px;height:6px;border-radius:50%;background:var(--accent-red);box-shadow:0 0 12px var(--accent-red)}.hero h1{font-size:clamp(40px,5.4vw,78px);font-weight:500;line-height:1.02;letter-spacing:-.035em;margin-bottom:var(--s-4);max-width:22ch;text-wrap:balance}.hero h1 .line-2{display:block;color:#ffffff80}.hero .lead{max-width:56ch;color:#ffffffc7;margin-bottom:var(--s-5)}.hero-ctas{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}.hero-meta{position:absolute;bottom:var(--s-4);left:var(--s-3);right:var(--s-3);display:flex;justify-content:space-between;font-size:12px;color:#fff6;letter-spacing:.08em;text-transform:uppercase;font-weight:500}.hero-meta .container{width:100%;display:flex;justify-content:space-between;padding:0}.gap-section .container{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--s-7);align-items:center}.gap-copy h2,.gap-copy .lead{margin-bottom:var(--s-3)}.gap-copy p{font-size:16px}.gap-stats{display:flex;flex-direction:column;gap:var(--s-3)}.stat{background:var(--pure-white);border-radius:var(--radius-lg);padding:var(--s-4);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat-big{background:var(--rich-black);color:var(--pure-white);position:relative}.stat-big:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 80% at 100% 100%,rgba(31,125,193,.45),transparent 60%);pointer-events:none}.stat-big *{position:relative;z-index:1}.stat-number{font-size:clamp(72px,9vw,128px);font-weight:500;line-height:.9;letter-spacing:-.04em;margin-bottom:var(--s-2)}.stat-big .stat-number{color:var(--pure-white)}.stat-label{font-size:15px;line-height:1.45;color:var(--sonic-silver);max-width:32ch}.stat-big .stat-label{color:#ffffffb3}.stat-arrow{display:inline-block;font-size:24px;margin-right:8px;vertical-align:4px;color:var(--accent-red)}.gap-section.dark .stat{background:#ffffff08;border:1px solid rgba(255,255,255,.1);box-shadow:none}.gap-section.dark .stat .stat-number{color:var(--pure-white)}.gap-section.dark .stat .stat-label{color:#fff9}.gap-section.dark .stat-big{background:var(--pure-white);color:var(--rich-black);border:none}.gap-section.dark .stat-big:after{background:radial-gradient(ellipse 80% 80% at 100% 100%,rgba(31,125,193,.1),transparent 60%)}.gap-section.dark .stat-big .stat-number{color:var(--rich-black)}.gap-section.dark .stat-big .stat-label{color:var(--sonic-silver)}.video-section{background:var(--pure-white);color:var(--rich-black)}.video-header{text-align:center;max-width:720px;margin:0 auto var(--s-5)}.video-header h2{margin-bottom:var(--s-3)}.video-frame{position:relative;width:100%;max-width:1100px;margin:0 auto;border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 40px 80px #2625272e,0 8px 24px #26252714;aspect-ratio:16 / 9;background:var(--rich-black)}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:none}.diff-section{background:var(--bright-grey)}.diff-header{max-width:700px;margin:0 auto var(--s-7);text-align:center}.diff-header h2{margin-bottom:var(--s-3)}.diff-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3)}.diff-card{background:var(--pure-white);border-radius:var(--radius-lg);padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3);transition:transform .3s ease,box-shadow .3s ease;min-height:320px}.diff-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.diff-num{font-size:13px;font-weight:500;color:var(--sonic-silver);letter-spacing:.16em}.diff-card h3{margin-bottom:var(--s-1)}.diff-card p{font-size:16px;flex:1}.analytics-header{text-align:center;max-width:760px;margin:0 auto var(--s-6)}.analytics-header h2{margin-bottom:var(--s-3)}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}.analytics-card{background:var(--pure-white);border-radius:var(--radius-lg);padding:var(--s-3);display:flex;flex-direction:column;gap:var(--s-2);box-shadow:0 30px 60px #0000004d,0 8px 24px #00000026;transition:transform .3s ease}.analytics-card:hover{transform:translateY(-4px)}.analytics-card img{width:100%;height:auto;border-radius:var(--radius-md);display:block}.analytics-card figcaption{font-size:14px;font-weight:500;color:var(--sonic-silver);text-align:center;padding:var(--s-1) 0}@media(max-width:980px){.analytics-grid{grid-template-columns:1fr}}.modules-section{background:var(--pure-white);color:var(--rich-black)}.modules-header{text-align:center;max-width:720px;margin:0 auto var(--s-6)}.modules-header h2{margin-bottom:var(--s-3)}.modules-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3);margin-bottom:var(--s-5);align-items:start}.module-card{border-radius:var(--radius-md);overflow:hidden;background:var(--bright-grey);transition:transform .3s ease,box-shadow .3s ease;box-shadow:var(--shadow-sm);transform-origin:center;will-change:transform}.module-card:hover{transform:scale(1.04) translateY(-4px);box-shadow:var(--shadow-lg);z-index:2;position:relative}.module-card img{width:100%;height:auto;display:block}.module-caption{padding:var(--s-2) var(--s-3) var(--s-3)}.module-caption h3{font-size:1.125rem;font-weight:600;margin:0 0 .4rem;color:var(--ink)}.module-caption p{font-size:.9rem;line-height:1.5;margin:0;color:var(--ink-muted, #555)}.modules-availability{text-align:center;max-width:640px;margin:var(--s-6) auto var(--s-3);font-size:17px;color:var(--sonic-silver)}.modules-chips{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding:0;margin:0}.modules-chips li{padding:10px 20px;border-radius:var(--radius-pill);background:var(--bright-grey);border:1px solid var(--pale-grey);font-size:14px;font-weight:500;color:var(--rich-black);letter-spacing:-.005em;cursor:default;transition:transform .25s ease,background .25s ease,border-color .25s ease,color .25s ease,box-shadow .25s ease}.modules-chips li:hover{transform:scale(1.08) translateY(-2px);background:var(--rich-black);border-color:var(--rich-black);color:var(--pure-white);box-shadow:var(--shadow-sm)}@media(max-width:1100px){.modules-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.modules-grid{grid-template-columns:1fr;gap:var(--s-2)}}.proof-section .container{max-width:1100px}.proof-eyebrow{text-align:center;margin-bottom:var(--s-4)}.proof-eyebrow .eyebrow{display:inline-flex}.logo-row{display:flex;justify-content:space-around;align-items:center;flex-wrap:wrap;gap:var(--s-5);margin-bottom:var(--s-8);padding:var(--s-2) 0}.logo-row img{height:48px;width:auto;object-fit:contain;opacity:.85;transition:opacity .3s}.logo-row img:hover{opacity:1}.logo-row img.logo-pcl{height:64px}.logo-row img.logo-jgc{height:44px}.logo-row img.logo-ferrovial{height:38px}.quote{max-width:920px;margin:0 auto;text-align:left;position:relative;padding:var(--s-2) 0}.quote-mark{font-size:120px;line-height:1;color:var(--accent-red);font-weight:400;position:absolute;top:-20px;left:-8px;opacity:.9;font-family:Georgia,serif}.quote-text{font-size:clamp(22px,2.4vw,32px);font-weight:500;line-height:1.35;letter-spacing:-.015em;color:var(--rich-black);padding-left:var(--s-4);margin-bottom:var(--s-3)}.quote-attr{padding-left:var(--s-4);display:flex;align-items:center;gap:12px;font-size:15px;color:var(--sonic-silver)}.quote-attr .sep{width:24px;height:1px;background:var(--sonic-silver);opacity:.5}.final-cta{position:relative;text-align:center;overflow:hidden;isolation:isolate}.final-cta:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 50% 0%,rgba(239,90,69,.3),transparent 60%),radial-gradient(ellipse 80% 60% at 50% 100%,rgba(31,125,193,.22),transparent 65%);z-index:-1}.final-cta h2{font-size:clamp(40px,6vw,72px);margin-bottom:var(--s-3);max-width:18ch;margin-left:auto;margin-right:auto}.final-cta .lead{max-width:56ch;margin:0 auto var(--s-5);color:#ffffffc7}.final-ctas{display:flex;gap:var(--s-2);justify-content:center;flex-wrap:wrap}.meetings-embed-wrap{background:var(--pure-white);border-radius:var(--radius-lg);padding:var(--s-3);max-width:900px;margin:0 auto;box-shadow:0 30px 60px #00000059,0 8px 24px #0000002e}.meetings-iframe-container{min-height:720px;width:100%}.meetings-iframe-container iframe{width:100%!important;border:none!important;display:block}@media(max-width:600px){.meetings-embed-wrap{padding:var(--s-2);border-radius:var(--radius-md)}.meetings-iframe-container{min-height:820px}}.site-footer{background:var(--rich-black);color:#ffffff80;padding:var(--s-5) 0 var(--s-3);border-top:1px solid rgba(255,255,255,.08)}.site-footer .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--s-3)}.site-footer img{height:22px}.site-footer p{font-size:13px;color:#fff6}.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.js .reveal.in-view{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}@media(max-width:980px){section{padding:var(--s-6) 0}.gap-section .container{grid-template-columns:1fr;gap:var(--s-4)}.diff-grid{grid-template-columns:1fr}.hero{min-height:auto;padding:140px 0 var(--s-6)}.hero-meta{display:none}.quote-mark{font-size:80px;top:-10px}.quote-text,.quote-attr{padding-left:var(--s-3)}.logo-row{gap:var(--s-3)}.logo-row img{height:36px}.logo-row img.logo-pcl{height:50px}.logo-row img.logo-jgc{height:32px}}@media(max-width:600px){:root{--s-3: 24px;--s-8: 80px}.hero h1{font-size:44px}.stat-number{font-size:64px}.btn{padding:16px 24px;font-size:15px}}
