:root { --ink:#12171e; --navy:#102637; --blue:#79a9c6; --paper:#f4f4f1; --line:#d6d8d6; --muted:#626a70; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Manrope,Arial,sans-serif; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
.page-noise { position:fixed; inset:0; z-index:10; pointer-events:none; opacity:.035; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E"); }
.wrap { width:min(1280px, calc(100% - 80px)); margin-inline:auto; }
.topbar { height:92px; display:flex; align-items:center; justify-content:space-between; }
.brand { font-size:25px; font-weight:800; letter-spacing:-2px; }.brand span { color:#5f96b7; }
nav { display:flex; gap:32px; margin-left:80px; } nav a, .header-cta, .footer { font:500 10px/1 "DM Mono",monospace; text-transform:uppercase; letter-spacing:.06em; } nav a { color:#596066; transition:color .2s; } nav a:hover { color:var(--ink); }
.header-cta { color:#1f5a7e; }.header-cta span { font-size:15px; margin-left:6px; }
.hero { min-height:calc(100vh - 92px); display:grid; grid-template-columns:1.08fr .92fr; align-items:center; position:relative; padding:50px 0 110px; }
.eyebrow { display:flex; gap:10px; align-items:center; font:500 10px/1.2 "DM Mono",monospace; text-transform:uppercase; letter-spacing:.1em; color:#537f9a; margin:0 0 24px; }.eyebrow span { display:block; width:24px; height:1px; background:currentColor; }
h1,h2,h3,p { margin-top:0; } h1,h2 { letter-spacing:-.065em; font-weight:600; } h1 { font-size:clamp(48px,6.1vw,88px); line-height:.99; max-width:720px; margin-bottom:27px; } h1 em,h2 em { font-family:"Playfair Display",Georgia,serif; font-weight:500; letter-spacing:-.075em; }
.hero-text { max-width:468px; font-size:15px; line-height:1.75; color:var(--muted); }.hero-actions { margin-top:35px; display:flex; align-items:center; gap:29px; }
.button { display:inline-flex; align-items:center; gap:35px; padding:16px 18px 16px 21px; font:500 10px/1 "DM Mono",monospace; text-transform:uppercase; letter-spacing:.05em; transition:transform .2s,background .2s; }.button-dark { background:var(--ink); color:#fff; }.button:hover { transform:translateY(-2px); background:#244b62; }.button span { font-size:18px; }
.text-link { font:500 10px/1.2 "DM Mono",monospace; text-transform:uppercase; letter-spacing:.04em; border-bottom:1px solid #9fa3a2; padding-bottom:7px; }.text-link span { font-size:15px; margin-left:5px; }
.hero-visual { height:560px; position:relative; justify-self:end; width:min(100%, 440px); }.image-frame { position:absolute; width:78%; height:91%; right:0; top:0; overflow:hidden; background:#17202a; }.image-frame:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 60%,rgba(9,20,28,.22)); }.image-frame img { width:100%; height:100%; object-fit:cover; object-position:50% 35%; filter:saturate(.75) contrast(1.03); transition:transform .7s ease; }.hero-visual:hover img { transform:scale(1.035); }
.credential-card { position:absolute; left:0; bottom:30px; background:#d9e5eb; width:65%; padding:21px 24px; z-index:1; }.card-dot { display:block; width:7px; height:7px; border-radius:50%; background:#4d87a8; margin-bottom:18px; }.credential-card p { font:500 9px/1 "DM Mono",monospace; text-transform:uppercase; letter-spacing:.08em; margin-bottom:7px; }.credential-card strong { display:block; font-size:12px; line-height:1.48; font-weight:600; }.portrait-caption { position:absolute; right:-60px; bottom:3px; font:400 9px/1.45 "DM Mono",monospace; text-transform:uppercase; letter-spacing:.07em; color:#737a7d; }.portrait-caption span { color:#6791ab; }
.hero-footer { position:absolute; bottom:28px; left:0; right:0; display:flex; justify-content:space-between; font:400 9px/1 "DM Mono",monospace; color:#737a7d; text-transform:uppercase; letter-spacing:.06em; }.scroll-line { display:flex; gap:10px; align-items:center; }.scroll-line i { display:block; width:38px; height:1px; background:#a7acad; }
.section { padding:125px 0 135px; }.section-heading { display:grid; grid-template-columns:1fr 1.2fr; align-items:start; margin-bottom:58px; }.section-heading h2 { font-size:clamp(36px,4vw,57px); line-height:1.05; margin:0; max-width:580px; }.service-list { border-top:1px solid var(--line); }.service-item { min-height:155px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:16% 1fr auto; align-items:center; gap:25px; transition:padding .3s,background .3s; }.service-item:hover { padding-inline:20px; background:#ecedeb; }.service-index { font:400 10px/1 "DM Mono",monospace; color:#5d91af; }.service-item h3 { font-size:22px; letter-spacing:-.045em; margin:0 0 9px; }.service-item p { font-size:13px; color:var(--muted); line-height:1.65; max-width:530px; margin:0; }.service-arrow { color:#5d91af; font-size:25px; }
.about { background:var(--navy); color:#f4f6f5; padding:118px 0 0; }.about-grid { display:grid; grid-template-columns:1.08fr .92fr; gap:100px; }.eyebrow-light { color:#8ebad2; }.about h2 { font-size:clamp(38px,4.4vw,63px); line-height:1.04; max-width:650px; margin:0; }.about-copy { padding-top:44px; }.about-copy p { font-size:15px; line-height:1.8; color:#c8d0d2; max-width:410px; }.about-copy p + p { margin-top:20px; }.text-link-light { color:#fff; border-color:#73818b; display:inline-block; margin-top:13px; }.stats { display:grid; grid-template-columns:repeat(3,1fr); margin-top:110px; border-top:1px solid rgba(255,255,255,.18); }.stats div { min-height:185px; padding:30px 24px 20px 0; border-right:1px solid rgba(255,255,255,.18); display:flex; flex-direction:column; gap:10px; }.stats div + div { padding-left:32px; }.stats div:last-child { border:0; }.stats strong { font-size:46px; letter-spacing:-.08em; font-weight:500; color:#a9cce0; }.stats span { font:400 10px/1.6 "DM Mono",monospace; text-transform:uppercase; letter-spacing:.03em; color:#bfcbcf; }
.contact { padding:125px 0 44px; }.contact-top { display:flex; justify-content:space-between; align-items:start; }.contact-top > span { font:400 9px/1 "DM Mono",monospace; color:#6d7578; text-transform:uppercase; letter-spacing:.06em; }.contact h2 { font-size:clamp(50px,6.4vw,90px); line-height:.96; margin:48px 0 36px; }.contact-link { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); padding:22px 2px; font-size:clamp(21px,2.4vw,32px); font-weight:600; letter-spacing:-.05em; transition:color .2s; }.contact-link:hover { color:#4e88a9; }.contact-link span { font-size:28px; }.contact-details { display:flex; gap:28px; margin-top:33px; font:400 10px/1 "DM Mono",monospace; color:#4d575c; }.contact-details a:hover { color:#1e668e; }
.footer { border-top:1px solid var(--line); padding:24px 0 29px; display:flex; justify-content:space-between; color:#747b7c; }
.service-item .service-label { color:#5d91af; font:500 9px/1 "DM Mono",monospace; letter-spacing:.08em; text-transform:uppercase; margin:0 0 10px; }
.about-list { display:flex; flex-wrap:wrap; gap:8px 18px; padding:0; margin:27px 0 0; list-style:none; }
.about-list li { color:#a9cce0; font:500 9px/1 "DM Mono",monospace; text-transform:uppercase; letter-spacing:.06em; }
.about-list li::before { content:"/ "; color:#fff; }
.text-link-light { margin-top:25px; }
.reveal { opacity:0; transform:translateY(18px); transition:opacity .75s ease,transform .75s ease; }.reveal.is-visible { opacity:1; transform:translateY(0); }
@media (max-width:760px) { .wrap { width:min(100% - 40px,620px); }.topbar { height:70px; }.header-cta, nav { display:none; }.hero { min-height:auto; display:flex; flex-direction:column; align-items:stretch; padding:48px 0 82px; }.hero-copy { order:0; }.eyebrow { margin-bottom:18px; } h1 { font-size:clamp(47px,14vw,68px); line-height:1.01; margin-bottom:21px; }.hero-text { font-size:14px; }.hero-actions { margin-top:28px; align-items:flex-start; flex-direction:column; gap:23px; }.hero-visual { order:1; width:100%; height:455px; margin-top:58px; }.image-frame { width:83%; height:91%; }.credential-card { bottom:0; width:71%; padding:18px 19px; }.credential-card strong { font-size:11px; }.portrait-caption { right:0; bottom:-31px; }.hero-footer { display:none; }.section { padding:93px 0; }.section-heading { display:block; margin-bottom:42px; }.section-heading h2 { font-size:38px; }.service-item { min-height:unset; padding:23px 0 25px; grid-template-columns:31px 1fr; gap:12px; align-items:start; }.service-item:hover { padding-inline:0; background:transparent; }.service-arrow { display:none; }.service-item h3 { font-size:19px; margin-bottom:8px; }.service-item p { font-size:12px; line-height:1.62; }.service-item .service-label { font-size:8px; margin-bottom:8px; }.about { padding-top:82px; }.about-grid { display:block; }.about h2 { font-size:38px; }.about-copy { padding-top:35px; }.about-copy p { font-size:14px; }.about-list { margin-top:23px; gap:9px 13px; }.stats { margin-top:66px; display:block; padding-bottom:14px; }.stats div,.stats div + div { min-height:0; padding:20px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.18); display:flex; flex-direction:row; align-items:center; gap:26px; }.stats div:last-child { border-bottom:0; }.stats strong { font-size:37px; min-width:70px; }.contact { padding:85px 0 30px; }.contact-top > span { display:none; }.contact h2 { font-size:49px; margin:38px 0 31px; }.contact-link { font-size:22px; padding:18px 0; }.contact-details { flex-direction:column; gap:14px; margin-top:25px; font-size:9px; }.footer { font-size:8px; padding:20px 0; } }
