:root { --navy:#09294f; --navy-deep:#061b35; --blue:#1577cb; --sky:#89c7ef; --mist:#eaf4fb; --offwhite:#f8fbfd; --ink:#112235; --muted:#597085; --line:#d6e2eb; --white:#fff; --shadow:0 22px 50px rgba(9,41,79,.12); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--offwhite); color:var(--ink); font-family:Arial,Helvetica,sans-serif; line-height:1.55; } img { display:block; max-width:100%; } a { color:inherit; }
.container { width:min(1120px,calc(100% - 48px)); margin:0 auto; } .section { padding:112px 0; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.skip-link { background:var(--white); color:var(--navy); left:16px; padding:10px 14px; position:fixed; top:-100px; z-index:100; }.skip-link:focus { top:16px; }
.site-header { background:var(--navy); color:var(--white); left:0; position:absolute; right:0; top:0; z-index:10; }.nav-wrap { align-items:center; display:flex; justify-content:space-between; min-height:84px; }.brand { display:block; width:160px; }.brand img { height:52px; object-fit:contain; object-position:left center; width:100%; }.nav-menu { align-items:center; display:flex; gap:28px; }.nav-menu a { color:rgba(255,255,255,.82); font-size:.88rem; font-weight:700; letter-spacing:.03em; text-decoration:none; transition:color .2s ease; }.nav-menu a:hover,.nav-menu a:focus { color:var(--white); }.nav-menu .nav-cta { border:1px solid rgba(255,255,255,.55); border-radius:999px; padding:9px 17px; }.nav-toggle { display:none; }
.hero { background:radial-gradient(circle at 82% 26%,rgba(43,137,215,.45),transparent 28%),linear-gradient(120deg,var(--navy-deep),var(--navy) 60%,#103f72); color:var(--white); min-height:720px; overflow:hidden; padding:194px 0 90px; }.hero-grid { align-items:center; display:grid; gap:60px; grid-template-columns:1.12fr .88fr; }.eyebrow,.section-kicker { color:var(--blue); font-size:.74rem; font-weight:800; letter-spacing:.16em; margin:0 0 20px; text-transform:uppercase; }.hero .eyebrow { color:var(--sky); } h1,h2,h3,p { margin-top:0; } h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(3.1rem,6.3vw,5.55rem); font-weight:400; letter-spacing:-.06em; line-height:.98; margin-bottom:28px; max-width:760px; } h1 em { color:var(--sky); font-style:italic; }.hero-text { color:rgba(255,255,255,.8); font-size:1.12rem; max-width:560px; }.hero-actions { align-items:center; display:flex; flex-wrap:wrap; gap:24px; margin-top:38px; }.button { align-items:center; border-radius:999px; display:inline-flex; font-size:.9rem; font-weight:800; justify-content:center; min-height:48px; padding:12px 23px; text-decoration:none; transition:transform .2s ease,background .2s ease; }.button:hover { transform:translateY(-2px); }.button-primary { background:var(--white); color:var(--navy); }.text-link { color:var(--white); font-size:.88rem; font-weight:700; text-decoration:none; }.text-link span { display:inline-block; margin-left:5px; transition:transform .2s ease; }.text-link:hover span { transform:translateY(3px); }
.hero-visual { height:410px; min-width:310px; position:relative; }.orbit { border:1px solid rgba(159,217,255,.25); border-radius:50%; left:50%; position:absolute; top:50%; transform:translate(-50%,-50%); }.orbit-one { height:350px; width:350px; }.orbit-two { border-style:dashed; height:275px; width:275px; }.signal { background:var(--sky); border-radius:50%; box-shadow:0 0 0 9px rgba(137,199,239,.09); height:11px; position:absolute; width:11px; }.signal-one { left:14%; top:24%; }.signal-two { bottom:19%; right:10%; }.compass { align-items:center; background:linear-gradient(145deg,rgba(31,118,193,.6),rgba(3,26,53,.9)); border:1px solid rgba(211,239,255,.48); border-radius:50%; display:flex; height:190px; justify-content:center; left:50%; position:absolute; top:50%; transform:translate(-50%,-50%); width:190px; }.compass::before,.compass::after { background:rgba(201,232,255,.6); content:""; height:1px; left:22px; position:absolute; right:22px; top:94px; }.compass::after { transform:rotate(90deg); }.compass-north { color:var(--sky); font-family:Georgia,serif; font-size:3.1rem; font-style:italic; }.compass-center { background:var(--white); border-radius:50%; box-shadow:0 0 0 10px rgba(255,255,255,.08); height:12px; position:absolute; width:12px; }.compass-label { color:rgba(255,255,255,.78); font-size:.57rem; font-weight:800; letter-spacing:.1em; position:absolute; }.label-data { top:20px; }.label-analysis { bottom:27px; left:8px; }.label-action { bottom:27px; right:6px; }
.intro { border-bottom:1px solid var(--line); }.intro-grid { align-items:start; display:grid; gap:70px; grid-template-columns:.32fr .68fr; }.intro-statement { color:var(--navy); font-family:Georgia,"Times New Roman",serif; font-size:clamp(2rem,3.3vw,3.15rem); letter-spacing:-.045em; line-height:1.11; margin:0; }
.section-heading { align-items:end; display:grid; gap:42px; grid-template-columns:1fr .55fr; margin-bottom:50px; }h2 { color:var(--navy); font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.25rem,4.2vw,3.85rem); font-weight:400; letter-spacing:-.052em; line-height:1.03; margin-bottom:0; }.section-heading > p { color:var(--muted); font-size:1.02rem; margin:0; }.service-grid { display:grid; gap:18px; grid-template-columns:repeat(3,1fr); }.service-card { background:var(--white); border:1px solid var(--line); min-height:480px; padding:34px; position:relative; transition:box-shadow .25s ease,transform .25s ease; }.service-card:hover { box-shadow:var(--shadow); transform:translateY(-5px); }.service-number { color:#aac3d8; font-family:Georgia,serif; font-size:1.25rem; }.card-icon { height:64px; margin:42px 0 30px; position:relative; width:64px; }.card-icon i { background:var(--blue); display:block; position:absolute; }.icon-data i:nth-child(1) { bottom:0; height:40px; left:2px; width:11px; }.icon-data i:nth-child(2) { bottom:0; height:59px; left:25px; width:11px; }.icon-data i:nth-child(3) { bottom:0; height:26px; left:48px; width:11px; }.icon-insights { border:2px solid var(--blue); border-radius:50%; height:56px; width:56px; }.icon-insights i:nth-child(1) { height:2px; left:10px; top:31px; transform:rotate(-42deg); width:21px; }.icon-insights i:nth-child(2) { height:2px; left:27px; top:20px; transform:rotate(42deg); width:17px; }.icon-insights i:nth-child(3) { border:2px solid var(--blue); border-radius:50%; height:7px; left:7px; top:28px; width:7px; }.icon-projects::before,.icon-projects::after { border:2px solid var(--blue); content:""; position:absolute; }.icon-projects::before { height:44px; left:8px; top:4px; transform:rotate(45deg); width:44px; }.icon-projects::after { border-left:0; border-top:0; height:27px; left:18px; top:15px; transform:rotate(45deg); width:14px; }.service-card h3 { color:var(--navy); font-family:Georgia,serif; font-size:1.68rem; font-weight:400; letter-spacing:-.03em; margin-bottom:11px; }.service-card p { color:var(--muted); font-size:.94rem; }.service-card ul { border-top:1px solid var(--line); list-style:none; margin:25px 0 0; padding:18px 0 0; }.service-card li { color:var(--navy); font-size:.83rem; margin:9px 0; padding-left:16px; position:relative; }.service-card li::before { color:var(--blue); content:"•"; left:0; position:absolute; }.featured-card { background:var(--navy); border-color:var(--navy); }.featured-card .service-number,.featured-card h3,.featured-card li { color:var(--white); }.featured-card p { color:rgba(255,255,255,.73); }.featured-card ul { border-color:rgba(255,255,255,.2); }.featured-card .icon-insights { border-color:var(--sky); }.featured-card .icon-insights i { background:var(--sky); }.featured-card .icon-insights i:nth-child(3) { background:transparent; border-color:var(--sky); }
.process { background:var(--mist); }.process-heading { display:grid; grid-template-columns:.65fr 1fr; margin-bottom:50px; }.process-heading h2 { grid-column:2; }.process-list { border-top:1px solid #c6ddec; list-style:none; margin:0; padding:0; }.process-list li { align-items:baseline; border-bottom:1px solid #c6ddec; display:grid; gap:32px; grid-template-columns:.16fr .84fr; padding:27px 0; }.process-list > li > span { color:var(--blue); font-size:.83rem; font-weight:800; }.process-list h3 { color:var(--navy); font-family:Georgia,serif; font-size:1.38rem; font-weight:400; margin-bottom:5px; }.process-list p { color:var(--muted); margin:0; }
.about { background:var(--white); }.about-grid { display:grid; gap:80px; grid-template-columns:1.05fr .95fr; }.about-panel { background:var(--navy); color:var(--white); padding:55px; }.about-panel .section-kicker { color:var(--sky); }.about-panel h2 { color:var(--white); margin-bottom:25px; }.about-panel > p:last-child { color:rgba(255,255,255,.75); font-size:1.03rem; margin-bottom:0; }.principles { align-self:center; }.principles-label { color:var(--muted); font-size:.8rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }.principles > div { align-items:baseline; border-top:1px solid var(--line); display:grid; gap:20px; grid-template-columns:40px 1fr; padding:20px 0; }.principles > div:last-child { border-bottom:1px solid var(--line); }.principles span { color:var(--blue); font-family:Georgia,serif; }.principles p { color:var(--muted); margin:0; }.principles strong { color:var(--navy); }
.contact { background:var(--blue); color:var(--white); padding:84px 0; }.contact-panel { align-items:end; display:grid; gap:65px; grid-template-columns:1fr .62fr; }.contact .section-kicker { color:#d4ecff; }.contact h2 { color:var(--white); max-width:680px; }.contact-actions p { color:rgba(255,255,255,.85); font-size:1.03rem; }.button-light { background:var(--white); color:var(--navy); width:100%; }.contact small { color:rgba(255,255,255,.7); display:block; font-size:.72rem; line-height:1.45; margin-top:13px; }
.site-footer { background:var(--navy-deep); color:rgba(255,255,255,.65); padding:35px 0; }.footer-wrap { align-items:center; display:grid; gap:25px; grid-template-columns:.8fr 1.2fr auto; }.footer-brand { display:block; width:150px; }.footer-brand img { height:45px; object-fit:contain; object-position:left center; }.footer-wrap p { font-size:.78rem; margin:0; }.copyright { text-align:right; white-space:nowrap; }
@media (max-width:820px) { .section { padding:76px 0; }.hero { min-height:unset; padding:152px 0 70px; }.hero-grid,.intro-grid,.section-heading,.about-grid,.contact-panel { grid-template-columns:1fr; }.hero-grid { gap:15px; }.hero-visual { height:300px; margin:0 auto; transform:scale(.76); width:330px; }.intro-grid { gap:22px; }.section-heading { gap:18px; }.service-grid { grid-template-columns:1fr; }.service-card { min-height:unset; }.process-heading { display:block; }.process-heading h2 { margin-top:16px; }.about-grid { gap:26px; }.about-panel { padding:38px; }.contact-panel { gap:28px; }.footer-wrap { grid-template-columns:1fr; }.copyright { text-align:left; }.nav-toggle { background:transparent; border:0; cursor:pointer; display:grid; gap:5px; padding:10px 0 10px 10px; }.nav-toggle span:not(.sr-only) { background:var(--white); display:block; height:2px; width:24px; }.nav-menu { background:var(--navy); box-shadow:0 18px 30px rgba(0,0,0,.18); display:none; flex-direction:column; left:0; padding:18px 24px 28px; position:absolute; right:0; top:84px; }.nav-menu.is-open { display:flex; }.nav-menu .nav-cta { padding:10px 20px; } }
@media (max-width:520px) { .container { width:min(100% - 32px,1120px); }.brand { width:137px; }.hero { padding-top:138px; } h1 { font-size:3.1rem; }.hero-actions { align-items:stretch; flex-direction:column; gap:18px; }.button-primary { width:100%; }.hero-visual { margin-left:-18px; }.process-list li { gap:18px; grid-template-columns:35px 1fr; }.about-panel { padding:33px 27px; } }
