main :where(a:not([class])) { color: var(--lilac); text-decoration: none; border-bottom: 1px solid rgba(151,106,223,0.5); transition: color 0.25s ease, border-color 0.25s ease; }
.ab-intro { background-color: var(--ink-hero); background-image: radial-gradient(ellipse at 15% 40%, rgba(85,31,170,0.18) 0%, transparent 50%), radial-gradient(ellipse at 85% 15%, rgba(151,106,223,0.08) 0%, transparent 40%); width: 100%; padding: clamp(48px,7vw,88px) clamp(24px,6vw,72px); }
.ab-intro-inner { max-width: 1020px; margin: 0 auto; display: flex; align-items: center; gap: clamp(32px,5vw,64px); }
.ab-photo { flex-shrink: 0; width: clamp(200px, 24vw, 300px); aspect-ratio: 1 / 1; background: rgba(196,160,255,0.06); border: 1px solid var(--border); overflow: hidden; }
.ab-photo img { width: 100%; height: 100%; object-fit: contain; object-position: top; display: block; }
.ab-intro-text { flex: 1; min-width: 0; }
.ab-eyebrow { font-size: clamp(13px, 1.5vw, 17px); font-weight: 300; letter-spacing: 4px; text-transform: uppercase; color: var(--lavender); margin-bottom: 10px; }
.ab-name { font-family: 'Josefin Sans', 'Josefin Fallback', Arial, sans-serif; font-weight: 200; font-size: clamp(26px, 3.8vw, 46px); color: var(--white); letter-spacing: clamp(3px, 0.6vw, 8px); text-transform: uppercase; line-height: 1.1; margin-bottom: 18px; }
.ab-rule { width: 52px; height: 2px; background: #c4a0ff; margin-bottom: 22px; }
.ab-lede { font-family: 'Josefin Sans', 'Josefin Fallback', Arial, sans-serif; font-weight: 300; font-size: clamp(15px, 1.7vw, 20px); color: #e6d3ff; line-height: 1.7; letter-spacing: 0.5px; }
.ab-awards { margin-top: clamp(18px, 2.2vw, 26px); }
.ab-award { font-size: clamp(12.5px, 1.15vw, 15px); font-weight: 400; color: var(--white-hi); letter-spacing: 0.6px; line-height: 2.1; }
.ab-award .ab-award-mark { color: #c4a0ff; margin-right: 8px; }
.ab-creds { background: var(--ink-deep); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: clamp(28px,4vw,44px) clamp(24px,6vw,72px); }
.ab-creds-inner { max-width: 1020px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px,3vw,32px); }
.ab-cred { text-align: center; }
.ab-cred-value { font-family: 'Josefin Sans', 'Josefin Fallback', Arial, sans-serif; font-weight: 300; font-size: clamp(14px, 1.5vw, 18px); color: var(--white); letter-spacing: 1.5px; text-transform: uppercase; line-height: 1.4; margin-bottom: 6px; }
.ab-cred-label { font-size: clamp(10px, 1vw, 12px); font-weight: 300; letter-spacing: 2.5px; text-transform: uppercase; color: var(--lilac); }
.ab-section { width: 100%; padding: clamp(44px,6vw,76px) clamp(24px,6vw,72px); }
.ab-section--a { background-color: var(--ink); background-image: radial-gradient(ellipse at 85% 15%, rgba(85,31,170,0.14) 0%, transparent 55%); }
.ab-section--b { background-color: var(--ink-deep); background-image: radial-gradient(ellipse at 12% 80%, rgba(151,106,223,0.09) 0%, transparent 50%); }
.ab-inner { max-width: 860px; margin: 0 auto; }
.ks-header { margin-bottom: clamp(24px, 3.5vw, 36px); }
.ks-eyebrow { font-size: clamp(13px, 1.5vw, 17px); font-weight: 300; letter-spacing: 4px; text-transform: uppercase; color: var(--lavender); margin-bottom: 10px; }
.ks-title { font-size: clamp(20px, 2.8vw, 34px); font-weight: 200; color: var(--white); letter-spacing: clamp(2.5px, 0.5vw, 6px); text-transform: uppercase; line-height: 1.15; margin-bottom: 16px; }
.ks-title-rule { width: 100%; height: 1px; background: linear-gradient(90deg, var(--violet) 0%, rgba(151,106,223,0.3) 40%, transparent 100%); }
.ab-text { font-size: clamp(14px, 1.35vw, 16.5px); font-weight: 300; color: var(--white-md); line-height: 1.85; letter-spacing: 0.3px; margin-bottom: 18px; max-width: 45em; }
.ab-text strong { font-weight: 500; color: var(--white-hi); }
.ab-text em { font-style: italic; color: #e6d3ff; }
.ab-text:last-child { margin-bottom: 0; }
.ab-contact { background-color: var(--ink-hero); background-image: radial-gradient(ellipse at 50% 0%, rgba(85,31,170,0.16) 0%, transparent 60%); width: 100%; padding: clamp(48px,7vw,80px) clamp(24px,6vw,72px); text-align: center; }
.ab-contact-inner { max-width: 620px; margin: 0 auto; }
.ab-contact-heading { font-family: 'Josefin Sans', 'Josefin Fallback', Arial, sans-serif; font-weight: 300; font-size: clamp(20px, 2.6vw, 32px); color: var(--white); letter-spacing: clamp(3px, 0.5vw, 7px); text-transform: uppercase; margin-bottom: 14px; }
.ab-contact-sub { font-size: clamp(13px, 1.3vw, 16px); font-weight: 300; color: var(--white-md); line-height: 1.8; margin-bottom: clamp(24px,3vw,34px); }
.ab-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; }
.ab-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 32px; min-height: 48px; border: 1px solid #c4a0ff; color: var(--white); font-size: clamp(11px, 1vw, 13px); font-weight: 500; letter-spacing: 3px; text-transform: uppercase; background: transparent; cursor: pointer; transition: background-color 0.28s ease, border-color 0.28s ease, color 0.28s ease; -webkit-tap-highlight-color: transparent; }
.ab-btn--solid { background: rgba(85,31,170,0.45); border-color: var(--lavender); }
.ab-btn svg { width: 16px; height: 16px; fill: currentColor; flex-shrink: 0; }
@media (hover: hover) and (pointer: fine) { a:hover { color: #e6d3ff; border-color: #e6d3ff; }
.ab-btn:hover, .ab-btn:focus-visible { background-color: rgba(85,31,170,0.25); border-color: #e2ccff; color: var(--white); }
.ab-btn--solid:hover, .ab-btn--solid:focus-visible { background-color: rgba(85,31,170,0.7); }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}
@media (max-width: 820px) { .ab-creds-inner { grid-template-columns: repeat(2, 1fr); }
.ks-title { letter-spacing: 2.5px; }
}
@media (max-width: 680px) { .ab-intro-inner { flex-direction: column; text-align: center; }
.ab-photo { width: clamp(180px, 55vw, 260px); }
.ab-rule { margin-left: auto; margin-right: auto; }
}
@media (max-width: 480px) { .ab-section, .ab-intro, .ab-contact { padding-left: 20px; padding-right: 20px; }
.ab-creds { padding-left: 20px; padding-right: 20px; }
.ks-eyebrow { font-size: 12px; letter-spacing: 3px; }
.ks-title { font-size: clamp(18px, 5.5vw, 26px); letter-spacing: 2px; }
.ab-text { font-size: 14px; }
.ab-btn { width: 100%; max-width: 320px; }
}
@media (max-width: 375px) { .ab-creds-inner { grid-template-columns: 1fr; gap: 18px; }
}
