:root { --ink: #13202d; --navy: #0d1b2a; --navy-2: #17283a; --sand: #e8ddca; --paper: #f7f4ee; --white: #ffffff; --copper: #b86f47; --copper-dark: #8e4f30; --slate: #5b6874; --line: rgba(19, 32, 45, 0.14); --shadow: 0 24px 70px rgba(13, 27, 42, 0.12); --radius: 18px; --content: 1180px; } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 17px; line-height: 1.65; -webkit-font-smoothing: antialiased; } body.menu-open { overflow: hidden; } a { color: inherit; } img { display: block; max-width: 100%; } button, input, textarea, select { font: inherit; } .skip-link { position: fixed; z-index: 1000; left: 1rem; top: -5rem; padding: .75rem 1rem; color: var(--white); background: var(--copper-dark); } .skip-link:focus { top: 1rem; } .shell { width: min(calc(100% - 40px), var(--content)); margin-inline: auto; } .eyebrow { margin: 0 0 .9rem; color: var(--copper-dark); font-size: .77rem; font-weight: 800; letter-spacing: .14em; line-height: 1.3; text-transform: uppercase; } h1, h2, h3, p { margin-top: 0; } h1, h2, .display { font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.035em; line-height: 1.07; } h1 { margin-bottom: 1.4rem; font-size: clamp(3rem, 6vw, 6rem); } h2 { margin-bottom: 1rem; font-size: clamp(2.2rem, 4vw, 4rem); } h3 { margin-bottom: .65rem; font-size: 1.22rem; line-height: 1.3; } .lead { max-width: 760px; color: var(--slate); font-size: clamp(1.08rem, 1.7vw, 1.3rem); line-height: 1.6; } .muted { color: var(--slate); } .site-header { position: sticky; z-index: 50; top: 0; border-bottom: 1px solid rgba(255,255,255,.12); color: var(--white); background: rgba(13, 27, 42, .94); backdrop-filter: blur(12px); } .nav-wrap { display: flex; align-items: center; justify-content: space-between; min-height: 78px; gap: 2rem; } .brand { display: inline-flex; align-items: center; gap: .85rem; color: var(--white); text-decoration: none; } .brand-mark { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(255,255,255,.5); color: var(--sand); font-family: Georgia, serif; font-size: .82rem; letter-spacing: -.05em; } .brand-copy { display: grid; line-height: 1.1; } .brand-copy strong { font-family: Georgia, serif; font-size: 1rem; font-weight: 400; letter-spacing: .01em; } .brand-copy span { margin-top: .25rem; color: rgba(255,255,255,.65); font-size: .64rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; } .nav-links { display: flex; align-items: center; gap: 1.7rem; } .nav-links a { color: rgba(255,255,255,.78); font-size: .88rem; font-weight: 700; text-decoration: none; } .nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--white); } .nav-links .nav-cta { padding: .7rem 1rem; border: 1px solid rgba(255,255,255,.35); color: var(--white); } .menu-toggle { display: none; border: 0; color: var(--white); background: transparent; cursor: pointer; } .menu-toggle span { display: block; width: 27px; height: 2px; margin: 6px 0; background: currentColor; } .hero { position: relative; min-height: calc(100vh - 78px); overflow: hidden; color: var(--white); background: var(--navy); } .hero::after { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(90deg, rgba(13,27,42,.98) 0%, rgba(13,27,42,.9) 39%, rgba(13,27,42,.3) 72%, rgba(13,27,42,.1) 100%); } .hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: .9; } .hero-grid { position: relative; z-index: 2; display: grid; min-height: calc(100vh - 78px); align-items: center; padding-block: 7rem 5rem; } .hero-copy { max-width: 790px; } .hero h1 { max-width: 780px; } .hero .eyebrow { color: #d89972; } .hero .lead { max-width: 680px; color: rgba(255,255,255,.76); } .actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 2rem; } .button { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: .8rem 1.25rem; border: 1px solid transparent; color: var(--white); background: var(--copper); font-size: .86rem; font-weight: 800; letter-spacing: .04em; text-decoration: none; text-transform: uppercase; transition: transform .2s ease, background .2s ease; } .button:hover { transform: translateY(-2px); background: var(--copper-dark); } .button.secondary { border-color: rgba(255,255,255,.4); background: transparent; } .button.secondary:hover { background: rgba(255,255,255,.1); } .button.dark { background: var(--navy); } .proof-strip { color: var(--white); background: var(--navy-2); } .proof-grid { display: grid; grid-template-columns: repeat(4, 1fr); } .proof-item { padding: 2rem 1.5rem; border-left: 1px solid rgba(255,255,255,.12); } .proof-item:last-child { border-right: 1px solid rgba(255,255,255,.12); } .proof-item strong { display: block; color: var(--sand); font-family: Georgia, serif; font-size: 2rem; font-weight: 400; line-height: 1; } .proof-item span { display: block; margin-top: .55rem; color: rgba(255,255,255,.64); font-size: .77rem; line-height: 1.4; } .section { padding-block: clamp(5rem, 9vw, 8rem); } .section.white { background: var(--white); } .section.navy { color: var(--white); background: var(--navy); } .section.navy .lead, .section.navy .muted { color: rgba(255,255,255,.68); } .section.sand { background: var(--sand); } .section-head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 3rem; } .section-head > div { max-width: 760px; } .section-head h2 { margin-bottom: 0; } .text-link { color: var(--copper-dark); font-size: .84rem; font-weight: 800; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; } .text-link::after { content: " →"; } .cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); } .card { min-height: 270px; padding: 2rem; background: var(--paper); } .white .card { background: var(--white); } .card-number { display: block; margin-bottom: 3rem; color: var(--copper-dark); font-family: Georgia, serif; font-size: 1rem; } .card p { color: var(--slate); font-size: .94rem; } .split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, .75fr); gap: clamp(3rem, 7vw, 7rem); align-items: start; } .principles { display: grid; gap: 0; border-top: 1px solid var(--line); } .principle { display: grid; grid-template-columns: 42px 1fr; gap: 1rem; padding: 1.25rem 0; border-bottom: 1px solid var(--line); } .principle span { color: var(--copper-dark); font-family: Georgia, serif; } .principle strong { font-weight: 700; } .quote-panel { padding: clamp(2rem, 5vw, 4rem); color: var(--white); background: var(--navy); box-shadow: var(--shadow); } .quote-panel blockquote { margin: 0; font-family: Georgia, serif; font-size: clamp(1.7rem, 3vw, 2.7rem); line-height: 1.2; } .quote-panel cite { display: block; margin-top: 2rem; color: var(--sand); font-size: .75rem; font-style: normal; letter-spacing: .12em; text-transform: uppercase; } .case-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; } .case { position: relative; min-height: 370px; padding: clamp(2rem, 4vw, 3.5rem); overflow: hidden; color: var(--white); background: var(--navy-2); } .case::before { position: absolute; inset: auto -20% -50% 20%; height: 320px; border: 1px solid rgba(216,153,114,.35); border-radius: 50%; content: ""; } .case > * { position: relative; z-index: 1; } .case .tag { color: #d89972; font-size: .73rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; } .case h3 { max-width: 520px; margin-top: 2.5rem; font-family: Georgia, serif; font-size: clamp(1.65rem, 3vw, 2.5rem); font-weight: 400; } .case p { max-width: 540px; color: rgba(255,255,255,.67); } .case-result { display: block; margin-top: 2rem; color: var(--sand); font-weight: 700; } .page-hero { padding-block: clamp(6rem, 11vw, 10rem); color: var(--white); background: var(--navy); } .page-hero h1 { max-width: 920px; font-size: clamp(3.2rem, 6vw, 5.7rem); } .page-hero .lead { color: rgba(255,255,255,.7); } .service-row { display: grid; grid-template-columns: 90px minmax(0, .7fr) minmax(280px, 1fr); gap: 2rem; padding: 2.5rem 0; border-top: 1px solid var(--line); } .service-row:last-child { border-bottom: 1px solid var(--line); } .service-row > span { color: var(--copper-dark); font-family: Georgia, serif; font-size: 1.1rem; } .service-row h3 { font-family: Georgia, serif; font-size: 1.7rem; font-weight: 400; } .service-row p { color: var(--slate); } .service-row ul { margin: .8rem 0 0; padding-left: 1.1rem; color: var(--slate); } .fit-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.14); } .fit-item { padding: 2rem; background: var(--navy); } .fit-item h3 { color: var(--sand); } .fit-item p { margin-bottom: 0; color: rgba(255,255,255,.66); } .bio-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(3rem, 8vw, 8rem); align-items: start; } .monogram-panel { position: sticky; top: 120px; display: grid; min-height: 480px; padding: 2rem; place-items: center; background: var(--navy); } .monogram-panel span { color: var(--sand); font-family: Georgia, serif; font-size: clamp(5rem, 12vw, 10rem); letter-spacing: -.08em; } .beliefs { margin-top: 3rem; } .belief { padding: 1rem 0; border-top: 1px solid var(--line); font-family: Georgia, serif; font-size: 1.35rem; } .timeline { border-top: 1px solid var(--line); } .timeline-item { display: grid; grid-template-columns: 200px 1fr; gap: 2rem; padding: 2rem 0; border-bottom: 1px solid var(--line); } .timeline-item .industry { color: var(--copper-dark); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; } .timeline-item h3 { font-family: Georgia, serif; font-size: 1.45rem; font-weight: 400; } .timeline-item p { margin-bottom: 0; color: var(--slate); } .contact-grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(380px, 1fr); gap: clamp(3rem, 8vw, 8rem); align-items: start; } .contact-details { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); } .contact-details a { display: block; margin: .4rem 0; color: var(--ink); text-decoration: none; } .form-card { padding: clamp(1.5rem, 4vw, 3rem); background: var(--white); box-shadow: var(--shadow); } .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.15rem; } .field { display: grid; gap: .4rem; } .field.full { grid-column: 1 / -1; } .field label { font-size: .75rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; } .field input, .field textarea, .field select { width: 100%; border: 1px solid #c9c7c1; border-radius: 0; padding: .8rem .9rem; color: var(--ink); background: #fbfaf7; } .field textarea { min-height: 150px; resize: vertical; } .field input:focus, .field textarea:focus, .field select:focus { outline: 3px solid rgba(184,111,71,.18); border-color: var(--copper); } .form-note { margin: 1rem 0 0; color: var(--slate); font-size: .78rem; } .cta-band { padding-block: 4rem; color: var(--white); background: var(--copper-dark); } .cta-grid { display: flex; align-items: center; justify-content: space-between; gap: 2rem; } .cta-grid h2 { max-width: 760px; margin: 0; font-size: clamp(2rem, 4vw, 3.4rem); } .cta-grid .button { color: var(--navy); background: var(--white); white-space: nowrap; } .site-footer { padding: 4rem 0 2rem; color: rgba(255,255,255,.68); background: #09131e; } .footer-grid { display: grid; grid-template-columns: 1.5fr .7fr .7fr; gap: 3rem; } .footer-brand { max-width: 460px; } .footer-brand p { margin-top: 1rem; } .footer-title { color: var(--white); font-size: .74rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; } .footer-links { display: grid; gap: .45rem; margin-top: 1rem; } .footer-links a { text-decoration: none; } .footer-links a:hover { color: var(--white); } .copyright { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(255,255,255,.12); font-size: .76rem; } .reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; } .reveal.visible { opacity: 1; transform: none; } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } .reveal { opacity: 1; transform: none; } } @media (max-width: 900px) { .menu-toggle { display: block; } .nav-links { position: fixed; inset: 78px 0 auto; display: none; min-height: calc(100vh - 78px); padding: 2rem 20px; align-items: stretch; flex-direction: column; background: var(--navy); } .nav-links.open { display: flex; } .nav-links a { padding: .65rem 0; font-size: 1.1rem; } .nav-links .nav-cta { padding: .9rem 1rem; text-align: center; } .proof-grid { grid-template-columns: repeat(2, 1fr); } .proof-item:nth-child(3) { border-top: 1px solid rgba(255,255,255,.12); } .proof-item:nth-child(4) { border-top: 1px solid rgba(255,255,255,.12); } .cards { grid-template-columns: 1fr 1fr; } .split, .bio-grid, .contact-grid { grid-template-columns: 1fr; } .monogram-panel { position: relative; top: auto; min-height: 300px; } .service-row { grid-template-columns: 55px 1fr; } .service-row > div:last-child { grid-column: 2; } .footer-grid { grid-template-columns: 1fr 1fr; } .footer-brand { grid-column: 1 / -1; } } @media (max-width: 620px) { body { font-size: 16px; } .shell { width: min(calc(100% - 28px), var(--content)); } .brand-copy span { display: none; } .hero-grid { padding-block: 5rem 3.5rem; } .hero::after { background: linear-gradient(90deg, rgba(13,27,42,.96), rgba(13,27,42,.68)); } .proof-grid, .cards, .case-grid, .fit-list, .form-grid, .footer-grid { grid-template-columns: 1fr; } .proof-item { border-right: 1px solid rgba(255,255,255,.12); } .proof-item + .proof-item { border-top: 1px solid rgba(255,255,255,.12); } .section-head, .cta-grid { align-items: flex-start; flex-direction: column; } .service-row { grid-template-columns: 1fr; gap: .75rem; } .service-row > div:last-child { grid-column: auto; } .timeline-item { grid-template-columns: 1fr; gap: .75rem; } .field.full { grid-column: auto; } .footer-brand { grid-column: auto; } }