@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap");:root{--site-gradient-start: #08111F;--site-gradient-middle: #0D1B2F;--site-gradient-end: #103044;--color-bg: #08111f;--color-bg-elevated: #101d31;--color-bg-card: #13233a;--color-bg-input: #0d1929;--color-border: #2a3b56;--color-text: #edf4fb;--color-text-muted: #afbdd0;--color-text-subtle: #8495ad;--color-accent: #5eead4;--color-accent-hover: #99f6e4;--color-secondary: #7dd3fc;--shadow-sm: 0 8px 24px rgba(0, 0, 0, 0.18);--shadow-lg: 0 24px 60px rgba(0, 0, 0, 0.35);--font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace}html{width:100%;max-width:100%;min-height:100%;overflow-x:hidden;scroll-behavior:smooth;background-color:var(--site-gradient-start)}body{width:100%;max-width:100%;min-width:0;min-height:100vh;margin:0;overflow-x:hidden;overflow-wrap:break-word;color:var(--color-text);background:linear-gradient(135deg, var(--site-gradient-start) 0%, var(--site-gradient-middle) 52%, var(--site-gradient-end) 100%);background-attachment:fixed;font-family:var(--font-sans);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*::before,*::after{box-sizing:border-box;min-width:0}img,svg,video,canvas,iframe{display:block;max-width:100%;height:auto}table{display:block;width:100%;max-width:100%;overflow-x:auto}pre,code{overflow-wrap:anywhere;word-break:break-word}p{margin-top:0;margin-bottom:1rem;line-height:1.75}a{color:var(--color-accent);text-decoration:none;text-underline-offset:0.18em;transition:color 0.2s ease}a:hover,a:focus{color:var(--color-accent-hover);text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid rgba(94,234,212,0.7);outline-offset:3px}::selection{color:var(--color-bg);background:var(--color-accent)}.text-primary{color:var(--color-accent) !important}.text-muted{color:var(--color-text-muted) !important}h1,h2,h3,h4,h5,h6{margin-top:0;color:var(--color-text);font-family:var(--font-sans);font-weight:600;line-height:1.18;letter-spacing:-0.02em;overflow-wrap:anywhere}h1,h2{font-weight:700}section[id],footer[id]{scroll-margin-top:82px}.page-section,section{position:relative;width:100%;max-width:100%;padding:88px 0;color:var(--color-text);background-color:transparent}.bg-light,section.bg-light{background-color:rgba(16,29,49,0.78) !important}.page-section h2.section-heading{margin-top:0;margin-bottom:14px;color:var(--color-text);font-size:clamp(2rem, 5vw, 2.75rem);line-height:1.15}.page-section h3.section-subheading{max-width:760px;margin:0 auto 48px;color:var(--color-text-muted);font-family:var(--font-sans);font-size:clamp(1rem, 2.8vw, 1.1rem);font-style:normal;font-weight:400;line-height:1.65;text-transform:none}.container,.container-fluid,.row{max-width:100%}.row{margin-right:0;margin-left:0}.row>[class*="col-"]{min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;max-width:100%;min-height:44px;border-radius:6px;font-family:var(--font-sans);font-weight:600;line-height:1.25;text-align:center;white-space:normal;transition:background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease}.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn-xl{padding:16px 30px;font-size:1rem}.btn-primary{color:#06201e;border-color:var(--color-accent);background-color:var(--color-accent);box-shadow:0 8px 20px rgba(94,234,212,0.16)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary:not(:disabled):not(.disabled):active{color:#041917 !important;border-color:var(--color-accent-hover) !important;background-color:var(--color-accent-hover) !important;box-shadow:0 10px 26px rgba(94,234,212,0.24) !important}#mainNav{width:100%;max-width:100%;border-bottom:1px solid rgba(42,59,86,0.85);background-color:rgba(8,17,31,0.97);box-shadow:0 4px 20px rgba(0,0,0,0.14)}#mainNav .container{min-width:0}#mainNav .navbar-toggler{max-width:calc(100vw - 2rem);padding:10px 12px;color:#06201e;border:0;border-radius:5px;background-color:var(--color-accent);font-family:var(--font-sans);font-size:0.75rem;font-weight:600;letter-spacing:0.05em;text-transform:uppercase}#mainNav .navbar-brand{max-width:calc(100vw - 8rem);overflow:hidden;color:var(--color-accent);font-family:var(--font-sans);font-size:1.2rem;font-weight:700;letter-spacing:-0.02em;text-overflow:ellipsis;white-space:nowrap}#mainNav .navbar-brand:hover,#mainNav .navbar-brand:focus{color:var(--color-accent-hover);text-decoration:none}#mainNav .navbar-collapse,#mainNav .navbar-nav,#mainNav .navbar-nav .nav-item{max-width:100%}#mainNav .navbar-collapse{overflow-x:hidden}#mainNav .navbar-nav .nav-item .nav-link{display:block;max-width:100%;padding:0.75rem 0;color:var(--color-text);font-family:var(--font-sans);font-size:0.875rem;font-weight:500;letter-spacing:0.03em;overflow-wrap:anywhere}#mainNav .navbar-nav .nav-item .nav-link.active,#mainNav .navbar-nav .nav-item .nav-link:hover{color:var(--color-accent)}@media (min-width: 992px){#mainNav{padding-top:16px;padding-bottom:16px;border-bottom:1px solid rgba(42,59,86,0.65);background-color:rgba(8,17,31,0.88);backdrop-filter:blur(12px);transition:padding-top 0.3s ease, padding-bottom 0.3s ease}#mainNav .navbar-brand{max-width:none;font-size:1.4rem}#mainNav .navbar-nav .nav-item .nav-link{padding:0.75rem 0.7rem !important;font-size:0.78rem}#mainNav.navbar-shrink{padding-top:8px;padding-bottom:8px;background-color:rgba(8,17,31,0.97)}#mainNav.navbar-shrink .navbar-brand{padding:6px 0;font-size:1.2rem}section[id]{scroll-margin-top:66px}}header.masthead{position:relative;width:100%;max-width:100%;overflow:hidden;color:var(--color-text);text-align:center;background:radial-gradient(circle at 18% 25%, rgba(94,234,212,0.14), transparent 34%),radial-gradient(circle at 82% 22%, rgba(125,211,252,0.1), transparent 28%),linear-gradient(135deg, var(--site-gradient-start) 0%, var(--site-gradient-middle) 52%, var(--site-gradient-end) 100%)}header.masthead::before{position:absolute;inset:0;z-index:0;pointer-events:none;content:"";background-image:linear-gradient(30deg, transparent 24.5%, var(--color-accent) 25%, transparent 25.5%),linear-gradient(150deg, transparent 24.5%, var(--color-accent) 25%, transparent 25.5%),linear-gradient(90deg, transparent 49.5%, var(--color-secondary) 50%, transparent 50.5%);background-size:72px 124px, 72px 124px, 72px 124px;opacity:0.12;-webkit-mask-image:linear-gradient(to right, #000 0%, #000 18%, transparent 45%, transparent 55%, #000 82%, #000 100%);mask-image:linear-gradient(to right, #000 0%, #000 18%, transparent 45%, transparent 55%, #000 82%, #000 100%)}header.masthead::after{position:absolute;inset:0;z-index:0;pointer-events:none;content:"";background:radial-gradient(circle at 12% 28%, var(--color-accent) 0 2px, transparent 3px),radial-gradient(circle at 22% 68%, var(--color-secondary) 0 2px, transparent 3px),radial-gradient(circle at 35% 20%, var(--color-accent) 0 2px, transparent 3px),radial-gradient(circle at 72% 27%, var(--color-secondary) 0 2px, transparent 3px),radial-gradient(circle at 84% 65%, var(--color-accent) 0 2px, transparent 3px),radial-gradient(circle at 93% 38%, var(--color-secondary) 0 2px, transparent 3px);opacity:0.8}header.masthead .container,header.masthead .intro-text{position:relative;z-index:1}header.masthead .intro-text{padding:150px 0 96px}header.masthead .intro-text .intro-lead-in{margin-bottom:18px;color:var(--color-secondary);font-family:var(--font-sans);font-size:clamp(1.05rem, 4vw, 1.45rem);font-style:normal;font-weight:500;line-height:1.4}header.masthead .intro-text .intro-heading{max-width:1050px;margin:0 auto 30px;color:var(--color-text);font-family:var(--font-sans);font-size:clamp(2.35rem, 9vw, 5rem);font-weight:700;line-height:1.04;letter-spacing:-0.045em}@media (min-width: 768px){header.masthead .intro-text{padding:235px 0 165px}}.service-heading{margin:15px 0 10px;color:var(--color-text);text-transform:none}.fa-stack .fa-circle{color:var(--color-accent)}.fa-stack .fa-inverse{color:var(--color-bg)}#portfolio{background-color:rgba(16,29,49,0.78)}#portfolio .portfolio-item{min-width:0;margin:0 0 24px}#portfolio .portfolio-item .portfolio-link{position:relative;display:block;width:100%;max-width:400px;margin:0 auto;overflow:hidden;cursor:pointer;border:1px solid var(--color-border);border-radius:8px 8px 0 0;background-color:var(--color-bg-card)}#portfolio .portfolio-item .portfolio-link .portfolio-hover{position:absolute;inset:0;opacity:0;background:rgba(15,118,110,0.92);transition:opacity 0.25s ease}#portfolio .portfolio-item .portfolio-link:hover .portfolio-hover,#portfolio .portfolio-item .portfolio-link:focus .portfolio-hover{opacity:1}#portfolio .portfolio-item .portfolio-link .portfolio-hover-content{position:absolute;top:50%;width:100%;padding:1rem;color:#ffffff;text-align:center;transform:translateY(-50%)}#portfolio .portfolio-item .portfolio-caption{width:100%;max-width:400px;min-height:140px;margin:0 auto;padding:24px 20px;border:1px solid var(--color-border);border-top:0;border-radius:0 0 8px 8px;color:var(--color-text);text-align:center;background-color:var(--color-bg-card)}#portfolio .portfolio-item .portfolio-caption h4{margin:0 0 8px;color:var(--color-text);text-transform:none}#portfolio .portfolio-item .portfolio-caption p{margin:0;color:var(--color-text-muted);font-family:var(--font-sans);font-size:0.95rem;font-style:normal;line-height:1.55}.portfolio-modal{padding-right:0 !important}.portfolio-modal .modal-dialog{width:calc(100% - 2rem);max-width:900px;margin:1rem auto}.portfolio-modal .modal-content{width:100%;max-width:100%;padding:72px 24px 44px;overflow:hidden;border:1px solid var(--color-border);border-radius:10px;color:var(--color-text);text-align:center;background-color:var(--color-bg-elevated);box-shadow:var(--shadow-lg)}.portfolio-modal .modal-content h2{margin-bottom:15px;color:var(--color-text);font-size:clamp(1.9rem, 7vw, 3rem)}.portfolio-modal .modal-content p{max-width:720px;margin-right:auto;margin-bottom:24px;margin-left:auto;color:var(--color-text-muted)}.portfolio-modal .modal-content p.item-intro{margin:16px auto 26px;color:var(--color-secondary);font-family:var(--font-sans);font-size:1rem;font-style:normal}.portfolio-modal .modal-content img{max-width:100%;margin-bottom:24px}.portfolio-modal .close-modal{position:absolute;top:12px;right:12px;z-index:2;width:48px;height:48px;cursor:pointer;background-color:transparent}.portfolio-modal .close-modal .lr,.portfolio-modal .close-modal .lr .rl{width:2px;height:44px;background-color:var(--color-text)}.portfolio-modal .close-modal .lr{margin-left:23px;transform:rotate(45deg)}.portfolio-modal .close-modal .lr .rl{transform:rotate(90deg)}.timeline{position:relative;width:100%;max-width:100%;padding:0;list-style:none}.timeline::before{position:absolute;top:0;bottom:0;left:32px;width:2px;margin-left:-1px;content:"";background-color:var(--color-border)}.timeline>li{position:relative;min-height:64px;margin-bottom:48px}.timeline>li::after{display:table;clear:both;content:""}.timeline>li .timeline-panel{position:relative;float:right;width:100%;max-width:100%;padding:0 0 0 84px;color:var(--color-text-muted);text-align:left;overflow-wrap:anywhere}.timeline>li .timeline-image{position:absolute;z-index:2;left:0;display:flex;align-items:center;justify-content:center;width:64px;height:64px;overflow:hidden;color:var(--color-bg);border:5px solid var(--color-bg-elevated);border-radius:50%;background:linear-gradient(135deg, var(--color-accent) 0%, var(--color-secondary) 100%);box-shadow:0 0 0 1px var(--color-border),0 10px 22px rgba(0,0,0,0.18)}.timeline>li .timeline-image i{color:var(--color-bg);font-size:1.45rem}.timeline>li .timeline-image h4{margin:0;padding:4px;color:var(--color-bg);font-family:var(--font-sans);font-size:0.62rem;font-weight:700;line-height:1.2}.timeline>li .timeline-image.timeline-end{background:linear-gradient(135deg, var(--color-secondary) 0%, var(--color-accent) 100%)}.timeline>li.timeline-inverted>.timeline-panel{float:right;padding:0 0 0 84px;text-align:left}.timeline .timeline-heading h4{margin-top:0;margin-bottom:5px;color:var(--color-text-muted);font-family:var(--font-mono);font-size:0.82rem;font-weight:500;letter-spacing:0.03em;text-transform:uppercase}.timeline .timeline-heading h4.subheading{margin-bottom:12px;color:var(--color-text);font-family:var(--font-sans);font-size:1.2rem;font-weight:600;letter-spacing:-0.01em;text-transform:none}.timeline .timeline-body{color:var(--color-text-muted)}.timeline .timeline-body>ul,.timeline .timeline-body>p{margin-bottom:0}@media (min-width: 768px){.timeline::before{left:50%}.timeline>li{min-height:120px;margin-bottom:96px}.timeline>li .timeline-panel{float:left;width:41%;padding:0 24px 20px;text-align:right}.timeline>li .timeline-image{left:50%;width:100px;height:100px;margin-left:-50px;border-width:6px}.timeline>li .timeline-image i{font-size:2rem}.timeline>li .timeline-image h4{font-size:0.78rem;line-height:1.25}.timeline>li.timeline-inverted>.timeline-panel{float:right;padding:0 24px 20px;text-align:left}}@media (min-width: 992px){.timeline>li{min-height:150px}.timeline>li .timeline-image{width:130px;height:130px;margin-left:-65px}.timeline>li .timeline-image i{font-size:2.5rem}.timeline>li .timeline-image h4{font-size:0.94rem}}.team-member{display:flex;flex-direction:column;align-items:center;height:100%;margin-bottom:38px;color:var(--color-text-muted);text-align:center}.team-member-icon,.team-member-photo{display:flex;align-items:center;justify-content:center;width:132px;height:132px;flex:0 0 132px;margin:0 auto;overflow:hidden;border:5px solid var(--color-border);border-radius:50%;box-sizing:border-box;box-shadow:0 12px 28px rgba(0,0,0,0.2)}.team-member-icon{color:var(--color-bg);background:linear-gradient(135deg, var(--color-accent) 0%, var(--color-secondary) 100%);font-size:3.25rem}.team-member-icon i{display:block;line-height:1}.team-member-photo img{display:block;width:100%;height:100%;flex:0 0 100%;object-fit:cover;object-position:center;border-radius:50%}.team-member h4{margin-top:18px;margin-bottom:7px;color:var(--color-text);font-size:1.12rem;text-transform:none}.team-member-role{margin-bottom:8px;color:var(--color-accent);font-family:var(--font-mono);font-size:0.78rem;font-weight:500;line-height:1.4;letter-spacing:0.02em;text-transform:uppercase}.team-member-institution{max-width:280px;margin-bottom:0;color:var(--color-text-subtle);font-size:0.86rem;line-height:1.5}.team-subtext{max-width:760px;margin:0 auto 40px;color:var(--color-text-muted)}.team-collaboration-map{margin-top:10px}.team-map-title{margin-bottom:12px;color:var(--color-text);font-size:clamp(1.45rem, 4vw, 2rem)}.team-map-text{max-width:700px;margin:0 auto 28px;color:var(--color-text-muted)}.team-map-figure{margin:0;overflow:hidden;border:1px solid var(--color-border);border-radius:12px;background-color:rgba(19,35,58,0.72);box-shadow:var(--shadow-lg)}.team-map-figure img{width:100%;height:auto;margin:0}#clients{background-color:rgba(16,29,49,0.78)}.clients-logo-grid{align-items:stretch}.client-logo-column{display:flex}.client-logo-card{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;justify-content:center;min-height:174px;padding:22px 18px;color:inherit;text-align:center;text-decoration:none;border:1px solid rgba(255,255,255,0.14);border-radius:10px;background-color:#ffffff;box-shadow:0 10px 24px rgba(0,0,0,0.16);transition:border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease}a.client-logo-card:hover,a.client-logo-card:focus{color:inherit;text-decoration:none;border-color:var(--color-accent);background-color:#ffffff;box-shadow:0 14px 30px rgba(0,0,0,0.28);transform:translateY(-3px)}.client-logo-label{display:block;margin-bottom:13px;color:#4b5563;font-family:var(--font-mono);font-size:0.72rem;font-weight:600;letter-spacing:0.08em;line-height:1.2;text-transform:uppercase}.client-logo{display:block;width:100%;max-width:190px;max-height:92px;height:auto;object-fit:contain;object-position:center;background-color:transparent;filter:none;opacity:1;transition:transform 0.2s ease}a.client-logo-card:hover .client-logo,a.client-logo-card:focus .client-logo{filter:none;opacity:1;transform:scale(1.02)}.client-logo-fallback{color:#334155;font-family:var(--font-sans);font-size:0.9rem;font-weight:600;line-height:1.35}@media (max-width: 767.98px){.client-logo-card{min-height:140px;padding:18px 12px}.client-logo{max-width:135px;max-height:68px}.client-logo-label{margin-bottom:10px;font-size:0.66rem}}.footer,footer{width:100%;max-width:100%;padding:28px 0;color:var(--color-text-muted);text-align:center;border-top:1px solid var(--color-border);background:linear-gradient(135deg, var(--site-gradient-start) 0%, var(--site-gradient-middle) 52%, var(--site-gradient-end) 100%) !important}.footer span.copyright,.footer ul.quicklinks,.footer a{color:var(--color-text-muted);font-family:var(--font-sans);font-size:0.875rem;line-height:1.6;text-transform:none}.footer a:hover,.footer a:focus{color:var(--color-accent)}.footer ul.quicklinks{margin-bottom:0}ul.social-buttons{margin-bottom:0}ul.social-buttons li a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--color-text);margin:16px 0 0;border:1px solid var(--color-border);border-radius:50%;outline:none;background-color:var(--color-bg-card);font-size:1.1rem;line-height:1;transition:background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, transform 0.2s ease}ul.social-buttons li a:hover,ul.social-buttons li a:focus{color:#06201e;border-color:var(--color-accent);background-color:var(--color-accent);transform:translateY(-2px)}@media (max-width: 767.98px){body{background-attachment:scroll}.page-section,section,#clients{padding:64px 0}.page-section h3.section-subheading{margin-bottom:38px}.container{width:100%;max-width:100%;padding-right:20px;padding-left:20px}header.masthead .intro-text{padding:130px 0 76px}.btn-xl{width:100%;max-width:320px;padding:15px 22px}#mainNav .navbar-nav{padding-top:8px;padding-bottom:10px}#mainNav .navbar-nav .nav-item .nav-link{padding:0.72rem 0}.portfolio-modal .modal-dialog{width:calc(100% - 1rem);max-width:none;margin:0.5rem auto}.portfolio-modal .modal-content{padding:68px 18px 36px}.portfolio-modal .modal-content .list-inline-item{display:block;margin-right:0;margin-bottom:7px}.team-member{margin-bottom:30px}.team-member-icon{width:104px;height:104px;font-size:2.5rem}.team-member h4{font-size:1rem}.team-member-role{font-size:0.7rem}.team-member-institution{font-size:0.78rem}.team-map-text{margin-bottom:22px}ul.social-buttons li{margin-right:2px;margin-left:2px}}@media (max-width: 374.98px){.container{padding-right:16px;padding-left:16px}#mainNav .navbar-brand{max-width:calc(100vw - 7.2rem);font-size:1.05rem}#mainNav .navbar-toggler{padding:9px 10px;font-size:0.68rem}header.masthead .intro-text .intro-heading{font-size:2.05rem}.timeline::before{left:28px}.timeline>li .timeline-image{width:56px;height:56px}.timeline>li .timeline-panel,.timeline>li.timeline-inverted>.timeline-panel{padding-left:72px}}
