/* Public theme contract: white/mint surfaces by default, charcoal in dark mode.
   Accent ink is separate from the bright green used on button backgrounds. */
:root{--accent-ink:#087d49;--surface:#fff;--surface-tint:#f4fcf7;--line:#d8e7de;--body:#fff;--bg:#f7fcf9;--bg-2:#fff;--header:#172b21;--text:#52635a}
html[data-theme="light"]{--body:#fff;--bg:#f7fcf9;--bg-2:#fff;--header:#172b21;--text:#52635a;--bs-body-bg:#fff;--bs-body-color:#52635a;--border:1px solid #d8e7de;--border-3:1px solid #d8e7de}
html[data-theme="dark"]{--accent-ink:#51e99b;--surface:#17201c;--surface-tint:#1b2922;--line:#34463c}
body{color:var(--text)}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent-ink);outline-offset:5px}
html:not([data-theme="dark"]) :is(.section-bg,.section-bg-2,.home-page .featured-services-section,.site-footer,.cms-detail-panel,.subscribe-card,.portfolio-lightbox,.portfolio-lightbox-toolbar){background:radial-gradient(ellipse at 85% 10%,rgba(40,233,140,.09),transparent 58%),#fff!important;color:var(--text);border-color:var(--line)}
html:not([data-theme="dark"]) :is(.section-bg-2,.featured-services-section,.cms-detail-panel) :is(h2,h3,h4,h5,h6,.marquee-label,.tool-card h4,.tools-group-title){color:var(--header)}
html:not([data-theme="dark"]) .home-page .featured-services-section .section-title h2 span{color:var(--header)}
html:not([data-theme="dark"]) :is(.section-bg-2,.featured-services-section,.cms-detail-panel) :is(p,.service-section-lead){color:var(--text)}
html:not([data-theme="dark"]) .marquee-section{border-block:1px solid var(--line)}
html:not([data-theme="dark"]) .site-footer{--footer-bg:#fff;--footer-heading:#172b21;--footer-text:#52635a;--footer-border:#d8e7de;border-top:1px solid var(--line)}
html:not([data-theme="dark"]) .site-footer :is(.footer-eyebrow,.footer-invitation h2 span,.footer-contact-list i,.footer-links a:hover,.footer-top-link:hover){color:var(--accent-ink)}
html:not([data-theme="dark"]) :is(.section-title>span,.page-trail a,.page-banner-kicker,.cms-kicker,.cms-meta,.cms-card-copy .cms-meta,.cms-prose a,.technology-section-heading span,.service-card-link,.blog-eyebrow){color:var(--accent-ink)}
html:not([data-theme="dark"]) :is(.tool-card,.cms-author-avatar,.portfolio-lightbox button){background:var(--surface);border-color:var(--line);color:var(--header)}
html:not([data-theme="dark"]) .portfolio-lightbox-toolbar a{color:var(--header)}
html:not([data-theme="dark"]) .header-main .header-right .theme-btn{background:var(--theme);color:#10291b}
html:not([data-theme="dark"]) .header-main .header-right .theme-btn::before{background:#c5f7db}
html:not([data-theme="dark"]) .header-main .header-right .theme-btn:hover{color:#10291b}
html:not([data-theme="dark"]) .offcanvas__info{background:#fff;color:var(--text)}
/* A single introduction with a stable, fully readable heading. */
.intro-hero{position:relative;padding:155px 0 68px;overflow:hidden;background:radial-gradient(ellipse at 84% 42%,rgba(40,233,140,.15),transparent 54%)}
.intro-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:64px;align-items:center}
.intro-eyebrow{display:flex;gap:9px;align-items:center;margin:0 0 22px;color:var(--accent-ink);font-size:11px;font-weight:750;letter-spacing:.13em;line-height:1.7}
.intro-eyebrow>span{width:7px;height:7px;flex:none;border-radius:50%;background:var(--accent-ink)}
.intro-copy h1{margin:0 0 24px;color:var(--header);font-size:clamp(40px,4.2vw,64px);font-weight:750;letter-spacing:-.055em;line-height:1.08;text-transform:none}
.intro-copy h1>span{color:var(--accent-ink)}
.intro-copy .intro-lead{max-width:570px;margin:0 0 16px;font-size:19px;line-height:1.6;font-weight:600;color:var(--header)}
.intro-description{max-width:560px;font-size:15px;line-height:1.8;margin:0}
.intro-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:28px}
.intro-actions .theme-btn{display:inline-flex;align-items:center;gap:25px;padding:17px 25px;color:#10291b}
.intro-text-link{font-size:14px;font-weight:700;color:var(--header);border-bottom:1px solid var(--line);padding:10px 0}
.intro-text-link:hover{color:var(--accent-ink)}






.intro-portrait{position:relative;isolation:isolate;margin:0;align-self:center;border:1px solid var(--line);border-radius:180px 180px 26px 26px;background:linear-gradient(150deg,var(--surface),var(--surface-tint));padding:28px 12px 0;overflow:hidden}
.intro-portrait>img{position:relative;z-index:1;display:block;width:100%;height:auto;max-height:580px;object-fit:contain;object-position:bottom}
.portrait-orbit{position:absolute;inset:23% -8% 12%;border:1px solid color-mix(in srgb,var(--accent-ink) 30%,transparent);border-radius:50%;transform:rotate(-28deg)}
.portrait-orbit::after{content:"";position:absolute;inset:20px;border:1px solid color-mix(in srgb,var(--accent-ink) 18%,transparent);border-radius:50%}
.portrait-note{position:absolute;top:28%;right:18px;z-index:2;font-size:11px;line-height:1.6;color:var(--accent-ink);font-weight:650;transform:rotate(6deg)}
.intro-portrait figcaption{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:12px;padding:17px 8px;margin:0 -12px;background:var(--surface);border-top:1px solid var(--line);font-size:11px;letter-spacing:.02em;color:var(--header)}
.intro-portrait figcaption span{color:var(--accent-ink);font-size:20px}
/* Experience: one company, two chapters. */
.experience-studio{background:radial-gradient(ellipse at 10% 55%,rgba(40,233,140,.065),transparent 60%)}
.experience-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:end;margin-bottom:40px}
.experience-heading h2{font-size:clamp(34px,4vw,52px);line-height:1.13;letter-spacing:-.045em;text-transform:none;margin:0}
.experience-heading h2 span{color:var(--accent-ink)}
.experience-heading>p{max-width:410px;justify-self:end;line-height:1.8;margin:0 0 5px;font-size:15px}
.experience-board{border:1px solid var(--line);border-radius:26px;background:var(--surface);overflow:hidden;box-shadow:0 14px 50px rgba(15,60,35,.035)}
.experience-company{display:flex;align-items:center;gap:28px;padding:30px 40px;border-bottom:1px solid var(--line);background:var(--surface-tint)}
.company-logo{display:grid;place-items:center;flex:none;width:185px;height:86px;background:#fff;border:1px solid #d8e7de;border-radius:14px;padding:15px}
.company-logo img{display:block;width:100%;height:auto}
.experience-label{font-size:10px;letter-spacing:.12em;color:var(--accent-ink);font-weight:750;margin:0 0 7px}
.experience-company h3{font-size:24px;letter-spacing:-.035em;text-transform:none;margin:0 0 6px}
.experience-company a{font-size:12px;text-decoration:underline;text-underline-offset:4px;color:var(--text)}
.experience-company-mark{margin-left:auto;color:var(--accent-ink);font-size:46px;font-weight:400}
.experience-roles{list-style:none;padding:0;margin:0}
.experience-role{display:grid;grid-template-columns:.75fr 1.7fr;gap:40px;padding:35px 40px;border-bottom:1px solid var(--line)}
.experience-role.current{background:linear-gradient(110deg,transparent,rgba(40,233,140,.045))}
.role-status{display:inline-flex;gap:8px;align-items:center;font-size:10px;font-weight:750;letter-spacing:.1em;color:var(--accent-ink)}
.role-status>span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent-ink);box-shadow:0 0 0 4px rgba(40,233,140,.13)}
.experience-role-meta>p{font-size:13px;margin:11px 0 0;color:var(--text)}
.experience-role-copy{position:relative;padding-right:35px}
.experience-role-copy h3{font-size:27px;text-transform:none;letter-spacing:-.035em;line-height:1.2;margin:0 0 12px}
.experience-role-copy>p{max-width:575px;line-height:1.8;font-size:14px;margin:0 0 18px}
.experience-number{position:absolute;right:0;top:0;font-size:16px;font-weight:650;color:var(--accent-ink)}
.experience-tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.experience-tags li{border:1px solid var(--line);border-radius:30px;padding:6px 12px;font-size:11px;line-height:1.4;color:var(--text)}
.experience-bottom{display:flex;justify-content:space-between;gap:20px;padding:20px 40px;font-size:12px}
.experience-bottom a{font-weight:700;color:var(--accent-ink)}
@media(min-width:1200px){.intro-grid{max-width:1240px}}
@media(max-width:1199px){.intro-grid{gap:35px}.intro-hero{padding-top:130px}.portrait-note{right:10px;font-size:10px}}
@media(max-width:767px){.intro-hero{padding:112px 0 40px}.intro-grid{grid-template-columns:1fr;gap:35px;padding-inline:24px}.intro-copy h1{font-size:clamp(37px,8.7vw,58px)}.intro-eyebrow{font-size:9px;letter-spacing:.08em;margin-bottom:18px}.intro-copy .intro-lead{font-size:17px}.intro-description{font-size:14px}.intro-actions{gap:16px;margin-top:23px}.intro-actions .theme-btn{font-size:13px;padding:15px 20px}.intro-text-link{font-size:12px}.intro-portrait{max-width:420px;width:100%;justify-self:center}.portrait-note{right:20px;font-size:11px}.experience-heading{grid-template-columns:1fr;gap:20px;margin-bottom:28px}.experience-heading>p{justify-self:start}.experience-company{padding:24px;gap:18px;flex-wrap:wrap}.company-logo{width:145px;height:70px}.experience-company h3{font-size:21px}.experience-company-mark{display:none}.experience-role{grid-template-columns:1fr;gap:22px;padding:25px}.experience-role-copy h3{font-size:24px}.experience-bottom{padding:22px 25px;flex-direction:column;gap:8px}.experience-board{border-radius:20px}.experience-label{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation:none!important;transition:none!important}.wow{visibility:visible!important;opacity:1!important;transform:none!important}}
html:not([data-theme="dark"]) .marquee-container{background:transparent}
html:not([data-theme="dark"]) .marquee-text .marquee-label{color:var(--header)}
html:not([data-theme="dark"]) .site-footer .footer-connect a{background:#f1faf5;color:var(--header);border-color:var(--line)}
.technology-hero h2{font-size:clamp(46px,7vw,92px);line-height:.98;letter-spacing:-.055em;text-transform:none;margin:0 0 24px}
@media(max-width:767px){.technology-hero h2{font-size:clamp(42px,14vw,66px)}}
html[data-theme="dark"] .section-title>.style-2{color:var(--accent-ink)}
/* The legacy mobile template hides all line breaks; retain editorial headings. */
.intro-copy h1 br,.experience-heading h2 br{display:block}
.section-title>span.wow{visibility:visible!important;opacity:1!important;animation:none!important;transform:none!important}
.intro-lead a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:4px}
.intro-lead a:hover{color:var(--accent-ink)}
.intro-actions .theme-btn::before{background:#baf6d7}

/* Keep the profile and its calls to action readable immediately on entry. */
.about-profile-flow .wow{visibility:visible!important;opacity:1!important;animation:none!important;transform:none!important}
.about-profile-flow .theme-btn.style-2{color:var(--text);border-color:var(--line);background:transparent}
.about-profile-flow .theme-btn.style-2::before{background:var(--surface-tint)}
/* Three focused hero actions with compact, accessible icons. */
.intro-actions{gap:22px}
.intro-actions .theme-btn{gap:10px}
.intro-action-icon{display:block;width:18px;height:18px;flex:none}
.intro-text-link{display:inline-flex;align-items:center;gap:7px;min-height:44px}
.intro-linkedin{display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--header);transition:transform .2s,border-color .2s}
.intro-linkedin svg{width:20px;height:20px}
.intro-linkedin:hover{color:var(--accent-ink);border-color:var(--accent-ink);transform:translateY(-2px)}
@media(max-width:767px){.intro-actions{gap:16px}.intro-actions .theme-btn{flex-basis:100%;justify-content:center}.intro-text-link{margin-right:auto}}
@media(max-width:767px){.intro-portrait .portrait-note{display:none}}
/* Contact details stay together beneath the portrait, separate from work links. */
.intro-portrait .portrait-contact{display:block;padding:17px 18px 20px;text-align:center}
.portrait-contact>p{margin:0 0 10px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text)}
.portrait-contact-links{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.portrait-contact-links a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid var(--line);border-radius:30px;background:var(--surface-tint);color:var(--header);font-size:12px;font-weight:650;line-height:1.3;text-decoration:none}
.portrait-contact-links svg{width:17px;height:17px;flex:none;color:var(--accent-ink)}
.portrait-contact-links a:hover{border-color:var(--accent-ink);color:var(--accent-ink)}
@media(max-width:420px){.intro-portrait .portrait-contact{padding:16px 10px}.portrait-contact-links{gap:6px}.portrait-contact-links a{font-size:11px;padding:10px;gap:6px}}
.portrait-contact-links a[href^="mailto:"]{text-transform:none!important}
