main { overflow: clip; }
h1, h2, h3 { overflow-wrap: anywhere; }
.site-nav > a[aria-current="page"]:not(.button)::after { transform: scaleX(1); }
.project-toolbar { -webkit-overflow-scrolling: touch; overscroll-behavior-inline: contain; }
.filter { display: inline-flex; align-items: center; gap: 10px; }
.filter:focus-visible { outline: 2px solid var(--accent-bright); outline-offset: 3px; }
.filter-count { display: inline-grid; min-width: 22px; height: 22px; padding-inline: 5px; place-items: center; border-radius: 999px; background: rgba(255,255,255,.1); color: var(--white); font-size: .67rem; }
.filter.is-active .filter-count { background: var(--accent); }
.project-toolbar-link { justify-content: flex-end; }
.project-category-heading { min-height: 74px; margin: 0 0 26px; display: flex; align-items: end; gap: 20px; }
.project-category-heading .eyebrow { margin: 0 auto 4px 0; }
.project-category-heading h3 { font-size: clamp(1.5rem, 2.6vw, 2.3rem); }
.project-category-heading > span { margin-bottom: 3px; color: rgba(255,255,255,.45); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.text-link-dark { display: inline-block; margin-top: 34px; color: var(--ink); }
.contact-email { overflow-wrap: anywhere; }
.page-hero { min-height: 560px; padding: 190px 0 105px; position: relative; overflow: hidden; display: flex; align-items: flex-end; color: var(--white); background: radial-gradient(circle at 78% 20%, rgba(47,92,114,.45), transparent 30%), linear-gradient(132deg, #0b1720 0%, #102936 58%, #0b1d28 100%); }
.page-hero::after { content: ""; position: absolute; width: 440px; height: 440px; right: -110px; bottom: -255px; border: 1px solid rgba(255,255,255,.12); transform: rotate(45deg); }
.page-hero-grid { position: absolute; inset: 0; opacity: .28; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(to right, black, transparent 80%); }
.page-hero-content { position: relative; z-index: 2; }
.page-hero h1 { max-width: 950px; font-size: clamp(3.2rem, 6vw, 6rem); }
.page-hero-content > p:last-child { max-width: 680px; margin: 30px 0 0; color: rgba(255,255,255,.68); font-size: 1.12rem; }
.content-split { display: grid; grid-template-columns: 1.05fr .8fr; gap: 100px; align-items: start; }
.content-split h2 { max-width: 650px; }
.prose { color: var(--muted); font-size: 1.04rem; }
.prose p:first-child { margin-top: 0; }
.prose ul { margin: 25px 0 0; padding: 0; list-style: none; }
.prose li { padding: 10px 0 10px 22px; position: relative; border-bottom: 1px solid var(--line); }
.prose li::before { content: ""; position: absolute; left: 0; top: 21px; width: 8px; height: 1px; background: var(--accent); }
.qualification-section, .section-muted { background: var(--paper-deep); }
.qualification-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.qualification-card { min-height: 330px; padding: 34px 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.qualification-card:first-child { border-left: 1px solid var(--line); }
.qualification-card span { color: var(--accent); font-size: .72rem; letter-spacing: .1em; }
.qualification-card h3 { margin-top: 72px; }
.qualification-card p { color: var(--muted); font-size: .92rem; }
.service-detail-row { display: grid; grid-template-columns: 70px 1fr 1fr; gap: 56px; align-items: start; }
.service-detail-number { color: var(--accent); font-size: .8rem; letter-spacing: .12em; }
.market-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.market-list span { padding: 18px 20px; border: 1px solid var(--line); background: rgba(255,255,255,.35); }
.page-cta { padding: 90px 0; color: var(--white); background: var(--accent); }
.page-cta-inner { display: flex; justify-content: space-between; align-items: center; gap: 40px; }
.page-cta h2 { max-width: 780px; }
.page-cta .eyebrow { color: var(--white); opacity: .75; }
.contact-page { padding-top: 90px; }
.contact-guidance { padding-top: 40px; }
.compact-grid { grid-template-columns: repeat(3, 1fr); margin-top: 65px; }
.compact-grid .qualification-card { min-height: 280px; }
@media (max-width: 980px) { .page-hero { min-height: 520px; padding-top: 165px; } .content-split { grid-template-columns: 1fr; gap: 38px; } .qualification-grid { grid-template-columns: repeat(2, 1fr); } .qualification-card:nth-child(3) { border-left: 1px solid var(--line); } .service-detail-row { grid-template-columns: 48px 1fr; gap: 30px; } .service-detail-row .prose { grid-column: 2; } .page-cta-inner { align-items: flex-start; flex-direction: column; } .compact-grid { grid-template-columns: 1fr; } .compact-grid .qualification-card { border-left: 1px solid var(--line); } }
@media (max-width: 620px) { .page-hero { min-height: 500px; padding: 145px 0 75px; } .page-hero h1 { font-size: clamp(2.8rem, 13vw, 4rem); } .page-hero-content > p:last-child { font-size: 1rem; } .project-category-heading { align-items: flex-start; flex-direction: column; gap: 4px; } .project-material { position: static; display: block; margin-top: 28px; } .qualification-grid { grid-template-columns: 1fr; } .qualification-card, .qualification-card:nth-child(3) { min-height: 260px; border-left: 1px solid var(--line); } .qualification-card h3 { margin-top: 48px; } .service-detail-row { grid-template-columns: 1fr; } .service-detail-row .prose { grid-column: auto; } .market-list { grid-template-columns: 1fr; } .page-cta { padding: 65px 0; } }
@media (max-width: 420px) { :root { --shell: calc(100% - 24px); } .section { padding: 64px 0; } h1 { font-size: clamp(2.65rem, 13vw, 3.75rem); } h2 { font-size: clamp(2.05rem, 10vw, 3.2rem); } .button { width: 100%; padding-inline: 18px; text-align: center; } .site-nav { padding-inline: 9vw; } .site-nav > a:not(.button) { font-size: 1.75rem; } .hero { min-height: auto; padding-bottom: 54px; } .hero-visual { margin-bottom: 0; } .hero-proof { font-size: .62rem; } .project-toolbar { margin-top: 46px; } .filter { max-width: 84vw; white-space: normal; } .project-card { min-height: auto; padding: 28px 20px; } .project-card h3 { margin-top: 38px; } .metric { padding: 28px 14px; } .contact-panel { padding-inline: 20px; } .page-hero { min-height: 440px; padding-top: 132px; } .page-hero h1 { font-size: clamp(2.35rem, 12vw, 3.4rem); } }
